通用串行接口(USB)LPC1700系列Cortex-M3微控制器目录USB简介1组成与结构2USB基础知识3应用案例与操作4总结5USB简介|概述USB是英文UniversalSerialBUS的缩写,而其中文简称为“通用串行总线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB简介|概述USB是英文UniversalSerialBUS的缩写,而其中文简称为“通用串行总线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB2.0的最大传输速率高达480Mbps,向下1.0/1.1,2000年4月推出。USB1.0/1.1的最大传输速率为12Mbps,1996年推出。USB3.0最大传输速率5.0Gbps,向下兼容USB1.0/1.1/2.0,2009年第二季度推出。USB简介|概述USB是英文UniversalSerialBUS的缩写,而其中文简称为“通用串行总线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。传统四线结构,包括Vbus,GND,D+,D-MINI接口,五线结构,用于支持OTG功能目录USB简介1组成与结构2USB基础知识3应用案例与操作4总结3USB简介|USBDevice特性LPC1700系列ARMCortex-M3内部带有USBDevice、HOST、OTG控制器。其中USBDevice控制器完全兼容USB2.0全速规范,并支持32个固定配置的物理端点的传输。USBOTGUSBHOSTUSBDevice遵循OHCI规范完全兼容全速USB2.0兼容USB2.0全速规范;运行时,可调整使用的端点;支持32个物理(16个逻辑端点)端点;支持控制、批量、中断和同步端点;支持Softconnect特性和GoodLink特性;允许CPU控制和DMA模式间的动态切换;运行时,可通过软件来选择端点最大包长度;所有非控制端点都可支持8KBSRAM的DMA传输。USB简介|USBDevice内部结构DMA引擎端点缓冲区访问控制串行接口引擎寄存器接口总线主机接口AHB总线USB差分数据USB设备控制器结构框图VBUSCONNECTUSB_D+USB_D-USB_LEDUSB简介|USBHOST特性LPC1700系列ARMCortex-M3内部具有一个嵌入式USB主机控制器,该主机控制器遵循OHCI规范,利用该主机控制器即可以和具有USB从机控制器的嵌入式设备进行点对点的通信。主机控制器ATX控制逻辑/端点复用总线主机接口寄存器接口AHB总线USBATXUSB主控制器结构框图USB端口遵循OHCI规范HCCA寄存器指向中断和同步描述符列表主机控制器具有4个SW驱动程序可见的USB状态OHCI指定了USB主机控制器的操作和接口以及SW驱动程序ControlHeadED和BulkHeadED寄存器指向控制和批量描述列表USB简介|USBOTG特性OTG是On-The-Go的缩写,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。LPC1700系列ARMCortex-M3内部具有一个嵌入式USB主机控制器,该主机控制器遵循OHCI规范。硬件支持主机交换协议(HNP);完全遵循USB2.0的补充规范:USBOTGV1.0a;包括HNP和SRP(对话请求协议)所需的可编程的定时器;支持任何遵循OTG收发器规范(CEA-2011)V1.0的OTG收发器。目录USB简介1组成与结构2USB基础知识3应用案例与操作4总结5USB基础知识USB的四点疑问:USB的描述符及枚举过程2USB数据包结构及分类3USB设备插入检测机制1USB的传输类型4USB基础知识|USB设备检测USB主机LPC1700VBUSVBUSGNDGNDD+D+D-D-功能介绍VBUS:主机向外提供5V电源D+、D-:差分数据线GND:地当D+或者D-接了上拉电阻时,USB主控制器检测有设备插入虚线表示连接之间需阻抗匹配USB基础知识|USB设备检测USB主机LPC1700VBUSVBUSGNDGNDD+D+D-D-功能介绍USB低速设备上拉电阻接在D-USB全速设备上拉电阻接在D+DP3V31.5KUSB高速设备上拉电阻先接在D+,枚举成功后断开DP3V31.5KUSB基础知识USB的四点疑问:USB的描述符及枚举过程2USB设备插入检测机制1USB基础知识|USB的描述符USB音频设备一个USB设备通常都包含有设备、配置、接口、端点四个组成部分。这四个部分是通过描述符来实现各自的功能。设备是指一个客观存在的实体,通过设备描述符说明USB设备的总体信息。如:USB音频设备。一个USB设备,仅有一个设备描述符,设备描述符决定该设备有多少种配置。设备设备USB基础知识|USB的描述符USB音频设备一个USB设备通常都包含有设备、配置、接口、端点四个组成部分。这四个部分是通过描述符来实现各自的功能。配置是指当前设备的属性。同一时刻只能有一种配置,配置描述符决定该设备有多少个接口。USB口实现音频输入与输出配置配置USB基础知识|USB的描述符USB音频设备一个USB设备通常都包含有设备、配置、接口、端点四个组成部分。这四个部分是通过描述符来实现各自的功能。接口是代表设备向主机提供的单一的功能或特性。接口描述符用于说明USB设备中各个接口的特性,如接口所属的设备类及其子类等。接口描述符决定决定该接口有多少端点。设备接口USB基础知识|USB的描述符一个USB设备通常都包含有设备、配置、接口、端点四个组成部分。这四个部分是通过描述符来实现各自的功能。端点是USB设备中的实际物理单元。USB数据传输就是在主机和USB设备各个端点之间进行的。端点描述符定义了该端点的传输类型。Usb设备控制器●●端点0端点1端点31D+D-设备端点描述符描述符描述符标准请求标准请求标准请求USB基础知识|USB的枚举USB定义了一个8字节的标准设备请求,主要用于设备枚举过程,枚举是主机从设备读取各种描述符信息,主机根据信息加载合适的驱动程序,从而实现USB设备的具体功能。USB总线USB基础知识USB的四点疑问:USB的描述符及枚举过程2USB数据包结构及分类3USB设备插入检测机制1USB基础知识|USB的包结构USB总线上传输数据是以包为基本单位。一个包是由不同的域组成的。不同类型的包域也是不一样的。包的种类可分为:令牌类、数据类、握手类、特殊类。包的共同点同步域不同的域包标识符PIDEOPUSB基础知识|USB的包结构USB总线上传输数据是以包为基本单位。一个包是由不同的域组成的。不同类型的包域也是不一样的。包的种类可分为:令牌类、数据类、握手类、特殊类。同步域PID11位帧号5位CRC校验EOPSOF令牌包的结构同步域PID7位地址4位端点号5位CRC校验EOPOUT,IN,SETUP令牌包的结构令牌包—用于启动一次USB传输USB基础知识|USB的包结构USB总线上传输数据是以包为基本单位。一个包是由不同的域组成的。不同类型的包域也是不一样的。包的种类可分为:令牌类、数据类、握手类、特殊类。同步域PID数据字段,从低到高5位CRC校验EOP数据包—传输数据同步域PIDEOP握手包—表示传输是否被确认注:非所有的数据传输都需要握手包USB基础知识|USB的包结构USB总线上传输数据是以包为基本单位。一个包是由不同的域组成的。不同类型的包域也是不一样的。包的种类可分为:令牌类、数据类、握手类、特殊类。主机设备一次简单的数据输出OUT令牌包数据包握手包USB基础知识USB的四点疑问:USB的描述符及枚举过程2USB数据包结构及分类3USB设备插入检测机制1USB的传输类型4USB基础知识|USB的传输类型USB基础知识|usb的传输类型任何一个USB设备都必须支持一个与控制传输相对应的端点0目录USB简介1组成与结构2USB基础知识3应用案例与操作4总结5USB应用案例与操作|案例USB应用案例与操作|示例源码if(0!=usbDevInit()){while(1);}usbDevServe();targetInit();zyIsrSet(NVIC_USB,(unsignedlong)usbDevException,PRIO_FOUR);if(bEPPflags.bits.configuration==1)目标板初始化引脚初始化初始化USB设备控制器USB事务处理函数设置USB中断并使能判断USB是否配置完成pinInit();USB应用案例与操作|示例源码扫描按键等待HID设备枚举成功逻辑端点1发送坐标保存当前坐标值if(bEPPflags.bits.hid_enumed==1);keyServe();usbDevWriteEndpoint(3,GenEpBuf,4);GucLastX=GucCurX;GucLastY=GucCurY;目录USB简介1组成与结构2USB基础知识3应用案例与操作4总结5USB总结应用程序驱动程序固件程序USB开发过程开发基础开发难点USB总结USB分析仪USB-CAN转换器USBCAN-2A工业级便携式CAN接口卡USBCAN-I单路智能CAN接口卡广州致远公司USB相关产品