1、红线:vcc黑线:gnd白线:data-绿线:data+USB OTG设计随着PDA、移动、数码相机、打印机等消费类产品的普及,用于这些设备与电脑,或设备与设备之间的高速数据传输技术越来越受到人们的关注,IEEE1394和USB是用于此类传输的两个主要标准。这两个标准都提供即插即用和热插拔功能,都可以向外提供电源,也都支持多个设备的连接。其中IEE1394支持较高的数据传输速度,但相对比较复杂、价格较高,主要用于需要高速通信的AV产品;而最初的USB标准主要面向低速数据传输的应用,其中USB1.1支持1.5Mbps和12Mbps的传输速率,被广泛用于传输速率要求不高的PC机外设,如:键盘、鼠标
2、等。USB2.0标准的推出使USB的传输速度达到480Mbps。而USB OTG技术的推出则可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,从而拓展了USB技术的应用X围。图1是USB技术的典型应用示意图。1 主机通信协议与对话请求协议USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。OTG两用设备完全符合USB2.0标准,并可提供一定的主机检测能力,支持主机通令协议(HNP)和对话请求协议(SRP)。在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的
3、连接方式来决定初始角色。图2所示是用第5个ID脚确定默认主机的示意图,两用设备使用新型mini-AB插座,从而使mini-A插头、mini-B插头和mini-AB插座增添了第五个引脚(ID),以用于识别不同的电缆端点。mini-A插头中的ID引脚接地,mini-B插头中的ID引脚浮空。当OTG设备检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮这的设备则认为是B设备(外设)。系统一旦连接后,OTG的角色还可以更换。主机与外设采用新的HNP,A设备作为默认主机半提供VBUS电源,并在检测到有设备连接时复位总线、枚举并配置B设备。OTG标准为USB增添的第二个新协议称为对话请
4、求协议(SRP)。SRP允许B设备请求A设备打开VBUS电源并启动一次对话。一次OTG对话可通过A设备提供VBUS电源的时间来确定(注:A设备总是为VBUS供电,即使作为外设)。也可通过A设备关闭VBUS电源来结束一闪会话以节省功耗,这在电池供电产品中是非常重要的。例如,在两台蜂窝通过连接互相交换信息时,一台连接在电费的mini-A端,是A设备,默认为主机。另一台是B设备,默认为外设。当在不需要USB通信时,A设备可以关闭VBUS线,此时B设备就会检测到该状态并进入功低耗模式。2 OTG功能的构建图3所示电路给出了构建OTG功能时需要在基础USB外设上添加的电路,电路中的通用串行总线控制器可以
5、是一个微处理器和USB SIE(串口引擎),也可以是集成的P/USB芯片或与USB收发器相连的ASIC。为总线提供电源的外部设备需要一路3.3V稳压输出供电电压,以便为逻辑电路和连接在D+、D-引脚的1500电阻提供电源。通过D+、D-引脚上的上拉电阻可向主机发出设备已连接的信号,并指示设备的工作速度。电阻上拉至D+表示全速运行,电阻上拉至D-表示低速运行。其它端点(包括D+和D-的15k下拉电阻)用于检测上拉电阻的状态。由于USB设计需要提供热插拔功能。因此,其ESD保护电路主要用于为D+、D-和VBUS引脚提供保护。为了增加OTG的两用功能,必须扩充收发器功能来使OTG设备既可作为主机使用
6、,也可以作为外设使用。而要实现上述功能,就需要在图3所示电路中添加D+和D-端的15k下拉电阻并为VBUS提供供电电源。此外,收发器还需要具备以下三个条件:(1)可切换D+/D-线上的上拉和下拉电阻,以提供外设和主机功能。(2)作为A设备时,需要具有VBUS监视和供电电路;作为B设备初始化SRP时,需要监视和触发VBUS。(3)具有ID输入引脚。作为两用OTG设备,ASIC、DSP或其它与收发器连接的电路必须具备充当外设和主机的功能,并应按照HNP协议转换其角色。收发器所需添加的大多数电路用于VBUS引脚的管理。作为主机,它必须能够提供5V、输出电流可达8mA的电源。图3中的模拟开关用于配置收
7、发器的各种功能。ASIC和控制器还必须包含USB主机逻辑控制功能,包括发送SOF(帧启动)包、发送配置u36755输入u36755输出数据包,在USB 1 msec帧内确定传输进程、发送USB复位信号、提供USB电源管理等。3 Maxim要提供的USB OTG方案MAX3301E是Maxim公司研制的一款USB OTG收发器,该器件集成有电荷泵,可将PDA、蜂窝和数码相机等移动设备与USB外设直接连接而无需PC机的参与。采用MAX3301E和一个嵌入式USB主机,就可直接将诸如打印机或外部硬盘驱动器这样的外设连接。MAX3301E内部包括USB OTG收发器、UBUS电荷泵、线性稳压器和I2C
8、 2线串行接口。内部电平转换器使MAX3301E能够与采用+1.65至+3.6V逻辑电源电压的器件连接。MAX3301E中的电荷泵工作在+3V至+4.5V输入电源下,可产生符合OTG要求的VBUS输出,且输出电流大于8mA。该器件可利用内部比较器控制并测量VBUS,同时支持USB OTG SRP和HNP,其典型应用电路如图4所示。低轼耗数据采集系统的USB接口设计摘要:介绍低功非法收入数据采集系统的USB通信接口设计方法。该设计以超低功耗单片机MSP430F13X为主控制芯片,为主控制芯片,连接Cygnal公司的UART转USB芯片CP2101,实现低功耗数据采集系统的USB接口设计。在IAR
9、 Embedded Workbench集成开发环境和VC+环境中,编辑单片机与主机的通信协议。该设计具有超低功耗、高集成度和设计简便等优点,适于便携式电子设备的开发应用。关键词:超低功耗 MSP430 数据采集 USB接口设计引言实现系统运行的最小功耗是现代电子系统的普通取向,也是绿色电子的基本要求。采有最小功耗设计方法既能减少电子设备的使用功耗,又能减少备用状态下的功率消耗。在节省能源的同时还有利于减少电磁污染,有利于电子系统向便携式方向发展,有助于提高系统的可靠性。现代工业生产和科学研究对数据采集的要求日益提高。在许多场合要求数据采集系统向便携化方向发展,要求系统具有体积小、功耗低、传输速
10、率快、使用方便灵活等特点。在数据采集系统中,如何节省电能以使系统工作时间更长,如何通信才能使系统数据传输速度更快,已经成为系统开发过程中必须加以考虑的主要内容。微控制器MSP430的超低功耗技术在众多单片机中独树一帜,同时它具有集成高度等特点,因此,选用该控制器作为系统的主控制器,实现数据采集和Flash存储等功能。此外,USB端口与以往的普通端口(串口与并口)相比具有传输速度快、功耗低、支持即插即用、维护方便等优点;因此在通信设计时,结合UART转USB芯片CP2101以实现USB接口通信。上述设计既利用了MSP430的超低功耗特性,又利用了CP2101设计USB接口的简便性,设计得到的数据
11、采集系统可以实现便携化、低功耗、使用方便等目标。1 MSP430数据采集系统的USB接口设计11 采信系统简介本系统实现多路数据的采集、Flash存储及USB通信等功能。单片机系统主要完成信息采集、A/D转换、对信号进行放大滤波处理、数据通信、Flash存储等;实时时钟记录采集数据的时间;CP2101实现USB接口,并把单片机采集到的信号传给微机;微机完成数据接收、存入数据库、数据处理、计算、显示等功能。12 超低功耗MSP430微控制器MSP430是TI公司近几年推出的16位系列单片机。它采用最新的低功耗技术,工作在1.83.6V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPM1、
12、LPM2、LPM3、LPM4);在电流电压为3V时,各种模式的工作电流分别为AM:340A、LPM1:70A、LPM2:17A、LPM3:2A、LPM4:0.1A,而且可以方便地在各种工作模式之间切换。它的赶低功耗性在实际应用中,尤其是电池供电的便携式设备中表现尤为突出。在系统初始化后进入待机模式,当有允许的中断请求时,CPU将在6的时间内被唤醒,进入活动模式,执行中断服务程序。执行完毕,在RETI指令之后,系统返回到中断前的状态,继续低功耗模式。本设计采用MSP430F13X微控制器。它具有非常高的集成度,单片集成了多通道12位A/D转换、PWM功能定时器、斜边A/D转换、片内USART、看
13、门狗定时器、片内数控振荡器(DCO)、大量的I/O端口、大容量的片内RAM和ROM以及Flash存储器。其中Flash存储器可以实现掉电保护和软件升级。13 USB接口芯片选型通用串行总线USB是由Intel等厂商制定的连接计算机与具有USB接口的多种外设之间通信的串行总线。传统上,USB接口的开发较为复杂。在同其它USB接口芯片相比较之后,本设计选择了无需外部元件的UART转USB芯片CP2101。选择这种接口芯片,可使USB通信接口设计变得十分容易。与同类产品相比,CP2101具有以下优点:具有较小的封装。CP2101为28脚5mm5mm MLP封装。这在PCB上的尺寸就比竞争对手小30%
14、左右。高度成度。片内集成512字节EEOROM(用于存储厂家ID等数据),片内集成收发器、无需外部电阻;片内集成时钟,无需外部晶体。低成本,可实现USB转串口的解决方案。CP2101的USB功能无需外部元件,而大多数竞争者的USB器件则需要额外的终端晶体管、上拉电阻、晶振和EEPROM。具有竞争力的器件价格,简化的外围电路,无成本驱动支持使得CP2101在成本上的优势远超过竞争者的解决方案。具有低功耗、高速度的特性,符合USB2.0规X,适合于所有的UART接口(波特率为300bps921.6kbps)。工业级温度X围为-4085)。2 USB通信的硬件接口电路硬件电路如图1所示。CP2101
15、的SUSPEND与SUSPEND引脚接到MSP430F13X的普通串口上。这两个引脚传送USB挂起和恢复信号,此功能便于CP2101器件以及外部电路的电源管理。当在总线上检测到挂起信号时,CP2101将进入挂起模式,可以节省电能。在进入挂起模式时,CP2101会发出SUSPEND与SUSPEND信号。为了避免SUSPEND与SUSPEND在复位期间处于高电平,使用10k的下拉电阻确保SUSPEND在复位期间处于低电平。CP2101的USB功能控制器管理USB和UART间所有的数据传输,以及由USB主控制器发出的命令请求以及用于控制UART功能的命令等。CP2101的UART接口处理所有的RS2
16、32信号,包括控制和握手信号。CP2101的VBUS与VREGIN引脚必须始终连到USB的VBUS信号上。在VREGIN的输入端加去耦电容(1F与0.1F并联)。CP2101与单片机接口是标准UART电平,与计算的USB端口连接是USB标准电路,因此,无论与3V还是5V供电的单片机连接都不需要电平转换。 USB接口程序设计包括三部分:单片机程序开发、USB设备驱动程序开发、主机应用程序开发。三者互相配置才能完成可靠、快速的数据传输。其中USB设备驱动程序Cygnal公司已经提供。这里所要编写的是剩下的两部分。一部分为单片机MSP430F13X的串行通信程序,即对波特率、数据位、校验位、有无奇偶
17、校验等通信协议的设计及单片机串行通信功能控制器的设置;另一部分为主机对CP2101的通信程序,这部分要在VC+环境中调用API函数实现。31 单片机程序设计在IAR Embedded Workbench嵌入式集成开发环境中,编写单片机通信程序,可实现在线编辑修改。MSP430的内核CPU结构是按照精简指令集和高透明指令的宗旨来设计的,使用的指令有硬件执行的内核指令和基于现有硬件结构的高效率的仿真指令。以下为系统发送数据的部分应用程序(包括初始化及触发UART端口程序):#include msp430x13x.h/*串口*/void send_byte(char sdata)TXBUF0=sda
18、ta; /*发送数据缓存(UTXBUF0)*/while(IFG1 & TUXIFG0)=0);/*目的操作数位测试,发送中断标志*/*main*/void main (void)char a;uint a=0x0055;WDTCTL=WDTPW+WDTHOLD;/*停看门狗,WDTCTL看门狗寄存器*/UCTL0=CHAR;/*8位接收控制寄存器URCTL线路空闲u24322异步u26080无反馈8位1位停止位u26080无校验位*/UTCTL0=SSEL0;/*发送控制寄存器UTCTL0,UCLK=ACLK时钟*/UBR00=0x0D;/*32Kb/2400b=13.65,波特率选择寄存器
19、*/UBR10=0x00;/*高字节*/UMCTL0=0x6B; /*调节*/ME1|=UTXE0+URXE0;/*开USART0 TXD/RXD接收/发送允许*/IE1|=URXIF0;/*打开USART0 RX接收中断允许位*/P3SEL|=0x30;/*P3.4,5=USART0 TXD/RXD,选择外围模块功能*/P3DIR|=0x10;/*目标操作数置位,P3.4=1,输出模式*/_EINT();/*开中断*/主循环for(;)send_byet(a+);3.2 USB设备驱动程序的安装当把开发板接到主机的USB端口时系统会提示发现新硬件,并要求安装驱动程序:先安装CP2101的驱动
20、程序CP2101_Drivers.exe到C:Filesto RS-232 Bridge Controller.完成上面两步的安装后,在系统的设备管理器中会看见CP2101虚拟的那个口。在以后的设计中就是对这个口进行操作。此时可能应用串口调试助手调试下位机程序,接收发送数据。33 主机应用程序设计主机应用程序的编写使用VC+编译环境中的API(应用程序设计接口)函数实现。应用程序的设计方法与串口编程类似。首先必须查找设备并打开设备的句柄,然后进行读写和控制操作,最后是关闭设备句柄。为了提高效率,可使用多线程技术实现读写。具体步骤如下:把CP2101的动态库CP2101.DLL文件拷贝到,或者路
21、径下。当程序运行时就能调用CP2101.DLL。在visual studio6.0中打开CP2101SetIDs.dsw,选择Release或者Debug建立CP2101.EXE工程文件。在VC+6.0中CP2101.LIB,这时就可以应用CP2101的动态库了。在VC+里进行编程,用API功能函数对USB堆栈、CP2101的EEPROM及数据传输的通信协议等进行编程。当数据传输完毕时,应用CP2101_Close()函数关闭设备句柄。可以根据实际应用修改CP2101的VID和PID,并用相应函数写进CP2101的EEPROM中。但须注意的是,修改后要用CP2101_Rest()函数使CP2101复位并重新安装驱动程序。4 结论通过试验证明,本设计能够很好地完成USB通信,达到了预期的目的。应用超低功耗MSP430微控制器与CP2101实现USB通信接口设计,具有体积小、功耗低、开发简单、可靠性高、移植性强等特点。在此基础上开发的低功耗数据采集系统具有很大的优越性。这种设计可以加以推广应用到其它便携式设备开发中。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1