完结体系运转的最小功耗是现代电子体系的遍及取向,也是绿色电子的基本要求。选用最小功耗规划办法既能削减电子设备的运用功耗,又能削减备用状况下的功率耗费。在节约能源的一起还有利于削减电磁污染,有利于电子体系向便携化方向开展,有助于进步体系的牢靠性[1]。
现代工业生产和科学研究对数据收集的要求日益进步[2]。在许多场合要求数据收集体系向便携化方向开展,要求体系具有体积小、功耗低、传输速度快、运用便利灵敏等特色。在数据收集体系中,怎么节约电能以使体系作业时刻更长,怎么通讯才干使体系数据传输速度更快,现已成为体系开发过程中有必要加以考虑的首要内容。
微操控器MSP430的超低功耗技能在很多单片机中别出心裁,一起它具有集成度高级特色,因而,选用该操控器作为体系的主操控器,完结数据收集和Flash存储等功用。此外,USB端口与以往的一般端口(串口与并口)比较具有传输速度快、功耗低、支撑即插即用、维护便利等长处;因而在通讯规划时,结合UART转USB芯片CP2101以完结USB接口通讯。上述规划既利用了MSP430的超低功耗特性,又利用了CP2101规划USB接口的简便性,规划得到的数据收集体系能够完结便携化、低功耗、运用便利等方针。
1 MSP430数据收集体系的USB接口规划
1.1 收集体系简介
本体系完结多路数据的收集、Flash存储及USB通讯等功用。单片机体系首要完结信号收集、A/D转化、对信号进行扩大滤波处理、数据通讯、Flash存储等;实时时钟记载收集数据的时刻;CP2101完结USB接口,并把单片机收集到的信号传给微机;微机完结数据接纳、存入数据库、数据处理、核算、显现等功用[3]。
1.2 超低功耗MSP430微操控器
MSP430是TI公司近几年推出的16位系列单片机。它选用最新的低功耗技能,作业在1.8~3.6V电压下,有正常作业形式(AM)和4种低功耗作业形式(LPM1、LPM2、LPM3、LPM4);在电源电压为3V时,各种形式的作业电流分别为AM:340μA、LPM1:70μA、LPM2:17μA、LPM3:2μA、LPM4:0.1μA,并且能够便利地在各种作业形式之间切换。它的超低功耗性在实践运用中,尤其是在电池供电的便携式设备中体现尤为杰出。在体系初始化后便进入待机形式,当有答应的中止恳求时,CPU将在6μs的时刻内被唤醒,进入活动形式,履行中止服务程序。履行结束,在RETI指令之后,体系返回到中止前的状况,持续低功耗形式[4]。
本规划选用MSP430F13X微操控器。它具有非常高的集成度,单片集成了多通道12位A/D转化、PWM功用定时器、斜边A/D转化、片内USART、看门狗定时器、片内数控振荡器(DCO)、很多的I/O端口、大容量的片内RAM和ROM以及Flash存储器。其间Flash存储器能够完结掉电维护和软件晋级。
1.3 USB接口芯片选型
通用串行总线USB是由Intel等厂商拟定的衔接核算机与具有USB接口的多种外设之间通讯的串行总线[5]。传统上,USB接口的开发较为杂乱。在同其它USB接口芯片比较较之后,本规划挑选了无需外部元件的UART转USB芯片CP2101。挑选这种接口芯片,可使USB通讯接口规划变得非常简略。与同类产品比较,CP2101具有以下长处:
① 具有较小的封装。CP2101为28脚5mm×5mm MLP封装。这在PCB上的尺度就比竞争对手小30%左右。
② 高集成度。片内集成512字节EEPROM(用于存储厂家ID等数据),片内集成收发器、无需外部电阻;片内集成时钟,无需外部晶体。
③低本钱,可完结USB转串口的解决方案。CP2101的USB功用无需外部元件,而大多数竞争者的USB器材则需求额定的终端晶体管、上拉电阻、晶振和EEPROM。具有竞争力的器材价格,简化的外围电路,无本钱驱动支撑使得CP2101在本钱上的优势远超过竞争者的解决方案。
④ 具有低功耗、高速度的特性,契合USB2.0规范,适合于一切的UART接口(波特率为300bps~921.6kbps)。工业级温度规模为-40℃~85℃[6]。
2 USB通讯的硬件接口电路
硬件电路如图1所示。CP2101的SUSPEND与引脚接到MSP430F13X的一般串口上。这两个引脚传送USB挂起和康复信号,此功用便于CP2101器材以及外部电路的电源办理。当在总线上检测到挂起信号时,CP2101将进入挂起形式,能够节约电能。在进入挂起形式时,CP2101会宣布SUSPEND与信号。为了防止SUSPEND与在复位期间处于高电平,运用10kΩ的下拉电阻保证在复位期间处于低电平。
CP2101的USB功用操控器办理USB和UART间一切的数据传输,以及由USB主操控器宣布的指令恳求以及用于操控UART功用的指令等。CP2101的UART接口处理一切的RS232信号,包含操控和握手信号。CP2101的VBUS与VREGIN引脚有必要一直连到USB的VBUS信号上。在VREGIN的输入端加去耦电容(1μF与0.1μF并联)[6]。CP2101与单片机接口是规范UART电平,与核算机的USB端口衔接是USB规范电平,因而,不管与3V仍是5V供电的单片机衔接都不需求电平转化。
3 USB通讯接口的软件程序规划
USB接口程序规划包含三部分:单片机程序开发、USB设备驱动程序开发、主机运用程序开发。三者互相配合才干完结牢靠、快速的数据传输。其间USB设备驱动程序Cygnal公司现已供给。这儿所要编写的是剩余的两部分。一部分为单片机MSP430F13X的串行通讯程序,即对波特率、数据位、校验位、有无奇偶校验等通讯协议的规划及单片机串行通讯功用操控器的设置;另一部分为主机对CP2101的通讯程序,这部分要在VC++环境中调用API函数完结。
3.1 单片机程序规划
在IAR EmbeddedWorkbench嵌入式集成开发环境中,编写单片机通讯程序,可完结在线修正修正。MSP430的内核CPU结构是依照精简指令集和高通明指令的主旨来规划的,运用的指令有硬件履行的内核指令和依据现有硬件结构的高功率的仿真指令[7]。以下为体系发送数据的部分运用程序(包含初始化及触发UART端口程序):
#include “msp430x13x.h”
/************************* 串口 ***********************/
void send_byte(char sdata){
TXBUF0 = sdata; /* 发送数据缓存(UTXBUF0) */
while ((IFG1 & UTXIFG0) == 0); /*意图操作数位测验,发送中止标志*/
}
/************************** main ***********************/
void main (void){
char a;
uint a=0x0055;
WDTCTL = WDTPW + WDTHOLD;/*停看门狗,WDTCTL看门狗寄存器*/
UCTL0 = CHAR; /*8位接纳操控寄存器URCTL 线路闲暇\异步\无反应\8位1位中止位\无校验位*/
UTCTL0 = SSEL0; /*发送操控寄存器UTCTL0,
UCLK = ACLK时钟*/
UBR00 = 0x0D; /*32Kb/ 2400b = 13.65,波特率挑选寄存器*/
UBR10 = 0x00; /* 高字节*/
UMCTL0 = 0x6B; /*调理*/
ME1 = UTXE0 + URXE0; /*开 USART0 TXD/RXD 接纳/发送答应*/
IE1 = URXIE0; /*开 USART0 RX 接纳中止答应位*/
P3SEL = 0x30; /*P3.4,5 = USART0 TXD/RXD,挑选外围模块功用*/
P3DIR = 0x10; /*方针操作数置位, P3.4=1,输出形式*/
_EINT(); /*开中止*/
// 主循环
for (;;)
{ send_byet(a++);}
}
图1 硬件电路
3.2 USB设备驱动程序的装置
当把开发板接到主机的USB端口时体系会提示发现新硬件,并要求装置驱动程序:
先装置CP2101的驱动程序CP2101_Drivers.exe到C:\Cygnal\CP2101,然后运转Setup.exe到C:\Program Files\USB to RS-232 Bridge Controller。
完结上面两步的装置后,在体系的设备办理器中会看见CP2101虚拟的那个COM口。在今后的规划中便是对这个口进行操作。此刻能够运用串口调试帮手调试下位机程序,接纳发送数据。
3.3 主机运用程序规划
主机运用程序的编写运用VC++编译环境中的API(运用程序规划接口)函数完结。运用程序的规划办法与串口编程相似。首要有必要查找设备并翻开设备的句柄,然后进行读写和操控操作,最终是封闭设备句柄。为了进步功率,可运用多线程技能完结读写[8]。具体步骤如下:
① 把CP2101的动态链接库CP2101.DLL文件拷贝到\Windows,\winnt或许\system32途径下。当程序运转时就能调用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通讯接口规划,具有体积小、功耗低、开发简略、牢靠性高、移植性强等特色。在此基础上开发的低功耗数据收集体系具有很大的优越性。这种规划能够加以推行运用到其它便携式设备开发中。