FrontPage :: FindPage :: TitleIndex :: RecentChanges
  
USBSPEC

1 USBSPEC
1.1 ¸ñÀû
1.2 USB ÀϹÝ
1.3 USB Protocols
1.4 Common USB Packet Fields
1.5 USB Packet Type
1.5.1 Token Packet
1.5.2 Data Packet
1.5.3 Handshake Packet
1.5.4 Start of Frame Packets
1.6 USB Functions
1.6.1 Example
1.7 Endpoints
1.8 Pipes
1.9 Endpoint(Transfer) Types
1.9.1 Control Transfers
1.9.2 Interrupt Transfers
1.9.3 Isochronous Transfers
1.9.4 Bulk Transfer
1.9.5 Bandwidth Management
1.10 USB Descriptors
1.10.1 Device Descritors
1.10.2 Configuration Descriptors
1.10.3 Interface Descriptors
1.10.4 Endpoint Descriptors
1.10.5 String Descriptors
1.10.6 Composition of USB Descriptors
1.11 USB Requests
1.11.1 The Setup Packet
1.11.2 Standard Request
1.11.3 Standard Interface Request
1.11.4 Standard Endpoint Request
1.12 Appendex A : USB SPEC. (Rev2.0) Summary
1.13 Reference

1 USBSPEC #


1.1 ¸ñÀû #

  • ¿äÁò ¸¹ÀÌµé »ç¿ëÇÏ´Â USB´Â Release Version 2.0À¸·Î SPEC.¸¸ 650 Page°¡ ³Ñ´Â´Ù.
  • Áß¿äÇϰí ÇÙ½ÉÀûÀÎ °ÍÀ» Ãß·Á USB¸¦ ÀÌÇØÇÑ´Ù.
  • ScorpioÀÇ UDC¸¦ ÀÌ¿ëÇØ USB Device¸¦ ±¸ÇöÇØ º»´Ù.

1.2 USB ÀÏ¹Ý #

  • USB Speeds
    i Spec 1.1¿¡¼­´Â 2°³ÀÇ mode¸¦ Á¤ÀÇÇϰí ÀÖ´Ù.
    1. Low Speed : 1.5 Mbps
    2. Full Speed : 12 Mbps
    i Spec 2.0 ¿¡¼­´Â High Speed¸¦ Ãß°¡ÇÏ¿´´Ù
    1. High Speed : 480 Mbps
  • USB Control : Host controlled
    1. ¸ðµç µ¿ÀÛÀº Host¸¦ Áß½ÉÀ¸·Î ÀϾ´Ù.
    2. ¹ö½º´ç ÇϳªÀÇ Host (Host/Bus)ÀÌ´Ù. --> ÃÖ±Ù On-The-Go Specification ¿¡¼­´Â Host°£ÀÇ Åë½Å ÇÁ·ÎÅäÄÝÀ» Á¤ÀÇ ÁßÀÌ´Ù.
  • USB Topology : ´ÜÃþÀÇ Star Topology
    1. USB Ãʱâ â¾ÈÀÚ´Â PCµÚ¿¡ ÀÖ´Â ÄÉÀ̺íÀÇ ¼ö¸¦ ÁÙÀ̰íÀÚ Çß´Ù.
    2. ÇÏÁö¸¸ USB´Â 10?BaseT Ethernet°ú À¯»çÇÑ ´ÜÃþÀÇ Star Topology¸¦ »ç¿ëÇϰí À̰ÍÀº (ºñ½Ñ) Çãºê¸¦ »ç°Ô²û Çϰí ÄÉÀ̺íÀ» ´ÃÀÌ´Â °á°ú¸¦ ÃÊ·¡ÇÑ´Ù. (ÇÏÁö¸¸ ±×¸® ³ªºüº¸ÀÌÁö´Â ¾Ê´Â´Ù, ¸¹Àº ½Ã½ºÅÛÀÌ USB Çãºê¸¦ ³»ÀåÇϰí ÀÖ´Ù)
    3. USB ¹ö½º¿¡´Â 127°³±îÁö Device¸¦ ¿¬°áÇÒ ¼ö ÀÖ´Ù.
  • USB Host Controller Spec : USB Host Controller´Â ±×µé ÀÚ½ÅÀÇ SpecÀ» °¡Áö°í ÀÖ´Ù.
    1. USB 1.1
      1. UHCI(Universal Host Controller Interface)
        • Intel
        • ¼ÒÇÁÆ®¿þ¾î(MS)¸¦ ¸¹ÀÌ »ç¿ëÇØ¼­ h/w¸¦ ½Î°ÔÇÔ
      2. OHCI(Open host Controller Interface)
        • Compaq, MS, National Semiconductor
        • Çϵå¿þ¾î(Intel)¸¦ ¸¹ÀÌ »ç¿ëÇÏ¿© s/w¸¦ ½±°ÔÇÔ
    2. USB 2.0
      1. EHCI(Enhanced Host Controller Interface)
  • USB : Serial Bus
    1. 4°³ÀÇ Wire·Î ±¸¼º(2°³´Â Power(+5v,GND), ³ª¸ÓÁö 2°³´Â Twisted Pair Differential Data SignalÀ» À§ÇÔ)µÇ¾î ÀÖ´Ù.
    2. Sync Field¸¦ µ¿±âÈ­ Çϴµ¥ ¾²¸ç, µ¥ÀÌÅÍ ÀÎÄÚµùÀº NRZI(Non Return to Zero Inver)À» »ç¿ëÇÑ´Ù.
  • PNP(Plug and Play)¸¦ Áö¿øÇÑ´Ù.
    1. »ç¿ëÀÚ°¡ Æ÷Æ®¿¡ ²ÈÀ¸¸é ÀÚµ¿À¸·Î °¨ÁöÇÏ¿© »ç¿ëÀ» ¾Ë¸®°í(µ¿½Ã¿¡ ÀûÀýÇÑ Driver¸¦ LoadÇϰí), »ç¿ëÀÌ ³¡³ª¸é IRQ, Port AddressµîÀ» ¿°·ÁÇÏÁö ¾Ê°í »©µµ ÀÚµ¿À¸·Î ÀνÄÇϰí Á¾·áÇÑ´Ù(Driver¸¦ UnloadÇÑ´Ù)
    2. ÀûÀýÇÑ DriverÀÇ LoadingÀº PID/VID(Product ID/Vender ID) Á¶ÇÕÀ» ÀÌ¿ëÇÑ´Ù.

1.3 USB Protocols #

  • Data¸¦ º¸³»´Â FormatÀÌ Á¤ÇØÁöÁö ¾ÊÀº RS-232¿Í À¯»çÇÑ Serial Interface¿Í´Â ´Þ¸® USB´Â ¸î°³ÀÇ Protocol Layer¸¦ °¡Áö°í ÀÖ´Ù.
  • USB Transaction(¶Ç´Â Stage¶ó°í ÇÑ´Ù)Àº
    1. Token Packet(´ÙÀ½¿¡ ¾î¶²°ÍÀÌ ¿À´ÂÁö ¾Ë ¼ö ÀÖ°Ô Á¤ÀÇÇϰíÀÖ´Â)°ú
    2. Optional Data Packet(Payload¸¦ °¡Áö°í ÀÖ´Â), ±×¸®°í
    3. Status Packet(TransactionÀÇ Acknowledge, Error ó¸® µîÀ» Á¦°ø)À¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
  • Host°¡ ¸ðµç TransactionÀ» ÃʱâÈ­ ÇÑ´Ù.(¾Õ¼­ ¸»ÇÑ °Í ó·³, USB´Â Host Áß½ÉÀÇ ½Ã¸®¾ó ¹ö½ºÀÌ´Ù)
  • ù¹øÂ° Packet(Token Packet, ÁÙ¿©¼­ TokenÀ̶ó°í ÇÑ´Ù)Àº ´ÙÀ½ÀÇ °ÍÀÌ ¹«¾ùÀÎÁö, Data TransactionÀ» Read/Write ÇÒ °÷ÀÌ ¾îµðÀÎÁö, DeviceÀÇ ÁÖ¼Ò°¡ ¹«¾ùÀÎÁö, Endpoint°¡ ¾î¶»°Ô µðÀÚÀÎ µÇ¾ú´ÂÁö µîÀ» Á¤ÀÇÇϱâ À§ÇØ Host¿¡ ÀÇÇØ¼­ ¸¸µé¾îÁø´Ù.
  • ´ÙÀ½ PacketÀº ÀϹÝÀûÀ¸·Î Payload¸¦ °¡Áö°í ÀÖ´Â Data PacketÀÌ°í ±× ´ÙÀ½Àº Data³ª TokenÀÌ ¼º°øÀûÀ¸·Î ¹Þ¾ÆÁ³´ÂÁö ¶Ç´Â Endpoint°¡ STALL»óÅÂ(¿¡·¯ µîÀÌ ¹ß»ýÇÏ¿© Á¤ÁöÇØ ÀÖ´Â »óÅÂ)ÀÎÁö ¶Ç´Â Data¸¦ AcceptÇÒ »óŰ¡ ¾Æ´ÑÁö(ÀÌÀüÀÇ µ¥ÀÌÅ͸¦ ó¸®Çϰí Àְųª ÇÏ¿©) µîÀ» º¸°íÇϱâ À§ÇØ) Status Packet(¶Ç´Â Handshaking PacketÀ̶ó ÇÑ´Ù)ÀÌ µû¸¥´Ù.

