劉志博,鄧中亮
(北京郵電大學 自動化學院,北京 100876)
基于MINA的定位終端通信設計與實現
劉志博,鄧中亮
(北京郵電大學 自動化學院,北京 100876)
我國是世界上自然災害最嚴重的國家之一,尤其是近幾年來,全球氣候變暖和厄爾尼諾現象愈加嚴重,我國各地頻發災害,加之各種災害難以預測,人員損失和經濟損失逐年劇增。嚴峻的災害形勢迫切要求我國不斷提升綜合減災與救災能力。本生命探測系統以CDMA定位技術為支撐,融合應急基站手機定位、Wi-Fi通信、基于MINA框架的網絡通信、并行多線程開發等技術,通過系統內部交互的一系列服務協議,構建了多功能的定位服務系統,為用戶提供了簡潔美觀、方便易用的用戶界面。本生命探測系統實現了災后復雜環境下高精度生命探測與定位,災害現場搜救,應急指揮調度,應急減災信息位置服務等功能。本文重點實現了生命探測系統嵌入式定位終端的硬件裝置和軟件平臺的搭建,定位終端采用了嵌入式設備與MINA框架相結合的方法,具有一定的新穎性。測試證明,嵌入式定位終端與服務器端可以進行準確穩定地數據通信。
計算機應用技術;災后定位;MINA框架;嵌入式
隨著全球各種自然災害的頻頻發生,世界各國對災后的被困人員救援愈發重視。我國70%以上的城市和50%以上的人口分布在氣象、地震、地質、海洋等自然災害嚴重的地區,并且災害種類多、分布地域廣、發生頻率高、造成損失重。因此,我國災后被困人員的救援工作是救災工作的重中之重。災后被困人員的最佳救援時間不超過72小時,如何能夠準確快速地定位被困人員,尤其是被廢墟掩埋的被困人員,是一個亟待解決的問題。目前,國內現有的搜救技術裝備均有一些缺點。如聲波、光學生命探測儀需要將探頭深入廢墟的縫隙中,探測速度較慢;紅外熱成像生命探測儀探測距離能達到數十米甚至上百米,但是不具備對于墻體等嚴重遮擋物的穿透能力;雷達生命探測儀在穿透廢墟是探測距離仍然有限,且不具備對于大面積廢墟內被困人員的并行定位能力。根據工信部最新數據顯示,截至2015年12月底,我國手機用戶數達13.06億戶,手機用戶普及率達95.5部/百人[1],這為我國開展基于手機的生命探測技術奠定了用戶基礎。本生命探測系統以CDMA手機定位技術為支撐,融合多項技術,可實現對于災后廢墟內被困人員的定位,進一步提高我國應急搜救隊伍的技術裝備水平,提高災后被困人員搜救的效率。本文首先介紹系統總體方案,而終端通信的設計實現是本文的重點。
災后區域地質情況復雜,三大運營商的通信基站會有極大概率宕機,而衛星通信和應急移動通信基站受地質情況影響較小。因此,基于CDMA手機定位生命探測系統(圖1)是由北斗衛星導航定位數據模塊、應急移動通信基站、定位終端和定位服務系統平臺四大部分組成。本系統應急移動通信基站具有高精度時間同步裝置,保證基站、定位終端與北斗衛星導航定位模塊嚴格同步發送北斗定位信息。

圖1 基于CDMA手機定位生命探測系統
本生命探測系統包括3個定位終端和1個應急移動通信基站,它們均帶有北斗衛星導航定位模塊。北斗衛星導航定位模塊產生各終端位置信息,定位終端中FPGA實時采集CDMA手機數據,定位終端融合這些定位信息,并依照內部協議打包封裝。封裝完成后的數據借助Wi-Fi網絡傳送到定位服務系統平臺,請求解算服務器進行解算。解算服務器解算后的數據,經由網絡交給地圖顯示服務器處理,同步在救災指揮中心設備上顯示。
本文主要研究該系統中定位終端與定位服務系統平臺的通信方法。本系統中定位終端由多個模塊構成,各模塊在嵌入式ARM處理器的控制下,將數據交由ARM處理器按照制定的協議打包封裝,統一發送至定位服務系統平臺。下面重點介紹定位終端與定位服務系統平臺通信的設計實現。
2.1 定位終端設計需求
本系統中定位服務系統平臺采用典型的請求定位模式,定位終端將終端位置信息、采集到的CDMA手機信息、各定位終端的ID號等數據打包封裝成幀,實時上傳到定位服務系統平臺請求定位。這就要求制定相應的通信協議,實現定位終端與定位服務系統平臺的通信。同時,必須采用無線通信方式,以保證定位終端的便攜性和與救災指揮中心聯系的實時性。
2.2 定位終端結構
定位終端包括嵌入式ARM處理控制板、FPGA數據采集模塊、電源模塊、網絡通信模塊和北斗衛星導航定位數據模塊。嵌入式ARM處理控制板負責協調控制各模塊之間的通信,并將各組數據統一打包封裝成幀發送到定位服務系統平臺;FPGA數據采集模塊負責處理由應急移動通信基站激活的CDMA手機數據;北斗衛星導航定位數據終端負責將裝備位置信息發送到嵌入式ARM處理控制板;網絡通信模塊負責通過Wi-Fi協議將封裝完成的自定義協議幀發送到定位服務系統平臺的無線接收端。

