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