閱讀 | 訂閱
閱讀 | 訂閱
測試測量

嵌入式多路信號數(shù)據(jù)采集系統(tǒng)(二)

星之球激光 來源:工控網(wǎng)2012-09-23 我要評論(0 )   

3 系統(tǒng)軟件實現(xiàn) 3.1 C/OS2Ⅱ 嵌入式 操作系統(tǒng) 當(dāng)需要進行多任務(wù)處理和 調(diào)度 時,一個嵌入式實時操作系統(tǒng)就必不可少。為此系統(tǒng)中采用源碼公開的C/OS2Ⅱ操作系統(tǒng),它具有...

        3 系統(tǒng)軟件實現(xiàn)

 

  3.1 μC/OS2Ⅱ嵌入式操作系統(tǒng)

  當(dāng)需要進行多任務(wù)處理和調(diào)度時,一個嵌入式實時操作系統(tǒng)就必不可少。為此系統(tǒng)中采用源碼公開的μC/OS2Ⅱ操作系統(tǒng),它具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良以及可擴展性強等特點,最小內(nèi)核可編譯至2K字節(jié)。

  μC/OS2Ⅱ的移植需要滿足以下要求:

  ·處理器的C編譯器可以產(chǎn)生可重入代碼;

  ·可以使用C調(diào)用進入和退出臨界區(qū)代碼;

  ·處理器必須支持硬件中斷,并且需要一個定時中斷源;

  ·處理器需要能夠容納一定數(shù)據(jù)的硬件堆棧;

  ·處理器需要有能夠在CPU寄存器與內(nèi)核和堆棧交換數(shù)據(jù)的指令。

  本系統(tǒng)使用的LPC2134ARM7處理器滿足以上所有條件,因此可以對其進行移植。根據(jù)μC/OS2Ⅱ的要求,移植μC/OS2Ⅱ到一個LPC2134ARM7體系結(jié)構(gòu)上需要提供2個或3個文件:OSCPU.

  H(C語言頭文件)、OS-CPU-C.C(C程序源文件)及OS-CPU-A.ASM(匯編程序源文件)。

  數(shù)據(jù)采集任務(wù)中,采用C語言進行編程,但對于系統(tǒng)的初始化,仍然采用匯編來制作啟動代碼,它可以實現(xiàn)向量表定義、堆棧初始化、系統(tǒng)變量的初始化、中斷系統(tǒng)初始化、I/O初始化、外圍初始化、地址映射等操作。#p#分頁標(biāo)題#e#

  芯片復(fù)位后,系統(tǒng)初始化流程如圖2所示。

 

  系統(tǒng)初始化流程圖

  圖2 系統(tǒng)初始化流程圖

 

  3.2 接口程序及SD卡驅(qū)動的實現(xiàn)

  在實時內(nèi)核下,接口程序讀取A/D采樣數(shù)據(jù)的方法通常有三種:程序延時法、ADC轉(zhuǎn)換完畢時產(chǎn)生中斷法和程序循環(huán)等待的方法。其中循環(huán)等待的方法CPU開銷小,不需要中斷服務(wù),比較適合嵌入式系統(tǒng)中采用。

  循環(huán)等待A/D讀取數(shù)據(jù)的偽代碼如下:

 

  

 

  之間通過串口相連,采集數(shù)據(jù)先通過開發(fā)板串口UART0發(fā)送到無線數(shù)據(jù)終端AYG285C的緩沖區(qū),然后緩沖區(qū)將數(shù)據(jù)打成一個個數(shù)據(jù)包,通過GPRS網(wǎng)絡(luò)發(fā)送到遠程數(shù)據(jù)處理中心。因此,在μC/OS2Ⅱ下LPC2134的UART底層接口驅(qū)動顯得尤為重要。

  UART0初始化函數(shù)片斷如下:#p#分頁標(biāo)題#e#

 

  

 

  在本系統(tǒng)中,串口通信采用8位數(shù)據(jù)位,1位停止位,奇校驗,無流控制。在實際使用中為接收數(shù)據(jù)穩(wěn)定波特率設(shè)置為9600bps效果較好。在測試系統(tǒng)中,測量到的數(shù)據(jù)范圍為10-6~101,有效數(shù)字為4位,所以在發(fā)送數(shù)據(jù)時采用每幀數(shù)據(jù)由3個字節(jié)組成,第1個字節(jié)為數(shù)據(jù)指數(shù)部分,高四位為0,低四位中的第四位表示指數(shù)符號,0表示正數(shù),1表示負數(shù);其余三位表示指數(shù)的數(shù)值部分。

  后續(xù)兩個字節(jié)為數(shù)據(jù)底數(shù)部分,采用壓縮的BCD碼編碼方式,高位在前,低位在后,即一個字節(jié)表示兩位十進制數(shù),則兩個字節(jié)表示四位十進制數(shù)。

  LPC2134的UART0使用中斷方式進行通信,這樣不會占用CPU很多時間,效率比較高。當(dāng)中斷服務(wù)處理子程序接收到一次中斷,它僅能知道UART0產(chǎn)生了中斷,還需要查詢中斷標(biāo)志寄存器U0IIR,依據(jù)不同中斷源類型進行不同處理。在處理完當(dāng)前的中斷源類型之后,不能立即退出服務(wù),而應(yīng)當(dāng)繼續(xù)判斷U0IIR寄存器最低位是否為0。

  如果為0,則表示還有尚未處理的中斷,應(yīng)該繼續(xù)根據(jù)U0IIR[3∶0]判斷中斷源類型,進行處理,直到U0IIR的最低位為1,最后發(fā)送中斷結(jié)束命令結(jié)束中斷服務(wù)處理程序。

  SD卡讀寫軟件移植到ARM7微處理器LPC2134上的結(jié)構(gòu)圖如圖3所示。其中硬件抽象層是讀寫SD卡的硬件條件配置,是與硬件相關(guān)的函數(shù);命令層包含SD卡的相關(guān)命令以及卡與主機之間數(shù)據(jù)流的控制,這一層與實時操作系統(tǒng)μC/OS2Ⅱ相關(guān),與硬件無關(guān);應(yīng)用層是向應(yīng)用程序提供卡的API函數(shù),這一層由實時操作系統(tǒng)μC/OS2Ⅱ控制。

 

  SD卡讀寫軟件移植結(jié)構(gòu)圖

  圖3 SD卡讀寫軟件移植結(jié)構(gòu)圖#p#分頁標(biāo)題#e#

      

        3.3 應(yīng)用程序?qū)崿F(xiàn)

  系統(tǒng)初始化完成后,創(chuàng)建各個任務(wù),進入多任務(wù)調(diào)度處理。應(yīng)用程序框架流程如圖4所示。

  本系統(tǒng)的主要任務(wù)是完成數(shù)據(jù)采集。系統(tǒng)在得到遠程數(shù)據(jù)中心的采集命令后,選擇適當(dāng)?shù)牟杉ǖ?,并設(shè)置A/D模塊參數(shù)。在采集過程中判斷是否要停止,如果停止,任務(wù)處于等待掛起狀態(tài)。

 

  應(yīng)用程序框架流程圖

  圖4 應(yīng)用程序框架流程圖

 

  4 結(jié)語

   本系統(tǒng)采用了ARM+RTOS以及ARM+GPRS的方案,選取適當(dāng)?shù)钠骷?gòu)成了多路的數(shù)據(jù)采集系統(tǒng),具有一定的實用價值??紤]到現(xiàn)場采集到的多是小信號,為了有較好的準(zhǔn)確度和精確度,對A/D后的采集數(shù)據(jù)還要進行分析和調(diào)整,然后再發(fā)送到數(shù)據(jù)處理中心。為此,可以進行反復(fù)實驗,獲得多組數(shù)據(jù),最后通過最小二乘法曲線擬合來提高準(zhǔn)確度。另外,隨外界環(huán)境的變化,也可以修改擬合曲線以適應(yīng)具體的應(yīng)用。隨著3G時代的來臨,大量數(shù)據(jù)信息的傳輸成為可能,可以考慮采集現(xiàn)場的相關(guān)視頻信號。在短消息功能,數(shù)據(jù)加密技術(shù)以及軟件操作和文件管理上還有待進一步開發(fā)和優(yōu)化。

 

轉(zhuǎn)載請注明出處。

暫無關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀點和對其真實性負責(zé),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系我們刪除。
③ 任何單位或個人認為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請及時向本網(wǎng)提出書面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點評
0相關(guān)評論
精彩導(dǎo)讀