樓然苗,李光飛,陳庭勛
(浙江海洋學院公共實驗中心、網(wǎng)絡(luò)中心,浙江舟山 316000)
當前,電子海圖、GPS、聲納等導航器在船舶航行中得到了廣泛的應(yīng)用,大大提高了船舶導航技術(shù)及航船的安全性[1]。常用的導航系統(tǒng)主要分PC機系統(tǒng)和嵌入式系統(tǒng)2種。PC機船舶導航系統(tǒng)采用基于Windows的GIS軟件(如MapInfo、MapGIS)設(shè)計,具有系統(tǒng)功能豐富、響應(yīng)速度快、人機交互界面友好等特點,但成本較高,系統(tǒng)集成度差,不適合作為專業(yè)系統(tǒng)使用;嵌入式導航系統(tǒng)分為8位機和32位機,其中8位單片機應(yīng)用系統(tǒng)由于處理器運算能力較弱,資源有限,而且在圖形用戶界面中實現(xiàn)較為困難,近年來已被淘汰,而32位處理器組成的嵌入式系統(tǒng),由于系統(tǒng)集成度高、硬件成本較低并且運算性能優(yōu)異,目前得到較多應(yīng)用[2]。國產(chǎn)GPS船用導航系統(tǒng)綜合了GPS和電子海圖等功能,使用了32位嵌入式處理器,系統(tǒng)從GPS系統(tǒng)實時獲取船舶位置(包括經(jīng)緯度與時間等)和航行信息(包括船速與航向等),在電子海圖上顯示相關(guān)導航信息,用戶通過遙控器或鍵盤操作,提供海圖漫游、海圖查詢等航行信息的查詢及管理。
圖1為GPS船用導航系統(tǒng)硬件體系構(gòu)成框架。它主要包括以下模塊:處理器、存儲器(RAM、ROM)、擴展存儲設(shè)備(Nand Flash)、I/O 設(shè)備(鍵盤及顯示設(shè)備)、標準通信接口(UART)等。
本系統(tǒng)使用華邦(winbond)公司的32位嵌入式處理器,該處理器采用嵌入式ARM9處理核,采用RISC技術(shù),主頻為75 MHz,具有強大的處理能力,可外接鍵盤和鼠標,可直接驅(qū)動VGA顯示器。處理器中有2個標準UART通訊口,一個串口用作調(diào)試接口與PC機超級終端通訊,另一個用作與GPS接收板通訊;遙控(或聲納)采用中斷實現(xiàn);使用2片HY57V641620HGT-H組成4 M×32 Bit的內(nèi)存空間,用于程序運行;系統(tǒng)外擴16 MB Nand Flash存儲器,用于存放海圖數(shù)據(jù);512 KB Flash外擴空間,用于存儲操作系統(tǒng)應(yīng)用程序。
圖1 GPS船用導航系統(tǒng)硬件構(gòu)成框架Fig.1 Hardware frameword of GPS navigation system in ship
GPS船用導航系統(tǒng),采用自主知識產(chǎn)權(quán)的控制軟件,控制功能強,不易移植,產(chǎn)品保密性能好。電子海圖先進行格式轉(zhuǎn)換,刪除冗余數(shù)據(jù),進行數(shù)據(jù)壓縮、建立網(wǎng)絡(luò)索引后存入存儲器,在專用控制軟件上使得系統(tǒng)響應(yīng)速度大大加快。GPS船用導航系統(tǒng)的軟件體系結(jié)構(gòu)如圖2。自底而上包括以下三個層次:(1)硬件驅(qū)動層程序:顯示器驅(qū)動程序、遙控指令碼功能程序、Nand flash讀寫程序、MPU的初始化配置程序、串口等其它設(shè)備驅(qū)動程序;(2)文件管理系統(tǒng)層程序;(3)應(yīng)用程序/用戶層程序。
硬件驅(qū)動層程序主要解決與對應(yīng)的硬件設(shè)備操作時的控制及數(shù)據(jù)、地址傳送問題。在嵌入式電子海圖儀中主要有:Nand flash的讀寫驅(qū)動程序、ROM芯片的操作驅(qū)動程序、VGA設(shè)備的驅(qū)動程序、MPU初始化復位程序等。
文件管理層主要是建立嵌入式文件系統(tǒng),以對Flash存儲器中的數(shù)據(jù)進行基于文件編號的存儲管理,同時對Flash本身的壞損單元提供有效的壞損管理機制。由于沒有通用的操作系統(tǒng)可移植,這里使用了DOS的FAT進行文件管理,因Nandflash的容量不大,系統(tǒng)用FAT16來對海圖儀中需使用的文件進行管理。
在FAT16文件管理系統(tǒng)程序的編制中,需要有掃描存儲器并標記壞存儲頁的程序,使能對Nand Flash存儲器進行格式化。在建立FAT16文件系統(tǒng)后,嵌入式應(yīng)用平臺上就可使用文件來對數(shù)據(jù)進行管理,并可以調(diào)用fopen()、fwrite()、fread()、fclose()等文件管理功能函數(shù)對數(shù)據(jù)進行訪問,大大地提高了嵌入式系統(tǒng)的數(shù)據(jù)管理能力及數(shù)據(jù)訪問速度。
圖2 GPS船用導航系統(tǒng)的軟件體系結(jié)構(gòu)Fig.2 Software structure of GPS navigation system in ship
嵌入式電子海圖儀中應(yīng)用層程序大大小小很多,主要用以實現(xiàn)不同的操作及設(shè)置功能(如系統(tǒng)在線下載程序、GPS信息的處理與顯示程序、電子海圖的顯示刷新程序及各種功能按鍵的操作程序等)。由于采用非實時操作系統(tǒng),也不太分得清應(yīng)用程序與接口函數(shù)的界線,通常把嵌入式程序分成兩部分,即前臺程序和后臺程序。前臺程序通過中斷來處理事件,其結(jié)構(gòu)一般為無限循環(huán);后臺程序則掌管整個嵌入式系統(tǒng)軟、硬件資源的分配、管理以及任務(wù)的調(diào)度,是一個系統(tǒng)管理調(diào)度程序。這就是通常所說的前后臺系統(tǒng)。一般情況下,后臺程序也叫任務(wù)級程序,前臺程序也叫事件處理級程序。在程序運行時,后臺程序檢查每個任務(wù)是否具備運行條件,通過一定的調(diào)度算法來完成相應(yīng)的操作。
國產(chǎn)化嵌入GPS電子海圖儀中海圖的數(shù)據(jù)使用自定義的數(shù)字矢量格式,按屬性不同分為以下三類數(shù)據(jù):(1)點數(shù)據(jù)(標注)。表示海圖上的一個點位置,具有經(jīng)緯度參數(shù)或用來說明的中文字符或英文字符、數(shù)字等,象助航標志、錨地設(shè)施、海上物標、礙航物等。(2)線數(shù)據(jù)。表示海圖上的一開放線段,有直線、折線、任意弧線。由最小點分辨率的點構(gòu)成,象航道航線、等深線等。(3)面數(shù)據(jù)。表示海圖上的由一封閉線條構(gòu)成的面,代表某一區(qū)域面積,像陸地、碼頭、不同水深區(qū)、灘地,都是由不同的普染(顏色)區(qū)域顯示出來。
嵌入式電子海圖儀中,電子海圖數(shù)據(jù)的格式需按點、線、面類型分類,并且按一定的規(guī)律連續(xù)存儲[3]。從第一個起始地址開始,首先要指明是點、線還是面,另外還需指明點、線或面的類型,如果是線或面數(shù)據(jù)還應(yīng)指明有多少個點數(shù)據(jù),緊接著是表示點特性的數(shù)據(jù)。不同的點因?qū)傩圆煌?,后面的?shù)據(jù)結(jié)構(gòu)也不盡相同。如一條表示線的組成點數(shù)據(jù),在存儲器中的數(shù)據(jù)結(jié)構(gòu)如圖3所示。
在線數(shù)據(jù)的存儲結(jié)構(gòu)中,第一字節(jié)是用來區(qū)別是點還是線或面,如0表示點,1表示線,2表示面。第二個字節(jié)是標明線類型的,如0表示電纜線,1表示等深線,一共可表示256種線的類型。第3到6個字節(jié)(共32位四字節(jié))表示組成線的點的個數(shù),最大點個數(shù)可達232個。從第七個字節(jié)開始是連續(xù)的點的經(jīng)緯度數(shù)據(jù),每個點的經(jīng)度及緯度各占四個字節(jié),數(shù)據(jù)是按度分秒的十進制數(shù)排列得到的,如124°13′58″的經(jīng)度值,在存儲器中的值是1241358(H)。
圖4是面數(shù)據(jù)的存儲結(jié)構(gòu)圖,它的特征意義與線數(shù)據(jù)的結(jié)構(gòu)相似。
點數(shù)據(jù)的存儲結(jié)構(gòu)在嵌入式海圖系統(tǒng)中有幾種不同的結(jié)構(gòu),因為標征不同類別的點內(nèi)容不同,因此結(jié)構(gòu)也有差別。圖5是地名數(shù)據(jù)的存儲結(jié)構(gòu)。前2個字節(jié)的意義與線或面一樣,因是點數(shù)據(jù),所以第三個字節(jié)開始就是該點的經(jīng)緯度數(shù)據(jù)。接著為了顯示地名時的分級控制,有一個表示顯示級別的字節(jié),就是控制海圖顯示在不同的放大倍數(shù)下該點地名是否顯示,接著的字節(jié)是說明地名的標注。當顯示點是燈標時,第11個字節(jié)是用來表示燈標屬性,因不同的燈標圖符不同。
圖6是嵌入式電子海圖文件中的點線面數(shù)據(jù)格式例子。
在嵌入式電子海圖顯示系統(tǒng)中,為了提高顯示的速度,使用了顯示區(qū)域緩存技術(shù),要顯示的數(shù)據(jù)都是以塊為單位組織的。數(shù)據(jù)塊的大小與顯示的屏幕尺寸有對應(yīng)關(guān)系,如顯示器采用分辨率為800×600點,則顯示緩存塊數(shù)據(jù)的大小也必須為4:3,這樣電子海圖顯示數(shù)據(jù)的塊單位可定為經(jīng)度方向120′,緯度方向為90′。當顯示一屏海圖數(shù)據(jù)時,按每點一個字節(jié)(256色顯示)計算需要的顯示緩存為480 000字節(jié)。圖7為海圖顯示緩存數(shù)據(jù)塊中的經(jīng)緯度比例范圍圖。
圖3 線數(shù)據(jù)的存儲結(jié)構(gòu)Fig.3 Storage sturcture of line data
圖4 面數(shù)據(jù)的存儲結(jié)構(gòu)Fig.4 Storage structure of surface data
電子海圖數(shù)據(jù)的實時顯示是系統(tǒng)的核心程序。該程序根據(jù)給出的中心點位置(通常為GPS給出的船位點坐標)及顯示比例范圍參數(shù),確定需要顯示的空間數(shù)據(jù)范圍,并從海圖文件中找出符合顯示范圍的數(shù)據(jù),從海圖文件中讀出圖層分層控制信息以實現(xiàn)電子海圖的分層顯示控制,最后按各類實體對應(yīng)的符號要素代碼繪制相應(yīng)的圖形符號在內(nèi)存中快速完成海圖的繪制[4-6]。電子海圖顯示流程如圖8所示。
嵌入式電子海圖顯示系統(tǒng)中使用了16 M字節(jié)的內(nèi)存空間,電子海圖數(shù)據(jù)一般在10 MB左右,剩下4 MB中用于顯示緩存作圖的為480 KB,這是按800×600點顯示屏幕計算的。剩下的空間用于程序計算及漢字庫、文本等數(shù)據(jù)的存放。由于顯示緩存只有一塊,因此在每次顯示范圍發(fā)生變化時,都要從內(nèi)存中將海圖數(shù)據(jù)重新讀算一遍,再重新進行畫圖。這在海圖移動操作中會影響刷新的速度,使用大容量位圖緩沖內(nèi)存技術(shù)可提高海圖在移動或漫游時的刷新速度。圖9為GPS船用導航系統(tǒng)信息顯示窗口圖。
圖5 點(地名)數(shù)據(jù)的存儲結(jié)構(gòu)Fig.5 Storage structure of the data
圖6 電子海圖文件中的點線面數(shù)據(jù)格式例子Fig.6 Sample of dot,line and surface data structure in electronic chat files
中央處理器:ARM RISC CPU 100M
存儲器:16M SDRAM 16M FLASH MEMORY
顯示:SVGA 800X600 256 COLOR
接收器:十二通道C/A碼單頻GPS接收板
定位精度:±20 m(2DRMS)
測速精度:0.02 M/S
捕獲時間:10S(典型值)
跟蹤動態(tài):速度850節(jié)、加速度4 G
輸入輸出:NMEA-0183
工作溫度:-10℃ ~+50℃
存儲溫度:-40℃ ~+80℃
相對濕度:40℃時為95%
電源:DC10V ~40V
功率:3.5W
航路點:1000
標記:1000
即時船位:1000
航線:20條 每條50點
圖7 海圖顯示數(shù)據(jù)塊中的經(jīng)緯度比例范圍Fig.7 The scale range of coordinates in chat display data block
圖8 嵌入式電子海圖顯示流程圖Fig.8 Embedded electronic chat display flow chat
國產(chǎn)化GPS電子海圖導航系統(tǒng),使用嵌入式32位處理器及文件管理系統(tǒng),具有海圖漫游、海圖查詢和航行信息管理等功能,具有價格低、操作方便、使用可靠等優(yōu)點,已經(jīng)生產(chǎn)應(yīng)用2年多。電子海圖儀中海圖數(shù)據(jù)使用自定義數(shù)據(jù)格式,方便實現(xiàn)分級顯示、放大縮小等海圖操作功能,而且有利于知識產(chǎn)權(quán)的保護,也可大大減小文件數(shù)據(jù)的容量。有待改進的地方有:VGA分辨率不夠高(目前為800×600點)、海圖不能連續(xù)旋轉(zhuǎn)(現(xiàn)可作 90°旋轉(zhuǎn))。
圖9 GPS船用導航系統(tǒng)信息顯示圖Fig.9 GPS navigation system in ship information display chat
[1]吳廣華,張杏谷.衛(wèi)星導航[M].北京人民交通出版社,1998:1-10.
[2]賈銀山,賈傳熒,魏海平,等.基于GPS和電子海圖的船舶導航系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程,2003,29(1):194-195.
[3]葛志明,趙學俊,李 峰.長江電子航道圖顯示與信息系統(tǒng)[J].海洋測繪,2005,25(2):64-66.
[4]關(guān) 勁,張勇剛,李 寧,等.電子海圖快速顯示方法研究[J].中國航海,2004,61(4):57-59.
[5]王瑞華,許兆新,蔣岳志.電子海圖實時平滑旋轉(zhuǎn)實現(xiàn)方法研究[J].船舶工程,2004,26(6):71-74.
[6]吳 青.電子海圖系統(tǒng)中雷達圖象與海圖圖形疊加技術(shù)研究[J].江蘇船舶,2004,21(5):32-34.