1.4 Common USB Packet Fields #

  • USB ´Â LSBitÀ» Á¦ÀÏ Ã³À½ º¸³½´Ù.
  • USB PacketÀº ´ÙÀ½°ú °°Àº Fieldµé·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
    1. Sync
      • ¸ðµç USB PacketÀº ¹Ýµå½Ã Sync Field·Î ½ÃÀÛÇÑ´Ù.
      • Low, Full Speed¿¡¼­´Â 8 bits, High Speed¿¡¼­´Â 32 bitsÀÇ ±æÀÌÀÌ´Ù.
      • Receiver¿Í TransmitterÀÇ µ¿±â¸¦ Á¦°øÇÑ´Ù.
      • °¡Àå ¸¶Áö¸·ÀÇ 2 bitsÀº Sync Field°¡ ³¡³ª°í ´ÙÀ½¿¡ PID Field°¡ ½ÃÀÛÇÑ´Ù´Â Marker°¡ µÈ´Ù.
    2. PID
      • ¸ðµç USB PacketÀº Sync Field ´ÙÀ½¿¡ ¹Ýµå½Ã PID Field°¡ ÀÖ´Ù.
      • Packet ID, PacketÀÇ Á¾·ù¸¦ °áÁ¤ÇÑ´Ù.
      • PID°ª Å×À̺í

      • ÃÑ 8 bitsÀε¥ PID´Â 4 bitsÀÌ´Ù. ÇÏ¿© PID¸¦ 1's complement ¸¦ ÃëÇØ 4 bitsÀ» Ãß°¡Çϴµ¥ À̸¦ ÀÚü Error CheckingÀ¸·Î ÀÌ¿ëÇÑ´Ù.
      • PID [ 0..1 ] 2 bits·Î (USB´Â LSB¹æ½ÄÀÓÀ» ÁÖÀÇÇÏÀÚ) 4°³ÀÇ ±×·ìÀ¸·Î ³ª´©¾úÀ¸¸ç ÀÌ´Â °¢°¢ Token, Data, Handshake, SpecialÀÌ´Ù.
    3. ADDR (Address)
      • ÀÌ Packet ¾î¶² Device¸¦ À§ÇØ ¸¸µé¾î Á³´ÂÁö ¾Ë·ÁÁØ´Ù.(½±°Ô ¸ñÀû DeviceÀÇ ÁÖ¼Ò°¡ ¸í½ÃµÈ´Ù)
      • 7 bitÀ̹ǷΠÃÑ 127°³ÀÇ Devices±îÁö Áö¿øµÈ´Ù.
      • ADDR°ª 0´Â ÀϹÝÀûÀÎ ADDR°ªÀ¸·Î »ç¿ëÇÏÁö ¾Ê°í ¾ÆÁ÷ ƯÁ¤ ADDR¸¦ ¹ÞÁö ¸øÇÑ Device°¡ ƯÁ¤ ADDR¸¦ ÇÒ´ç ¹Þ±â(¿äûÇϱâ)À§ÇØ »ç¿ëÇÑ´Ù.
    4. ENDP (Endpoint)
      • Endpoint Field´Â 4 bitsÀÇ ±æÀÌ¸ç µû¶ó¼­ ÃÑ 16°³ÀÇ Endpoint°¡ °¡´ÉÇÏ´Ù.
      • Low Speed Device´Â 2°³ÀÇ ±âº» Endpoint¿Ü¿¡ 2°³ÀÇ Ãß°¡ Endpoint±îÁö¸¸ °¡´ÉÇÏ´Ù.(Áï ÃÖ´ë 4 Endpoint¸¦ °¡Áú ¼ö ÀÖÀ½)
    5. ?CRCs
      • Cyclic Redundancy Checks
      • PID¸¦ Á¦¿ÜÇÑ(±×°ÍÀº ÀÚü Error Checking ¹æ¹ýÀÌ ÀÖ´Ù) ´Ù¸¥ ¸ðµç Field´Â ?CRCs¸¦ ÀÌ¿ëÇØ Error CheckingÀ» ½Ç½ÃÇÑ´Ù.
      • Token PacketÀº 5 bitsÀÇ, Data PacketÀº 16 bitsÀÇ ?CRCs¸¦ °¡Áø´Ù.
        1. Token ?CRCs : G(X) = X^5 + X^2 + 1 --> binary ½ÄÀº 00101, error freeÀÇ ³ª¸ÓÁö °ªÀº 01100
        2. Data ?CRCs : G(X) = X^16 + X^15 + X^2 + 1 --> binary ½ÄÀº 1000000000000101, error freeÀÇ ³ª¸ÓÁö °ªÀº 1000000000001101
    6. EOP
      • End of Packet
      • 1 bit TimeÀÇ J ´ÙÀ½¿¡ 2 bits TimeÀÇ ?SE0(Single Ended Zero)·Î PacketÀÇ ³¡À» ³ªÅ¸³½´Ù.

1.5 USB Packet Type #

  • USB´Â Token, Data, Handshake, SOFÀÇ Å©°Ô 4°¡Áö Á¾·ùÀÇ Packet TypeÀÌ ÀÖ´Ù.

1.5.1 Token Packet #

  1. ´ÙÀ½¿¡ ¿À´Â TransactionÀÌ ¹«¾ùÀÎÁö¸¦ °¡¸®Å°´Â ¿ªÈ°À» ÇÑ´Ù.
  2. 3°¡Áö Á¾·ùÀÇ Token Packet
    • In : USB Device¿¡°Ô Host°¡ Á¤º¸¸¦ Àб⸦(´Þ¶ó°í) ¿øÇÑ´Ù´Â °ÍÀ» ¾Ë·ÁÁØ´Ù.
    • Out : USB Device¿¡°Ô Host°¡ Á¤º¸¸¦ ¾²±â¸¦(Áشٰí) ¿øÇÑ´Ù´Â °ÍÀ» ¾Ë·ÁÁØ´Ù.
    • Setup : Control TransferÀÇ ½ÃÀÛÀ» ¾Ë¸°´Ù.
  3. Format
    Sync PID ADDR ENDP ?CRC5 EOP

1.5.2 Data Packet #

  1. Payload¿¡ µ¥ÀÌÅ͸¦ ¿î¹ÝÇÑ´Ù.
  2. ÃÖ´ë 1024 bytesÀÇ µ¥ÀÌÅ͸¦ ¿î¹ÝÇÒ ¼ö ÀÖ´Â 2°¡Áö Á¾·ùÀÇ Data Packet
    • Data0
    • Data1
    • Low-Speed DeviceÀÇ ÃÖ´ë Data Payload Å©±â´Â 8 bytes
    • Full-Speed DeviceÀÇ ÃÖ´ë Data Payload Å©±â´Â 1023 bytes
    • High-Speed DeviceÀÇ ÃÖ´ë Data Payload Å©±â´Â 1024 bytes
    • Data´Â ¹Ýµå½Ã BytesÀÇ ¹è¼ö·Î Àü¼ÛµÇ¾î¾ß ÇÑ´Ù.
  3. High Speed¸ðµå¿¡¼­´Â ?DATA2, MDATAÀÇ »õ·Î¿î Data Packet ŸÀÔ(PID)À» Ãß°¡Çß´Ù.
  4. Format
    Sync PID Data ?CRC16 EOP

1.5.3 Handshake Packet #

  1. Data ÀÇ Ack³ª Error ReportingÀ» À§ÇØ »ç¿ëµÈ´Ù.
  2. 3°¡Áö Á¾·ù°¡ ÀÖ´Ù
    • ACK : PacketÀÌ ¼º°øÀûÀ¸·Î ¹Þ¾ÆÁ³´Ù.
    • NACK : Device°¡ ÀÏÁöÀûÀ¸·Î Data¸¦ Áְųª ¹ÞÁö ¸øÇÑ »óŸ¦ ¸®Æ÷Æ®ÇÑ´Ù. º¸³¾ Data°¡ ¾øÀ» ¶§ À̸¦ ¾Ë¸± ¶§¿¡µµ »ç¿ëÇÑ´Ù.
    • STALL : HostÀÇ °ü¿©(µµ¿ò)°¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¾Ë¾ÒÀ» ¶§. Endpoint°¡ Error¸¦ ³»°í HaltµÇ¾î ÀÖÀ» ¶§ À̰ÍÀ» »ç¿ëÇÑ´Ù.
  3. Format
    Sync PID EOP

1.5.4 Start of Frame Packets #

  1. »õ·Î¿î FreamÀÇ ½ÃÀÛÀ» ¾Ë¸°´Ù.
  2. 11 bitsÀÇ Frame-Number°¡ ÀÖ´Ù.
  3. Host¿¡¼­ Full Speed¿¡¼­´Â ¸Å 1ms(+-500ns) ½Ã°£¸¶´Ù, High Speed¿¡¼­´Â 125ms(+-0.0625ns)¸¶´Ù º¸³½´Ù.
  4. Format
    Sync PID Frame Number ?CRC5 EOP

1.6 USB Functions #

  • USB Functions
    1. USB DeviceÀÇ ±â´ÉÀ» ¼³¸íÇϱâ À§ÇÑ ¿ë¾î·Î FunctionÀ» »ç¿ëÇÑ´Ù.

1.6.1 Example #

  1. Host°¡ Device Descriptor Request¸¦ º¸³½´Ù.
  2. Function Hardware´Â Setup PacketÀ» Àаí PacketÀÌ ÀÚ±â°ÍÀÎÁö(Address Field)ÆÇ´ÜÇÑ´Ù.
  3. Àڱ⠰ÍÀ̶ó¸é PacketÀÇ Payload¸¦ ÀûÀýÇÑ Endpoint Buffer¿¡(Setup TokenÀÇ Endpoint Field¿¡ ¸í½ÃµÈ) Ä«ÇÇÇÑ´Ù.
  4. Handshake PacketÀ» Host·Î º¸³½´Ù.
  5. ³»ºÎ Interrupt¸¦ ¹ß»ý½ÃÄÑ ÀûÀýÇÑ Endpoint(Setup TokenÀÇ Endpoint Field¿¡ ¸í½ÃµÈ)¿¡°Ô ¾Ë·ÁÁØ´Ù.
  6. ¿©±â±îÁö°¡ (ÀϹÝÀûÀ¸·Î)Hardware¿¡¼­ ÇØÁØ´Ù.
  7. Software¿¡¼­ Interrupt¸¦ ¹Þ°í EndpointÀÇ Buffer¿¡¼­ ³»¿ëÀ» ÀÐ°í ³»¿ëÀ» ÆÄ½ÌÇÑ´Ù.

1.7 Endpoints #

  • µ¥ÀÌÅÍÀÇ ¼ö½ÅÀåÄ¡ ȤÀº Àü¼ÛÀåÄ¡·Î Ç¥ÇöµÉ ¼ö ÀÖ´Ù.
  • USB´Â Host Áß½ÉÀ̱⠶§¹®¿¡ Endpoint´Â USB Function¿¡¼­ Åë½ÅÀÇ ³¡¿¡ À§Ä¡ÇÑ´Ù.
  • ¿¹¸¦ µé¸é Software Layer¿¡¼­ Device Driver´Â PacketÀ» Device EP1À¸·Î º¸³¾ ¼ö ÀÖ´Ù.
  • Host·ÎºÎÅÍ ³ª¿Â Data´Â ?EP1 OUT Buffer¿¡ À§Ä¡ÇÏ°Ô µÇ°í ±× ´ÙÀ½ Firmware¿¡¼­ ÀÐ°Ô µÈ´Ù.
  • ¸¸¾à Date¸¦ HostÂÊÀ¸·Î µ¹·ÁÁֱ⸦ ¿øÇÑ´Ù¸é Host¿¡¼­ Control ÇÏµí ½±°Ô Bus¿¡ ¾µ¼ö¾ø´Ù.
  • Data¸¦ ?EP1 IN ¹öÆÛ¿¡ ¾²°í Host°¡ IN PacketÀ» º¸³»¾î Data¸¦ ¿ä±¸ÇÒ ¶§ ±îÁö ±â´Ù¸°´Ù.
  • Endpoint´Â Function DeviceÀÇ Hardware¿Í Function Device¿¡¼­ µ¹¾Æ°¡°í ÀÖ´Â Firmware »çÀÌÀÇ Interface·Î º¸À̱⵵ ÇÑ´Ù.

