USB串口设备_笔记
来源:互联网 发布:张艺兴而立24淘宝 编辑:程序博客网 时间:2024/05/29 19:40
实现USB串口(参考圈圈教材)
1、修改Device Descriptor,需在设备描述符中指定设备类型,bDeviceClass字段 = 0x02(通信设备类的类代码),子类与所使用的协议都指定为0。
修改PID/VID。
2、修改Configuration Descriptor,需具备两个接口,CDC类接口和数据类接口。
- 在CDC设备中,必须有一个CDC接口,以供数据类接口衣服,CDC接口使用标准接口描述符,有一个中断输入端点,用来报告状态。
/*******************CDC类接口描述符*********************/ //bLength字段。接口描述符的长度为9字节。 0x09, //bDescriptorType字段。接口描述符的编号为0x04。 0x04, //bInterfaceNumber字段。该接口的编号,第一个接口,编号为0。 0x00, //bAlternateSetting字段。该接口的备用编号,为0。 0x00, //bNumEndpoints字段。非0端点的数目。CDC接口只使用一个中断 //输入端点。 0x01, //bInterfaceClass字段。该接口所使用的类。CDC类的类代码为0x02。 0x02, //bInterfaceSubClass字段。该接口所使用的子类。要实现USB转串口, //就必须使用Abstract Control Model(抽象控制模型)子类。它的 //编号为0x02。 0x02, //bInterfaceProtocol字段。使用Common AT Commands(通用AT命令) //协议。该协议的编号为0x01。 0x01, //iConfiguration字段。该接口的字符串索引值。这里没有,为0。 0x00,
- CDC类中,不具备HID描述符和报告描述符,而是功能描述符(类特殊接口描述符),用来描述接口功能。
/***************以下为功能描述符****************/ /********* Header Functional Descriptor ********/ //bFunctionLength字段。该描述符长度为5字节 0x05, //bDescriptorType字段。描述符类型为类特殊接口(CS_INTERFACE) //编号为0x24。 0x24, //bDescriptorSubtype字段。描述符子类为Header Functional Descriptor //编号为0x00。 0x00, //bcdCDC字段。CDC版本号,为0x0110(低字节在先) 0x10, 0x01, /**** Call Management Functional Descriptor ****/ //bFunctionLength字段。该描述符长度为5字节 0x05, //bDescriptorType字段。描述符类型为类特殊接口(CS_INTERFACE) //编号为0x24。 0x24, //bDescriptorSubtype字段。描述符子类为Call Management //functional descriptor,编号为0x01。 0x01, //bmCapabilities字段。设备自己不管理call management 0x00, //bDataInterface字段。没有数据类接口用作call management 0x00, /*** Abstract Control Management Functional Descriptor ***/ //bFunctionLength字段。该描述符长度为4字节 0x04, //bDescriptorType字段。描述符类型为类特殊接口(CS_INTERFACE) //编号为0x24。 0x24, //bDescriptorSubtype字段。描述符子类为Abstract Control //Management functional descriptor,编号为0x02。 0x02, //bmCapabilities字段。支持Set_Line_Coding、Set_Control_Line_State、 //Get_Line_Coding请求和Serial_State通知 0x02, /*** Union Functional Descriptor **/ //bFunctionLength字段。该描述符长度为5字节。 0x05, //bDescriptorType字段。描述符类型为类特殊接口(CS_INTERFACE) //编号为0x24。 0x24, //bDescriptorSubtype字段。描述符子类为 //Union functional descriptor,编号为0x06。 0x06, //MasterInterface字段。这里为前面编号为0的CDC接口。 0x00, //SlaveInterface字段,这里为接下来编号为1的数据类接口。 0x01,
0 0
- USB串口设备_笔记
- 自定义USB-HID设备_笔记
- Linux USB虚拟串口设备
- USB虚拟串口实验_STM32F1开发指南_第五十三章——USB学习笔记
- Android 外接USB转串口设备开发笔记(Android与单片机通过usb转串口通信)
- android设备使用usb串口传输数据
- Symbian串口通信——设备上USB串口通信
- 生成过滤设备并绑定_串口
- linux下usb转串口编译笔记
- USB学习总结3—USB gadget设备驱动实现(usb串口功能)
- linux下如何使用USB转串口设备
- Linux系统下使用USB转串口连接工业设备
- Linux 下串口USB等设备通信编程入门1
- Linux 下串口USB等设备通信编程入门2
- ubuntu下如何使用USB转串口设备
- Linux下如何使用USB转串口设备
- 让非root用户有权限访问USB串口设备。
- 在Ubuntu下配置USB转串口设备的权限
- Java基础--Java并发总结
- Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]
- MIPI 小结
- Hadoop copy a directory
- hdu1114 Piggy-Bank --完全背包
- USB串口设备_笔记
- SeekBar单向选择,SeekBar使用demo
- wust1592期望
- 提取HOG特征训练SVM分类器(一)HOG篇
- Servlet的四个重要对象
- ios
- Crosswalk/XwalkView研究
- 推荐系统经典论文文献及业界应用
- Codeforces Round #347 (Div. 2) B. Rebus(给你一个等式里面只含加减号凑出一个数)