zoukankan      html  css  js  c++  java
  • MF Porting之USB驱动开发

    花费了近三个礼拜的时间,终于完成了TI开发板的USB驱动开发,现在回头想一想,其实也没有什么,具体硬件方面的通信由DM355实现了,软件层面的数据交互由MF Porting实现了,所做的也就是熟悉了解USB通信协议和DM355 USB相关的寄存器。

    在开发驱动的过程中,觉得有这么几个难点,一是DM355支持三种USB模式:devicehostOTGUSB相关的寄存器比较多,并且由于该CPU推出才半年,不仅说明书语焉不详,相关示例程序也没有,所以开发起来挺费功夫的;二是USB协议比我以前接触的网口、串口通信要复杂多了,要通过状态机等等机制才能一步步完成相关通信过程。

          

         MF默认的USB驱动支持V1.10协议,仅支持两个端点(0是默认端点,所有的USB设备都支持),默认的配置如下:

    一、驱动描述表(18 byte

    1、类型=device1

    2USB支持的版本是V1.10

    3、设备类、子类、协议都为0

    4、端点0的最大包字节数为8

    5、厂商ID=0x15A2

    6、产品ID=0x0026

    7、设备发行版本V1.00

    8、厂商信息索引=1

    9、产品名字索引=2

    10、序列号产品索引=0

    11、配置描述表的数目=1

    二、标准配置描述表(9 byte

    配置标识=2 =0 总长度=配置描述表长度+接口描述表长度+两个端口描述表长度

    1、类型=CONFIGURATION2

    2、配置信息总长度=配置描述表长度+接口描述表长度+两个端口描述表长度

    3、支持的接口数=1

    4、该配置的标识=1

    5、配置描述符索引=0

    6、属性:自给电源

    7USB的总线电源耗费量=280mA

    三、标准接口描述表(9 byte

    1、类型=INTERFACE4

    2、接口号=0   (如果存在多个接口,该序号是接口索引号)

    3、可选设置的索引值=0

    4、端点数=2   0表示仅支持缺省端点)

    5、接口类=0xFF,表示由厂商自己说明

    6、接口子类=1

    7、接口协议=1

    8、接口字符串描述索引=0

    四、端点1描述表(7 byte

    1、类型=ENDPOINT5

    2、地址=1,输入端点

    3、传送类型=批传送

    4、最大包大小=64

    5、时间间隔为0,该传输模式忽略该值

    五、端点2描述表(7 byte

    1、类型=ENDPOINT5

    2、地址=2,输出端点

    3、传送类型=批传送

    4、最大包大小=64

    5、时间间隔为0,该传输模式忽略该值

    六、厂商名字

    七、产品名字

    八、显示名字

    九、friendly namee7e70ea2

    十、sideshow OS版本: MSFT100

    十一、sideshow相关配置信息

    字符串语言是U.S. English    0x0409

    ----------------------------------

    顺便说一句,目前正在移植Sideshowsideshow借助串口驱动的接口实现USB通信(也就是说当串口等于约定的32的时候(COM33)操作的是USB设备)。
  • 相关阅读:
    HDU 5585 Numbers
    HDU 3308 LCIS
    POJ 2991 Crane
    POJ 1436 Horizontally Visible Segments
    POJ 3667 Hotel
    HaiHongOJ 1003 God Wang
    【SDOI 2008】 递归数列
    5月19日省中提高组题解
    【HDU 1588】 Gauss Fibonacci
    【POJ 3233】Matrix Power Series
  • 原文地址:https://www.cnblogs.com/yefanqiu/p/1367720.html
Copyright © 2011-2022 走看看