蔣 勇,趙德艷,魯江偉,朱 琳
(中國人民解放軍63726 部隊,寧夏 銀川 750004)
隨著工業(yè)化的進步,傳統(tǒng)的采用人工進行數(shù)據(jù)記錄登記的方式已經(jīng)遠遠不能滿足現(xiàn)代工業(yè)化生產(chǎn)的要求,而采用單片機實現(xiàn)的數(shù)據(jù)采集系統(tǒng)具有無人值守和自動化特點,應(yīng)用十分廣泛[1]。MSP430F149 是美國TI 公司研發(fā)的超低功耗單片機,工作電壓為1.8~3.6 V,內(nèi)部包含有ADC12 模數(shù)轉(zhuǎn)換模塊,具有高速和通用的特點,能夠?qū)崿F(xiàn)12 位精度的模數(shù)轉(zhuǎn)換。ADC12的內(nèi)核是一個帶有采樣和保持功能的12 位轉(zhuǎn)換器,配置有8 路外部通道和4 路內(nèi)部通道,可以對模擬量進行采集。另外有6 組(每組8 路)通用I/O 口,既可以對數(shù)字量進行采集,也可以以串口的方式直接讀取傳感器(內(nèi)部有A/D 轉(zhuǎn)換模塊)的信息。單片機有兩個UART 串口通信模塊,系統(tǒng)采集得到數(shù)據(jù)后,通過串口通信模塊將數(shù)據(jù)傳送至上位機,上位機再對數(shù)據(jù)進行處理,這樣可以避免采集系統(tǒng)增加額外的存儲器,從而減輕本系統(tǒng)的負擔(dān)[2]。
圖1 為采集系統(tǒng)的組成框圖。整個系統(tǒng)的核心是MSP430F149 單片機,另外還包括許多模擬量采集傳感器、數(shù)字量采集模塊、電源供電模塊、串口通信模塊。模擬量傳感器主要用于采集模擬量,數(shù)字量采集模塊主要采集開關(guān)量。如果采集數(shù)據(jù)后需要進行大量的數(shù)據(jù)運算,為減輕單片機系統(tǒng)的處理負擔(dān),可以利用串口通信模塊將數(shù)據(jù)傳送至上位機進行處理。電源模塊主要是為整個系統(tǒng)提供可靠的電源。
圖1 采集系統(tǒng)組成
單片機模塊是整個系統(tǒng)的核心控制部分,主要功能是對系統(tǒng)進行初始化,對模擬量或數(shù)字開關(guān)量采集后進行處理。單片機電路可按照典型電路設(shè)計,由于其內(nèi)部包含ADC12 模數(shù)轉(zhuǎn)換模塊,模擬量采集時不需要額外的A/D 轉(zhuǎn)換芯片,可降低系統(tǒng)設(shè)計的復(fù)雜性,而且還可以提高系統(tǒng)的可靠性。單片機采用一般I/O 口實現(xiàn)數(shù)字量采集電路的接口。MSP430F149 單片機采用內(nèi)部32 KHz 的時鐘信號,如果增加串口通信,可外接8 MHz 時鐘信號。
單片機工作電壓為1.8~3.6 V,如果采集傳感器也需要供電,電壓也可能不一樣。系統(tǒng)設(shè)計時,必須對輸入電源進行二次穩(wěn)壓,多路輸出。為減小輸入端受到干擾,輸入端可放置一個100 uF 的濾波電容。二次穩(wěn)壓后,每路輸出之間通過磁珠進行隔離。同時在每路輸出增加2.2 uF 和0.01 uF 的電容,減小輸出電源紋波對采集信號的影響。
在采集電路中,采集信息通常包括模擬信息和數(shù)字信息。對于模擬信息,由于單片機A/D 轉(zhuǎn)換時基準為電壓,需要將采集信息(比如:溫度、濕度、電流等)通過傳感器轉(zhuǎn)換成電壓信號,將該信號直接送單片機A/D 轉(zhuǎn)換。如果轉(zhuǎn)換后電壓過高,必須進行降壓處理才能送至單片機處理。對于數(shù)字信息,數(shù)字量的“1”或者“0”相當(dāng)于電路的開和關(guān),采集輸入端產(chǎn)生的高低電平,從而完成數(shù)字量的采集任務(wù)。
單片機將數(shù)據(jù)傳至上位機進行處理時,由于單片機系統(tǒng)電平是TTL,而上位機的電平是RS-232,因此在傳輸數(shù)據(jù)時需要進行電平轉(zhuǎn)換。電平轉(zhuǎn)換通常采用電平轉(zhuǎn)換芯片,比如MAX3223 等,電平轉(zhuǎn)換電路按照典型電路設(shè)計即可。
MSP430F149 單片機軟件開發(fā)采用IAR 公司的集成開發(fā)環(huán)境:IAR Embedded Workbench[3]。整個程序采用中斷的方式,通過設(shè)置一些全局變量和全局的緩沖區(qū)來實現(xiàn)中斷程序與主程序之間的數(shù)據(jù)交互。系統(tǒng)初始化后打開中斷,當(dāng)采集到新數(shù)據(jù)后設(shè)置一個標(biāo)志。主處理通過對標(biāo)志進行判斷,從指定的緩沖區(qū)讀取數(shù)據(jù),并進行處理或?qū)?shù)據(jù)發(fā)送至上位機進行處理。具體的流程圖如圖2 所示。
圖2 系統(tǒng)程序流程
要采集某電源電路的電流大小,可采用如圖3 所示電路。在電路中,芯片LTC6101 就是一種傳感器,將電流轉(zhuǎn)化為電壓,芯片1 腳輸出電壓送至單片機,電壓大小與+5V 電流的關(guān)系為,單片機通過A/D采集得到電壓U 后,即可算出+5V 電流大小。
圖3 電流采集電路
SHT15 傳感器是一種溫濕度復(fù)合傳感器,測濕精度為±2.0%RH,在室溫25 度測溫精度為±0.3 度,具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強等優(yōu)點。傳感器內(nèi)部有一個測濕元件和一個測溫元件,同時有一個14 位的A/D 轉(zhuǎn)換器以及串行接口電路,可直接與單片機的I/O 相連。SHT15 采用兩線雙向串行接口,SCK 是同步 信號,DATA 用于數(shù)據(jù)的讀取。SHT15 的應(yīng)用電路如圖4 所示。
圖4 溫濕度采集典型應(yīng)用
對于數(shù)字量,數(shù)字量“1”對應(yīng)電路的高電平,“0”對應(yīng)電路的低電平。通過采集輸入端的高低電平,可完成數(shù)字量的采集任務(wù)。圖5 為某數(shù)字量采集電路。在電路中,U1 為單片機,U2 為8 位撥碼開關(guān),U3 為電阻排。通過撥動開關(guān)位置,可以產(chǎn)生256 個開關(guān)量。單片機通過采集高低電平,可得到256 個狀態(tài)量。
圖5 數(shù)字量采集電路
本文介紹的利用MSP430F149 實現(xiàn)的數(shù)據(jù)采集系統(tǒng)具有設(shè)計簡單、運行可靠等特點。用戶也可以在該基礎(chǔ)上進行硬件和軟件的擴展升級,比如采用MSP430X32X 系列單片機。其內(nèi)有14 位模數(shù)轉(zhuǎn)換器,可實現(xiàn)更高精度的數(shù)據(jù)采集,也可以接不同的傳感器,采集不同的數(shù)據(jù)源,實現(xiàn)自己更加豐富的功能。