基于MSP430的數(shù)據(jù)采集系統(tǒng)設計
1 引 言
本文引用地址:http://butianyuan.cn/article/201706/352484.htm在科學研究及其他各種領域中,數(shù)據(jù)采集和監(jiān)測已經(jīng)成為日益重要的檢測技術。
在許多工業(yè)測控機械、醫(yī)療儀器以及消費電子產(chǎn)品中,都對數(shù)據(jù)采集系統(tǒng)的實時性與功耗提出了更高的要求:即在滿足微功耗、微型化的總體設計原則的基礎上,又要能實時反映現(xiàn)場采集數(shù)據(jù)的變化。這就對系統(tǒng)的功耗、采樣速度、數(shù)據(jù)存儲和傳輸速度等提出了更高的要求。然而,隨著半導體與微控制器技術的飛速發(fā)展,各種微電子器件性能不斷提升,功耗卻不斷降低。技術的進步使得高速度、低功耗的數(shù)據(jù)采集系統(tǒng)得以實現(xiàn)。
本文設計的數(shù)據(jù)采集與顯示系統(tǒng)采用TI公司研制的MSP430系列超低功耗單片機作為核心控制元件,實現(xiàn)了數(shù)據(jù)的高速采集與顯示。
系統(tǒng)主要特點:
功耗低 所有器件均采用低功耗器件全速工作時,總體功率小到1W。
速度高 由于單片機內置DMA控制器,可以顯著提高系統(tǒng)的速度。
2 系統(tǒng)硬件結構
系統(tǒng)在兼顧成本的同時,盡量采用集成度高、功耗低、速度快的器件。系統(tǒng)結構如圖1所示。
核心采用MSP430F169單片機,MSP430系列單片機是TI公司研發(fā)的16位超低功耗單片機,非常適合各種功率要求低的場合。 MSP430F169單片機全部單周期指令,速度高,內部自帶的12化A/D和DMA控制單元可以分別為系統(tǒng)采樣電路和數(shù)據(jù)傳輸部分采用,使得系統(tǒng)的硬件 電路更加集成化、小型化。
系統(tǒng)的顯示部分采用點陣式LCD,實現(xiàn)對現(xiàn)場采集數(shù)據(jù)波形的實時監(jiān)測。LCD選用最新COG技術的點陣式單色黑白LCD,3.3 V 工作電壓,內部自帶顯示控制器。他的特點是體積小,厚度僅為2 mm;功耗低,不用時可進入睡眠模式;速度快,指令操作周期<1 μs;外圍電路簡單,只須外接幾個電容即可,特別適合于數(shù)字化儀表、便攜式儀表及智能化家電和嵌入式應用系統(tǒng)中,他的核心控制器采用三星公司的 S6B0724芯片,可以直接與單片機進行8位并行或串行通信,具有很高的爽活性。
3 系統(tǒng)各模塊介紹及軟件設計
限于篇幅,僅對系統(tǒng)幾個主要模塊的功能與工作過程做介紹。
3.1 A/D模塊及其子程序設計
MSP430F169內部的ADC12模塊能夠實現(xiàn)12位精度的模數(shù)轉換,具有高速和通用的特性。其主要特點有:12位轉換精度;內置采樣與保持電路;有多種時鐘源可提供給ADC12模塊,且模塊本身內置時鐘發(fā)生器;內置溫度傳感器;配有8路外部通道與4路內部通道;內置參考電源,且參考電壓有6種可編程的組合;模數(shù)轉換有4種模式,可靈活應用以節(jié)省軟件量及時間;可以關閉ADC12模塊以節(jié)省系統(tǒng)能耗。
本次實驗ADC12時鐘源選擇為MCLK=8 MHz,采樣頻率最大可以達到200k/s,采用單通道多次轉換模式。限于篇幅,僅給出ADC12初始化子程序:
3.2 DMA模塊及其程序設計
DMA(Direct Memory Access)是直接存儲器訪問的意思。DMA控制器不需要CPU的干預即可提供最先進的可配置的數(shù)據(jù)傳輸能力,從而可以解放CPU,使其不是將更多的時 間浪費在等待上,而是將更多的時間用于處理數(shù)據(jù)。DMA控制器可在內存與內部及外部硬件之間進行精確的傳輸控制。DMA消除了數(shù)據(jù)傳輸延遲時間以及CPU 等待等各種開銷,從而提高了MCU利用率,使信號處理能力更強。
MSP430F169的DMA控制器具有如下特性:
(1)擁有3個獨立的DMA通道。
(2)可以配置通道的優(yōu)先權。
(3)每個字/字節(jié)傳送只需要2個MCLK時鐘周期。
(4)字節(jié)和字可以混合傳送:字節(jié)到字節(jié)、字節(jié)到字、字到字節(jié)、字到字。
(5)可配置多種觸發(fā)源。
(6)可配置DMA觸發(fā)方式:邊沿觸發(fā)或電平觸發(fā)。
(7)4種尋址模式:固定地址到固定地址、固定地址到塊地址、塊地址到固定地址、塊地址到塊地址。
當A/D在單通道上執(zhí)行時,ADC12IFGx標志置位表示轉化結束繼而觸發(fā)DMA操作,同時將A/D轉換后的數(shù)據(jù)存儲到定義在RAM中的數(shù)組r_data[]。采用DMA通道0進行數(shù)據(jù)傳輸時的初始化程序如下所示:
3.3 單片機與LCD的接口設計
由于此CPU與LCD均采為3.3 V 工作電壓,因此單片機與LCD之間的接口不存在電平匹配問題,由于顯示器只需要接受指令,所以不需要大功率驅動,因此單片機可以直接與LCD連接。單片機 I/O引腳豐富,為了提高顯示速度,采用并行接口,單片機的P4口與P5口的三根線分別作為數(shù)據(jù)線和控制線與LCD相連接,接口電路如圖2所示。
LCD接口是一種任務寄存器結構,所有輸入輸出操作均通過讀寫相應寄存器來完成。按功能分為控制寄存器和數(shù)據(jù)寄存器,通過讀寫控制寄存器,控制顯示器工作 的方式與顯示方式等。數(shù)據(jù)寄存器是單片機與LCD進行數(shù)據(jù)交換的寄存器,用以改變LCD中顯存的內容,從而改變最終顯示的內容。
軟件初始化流程圖如圖3所示。
3.4 圖形顯示程序設計
為了保證顯示的及時性與連續(xù)性,同時不能超出單片機速度限制和程序容量限制,系統(tǒng)中顯示部分的軟件設計就顯得比較重要,所以程序設計要從算法的時間復雜度和空間復雜度綜合考慮。
相對于現(xiàn)在的PC機,單片機的速度還是比較低的,若采用復雜曲線插補算法,CPU的速度顯然是不夠的,所以波形曲線的畫法采用逐點畫直線的方式實現(xiàn),即相 鄰兩點之間采用畫一條直線,雖然波形稍有失真,但可以保證速度。對顯示曲線的線寬、線形等也不予設置以節(jié)省CPU的計算量。
生成直線的算法中,又有逐點比較法、數(shù)值微分法和Bresenham算法等,而各種算法的計算量又與具體顯示設備和顯示數(shù)據(jù)有關系。本系統(tǒng)采用了 128×64點陣的顯示器,屏幕比較?。煌瑫r由于數(shù)據(jù)在X軸方向的增長是一種固定關系,直線的長度最大為64點(Y軸方向),且只存在從左下到右上和從左 上到右下兩種情況。經(jīng)過理論分析與試驗驗證,我們采用了改進的數(shù)值微分算法,即直線每向下一步,按照要畫直線的斜率計算下一點的位置,這樣一步一步逼近直 線。X方向主動遞增時的公式如下:
其中:dy/dx為要畫直線的斜率;xi為X方向增量;yi為Y方向坐標點。
所有值采用整數(shù)運算,以達到節(jié)省計算量的目的,缺點是圖形失真度較大。
限于篇幅,給出畫直線的程序框圖見圖4。
4 實 驗
利用該系統(tǒng)對一種振動信號進行采集。并觀察顯示波形圖的變化,驗證了在保證畫圖實時性要求的前提下系統(tǒng)能夠達到其最高采樣頻率。圖5為本系統(tǒng)采集的一個實際振動信號隨著時間變化的波形圖。
5 結 語
實驗表明以MSP430F169單片機實現(xiàn)的數(shù)據(jù)采集系統(tǒng),具有體積小、結構簡單、功耗低、速度快等優(yōu)點,不僅可以實現(xiàn)單通道、單波形顯示,而且可以通過修改軟件實現(xiàn)多通道數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)可以推廣到對多種振動信號和電壓信號采集中去。
評論