![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WINCE_驱动_USB
landishu
这个作者很懒,什么都没留下…
展开
-
WINCE接收设备插入拔出消息
http://blog.csdn.net/lqx4_3/article/details/6661649在WINCE系统中,可以通过由窗口接收一个事件来判断有新设备插入。窗口只需要接收该消息:WM_DEVICECHANGE。然后,通过判断设备类型和设备名称就可以判断具体的设备插入。例如判断 SD卡的插入和拔出操作,其中SD卡的设备名为"DSK1:",那么可以在顶层窗口中接收并判断转载 2013-12-27 16:13:06 · 558 阅读 · 1 评论 -
4.2 基于OHCI的USB主机 —— USB设备命令介绍
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/269438 USB 协议能够在启动或是当设备插入系统时对设备进行备置,这就是USB设备为什么可以执插拨的原因。USB 设备被分成以下几类:显示器(Monitors)、通讯设备(Communi转载 2013-10-25 17:44:31 · 511 阅读 · 0 评论 -
3.16 基于OHCI的USB主机 —— 中断向量处理
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/261143 使用芯片提供的例程,中断向量处理程序也非常简单。在上面的AIC中断配置中,中断产生不是直接调用用于处理中断事务的函数,而是调用一个用汇编语言编写的函数,该函数主要功能是在中断处理函数调用前后转载 2013-10-25 17:42:15 · 546 阅读 · 0 评论 -
3.13 基于OHCI的USB主机 —— OHCI(批量端口读数据)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/252090 对于U盘来说,进行U盘的数据传输时需要通过批量传输端口收发数据,所使用的协议为Mass Storage协议,参见《Universal Serial Bus Mass Storage Cl转载 2013-10-25 17:40:24 · 513 阅读 · 0 评论 -
3.12 基于OHCI的USB主机开发 —— OHCI(控制端口写数据)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/247246 在USB设备初始化枚举过程中,需要发送一些设置命令到USB设备上,需要调用本函数来完成。函数的处理跟控制端口读数据差不多,只不过TD的数据传输方向设置不一样:/**转载 2013-10-25 17:39:41 · 537 阅读 · 0 评论 -
4.3 基于OHCI的USB主机 —— USB标准请求
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/269441 USB标准设备请求是用来完成USB设备枚举的命令。USB设备必须对标准设备请求做出响应,不管该设备是否已经被分配了一个默认的地址或该设备目前正在配置。所有的标准请求都是使用默认端点(0)来传转载 2013-10-25 17:45:03 · 620 阅读 · 0 评论 -
3.17 基于OHCI的USB主机 —— 中断处理程序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/261181 在OHCI的体系下,判断数据是否传输完毕是需要通过中断程序来判断的,当USB主机设置了HcControl和HcCommandStatus寄存器开始传输数据后,AM9200 自动开始数据传转载 2013-10-25 17:43:08 · 620 阅读 · 0 评论 -
3.14 基于OHCI的USB主机开发 —— OHCI(批量端口写数据)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/253009 通过批量端口向U盘写数据的函数处理与上面类似,只不过ED[0]下面要有2个TD,一个是CBW,另一个是DATA。而ED[1]下只有1个TD,是CSW。在本函数内只处理Mass转载 2013-10-25 17:41:16 · 595 阅读 · 0 评论 -
HCD中Root Hub对象的初始化
http://blog.csdn.net/njuitjf/article/details/6292218前面有篇文章,说到了如何获取USB设备的Descriptor。其中有一个步,通过调用CHcd类的成员变量m_pCRootHub(CRootHub)的GetDeviceList函数,来获取Root Hub上设备列表。此处的Root Hub是在什么地方被初始化的呢? 1、搜索代码发现,类转载 2013-10-19 17:16:56 · 543 阅读 · 0 评论 -
WinCE USB驱动CDevice::EnterOperationalState函数相关
http://blog.csdn.net/njuitjf/article/details/6298857USB驱动中,设备相关的类及其继承关系如下: CDevice (ADT) / / CFunction CHub (ADT)转载 2013-10-19 17:16:09 · 512 阅读 · 0 评论 -
wince usb驱动中的OTGHNP_IsADevice函数
http://blog.csdn.net/njuitjf/article/details/6384868函数OTGHNP_Init中调用了函数UsbSocHnpInit。 UsbSocHnpInit(dwHnpRegBase, fLegacyHost); 函数UsbSocHnpInit中对全局变量g_dwHnpRegBase进行赋值。 g_dwHnpRegB转载 2013-10-19 16:53:08 · 523 阅读 · 0 评论 -
wince usb驱动中的CHub::AttachDevice函数
http://blog.csdn.net/njuitjf/article/details/6384843 wince usb驱动中的CHub::AttachDevice函数 函数CHub::AttachDevice在HubStatusChangeThread中被调用。当有设备插入的时候,该函数被调用。函数的注释如下:// This function i转载 2013-10-19 16:48:44 · 655 阅读 · 0 评论 -
OTGHNP_EventNotify
http://blog.csdn.net/njuitjf/article/details/6385139函数CHub::IdentifyOTGDevice中对m_bOtgDescriptor进行赋值 m_bOtgDescriptor = m_bOtgDesc[2]; 函数CDevice::CreateUsbConfigurationStructure中对m_bOtg转载 2013-10-19 16:52:25 · 513 阅读 · 0 评论 -
Wince USB otg驱动中关于函数CHub::HubStatusChangeThread
http://blog.csdn.net/njuitjf/article/details/6303546该函数是USB驱动中,监视hub状态改变的线程函数。Root hub的监视线程在OTG_Init函数被调用时创建。External Hub的监视线程在External Hub插入到Root Hub时被创建。在线程刚启动的时候(在线程循环体之外),需要进行一些操作。 //转载 2013-10-19 16:55:37 · 753 阅读 · 0 评论 -
4.10 基于OHCI的USB主机 —— USB设备取得设备描述符
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/282149 取得设备描述符设备描述符是USB设备最基础的描述符,只有取得了设备描述符,才可以顺藤摸瓜得到其它所有的描述符:/** * 取得设备描述符 * @ret转载 2013-10-25 17:49:14 · 554 阅读 · 0 评论 -
3.10 基于OHCI的USB主机 —— OHCI(自定义数据结构)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/244578 OHCI接口层用到的数据结构定义如下,这些数据定义都是我自己的程序里所使用的自定义数据结构,是根据OHCI的标准与程序的处理方式进行定义的:/** * USB设备转载 2013-10-25 17:37:45 · 524 阅读 · 0 评论 -
3.11 基于OHCI的USB主机开发 —— OHCI(控制端口读数据)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/247245根据USB的规范,在系统初始化的时候需要从控制端口发送命令,其中有一些命令是包含数据的,对于这些命令,需要调用本函数来完成。函数内主要调用AM9200提供的OHCI接口:AT91F_Creat转载 2013-10-25 17:38:50 · 595 阅读 · 0 评论 -
USB OTG简介
http://bluefish.blog.51cto.com/214870/12390871引言随着USB2.0版本的发布,USB越来越流行,已经成为一种标准接口。现在,USB支持三种传输速率:低速(1.5Mb/s)、全速(12Mb/s)和高速(480Mb/s),四种传输类型:块传输、同步传输、中断传输和控制传输。USB应用灵活方便,能满足多种外设的需要。随着个人便携式电子产品的增长和转载 2013-12-26 11:53:35 · 646 阅读 · 0 评论 -
USB设备Firmware基本流程分析
http://bluefish.blog.51cto.com/214870/1239092通常来说USB设备(这里只分析USB设备,而不针对USB HOST,USB OTG和USB HUB)内部都有一片USB的芯片和一个MCU,有些当然有些厂商提供的USB芯片已经集成了MCU在里边,如Cypress的CY68013就是这样的。这里考虑MCU和USB芯片分开的情况吧,集成的也类似,大家可转载 2013-12-26 11:45:54 · 1023 阅读 · 0 评论 -
USB音频类描述符及其说明
http://bluefish.blog.51cto.com/214870/1239090先给出完整的usb描述符供参考:const unsignedchar Demo_DeviceDescriptor[] ={//Device:USB1.10,Vid=0x0435,Pid=0x2430,bNumConfigurations= 0x01,0x12,//Length0转载 2013-12-26 11:52:26 · 1098 阅读 · 0 评论 -
UFBFN RNDIS
http://bluefish.blog.51cto.com/214870/1239085There are 3 types usb driver in wince system. They areusb host driver, usb slave driver, usb otg driver.1, usb host driverWhen device was plug转载 2013-12-26 11:51:13 · 599 阅读 · 0 评论 -
USB复合设备与组合设备的区别
http://bluefish.blog.51cto.com/214870/1239111Composite USBdevices 组合设备Compound USBdevices 复合设备Composite USB devicesexpose multiple functions to a host by using multiple interfaces.A compound转载 2013-12-26 11:37:34 · 1557 阅读 · 0 评论 -
WinCE 6.0中串口读数据函数代码分析
http://blog.csdn.net/ymzhou117/article/details/4824355如下函数是在WINCE600/PUBLIC/COMMON/OAK/DRIVERS/USB/CLASS/USBSER目录下的示例数据读取代码,看了好多次,总是觉得这部分数据处理有点问题。详细的解释在代码中有解释。我认为目前这段代码还出现的原因就是出错的情况很小很小。大家都没有注意到这个转载 2013-12-21 18:17:49 · 624 阅读 · 0 评论 -
关于USB微帧与数据包包长与端点缓冲区的理解
http://blog.csdn.net/findstr/article/details/6846435 搞了这么久USB了,还是不知道DATA0,DATA1的最大包长,以及端点描述符中的最大包长与68013的端点缓冲区有什么关系,经过二小时的奋斗得出如下结论: 1.DATA0或DATA1实际上就是一个端点描述符中的最大包长。换句话说,68013发一次数据包就是一个DATA转载 2013-12-16 20:30:15 · 564 阅读 · 0 评论 -
关于接口描述符中bAlternateSetting的使用
http://blog.csdn.net/findstr/article/details/6844972今天看CY7C68013开发手册时,突然想起,在USB接口描述符中有一个bAlternateSetting字段一直没用过,花了一上午时间也没找到相关资料!就在快中午时突然看到一句话:“bAlternateSetting用于在同一个接口中的多个描述符中进行切换". 一下子感觉抓住要点了。经过百转载 2013-12-16 20:29:27 · 489 阅读 · 0 评论 -
4.9 基于OHCI的USB主机 —— USB设备获取描述符通用函数
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/282147取得描述符这是一个通用的取得描述符的函数,除了设置设备请求类型和设备请求字段之外,没有对其它字段进行设置:/** * 取得USB的描述符,包括设备、配置、接口、转载 2013-10-25 17:48:30 · 510 阅读 · 0 评论 -
4.8 基于OHCI的USB主机 —— USB设备常量定义
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/274093 USB设备枚举过程中使用到的常量定义如下:/*------------------------------------------------------------转载 2013-10-25 17:47:37 · 846 阅读 · 0 评论 -
4.7 基于OHCI的USB主机 —— USB设备其它数据结构
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/274088 USB设备信息该结构是用来保存USB设备的各种描述符的:#define MAX_EP 3/** * USB设备信息 */typedefstruct _转载 2013-10-25 17:47:07 · 499 阅读 · 0 评论 -
4.5 基于OHCI的USB主机 ——USB设备枚举过程
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/269446 主机对USB 设备的识别过程叫做枚举,一个完整的Windows 对USB 设备枚举的过程为:(1) Get Device Descriptor。主机的第一个命令要求得到设备描述符,此转载 2013-10-25 17:46:06 · 696 阅读 · 0 评论 -
4.1 随便说几句 —— 关于USB主机系列
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/269435 今天查看了一下自己的博客,发现《基于OHCI的USB主机》系列文章居然连载有三个多月了,一共有27篇文章,这可真是一个很难得的事情。当年开发这个系统的时候,天天搞到昏天黑地,每天都是在公转载 2013-10-25 17:43:48 · 562 阅读 · 0 评论 -
3.15 基于OHCI的USB主机 —— 中断寄存器初始化
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/261074 在AM9200中,中断寄存器分为2个层次,一个是用来设置某个功能允许哪些中断产生,另一个是AIC中断寄存器,用来设置是否允许该功能产生中断。当AIC对应的中断产生时,需要读取相应功能的中转载 2013-10-25 17:41:46 · 891 阅读 · 0 评论 -
4.12 基于OHCI的USB主机 —— USB设备设置地址
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/282153设置地址设置地址需要注意的是该命令只能从地址0、端口0发送,等到执行成功以后,需要设置协议栈对象的usbAddr为新的地址,以后所有命令的收发都只能通过新地址进行:/*转载 2013-10-25 17:51:52 · 578 阅读 · 0 评论 -
4.11 基于OHCI的USB主机 —— USB设备去的配置描述符
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/282151 发送取配置描述符命令,实际上得到的是一组描述符,包括配置描述符、接口描述符和端点描述符,对于U盘来说,这些描述符总长度不会超过64字节:/** * 取得配置描转载 2013-10-25 17:50:01 · 518 阅读 · 0 评论 -
4.6 基于OHCI的USB主机 —— USB设备描述符数据结构
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/274087 根据USB规范,定义各种描述符的数据结构如下:/** * 设备描述符 */typedefstruct _DEVICE_DESC{ BYTEbL转载 2013-10-25 17:46:36 · 474 阅读 · 0 评论 -
3.4 基于OHCI的USB主机 —— OHCI(基本流程)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/239944根据上面的介绍可以发现,通过USB端口进行数据收发的主要工作就是构建ED和TD列表。其中ED列表控制数据的传输方向,TD列表完成具体的数据打包和传输。按照OHCI规范,ED和TD列表都是可转载 2012-03-22 09:57:40 · 394 阅读 · 0 评论 -
3.3 基于OHCI的USB主机 —— OHCI(HCCA)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/238666 主机控制器通信区(HCCA)是一个256字节对齐的内存数据结构,被系统软件用于与HC进行通信,收发相关控制和状态信息。系统软件通过HcHCCA寄存器设置HCCA的地址到HC。该结构允许软件给HC的函转载 2012-03-22 09:57:00 · 418 阅读 · 0 评论 -
3.2 基于OHCI的USB主机 —— OHCI(传输描述符)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/237835传输描述符(TD)传输描述符(TD)是系统内存的数据结构,被HC用于定义从端点收发数据的缓冲区。TD分为2个类型:通用TD和同步TD。通用TD用于中断、控制和批量端点,同步TD用于同步传输。使用两种不转载 2012-03-22 09:55:55 · 482 阅读 · 0 评论 -
3.1 基于OHCI的USB主机 —— OHCI(端点)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/236950OHCI (Open Host Controller Interface),是康柏、微软、国家半导体等公司共同制定的一个USB主机接口规范,它提供一个更抽象的接口来完成USB数据传输工作。转载 2012-03-22 09:54:39 · 482 阅读 · 0 评论 -
基于OHCI的USB主机 —— 目录
我的《基于OHCI的USB主机》系列文章已经完毕了,我觉得需要建立一个目录,以便需要的人可以迅速找到所需要的文章。本文档的目标就是建立一个该系列文章的目录,可能还会对每个部分进行简单介绍。第一部分 概述基于OHCI的USB主机的背景介绍与总体构架,使读者了解相应的知识背景。1、基于OHCI的USB主机 —— 前言2、基于OHCI的USB主机 —— 背景介绍3转载 2012-03-22 09:36:12 · 583 阅读 · 0 评论 -
2.3 基于OHCI的USB主机 —— 寄存器(传输)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/232493启动控制传输进行控制传输之前,需要设置好相应的ED和TD参数(参见下一章),启动传输时需要设置OHCI寄存器中的控制传输ED头指针寄存器和控制传输的当前ED指针寄存器,然后设置控制寄存器允许处理控转载 2012-03-22 09:43:07 · 556 阅读 · 0 评论