1.8 Pipes #

  • Device°¡ ¸î°³ÀÇ Endpoints·Î Data¸¦ ÁÖ°í ¹Þ´Â µ¿¾È¿¡ Client Software´Â Data¸¦ Pipes¸¦ ÀÌ¿ëÇØ¼­ Àü´ÞÇÑ´Ù.
  • Pipe(s)´Â Host¿Í Endpoint(s)»çÀÌÀÇ ³í¸®ÀûÀÎ ¿¬°áÀÌ´Ù.
  • Pipe(s)´Â ±×µé°ú °ü·ÃµÈ Parameters SetÀ» °¡Áö°í ÀÖ´Ù.
    1. Bandwidth
    2. Transfer Type(Control, Bulk, Isochronous, Interrupt)
    3. Direction of Data Flow
    4. Maximum Packet/Buffer Size
  • 2°¡Áö Á¾·ùÀÇ Pipes
    1. Stream Pipes : USB FormatÀ¸·Î Á¤ÇØÁöÁö ¾ÊÀ½. ¾î¶² Á¾·ùÀÇ Streamµµ Pipe¸¦ ÅëÇØ ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Ù.
    2. Message Pipes : Á¤ÇØÁø USB FormatÀÌ ÀÖÀ½. ¸ðµÎ Host¿¡¼­ º¸³½ Request¿¡ ÀÇÇØ ÃʱâÈ­ µÇ´Â Host ControlledÀÓ. ÃʱâÈ­ µÈ ÈÄ¿¡ Data´Â Request¿¡¼­ ¿äûµÈ ¹æÇâÀ¸·Î Àü¼ÛµÈ´Ù. Áï Message Pipes´Â Data¸¦ ¾ç¹æÇâ ¸ðµÎ º¸³¾ ¼ö ÀÖÁö¸¸ Control Transfer¸¸ Áö¿øÇÑ´Ù.

1.9 Endpoint(Transfer) Types #

  • USB´Â Control, Interrupt, Isochronous, Bulk ÀÌ·¸°Ô 4°¡ÁöÀÇ Transfer/Endpoint TypesÀ» Á¤ÀÇÇÑ´Ù.

1.9.1 Control Transfers #

  1. ÀϹÝÀûÀ¸·Î Command¿Í Status OperationÀ» À§ÇØ »ç¿ëµÈ´Ù.
  2. USB Device¸¦ ÃʱâÈ­Çϰí, ¸ðµç Enumeration FunctionsµéÀÌ ÀÌ Control TransferÀ» »ç¿ëÇÑ´Ù.
  3. ÀϹÝÀûÀ¸·Î Host¿¡¼­ ÃʱâÈ­µÇ°í ÃÖ°íÀÇ ³ë·ÂÀ¸·Î Àü´ÞµÇ¾î »ç¿ëµÇÁö´Â BurstyÇϰí Radom ÇÑ PacketÀÌ´Ù.
  4. Low Speed¿¡¼­´Â 8 Bytes, High Speed¿¡¼­´Â 8, 16, 32, 64 Bytes, Full Speed¿¡¼­´Â 64 BytesÀÇ ±æÀÌÀÌ´Ù.
  5. 3°³ÀÇ Stages·Î ±¸ºÐµÉ ¼ö ÀÖ´Ù.
    • Setup Stage
      1. Request°¡ º¸³»Áö´Â °÷ÀÌ´Ù.
      2. Setup Token, Data Packet, Handshake Packet ÀÌ·¸°Ô 3°³ÀÇ PacketÀ¸·Î ±¸¼ºµÈ´Ù.
      3. Setup Token : Address¿Í Endpoint Number¸¦ °¡Áö°í ÀÖÀ¸¸ç Á¦ÀÏ Ã³À½ º¸³»Áø´Ù.
      4. Data Packet : Setup Token ´ÙÀ½À¸·Î º¸³»Áö¸ç Data0 ÀÇ PID TypeÀ» °¡Áö°í ÀÖ°í RequestÀÇ TypeÀ» ÀÚ¼¼ÇÏ°Ô ¼³¸íÇÏ´Â Setup PacketÀ» °¡Áö°í ÀÖ´Ù.
      5. Handshake Packet : ¼º°øÀûÀ¸·Î ¹Þ¾Ò´Ù´Â Acknowledge¸¦ º¸³»°Å³ª Error¸¦ °¡¸®Å°±â À§ÇÔ. FunctionÀÌ ¼º°øÀûÀ¸·Î Setup Data¸¦ ¹Þ¾Ò´Ù¸é(CRC ok, PID self-Check Okµî) ACK¸¦ º¸³½´Ù. ±×·¸Áö ¾ÊÀ¸¸é Data¸¦ ¹«½ÃÇϰí Handshake PacketÀ» º¸³»Áö ¾Ê´Â´Ù.
      6. Setup Stage¿¡¼­´Â STALL À̳ª NAKÀº IssueµÇÁö ¾Ê´Â´Ù.
      7. Setup Stage
    • Data Stage
      1. ¼±ÅÃÀûÀÌ´Ù.
      2. Çϳª ÀÌ»óÀÇ IN ¶Ç´Â OUT Transfer·Î ±¸¼ºµÈ´Ù.
      3. ¾ÕÀÇ Setup Stage¿¡¼­ ÀÌ Stage¿¡¼­ Àüµ¿µÉ DataÀÇ ¾çÀ» °áÁ¤ÇÑ´Ù.
      4. ¸¸¾à °áÁ¤µÈ ¾çÀÌ Maximum Packet Sizeº¸´Ù Å©´Ù¸é Data´Â ¿©·¯°³ÀÇ Transfer·Î ³ª´µ¾î Àü´ÞµÈ´Ù. (¸¶Áö¸· PacketÀ» Á¦¿ÜÇϰí´Â ¸ðµÎ Maximum Packet Size·Î)
      5. Data TransferÀÇ ¹æÇâ¿¡ µû¶ó 2°³ÀÇ ½Ã³ª¶ó¿À°¡ °¡´ÉÇÏ´Ù.
      6. IN
        • Host°¡ Control Data¸¦ ¹ÞÀ» Áغñ°¡ µÇ¾ú´Ù¸é IN TokenÀ» º¸³½´Ù.
        • FunctionÀÌ IN TokenÀ» ¹Þ¾ÒÀ¸³ª ±×°ÍÀÌ Error¶ó¸é(PID°¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù µîÀÇ) ÇØ´ç PacketÀ» ¹«½ÃÇÑ´Ù.
        • Error°¡ ¾Æ´Ï¶ó¸é Device´Â º¸³»Áú Control Data¸¦ Æ÷ÇÔÇÏ´Â DATA PacketÀ» ÀÀ´äÇϰųª, Endpoint¿¡¼­ Error°¡ ¹ß»ýÇß´Ù´Â Stall PacketÀ» º¸³»°Å³ª, Endpoint°¡ ÀÏÀº ÇÒ ¼ö ÀÖ´Â »óÅÂÀ̳ª º¸³¾ Data°¡ ¾ø´Ù´Â NAK PacketÀ¸·Î ÀÀ´äÇÒ ¼ö ÀÖ´Ù.
      7. OUT
        • Host°¡ Control Data¸¦ º¸³»°í ½Í´Ù¸é OUT TokenÀ» º¸³»°í ±× µÚ¸¦ Control Data¸¦ Payload¿¡ ´ã°íÀÖ´Â Data packetÀ» º¸³½´Ù.
        • OUT tokenÀ̳ª Data packetÀÇ ¾î´À ÇѺκÐÀÌ¶óµµ ¸Á°¡Á³´Ù¸é FunctionÀº PacketÀ» ¹«½ÃÇÑ´Ù.
        • FunctionÀÇ Endpoint Buffer°¡ ºñ¾î ÀÖ°í Buffer¿¡ Àß µé¾î ¿Ô´Ù¸é Host¿¡°Ô ACK¸¦ º¸³» Àß ¹Þ¾ÒÀ½À» ¾Ë¸°´Ù.
        • Buffer°¡ ºñ¾îÀÖÁö ¾Ê´Ù¸é(¾ÕÀÇ Packet ó¸® µîÀ¸·Î) FunctionÀº NAK¸¦ ¸®ÅÏÇÑ´Ù.
        • Endpoint°¡ Rrror»óÅÂ¶ó¼­ Halt»óŶó¸é STALLÀ» ¸®ÅÏÇÑ´Ù.
        • Data Stage

    • Status Stage
      1. Request Àü¹Ý¿¡ °ÉÄ£ Status¸¦ Report Çϰí, Àü¼ÛÀÇ ¹æÇâ¿¡ µû¶ó ¹æÇâÀ» Çѹø ¹Ù²Û´Ù.
      2. Ç×»ó Function¿¡ ÀÇÇØ 󸮵ȴÙ.
      3. IN
        • ¸¸¾à Host°¡ Data¸¦ ¹Þ±â À§ÇØ IN TokenÀ» º¸³Â´Ù¸é, Host´Â ¹Ýµå½Ã Data¸¦ ¼º°øÀûÀ¸·Î ¹Þ¾Ò´Ù´Â Acknowledge¸¦ º¸³»¾ß ÇÑ´Ù.
        • À̰ÍÀº Host°¡ OUT token À» Zero Length Data Packet¿Í ÇÔ²² º¸³¿À¸·Î ¼º»çµÈ´Ù.
        • ACK´Â FunctionÀÌ Command󸮸¦ ³¡³»°í ´Ù¸¥ Command¸¦ ó¸®ÇÒ Áغñ°¡ µÇ¾ú´Ù´Â °ÍÀ» °¡¸®Å²´Ù.
        • ¸¸¾à Çö Command¸¦ ó¸®ÇÒ ¶§ Error°¡ ¹ß»ýÇß´Ù¸é FunctionÀº (Host¿¡°Ô) STALL¸¦ Á¦±âÇÑ´Ù.
        • ÇÏÁö¸¸ FunctionÀÌ (¾î¶² Command¸¦) ÁøÇàÁßÀ̶ó¸é Status Stage¸¦ ´Ù½ÃÇѹø Çϱ⸦ ¹Ù¶ó´Â NAK¸¦ Host¿¡°Ô º¸³½´Ù.
      4. OUT
        • ¸¸¾à Host°¡ Data Stageµ¿¾È µ¥ÀÌÅ͸¦ º¸³»±â À§ÇØ OUT TokenÀ» º¸³Â´Ù¸é, FunctionÀº IN Token¿¡ Zero LengthÀÇ PacketÀ» ÀÀ´äÇÕÀ¸·Î Acknowledge¸¦ ÇØ¾ßÇÑ´Ù.
        • Error°¡ ÀϾ´Ù¸é STALLÀ», (´Ù¸¥)Data¸¦ ÁøÇàÇϱâ À§ÇØ ¹Ù»Û»óÅÂÀ̸é NAK¸¦ º¸³» ÈÄ¿¡ Host°¡ ´Ù½Ã ½ÃµµÇÏ°Ô ¿äûÇÑ´Ù.
      5. Status IN Stage / Status OUT Stage


  6. Host °¡ Enumerationµ¿¾È Device Descriptor¸¦ ¿äûÇÏ´Â ¿¹Á¦
    1. Host ´Â Setup TokenÀ» º¸³½´Ù. (À̰ÍÀº °ð Function¿¡°Ô ´ÙÀ½¿¡ µû¶ó¿À´Â °ÍÀÌ Setup PacketÀ̶ó´Â °ÍÀ» ¸»ÇÑ´Ù.)
    2. ÁÖ¼Ò Field´Â DeviceÀÇ (È£½ºÆ®°¡ Descriptor¸¦ ¿äûÇϰí ÀÖ´Â °÷ÀÇ)ÁÖ¼Ò¸¦ °¡Áö°í ÀÖÀ»°ÍÀÌ´Ù.
    3. Endpoint Number´Â Default Pipe¸¦ °¡¸£Å°´Â 0ÀÏ °ÍÀÌ´Ù.
    4. Host ´Â ´ÙÀ½À¸·Î ?DATA0 PacketÀ» º¸³½´Ù.
    5. ÀÌ ?DATA0 PacketÀº 8 Bytes ÀÇ 'Device Descriptor Request(USB Spec. 9Àå¿¡ ÀÖÀ½)'¸¦ Payload¿¡ °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù.
    6. FunctionÀº Setup PacketÀ» Àß ¹Þ¾Ò´Ù¸é °Å±â¿¡ ´ëÇÑ Acknowledge¸¦ º¸³½´Ù. ¸¸¾à Error°¡ ÀÖ´Ù¸é PacketÀ» ¹ö¸°´Ù. (--> Host´Â Ack¸¦ ¹ÞÁö ¸øÇßÀ¸¹Ç·Î Short DelayµÚ¿¡ PacketÀ» ´Ù½Ã º¸³½´Ù)
    7. First USB Transaction
      1.Setup Token Sync PID ADDR ENDP ?CRC5 EOP Address & Endpoint Number
      2.Data0 Packet Sync PID Data0 ?CRC16 EOP Device Descriptor Request
      3.Ack Handshake Sync PID EOP Device Ack. Setup Packet
    8. USB Device ´Â ÀÌÁ¦ 8 BytesÀÇ Data¸¦ µðÄÚµùÇϰí Device Descriptor Request¶ó´Â °ÍÀ» ¾Ë¾ÆÃ¦´Ù.
    9. ±×·¸´Ù¸é ÀÌÁ¦ Second USB TransactionÀÌ µÉ ?Device Descriptor ¸¦ º¸³»´Â ÀÛ¾÷À» ½ÃÀÛÇÑ´Ù.
      1.In Token Sync PID ADDR ENDP ?CRC5 EOP Address & Endpoint Number
      2. Data1 Packet Sync PID Data1 ?CRC16 EOP First 8 Bytes of Device Descriptor
      3. Ack Handshake Sync PID EOP Host Acknowledges Packet
      1. In Token Sync PID ADDR ENDP ?CRC5 EOP Address & Endpoint Number
      2. Data0 Packet Sync PID Data0 ?CRC16 EOP Last 4 bytes | Padding
      3. Ack Handshake Sync PID EOP Host Acknowledge Packet
    10. ¿©±â¿¡¼­´Â Maximum Payload Size¸¦ 8 Bytes·Î °¡Á¤Çß´Ù.
    11. Host ´Â Device°¡ ÀÌÁ¦ ÀÌ Endpoint·Î Data¸¦ º¸³¾ ¼ö ÀÖ´Ù´Â IN tokenÀ» º¸³½´Ù.
    12. Maximum Packet Size °¡ 8 Bytes¹Ç·Î 12 BytesÀÇ Device Descriptor¸¦ ³ª´©¾î¼­ º¸³»¾ß ÇÑ´Ù.
    13. ³ª´©¿ö¼­ º¸³¾¶§¿¡´Â ¸¶Áö¸· PacketÀ» Á¦¿ÜÇϰí´Â ¸ðµÎ Maximum Packet Size¸¦ ²Ë²Ë ä¿ö¼­ º¸³»¾ß ÇÑ´Ù.
    14. Device Descriptor°¡ º¸³»Á³´Ù¸é ´ÙÀ½À¸·Î Status TransactionÀÌ µû¶ó¿Â´Ù.
    15. TransactionÀÌ ¼º°øÀûÀ¸·Î ³¡³ª¸é Host´Â Àüü TransactionÀÌ ¼º°øÀûÀ¸·Î ³¡³µÀ½À» °¡¸£Å°´Â Zero Length Packet¸¦ º¸³½´Ù.
    16. ±×·¯¸é Function Àº ÀÚ½ÅÀÇ Status¸¦ °¡¸£Å°´Â ÀÀ´äÀ» ÇÑ´Ù.
      1. Out Token Sync PID ADDR ENDP ?CRC5 EOP Addresss & Endpoint Number
      2. Data1 Packet Sync PID Data1 ?CRC16 EOP Zero Length Packet
      3. Ack Handshake Sync PID EOP Device Ack. Entire Transaction

