幻灯片1C14L10USB4USB通信设备类(CDC)串口仿真幻灯片2课程目标完成本课程后,您将能够:了解CDC类的基本原理利用PIC®MCU以及Microchip应用程序库中的CDC类固件实现USB到串口的数据转换通信通过虚拟COM端口将基于RS232的UART应用程序移植到带有USB外设的单片机开发USBCDC主机应用程序并将其连接到CDCACM设备幻灯片3课程安排预修课程概述CDC原理MicrochipCDC解决方案MCHPFSUSBCDC设备框架USB嵌入式主机总结幻灯片4预修课程概述本课程的学员应对USB协议具有基本了解,并且知道传输类型、设备类、枚举、端点和描述符。幻灯片5课程安排预修课程概述CDC原理MicrochipCDC解决方案MCHPFSUSBCDC设备框架USB嵌入式主机总结幻灯片6概述USB设备有哪些不同角色?设备(外设)主机OntheGo(OTG)嵌入式主机双重角色设备幻灯片7USB主机管理并控制总线发起所有的通信自动检测所有设备的插入和拔出枚举所有连接的设备,并加载对应的驱动程序幻灯片8主机的典型MCU要求主机通常为PCUSB2.0主机控制器,以全速(12Mbps)或高速(480Mbps)运行高吞吐量的32/64位CPU,运行诸如Windows®之类的操作系统USB驱动程序,用来识别和枚举USB设备自动更新USB驱动程序幻灯片9嵌入式设计的主机可选方案:直接采用PC系统USB架构到嵌入式系统中系统成本高,占据的空间更大根本不适合嵌入式设计解决方案:实现嵌入式主机幻灯片10嵌入式主机嵌入式主机与固定数量的USB外设设备连接——USB驱动程序整合在嵌入式主机固件中优点:小巧、简单的嵌入式固件示例:远程温度数据记录器将数据下载到USB闪存驱动器连接闪存驱动器时作为主机,但...不直接与PC主机连接幻灯片11嵌入式主机的典型要求为实际输入输出信号提供服务的外设:A/D转换器和比较器等串行接口,如SPI、I2C™和UARTPWM、定时器和I/O线带数据输入/输出缓冲区的全速(12Mbps)USB2.0收发器高吞吐量的16/32位MCU主机固件驱动程序,用来识别和枚举USB外设设备Microchip的16位和32位USBPIC®MCU均针对嵌入式主机应用而设计幻灯片12USB外设设备对主机进行响应,但无法主动发起传输需要驱动程序,以便让主机识别对主机进行响应的硬件/固件Microchip的PIC®MCU被广泛的使用来实现USB外设设备的功能幻灯片13外设设备的典型MCU要求为实际输入输出信号提供服务的外设:A/D转换器和比较器等串行接口,如SPI、I2C™和UARTPWM、定时器和I/O线带数据输入/输出缓冲区的全速(12Mbps)USB2.0收发器满足全速USB请求的吞吐量USB设备和外设接口固件所有USBPIC®MCU均针对USB外设应用而设计幻灯片14概述有哪些USB传输类型?批量中断同步控制幻灯片15USB基础知识USB是一种“单主+多从”的轮询式总线鼠标扬声器打印机USB主机控制器(主设备)和根集线器Sof帧帧帧BlkInt帧起始Iso鼠标数据包扬声器数据包打印机数据包幻灯片16概述有哪些设备类?CDC(通信设备类)HID(人机接口设备)MSD(海量数据存储设备)PHDC(个人健康医疗设备)通用音频、智能卡、打印机、...幻灯片17概述什么是端点?RAM端点1OUTRAM端点1IN数据存储桶LED“Caps-Lock”USB规范规定的每台USB设备的最大端点数量:16个输出端点+16个输入端点=32个端点PIC18F87J50、PIC18F4550、PIC24F和PIC32MX最多支持32个端点PIC18F14K50最多支持16个端点EP0=默认初始化通信管道USB帧数据USB帧数据USBPIC®MCU幻灯片18概述什么是总线枚举和设备描述符?PICDEMTMUSBMicrochip设备配置1接口0端点制造商字符串产品字符串USB2.0,VID=0x04D8,PID=0x0007,配置数量,字符串数?配置1:总线供电,远程唤醒,500mA,接口数量接口0:CDC类,端点数量端点2输入,中断传输类型,64字节缓冲区,每xms轮询一次,端点3批量,...Unicode字符GoUSB!其他字符串幻灯片19课程安排预修课程概述CDC原理MicrochipCDC解决方案MCHPFSUSBCDC设备框架USB嵌入式主机总结幻灯片20通信设备类包括多种设备“POTS(普通老式电话服务)”设备模拟电话和调制解调器、ISDN终端适配器、移动电话和“虚拟”COM端口“中速”网络设备ADSL调制解调器、电缆调制解调器和以太网适配器这些设备中的USB接口承载通用数据以及封装好的应用程序特定命令协议,如用于调制解调器的V25ter(AT命令集)幻灯片21通信设备类通信设备具有三项基本职责:设备管理运行管理数据传输幻灯片22CDC-ACM管道设备(制造商:MicrochipTechnology)(产品:CDCRS-232EmulationDemo)(VID_PID:04d8_000a)配置1(有效)接口1(数据类接口)端点0(控制——输出)MCHPFSUSBCDCTX/RX功能模拟/数字I/O端点0(控制——输入)端点3(批量——输出)端点3(批量——输入)接口0(通信类接口)端点2(中断——输入)usbser.sysWindows中的通信管道ACM类特定的请求(设备管理)通用数据通知幻灯片23抽象控制模型(ACM)串行仿真抽象控制模型涵盖了虚拟COM端口的实现定义了一组在EP0上控制传输中传播的类特定请求定义了2个额外接口:通信类接口(通知)数据类接口(通用数据)幻灯片24CDC——RS-232仿真PC计算机PIC®单片机USB电缆超级终端CDC需要INF文件(MCHPSUSB中提供)标准Windows驱动程序设计注意事项:•最快约80KB/s•批量传输•PC应用程序可访问设备,就像其连接到串行COM端口一样幻灯片25课程安排预修课程概述CDC原理MicrochipCDC解决方案MCHPFSUSBCDC设备框架USB嵌入式主机总结幻灯片26MCP2200:USB至UART串行转换器在支持UART的应用中使能USB连接预编程的USB协议栈易于配置符合USB2.0标准全速USBUSB活动的LED输出指示灯完全可重新设置的VID和PID信息向设计中添加USB的最简单方法UART控制器EEPROMUSB控制器USB协议控制器USB收发器USBLEDGPIOLDO、振荡器和复位MCP2200幻灯片27USB转RS-232演示板在VCP(VirtualCommPort)环境下演示MCP2200提供I/O配置开发的方法特性:用于指示USB到UART通信的Tx和RxLED用于连接到其他RS-232设备/应用的DB9连接器Mini-USB连接器提供对所有I/O引脚的测试点RS-232收发器关于配置、控制软件和DLL,请参见MCP2200EV-VCP幻灯片28演示1:配置MCP2200幻灯片29演示1总结即插即用解决方案无需软件/硬件开发工作用于开发和生产的实用工具可直接使用评估板来满足您的连接需求幻灯片30课程安排预修课程概述CDC原理MicrochipCDC解决方案MCHPFSUSBCDC设备框架USB嵌入式主机总结幻灯片31Microchip应用程序库从下载包含不同的协议栈(USB、TCP/IP、图形、mTouch™触摸传感解决方案和MDDFS等)默认安装路径:C:/MicrochipSolutionsvYYYY-MM-DD/包含库源代码和多个基于Microchip开发工具的示例固件项目幻灯片32功能和客户端驱动程序USB头文件通用头文件(库)库源文件幻灯片33MCHPFSUSB框架-支持的平台-低引脚数USB开发工具包(PIC18F14K50系列)PICDEM™全速USB(PIC18F4550系列)用于PIC18FMCU的MPLAB®入门工具包(PIC18F46J50系列)PIC18F46J50FSUSB演示板(+HPCExplorer板)PIC18F47J53FSUSB演示板(+HPCExplorer板)PIC18F87J50FSUSB演示板(+HPCExplorer板)用于PIC24F的MPLAB入门工具包(PIC24FJ256GB106)PIC24FJ256DA210开发工具包PIC24FUSBPIM(+Explorer16+USBPICtail™Plus)PIC32USBPIM(+Explorer16+USBPICtailPlus)PIC32USB入门板(PIC32MX460F512L系列)PIC32USB入门板II(PIC32MX795F512L系列)更多平台即将推出幻灯片34mchpcdc.inf.inf文件告知Windows®如何配置和使用设备设备管理器从目标设备中读取VID和PIDWindows使用.inf文件来:关联驱动程序,以与VID和PID配合使用指定设备标识字符串指定设备文件的源和目标设置注册表项幻灯片35mchpcdc.inf-可编辑部分-;------------------------------------------------------------------------------;供应商和产品ID定义;------------------------------------------------------------------------------;注:一个INF文件可用于多个具有不同VID和PID的设备。;对于每个支持的设备,在相应行的结尾附加“,USB\VID_xxxx&PID_yyyy”。;------------------------------------------------------------------------------[SourceDisksFiles][SourceDisksNames][DeviceList]%DESCRIPTION%=DriverInstall,USB\VID_04D8&PID_000A[DeviceList.NTamd64]%DESCRIPTION%=DriverInstall,USB\VID_04D8&PID_000A;------------------------------------------------------------------------------;字符串定义;------------------------------------------------------------------------------;修改这些这些字符串来定制设备;------------------------------------------------------------------------------[Strings]MFGFILENAME=mchpcdcDRIVERFILENAME=usbserMFGNAME=MicrochipTechnology,Inc.INSTDISK=MicrochipTechnology,Inc.InstallationDiscDESCRIPTION=CommunicationsPortSERVICE=USBRS-232EmulationDriver幻灯片36已签名的驱动程序示例中提供的解决方案和驱动程序均已签名同样适用于Windows8MLA发布版本中的CDC驱动程序带WHQL签名如果进行修改——必须对