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

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

2009-05-22
作者:付 揚(yáng), 趙麗麗

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

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

?

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

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

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

?

?

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

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

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

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

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

?

?

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

??? 如果信息的內(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,則起動電機(jī),回復(fù)帶有電壓值的短信息;如果小于3,直接回復(fù)短信息。短信回復(fù)后,程序會繼續(xù)回到等待短信的狀態(tài),循環(huán)往復(fù)。?

??? 遠(yuǎ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)換后的電量值。此時的電量值為二進(jìn)制代碼,而要想在短信中傳輸,數(shù)據(jù)必須是字符串形式,所以接下來程序?qū)⒃瓉淼亩M(jìn)制電壓值轉(zhuǎn)換成ASCII形式,并增加了一些輔助信息組成字符串,最終函數(shù)將字符串的首地址傳回。?

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

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

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

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

?

?

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

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

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

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

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

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

參考文獻(xiàn)?

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

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

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

[4] 施威銘研究室.Linux命令詳解詞典[M].北京:機(jī)械工業(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)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。