1.9.2 Interrupt Transfers #

  1. ÀϹÝÀûÀÎ MicrocontrollerÀÇ Interrupt Request¸¦ ó¸®ÇØ º» »ç¶÷Àº Interrupt´Â Device °¡ »ý¼ºÇÏ´Â °ÍÀ¸·Î ¾Ë°íÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ USB¿¡¼­´Â Device°¡ HostÀÇ ÁÖÀ§¸¦ ²ø±â À§Çؼ­´Â (Interrupt¸¦ ÀÏÀ¸ÄѼ­), Host°¡ ±×°ÍÀ» PollÇÒ¶§ ±îÁö ±â´Ù·Á¾ß ÇÑ´Ù. (±×°ÍÀÌ ±ä±ÞÇÑ»óȲÀÌ ¾Æ´Ï¶ó¸é)
  2. Interrupt Transfer´Â ¾Æ·¡ ³»¿ëÀ» Áö¿øÇÑ´Ù.
    1. Guaranteed Latency
    2. Stream Pipe - Unidirectional
    3. Error Detection and Next Period Retry
  3. Interrupt Transfer´Â ÀϹÝÀûÀ¸·Î ÁÖ±âÀûÀÌÁö ¾ÊÀ¸¸ç ÀÛÀº µð¹ÙÀ̽º¿¡¼­ "ÃʱâÈ­µÈ" ¾à°£ÀÇ Àẹ±â°¡ ÇÊ¿äÇÑ(Host°¡ PollÇÒ¶§±îÁö) Åë½ÅÀÌ´Ù.
  4. Interrupt Request´Â Device¿¡ ÀÇÇØ QueuedµÈ´Ù. (Host°¡ USB Device¿¡°Ô Data¸¦ ¿äûÇÒ¶§±îÁö - PollÇÒ¶§±îÁö)
  5. Low-Speed¿¡¼­ÀÇ maximum data size ´Â 8 bytes.
  6. Full-Speed¿¡¼­ÀÇ maximum data size ´Â 64 bytes.
  7. High-Speed¿¡¼­ÀÇ maximum data size ´Â 1024 bytes.
  8. Interrupt Transfer

  9. IN
    1. Host´Â ÁÖ±âÀûÀ¸·Î Interrupt Endpoint¸¦ PollingÇÑ´Ù.
    2. Polling Rate ´Â ?Endpoint Descriptor¿¡ ±ÔÁ¤µÇ¾î ÀÖ´Ù.
    3. °¢°¢ÀÇ PollÀº Host°¡ º¸³»´Â IN Token¿¡ ¿¬°üµÈ´Ù.
    4. IN Token¿¡¼­ Error°¡ ¹ß»ýÇϸé FunctionÀº ÇØ´ç PacketÀ» ¹«½ÃÇϰí Bus¸¦ MonitoringÇÏ´Â °ÍÀ» °è¼ÓÇÑ´Ù. (»õ·Î¿î ´ÙÀ½ TokenÀ» À§Çؼ­)
    5. ¸¸¾à Interrupt°¡ Device¿¡ ÀÇÇØ Queue¿¡ ÀúÀåµÇ¾ú´Ù¸é, FunctionÀº IN TokenÀÌ ¿ÔÀ» ¶§ Interrupt¿Í ÀûÀýÇÑ Data¸¦ ³Ö¾î¼­ Data packetÀ» º¸³½´Ù.
    6. HostÂÊ¿¡¼­´Â Data PacketÀ» ¼º°øÀûÀ¸·Î ¹Þ¾ÒÀ» ¶§ ACKÀ» µÇµ¹·Á ÁØ´Ù. ÇÏÁö¸¸ Error°¡ ÀϾÀ» ¶§¿¡´Â ¾Æ¹«·± ÀÀ´äÀ» ÇÏÁö ¾Ê´Â´Ù.
    7. IN TokenÀÌ ¿ÔÀ» ¶§ Queue¿¡ ÀúÀåµÈ Interrupt°¡ ¾ø´Ù¸é NAK¸¦ º¸³»ÁØ´Ù.
    8. Endpoint°¡ ErrorÀÎ »óÅ¿¡ ÀÖÀ¸¸é STALLÀ» º¸³»ÁØ´Ù.
  10. OUT
    1. ¸¸¾à È£½ºÆ®°¡ Interrupt data¸¦ º¸³»°í ½ÍÀ¸¸é, ¸ÕÀú OUT tokenÀ» º¸³»°í ¹Ù·Î À̾î ÇØ´ç InterruptÁ¤º¸°¡ µé¾îÀÖ´Â Data PacketÀ» º¸³½´Ù.
    2. ¹ÞÀº TokenÀ̳ª Data Packet¿¡ Á¶±ÝÀÌ¶óµµ ÀÌ»óÀÌ ÀÖÀ¸¸é FunctionÀº ÀÌ Request¸¦ ¹«½ÃÇÑ´Ù.
    3. ¸ðµÎ ÀÌ»óÀÌ ¾ø´Ù°í, FunctionÀÇ Endpoint Buffer°¡ ºñ¾îÀÖ°í, Buffer¿¡ ¹«»çÈ÷ ³Ö¾ú´Ù¸é HostÂÊ¿¡ Àß¹Þ¾Ò´Ù´Â ½ÅÈ£·Î ACK¸¦ º¸³½´Ù.
    4. Endpoint Buffer°¡ ºñ¾îÀÖÁö ¾Ê´Ù¸é(ÀÌÀüÀÇ µ¥ÀÌÅÍ Ã³¸®¸¦ À§ÇØ) FunctionÀº NAK¸¦ º¸³½´Ù.
    5. Endpoint°¡ Error¸¦ ³»¾î Halt bitÀÌ ¼ÂÆÃµÇ¾î ÀÖ´Ù¸é STALL¸¦ º¸³½´Ù.

