基于ARM7的路燈監(jiān)控通信終端的設(shè)計(jì)
標(biāo)簽:ARM7 路燈監(jiān)控
0 引言
對(duì)于城市路燈管理部門來說,防盜、節(jié)能等一直是一件非常頭疼的事情,需要投入大量的人力、物力和財(cái)力,因?yàn)槁窡魯?shù)量眾多,地理位置分散,給工作人員帶來極大的困難。 GPRS即通用分組無線業(yè)務(wù)[1],英文全稱為General Packet Radio Service,這種無線業(yè)務(wù)是在現(xiàn)有GSM網(wǎng)絡(luò)上開通的一種新型的分組數(shù)據(jù)傳輸業(yè)務(wù)。GPRS采用分組交換技術(shù),它可以讓多個(gè)用戶共享某些固定的信道資源。GPRS特別適用于間斷的、突發(fā)性的或頻繁的、少量的數(shù)據(jù)傳輸,也適用于偶爾的大數(shù)據(jù)量傳輸,具有實(shí)時(shí)在線、按量計(jì)費(fèi)、快捷登錄、高速傳輸、自如切換等優(yōu)點(diǎn)。因此,利用GPRS組建的無線通信系統(tǒng)是一種造價(jià)低,易于維護(hù)和推廣,無制約,可靠性高,穩(wěn)定性好,具有一定的先進(jìn)性,標(biāo)準(zhǔn)性且易于擴(kuò)充的系統(tǒng)??梢哉f,將GPRS應(yīng)用于路燈監(jiān)控系統(tǒng)的數(shù)據(jù)傳輸是目前最理想的選擇。
本系統(tǒng)設(shè)計(jì)一種基于ARM7處理器以及利用GPRS技術(shù)的路燈監(jiān)控通信系統(tǒng)的終端,實(shí)現(xiàn)遠(yuǎn)程無線的各路現(xiàn)場(chǎng)數(shù)據(jù)的傳輸。結(jié)合上位機(jī)軟件,將各路數(shù)據(jù)實(shí)時(shí)傳遞到集中監(jiān)控中心,以實(shí)現(xiàn)對(duì)路燈運(yùn)行情況的統(tǒng)一監(jiān)控和分布式管理。系統(tǒng)結(jié)構(gòu)模型圖如圖1所示。
圖1 GPRS路燈監(jiān)控通信系統(tǒng)模型圖
1 主要芯片簡(jiǎn)介
1.1 LPC2106芯片[2]
LPC2106處理器是菲利普公司的ARM7TDMI-S 處理器,該芯片帶有一個(gè)支持實(shí)時(shí)仿真和跟蹤的ARM7TDMI-SCPU,并嵌入了128KB的高速Flash存儲(chǔ)器。具有ISP 和IAP 功能,128位的儲(chǔ)存器接口和特別的允許在最高時(shí)鐘周期執(zhí)行32位代碼的加速體系,在代碼長(zhǎng)度起關(guān)鍵作用的程序中,可選的16位的Thumb模式在最少的代價(jià)下能夠減少了超過30%的代碼,CPU 操作頻率可達(dá)60MHz ;LPC2106體積很小,它有兩個(gè)低功耗模式:空閑和掉電,使系統(tǒng)保證在低功耗使用,非常省電,在路燈監(jiān)控系統(tǒng)中,它是非常理想的選擇。它內(nèi)部RAM達(dá)到64K大小,提供I2C 串行和SPI 串行接口等接口,使得LPC2106在GPRS系統(tǒng)中能夠進(jìn)行各種擴(kuò)充;它的兩個(gè)定時(shí)器,分別具有4 路捕獲/比較通道,適合路燈控制多路數(shù)據(jù)處理,看門狗定時(shí)器確保了系統(tǒng)的安全,雙電源技術(shù)保證了系統(tǒng)的可靠性。
1.2 P87LPC760芯片[3]
P87LPC760是14 腳封裝的單片機(jī),適合于許多要求高集成度低成本的場(chǎng)合,可以滿足多方面的性能要求。它是菲利普公司小型封裝系列中的一員,P87LPC760提供高速和低速的晶振和RC 振蕩方式,可編程選擇具有較寬的操作電壓范圍,可編程I/O口線輸出模式選擇,可選擇施密特觸發(fā)輸入LED 驅(qū)動(dòng),輸出有內(nèi)部看門狗定時(shí)器,P87LPC760采用加速80C51處理器結(jié)構(gòu),指令執(zhí)行速度是標(biāo)準(zhǔn)80C51 MCU的兩倍特性。在路燈監(jiān)控通信終端中作為從處理器。
2 硬件系統(tǒng)結(jié)構(gòu)
2.1 GPRS通信終端硬件結(jié)構(gòu)
GPRS路燈監(jiān)控系統(tǒng)終端安裝在路燈的各個(gè)數(shù)據(jù)采集點(diǎn),通過RS232口和RS485口與GPRS透明數(shù)據(jù)傳輸終端連接,數(shù)據(jù)經(jīng)過協(xié)議封裝后發(fā)送到中國移動(dòng)的GPRS數(shù)據(jù)網(wǎng)絡(luò),通過GPRS數(shù)據(jù)網(wǎng)絡(luò)將數(shù)據(jù)傳送至路燈監(jiān)控中心,實(shí)現(xiàn)路燈終端和路燈監(jiān)控中心系統(tǒng)的實(shí)時(shí)在線連接。GPRS通信終端硬件結(jié)構(gòu)采用主從CPU的設(shè)計(jì)方法,這樣提高系統(tǒng)的可靠性和運(yùn)行速度,主處理器采用菲利普公司的ARM7TDMI-S 處理器LPC2106,主要負(fù)責(zé)協(xié)議的封裝,與GPRS通信的實(shí)現(xiàn);從處理器采用菲利普公司的P87LPC760,主要負(fù)責(zé)對(duì)ARM7芯片和GPRS模塊的控制。GPRS監(jiān)控通信終端的實(shí)現(xiàn)結(jié)構(gòu)圖如圖2所示。
圖2 GPRS監(jiān)控通信終端結(jié)構(gòu)圖
2.2 監(jiān)控通信硬件的實(shí)現(xiàn)
在路燈監(jiān)控通信終端中,主處理器是基于AMR7核心的LPC2106處理器,它是整個(gè)系統(tǒng)的硬件核心,連接結(jié)構(gòu)圖如圖3所示,主要功能是實(shí)現(xiàn)GPRS下的通信協(xié)議封裝及數(shù)據(jù)傳輸,同時(shí)采用適用于GPRS的AT指令,使用TCP/IP協(xié)議將數(shù)據(jù)打成IP包,經(jīng)GPRS接口接入無線GPRS網(wǎng)絡(luò),并應(yīng)用Winsock控件來實(shí)現(xiàn)接收數(shù)據(jù)及數(shù)據(jù)交換。
2.3 監(jiān)控通信控制的實(shí)現(xiàn)
從處理器使用P87LPC760,主要功能是對(duì)LPC2106處理器與GPRS模塊的數(shù)據(jù)傳輸通信控制;
2.4 監(jiān)控通信接口的實(shí)現(xiàn)
由于監(jiān)控通信終端是3.3V的系統(tǒng),而且核心處理器LPC2106的UART1帶有完全的調(diào)制解調(diào)器接口,使用TTL電平,所以使用8 路的RS232 轉(zhuǎn)換芯片SP3238進(jìn)行RS232電平轉(zhuǎn)換及串口通信,SP3238芯片是+3.0V和+5.5V的RS232轉(zhuǎn)換器。具有低功耗、高數(shù)據(jù)速率、增強(qiáng)型ESD保護(hù)等特性。MAX3485是RS485電平轉(zhuǎn)換,這些口線可保留給用戶作為其它功能使用。
2.5 GPRS模塊的實(shí)現(xiàn)
中興ZTE815主要是用來實(shí)現(xiàn)GPRS模塊,使用SIM卡進(jìn)行實(shí)現(xiàn)。SIM卡的1和4腳接電源,2腳接地,3腳是復(fù)位,與ZTE815的41腳相連;5腳是時(shí)鐘,與ZTE815的45腳相連;6腳是通信讀寫I/O引腳,與ZTE815的43腳相連。
圖3 LPC2106連接結(jié)構(gòu)圖
3 GPRS通信軟件的設(shè)計(jì)
軟件的設(shè)計(jì)是本監(jiān)控通信終端的核心,其中通信模塊設(shè)計(jì)是整個(gè)終端軟件設(shè)計(jì)主要部分,軟件設(shè)計(jì)采用ARM公司的ADS集成開發(fā)環(huán)境,使用C語言進(jìn)行編程,主要是對(duì)LPC2106處理器進(jìn)行控制,實(shí)現(xiàn)協(xié)議的封裝及與GPRS系統(tǒng)的通信,從初始化串行通訊模塊設(shè)計(jì)到與帶SIM 卡的GPRS終端的通信流程設(shè)計(jì),需要兼顧軟件的各個(gè)功能模塊,包括參數(shù)設(shè)置、自動(dòng)接收數(shù)據(jù)、請(qǐng)求數(shù)據(jù)以及信號(hào)判斷等。
3.1 通信命令處理
通信數(shù)據(jù)處理主要是針對(duì)需要發(fā)送的數(shù)據(jù)和接收到的信息進(jìn)行相關(guān)處理。通過在ARM7模塊建立AT指令實(shí)現(xiàn)數(shù)據(jù)的收發(fā),并實(shí)現(xiàn)對(duì)AT指令的分析和控制。本系統(tǒng)用到的AT指令是:建立TCP/socket連接命令"AT+ISTCP:";發(fā)送數(shù)據(jù)命令"AT+ISSND%:";查詢數(shù)據(jù)命令"AT+ISRCV:";查詢數(shù)據(jù)鏈路命令"AT+ISST:";模塊退出傳輸模式命令"AT+IMCM";查詢模塊信號(hào)值命令"AT+CSQ";模塊返回?cái)?shù)據(jù)傳輸模式命令"ATO";DTU返回控制命令模式命令"AT+I";關(guān)閉SOCKET命令"AT+ISCLS: "。
3.2 系統(tǒng)主要函數(shù)介紹
通信控制是比較復(fù)雜的過程,本系統(tǒng)主要的函數(shù)有:(1)接收的字符串與目標(biāo)pSrc字符串對(duì)比函數(shù)unsigned char Recive_GpCmp(const unsigned char *pSrc,unsigned char unNum),用于對(duì)接收指令的檢測(cè);(2)提取信號(hào)強(qiáng)度函數(shù)unsigned char Achieve_IMFSrong(void),信號(hào)強(qiáng)度為0~30;(3)對(duì)比連接返回值函數(shù)unsigned char Achieve_Socket(void);(4)建立SOCKET連接函數(shù)void Connect_Socket(unsigned char *pIp),該函數(shù)負(fù)責(zé)發(fā)送IP地址及端口號(hào),等待時(shí)間是一分鐘,在數(shù)據(jù)返回值中,I/000 表明連接成功,字柄號(hào)為000,I/ERROR 表明連接超時(shí)或不成功;(5)查詢信號(hào)強(qiáng)度函數(shù)void Check_IMFSrong(void),等于1為查詢信號(hào)強(qiáng)度狀態(tài),等于0為空閑狀態(tài),在查信號(hào)強(qiáng)度,最長(zhǎng)時(shí)間3.2秒,時(shí)間間隔為6分鐘,并在主循環(huán)調(diào)用該函數(shù);(6)查詢?cè)诰€狀態(tài),秒間隔調(diào)用函數(shù)void Check_Gprs(void),設(shè)置在線查詢時(shí)間間隔為3分鐘,兩次判斷掉線就確認(rèn)掉線了。
3.3 數(shù)據(jù)收發(fā)函數(shù)的實(shí)現(xiàn)
由于篇幅的限制,不能對(duì)各函數(shù)進(jìn)行詳細(xì)的描述,下面主要對(duì)數(shù)據(jù)收發(fā)函數(shù)進(jìn)行實(shí)現(xiàn)。
3.3.1 接收數(shù)據(jù)函數(shù)的實(shí)現(xiàn)
void Recive_Data_Socket(void)
{
unsigned char buf[20],i;
Check_IMFSrong();
if(ucGPRSMode&&ucGprsLink)
{
for(i=0;i
buf[i]=pGPRSCMD[2][i];
buf[i++]=0x0d;
ucGPRSMode="1"; //接收數(shù)據(jù)
UART1_SendStr(buf,i);
}
}
3.3.2 發(fā)送數(shù)據(jù)函數(shù)的實(shí)現(xiàn)
Void Send_Data_Socket( )
{
unsigned char i,j,tmp,buf[20];
unsigned short usYn,usTmp,usLen;
if(Len==0)return ;
for (i =0;i
{
buf[i] = pGPRSCMD[1][i];
}
i--;
buf[i++] = ':';
for (j=0;j<3;j++)
buf[i++]=szGprsHandle[j]; //數(shù)據(jù)句柄號(hào)
buf[i++] = ',';
usTmp =10000;
usYn="0";
usLen="Len";
for(j=0;j<5;j++) //發(fā)送長(zhǎng)度
{
tmp="usLen/usTmp";
usLen="usLen"%usTmp;
if(usYn)
{
buf[i++]=tmp+'0';
}
else
{
if(tmp)
{
usYn="1";
buf[i++]=tmp+'0';
}
}
usTmp/=10;
}
buf[i++] = ':';
UART1_SendStr(buf,i); //發(fā)送數(shù)據(jù)頭
UART1_SendStr(Data,Len); //發(fā)送數(shù)據(jù)
}
4 結(jié)語
采用基于ARM7核心的GPRS網(wǎng)絡(luò)遠(yuǎn)程數(shù)據(jù)通信方法,主從處理器的嵌入式設(shè)計(jì),思路新穎,程序算法效率高,解決了遠(yuǎn)程監(jiān)控終端通信問題。采用無線模式,數(shù)據(jù)傳輸?shù)陌踩缘玫搅撕艽蟮奶岣?,并且不需要布線,幾乎不受區(qū)域限制。該系統(tǒng)成功投入了實(shí)際的路燈管理,經(jīng)濟(jì)地解決了城市路燈控制管理問題。如系統(tǒng)進(jìn)行適當(dāng)修改,可用于環(huán)境監(jiān)測(cè)、水文監(jiān)測(cè)、人防、城市交通控制等領(lǐng)域,具有很好的參考價(jià)值。
本文作者創(chuàng)新點(diǎn):(1)該系統(tǒng)使用ARM芯片,雙CPU的設(shè)計(jì)、具有數(shù)據(jù)處理速度高、穩(wěn)定性和可靠性的特點(diǎn);(2)系統(tǒng)采用的芯片性價(jià)比高,能方便的進(jìn)行系統(tǒng)擴(kuò)充,能與GPRS通信系統(tǒng)進(jìn)行連接。(3)軟件設(shè)計(jì)效率高,在城市路燈管理中取得良好的效果。并獲得2006年梧州市科技進(jìn)步三等獎(jiǎng)。項(xiàng)目產(chǎn)生的經(jīng)濟(jì)效益高達(dá)80萬元/年,數(shù)據(jù)由梧州路燈管理處提供,根據(jù)節(jié)約電費(fèi)、人力、管理成本等核算。