标题:
轻松驾驭嵌入式USB设计--USB完全解决方案全新登场
[打印本页]
作者:
rise_ming
时间:
2013-1-30 21:07
标题:
轻松驾驭嵌入式USB设计--USB完全解决方案全新登场
USB接口在生活中随处可见,其主要优点有通信速度快、可靠性高、支持热插拨以及低成本。
此外由于易于使用,并可以取代电脑上的RS232接口,微软和英特尔电脑系统设计要求所有PC上必须有两个以上可以直接使用的USB接口,可见USB的使用越来越广泛。
USB协议
USB全称为通用串行总线,HOST为主机,是通过总线发起所有传输的系统;Device是与主机进行通信并且接收来自主机信息的外设设备;Hub是集线器,用来扩展USB主机接口,提供连接点和电源的设计;Pipe是管道,是逻辑上的抽象概念,指的是设备端上的端点和主机软件之间建立的虚拟的连接通道;ENDPOINT指的是设备端用作USB的数据和发送的存储器缓冲,包括IN端点和OUT端点。IN是USB主机读入读取数据的端点,OUT是USB主机写入数据的端点。Silicon Labs单片机上端点是用片上XRAM的FIFO实现的。在USB的网络协议中,每个USB的系统有且只有一个HOST,负责管理整个USB系统,HOST端有一个ROOT HUB,可以提供一个或多个USB下行端口,每个端口都可以通过USB Hub进行扩展,从而连接多个USB设备,最多可以扩展到127个,其拓扑结构如图1所示:
USB的传输指的是完成通信请求的过程;会话是到一个端点的发求过程;包即信息块;帧是建立在低速和全速总线上的1ms的时间单位。传输被划分为多个会话,而会话由包组成,USB主机通过将会话分配到帧进行传输,一个传输可以有多个帧。枚举是一个识别和指派一个独一无二的地址的行为,枚举过程使USB设备具有被热插拔的能力,USB主机一直检查总线上是否有新的设备接入,直到有一个USB设备被完全枚举完成,USB主机才开始与USB设备进行通信。因此USB主机可以枚举USB设备并与USB外围设备进行数据传输,管理USB总线,为USB设备提供电源,如一个全功耗主机给每个USB外设提供最大到500mA的电流,一些低功耗的USB主机只能给低功耗的USB外设提供最大到100mA的电流,除此之外USB外设也可以自己供电。而USB设备的作用是与USB主机传输数据,响应USB主机的标准请求,管理电源。
USB协议定义了四种传输类型:控制传输,块传输,中断传输和同步传输。控制传输是双向传输,通常数据量较小,其用途是传送命令请求,让USB主机识别和枚举外设,以及传送用户定义的请求。控制传输的传输速度是高速模式为15.8MB/s,全速模式832KB/s,低速模式24KB/s,任何USB外设都必须支持控制传输;块传输适用于大量数据传输应用,但不保证数据速率和延迟,只支持高速和全速USB外设,其传输速度为高速模式53.2MB/s,全速模式1.2MB/s,通常应用于打印机、扫描仪、磁盘驱动器等等会有大块数据进行传输的设备;中断传输主要用于定时查询设备是否有中断数据传输,从而保证数据传输间隔的时间,高速模式为24.6MB/s,全速模式为64MB/s,低速模式为0.8KB/s,通常应用在键盘、鼠标、游戏手柄等传输要求数据量小但要定时传输的场合;同步传输是一种数据流实时传输的模式,由于这种模式中没有纠错环节,因此它可以保证传输速率和间隔时间但不保证数据的完整性,同步传输的最高速度为24.6MB/s,全速模式为1MB/s。
USB主机通过独特的标识符识别USB外设,VID(Vendor ID)是USB联盟给USB设备提供商分配的ID号,PID是USB设备提供商给自己产品分配的ID号,串行序列号是开发商或制造商给每个USB产品分配的号码,每个USB设备都有自己唯一的序列号。Silicon Labs公司唯一的VID是0x10C4,所有出厂产品都分配了一个PID,客户可以根据自己的需求联系Silicon Labs公司的相关人员为Silicon Labs的USB产品申请一个特别的PID。
USB定义了一套标准的设备类别从而实现不同系统平台间的互操作性。HID主要应用于键盘、鼠标、热量表、电压表等;大量存储主要用于可移动或不可移动的设备,如磁盘、硬盘、光盘以及U盘等;Audio主要应用在扬声器、麦克风、语音处理等;Communication Device Class主要是调制解调器、模拟或数字电话和以太网卡;Imaging的应用有数码相机、摄像机、网络摄像头;此外如IrDA、电源、打印机、SD卡等都有相应的类别。
Silicon Labs公司的USB解决方案
目前Silicon Labs公司的USB产品已经扩充到十五款,并且可以为客户提供相应的五种开发板,软件支持包括虚拟串行通讯接口驱动,USBXpress从传输类型的驱动层到源代码,常用类型的参考设计,以及第三方提供的工具等。图2所示的为Silicon Labs公司的所有USB解决方案。图中可以看到虚拟COM口很容易使用,不需要开发固件和驱动。同时Silicon Labs公司提供的驱动支持Windows,苹果和Linux等多个操作系统,并且通过了WHQL认证。USBXpress可以为用户提供简单灵活的开发途径,固件库文件以及Windows动态链接库,还可以处理所有USB复杂协议,简化了设备端的固件和主机侧的驱动开发。
CP210X系列包括CP2101、CP2102、CP2103,都是固定功能的USB到UART转接桥芯片,能为用户提供最快最简单的从RS232升级到USB的方法。其它混合信号带USB功能的MCU都是高速8051内核,最快可达48M的指令运行速度,全部都内置高精度的振荡器,不需要外加晶振,最高64K Flash的程序空间和5376Byte的RAM,17通道10位200Ksps的ADC,C86F340系列带有外部数据总线接口,支持在系统仿真编程,芯片内集成5V-3.3V的电压解调器,因此芯片的有效供电电压范围为2.7-5.25V。
USBXpress简化了USB的设计,为USB设备端的固件和主机侧的应用软件提供更高层的API,用户无需掌握USB协议的主机端的驱动专门技术即可实现USB的应用,而且该应用软件完全免费,并已取得Windows的设备驱动认证,支持Silicon Labs公司的所有产品。支持的操作系统有Windows98、Windows2000、WindowsXP,也支持其他操作系统。
Silicon Labs公司的十五款USB MCU产品适合全部的嵌入式应用,高性能的混合信号USB2.0使这些MCU可以很好的满足市场需求,而且全面的软件和硬件开发资源及参考设计加速了产品的开发周期。
ToolStick开发平台
ToolStick开发平台是Silicon Labs公司提供的一个低价位的MCU评估开发平台,它可以使MCU所有的引脚都可以引出,不同的MCU做在不同的子卡上,子卡即Daughter卡,开发不同的MCU即选择不同的子卡。图5所示的是一个完整的ToolStick工具,左边的Base Adapter可以与任何Silicon Labs的MCU进行通信,通过USB Debug接口和PC相连;右边的是Daughter卡,是MCU产品开发板,不同的MCU所用Daughter卡不同。Toolstick软件和安装方法可以在Silicon Labs公司的网站上找到,包括Silicon Labs的IDE,Keil公司2KB代码的评估板,C语言编译器,参考代码以及应用终端软件等等。
Toolstick开发平台将一个完成的开发系统包括在USBStick里,可以帮助工程师在现场演示如何使用Silicon Labs公司MCU,如何编程仿真和下载程序,Toolstick平台整个应用方法如图5所示,PC侧IDE通过Base Adapter仿真调试功能对子卡上的单片机进行在线调试,同时安装在PC侧的ToolStick终端软件可以通过Base Adapter上单片机的UART口、GPIO口跟子卡上的单片机的UART口、GPIO口进行通讯,数据的收发在这个软件上都可以显示出来。ToolStick插上PC以后,电源LED点亮,C8051F326执行的是USB调试器和跟USB通信的功能,调试的时候程序的运行和停止都会在Run,Stop LED显示出来,SocketConnector是和子卡相连的接口。
图6是C8051F330子卡的硬件图。其中包括两个LED,一个指示MCU的3.3V供电是否正常,另一个接在P1.39上给客户作实验用;IDIC输出侧接电阻,将电流信号转换成电压,通过转动电位器可以给ADC输入0-3.3V之间的电压。C8051F330所有的I/O口都可以引出的,更方便客户的测试和实验。
更多详细内容,敬请登录中电网在线座谈网址:
http://seminar.eccn.com/071206/tindex.asp
问答选编
问:为任何一个微控制器添加USB口,有没有最简单的通 用方案?
答:最简单的方案就是,使用Silicon Labs公司的CP210x系 列产品,不需要做USB的软件开发,直接将UART口转 变成USB接口。
问:以往的USB实现,往往都是通过加一个芯片,一般都是 支持usb1.1,兼容usb2.0,请问本产品的特点在哪里?
答:Silicon Labs公司的单片机将USB2.0的功能集成到单 片机上,使系统方案更加简洁、可靠。在手持设备上使用 的话,单芯片的优势更加明显。
问:我们设计的智能设备用于电力系统,原设计是每相用一 个F310的UART接口,三相的三个接口通过串行总线 接口一个汇总的UART接口(第4个UART),通过第4 个接口对外部通信,请问如果用F340等芯片的USB接 口可以吗?有没有更好的方案?
答:通过F340的USB接口可以完成跟外部通信的任务,另 外F340的2个UART口也可以完成2相的通信,还需 要软件模拟一个UART口。
问: C8051F34x MCU进行A/D转换时,可以实时把转换后 的数据传输到PC吗? 有多长的延迟时间呢?
答:可以。使用中断,可以快很多。关于这个问题,还得看你 F34X里的任务和软件代码,还有PC机侧的响应时间(中 断、定时、轮询、任务多少)。
问:在应用方面,协议中是不是要同时用到几种传输模式? 控制传输是不是必需用到的?
答:对,每种USB的传输模式中,都会有控制传输。其他的 传输类别,可以根据你的应用来选择。
问:把传统的USB主控移植到嵌入式装置中,需要理清的 问题是不是比较多?
答:不会,使用SILICON LABS的USB可以省掉很多麻烦。 在MCU或PC机侧,我们都有USBEXPRESS、VCP等等 驱动程序来支持。实际上与USB接口有关的东西,你们 的应用程序基本上是不会涉及的。
问:采用USB方案实现实时数据采集的最高采集信号频率 能到多少?应该如何考虑系统的优化和抗干扰问题?
答:这个取决于需要通过USB传输有关信号的信息的频 率。当带有USB中断管道时,仅仅1ms发送一次请求, 这种情况需要考虑到MCU在多个周期内取样一次外部 信号。
我们的USB案例是基于降低端点1USB路径花费的时 间量而优化的,对于其他MCU任务将会考虑最大时间量。
问:两个问题,首先是调试时,有时需要将JTAG或两线接口 和目标板电气隔离,能否用光电隔离的办法(如6N137), 能否提供解决方案?第二,不用KEIL时,不能进行软仿 真,能否增添此方面的功能?
答:第一个问题,只要隔离是双向的并且支持高达几百KHz 的速度,使用隔离器就是安全的。
第二个问题,Keil是为Silicon Labs的MCU提供仿真器 的唯一厂商。我们的MCU具有实时硬件调试的性能,因 此典型应用我们推荐使用在实际硬件上调试。这样可以 提供更高精度的仿真,目前没有计划增加仿真器支持Sili - con Labs IDE。
问:在使用USB/UART桥接方案的时候,经常会出现UART 找不到的问题,请问一般是由哪些原因造成的?
答:如果一个器件操作已经打开,则PC无法找到CP210x。 如果一个PC应用已经打开一个操作,并且器件没有连 接到PC,但是这个操作也不会被关闭,器件也不能被检 测到。PC应用时,必须在器件重新连接之前关闭操作。
问:块传输中的HIGH SPEED能达到53.2Mbyte/sec,这已 经接近USB2.0理论上的极限值了,能否实现这个速度的 传输?与哪些因素有关?
答:Silicon Labs的MCU不支持高速,仅仅可以支持USB 全 速(48 MHz时钟速度)和USB 低速(6 MHz时钟)。保持 固件路径小是达到高吞吐率的一个要求,除非是在必要 情况下,数据不可以在不同的存储空间移动。
作者:
TLP291
时间:
2013-2-1 17:55
作者:
TLP291
时间:
2013-2-1 17:55
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0