基于ARM7的路燈監控通信終端的設計
0 引言
本文引用地址:http://www.j9360.com/article/272614.htm對于城市路燈管理部門來說,防盜、節能等一直是一件非常頭疼的事情,需要投入大量的人力、物力和財力,因為路燈數量眾多,地理位置分散,給工作人員帶來極大的困難。 GPRS即通用分組無線業務[1],英文全稱為General Packet Radio Service,這種無線業務是在現有GSM網絡上開通的一種新型的分組數據傳輸業務。GPRS采用分組交換技術,它可以讓多個用戶共享某些固定的信道資源。GPRS特別適用于間斷的、突發性的或頻繁的、少量的數據傳輸,也適用于偶爾的大數據量傳輸,具有實時在線、按量計費、快捷登錄、高速傳輸、自如切換等優點。因此,利用GPRS組建的無線通信系統是一種造價低,易于維護和推廣,無制約,可靠性高,穩定性好,具有一定的先進性,標準性且易于擴充的系統。可以說,將GPRS應用于路燈監控系統的數據傳輸是目前最理想的選擇。
本系統設計一種基于ARM7處理器以及利用GPRS技術的路燈監控通信系統的終端,實現遠程無線的各路現場數據的傳輸。結合上位機軟件,將各路數據實時傳遞到集中監控中心,以實現對路燈運行情況的統一監控和分布式管理。系統結構模型圖如圖1所示。

圖1 GPRS路燈監控通信系統模型圖
1 主要芯片簡介
1.1 LPC2106芯片[2]
LPC2106處理器是菲利普公司的ARM7TDMI-S 處理器,該芯片帶有一個支持實時仿真和跟蹤的ARM7TDMI-SCPU,并嵌入了128KB的高速Flash存儲器。具有ISP 和IAP 功能,128位的儲存器接口和特別的允許在最高時鐘周期執行32位代碼的加速體系,在代碼長度起關鍵作用的程序中,可選的16位的Thumb模式在最少的代價下能夠減少了超過30%的代碼,CPU 操作頻率可達60MHz ;LPC2106體積很小,它有兩個低功耗模式:空閑和掉電,使系統保證在低功耗使用,非常省電,在路燈監控系統中,它是非常理想的選擇。它內部RAM達到64K大小,提供I2C 串行和SPI 串行接口等接口,使得LPC2106在GPRS系統中能夠進行各種擴充;它的兩個定時器,分別具有4 路捕獲/比較通道,適合路燈控制多路數據處理,看門狗定時器確保了系統的安全,雙電源技術保證了系統的可靠性。
1.2 P87LPC760芯片[3]
P87LPC760是14 腳封裝的單片機,適合于許多要求高集成度低成本的場合,可以滿足多方面的性能要求。它是菲利普公司小型封裝系列中的一員,P87LPC760提供高速和低速的晶振和RC 振蕩方式,可編程選擇具有較寬的操作電壓范圍,可編程I/O口線輸出模式選擇,可選擇施密特觸發輸入LED 驅動,輸出有內部看門狗定時器,P87LPC760采用加速80C51處理器結構,指令執行速度是標準80C51 MCU的兩倍特性。在路燈監控通信終端中作為從處理器。
2 硬件系統結構
2.1 GPRS通信終端硬件結構
GPRS路燈監控系統終端安裝在路燈的各個數據采集點,通過RS232口和RS485口與GPRS透明數據傳輸終端連接,數據經過協議封裝后發送到中國移動的GPRS數據網絡,通過GPRS數據網絡將數據傳送至路燈監控中心,實現路燈終端和路燈監控中心系統的實時在線連接。GPRS通信終端硬件結構采用主從CPU的設計方法,這樣提高系統的可靠性和運行速度,主處理器采用菲利普公司的ARM7TDMI-S 處理器LPC2106,主要負責協議的封裝,與GPRS通信的實現;從處理器采用菲利普公司的P87LPC760,主要負責對ARM7芯片和GPRS模塊的控制。GPRS監控通信終端的實現結構圖如圖2所示。

