- 相關(guān)推薦
低軾耗數(shù)據(jù)采集系統(tǒng)的USB接口設(shè)計(jì)
摘要:介紹低功非法收入數(shù)據(jù)采集系統(tǒng)的USB通信接口設(shè)計(jì)方法。該設(shè)計(jì)以超低功耗單片機(jī)MSP430F13X為主控制芯片,為主控制芯片,連接Cygnal公司的UART轉(zhuǎn)USB芯片CP2101,實(shí)現(xiàn)低功耗數(shù)據(jù)采集系統(tǒng)的USB接口設(shè)計(jì)。在IAREmbeddedWorkbench集成開(kāi)發(fā)環(huán)境和VC++環(huán)境中,編輯單片機(jī)與主機(jī)的通信協(xié)議。該設(shè)計(jì)具有超低功耗、高集成度和設(shè)計(jì)簡(jiǎn)便等優(yōu)點(diǎn),適于便攜式電子設(shè)備的開(kāi)發(fā)應(yīng)用。關(guān)鍵詞:超低功耗MSP430數(shù)據(jù)采集USB接口設(shè)計(jì)
引言
實(shí)現(xiàn)系統(tǒng)運(yùn)行的最小功耗是現(xiàn)代電子系統(tǒng)的普通取向,也是綠色電子的基本要求。采有最小功耗設(shè)計(jì)方法既能減少電子設(shè)備的使用功耗,又能減少備用狀態(tài)下的功率消耗。在節(jié)省能源的同時(shí)還有利于減少電磁污染,有利于電子系統(tǒng)向便攜式方向發(fā)展,有助于提高系統(tǒng)的可靠性。
現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益提高。在許多場(chǎng)合要求數(shù)據(jù)采集系統(tǒng)向便攜化方向發(fā)展,要求系統(tǒng)具有體積小、功耗低、傳輸速率快、使用方便靈活等特點(diǎn)。在數(shù)據(jù)采集系統(tǒng)中,如何節(jié)省電能以使系統(tǒng)工作時(shí)間更長(zhǎng),如何通信才能使系統(tǒng)數(shù)據(jù)傳輸速度更快,已經(jīng)成為系統(tǒng)開(kāi)發(fā)過(guò)程中必須加以考慮的主要內(nèi)容。
微控制器MSP430的超低功耗技術(shù)在眾多單片機(jī)中獨(dú)樹(shù)一幟,同時(shí)它具有集成高度等特點(diǎn),因此,選用該控制器作為系統(tǒng)的主控制器,實(shí)現(xiàn)數(shù)據(jù)采集和Flash存儲(chǔ)等功能。此外,USB端口與以往的普通端口(串口與并口)相比具有傳輸速度快、功耗低、支持即插即用、維護(hù)方便等優(yōu)點(diǎn);因此在通信設(shè)計(jì)時(shí),結(jié)合UART轉(zhuǎn)USB芯片CP2101以實(shí)現(xiàn)USB接口通信。上述設(shè)計(jì)既利用了MSP430的超低功耗特性,又利用了CP2101設(shè)計(jì)USB接口的簡(jiǎn)便性,設(shè)計(jì)得到的數(shù)據(jù)采集系統(tǒng)可以實(shí)現(xiàn)便攜化、低功耗、使用方便等目標(biāo)。
1MSP430數(shù)據(jù)采集系統(tǒng)的USB接口設(shè)計(jì)
1.1采信系統(tǒng)簡(jiǎn)介
本系統(tǒng)實(shí)現(xiàn)多路數(shù)據(jù)的采集、Flash存儲(chǔ)及USB通信等功能。單片機(jī)系統(tǒng)主要完成信息采集、A/D轉(zhuǎn)換、對(duì)信號(hào)進(jìn)行放大濾波處理、數(shù)據(jù)通信、Flash存儲(chǔ)等;實(shí)時(shí)時(shí)鐘記錄采集數(shù)據(jù)的時(shí)間;CP2101實(shí)現(xiàn)USB接口,并把單片機(jī)采集到的信號(hào)傳給微機(jī);微機(jī)完成數(shù)據(jù)接收、存入數(shù)據(jù)庫(kù)、數(shù)據(jù)處理、計(jì)算、顯示等功能。
1.2超低功耗MSP430微控制器
MSP430是TI公司近幾年推出的16位系列單片機(jī)。它采用最新的低功耗技術(shù),工作在1.8~3.6V電壓下,有正常工作模式(AM)和4種低功耗工作模式(LPM1、LPM2、LPM3、LPM4);在電流電壓為3V時(shí),各種模式的工作電流分別為AM:340μA、LPM1:70μA、LPM2:17μA、LPM3:2μA、LPM4:0.1μA,而且可以方便地在各種工作模式之間切換。它的趕低功耗性在實(shí)際應(yīng)用中,尤其是電池供電的便攜式設(shè)備中表現(xiàn)尤為突出。在系統(tǒng)初始化后進(jìn)入待機(jī)模式,當(dāng)有允許的中斷請(qǐng)求時(shí),CPU將在6μ的時(shí)間內(nèi)被喚醒,進(jìn)入活動(dòng)模式,執(zhí)行中斷服務(wù)程序。執(zhí)行完畢,在RETI指令之后,系統(tǒng)返回到中斷前的狀態(tài),繼續(xù)低功耗模式。
本設(shè)計(jì)采用MSP430F13X微控制器。它具有非常高的集成度,單片集成了多通道12位A/D轉(zhuǎn)換、PWM功能定時(shí)器、斜邊A/D轉(zhuǎn)換、片內(nèi)USART、看門(mén)狗定時(shí)器、片內(nèi)數(shù)控振蕩器(DCO)、大量的I/O端口、大容量的片內(nèi)RAM和ROM以及Flash存儲(chǔ)器。其中Flash存儲(chǔ)器可以實(shí)現(xiàn)掉電保護(hù)和軟件升級(jí)。
1.3USB接口芯片選型
通用串行總線USB是由Intel等廠商制定的連接計(jì)算機(jī)與具有USB接口的多種外設(shè)之間通信的串行總線。傳統(tǒng)上,USB接口的開(kāi)發(fā)較為復(fù)雜。在同其它USB接口芯片相比較之后,本設(shè)計(jì)選擇了無(wú)需外部元件的UART轉(zhuǎn)USB芯片CP2101。選擇這種接口芯片,可使USB通信接口設(shè)計(jì)變得十分容易。與同類(lèi)產(chǎn)品相比,CP2101具有以下優(yōu)點(diǎn):
、倬哂休^小的封裝。CP2101為28腳5mm×5mmMLP封裝。這在PCB上的尺寸就比競(jìng)爭(zhēng)對(duì)手小30%左右。
②高度成度。片內(nèi)集成512字節(jié)EEOROM(用于存儲(chǔ)廠家ID等數(shù)據(jù)),片內(nèi)集成收發(fā)器、無(wú)需外部電阻;片內(nèi)集成時(shí)鐘,無(wú)需外部晶體。
、鄣统杀荆蓪(shí)現(xiàn)USB轉(zhuǎn)串口的解決方案。CP2101的USB功能無(wú)需外部元件,而大多數(shù)競(jìng)爭(zhēng)者的USB器件則需要額外的終端晶體管、上拉電阻、晶振和EEPROM。具有競(jìng)爭(zhēng)力的器件價(jià)格,簡(jiǎn)化的外圍電路,無(wú)成本驅(qū)動(dòng)支持使得CP2101在成本上的優(yōu)勢(shì)遠(yuǎn)超過(guò)競(jìng)爭(zhēng)者的解決方案。
④具有低功耗、高速度的特性,符合USB2.0規(guī)范,適合于所有的UART接口(波特率為300bps~921.6kbps)。工業(yè)級(jí)溫度范圍為-40℃~85℃)。
2USB通信的硬件接口電路
硬件電路如圖1所示。CP2101的SUSPEND與SUSPEND引腳接到MSP430F13X的普通串口上。這兩個(gè)引腳傳送USB掛起和恢復(fù)信號(hào),此功能便于CP2101器件以及外部電路的電源管理。當(dāng)在總線上檢測(cè)到掛起信號(hào)時(shí),CP2101將進(jìn)入掛起模式,可以節(jié)省電能。在進(jìn)入掛起模式時(shí),CP2101會(huì)發(fā)出SUSPEND與SUSPEND信號(hào)。為了避免SUSPEND與SUSPEND
在復(fù)位期間處于高電平,使用10kΩ的下拉電阻確保SUSPEND在復(fù)位期間處于低電平。
CP2101的USB功能控制器管理USB和UART間所有的數(shù)據(jù)傳輸,以及由USB主控制器發(fā)出的命令請(qǐng)求以及用于控制UART功能的命令等。CP2101的UART接口處理所有的RS232信號(hào),包括控制和握手信號(hào)。CP2101的VBUS與VREGIN引腳必須始終連到USB的VBUS信號(hào)上。在VREGIN的輸入端加去耦電容(1μF與0.1μF并聯(lián))。CP2101與單片機(jī)接口是標(biāo)準(zhǔn)UART電平,與計(jì)算的USB端口連接是USB標(biāo)準(zhǔn)電路,因此,無(wú)論與3V還是5V供電的單片機(jī)連接都不需要電平轉(zhuǎn)換。
3USB通信接口的軟件程序設(shè)計(jì)
USB接口程序設(shè)計(jì)包括三部分:?jiǎn)纹瑱C(jī)程序開(kāi)發(fā)、USB設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)、主機(jī)應(yīng)用程序開(kāi)發(fā)。三者互相配置才能完成可靠、快速的數(shù)據(jù)傳輸。其中USB設(shè)備驅(qū)動(dòng)程序Cygnal公司已經(jīng)提供。這里所要編寫(xiě)的是剩下的兩部分。一部分為單片機(jī)MSP430F13X的串行通信程序,即對(duì)波特率、數(shù)據(jù)位、校驗(yàn)位、有無(wú)奇偶校驗(yàn)等通信協(xié)議的設(shè)計(jì)及單片機(jī)串行通信功能控制器的設(shè)置;另一部分為主機(jī)對(duì)CP2101的通信程序,這部分要在VC++環(huán)境中調(diào)用API函數(shù)實(shí)現(xiàn)。
3.1單片機(jī)程序設(shè)計(jì)
在IAREmbeddedWorkbench嵌入式集成開(kāi)發(fā)環(huán)境中,編寫(xiě)單片機(jī)通信程序,可實(shí)現(xiàn)在線編輯修改。MSP430的內(nèi)核CPU結(jié)構(gòu)是按照精簡(jiǎn)指令集和高透明指令的宗旨來(lái)設(shè)計(jì)的,使用的指令有硬件執(zhí)行的內(nèi)核指令和基于現(xiàn)有硬件結(jié)構(gòu)的高效率的仿真指令。以下為系統(tǒng)發(fā)送數(shù)據(jù)的部分應(yīng)用程序(包括初始化及觸發(fā)UART端口程序):
#include"msp430x13x.h"
/*************************串口*************************/
voidsend_byte(charsdata){
TXBUF0=sdata;/*發(fā)送數(shù)據(jù)緩存(UTXBUF0)*/
while(IFG1&TUXIFG0)==0);/*目的操作數(shù)位測(cè)試,發(fā)送中斷標(biāo)志*/
}
/*************************main*************************/
voidmain(void){
chara;
uinta=0x0055;
WDTCTL=WDTPW+WDTHOLD;/*?撮T(mén)狗,WDTCTL看門(mén)狗寄存器*/
UCTL0=CHAR;/*8位接收控制寄存器URCTL線路空閑\u24322異步\u26080無(wú)反饋8位1位停止位\u26080無(wú)校驗(yàn)位*/
UTCTL0=SSEL0;/*發(fā)送控制寄存器UTCTL0,UCLK=ACLK時(shí)鐘*/
UBR00=0x0D;/*32Kb/2400b=13.65,波特率選擇寄存器*/
UBR10=0x00;/*高字節(jié)*/
UMCTL0=0x6B;/*調(diào)節(jié)*/
ME1|=UTXE0+URXE0;
/*開(kāi)USART0TXD/RXD接收/發(fā)送允許*/
IE1|=URXIF0;/*打開(kāi)USART0RX接收中斷允許位*/
P3SEL|=0x30;/*P3.4,5=USART0TXD/RXD,選擇外圍模塊功能*/
P3DIR|=0x10;/*目標(biāo)操作數(shù)置位,P3.4=1,輸出模式*/
_EINT();/*開(kāi)中斷*/
//主循環(huán)
for(;;)
{send_byet(a++);}
}
3.2USB設(shè)備驅(qū)動(dòng)程序的安裝
當(dāng)把開(kāi)發(fā)板接到主機(jī)的USB端口時(shí)系統(tǒng)會(huì)提示發(fā)現(xiàn)新硬件,并要求安裝驅(qū)動(dòng)程序:
先安裝CP2101的驅(qū)動(dòng)程序CP2101_Drivers.exe到C:FilestoRS-232BridgeController.
完成上面兩步的安裝后,在系統(tǒng)的設(shè)備管理器中會(huì)看見(jiàn)CP21
01虛擬的那個(gè)COM口。在以后的設(shè)計(jì)中就是對(duì)這個(gè)口進(jìn)行操作。此時(shí)可能應(yīng)用串口調(diào)試助手調(diào)試下位機(jī)程序,接收發(fā)送數(shù)據(jù)。
3.3主機(jī)應(yīng)用程序設(shè)計(jì)
主機(jī)應(yīng)用程序的編寫(xiě)使用VC++編譯環(huán)境中的API(應(yīng)用程序設(shè)計(jì)接口)函數(shù)實(shí)現(xiàn)。應(yīng)用程序的設(shè)計(jì)方法與串口編程類(lèi)似。首先必須查找設(shè)備并打開(kāi)設(shè)備的句柄,然后進(jìn)行讀寫(xiě)和控制操作,最后是關(guān)閉設(shè)備句柄。為了提高效率,可使用多線程技術(shù)實(shí)現(xiàn)讀寫(xiě)。具體步驟如下:
、侔袰P2101的動(dòng)態(tài)鏈接庫(kù)CP2101.DLL文件拷貝到,或者路徑下。當(dāng)程序運(yùn)行時(shí)就能調(diào)用CP2101.DLL。
、谠趘isualstudio6.0中打開(kāi)CP2101SetIDs.dsw,選擇Release或者Debug建立CP2101.EXE工程文件。
、墼赩C++6.0中鏈接CP2101.LIB,這時(shí)就可以應(yīng)用CP2101的動(dòng)態(tài)鏈接庫(kù)了。
、茉赩C++里進(jìn)行編程,用API功能函數(shù)對(duì)USB堆棧、CP2101的EEPROM及數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議等進(jìn)行編程。
當(dāng)數(shù)據(jù)傳輸完畢時(shí),應(yīng)用CP2101_Close()函數(shù)關(guān)閉設(shè)備句柄?梢愿鶕(jù)實(shí)際應(yīng)用修改CP2101的VID和PID,并用相應(yīng)函數(shù)寫(xiě)進(jìn)CP2101的EEPROM中。但須注意的是,修改后要用CP2101_Rest()函數(shù)使CP2101復(fù)位并重新安裝驅(qū)動(dòng)程序。
4結(jié)論
通過(guò)試驗(yàn)證明,本設(shè)計(jì)能夠很好地完成USB通信,達(dá)到了預(yù)期的目的。應(yīng)用超低功耗MSP430微控制器與CP2101實(shí)現(xiàn)USB通信接口設(shè)計(jì),具有體積小、功耗低、開(kāi)發(fā)簡(jiǎn)單、可靠性高、移植性強(qiáng)等特點(diǎn)。在此基礎(chǔ)上開(kāi)發(fā)的低功耗數(shù)據(jù)采集系統(tǒng)具有很大的優(yōu)越性。這種設(shè)計(jì)可以加以推廣應(yīng)用到其它便攜式設(shè)備開(kāi)發(fā)中。
【低軾耗數(shù)據(jù)采集系統(tǒng)的USB接口設(shè)計(jì)】相關(guān)文章:
基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)08-06
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)08-06
基于USB接口的心電信號(hào)數(shù)據(jù)采集系統(tǒng)08-06
USB2.0接口和DSP構(gòu)成的高速數(shù)據(jù)采集系統(tǒng)08-06
具有USB2.0接口的高速數(shù)據(jù)采集卡設(shè)計(jì)08-06
基于USB總線的高速數(shù)據(jù)采集系統(tǒng)08-06
基于USB2.0的高速同步數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)08-06
基于USB總線的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)08-06