Linux和GPRS的數據通訊系統(tǒng)應用介紹
0 引 言
隨著我國電網的不斷擴大,輸電線路越來越多、越來越復雜,給線路運檢人員日常維護和檢修造成了一定的困難。輸電線路運檢人員一般工作在野外,需要用導航系統(tǒng)來識別路徑,當遇到危險情況下尋求救援時也需要將自己的位置信息傳輸給監(jiān)控中心。而目前普遍使用的手持定位系統(tǒng)和車載定位系統(tǒng)只能實現市區(qū)和主干道上的導航,不能滿足輸電線路運檢導航的需要。輸電線路運檢導航系統(tǒng)的設計有效地解決了目前導航系統(tǒng)的弊端。
本文重點是解決輸電線路運檢導航系統(tǒng)的數據傳輸問題,采用GPRS技術結合Linux操作系統(tǒng)實現。關于應用嵌入式技術和無線移動網絡技術的融合,實現遠程的數據傳輸已經出現了不同的研究方案,并充分展現了其廣闊的應用領域和前景。
1 系統(tǒng)總體設計
整個系統(tǒng)由手持終端和遠端服務器構成,系統(tǒng)整體結構如圖1所示。手持終端設備通過GPRS無線網絡實現與監(jiān)控中心服務器之間的通信,使得當監(jiān)控中心接入Internet網絡時能夠接收來自手持終端的數據,并在監(jiān)控中心大屏幕上顯示。
手持終端采用ARM-Linux系統(tǒng)。系統(tǒng)的核心部件ARM(AdvancedRISC Machines)處理器是專門針對嵌入式設備設計的,是目前構造嵌入式系統(tǒng)硬件平臺的首選,采用RISC(精簡指令集計算機)架構的ARM微處理器具有體積小、低功耗、低成本、高性能的特點。而Linux操作系統(tǒng)可公開獲得的源代碼已經在性能、功能、驅動開發(fā)和可移植性等方面經歷了無數的改進、增強及擴充,其操作系統(tǒng)代碼可裁減,所以采用嵌入式Linux操作系統(tǒng)可以大大提高系統(tǒng)的可靠性,充分發(fā)揮處理器的多任務潛力,提高開發(fā)效率和縮短開發(fā)周期。
2 系統(tǒng)硬件實現
手持終端硬件結構主要分為以下幾個部分:ARM處理器及其擴展接口、觸摸屏、電源、GPS模塊、GPRS模塊等。手持終端硬件平臺以S3C2410控制器為核心,其他模塊通過它的內部接口,輔助以設計的外部電路來完成相應的功能。
S3C2410自帶3通道UART,這里使用的串口2與GPRS模塊相連,如圖2所示。由圖中可以看出GPB6~8代替了串口2的CTS,DCD和DTR握手信號,因此要在串口驅動中將原來對于串口2“DCD,DTR,CTS”信號操作的地方,改成相應對“GPB6~8”的操作;此外,因為要給MC35i模塊“IGT”引腳至少100 ms的低脈沖用于啟動MC35i模塊,而這個脈沖是通過由軟件的方法對-GPB9腳寫0和1來產生,因此要在驅動中串口初始化的部分添加這個脈沖產生的代碼,用于啟動GPRS模塊。
系統(tǒng)使用的嵌入式Linux內核版本是2.6.14,其中串口驅動的部分位于ARM板內核的kernel/driv-ers/serial和/kernel/drivers/char/目錄下。其中串口初始化部分位于/kernel/drivers/serial/serials3c2410.c文件中。對其進行如下修改:
對于握手信號的處理位于/home/guoguo/kernel/drivers/char/serial.c文件中。主要需要修改的函數有:check_modem_status(),get_modem_info(),block_til_ready(),line_info(),autoconfig()等函數。
上述的函數中都有涉及到讀握手信號的狀態(tài)進行判斷操作,而讀握手信號值主要是通過讀modem狀態(tài)寄存器的值來實現,在內核中modem狀態(tài)寄存器被定義為UART_MSR,UART_MSR共8 b,從高到低每個bit依次代表的是DCD,RI,DSR,CTS,DDCD,TERI,DDSR,DCTS的值(高低電平),因此要將這些函數中對UART MSR的狀態(tài)值status進行判斷處理前,相應的位賦上正確的值,這個值從相應的GPIO腳來獲取。
3 系統(tǒng)通信程序實現
在Linux下要完成與掛接在Internet上的通信服務器通信,首先需要經過GPRS模塊初始化和GPRS網絡連接,然后才能使用TCP/IP協(xié)議進行數據傳輸。
GPRS模塊初始化程序功能:實現MC35i模塊初始化并完成MC35i與S3C2410的邏輯連接。在該程序內部使STB選通信號變?yōu)楦唠娖?,并持續(xù)規(guī)定時間,然后恢復成低電平,完成對MC35i的初始化工作,緊接著通過有關控制信號實現S3(22410與MC35i的邏輯連接。初始化程序可直接在Linux命令行下執(zhí)行命令In-smodigto即可完成。
GPRS網絡連接程序功能:使Mc35i以某種通信協(xié)議連接到GPRS網絡上。網絡連接使用第三方提供的內置PPP通信協(xié)議的軟件,其命令如下:
/connect
當連接成功后,由于GPRS網絡通過中國移動網關連接到了Internet網,因此就可以利用TCP/IP協(xié)議與Internet上的任何IP地址進行通信了。
由于Linux操作系統(tǒng)已內置TCP/IP協(xié)議棧,因此可以直接使用套接字編程實現TCP/IP的數據傳輸。套接字的基本模式是C/S(客戶/服務器),內置GPRS模塊的設備工作在客戶模式,而遠程Internet網上的通信服務器工作在服務器模式??蛻舳顺绦蚧玖鞒淌牵簞?chuàng)建套接字,綁定套接字到已知端口上,然后請求連接,最后調用數據收發(fā)函數進行數據的發(fā)送。在客戶端通信程序執(zhí)行前,服務器端的程序必須完成初始化并開始偵聽。
客戶端程序如下:
4 監(jiān)控中心軟件設計
監(jiān)控中心程序負責整個工作區(qū)域畫面的顯示,特殊區(qū)域劃分的繪制和管理以及對所有運檢人員的跟蹤。根據電力部門對各工作區(qū)域的特殊區(qū)域劃分,將其用不同的顏色顯示,方便監(jiān)控人員的監(jiān)視及管理。
監(jiān)控中心軟件利用MapXMobile控件實現GIS的基本功能,以Microsoft公司的可視化開發(fā)環(huán)境VC為開發(fā)平臺,進行二次開發(fā)。