圖2 定位終端結構
2.3 定位終端通信協議
定位終端與系統平臺之間、系統平臺內部各服務器之間都需要使用預先制定的協議進行通信。采用自定義協議方便識別與提取有效數據,并且占用最少比特編碼,保證數據最有效最快速的傳輸。各部分通信協議均以固定格式數據包制定,通過TCP Socket套接字傳輸,保證數據不會發生丟包。定位終端與系統平臺通信協議數據包,即請求定位數據幀,由同步頭、數據信息和CRC校驗位組成。其中,同步頭數據主要用于進行通信數據幀的起始同步判斷;數據信息主要由定位終端ID號、終端位置信息和應急移動通信基站激活的CDMA手機信號數據;CRC校驗位主要是為了保證信息傳輸的可靠性和有效性。

圖3 請求定位數據幀結構
定位終端與系統平臺通信的實現硬件主要是嵌入式ARM處理控制板與網絡通信模塊,軟件則是通信協議的制定。根據需要硬件選取以三星公司ARM9處理器S3C2440為核心設計的JZ2440開發板,網絡通信模塊則選取有人科技公司USR-WIFI232-610聯網模塊,軟件則以MINA網絡框架進行通信協議的自定義和數據包的發送。
3.1 定位終端硬件環境的配置
定位終端與系統平臺根據MINA網絡框架自定義的協議進行通信,而MINA網絡框架是基于Java語言構建,需要在定位終端ARM開發板上構建Java運行環境。JZ2440開發板出廠已自帶Linux操作系統和arm-linux-gcc工具,其中arm-linux-gcc工具是ARM環境下運行在Linux操作系統下所編寫代碼的交叉編譯工具,arm-linux-gcc工具提供了一種編寫環境和執行環境分離的手段。
為在ARM開發板的Linux操作系統環境下運行Java程序,本文采用安裝JamVM,并用SecureCRT軟件與ARM開發板進行通信。JamVM是一個小型的Java虛擬機,符合JVM規范第二版本。它雖然小但支持完整的規范,包括支持對象的收尾器調用,對象的次、弱、虛引用,類卸載,java 本地接口(JNI)與反射API[2]。JamVM在引入相關MINA框架jar包后,可運行基于MINA框架開發的程序。
3.1.1 GNU Classpath的安裝
GNU Classpath是為了使用Java虛擬機運行Java程序的基本類庫,也是運行JamVM不可缺少的類庫[3]。
將下載的Classpath-0.98解壓縮:

進入classpath-0.98文件夾:

指定編譯工具,指定目標平臺,執行命令:

根據需求完成配置后編譯:

編譯完成后執行安裝命令:

GNU Classpath這時已經安裝完成。
3.1.2 JamVM的安裝
下載 jamvm-1.5.4.tar.gz 并解壓:

進入jamvm-1.5.4目錄

指定安裝地址,指定classpath地址,指定目標平臺,執行命令

編譯過程中可能會有錯誤提示信息出現,根據提示添加需要工具即可。?
根據需求完成配置后編譯

編譯完成后執行安裝命令

將GNU Classpath和JamVM移植到ARM開發板,再進行相關環境配置即可運行Java程序。
添加環境變量

指定 LD_LIBARY_PATH 環境變量

指定類路徑

安裝完成后執行命令

顯示如圖4則表示安裝成功。

圖4 JamVM安裝成功
試運行java程序HelloWorld顯示如圖5

圖5 HelloWorld運行成功
3.2 定位終端軟件程序的設計
3.2.1 MINA框架結構
MINA(Multipurpose Infrastructure for Network Applications)是Apache軟件組織開發的一個可用于開發高性能和高可用性的網絡應用程序的基礎框架[4]。MINA框架采用了Java NIO,即異步輸入輸出技術,可以方便的支持TCP/UDP協議;同時MINA擁有靈活、可配置的線程模型,網絡通信程序開發者可以根據實際需要選擇相應的線程模型。MINA框架的系統結構如圖6所示。

圖6 MINA框架結構
MINA網絡通信框架主要由會話服務管理(IoService)、I/O過濾器鏈(IoFilterChain)、邏輯業務處理器(IoHandler)和I/O會話管理(IoSession)等模塊組成[5]。IoService是創建通信服務的頂層接口,支持TCP/UDP協議讀寫操作,直接與遠程對應端進行通信底層操作,IoService的兩個子接口IoAcceptor和IoConnector分別對應服務端和客戶端。IoFilterChain接收IoService傳輸的數據,并使用I/O過濾器進行過濾,可添加編解碼器、日志記錄和線程池等。IoHandler負責用后臺業務邏輯處理由過濾器鏈過濾后的消息。IoSession負責保持一個有效的連接會話,直到網絡斷開或者用戶斷開連接。
3.2.2 Log4j日志管理功能
日志管理是軟件系統中的重要功能,Log4j[6]是Apache的一個開放源代碼項目,它可以控制日志信息輸送的目的地,控制臺、文件、GUI(graphical user interface)組件、套接口服務器等都可以作為目的地;用戶還可以使用Log4j控制日志的輸出格式,控制日志信息的級別,甚至可以細致地控制日志的生成過程。而這些功能都可以通過一個配置文件來進行配置,并不需要修改程序代碼,能給軟件系統日志管理功能的開發帶來極大的方便。
3.2.3 通信程序的設計
根據自定義通信協議和MINA框架結構設計通信程序結構如圖7。

