您好,欢迎访问三七文档
1、USB的物理特性。USB采用差分方式传输;差分信号1:D+2.8v&&D-0.3v,差分信号0:D+0.3v&&D-2.8v;复位信号:D+&&D-0.3vfor10ms;全速/高速设备:D+接1.5K上拉电阻;地速设备:D-接1.5k上拉电阻;USB采用NRZI编码,即输入数据0,编码成”电平翻转”,输入数数据1,编码成”电平不变”;2、USB总线协议USB总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输;每一总线执行动作最多传送三个数据包按照传输前制定好的原则在每次传送开始时主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(tokenpacket),USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机,在传输开始时由标志包来标志数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送,接收端也要相应发送一个握手的数据包表明是否传送成功发送端和接收端之间的USB数据传输在主机和设备的端口之间可视为一个通道存在两种类型的通道流和消息流的数据不像消息的数据它没有USB所定义的结构而且通道与数据带宽传送服务类型端口特性如方向和缓冲区大小有关多数通道在USB设备设置完成后即存在USB中有一个特殊的通道——缺省控制通道它属于消息通道当设备一启动即存在从而为设备的设置查询状况和输入控制信息提供一个入口。3、USB传输方式USB所有在处理都是在MCU的中端中进行的,主机控制器向USB设备发送标志包(Tokenpacket),USB设备接收到Tokenpacket后进入中断,对Tokenpacket进行分析,解析出Class,方向,设备地址,endpointnumber以及数据传输的方向,并产生ACK或者NAK,然后根据主机控制器需求进行数据传输.4、USB通信步骤A、根据应用定义需要的端点数;@usb_conf.hB、初始化端点;@usb_prop.cC、使能端点数;对于IN端点:USB_SIL_Write(EP1_IN,UserBuffer,Count);SetEPTxStatus(ENDP1,EP_TX_VALID);对于OUT端点:SetEPRxStatus(ENDP1,EP_RX_VALID);USB_SIL_Read(EP1_OUT,UserBuffer)D、中断处理INtransaction:主机发送INToken-USB设备回发NAK-USB设备使能端点-主机发送INToken-USB设备回发DATA-主机发送ACK;E、中断处理OUTtransaction:主机发送OUTToken-接着发送DATA-USB设备发送NAK-USB设备使能端点-主机发送OUTToken-接着发送DATA-USB设备发送ACK;5、小结a)根据应用选择合适的USB类实现b)根据所选择的USB类协议,完成各个描述符c)包括设备描述符,配置描述符,接口描述符,端点描述符和字符描述符d)根据描述符初始化端点数目,分配各端点所需使用的PacketBuffere)初始化所使用的端点,配置端点的传输类型、方向,PacketBuffer地址和初始状态f)在需要发送或接收数据的时候,使能端点g)在该端点的中断回调函数中,处理数据,如果需要则使能下一次传输
本文标题:USB学习笔记
链接地址:https://www.777doc.com/doc-2865294 .html