基于GPRS的自動抄表系統(tǒng)設(shè)計
摘要:本文介紹了一種基于GPRS自動抄表系統(tǒng)的硬件和軟件實(shí)現(xiàn)方法。該設(shè)計采用了mC/OS-II操作系統(tǒng)和uip協(xié)議的移植來實(shí)現(xiàn)GPRS通信,用SQL數(shù)據(jù)庫實(shí)現(xiàn)上位機(jī)的抄表管理軟件,從而達(dá)到自動抄表的目的。
關(guān)鍵詞:GPRS;mC/OS-II;操作系統(tǒng);uip協(xié)議;SQL
引言
水表、電表和氣表的抄錄是城市生活的一個大問題。傳統(tǒng)上采用的人工上門抄表方法不僅效率低,而且經(jīng)常出現(xiàn)漏抄、誤抄等現(xiàn)象。隨著信息技術(shù)和網(wǎng)絡(luò)的不斷發(fā)展,出現(xiàn)了自動抄表系統(tǒng)。
現(xiàn)代智能化系統(tǒng)一般采用兩種:電力載波集抄和總線通信方式。由于我國的電網(wǎng)在傳輸數(shù)據(jù)過程中,經(jīng)常會受無線電信號、電磁信號、脈沖信號的干擾,導(dǎo)致傳輸數(shù)據(jù)錯碼、丟碼的情況??偩€通信方式集抄系統(tǒng)較為復(fù)雜,而且要另外鋪設(shè)通訊電纜,特別對于舊城區(qū)改造項(xiàng)目,就存在更大問題。
但是,如果采用三表GPRS無線集抄系統(tǒng),以上問題就迎刃而解。本文就介紹基于GPRS的一種設(shè)計方案。
自動抄表系統(tǒng)的一般結(jié)構(gòu)
抄表系統(tǒng)中,儀表數(shù)據(jù)與控制信號傳輸?shù)穆窂椒Q為通信通道,它分為上行通道和下行通道。上行通道是傳輸控制器與管理中心計算機(jī)之間的通信線路,可以采用電話、無線、專線等各種通信介質(zhì)。
下行通道是數(shù)據(jù)采集器與傳輸控制器之間的通信線路,主要有LonWork總線、CAN總線、RS-485總線等方式。自動抄表系統(tǒng)的構(gòu)成如圖1所示,主要包括計量表、數(shù)據(jù)采集器、傳輸控制器(集中器)、管理中心計算機(jī)等。
圖1 一般自動抄表系統(tǒng)的結(jié)構(gòu)
其中計量表、采集器、集中器稱為自動抄表系統(tǒng)的下位機(jī),管理中心計算機(jī)則稱為上位機(jī)。上位機(jī)可以對下位機(jī)進(jìn)行命令發(fā)送、參數(shù)設(shè)定等控制。
硬件設(shè)計
系統(tǒng)總體框圖
自動抄表系統(tǒng)的硬件主要分為采集器和集中器兩部分。采集器主要是用單片機(jī)把計量表中的數(shù)據(jù)采集過來,并存放在內(nèi)存里,通過RS-485總線傳送給集中器;集中器是整個系統(tǒng)中最重要的,也是最復(fù)雜的環(huán)節(jié),它的硬件設(shè)計框圖如圖2所示。
圖2 集中器設(shè)計框圖
集中器中的單片機(jī)選用了C8051F120,其時鐘可達(dá)到100M,有8448B的RAM和128K的Flash,兩個URAT中,一個用于GPRS通信,另一個用于與采集器的通信。在很多場合,該單片機(jī)幾乎不用擴(kuò)展外圍芯片就能夠滿足系統(tǒng)要求。C8051F MCU具有與8051兼容的高速CIP-51內(nèi)核,但與標(biāo)準(zhǔn)的8051結(jié)構(gòu)相比,指令執(zhí)行速度有很大提高,運(yùn)行mC/OS-II操作系統(tǒng)是沒有問題的。Flash的擴(kuò)展選用SPI總線的AT45D041,它有512KB的FLASH,使用方便,且性價比也比較高; LCD采用中國臺灣矽創(chuàng)電子公司的中文圖形控制芯片ST7920,內(nèi)含中英文字庫,使用起來非常方便。
GPRS模塊
GPRS模塊采用了西門子公司的MC35i,此模塊主要由GSM處理器、GSM射頻模塊、供電模塊、閃存、ZIF連接器、天線接口等六部分組成。它通過ZIF連接器上的串口與單片機(jī)實(shí)現(xiàn)電路接口,通過串口讀取或發(fā)送MC35i模塊中的數(shù)據(jù)和AT指令。
自動抄表系統(tǒng)的軟件設(shè)計下位機(jī)的軟件設(shè)計
下位機(jī)軟件設(shè)計的重點(diǎn)是GPRS通信的實(shí)現(xiàn)。由于GPRS是基于IP協(xié)議的,所以主控制器在與GPRS模塊通訊的時候要發(fā)送符合IP協(xié)議的數(shù)據(jù)包。如果要自己編寫TCP/IP協(xié)議,工作量會比較大,一個簡便的方法是移植操作系統(tǒng)。有些操作系統(tǒng)中包含TCP/IP協(xié)議(如Linux),但相對于單片機(jī)來說,顯得力不從心。有些操作系統(tǒng)不包括此協(xié)議(如mC/OS-II),就必須同時移植與其兼容的TCP/IP協(xié)議(如uiP協(xié)議),本系統(tǒng)采用后一種方法。
mC/OS-II介紹及移植
mC/OS-II是為嵌入式應(yīng)用編寫的通用軟件,具有源碼公開、可移植、可裁剪、支持多任務(wù)和內(nèi)核服務(wù)運(yùn)行時間可確定等特點(diǎn)。所以,mC/OS-II支持從8位到32位的CPU,經(jīng)過裁剪后代碼最小小于2KB,所需的最小數(shù)據(jù)RAM空間為4KB。
mC/OS-II的移植只需要修改與處理器相關(guān)的代碼就可以了。具體內(nèi)容如下:
(1)os_cpu.h中需要設(shè)置1個常量來標(biāo)識堆棧增長方向,
即:#define OS_STK_GROWTH 0 //8051 堆棧從下向上增長;
(2)os_cpu.h中需要聲明3個用于開關(guān)中斷和任務(wù)切換的宏,
即:#define OS_ENTER_CRITICAL() EA=0 //關(guān)中斷;
#define OS_EXIT_CRITICAL() EA=1 //開中斷;
#define OS_TASK_SW() OSCtxSw() //任務(wù)間的切換;
(3)os_cpu.h中需要聲明10個數(shù)據(jù)類型;
即:typedef unsigned char BOOLEAN 等;
(4)os_cpu_a.asm需要改寫4個匯編語言的函數(shù),集中了所有與處理器相關(guān)的匯編語言代碼模塊;
(5)os_cpu_c.c需要用c語言編寫6個簡單函數(shù), 即1個初始化任務(wù)堆棧和5個任務(wù)創(chuàng)建鉤掛函數(shù),其中5個任務(wù)創(chuàng)建鉤掛函數(shù)可根據(jù)實(shí)際情況加入;
(6)修改主頭文件include.h,將上面的3個文件和其它自己的頭文件加入。
完成上述工作后,mC/OS-II就可以運(yùn)行在單片機(jī)上了。
uip的移植
uIP的移植設(shè)計重點(diǎn)放在IP、ICMP和TCP協(xié)議的實(shí)現(xiàn)上,要將這三個模塊合為一個有機(jī)的整體,而將UDP和ARP協(xié)議實(shí)現(xiàn)作為可選模塊。uIP0.9的體系結(jié)構(gòu)如圖3所示。
圖3 uIP協(xié)議栰接口
uIP0.9處于網(wǎng)絡(luò)通信的中間層,其上層協(xié)議在這里被稱之為應(yīng)用程序,而下層硬件或固件被稱之為網(wǎng)絡(luò)設(shè)備驅(qū)動。uIP可以看作是一個代碼庫為系統(tǒng)提供確定的函數(shù)。圖3展示了uIP系統(tǒng)底層和應(yīng)用程序之間的關(guān)系。
在基于8051的mC/OS-II中,移植uIP不需要對現(xiàn)有的TCP/IP源代碼做任何修改,但是必須為網(wǎng)絡(luò)設(shè)備如網(wǎng)卡芯片、串口等寫一個驅(qū)動程序。同時,現(xiàn)有系統(tǒng)的集成部分也要進(jìn)行相應(yīng)的處理,例如當(dāng)有數(shù)據(jù)到達(dá)或周期性的定時器計數(shù)滿等情況下,主控制系統(tǒng)應(yīng)該調(diào)用uIP函數(shù)。移植的具體步驟如下:
(1)在目錄uip-0.9/下創(chuàng)建一個自己的目錄,例如uip0.9/C8051F/。
(2)把uip_arch.c文件從目錄uip-0.9/unix/中復(fù)制到目錄uip-0.9/ C8051F中。
(3)把uipopt.h文件目錄從uip-0.9/unix中復(fù)制到目錄uip-0.9/ C8051F中,并對其修改,以滿足系統(tǒng)需要。
(4)編寫串口驅(qū)動程序和主控函數(shù)。
(5)編譯源代碼。
上位機(jī)軟件
管理中心計算機(jī)抄表軟件以IIS作為Web Server,數(shù)據(jù)庫端使用SQL Server 數(shù)據(jù)庫,運(yùn)行WIN98/2000/XP、NT的操作系統(tǒng),易于使用。軟件所能管理的用戶數(shù)量沒有限制。它具有以下的功能與特點(diǎn):安全可靠,抄表速度快,具有完善的系統(tǒng)日志,以及廣播對時、自動抄表和設(shè)備管理功能。并且用戶界面清晰美觀,操作簡單,具有完善的在線幫助功能。
結(jié)語
遠(yuǎn)程無線自動抄表系統(tǒng)利用GPRS通信技術(shù),實(shí)現(xiàn)了多表數(shù)據(jù)抄收的功能,解決了實(shí)時性、抄收成本及通信距離等問題。隨著GPRS通信技術(shù)的不斷成熟和自動抄表技術(shù)的不斷完善,這種遠(yuǎn)程無線自動抄表技術(shù)也將會得到更好的發(fā)展和提高?!?BR>
參考文獻(xiàn):
1.胡大可等.基于單片機(jī)8051的嵌入式開發(fā)指南[M],北京:電子工業(yè)出版社,2003
2.任哲等.嵌入式操作系統(tǒng)基礎(chǔ)μC/OS-II和Linux[M],北京:北京航空航天大學(xué)出版社,2006
3.沈文等.AVR單片機(jī)C語言開發(fā)應(yīng)用實(shí)例---TCP/IP篇[M],清華大學(xué)出版社,2005
評論