1.9.3 Isochronous Transfers #

  1. Isochronous Transfer´Â ÁÖ±âÀûÀ̰í ÀÏÁ¤ÇÏ°Ô ÀϾ´Ù.
  2. ÀϹÝÀûÀ¸·Î ½Ã°£¿¡ ¹Î°¨ÇÑ Á¤º¸ (Audio, Video Stream°°Àº)¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù.
  3. ¸¸¾à Audio³ª Video¿¡ Delay³ª Retry of Data µîÀÌ ÀÖ´Ù¸é ²ûÂïÇÑ ¼Ò¸®³ª ¿µ»óÀ» ¿¹»óÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
  4. ÇÏÁö¸¸ Packet ¶Ç´Â FrameÀÌ Áö±Ý ºÎÅÍ °è¼Ó dropµÈ´Ù¸é ¹®Á¦°¡ µÉ°ÍÀÌ´Ù.
  5. Isochronous Transfer´Â ´ÙÀ½ »çÇ×À» Áö¿øÇÑ´Ù.
    1. Stream Pipe - Unidirectional
    2. CRC·Î ¿¡·¯ °ËÃâÀ» ÇÏÁö¸¸ µ¥ÀÌÅÍÀÇ ¹«°á¼ºÀ» Á¦°øÇÏÁö ¾ÊÀ¸¸ç ÀçÀü¼Ûµµ ÇÏÁö ¾Ê´Â´Ù.
    3. Full & High Speed ¿¡¼­¸¸ Áö¿øÇÑ´Ù.
    4. Guarnateed Access to USB bandwidth
    5. Bounded Latency
    6. No Data Toggling
  6. Isochronous EndpointÀÇ ?Endpoint Descriptor¿¡ Data PayloadÀÇ Maximum Size °¡ Á¤ÀǵǾî ÀÖ´Ù.
  7. ÃÖ´ëÄ¡´Â Full speed¿¡¼­´Â 1023 bytes, High speed¿¡¼­´Â 1024 bytesÀÌ´Ù.
  8. Maximum Data Payload °ªÀÌ BusÀÇ ¿ä±¸ Bandwidth¿¡ ¿µÇâÀ» ÁÙ °ÍÀ̹ǷÎ, ÀûÀýÇÑ Size¸¦ ã´Â °ÍÀÌ Çö¸íÇÒ °ÍÀÌ´Ù.
  9. Ä¿´Ù¶õ Payload¸¦ »ç¿ëÇÑ´Ù¸é Alternative Interface ½Ã¸®Áî¿Í ÇÔ²² Isochronous Payload Size¸¦ ¹Ù²Ù´Â °Í µîÀ» Á¤ÀÇÇÑ´Ù¸é ÇϳªÀÇ ÀåÁ¡ÀÌ µÉ¼öµµ ÀÖ´Ù.
  10. Enumerationµ¿¾È¿¡ Host°¡ Bandwidth Á¦ÇÑ ¶§¹®¿¡ Isochronous Endpoint¸¦ Ȱ¼ºÈ­ ÇÏÁö ¸øÇß´Ù¸é, ±×³É ½ÇÆÐ·Î ³¡³ª´Â °Í º¸´Ù´Â Size¸¦ ÁÙÀÌ´Â ¹æ¾ÈÀ» °ËÅäÇϴ°ÍÀÌ ÁÁ´Ù.
  11. Isochronous Endpoint·Î º¸³»Áö´Â Data´Â ¹Ì¸® NegotiatedµÈ Sizeº¸´Ù ÀÛ¾ÆÁú ¼ö ÀÖÀ¸¸ç Transaction¿¡¼­ TransactionÀ¸·Î ¹Ù²î¸é¼­ º¯ÇÒ ¼ö ÀÖ´Ù.
  12. Isochronous Transfer
  13. Isochronous Transfer´Â ErrorÀ̳ª STALL/HALT µîÀÇ Report´Â ¾²Áö ¾Ê´Â´Ù.

1.9.4 Bulk Transfer #

  1. Å« ¿ë¾çÀÇ Bursty Data¸¦ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ´Ù.(Print-Job to Printer, Image Data from Scanner)
  2. Data PayloadÀÇ ?CRC16 Field·Î Error¸¦ °ËÃâÇϰí/ÀçÀü¼ÛÇÏ¿© µ¥ÀÌÅ͸¦ Àü¼ÛÇÔ¿¡ ÀÖ¾î Error Free¸¦ ±¸ÇöÇÑ´Ù.
  3. ¸ðµç TransactionÀÌ ÇÒ´çµÈ ÈÄ ³²Àº Bandwidth¸¦ »ç¿ëÇÑ´Ù.
  4. ¸¸¾à Bus°¡ Isochronous ³ª(±×¸®°í) Interrupt µîÀ¸·Î ¹Ù»Ú´Ù¸é Bulk Data ´Â ¸Å¿ì ´À¸° ¼Óµµ·Î Àü´ÞµÉ °ÍÀÌ´Ù.
  5. µû¶ó¼­ Time¿¡ ¹Î°¨ÇÏÁö ¾Ê´Â °÷¿¡ »ç¿ëµÉ ¼ö ÀÖ´Ù.
  6. ´ÙÀ½Àº Bulk Transfer°¡ Á¦°øÇÏ´Â °ÍÀÌ´Ù.
    1. Å« ¿ë·®ÀÇ µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
    2. CRC¸¦ ÅëÇØ ¿¡·¯¸¦ °ËÃâÇÏ¸ç ¿¡·¯½Ã ÀçÀü¼ÛÀ» ÇÏ¿© µ¥ÀÌÅÍÀÇ ¹«°á¼ºÀ» º¸ÀåÇÑ´Ù.
    3. ÃÖ¼Ò Àẹ±â(Àü¼ÛÀ» À§ÇØ ±â´Ù¸®´Â ½Ã°£)À̳ª Bandwidth´Â GuaranteeÇÏÁö ¸øÇÑ´Ù.
    4. Stream Pipe - Unidirectional
    5. Full & High Speed Modes¿¡¼­¸¸ »ç¿ë °¡´ÉÇÏ´Ù.
  7. Full Speed Endpoint¿¡¼­´Â Bulk Packet »çÀÌÁî´Â 8, 16, 32, 64 BytesÀ̰í High Speed¿¡¼­´Â 512 bytes±îÁö °¡´ÉÇÏ´Ù.
  8. Bulk Transfer
  9. IN
    1. Host°¡ Bulk Data¸¦ ¹ÞÀ» Áغñ°¡ µÇ¾ú´Ù¸é IN TokenÀ» º¸³½´Ù.
    2. IN Token¿¡ Error°¡ ÀÖ´Ù¸é FunctionÀº ÇØ´ç PakcetÀ» ¹«½ÃÇÑ´Ù.
    3. IN TokenÀ» Error¾øÀÌ Àß ¹Þ¾Ò´Ù¸é
      • Bulk Data¸¦ Æ÷ÇÔÇϰí ÀÖ´Â Data PacketÀ»
      • Endpoint °¡ Error°¡ ÀÖ´Ù¸é Stall PacketÀ»
      • Endpoint °¡ Áغñ°¡ µÇ¾úÁö¸¸ ¾ÆÁ÷ º¸³¾ µ¥ÀÌÅͰ¡ ¾ø´Ù¸é NAK¸¦ º¸³½´Ù.
  10. OUT
    1. Host°¡ Bulk Data¸¦ º¸³»°í ½Í´Ù¸é OUT Token°ú ¹Ù·ÎÀ̾î Bulk Data¸¦ Æ÷ÇÔÇÏ´Â Data PacketÀ» º¸³½´Ù.
    2. OUT Token°ú Data PacketÀÇ ¾î´À ºÎºÐÀÌ¶óµµ Error°¡ ÀÖ´Ù¸é FunctionÀº ÇØ´ç PacketÀ» ¹«½ÃÇÑ´Ù.
    3. ¸ðµÎ Error°¡ ¾ø°í Function's Endpoint Buffer°¡ ºñ¾îÀÖ°í Buffer·Î Àß ³Ö¾ú´Ù¸é FunctionÀº Àß ¹Þ¾Ò´Ù´Â ACK¸¦ º¸³½´Ù.
    4. ¸ðµÎ Error°¡ ¾øÀ¸³ª Function's Endpont Buffer°¡ ºñ¾îÀÖÁö ¾Ê´Ù¸é NAK¸¦ º¸³½´Ù.
    5. ¸ðµÎ Error°¡ ¾øÀ¸³ª Endpoint°¡ Error»óŶó Halt bitÀÌ ¼³Á¤µÇ¾î ÀÖ´Ù¸é STALL¸¦ º¸³½´Ù.

1.9.5 Bandwidth Management #

  1. Host´Â BusÀÇ Bandwidth¸¦ Ã¥ÀÓÁ®¾ß ÇÑ´Ù.
  2. À̰ÍÀº Enumeration ¶§ Isochronous, Interrupt Endpoint¹× BusÀÇ µ¿ÀÛÀ» ÀüºÎ ¼³Á¤Çϸ鼭 ÇàÇØÁø´Ù.
  3. Full Speed bus¿¡¼­´Â 90%±îÁö Periodic Transfer(Interrupt, Isochoronous), High speed¿¡¼­´Â 80%±îÁö ÇÒ´çÇϵµ·Ï ÇϰíÀÖ´Ù. (³ª¸ÓÁö´Â Control°ú Bulk°¡ ¾²µµ·Ï)

1.10 USB Descriptors #

  • ¸ðµç USB Device´Â Device°¡ ¹«¾ùÀ̰í, ´©°¡ ¸¸µé¾ú°í ¾î¶² ¹öÀüÀÇ USB¸¦ Áö¿øÇÏ´ÂÁö µîÀÇ Á¤º¸¸¦ Host¿¡°Ô ¼³¸íÇØÁÖ´Â DescriptorÀÇ °èÃþ±¸Á¶¸¦ °¡Áö°í ÀÖ´Ù.
  • °øÅëÀûÀÎ USB Descriptors´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
    1. Descriptor Hierarchy

