a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式 Linux 的移動終端的軟件設計

基于嵌入式 Linux 的移動終端的軟件設計

作者:張志虎 劉鎮 時間:2008-08-26 來源:微計算機信息 收藏

摘要:統的重要組成部分,主要用來接收 GPS 信號并對其進行處理,然后通過 GPRS 網絡發送給監控中心。本文介紹了一種 系統平臺下,軟件的設計方案及其相關實現。 

關鍵詞:

本文引用地址:http://www.j9360.com/article/87371.htm

  1   引言

  實時操作系統(RTOS)是應用軟件的基礎和開發平臺,應用程序都是建立在它之上。實時嵌入式操作系統的種類繁多,大體上可分為兩種:商用型和免費型。商用型的實時操作系統功能穩定、可靠,有完善的技術支持和售后服務,但價格昂貴。免費型的實時操作系統在價格方面具有優勢,目前主要有 、μC/OS 等。

  與其它嵌入式操作系統相比,嵌入式 Linux 具有開放源代碼、高可靠性以及強大的網絡功能等優勢,因此選用了嵌入式 Linux 系統作為移動終端的軟件平臺。

  2   統概述

  車輛監控系統是融全球定位技術(GPS)、地理信息技術(GIS)和(GPRS)于一體的高科技系統,由移動終端、GPRS 網絡和監控中心組成[1]。移動終端安裝在各個移動車輛上,其上的 GPS 接收器實時采集衛星定位信息,然后通過串口 1 傳送給 ARM 處理器。ARM 處理器先解算出有用的數據(經緯度、速度、狀態等),然后按照 TCP/UDP 協議的格式封裝成 TCP/UDP 數據包,接著加上 IP 報頭和報尾封裝成 IP 數據報。由于 ARM 處理器與 GPRS 通信模塊之間的通信遵循 PPP(Point to Point Protocol,點對點協議),因而,需要將 IP 數據報按照 PPP 幀的幀格式封裝成 PPP 幀,然后傳遞給接在串口 2 上的 GPRS 通信模塊。GPRS 通信模塊通過無線鏈路將數據進一步發送到 SGSN(Serving GPRS Support Node,GPRS 業務支持節點)。SGSN 進行相應的協議轉換,并按照 GPRS 特有的 GTP(GPRS Tunnel Protocol,GPRS 隧道協議)將數據封裝成 GTP 包,然后通過 GPRS 骨干網傳送到相應的 GGSN(Gateway GPRS Support Node,GPRS 網關支持節點)。GGSN 也進行相應的協議轉換,再根據外部數據網的協議格式對數據進行新的封裝,并且根據其目的 IP 地址選擇路由進行傳送,從而最終傳送到監控中心。監控中心在具有地理信息處理和查詢功能的電子地圖上進行車輛運動軌跡的顯示,并對被監控車輛的準確位置、速度、運動方向、行車狀態等參數進行監控和查詢。同時,監控中心也可以向移動終端發送文本信息和控制命令。

  由此可見,移動終端的核心功能是接收 GPS 信號、處理 GPS 數據以及通過 GPRS 網絡與監控中心進行通信(包括向監控中心發送定位信息和接收監控中心的指令)。

  3   移動終端軟件系統的設計

    3.1 總體設計

  在移動終端上,軟件系統主要由三個部分組成:GPS 信號接收程序、GPS 數據處理程序和 GPRS 通信程序。在嵌入式 Linux 系統平臺下,移動終端的軟件系統結構如圖 1 所示。


圖 1    移動終端的軟件系統結構   



 圖 2    GPS 信號接收程序的層次結構

  3.2 GPS 信號接收程序

  對于移動終端,它的第一個任務就是接收 GPS 信號。在嵌入式 Linux 系統平臺下,GPS 信號接收程序的層次結構如圖 2 所示。

  其中,tty 層、N_TTY 行規程(Line Discipline)層和低層驅動程序是嵌入式 Linux 系統中串行通信驅動模塊三個固有的邏輯層,這三層之間有相互調用的接口函數。嵌入式 Linux 系統提供了多種行規程供各類設備進行選擇,如:TTY 行規程(N_TTY)用于連接終端輸入驅動設備和終端顯示驅動設備,而 PPP 行規程(N_PPP)用來連接終端驅動設備和網絡驅動設備。GPS 信號接收程序使用了 N_TTY 行規程,GPS 接收器接收到的數據必須經過 N_TTY 行規程模塊進行規范處理。低層驅動程序用來直接對硬件進行操作,而 flip_buffer 是低層驅動程序和 N_TTY 行規程之間的高速接口,它保存 GPS 接收器接收到的數據。

  在嵌入式 Linux 系統中,內核給接在串口 1 上的 GPS 接收器提供了一個設備節點 /dev/ttyS0 以及標準的文件系統接口[2]。這樣,GPS 信號接收程序對設備節點 /dev/ttyS0 的操作就會被內核映射成對 GPS 接收器的操作。當 GPS 接收器接收到衛星信號時,會觸發低層驅動程序事先注冊到系統中的中斷處理函數,從而調用函數 receive_chars( ) 把數據填充到 flip_buffer 中,然后調用函數 tty_flip_buffer_push( ) 將數據傳遞給 N_TTY 行規程模塊。N_TTY 行規程模塊中的函數 n_tty_receive_buf( ) 對數據進行規范化處理后將其存入 tty 緩沖區中,供應用層的 GPS 信號接收程序來讀取。

  當應用層的 GPS 信號接收程序開始運行時,它會向文件系統發出讀請求,文件系統發現此請求的對象為 tty 設備,于是調用函數 tty_read( ),接著調用函數 read_chan( ) 讀取 tty 緩沖區中的數據。

  3.3 GPS 數據處理程序

  GPS 接收器與嵌入式 Linux 平臺之間的通信協議有很多種,這里采用的通信協議是 NMEA-0183,它規定了 GPS 數據的輸出速率為 4,800 波特,其輸出都是 ASCII 字符,工作模式為 8-N-1。通信協議 NMEA-0183 中包含的語句有 GPGGA、GPGLL、GPGSA、GPGSV、GPRMC、GPVTG 等,要想知道車輛的位置信息,至少要提取出 GPGGA、GPGLL、GPRMC 中的一種。NMEA-0183 協議報文的語句格式如圖 3 所示。


圖 3    NMEA0183 的報文格式

  其中,$ 為串頭,表示串的開始;AA 為識別符;XXX 為語句名;ddd…ddd 為數據字段,字母或數字;* 表示串尾;hh 表示 $ 與 * 之間所有字符代碼的校驗和;< CR > 為回車控制符;< LF > 為換行控制符。

  在車輛監控系統中,主要關心的是時間、車輛的位置和速度等信息。因此,在移動終端上,GPS 數據處理程序的主要功能是從 GPS 接收器接收到的數據中提取出 GPRMC 定位語句,忽略掉其他信息[3]。此后,移動終端上的 GPRS 通信程序負責將相關的數據發送給監控中心。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