1 / 36

START first foil

START first foil. Agenda. USB basics Why USB Bus structure Enumeration, speed Layer model Physical interface Transfer, transaction, packet. USB - ISDN Terminal Adapter (TA) Standard TA (PC ISDN card) - USB TA Endpoints usage, ISDN data format Hardware implementation, Buffering

brigit
Télécharger la présentation

START first foil

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. START first foil

  2. Agenda • USB basics • Why USB • Bus structure • Enumeration, speed • Layer model • Physical interface • Transfer, transaction, packet • USB - ISDN Terminal Adapter (TA) • Standard TA (PC ISDN card) - USB TA • Endpoints usage, ISDN data format • Hardware implementation, Buffering • B-channel performance • Layer model USB TA  PC ISDN card • D-channel signalization through USB • D-channel performance • Hardware platform, tools • SAB-C541U

  3. ISDN USB based Microcontroller in Telekom Peripherals for PC's ...the interfacing solution

  4. Fax Analog line Modem Analog line Internet Service provider has to offer an ISDN connection ISDN line ISDN Line ISDN line Standard ISDNPC Card (TA) 64Kbit/s Standard ISDN PC Card ISDN Terminal Adapter (TA)Digital Communication ...connect to ISDN

  5. Enhanced SW on PC same ISDN PC Card Fax Analog line ISDN Line Modem Analog line ISDN Line ISDN line Standard ISDN PC Card ISDN TA "Modem""Connecting the Digital to the Analog World" Standard ISDN PC Card ...connect to ISDN

  6. IPAC (PSB2115) PCI Bus Example for a Passivelow-cost ISDN PC-Card (TA) ISDN ...connect to ISDN

  7. "Passive" USBlow-cost ISDN TA SAB-C541 IOM-2 IPAC (PSB2115) ISDN ...connect to ISDN

  8. USBTransfer types • Control (e.g.: configuration, messages) • bursty, host initiated (bus management, configuration) • guaranteed bandwith of max. 10% • error-free data delivery guaranteed • Interrupt (e.g.: mouse, joystick....) • small bursty, low bandwidth required • error-free data delivery guaranteed • polling is used (by host) to check for "interrupt events” • polling intervall programmable. From 1ms to 255ms (FS) 10ms to 255ms (LS) • Isochronous (e.g.: audio, telephony.....) • for data which need to be periodically sent • predictable latency on data delivery. • no error check, error-free data delivery is not guaranteed • Bulk (e.g.: printer, scanner, still camera.....) • non periodic, bursty, ideal for large amounts of data • error-free data delivery guaranteed ...basics

  9. Bulk Control Frame = 1ms Stereo Audio SOF Telephony low-speed SOF Bulk Isochronous Interrupt any lowspeed device like keyboard, mouse, etc. USB Frame Modelexample printer printer ...basics

  10. Endpoint type Direction Number Function Control Input Output 0 device configuration (IN / OUT), device control Isochronous Input 1 B1 and B2 channel data reception Isochronous Output 2 B1 and B2 chan. data transmission Isochronous Input 3 D-channel control and D-channel data transmission Sync feedback information for EP2 Isochronous Output 4 D-channel control and D-channel data reception Implementation With a SingleUSB Interface, Endpoint Assignment ...connect to ISDN

  11. D - channel B1 - channel B2 - channel Which data has to be transferred? IPAC ISDN Data / Address bus interrupt SAB-C541U D - OUT pipe (isochronous) D - IN pipe (isochronous) B1 / B2 - OUT pipe (isochronous) B1 / B2 - IN pipe (isochronous) ...connect to ISDN

  12. USB Timing isAsynchronous to the ISDN Timing • every 125µs is an IOM-2 frame interrupt generated • external interrupt 1 is used to keep track of the IOM-2 data frame timing • each USB frame may contain 7, 8 or 9 IOM-2 frames • complex circular buffers are needed ...connect to ISDN

  13. SAB-C541U USB Buffer (265 Bytes) max. 9. B1, B2 in IPAC (PSB 2115) (2 Byte every 125µs) EP1 (18 byte) IN - ISO B1 channel 1. B1, B2 in B2 channel max. 9. B1, B2 out OUT - ISO EP2 (18 byte) (2 Byte every 125µs) B1 channel 1. B1, B2 out B2 channel ISDN EP4 IN - ISO D-channel reception Internal Register OUT - ISO EP3 D-channel transmission Control EP0 Control Register USB Timing Asynchronousto ISDN Timing Interrupt controlled every 125µs transfer controlled by C'51 µC code Overview, logical connection

  14. B1 B2 B1 B2 18 Bytes (overflow) 16 Bytes (default) 14 Bytes (underflow) -2 +2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 16 2 4 6 8 10 12 18 14 14 This is supported within the On-chip USB buffer (256Bytes) 32 Bytes Isochronous Pipes SupportingB-Channel Data transfer (EP1 + EP2) • Every B-channel ISO-pipe is defined with the length 32 Bytes • B1 and B2 are placed multiplexed into the pipe • The standard transmitted length is 16 Bytes • ISDN will feed-in 14,16 • Depending on the ISDN input • two Bytes will be added or subtracted by the HOST (PC) or 18Bytes per USB frame (1ms) ...B-channel pipes

  15. 1) USB buffer is empty and CPU buffer is filled. 2) CPU buffer is full and swapped toUSB side. USB read action enabled. 3) USB buffer is read out whileCPU writes to its own page. 5) CPU Buffer is full and swapped toUSB side. USB read action enabled. 4) USB buffer is empty, CPUbuffer is not yet full. 6) USB buffer is read out whileCPU writes to its own page. USB Dual BuffersSupport for Isochronous Pipes e.g. USB read access

  16. SW Example to access the USB buffers included in the SAB-C541U void my_func (void) interrupt 9 {EPSEL = IN_CHANNEL_NR; /* select EP number */ B1_IN = USBVAL; /* USBVAL = SFR which passes data to the */ B2_IN = USBVAL; /* Internal USB module, */ D_CI_IN = USBVAL; /* this allows easy and fast data access */ MON_IN = USBVAL; EPSEL = OUT_CHANNEL_NR; USBVAL = B1_OUT; /* in both directions! */ USBVAL = B2_OUT; USBVAL = D_CI_OUT; USBVAL = MON_OUT; if(++int_cnt==8){ /* e.g. packet size 8 bytes */ EPBSn = EPBSn | DONE_; /* set USB buffer FULL for OUT CHANNEL */ EPSEL = IN_CHANNEL_NR; /* select endpoint for IN CHANNEL */ EPBSn = EPBSn | DONE_; /* set USB buffer FULL for CHANNEL */ int_cnt = 0; }} ...SW solution

  17. IOM-2 Int. IN_write_ptr ISAC-S SOF Int. 14, 16 or 18 Bytes from OUT_read_ptr OUT_write_ptr B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 ISAC-S B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 B1, B2 IN_read_ptr ISAC-S OUT_read_ptr OUT_write_ptr IN_write_ptr B-channel, Circular BuffersSW Implementation IN Queue OUT Queue ISAC-S IN_read_ptr IN_read_ptr ISAC-S B1, B2 B1, B2 B1, B2 ISAC-S OUT_write_ptr IN_read_ptr B1, B2 B1, B2 ISAC-S OUT_write_ptr B1, B2 B1, B2 ISAC-S IN_read_ptr B1, B2 B1, B2 OUT_write_ptr ISAC-S ISAC-S B1, B2 B1, B2 OUT_write_ptr IN_read_ptr B1, B2 B1, B2 ISAC-S ISAC-S B1, B2 B1, B2 B1, B2 OUT_write_ptr ISAC-S IN_read_ptr ISAC-S ISAC-S ...SW solution

  18. SOF-Interrupt IOM-2 Interrupt (1ms) (125µs) write data to read from circular Buffer USB memory OUT_Queue NO (internal RAM of C54x) USB_FIFO = ) (circular Buffer B1_IOM (DU) = IN_Queue OUT_Queue (B1) empty ? B2_IOM (DU) = IN_Queue USB_FIFO = OUT_Queue (B2) YES write to circular Buffer read data from (internal RAM of C54x ) USB memory OUT_Queue = B1_IOM (DD) USB memory NO OUT_Queue = B2_IOM (DD) IN_Queue (B1) = empty ? USB_FIFO IN_Queue (B2) = USB_FIFO YES Return from Interrupt Return from Interrupt SW Implementation; Both B-channel Directions handled parallel ...SW solution

  19. Results, Performance RequirementsISDN B channel data transfer • Both interrupt service routines carry out two B-channels (in both directions) simultaneously • The IOM interrupt service routine is called every 125µs and has the highest priority • the maximum runtime of the IOM interrupt service routine is 64 cycles (32µs) • ~25% of the C541U computing performance is required. • The USB interrupt service routine is called every 1000µs • the maximum runtime of the USB interrupt service is ~460 cycles (230µs) • the USB interrupt service routine will be interrupted(max. twice) by the IOM interrupt service routine • 23% of the C541U computing performance is required. • As a result, the C541U will spend 49% of its computing performance on maintaining the two B-channels through the isochronous pipes. asynchronous timing Results ...connect to ISDN

  20. Applications Applications CAPI Common ISDN Application Interface CAPI Unpredictable Delays! physical connection HOST Device USB pipes IPAC (PSB2115) IPAC (PSB2115) ISDN ISDN Register I/O Layer Models: ISDN PC Card vs. USB ISDN TA HW-Interface Virtual HW (ISDN controller) USB ISDN ISA/PCI Bus Register I/O USB-standard OS-driver Firmware on SAB-C541U ...connect to ISDN

  21. IPAC ISDN SAB-C541U D-channelControl and Frame Transfer • The firmware supports the following D-channel related functions via specific isochronous commands: • D-channel controller and S-transceiver initialization • D-channel frame transmission • layer-1 status control • HDLC controller reset • The USB ISDN TA firmware reports the following D-channel related information via the isochronous pipe to the host • received D-channel frames • layer-1 status information • HDLC controller status information, e.g. the completion of a D-channel frame transmission ...connect to ISDN

  22. 8 Bytes D0 D1 D2 D3 D4 D5 D6 D7 D-Channel Pipes Isochronous OUT (EP4) • The 8 Bytes are filled with commands from the PC to the IPAC (via the microcontroller): • D-channel controller and S-transceiver initialization • D-channel frame transmission • layer-1 status control • HDLC controller reset ...D-channel pipes

  23. 8 Bytes D0 D1 D2 D3 D4 D5 D6 D7 [ o p t i o n a l p a r a m e t e r s ] D-Channel Pipes Isochronous OUT (EP4), details • CMD ID = command identification CMDID • Opt. parameters • data referring to command ID ...D-channel pipes

  24. D0 D1 D2 D3 D4 D5 D6 D7 CMDID [ o p t i o n a l p a r a m e t e r s ] frag. counter (01) D7 D7 D7 (02) ext. RAM D6 D6 D6 stack (PC) D5 D5 D5 D4 D4 D4 D3 D3 D3 (01) D2 D2 D2 D1 D1 D1 (49) ID ID ID t0 t0+1ms t0+ 49ms D-Channel Pipes Isochronous OUT (EP4), example • CMD ID  e.g.send data • data will be split in fragments (opt. parameters) • fragments will be buffered in device length (e.g. 49) controlledby µC (02) (49) ...D-channel pipes

  25. 8 Bytes [ i n d i c a t i o n ] D0 D1 D2 D3 D4 D5 D6 D7 CMDID SYNC feedback 16 Bytes (default) -2 +2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B2 B1 B1 B2 B2 16 2 4 6 8 10 12 14 18 D-Channel Pipes Isochronous IN (EP3), SYNC • SYNC = synchronizing feedback for B-channel OUT • 14, 16 or 18 B-channel frames 14 ...D-channel pipes

  26. 8 Bytes D0 D1 D2 D3 D4 D5 D6 D7 SYNC [ i n d i c a t i o n ] D-Channel Pipes Isochronous IN (EP3), CMD ID CMDID • CMD ID = command identification • indication = acknowledge to ISDN commands • received D-channel frames • layer-1 status information • HDLC controller status information • e.g. the completion of a D-channel frame transmission ...D-channel pipes

  27. D0 D1 D2 D3 D4 D5 D6 D7 CMDID SYNC [ i n d i c a t i o n ] Queue element including data D0 D1 D2 D3 D4 D5 D6 D7 Layer-1 status SYC [ d a t a ] Queue element including pointer D0 D1 D2 D3 D4 D5 D6 D7 pointer SYNC [ p o i n t e r ] D-Channel IN-Pipes, details CMD ID, e.g. layer-1 status information or pool of memory blocks Pool of memory blocks Pool of memory blocks ...D-channel pipes

  28. Memory block for temp. Storage of D-channel frame to be transmitted Isochronous Pipe Transmit FIFO data D-channel transmit data SAB-C541U Isochronous Pipe Isochronous pipe messages Queue for messages from device to USB Staus messages additional messages parameters Pool of memory blocks for temp. Storage of R-FIFO data bytes Receive FIFO data Pool of memory blocks for temp. Storage of R-FIFO data bytes Pool of memory blocks for temp. Storage of R-FIFO data bytes Frame Transmission / Reception ISDN Control Pipe IPAC Control pipe commands Data flow for the D-channel pipes

  29. Results, D-channel handlingPerformance Requirements • The 16 kbit/sec data rate requires packets of 32 bytes • 32 bytes = size of the D-channel transmit and receive FIFOs • transferred from USB to the ISAC-S and vice versa in 16ms periods • In addition, the CPU-load for temporary storage of a D-channel frame has to be considered • One additional notification from the USB ISDN TA to the host shall be generated in each 16ms period, too • Instruction cycle is 500ns (@ 12MHz external) • max. 5000 cycles are needed to execute the sample routines. • As a result, the C541U spends only ~20% of its computing performance on maintaining the D-channel. D - channel Results ...connect to ISDN

  30. Procedure SAB-C541U CPU-Load C541U CPU performance for handlingan USB ISDN Terminal Adapter D-channel handling, transfer of D-channel messages from USB to IPAC and vice versa ~20% B-channel data transfer from USB to IPAC and vice versa ~50% ~70% Results ...connect to ISDN

  31. Reference Design:USB ISDN Terminal Adapter ISDN ...HW solution connects to ISDN

  32. USB-MicrocontrollerC540U Family ...the interfacing solution

  33. 8 lines Port 0 Port 1 6 / 8 lines 1) USB PLL 8 lines Port 2 Transceiver Module 8 lines Port 3 1)P-LCC-44: 6lines; S-DIP-52: 8lines C540U / C541U Block Diagram Oscillator Watchdog RAM 256 x 8 OTP4K x 8 (C540U) 8K x 8 (C541U) OSC & Timing C500 EmulationSupport logic(E-Hooks) Prog. Watchdog Timer(C541U only) SSC (SPI) Interface(C541U only) Timer 0 LED Timer 1 LED D+ D- LED Interrupt Unit ...the interfacing solution

  34. C540U FamilyList of Features • Enhanced 8-Bit C500-CPU • 500 ns Instruction Cycle Time @ 12 MHz CPU Clock • Two 16-bit Timer/Counters (C501 compatible T0/1) • [4kbytes in the C540U] 8 Kbytes OTP / 256 bytes RAM • USB Device Core (FS/LS speed) • Synchronous Serial Channel, Watchdog Timer [C541U only] • 30 digit. I/O Ports, 32 in SDIP52 • LED Driver capability on 3 dedicated pins, 10 mA / 4,5 to 5,5 V • Power supply voltage range: according to USB spec • Enhanced HooksTechnology • 48 MHz PLL on-chip for FS • Transceiver, D+ D-, on-chip 4kbytes in the C540U C541U only ...the interfacing solution

  35. Microcontrollers general: ...for infos on our USB parts Infos on INTERNET http://www.siemens.de/Semiconductor/Microcontroller/ http://www.siemens.de/Semiconductor/products/ICs/34/usb.htm ...the interfacing solution

  36. END last foil

More Related