《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 基于GPRS的嵌入式遠程數(shù)據(jù)采集系統(tǒng)設(shè)計

基于GPRS的嵌入式遠程數(shù)據(jù)采集系統(tǒng)設(shè)計

2009-05-22
作者:付 揚, 趙麗麗

??? 摘? 要: 介紹了基于GPRS的通信方式,采用嵌入式ARM9微處理器S3C2410X作為主控制器,通過短信息方式實現(xiàn)對遠程端數(shù)據(jù)的采集和監(jiān)測的遠程數(shù)據(jù)采集系統(tǒng)。在系統(tǒng)的遠程端和用戶端,分別使用μC/OS-II和Linux為操作系統(tǒng)。用戶端通過GPRS網(wǎng)絡發(fā)出檢測信息,遠程端將檢測到的數(shù)據(jù)送回到指定用戶端,以此作為管理和監(jiān)控人員統(tǒng)計和處理的數(shù)據(jù)。系統(tǒng)具有技術(shù)先進、簡單經(jīng)濟、準確實用的特點,在實際應用中具有一定的參考價值。?

????關(guān)鍵詞: 數(shù)據(jù)采集; 嵌入式系統(tǒng); 通用分組無線業(yè)務(GPRS); 操作系統(tǒng)

?

??? 本系統(tǒng)的設(shè)計融合了當今兩大熱點技術(shù):嵌入式技術(shù)和通用分組無線業(yè)務GPRS(General Packet Radio Service)技術(shù)。嵌入式系統(tǒng)具有功耗低、體積小等優(yōu)點。系統(tǒng)的通信方式采用基于通用分組無線業(yè)務(GPRS)技術(shù)。GPRS 是為無線數(shù)據(jù)傳輸服務量身定造的,該技術(shù)提供端到端的、廣域的無線IP 連接,具有隨時查詢、連接時間短、實時性強、設(shè)備成本低、維護費用小、收費合理、價格便宜、適合不定期、長時間的數(shù)據(jù)傳輸?shù)戎T多優(yōu)點。因此,基于GPRS的嵌入式遠程數(shù)據(jù)采集系統(tǒng)具有很強的優(yōu)勢,在目前的電力系統(tǒng)、天然氣等資源的監(jiān)測中具有很好的應用前景。?

1 遠程數(shù)據(jù)采集系統(tǒng)的總體結(jié)構(gòu)?

??? 基于GPRS的嵌入式遠程電量數(shù)據(jù)采集系統(tǒng)設(shè)計結(jié)構(gòu)圖如圖1所示。?

?

?

??? 基于ARM9的S3C2410X是Samsung公司推出的16/32位RISC微處理器S3C2410X,它為手持設(shè)備和一般類型應用提供了低價格、低功耗、高性能的解決方案。S3C2410X采用ARM920T內(nèi)核和AMBA總線,并增添了豐富的外圍資源,其中包括本系統(tǒng)使用的8通道的10位ADC。GPRS模塊采用Wavecom Q2403A,它是雙頻GSM/GPRS MODEM模塊,在短消息服務方面,支持點對點的MT&MO、短消息區(qū)域廣播、回復呼叫信息、電話簿、記費等。 ?

??? 本設(shè)計中,把遠程采集到的電量分為正常值和異常值兩種。用戶在用戶端的宿主機上按下編輯短信功能鍵,開始編輯短信,系統(tǒng)會自動將編輯好的短信息傳送到用戶端的GPRS模塊,遠程端通過現(xiàn)有的GPRS網(wǎng)絡將信息傳輸?shù)竭h程端的GPRS模塊,模塊接收到用戶的查詢信息之后,將信息內(nèi)容交給遠程端的S3C2410X進行判斷,判斷用戶選擇的功能。當程序確認用戶要查詢電量值時,程序調(diào)用A/D轉(zhuǎn)換模塊函數(shù),啟動A/D轉(zhuǎn)換模塊,去讀取電量值,并將電量值轉(zhuǎn)換成數(shù)字信號,送給遠程端的S3C2410X,這樣系統(tǒng)已經(jīng)按照用戶的需求檢測了電量值。然后,系統(tǒng)將進入信息發(fā)送的階段,遠程端的S3C2410X將準備好的二進制電壓值及相關(guān)信息送入遠程端的GPRS模塊,再以短信的形式傳回給用戶端。用戶通過在用戶端的宿主機上鍵入接收短信功能鍵后,在屏幕上看到接收到的短信內(nèi)容。如果此時的電量值在系統(tǒng)規(guī)定的安全電量值內(nèi),查詢過程到此結(jié)束;如果此時電量值超出系統(tǒng)規(guī)定電量值,則系統(tǒng)會自動啟動電機。電機啟動意味著可以帶動其他裝置,做出相應的控制調(diào)整。?