圖7 自定義通信協議編解碼結構
通信程序首先識別各模塊的數據,分別賦予其邏輯意義,然后通過MessageEncode轉換為固定格式的二進制數據包,每個數據包末尾添加CRC校驗位,保證數據的有效性,各個數據包首尾相連,形成二進制數據流。當服務器端IoAcceptor開始監聽,客戶端將編碼完成的二進制數據流經過IoFilterChain過濾后,按照IoHandler中相關業務邏輯處理,最終發送到服務器端。服務器端收到數據后將首先驗證數據和數據格式的準確性,通過decodable方法驗證后,進行相應的數據處理。
本次測試首先在PC上進行虛擬測試,測試3個定位終端與系統平臺服務端自定義通信協議的正確性如圖8所示。
系統平臺服務端接收到的定位終端信息如圖9所示。
將程序移植到定位終端進行實際測試。
本次測試采用單對單測試,定位終端編碼如圖10所示。
系統平臺服務端接收定位終端信息,顯示如圖11所示。
經測試,定位終端與服務端通信協議制訂正確,通信良好,數據準確。

圖8 三個虛擬定位終端編碼

圖9 虛擬測試下系統平臺服務端接收消息

圖10 實際測試下定位終端編碼

圖11 實際測試下系統平臺服務端接受消息
本文介紹了基于手機定位的生命探測系統,融合了CDMA手機定位技術、北斗衛星導航定位技術、無線通信技術和基于MINA框架的自定義協議網絡通信技術等。重點研究了生命探測系統的定位終端與定位服務系統平臺的通信方法,提出了利用嵌入式設備和MINA框架實現自定義通信協議下的無線通信方法,經驗證可準確實現數據的傳輸,在數據采集和無線通信方面有一定的新穎性。
[1] 2015年通信運營業統計公報. [Online]. Available: http:// www.miit.gov.cn/n1146285/n1146352/n3054355/n3057511/ n3057518/c4609344/content.html.
[2] 楊海明, 王新輝. Java虛擬機在ARM-Linux平臺的移植研究[J].電腦知識與技術: 學術交流, 2007, 2(11): 1374-1375.
[3] GNU開源組織網站. [Online]. Available: http://www.gnu.org/
[4] Lee T. (2006) Introduction to MINA. [Online]. Available: http:// mina.apache.org/mina-project/resources/ACAsia2006.pdf.
[5] 張森. IIP中基于MINA框架的統一接口的設計與實現[J].北京工商大學學報: 自然科學版, 2007, 25(5): 42-45.
[6] (2004)The complete log4j manual. [Online]. Available: https://www.qos.ch/shop/products/log4j/log4-jManual.jsp
Design and Implementation of Location Terminal Communication Based on MINA
LIU Zhi-bo, DENG Zhong-liang
(Automation School, Beijing University of Posts and Telecommunications, Beijing 1000876, China)
China is one of the most serious natural disasters in the world, especially in recent years, the global warming and the El Ni?o phenomenon is more serious, frequent disasters in China, combined with various disasters is difficult to predict, personnel losses and economic losses year after year. The severe disaster situation urgently requires our country to continuously improve the comprehensive disaster reduction and disaster relief capability. The life detection system is based on CDMA positioning technology, which integrates mobile base station positioning, Wi-Fi communication, network communication based on MINA framework and parallel multi-thread development. Through the series of service protocols, the multi-functional of the positioning service system, to provide users with a simple and beautiful, easy to use user interface. The life detection system to achieve the complex environment of the post-disaster detection and location of high-precision life, disaster scene search and rescue, emergency command and dispatch, emergency disaster reduction information location services and other functions. This paper focuses on the hardware device and software platform of the embedded positioning terminal of the life detection system. The positioning terminal adopts the method of combining the embedded device and the MINA framework, which has certain novelty. Tests prove that the embedded positioning terminal and the server end can carry out accurate and stable data communication.
Computer application technology; Post-disaster location; MINA network framework; ARM
TP311
A
10.3969/j.issn.1003-6970.2017.01.001
國家科技支撐項目(2014BAK12B04);國家自然科學基金(No.61372110);國家重點研發計劃(2016YFB0502003)
劉志博(1989-),男,碩士研究生,主要研究方向:室內外無縫定位、網絡通信;鄧中亮(1965-),男,教授,主要研究方向:室內外無縫定位、衛星導航、衛星通信。
本文著錄格式:劉志博,鄧中亮. 基于MINA的定位終端通信設計與實現[J]. 軟件,2017,38(1):01-05