花费了近三个礼拜的时间,终于完成了TI开发板的USB驱动开发,现在回头想一想,其实也没有什么,具体硬件方面的通信由DM355实现了,软件层面的数据交互由MF Porting实现了,所做的也就是熟悉了解USB通信协议和DM355 USB相关的寄存器。
在开发驱动的过程中,觉得有这么几个难点,一是DM355支持三种USB模式:device、host、OTG,USB相关的寄存器比较多,并且由于该CPU推出才半年,不仅说明书语焉不详,相关示例程序也没有,所以开发起来挺费功夫的;二是USB协议比我以前接触的网口、串口通信要复杂多了,要通过状态机等等机制才能一步步完成相关通信过程。
MF默认的USB驱动支持V1.10协议,仅支持两个端点(0是默认端点,所有的USB设备都支持),默认的配置如下:
一、驱动描述表(18 byte)
1、类型=device(1)
2、USB支持的版本是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、类型=CONFIGURATION(2)
2、配置信息总长度=配置描述表长度+接口描述表长度+两个端口描述表长度
3、支持的接口数=1
4、该配置的标识=1
5、配置描述符索引=0
6、属性:自给电源
7、USB的总线电源耗费量=280mA
三、标准接口描述表(9 byte)
1、类型=INTERFACE(4)
2、接口号=0 (如果存在多个接口,该序号是接口索引号)
3、可选设置的索引值=0
4、端点数=2 (0表示仅支持缺省端点)
5、接口类=0xFF,表示由厂商自己说明
6、接口子类=1
7、接口协议=1
8、接口字符串描述索引=0
四、端点1描述表(7 byte)
1、类型=ENDPOINT(5)
2、地址=1,输入端点
3、传送类型=批传送
4、最大包大小=64
5、时间间隔为0,该传输模式忽略该值
五、端点2描述表(7 byte)
1、类型=ENDPOINT(5)
2、地址=2,输出端点
3、传送类型=批传送
4、最大包大小=64
5、时间间隔为0,该传输模式忽略该值
六、厂商名字
七、产品名字
八、显示名字
九、friendly name:e7e70ea2
十、sideshow OS版本: MSFT100
十一、sideshow相关配置信息
字符串语言是U.S. English 0x0409
----------------------------------
顺便说一句,目前正在移植Sideshow,sideshow借助串口驱动的接口实现USB通信(也就是说当串口等于约定的32的时候(COM33)操作的是USB设备)。
分享到:
相关推荐
mtp usb驱动32和64位下载(win7mtp usb驱动) Media Transfer Protocol Porting Kit 媒体传输协议移植工具包 解决手机连接电脑驱动安装失败导致手机识别不了的问题
标题中的“MStar USB串口驱动 USB驱动”指的是MStar公司生产的用于USB串口通信的驱动程序。MStar,全称晨星半导体,是一家全球知名的半导体解决方案提供商,尤其在电视和机顶盒芯片领域有着广泛的影响力。USB串口...
总的来说,Mstar USB调试器驱动是开发和维护Mstar芯片设备的重要工具,它的存在使得开发者能够高效地进行软件调试和设备优化。通过正确安装和使用驱动,用户可以充分利用Mstar USB调试器的功能,提升开发效率,确保...
3. **源码分析**: "realtek 蓝牙 linux驱动源码"包含驱动程序的原始代码,开发者可以通过阅读源码理解驱动的工作原理,调试问题,或者根据特定需求进行定制化开发。 4. **移植过程**: 移植驱动通常涉及以下步骤: ...
【Lenovo LX1815 USB蓝牙适配器驱动】是一款专为Lenovo LX1815设计的硬件设备驱动程序,它使用户能够通过USB接口连接并使用蓝牙功能。这款适配器采用了RTL8761B芯片,该芯片是Realtek半导体公司生产的一款高效能、低...
USB协议栈porting需要考虑到ARM处理器的指令集、内存组织等因素。同时,需要实现USB打印机驱动的控制逻辑,例如打印机的状态监控、打印机的控制命令等。 六、结论 基于ARM的USB打印机驱动设计是嵌入式系统中的一种...
标题中的"Porting-WDM-Drvs-to-KMDF.rar"指的是一个关于将WDM(Windows Driver Model)驱动程序移植到KMDF(Kernel-Mode Driver Framework)的压缩包资源。这个资源包含了一篇名为"Porting-WDM-Drvs-to-KMDF.ppt"的...
标题中的“MTP USB驱动win7 32+64位可用版”指的是适用于Windows 7操作系统32位和64位版本的Media Transfer Protocol (MTP) USB驱动程序。MTP是一种数字设备(如智能手机、音乐播放器)与计算机之间传输数据的协议,...
MTP是一种由Microsoft开发的数字媒体设备通信协议,它替代了传统的USB Mass Storage (UMS) 协议,为移动设备如智能手机和平板电脑提供了更好的文件管理和数据同步功能。 **MTP协议的优势** 1. **非阻塞传输**:MTP...
WP8手机驱动程序,是WP8手机连接电脑时所必需的usb驱动MTP Porting Kit,有时候你的wp8手机无法连接电脑,很有可能是驱动问题,这时你需要重装这款驱动。它适用于win7/8系统,可以用于连接手机和电脑,方便大家传输...
Linux驱动开发是一个深入操作系统内核的复杂领域,它涉及到对硬件设备的理解以及如何与之通信。这份"Linux驱动开发课件.zip"包含了丰富的学习资源,旨在帮助初学者和有经验的开发者提升在C语言、数据结构、Unix C、...
KSZ8873 PHY驱动是基于Linux 2.6.38内核开发的,适用于KSZ8873系列交换机设备,包括KSZ8873或KSZ8863交换机。该驱动支持在MDIO/MDC、SPI或I2C接口上配置KSZ8873 PHY寄存器。 6. KSZ8873驱动移植 驱动移植部分介绍...
2. **ReleaseNotes_for_BT_ANDROID_4.4_USB.txt**:这份文件包含了驱动的发布说明,记录了驱动的主要特性、已知问题以及可能的解决办法,帮助用户了解驱动的最新更新和可能遇到的问题。 3. **hardware、patches、...
总之,面对Win7 32bit系统无法安装MTP驱动的问题,用户可以通过下载并运行“win7无法安装MTP USB驱动解决方案.exe”来尝试自动修复,或者手动安装“mtp usb驱动_32_v4.9.0.msi”来更新驱动。同时,可以参考“西西...
《UBoot 移植在 OK210 开发板上的实践与解析》 在嵌入式系统领域,UBoot(Universal Boot Loader)是一款广泛应用的引导...通过这个过程,我们可以学习到嵌入式系统的底层驱动开发,增强对嵌入式系统整体架构的了解。
周边设备所需的驱动程序也需要为特定的操作系统进行开发。 然而,随着Linux进入嵌入式领域,半导体公司本身就能够将操作系统移植到新处理器上,因为Linux内核的源代码是开源的。GNU项目提供了丰富的开发工具,支持...
描述中提到的“联想LX1815 usb蓝牙5.0 驱动”是指这款驱动适用于联想电脑上USB接口的蓝牙5.0适配器。它强调了在Windows系统和Linux系统中的兼容性,表明无论用户使用的是哪种操作系统,都能实现蓝牙设备的正常连接。...
### LCD Driver Porting Guide #### 1. 引言 本文档主要介绍如何在SIM8950 Android平台上通过Display Serial Interface (DSI)在内核(Kernel)和Little Kernel (LK)中启动显示面板。这是一份LCD驱动移植手册,内容...