작업할 애플리케이션을 개발해야 합니다.C8051F340-TBUSB를 통한 Silicon Labs 개발 보드에서(분명히 말하자면 그림 1의 USB 디버그 어댑터가 아니라 이전 링크의 그림 4에 있는 P3 커넥터를 사용하고 있습니다). USB를 통해 수신된 데이터를 에코하는 샘플 프로그램으로 장치를 플래시했습니다. 그런데 USB 장치로 데이터를 보내는 방법을 모르기 때문에 시도할 수 없습니다. 낮은 수준에서 USB 장치를 사용하는 것은 이번이 처음입니다.
나는 Xubuntu 18.04에 있고 lsusb -v
명령은 무엇보다도 다음을 보여줍니다.
Bus 001 Device 023: ID 10c4:ea61 Cygnal Integrated Products, Inc. CP210x UART Bridge
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x10c4 Cygnal Integrated Products, Inc.
idProduct 0xea61 CP210x UART Bridge
bcdDevice 1.00
iManufacturer 1 Myself
iProduct 2 USB communication test
iSerial 3 0001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 64mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
이것은 내 장치인 것 같습니다("iManufacturer" 및 "iProduct" 필드를 인식합니다).
바이트, 문자열 또는 기타 콘텐츠를 장치로 어떻게 보내나요? 또한, 전송된 데이터를 어떻게 읽나요?
답변1
HID 장치의 경우 dmesg
해당 hidraw
장치를 보고, 찾고, 장치를 쓰거나 읽습니다( cat
, hexdump
).
HID 카테고리에 따라 에서도 이벤트를 받을 수 있습니다 /dev/event...
.
그러나 HID 장치의 경우
bInterfaceClass 3 Human Interface Device
따라서 장치를 올바르게 프로그래밍하지 않았을 수 있습니다. HID 설명자(debugfs를 통해 액세스 가능)도 정확해야 합니다.
또한 HID가 작동하지 않는 경우를 대비하여 usbmon
(Wireshark를 통해 액세스 가능) 및 를 확인하세요 .libusb