1.10.1 Device Descritors #

  1. Device Descriptor´Â DeviceÀÇ ¸ðµç°ÍÀ» Ç¥ÇöÇϰí ÀÖ´Ù.
  2. µû¶ó¼­ USB Device´Â ´ÜÁö ÇϳªÀÇ Device Descriptor¸¦ °¡Áö°í ÀÖ´Ù.
  3. Device Descriptor´Â (Áö¿øÇÏ´Â)USB Revision, ÀûÀýÇÑ µå¶óÀ̹ö¸¦ LoadÇÏ´Â µ¥ ¾²ÀÌ´Â Product ID¿Í Vender ID, Device°¡ °¡Áú ¼ö ÀÖ´Â °¡´ÉÇÑ Configuation¼ö µîÀ» °¡Áö°í ÀÖ´Ù.
  4. ConfiguraionÀÇ ¼ýÀÚ´Â ¾ó¸¶³ª ¸¹Àº Configuration Descriptor·Î BrancheÇÒ ¼ö ÀÖ´ÂÁö¸¦ ³ªÅ¸³½´Ù.
  5. Device Descriptor Format
    • bcdUSB : device°¡ Áö¿øÇÏ´Â °¡Àå ³ôÀº USB version. Binary Coded Decimal with a Format of 0xJJMN (JJ:?Major, M:Minor, N:Sub Minor)
      ==> USB 2.0 == 0x0200, USB 1.1 == 0x0110, USB 1.0 == 0x0100
    • bDeviceClass, bDeviceSubClass, bDeviceProtocol ´Â OS¿¡¼­ DeviceÀÇ Class Driver¸¦ ã±â À§ÇØ »ç¿ëÇÑ´Ù.
    • bMaxPacketSize : Endpoint 0ÀÇ Maximum Packet Size, (¸ðµç Device´Â Endpoint0¸¦ ¹Ýµå½Ã Áö¿øÇØ¾ß ÇÑ´Ù)
    • idVendor, idProduct : OS°¡ DeviceÀÇ Driver¸¦ ã±â À§ÇØ »ç¿ëÇÑ´Ù. Vender ID´Â USB-IF¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù.
    • bcdDevice : bcdUSB¿Í °°Àº FormatÀ» °¡Áö°í ÀÖ°í Device Version Number¸¦ ³ªÅ¸³½´Ù. ÀÌ °ªÀº °³¹ßÀÚ¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù.
    • iManufacturer, iProduct, iSerialNumber : °¢°¢À» ¼³¸íÇÏ´Â String DescriptorÀÇ Index °ª. String Descriptor¸¦ ¼±ÅÃÀûÀÎ DescriptorÀ̹ǷΠÁö¿øÇÏÁö ¾ÊÀ» °æ¿ì´Ñ Index¿¡ 0À» ³ÖÀ¸¸é µÈ´Ù.
    • bNumConfiguration : Device°¡ ±×°ÍÀÇ ÇöÀç Speed¸¦ Áö¿øÇÏ´Â ConfigurationÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù.