圖2 GPRS監控通信終端結構圖
2.2 監控通信硬件的實現
在路燈監控通信終端中,主處理器是基于AMR7核心的LPC2106處理器,它是整個系統的硬件核心,連接結構圖如圖3所示,主要功能是實現GPRS下的通信協議封裝及數據傳輸,同時采用適用于GPRS的AT指令,使用TCP/IP協議將數據打成IP包,經GPRS接口接入無線GPRS網絡,并應用Winsock控件來實現接收數據及數據交換。
2.3 監控通信控制的實現
從處理器使用P87LPC760,主要功能是對LPC2106處理器與GPRS模塊的數據傳輸通信控制;
2.4 監控通信接口的實現
由于監控通信終端是3.3V的系統,而且核心處理器LPC2106的UART1帶有完全的調制解調器接口,使用TTL電平,所以使用8 路的RS232 轉換芯片SP3238進行RS232電平轉換及串口通信,SP3238芯片是+3.0V和+5.5V的RS232轉換器。具有低功耗、高數據速率、增強型ESD保護等特性。MAX3485是RS485電平轉換,這些口線可保留給用戶作為其它功能使用。
2.5 GPRS模塊的實現
中興ZTE815主要是用來實現GPRS模塊,使用SIM卡進行實現。SIM卡的1和4腳接電源,2腳接地,3腳是復位,與ZTE815的41腳相連;5腳是時鐘,與ZTE815的45腳相連;6腳是通信讀寫I/O引腳,與ZTE815的43腳相連。

圖3 LPC2106連接結構圖
3 GPRS通信軟件的設計
軟件的設計是本監控通信終端的核心,其中通信模塊設計是整個終端軟件設計主要部分,軟件設計采用ARM公司的ADS集成開發環境,使用C語言進行編程,主要是對LPC2106處理器進行控制,實現協議的封裝及與GPRS系統的通信,從初始化串行通訊模塊設計到與帶SIM 卡的GPRS終端的通信流程設計,需要兼顧軟件的各個功能模塊,包括參數設置、自動接收數據、請求數據以及信號判斷等。
3.1 通信命令處理
通信數據處理主要是針對需要發送的數據和接收到的信息進行相關處理。通過在ARM7模塊建立AT指令實現數據的收發,并實現對AT指令的分析和控制。本系統用到的AT指令是:建立TCP/socket連接命令"AT+ISTCP:";發送數據命令"AT+ISSND%:";查詢數據命令"AT+ISRCV:";查詢數據鏈路命令"AT+ISST:";模塊退出傳輸模式命令"AT+IMCM";查詢模塊信號值命令"AT+CSQ";模塊返回數據傳輸模式命令"ATO";DTU返回控制命令模式命令"AT+I";關閉SOCKET命令"AT+ISCLS: "。
3.2 系統主要函數介紹
通信控制是比較復雜的過程,本系統主要的函數有:(1)接收的字符串與目標pSrc字符串對比函數unsigned char Recive_GpCmp(const unsigned char *pSrc,unsigned char unNum),用于對接收指令的檢測;(2)提取信號強度函數unsigned char Achieve_IMFSrong(void),信號強度為0~30;(3)對比連接返回值函數unsigned char Achieve_Socket(void);(4)建立SOCKET連接函數void Connect_Socket(unsigned char *pIp),該函數負責發送IP地址及端口號,等待時間是一分鐘,在數據返回值中,I/000 表明連接成功,字柄號為000,I/ERROR 表明連接超時或不成功;(5)查詢信號強度函數void Check_IMFSrong(void),等于1為查詢信號強度狀態,等于0為空閑狀態,在查信號強度,最長時間3.2秒,時間間隔為6分鐘,并在主循環調用該函數;(6)查詢在線狀態,秒間隔調用函數void Check_Gprs(void),設置在線查詢時間間隔為3分鐘,兩次判斷掉線就確認掉線了。
3.3 數據收發函數的實現
由于篇幅的限制,不能對各函數進行詳細的描述,下面主要對數據收發函數進行實現。
3.3.1 接收數據函數的實現
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"; //接收數據
UART1_SendStr(buf,i);
}
}
c語言相關文章:c語言教程
通信相關文章:通信原理
晶振相關文章:晶振原理
評論