2 系統(tǒng)軟件設(shè)計?

2.1 遠程端的程序設(shè)計?

??? 遠程端使用的是μC/OS-II操作系統(tǒng)。μC/OS-II 是面向中小型的嵌入式操作系統(tǒng),具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點。應用程序運行之前,要給設(shè)備加載驅(qū)動程序,這樣應用程序才能在系統(tǒng)中正常運行。遠程端的程序流程圖如圖2所示。?

?

?

  程序開始運行后首先進行各個模塊的初始化,包括嵌入式系統(tǒng)開發(fā)板的初始化、GPRS模塊的初始化、電機模塊的初始化和ADC的初始化;其后,程序會設(shè)置好短信息的類型,并進入等待接收短信息狀態(tài)。當有短信接收到后,程序?qū)⑷〕鲂畔⒅械膬?nèi)容,進行判斷信息所選擇的功能。遠程端的程序功能有3種:“G”代表查詢A/D轉(zhuǎn)換值,“S”代表停止電機,其他信息程序會自動返回操作錯誤提示信息。?

??? 如果信息的內(nèi)容是“G”,則程序會啟動A/D轉(zhuǎn)換,將寄存器ADCCON的ENABLE_START位置“1”,之后循環(huán)查詢寄存器ADCCON的ECFLG位等待轉(zhuǎn)換的完成。一旦此位被置“1”,說明轉(zhuǎn)換已經(jīng)結(jié)束,程序會判斷轉(zhuǎn)換值是否大于3(此值根據(jù)系統(tǒng)需要任意設(shè)定),如果大于等于3,則起動電機,回復帶有電壓值的短信息;如果小于3,直接回復短信息。短信回復后,程序會繼續(xù)回到等待短信的狀態(tài),循環(huán)往復。?

??? 遠程端的ADC模塊包括3個函數(shù):初始化ADC函數(shù)(void init_ADdevice( ))、獲取A/D轉(zhuǎn)換值函數(shù)(int GetADresult(int channel))和A/D轉(zhuǎn)換工作函數(shù)(extern char *SetAdc(void))。初始化ADC函數(shù)在系統(tǒng)主函數(shù)中調(diào)用。A/D轉(zhuǎn)換工作函數(shù)是一個返回字符型指針值的函數(shù),該函數(shù)首先定義了一些變量、數(shù)組和指針,然后調(diào)用獲取A/D轉(zhuǎn)換值函數(shù)獲得轉(zhuǎn)換后的電量值。此時的電量值為二進制代碼,而要想在短信中傳輸,數(shù)據(jù)必須是字符串形式,所以接下來程序?qū)⒃瓉淼亩M制電壓值轉(zhuǎn)換成ASCII形式,并增加了一些輔助信息組成字符串,最終函數(shù)將字符串的首地址傳回。?

??? 遠程端短信發(fā)送模塊只包括1個短信發(fā)送函數(shù),首先函數(shù)通過AT+CMGF=1指令設(shè)置短信格式,然后用AT+CMGS指令來發(fā)送短信。函數(shù)的兩個形參指針分別指向收信人電話號碼和短信內(nèi)容。?

??? 遠程端電機模塊包括電機模塊初始化函數(shù)(void init_MotorPort( ))和電機工作函數(shù)(void SetPWM(int value)),與ADC的初始化函數(shù)相同,電機模塊初始化函數(shù)在系統(tǒng)主函數(shù)中被調(diào)用。電機工作函數(shù)唯一的任務就是啟動電機,其中形參(int value)控制電機轉(zhuǎn)動的速度,如果它為0,即實現(xiàn)了電機的停止功能。?

2.2 用戶端程序設(shè)計?

??? 用戶端主要由用戶在PC機的Linux操作系統(tǒng)下控制,它的主要功能就是短信的收發(fā)和閱讀。本系統(tǒng)用戶端程序設(shè)計流程圖如圖3所示。?

?

?

??? 程序開始后,首先初始化串口,使PC機和嵌入式系統(tǒng)聯(lián)系起來,以便用戶可以在PC機上操作;然后打印提示信息,此時用戶可以根據(jù)屏幕上的信息進行操作。用戶可選的功能有3種:“1”代表發(fā)送短信息,“2”代表閱讀接收到的短信息,“3”代表退出整個工作環(huán)境。?