1.10.2 Configuration Descriptors #

  1. ¸î°³ÀÇ ´Ù¸¥ ConfigurationsÀ» °¡Áú ¼ö ÀÖ´Ù. (´ëºÎºÐÀÇ Device°¡ °£´ÜÇϰí Çϳª¸¸ »ç¿ëÇÒÁö¶óµµ)
  2. ÀÌ Æ¯Á¤ÇÑ ConfigurationÀÌ Power¸¦ ¾ó¸¶³ª ÇÊ¿ä·Î ÇÏ´ÂÁö, Device°¡ Self-PoweredÀÎÁö Bus PoweredÀÎÁö, °¡Áö°í ÀÖ´Â Interface ¼ýÀÚ µîÀÇ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù.
  3. Device°¡ EnumerateµÉ ¶§ Host´Â Device Descriptor¸¦ ÀÐ°í ¾î¶² ConfigurationÀÌ È°¼ºÈ­ µÉ °ÍÀÎÁö¸¦ °áÁ¤ÇÑ´Ù.
  4. Çѹø¿¡ ÇѰ¡Áö Configuration¸¸ °¡´ÉÇÏ´Ù.
  5. Inteface DescriptorÀÇ "Header"°¡ µÉ ¼ö ÀÖÀ¸¸ç ±×·¸°Ô »ç¿ëµÉ ¶§¿¡´Â ´Ù¸¥ ConfigurationÀÇ ´Ù¸¥ Transfer Mode¸¦ »ç¿ëÇÏ´Â ÇϳªÀÇ ConfigurationÀ» °¡Áú ¼ö ÀÖ´Ù.
  6. Configuration Descriptor Format
    • wTotalLength : HierarchyÀÇ ÃÑ Bytes¼ö (Configuration Descriptor°¡ ÀÐÈ÷¸é ±×°ÍÀº °ü·ÃµÈ Interface, Endpoint DescriptorµéÀ» Æ÷ÇÔÇÑ Configuration HierarchyÀÇ ÀüºÎ¸¦ ¸®ÅÏÇÑ´Ù.
    • wTotalLength
    • bNumInterface : ÀÌ Configuration¿¡ Á¸ÀçÇÏ´Â InterfaceÀÇ ¼ö
    • bConfigurationValue : ÀÌ ConfiguratinoÀ» ¼±ÅÃÇϵµ·Ï ?SetConfiguration Request¿¡¼­ »ç¿ëÇÏ´Â °ª (ÀÌ ConfiguratinoÀÇ ID)
    • iConfiguration : ÀÌ ConfigurationÀ» »ç¶÷ÀÌ Àб⠽±°Ô ¼³¸íÇÑ String DescriptorÀÇ Index°ª
    • bmAttributes : ConfigurationÀÇ Power Parameterµé.
      1. Device°¡ Self Powered¸é D6==1
      2. Device°¡ Bus Powerd D7 bitÀ» ¼³Á¤ (in USB 1.0) --> Áö±ÝÀº bMaxPower°¡ ¾²ÀδÙ.
      3. DeviceÀÇ Power¸ðµå¿¡ »ó°ü¾øÀÌ DeviceÀÇ Power ConsumptionÀ» bMaxPowerÀ¸·Î º¸°íÇØ¾ßÇÑ´Ù. ¶ÇÇÑ Host°¡ SuspendÀ϶§ ±ú¾î³¯ ¼ö ÀÖµµ·Ï Remote WakeupÀ» Áö¿øÇؾßÇÑ´Ù.
    • bMaxPower : Bus·ÎºÎÅÍ »ç¿ëÇÏ´Â Maximum Power

1.10.3 Interface Descriptors #

  1. DeviceÀÇ ÇѰ¡Áö Feature¸¦ ³ªÅ¸³»´Â ±â´ÉÀû ±×·ìÈ­ °úÁ¤ ¶Ç´Â Header·Î º¸ÀÏ ¼ö ÀÖ´Ù.
  2. ¿¹¸¦ µç´Ù¸é Fax/Scanner/Printer°¡µÇ´Â Multi-Function Device¸¦ °¡Áö°í ÀÖ´Ù¸é Fax, Scanner, Printer°¢ ±â´Éº°·Î Interface Descriptor°¡ µÉ ¼ö ÀÖ´Ù.
  3. Configuration Descriptor¿Í´Â ´Þ¸® Çѹø¿¡ ÇϳªÀÇ Interface Descriptor¸¸ Ȱ¼ºÈ­ ÇØ¾ßÇÑ´Ù´Â µîÀÇ Á¦ÇÑÀº ¾ø´Ù.
  4. InterfaceÀÇ ¼ö¸¦ ³ªÅ¸³»´Â bInterfaceNumber Field, Interface¿¡ SettingÀ» º¯È­½Ãų ¼ö ÀÖ´Â bAlternateSetting Field°¡ ÀÖ´Ù.
    • ¿¹¸¦ µé¾î µÎ°³ÀÇ Interface¸¦ °¡Áö°í ÀÖ´Â Device¸¦ °¡Áö°í Àִµ¥, °¢°¢ Interface one, Interface two¶ó ÇÏÀÚ.
    • Interface oneÀº bInterfaceNumber==0(ÀÌ Interface°¡ ù¹øÂ° InterfaceÀÓÀ» °¡¸£Å´), bAlternativeSetting==0, Interface two´Â bInterfaceNumber==1(ÀÌ Interface°¡ µÎ¹øÂ° InterfaceÀÓÀ» °¡¸£Å´), bAlternateSetting==0(Default).
    • ´Ù¸¥ Descriptor ¸¦ Àû¿ë½Ã۴µ¥ ¿©±â¼­´Â bInterfaceNumber==1(µÎ¹øÂ° Interface¸¦ °¡¸£Å´), bAlternativeSetting==1(ÀÌ Interface Descriptor´Â ¿ø·¡ÀÇ µÎ¹øÂ°Interface DescriptorÀÇ Alternative SettingÀÏ ¼ö ÀÖÀ½À» °¡¸£Å´)
    • ÀÌ ConfigurationÀÌ È°¼ºÈ­ µÇ¾ú´Ù¸é óÀ½ÀÇ µÎ°³ÀÇ Interface Descriptor(bAlternativeSetting==0ÀÎ)°¡ »ç¿ëµÈ´Ù.
    • ÇÏÁö¸¸ µ¿ÀÛ °úÁ¤¿¡¼­ Host°¡ ?SetInterface Request¸¦ Interface one¿¡°Ô bAlternativeSettings==1ÀÎ ´Ù¸¥ Interface Descriptor¸¦ Ȱ¼ºÈ­ Çϱâ À§ÇØ º¸³¾ ¼ö ÀÖ´Ù.
    • À̰ÍÀº µÎ°³ÀÇ (Ãß°¡)ConfigurationÀ» °¡Áö°í ÀÖÀ½À¸·Î Interface zero¿¡ ÀüÇô ¿µÇâÀ» ÁÖÁö ¾Ê°í Interface one¿¡ °ü·ÃµÈ Endpoint¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Â ÀåÁ¡À» Á¦°øÇØ ÁØ´Ù.
    • Interface Descriptor Example
  5. Interface Descriptor Format
    • bInterfaceNumber : Interface DescriptorÀÇ Index (Zero based, »õ·Î¿î Interface Descriptor ¿¡ ´ëÇÏ¿© +1)
    • bAlternativeSetting : Alternative Interfaces¸¦ ³ªÅ¸³¿ (?SetIntetface Request¿¡¼­ Alternative Interface´Â ¼±ÅõǾîÁú ¼ö ÀÖ´Ù)
    • bNumEndpoints : Çö Interface ¿¡¼­ »ç¿ëÇÏ´Â EndpointÀÇ ¼ö(¹Ýµå½Ã Endpoint0ÀÇ ¼ö ¸¦ Æ÷ÇÔÇϰí ÀÖ¾î¾ßÇÑ´Ù)
    • bInterfaceClass, bInterfaceSubClass, bInterfaceProtocol : Ưº°È÷ Áö¿øÇÏ´Â Class ¸¦ ³ªÅ¸³¾ ¶§ ¾²ÀδÙ(HID, Mass Storage, Communicationsµî). À̰ÍÀº ¸¹Àº DevicesµéÀÌ Æ¯Á¤ Device¸¦ À§ÇÑ Driver¸¦ ¾²´Â°ÍÀ»(±¸ÇöÇϴ°Í)À» Class¸¦ »ç¿ëÇÏ°Ô ÇÔÀ¸·Î ´ë½ÅÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.
    • iInterface : ÀÌ Interface¿¡ ´ëÇÑ String DescriptorÀÇ index

1.10.4 Endpoint Descriptors #

  1. Endpoint (0À» Á¦¿ÜÇÑ)¸¦ ¼³¸íÇϴµ¥ ¾²ÀδÙ.
  2. Endpoint 0´Â Ç×»ó Control Endpoint·Î »ç¿ëµÇ¸ç ¾î¶² DescriptorÀÇ RequestÀÌÀü¿¡ ÀÌ¹Ì ¼³Á¤µÈ´Ù.
  3. Host´Â À̵é Descriptor·ÎºÎÅÍ ¹ÞÀº Á¤º¸¸¦ BusÀÇ Bandwidth¸¦ Á¤ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù.
  4. Endpoint Descriptor Format
    • bEndpointAddress : ÀÌ Descriptor°¡ ¼³¸íÇϰí ÀÖ´Â Endpoint¸¦ °¡¸£Å²´Ù. (ep ID)
    • bmAttributes : Transfer TypeÀ» ³ªÅ¸³½´Ù. Control, Interrupt, Isochronous, Bulk°¡µÉ ¼ö ÀÖ´Ù. ¸¸¾à Isochronous ·Î Á¤ÇØÁ³´Ù¸é Synchronisation, Usage Type°°Àº Ãß°¡ÀÇ attribute°¡ ¼±ÅÃµÉ ¼ö ÀÖ´Ù.
    • wMaxpacketSize : Çö EndpointÀÇ Maximim Payload Size¸¦ ³ªÅ¸³½´Ù.
    • bInterval : ½ÇÁ¦ Àü¼ÛÀÇ Polling IntervalÀ» ³ªÅ¸³½´Ù. UnitÀº Frames.

1.10.5 String Descriptors #

  1. ¼±ÅÃÀûÀÌ´Ù.
  2. Àΰ£ÀÌ ÀÐÀ» ¼ö ÀÖ´Â Á¤º¸¸¦ Á¦°ø
  3. StringÀº Unicode FormatÀ¸·Î ÀÎÄÚµåµÇ°í Mutiple Language¸¦ Áö¿øÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. String Index 0 ´Â °¡´ÉÇÑ LanguageÀÇ List¸¦ ReturnÇÑ´Ù. (´Ù¸¥ Descriptor¿¡¼­ String Index¸¦ 0À¸·Î ÇÏ¸é »ç¿ëÇÏÁö ¾ÊÀ½À» ÀǹÌÇÑ´Ù)
  4. String Descriptor Zero Format
  5. À§ÀÇ String Descriptor´Â String Descriptor ZeroÀÇ FormatÀ» º¸¿©ÁØ´Ù. Host´Â À̰ÍÀ» ÀÐÀ½À¸·Î¼­ ¾î¶² Languages°¡ °¡¿ëÇÑÁö ¾Ë ¼ö ÀÖ´Ù. ¸¸¾à Language°¡ °¡¿ëÇÏ´Ù¸é Get Descriptor(String) RequestÀÇ wIndex Field¿¡ Language ID¸¦ º¸³»¾î ÇØ´ç ¾ð¾îÀÇ ½ºÆ®¸µÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.
  6. ½ÇÁ¦ ½ºÆ®¸µ µ¥ÀÌÅÍ´Â ´ÙÀ½°ú °°Àº FormatÀ¸·Î ´ãÀ» ¼ö ÀÖ´Ù.
  7. String Descriptor Format 2

1.10.6 Composition of USB Descriptors #

  • ¸ðµç Descriptors´Â °øÅë formatÀ» ±â¹ÝÀ¸·Î ¸¸µé¾îÁ® ÀÖ´Ù.
  • ù¹øÂ° Byte´Â DescriptorÀÇ ±æÀ̸¦ ±ÔÁ¤Çϰí
  • µÎ¹øÂ° Byte´Â DescriptorÀÇ TypeÀ» ¸»ÇÑ´Ù.
  • ¸¸¾à DescriptorÀÇ ±æÀ̰¡ ½ºÆå¿¡¼­ Á¤ÀÇÇÑ °Í º¸´Ù ÀÛ´Ù¸é Host´Â ±×°ÍÀ» ¹«½ÃÇÑ´Ù.
  • ¸¸¾à DescriptorÀÇ ±æÀ̰¡ ½ºÆå¿¡¼­ Á¤ÀÇÇÑ °Í º¸´Ù Å©´Ù¸é Host´Â ¿©ºÐÀÇ Byte¸¦ ¹«½ÃÇÏ°í ½ÇÁ¦ »çÀÌÁöÀÇ ³¡ºÎºÐ¿¡¼­ºÎÅÍ ´ÙÀ½ Descriptor¸¦ ã±â ½ÃÀÛÇÑ´Ù.
  • Descriptor Common Format


1.11 USB Requests #


1.11.1 The Setup Packet #

  1. ¸ðµç USB Device´Â Default Pipe·Î Setup Packet¿¡ ÀÀ´äÀ» ÇØ¾ßÇÑ´Ù.
  2. Setup PacketÀº Device¸¦ °ËÃâÇÏ°í ¼³Á¤Çϴµ¥ »ç¿ëµÇ¸ç USB DeviceÀÇ Address¸¦ ¼³Á¤Çϰųª, Device Descriptor¸¦ ¿äûÇϰųª, EndpointÀÇ »óŸ¦ CheckingÇÏ´Â µîÀÇ °øÅë FunctionÀ» ¿î¹ÝÇÑ´Ù.
  3. USB ȣȯ Host´Â ¸ðµç Request´Â ÃÖ´ë 5ÃÊ À̳»¿¡ ó¸® µÉ °ÍÀ» ±â´ëÇÑ´Ù. ¶ÇÇÑ °¢°¢ÀÇ Request¿¡ ´ëÇØ ¾ö°ÝÇÑ TimingÀ» Á¤ÀÇÇϰí ÀÖ´Ù.
    1. Standard Device Request without Data Stage ´Â ¸ðµÎ 50 ms À̳»¿¡ 󸮵Ǿî¾ß ÇÑ´Ù.
    2. Standard Device Request with Data Stage´Â RequestÈÄ 500 msÀ̳»¿¡ Data¸¦ ¹Þ±â ½ÃÀÛÇØ¾ß ÇÑ´Ù.
      • °¢°¢ÀÇ Data PacketÀº 500 ms À̳»¿¡ º¸³»Á®¾ß ÇÑ´Ù.(¾Õ PacketÀÇ ¼º°øÀûÀÎ Àü¼Û ÈÄ¿¡)
      • Status Stage´Â °¡Àå ¸¶Áö¸· Data PacketÀÇ Àü¼Û ÈÄ¿¡ 50 ms À̳»¿¡ ¿Ï·á µÇ¾î¾ß ÇÑ´Ù.
    3. Data Phase¸¦ °¡Áö°í ÀÖ´Â ?SetAddress Command ´Â 50 ms À̳»¿¡ Command¸¦ ó¸®Çϰí Status°¡ ReturnµÇ¾î¾ß ÇÑ´Ù. Address¸¦ ¹Ù²Ù±â À§ÇØ 2msÀÇ ½Ã°£À» ÁØ´Ù.
  4. À§ÀÇ Timeout ÁÖ±âµéÀº ¾ÆÁÖ Àú¼ÓÀÇ Device¿¡¼­µµ ±×´ë·Î ¹Þ¾Æµé¿©Áø´Ù. (ÇÏÁö¸¸ Serial·Î DebuggingÀ» ÇÒ¶§¿¡´Â ÁÖÀǸ¦ ¿äÇÑ´Ù. )
  5. Setup Packet Format
    1. ÃÑ 8 bytesÀÇ ±æÀÌ
    2. bmRequestType : RequestÀÇ ¹æÇâ, Á¾·ù, ¿¹»óµÈ(Designed) ¼ö½ÅÀÚ ¸¦ °áÁ¤ÇÑ´Ù.
    3. bRequest : ¸¸µé¾îÁø Request ÀÚü
      • bmRequestTypeÀÌ Á¤»óÀûÀ¸·Î ÆÄ½ÌµÇ°í, ½ÇÇàÀº ¿©·¯ Çڵ鷯 (Standard Device request handler, Standard Interface handler, Standard Endpoint handler, Class Device Request handler µîÀ¸·Î)·Î ó¸®µÉ ¼ö ÀÖ´Ù. Setup PacketÀ» ¾î¶»°Ô ParsingÇϰí ó¸®ÇÒ °ÍÀÎÁö´Â ¸ðµÎ °³¹ßÀÚ¿¡°Ô ´Þ·ÁÀÖ´Ù. ´Ù¸¥ ¹æ¹ý Çϳª´Â bRequest¸¦ ¸ÕÀú parsingÇÏ°í ´ÙÀ½¿¡ request¿¡ ¸Â´Â type°ú ¼ö½ÅÀÚ µîÀ» ÆÄ¾ÇÇÒ¼öµµ ÀÖ´Ù.
      • Standard Request´Â ¸ðµç USB Device¿¡°Ô °øÅëÀ̵ȴÙ.
      • Class Request ´Â DriverÀÇ Class¿¡ °øÅëÀ̵ȴÙ. ¿¹¸¦ µé¸é HID Class¸¦ µû¸£´Â ¸ðµç Device´Â ƯÁ¤ Class Request Set¿¡ ´ëÇÑ °øÅëÀ» °¡Áö°í ÀÖÀ» °ÍÀÌ´Ù. À̰ÍÀº Communication Class¸¦ µû¸£´Â Device¿Í ´Ù¸£¸ç Mass Stogage Class¸¦ µû¸£´Â Device¿Íµµ ´Ù¸£´Ù.
      • Vendor Specific Request´Â Device¸¶´Ù ´Ù¸£¸ç °³¹ßÀÚÀÇ ±¸Çö°ú Imagination¿¡ ´Þ·ÁÀÖ´Ù.
      • Common Request´Â ´Ù¸¥ Á¾·ùÀÇ ¼ö½ÅÀÚ¿¡°Ô Àü´ÞµÉ ¼ö ÀÖÀ¸¸ç °¢°¢ÀÇ ¼ö½ÅÀÚ¿¡ µû¶ó ´Ù¸¥ FunctionÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ?GetStatus Reqeust¸¦ ¿¹·Î µé¸é, ÀÌ Request´Â Device, Interface³ª Endpoint¿¡ Àü´ÞµÉ ¼ö ÀÖÀ»°ÍÀÌ´Ù. Device¿¡°Ô Àü´Þ µÇ¾úÀ» ¶§ ¸¸¾à Device°¡ Self Powered¶ó¸é Remote Wakeup Status¸¦ °¡¸£Å°´Â Ç÷¡±×¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. Ç×»ó 0¸¦ ¸®ÅÏÇÏ´Â Interface¿¡°Ô Àü´ÞµÇ¾úÀ» ¶§¿¡´Â 0À» ReturnÇÒ °ÍÀ̰í, Error¸¦ ÀÏÀ¸·Á HaltµÈ Endpoint¿¡°Ô Àü´ÞµÇ¾ú´Ù¸é Halt Flag°¡ ¼ÂÆÃµÇ¾î ReturnµÉ °ÍÀÌ´Ù.
    4. wValue : wIndex : Request¿¡ Parameter¸¦ °°ÀÌ Àü´ÞÇÒ ¶§ »ç¿ëÇÑ´Ù.
    5. wLength : Data Phase°¡ ÀÖÀ» ¶§ Àü¼ÛµÉ Bytes¼ö¸¦ ³ªÅ¸³½´Ù.

1.11.2 Standard Request #

  1. Standard Device Request
  2. Get Status Request°¡ Device¿¡ µµÂøÇßÀ»¶§ Devcie´Â ´ÙÀ½ÀÇ FormatÀ¸·Î Data Stageµ¿¾È 2 Bytes¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ´Ù.
    1. D0==1 : Self Powered
    2. D0==0 : Bus Powered
    3. D1==1 : Remote Wakeup Enabled -> Wake the host up during suspend. Remote Wakeup BitÀº ?SetFeature ¿Í ?ClearFeature Request¿¡¼­ DEVICE_REMOTE_WAKEUP(0x01)°ú ÇÔ²² »ç¿ëµÉ ¼ö ÀÖ´Ù.
  3. Clear Feature, Set Feature Request´Â Boolean Feature¸¦ ¼ÂÆÃÇÒ¶§ »ç¿ëÇÑ´Ù.
    1. ¸¸¾à ´ë»ó ¼ö½ÅÀÚ°¡ Device¶ó¸é, DEVICE_REMOTE_WAKEUP°¡ TEST_MODEÀÇ 2°¡Áö Feature¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
    2. Test Mode ´Â Device°¡ ¿©·¯°¡Áö Condition¿¡ ÀÖ°Ô Çã¿ëÇÑ´Ù.
  4. Set Address ´Â USB Device¿¡°Ô °íÀ¯ÇÑ ÁÖ¼Ò¸¦ ÇÒ´çÇϱâ À§ÇØ Enumuration½Ã¿¡ »ç¿ëµÇ¾î Áø´Ù.
    1. Address´Â wValue¿¡ ½áÁö¸ç ÃÖ´ë 127±îÁö °¡´ÉÇÏ´Ù.
    2. ÀÌ Request´Â Device°¡ ±×°ÍÀÇ ÁÖ¼Ò¸¦ Status Stage°¡ ³¡³ªÁö Àü±îÁö ¼ÂÆÃÇÏÁö ¾Ê´Â´Ù´Â Á¡¿¡¼­ À¯ÀÏÇÏ´Ù. (´Ù¸¥ ¸ðµç Request´Â Status SstageÀÌÀü¿¡ ¸ðµÎ ³¡³ª¾ß ÇÑ´Ù.)
    3. Set Descriptor/Get Descriptor´Â ƯÁ¤ÇÑ Descriptor¸¦ wValue¿¡ ¸®ÅÏÇÑ´Ù. Configuration Descriptor Request´Â Device Descriptor¿Í ¸ðµç Interface, Endpoint Descriptors¸¦ Çѹø¿¡ ¸®ÅÏÇÑ´Ù.
      • Endpoint Descriptors, Interface Descriptors ´Â ÀÌ Request·Î Á÷Á¢ Access µÇÁö ¾Ê´Â´Ù.
      • String Descriptor´Â Multiple Language Support¸¦ À§ÇØ wIndex¿¡ Language ID¸¦ °¡Áö°í ÀÖ´Ù.
  5. Get Configuration/Set Configuration Request ´Â Çö Device¸¦ ¼³Á¤Çϱâ À§ÇØ »ç¿ëÇÑ´Ù.
    1. Get Configuration RequestÀÎ °æ¿ì DeviceÀÇ »óŸ¦ ³ªÅ¸³»´Â Byte°¡ Data Stage¿¡ ¸®ÅϵǾî¾ß ÇÑ´Ù.
      • Zero Value´Â Device°¡ ¾ÆÁ÷ ¼³Á¤µÇÁö ¾Ê¾ÒÀ½À» ÀǹÌÇϰí, None Zero Value´Â ¼³Á¤µÇ¾úÀ½À» ÀǹÌÇÑ´Ù.
    2. Set Configuration Device¸¦ Ȱ¼ºÈ­ Çϴµ¥ »ç¿ëÇÑ´Ù.
      • ¾î¶² ConfigurationÀ» Ȱ¼ºÈ­ ÇÒ°ÍÀÎÁö ¼±ÅÃÇϱâ À§Çؼ­ wValueÀÇ Lower byte¿¡ ¿äûµÇ´Â Configuration DescriptorÀÇ bConfiguration Value¸¦ °¡Áö°í ÀÖÀ» ¼ö ÀÖ´Ù.

1.11.3 Standard Interface Request #

  1. Standard Interface Request
    1. wIndex : Interface¿¡¼­ Á÷Á¢ ¿äûÇÏ´Â InterfaceÀÇ Index¸¦ ³ªÅ¸³¿ (0 based)
    2. Get Status : InterfaceÀÇ Status¸¦ Return
    3. Clear Feature, Set Feature : Boolean Feature¼ÂÆÃ¿¡ ¾´´Ù. ÇöÀç ½ºÅØ¿¡´Â Interface Feature¸¦ ¾ÆÁ÷ Á¤ÀÇÇÏÁö ¾ÊÀ½
    4. Get Interface, Set Interface : Alternative Interface¸¦ ¼ÂÆÃÇÒ ¶§ »ç¿ëÇÑ´Ù.

1.11.4 Standard Endpoint Request #

  1. Standard Endpoint Request
    1. wIndex : ÂüÁ¶µÇ´Â Endpoint Index, Endpoint¿¡ DirectedµÇ±â À§ÇÑ Request ¹æÇâÀ» ³ªÅ¸³½´Ù.
    2. Endpoint RequestÀÇ wIndex Format
    3. Get Status : 2 bytesÀÇ EndpointÀÇ »óÅÂ(Halted/Stalled)¸¦ ¸®ÅÏÇÑ´Ù.
    4. Endpoint Get Status Return Format
    5. Clear Feature, Set Feature : Endpoint Feature¸¦ ¼ÂÆÃÇϴµ¥ »ç¿ëÇÑ´Ù. (Boolean Feature)
      • ÇöÀç ½ºÆå¿¡´Â ENDPOINT_HALT(0x00) ÇѰ¡Áö Feature¸¸À» Á¤ÀÇÇϰí ÀÖ´Ù.
    6. Sync Frame : Endpoint µ¿±â FrameÀ» ReportÇϱâ À§ÇØ »ç¿ëÇÑ´Ù.

1.12 Appendex A : USB SPEC. (Rev2.0) Summary #

  • Chapter 1 - Introduction
    1. USBÀÇ µµÀÔµ¿±â¿Í ¹üÀ§
    2. Á¤ÀÇµÈ Class¸¦ ÀÌÇØÇÏ¸é µÈ´Ù. ´Ù¸¥ ³»¿ëÀº ÂüÁ¶ [http]Á¤ÀÇµÈ Class
  • Chapter 2 - Terms and Abbreviations
    1. ¿ë¾î, ¾àÀÚµé
  • Chapter 3 - Background
    1. End-User¿¡°Ô ¸Å¿ì Æí¸®ÇÑ USB, ¸¶ÄÉÆÃÀ» À§ÇÑ Full, High Speed Ranges, Feature List
  • Chapter 4 - Architectural Overview
    1. Áß¿äÇÏ°Ô Àоî¾ß ÇÒ ½ÃÀÛ Chapter
    2. USB systemÀÇ ±âº»ÀûÀº overviewÁ¦°ø, (topoloty, data rates, data flow types, basic electrical specs µî)
  • Chapter 5 - USB Data Flow Model
    1. USB¿¡¼­ Data°¡ ¾î¶»°Ô Èê·¯°¡´Â°¡¸¦ ¼³¸íÇϱ⠽ÃÀÛÇÏ´Â Chapter
    2. Endpoints, Pipes, °°Àº ¿ë¾î ¼Ò°³
    3. Control, Interrupt, Isochronous, Bulk ÀÇ Flow Type¼³¸í
  • Chapter 6 - Mechanical
    1. USBÀÇ µÎ°³ÀÇ Standard Connector¿¡ ´ëÇÑ ¼³¸í
    2. Type A Connector´Â DownstreamÀ» À§ÇØ °í¾ÈµÇ¾ú°í, Type B´Â UpstreamÀ» À§ÇØ °í¾ÈµÇ¾ú´Ù´Â °ÍÀÌ °¡Àå Áß¿ä (µû¶ó¼­ µÎ°³ÀÇ Upstream ¶Ç´Â DownstreamÀÇ Connector¸¸À¸·Î´Â ÄÉÀ̺íÀ» ±¸¼ºÇÒ ¼ö ¾ø´Ù)
    3. USB cable »ý»êÀÚ°¡ ¾Æ´Ï¸é ´õÀÌ»ó º¼ ³»¿ëÀÌ ¾øÀ½
  • Chapter 7 - Electircal
    1. Impedance, Rise/Fall times, Driver/Receiver Specifications, Bit Level Encoding, Bit Stuffing µîÀÇ Low Level Electrical SignallingÀ» ¼³¸íÇÑ´Ù.
    2. µÎ Data LineÀ» ÃøÁ¤¿ë Register¸¦ ÅëÇØ Device Speed¸¦ ¾Ë¾Æ³»´Â ¹ý
    3. Powered Device¿Í Self Powered Device
  • Chapter 8 - Protocol Layer
    1. USB PacketÀ» Byte Level·Î ¼³¸í (Sync, Pid, Address, Endpoint, CRC Fields¸¦ Æ÷ÇÔÇÏ¿©)
  • Chapter 9 - USB Device Frame Work
    1. °¡Àå Áß¿äÇÑ Chapter
    2. Bus Enumeration°ú Request Codes(Set Address, Get Descriptor µî)¼³¸í
  • Chapter 10 - USB Host Hardware and Software
    1. Host°ü·ÃµÈ ÁÖÁ¦¸¦ ´Ù·ë
    2. Frame, Microframe Generation, Host Conntroller Requirements µî
    3. Host¸¦ µðÀÚÀÎÇÒ °ÍÀÌ ¾Æ´Ï¸é Skip
  • Chapter 11 - Hub Specification
    1. USB Hubs¿¡´ëÇÑ ³»¿ë
    2. Hub Configuration, Split Transactions, Standard Descriptors of Hub Class µî
    3. Hubs¸¦ µðÀÚÀÎ ÇÒ °ÍÀÌ ¾Æ´Ï¸é Skip
  • Appendex A - Transaction Examples
    1. ¿©·¯ TransactionÀÇ Control, BulkµîÀÇ Flow Type¿¡ µû¸¥ ¿¹Á¦ (±×¸²À¸·Î Àß ³ª¿Í ÀÖÀ½)
  • Appendex B - Example Declaration for State Machines
  • Index

1.13 Reference #


March, 2010
 123456
78910111213
14151617181920
21222324252627
28293031 



HelpOnRules
STUN
UsingTheCiscoIPPhone
XTAPACHE_FLOW
XTPROXYV3_FLOW
net/ipv6
last modified 2005-02-12 18:54:59
Copyright ¨Ï 2003, by Nobody.