低功耗數據采集系統的USB接口設計
現代工業生產和科學研究對數據采集的要求日益提高[2]。在許多場合要求數據采集系統向便攜化方向發展,要求系統具有體積小、功耗低、傳輸速度快、使用方便靈活等特點。在數據采集系統中,如何節省電能以使系統工作時間更長,如何通信才能使系統數據傳輸速度更快,已經成為系統開發過程中必須加以考慮的主要內容。
本文引用地址:http://www.104case.com/article/201611/319182.htm微控制器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:CygnalCP2101,然后運行Setup.exe到C:Program FilesUSB 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通信接口設計,具有體積小、功耗低、開發簡單、可靠性高、移植性強等特點。在此基礎上開發的低功耗數據采集系統具有很大的優越性。這種設計可以加以推廣應用到其它便攜式設備開發中。
評論