王振+姬廣永+耿桂娟
摘 要: 以往設計的基于WinCE的網絡移動終端受環境的影響較大,存在較高的通信延時,并且信息傳輸時效性差,給用戶帶來了較大的困擾。因此,開發并設計了基于嵌入式Linux的網絡移動終端,設計網絡移動終端的硬件和軟件結構,對網絡信息移動終端通過GPRS模塊接入Internet的過程實施分析,對系統的核心PXA255微處理器硬件電路實施詳細的設計。給出網絡移動終端的軟件結構以及功能,對Linux移動終端設備驅動操作集合以及設備驅動接口實施設計,確保網絡移動終端程序驅動的順利運行,提高網絡數據傳輸的效率和質量。實驗結果說明,所設計的網絡移動終端具有較高的運行效率,全部操作等待以及服務響應時延都在用戶可接受的范圍內。
關鍵詞: 網絡; 移動終端; 嵌入式Linux; 設備驅動; 開發; 設計
中圖分類號: TN929.53?34 文獻標識碼: A 文章編號: 1004?373X(2018)05?0051?05
Abstract: The previous?designed network mobile terminal based on WinCE affected by environment has high communication delay and poor information transmission timeliness, which troubles the users greatly. Therefore, a network mobile terminal based on embedded Linux was designed and developed. The hardware and software structures of the network mobile terminal were designed. The process of network information mobile terminal accessed into Internet through GPRS module is analyzed. The system hardware circuit of the core PXA255 microprocessor was designed in detail. The software structure and function of the network mobile terminal are given. The device driver operation assemble and device driver interface of the mobile terminal based on Linux were designed to ensure the smooth operation of the program driver of the network mobile terminal, and improve the efficiency and quality of the network data transmission. The experimental results show that the network mobile terminal has high operation efficiency, and its all operation waiting and service response delay are within the acceptable range of users.
Keywords: network; mobile terminal; embedded Linux; device driver; development; design
0 引 言
隨著科學技術的快速發展,網絡移動終端在各領域中的應用價值逐漸提升。基于嵌入式Linux的網絡移動通信終端是融合GPS全球定位技術、移動通信技術以及地理信息系統GIS的綜合系統,其可自主定位動態目標,同時進行信息的快速操作以及地圖匹配控制等內容,在軍事、探測以及醫療領域中具有較高的應用價值[1]。以往設計的基于WinCE的網絡移動終端受環境的影響較大,存在較高的通信延時,并且信息傳輸時效性差,給用戶帶來了較大的困擾。面對該問題,本文對網絡移動終端的嵌入式開發與設計過程實施了分析,極大地提高了數據的傳輸效率和準確度。
1 網絡移動終端的嵌入式設計
1.1 基于嵌入式Linux的網絡移動終端
本文設計的基于嵌入式水情信息移動終端,采用測站?信息中心?移動終端的三級結構。信息中心能夠實現網絡信息的瀏覽以及檢索,通過超短波?GPRS的二級通信手段,超短波可對測站同信息中心間的網絡信息實施傳遞,GPRS能夠傳遞信息中心同移動終端間的網絡信息[2]。網絡移動終端的硬件平臺包括Sitsang開發板以及GPRS模塊,Sitsang開發板包括Intel PXA255處理器、64 MB SDRAM、32 MB FLASH以及640×480 LCD觸摸屏,通過低功耗的Intel PXA255微處理器為網絡通信提供依據,該處理器是總體系統的核心,是其他模塊間實現交互的紐帶,并對系統中的模塊進行綜合控制,確保總體網絡移動終端的順利運行。將MC35模塊當成GPRS模塊,是一種雙頻GSM/GPRS無線模塊,能耗較低,用于采集網絡信息。采用串口反饋給Sitsang進行解碼、存儲以及顯示。網絡移動終端硬件結構圖用圖1描述,Sitsang開發板中存在引導裝載程序,能夠實現CPU、內存的初始化設置,實現內核映像的裝載以及引導。
開發板中移植包括嵌入式Linux驅動程序以及Jffs2文件系統,采用來自挪威Trolltech公司圖形用戶界面Qt/Embedded與Qtopia,采用Linux中的Qt/Qtopia軟件設計模塊,設計網絡移動終端的應用軟件,完成Client/Server網絡模式信息遠距離無線傳遞。網絡移動終端運行后,輸入網絡服務器IP地址以及端口號,能夠自主上網,連接服務器。服務器將采集到的測站網絡信息傳輸給移動終端,移動終端實現信息的響應、采集以及存儲[3]。本文設計的網絡移動終端系統結構圖用圖2描述,由硬件平臺、軟件平臺、應用軟件及腳本文件構成。endprint
1.2 移動終端通過GPRS模塊接入Internet
連接互聯網是采用GPRS實施數據傳輸的必要條件,是總體網絡移動終端的重點。Linux下撥號采用PPP協議中的pppd程序,通過串行點對點連接對數據報實施傳輸[4],主要由三部分構成,分別是在串行封裝數據報的手段、LCP(擴展連接控制協議)以及塑造配置不同網絡層協議的NCP。在嵌入式Linux系統中通過Shell腳本完成GPRS撥號,通過腳本語言塑造DoS下的批操作腳本程序,確保系統自主運行撥號。在Linux下撥號使用的腳本是ppp?on,ppp?off以及ppp?on?dialer,在安裝的Red hat Linux 9.0中從/usr/share/doc/ppp/script內獲取三個腳本,對這三個腳本實施修正,完成GPRS上網。基于嵌入式Linux的網絡移動終端下運行腳本ppp?on后,能夠采用GPRS模塊同互聯網連接。
1.3 PXA255微處理器硬件電路設計
本文設計的嵌入式網絡移動終端系統的核心是PXA255微處理器,其對系統進行總體調控,是系統順利運行的基礎。設計的PXA255微處理器硬件電路用圖3描述,其包括嵌入式微處理器PXA255以及相關功能模塊,總體系統的重點部分是嵌入式微處理器,通過外圍接口以及FO端口連接較多功能各異的集成電路。PXA255內核的運行頻率是100~400 MHz,本文采用來自摩托羅拉公司的一種32位指令結構的處理器PXA255芯片,其對Cod1FrieVZ32位處理機體系結構進行集成,具備10 kB的芯片內SRAM、兩個獨立的UART以及16位計時器和一個PLL時鐘。該產品還具備軟件監視時鐘、GPIO線路、兩個ZIC接口以及4通道DMA和SDRAM控制器。為了實現處理性能以及耗能間比例的最佳化,通過電源管理以及實時時鐘調控不同模塊的時鐘頻率。
2 系統軟件設計
2.1 移動通信終端軟件的設計
在設計的網絡移動終端硬件基礎上,設計網絡移動終端的軟件,其結構用圖4描述。能夠實現網絡通信功能、繪制矢量地圖以及實現人機交互。系統軟件包括網絡通信模塊、定位數據采集和處理模塊以及人機交互模塊[5]。 網絡通信模塊可化簡PPP協議以及TCP協議,向互聯網中接入移動終端,同監控站塑造TCP連接,實現數據的穩定傳輸。網絡通信模塊包括系統主線程、GPRS數據采集線程、GPRS數據操作線程、應用數據上傳線程和應用數據操作線程。定位數據采集以及處理模塊能夠采集GPS模塊數據和有價值的數據。人機交互模塊可繪制矢量地圖并實現人機交互,同時線程LCD以及trace可及時跟蹤顯示網絡移動終端。
2.2 軟件功能模塊的劃分
本文設計的網絡移動終端系統的軟件功能由上層模塊和底層模塊構成,上層模塊的詳細過程是:
1) GPS控制模塊采集串口中的GPS接收機數據信息,并對該信息實施解析[6],集成經緯度、方向以及時間等信息,在數字地圖中呈現;
2) 語言通信控制模塊采用軟鍵盤以及通過電話簿撥號,完成同相關節點間的語言通信;
3) 短信收發控制模塊采用發送端在短信內容中融入幀頭的方式,對GPS信息、文字命令對應的代號信息以及其他短信進行判斷,接收端依據幀頭信息內容向各模塊傳輸相關的信息;
4) 短信收發控制模塊的發送端將幀頭融入的短信內容匯總,進而對GPS信息、文字命令對應的代號信號以及相關信息進行判斷,接收端基于幀頭信息向各模塊傳輸相關信息;
5) 數據通信控制模塊采用撥號塑造連接后,向被叫方傳輸主叫方的信息以及主叫方在數字地圖中描述的路線,并實施短信收發功能,基于實際的網絡狀態選擇數據通信以及短信業務實現數據傳遞[7];
6) 撥號控制模塊實現電話簿性能,命令控制模塊將命令、對話內容采用(編碼、命令行)的格式存儲到文件內。
下層模塊的詳細過程如下:
1) 串口接口控制模塊采用Linux的串口操作函數完成GPS和Q2358C模塊處理,通過線程完成Q2358C串口監聽過程,實現串口狀態的監聽和判斷,基于不同的串口情況向各存儲緩存內傳輸串口數據,同時設置相關的標志位;
2) Q2358C通信控制模塊通過AT指令集運行,并設計相關的函數為應用軟件層實現通信提供基礎,這些函數通過指令完成相關功能,同時對Q2358C內的其他信息進行操作。Q2358C模塊采用串口同系統實現信息的交互,本文通過線程方案監測串口狀態,串口包括監聽狀態、數據連接狀態以及語音連接狀態。若網絡移動通信系統發送數據,則Q2358C分析狀態進行后續的操作。本文軟件系統的功能模塊劃分結構圖用圖5描述。
2.3 Linux移動終端設備驅動設計
嵌入式移動終端主要包括驅動程序以及應用程序,本文通過FS2410設計平臺內的Bootloader指導Linux 2.4內核,再搭建面向FPGA板設計的驅動程序fpga.0,采用驅動程序接口實現FS2410同FPGA間的數據通信,設備驅動操作集合用圖6描述。本文主要分析嵌入式Linux 2.4內移動終端驅動程序的設計過程。Linux設備驅動程序集成在內核內,是一種可對系統硬件控制器實施操作的軟件,設備驅動程序時內核內擁有高級別的可共享的下層硬件操作例程。設備驅動程序軟件中集成了調控相關設備的技術方法[8],采用相關的接口輸出操作集。內核使用規范的設備接口,采用穩健系統接口向用戶空間程序內輸出設備操作內容。
操作系統內核以及應用程序間的接口是系統調用,操作系統內核同機器硬件間的接口是設備驅動程序,設備驅動程序是內核的一部分,其具備的功能如圖7所示。
設備驅動程序可進行設備的初始化以及釋放操作,向硬件傳輸內核中的數據以及采集硬件內的數據,采集應用程序反饋給設備文件的數據,并回送應用程序申請的數據[9],對設備存在的錯誤事實進行檢測和操作。Linux內設備驅動的組織結構由如下三個部分組成:endprint
1) 對初始化子程序實施自主設置,對待驅動硬件設備的存在和運行狀態實施分析,若設備正常運行,則對設備及其驅動程序采用的軟件狀態實施原始設置。
2) 服務于I/O申請的子程序是驅動程序的上端部分,該部分程序在運行過程以及調用過程中都歸屬于相同進程,僅從用戶態調整成內核態,從其內調用同進程運行環境相關的函數。
3) 中斷服務子程序是驅動程序的下端,網絡移動終端設備在I/O申請停止時以及其他產生波動狀態的情況下會形成中斷。中斷形成在任何進程運行過程中,中斷服務子程序被調用過程同進程的狀態相獨立,無法調用同進程運行環境相關的函數。設備驅動程序支撐同種類型的不同設備,系統調用中斷服務子程序過程中,通過惟一標識申請服務設備。
3 實驗與分析
3.1 代碼量與可信計算基評估
本文設計的移動終端中不同組件的C程序代碼近似行數用表1描述。其中,TCB用于描述一臺設備的可信運算基,是確保設備安全所需的全部軟件、硬件以及固件,TCB的規模越小,形成可被攻擊漏洞的概率越小,網絡移動終端的安全性越高。從表1能夠看出,本文設計的網絡移動終端的TCB軟件部分僅有約8 900 LOC,而投入移動商業市場的某種型號的SW安全移動終端OS的TCB為6 000 LOC,說明本文設計的網絡移動終端的LCB規模較低,系統安全的可控性較高。
3.2 網絡移動終端性能檢測
對本文設計的網絡移動終端在運行相關方案時所需的相關操作進行檢測,具體的操作內容和運行時間如表2所示。其中,云服務申請以及響應消息對詳細的云服務命令不予分析,對不同操作時間開銷取100次運行的均值。
分析實驗結果能夠得出,本文網絡移動終端通過對稱加密以及消息摘要算法的數據封裝和解封處理、接入申請生成、驗證響應解析以及云服務申請生成和云服務響應解析的時間開銷都低于0.15 ms,這些處理過程在移動終端運行實驗方案過程中被大量采用。本文網絡移動終端采用非對稱加解密以及簽名驗證算法,產生授權申請以及授權響應耗時119 ms,該情況只在用戶第一次采用移動設備等3類狀態下運行,具有較低的使用頻率,對用戶產生的困擾可不予考慮。綜合分析表2中的數據可得,本文設計的網絡移動終端運行性能高,不同操作產生的等待延時不會對用戶產生困擾。
3.3 服務端方案性能評估
實驗檢測采用本文設計的網絡移動終端為應用服務提供商A以及云服務提供商C,提供所需相關操作的響應情況。應用服務提供商A需要對發送的授權申請消息進行采集和解析,驗證消息后產生授權響應消息,該過程為一次響應。實驗檢測本文網絡移動終端完成一次響應耗費的時間,取運行100次的均值,結果是單線程響應耗時13.186 ms。實驗還統計了本文網絡移動終端和基于WinCE的網絡移動終端采集大規模授權申請過程中采用線程池并發運行的狀態下實現單條響應,耗費的時間用圖8描述。
分析圖8可得,并發申請數量從100個提升到500個的情況下,本文移動終端的單條申請響應時間從400 ms提升到2 200 ms,傳統移動終端的單條申請響應時間從450 ms提升到5 000 ms,能夠看出本文移動終端耗費的時間更少,具有較高的運行效率。
云服務提供商C需要采集以及解析移動終端反饋的接入申請消息,對其實施驗證后產生驗證響應消息,該過程為一次響應,實驗統計本文網絡移動終端單線程實現一次響應耗時0.015 ms,具有較高的效率。實驗還檢測了本文網絡移動終端以及基于WinCE的網絡移動終端在并發運行狀態下實現單條響應的時間,結果用圖9描述。分析圖9可得,由于并發申請量的不斷提高,本文移動終端單條申請的響應時間從0.02 ms提升到0.09 ms,絕對數值同提高幅度較低;而傳統移動終端單條申請的響應時間從0.02 ms 提升到0.12 ms,具有較高的提高幅度。因此,相對于傳統移動終端,本文網絡移動終端具備較強的性能。
綜合上述分析結果可得,本文設計的網絡移動終端對于移動用戶來說具有較高的運行效率,全部操作等待以及服務響應時延都在用戶可接受的范圍內,實用性較強。
4 結 語
本文開發并設計了基于嵌入式Linux的網絡移動終端,極大地提高了網絡移動終端的運行效率和質量,提高了用戶的滿意度。
參考文獻
[1] 章夢玄,趙英,范嬌穎.面向移動終端的網站無障礙設計研究[J].現代情報,2016,36(5):110?116.
ZHANG Mengxuan, ZHAO Ying, FAN Jiaoying. Research on Web accessibility design for mobile terminals [J]. Modern information, 2016, 36(5): 110?116.
[2] 杜家宜,李仁發,堵琳娜.多核嵌入式系統內聯網絡優化調度[J].計算機工程與科學,2016,38(4):617?623.
DU Jiayi, LI Renfa, DU Linna. Task optimization scheduling to inter?connection network on embedded system with chip multi?processors [J]. Computer engineering and science, 2016, 38(4): 617?623.
[3] 李洪亮,吳瓊.嵌入式網絡電子信息系統魯棒性優化計算方法[J].計算機仿真,2016,33(8):264?267.
LI Hongliang, WU Qiong. Embedded ship electronic information system of reliability optimization design method [J]. Computer simulation, 2016, 33(8): 264?267.endprint
[4] 李輝,莊杰,王佳明.基于ARM?Linux的移動終端高穩定VGA接口設計[J].計算機工程與設計,2014,35(4):1236?1241.
LI Hui, ZHUANG Jie, WANG Jiaming. High stability mobile terminal of VGA interface design based on ARM and Linux [J]. Computer engineering and design, 2014, 35(4): 1236?1241.
[5] 李曉丹.基于STM32的物聯網嵌入式網關的設計[J].計算機工程與應用,2015,51(4):61?65.
LI Xiaodan. Design of IOT embedded gateway based on STM32 [J]. Computer engineering and applications, 2015, 51(4): 61?65.
[6] 胡雯,趙海廷.基于嵌入式系統的Linux網絡遠程監控設計[J].科技通報,2015,31(8):72?74.
HU Wen, ZHAO Haiting. Linux network remote monitoring design based on embedded system [J]. Bulletin of science and technology, 2015, 31(8): 72?74.
[7] 黃笑笑.嵌入式多媒體通信中節能路由選擇仿真研究[J].計算機仿真,2017,34(3):173?176.
HUANG Xiaoxiao. Simulation of energy saving routing in embedded multimedia communication [J]. Computer simulation, 2017, 34(3): 173?176.
[8] 劉仲方,鄭丹丹,冉帆.多網絡調制混合濾波器嵌入式控制系統設計[J].控制工程,2016,23(3):318?321.
LIU Zhongfang, ZHENG Dandan, RAN Fan. Design of embedded control system for multi?network modulation hybrid filter [J]. Control engineering of China, 2016, 23(3): 318?321.
[9] 田時舜,章明朝,周躍,等.基于DM8148的嵌入式網絡視頻服務器設計[J].計算機工程與設計,2015(5):1192?1196.
TIAN Shishun, ZHANG Mingchao, ZHOU Yue, et al. Design of embedded network video server based on DM8148 [J]. Computer engineering and design, 2015(5): 1192?1196.endprint