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