??? 當用戶在鍵盤上鍵入“1”后,系統(tǒng)會進入發(fā)短信的模式,用戶只需根據(jù)屏幕上的信息輸入電話號碼和短信內(nèi)容就可成功發(fā)送短信到遠程端;當用戶鍵入“2”后,系統(tǒng)會進入讀短信的模式,此時屏幕上會顯示出所收短信的內(nèi)容;當用戶鍵入“3”后,屏幕上顯示結(jié)束語,系統(tǒng)退出工作環(huán)境,并關(guān)閉串口;如果用戶再鍵入“1”或“2”,則當程序運行完發(fā)送短信子程序或讀短信子程序后,系統(tǒng)會自動回到功能選擇提示信息,等待用戶選擇。?

??? 用戶端短信發(fā)送模塊程序在Linux操作系統(tǒng)下運行。它與遠程端的短信發(fā)送函數(shù)的不同之處在于此信息的電話號碼和內(nèi)容均需要用戶鍵入,所以多了一個采集鍵值的過程。?

??? 用戶端閱讀短信模塊用于用戶閱讀接收到的短信息。AT+CMGL指令用于列出SIM卡中的短信息。其中信息有五種情況:未讀(REC UNREAD)、已讀(REC READ)、待發(fā)(STO UNSENT)、已發(fā)(STO SENT)和全部(ALL)。本程序中使用了全部(ALL),當用戶選擇此功能時,屏幕上會列出所有接收到的短信息。?

??? 系統(tǒng)調(diào)試時,將2張不同的SIM卡裝入遠程端和用戶端的GPRS模塊;安裝遠程端的驅(qū)動程序,燒寫μC/OS-II操作系統(tǒng),配置用戶端PC機上的Linux RedHat 9.0;給用戶端的嵌入式系統(tǒng)開發(fā)板燒制bootloader、armLinux內(nèi)核,并建立文件系統(tǒng)。將遠程端的應用程序,編譯后發(fā)送到遠程端的嵌入式開發(fā)板上,運行程序。在用戶端,把設(shè)計好的應用程序復制到/nfs文件,使用交叉編譯的方法編譯用戶端的應用程序。至此,系統(tǒng)的軟硬件已經(jīng)配置好,隨時可以使用。經(jīng)過調(diào)試與檢測,系統(tǒng)各項功能均已滿足設(shè)計要求,可以正常使用了。?

??? 該系統(tǒng)具有如下特點:(1)自主性強:用戶可根據(jù)自己的需求隨時查詢;(2)實時性強:本系統(tǒng)沒有過多造成延時的因素,幾秒內(nèi)就能將采集好的電量數(shù)據(jù)傳送回用戶端,使用戶能夠了解到實時的電量值;(3)費用低:因GPRS采用的是“按數(shù)據(jù)流量計費”的原則;(4)速率快:目前的GPRS技術(shù)是基于GSM公用無線網(wǎng)的2.5代無線傳輸手段。理論上最高速率可達170 kb/s。目前國內(nèi)只開通了4個通道中的1個。因此,當前可用的實際速率為34 Kb/s左右。盡管如此, 這一速率也比當前有線電話網(wǎng)上的電量采集系統(tǒng)的通訊速率高出許多;(5)結(jié)構(gòu)小巧:本系統(tǒng)充分利用了嵌入式系統(tǒng)功耗低、體積小的優(yōu)點,用戶端經(jīng)過改造甚至可以成為一種供野外監(jiān)控人員使用的手持設(shè)備。?

參考文獻?

[1]?桑楠.嵌入式系統(tǒng)原理及應用開發(fā)技術(shù)(第2版)[M].北京:高等教育出版社,2008.?

[2]?李可,劉躍,周新志.基于ARM和GPRS網(wǎng)絡的水情信息系統(tǒng)設(shè)計[J].電子技術(shù)應用,2007,33(12):130-133. ?

[3] 葛紉秋,韓宇龍.嵌入式系統(tǒng)設(shè)計[M].北京:高等教育出版社,2008.?

[4] 施威銘研究室.Linux命令詳解詞典[M].北京:機械工業(yè)出版社,2008.?

[5] ARM. ARM920T technical reference manual[DB/OL].www.arm.com,2008.?

[6] Umsung Electtonics. S3C2410X 32-bit RISC microprocessor?user’s manual[DB/OL].www.hhcn.org,2008.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。