陳德旺,魏天磊,侯 贊
(北京交通大學 軌道交通控制與安全國家重點實驗室,北京 100044)
目前,很多國家在研究數(shù)字軌道地圖技術,歐洲一些國家以及美國已經(jīng)在應用GPS技術生成數(shù)字軌道地圖數(shù)據(jù)庫方面進行了一系列研究,并根據(jù)各個地區(qū)的不同情況提出了不同的數(shù)字軌道地圖的設計方法[1~2]。
我國青藏鐵路采用的ITCS列車控制系統(tǒng)包括車載地圖數(shù)據(jù)庫,該數(shù)據(jù)庫含有線路描述數(shù)據(jù)、列車運行數(shù)據(jù)和通信數(shù)據(jù)等內(nèi)容,利用數(shù)據(jù)庫中保存的這些數(shù)據(jù),產(chǎn)生虛擬信號機,減少地面設備,實現(xiàn)車站無人值守[4]。
在軌道信息管理平臺方面,數(shù)字地圖可以通過多種平臺實現(xiàn)。嵌入式系統(tǒng)具有實時性和準確性的特點,是列車控制系統(tǒng)中設備的重要實現(xiàn)平臺。將數(shù)字地圖的大量軌道位置信息存儲在嵌入式系統(tǒng)中,利用嵌入式數(shù)據(jù)庫進行管理,相比于其他實現(xiàn)方式,有體積小、重量輕、成本低和穩(wěn)定性好等優(yōu)點,可以實時有效地提供列車定位信息。因此以嵌入式系統(tǒng)作為數(shù)字軌道地圖的實現(xiàn)平臺,將嵌入式技術和應用于軌道交通的數(shù)字地圖技術進行結合是基于通信的列車控制系統(tǒng)(CBTC)發(fā)展的趨勢,嵌入式技術可以為CBTC提供良好的技術支持。
數(shù)字軌道地圖的內(nèi)容包括3個部分:軌道線路數(shù)據(jù)、鐵路專用數(shù)據(jù)和地形環(huán)境數(shù)據(jù)。而數(shù)字軌道地圖的生成則分為5個步驟:線路測繪、數(shù)據(jù)處理、數(shù)據(jù)庫創(chuàng)建、編譯、數(shù)據(jù)驗證[4]。如圖1。
圖1 數(shù)字軌道地圖生成流程
本文利用NovAtel衛(wèi)星定位接收機測量彎道數(shù)據(jù)。接收機通過設置可以得到NMEA0183的定位數(shù)據(jù),在眾多格式的信息中,通過對GPGGA格式的信息進行截取,就可以獲得經(jīng)緯度等信息。以在北京交通大學主體育場內(nèi)通過NovAtel衛(wèi)星定位接收機接收到一些數(shù)據(jù)為例,在這些數(shù)據(jù)中,要提取的就是數(shù)據(jù)中間的緯度和經(jīng)度信息,并且要通過數(shù)據(jù)處理把這些經(jīng)緯度信息轉(zhuǎn)換為平面坐標,以便生成數(shù)字軌道地圖。
經(jīng)緯度信息提取出來之后,存在經(jīng)緯度數(shù)據(jù)格式問題,有度、度分、度秒3種,本實驗獲取的GPGGA數(shù)據(jù)中經(jīng)緯度屬于[度.分.分]格式。如“39度57.0811分”。將本實驗中數(shù)據(jù)轉(zhuǎn)換為[度.度]格式。轉(zhuǎn)換完畢后,得到經(jīng)緯度純度數(shù)數(shù)據(jù)。表1為前15個數(shù)據(jù)點經(jīng)緯度(純度數(shù))。
表1 前15個數(shù)據(jù)點經(jīng)緯度(純度數(shù))
數(shù)字軌道地圖的生成依賴于軌道位置信息數(shù)據(jù),通過衛(wèi)星定位測繪技術獲取。而GPS定位數(shù)據(jù)是基于WGS-84大地坐標系的數(shù)據(jù)[5]。要把地球表面上的物體和現(xiàn)象繪制到平面圖紙上,就必須解決球面與平面之間的矛盾。本文數(shù)據(jù)處理采用高斯—克呂格投影。原理是將依橢圓柱橫切于地球托球體上,以橢圓柱面與橢球表面的切線為中心經(jīng)線,然后根據(jù)一定的約束條件,將中央經(jīng)線兩側(cè)規(guī)定范圍內(nèi)的點投影到橢圓柱面上,從而得到點的高斯投影,如圖2。
設投影帶的主子午線經(jīng)度為L0,地表P點的經(jīng)緯度為(L, B),其高斯平面坐標為(x, y),則有高斯投影正算公式如下:
,a和b分別為地球橢球體的長短半軸。
公式(3)中,X為子午線弧長,公式中的參數(shù)值如下:
c0=636 744 9.145 823 4,c1=320 09.818 530 6,c2=133.959 889 7,c3=0.697 548 3,c4=0.003 934 1。
利用高斯投影計算公式,在MATLAB中編程進行數(shù)據(jù)轉(zhuǎn)換,結果如表2。
表2 數(shù)據(jù)轉(zhuǎn)換結果
經(jīng)過MATLAB下編程的轉(zhuǎn)換,獲得了全部軌道位置信息數(shù)據(jù)的平面坐標。并用MATLAB做圖,將軌道位置信息數(shù)據(jù)依次相連,即可獲得軌道線路的數(shù)字軌道地圖。
生成數(shù)字軌道地圖后,地圖的軌道位置信息數(shù)據(jù)需要合適的平臺進行管理。數(shù)據(jù)管理軟硬件平臺整體架構如圖3。
圖3 軟硬件平臺架構
計算機作為開發(fā)平臺和主機,通過串口與嵌入式開發(fā)平臺S3C44B0的串口相連,將交叉編譯得到的操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng)傳送給嵌入式系統(tǒng)。嵌入式系統(tǒng)作為終端接收主機PC端傳送過來的數(shù)據(jù)并進行控制,通過串口給予主機計算機反饋,在主機PC端通過超級終端可以進行監(jiān)測和控制。
PC端建立Linux的交叉編譯環(huán)境cygw in,在Linux環(huán)境下將嵌入式實時操作系統(tǒng)uClinux和嵌入式數(shù)據(jù)庫SQLite進行編譯,生成嵌入式系統(tǒng)可以識別的二進制文件(鏡像文件),利用嵌入式系統(tǒng)的armboot將其載入嵌入式開發(fā)板運行。
μClinux是一款免費開源的操作系統(tǒng),適用于多種嵌入式系統(tǒng)平臺。
到http://www.μClinux.org/網(wǎng)站下載μClinux源碼。本文用的是μClinux20031103.tgz版本,將獲得的源碼壓縮包μClinux20031103.tgz解壓,并在目錄下生成μClinux-dist的文件夾,這個文件夾就是要進行編譯的μClinux操作系統(tǒng)文件夾。
生成操作系統(tǒng)文件后,進行操作系統(tǒng)內(nèi)核的編譯。內(nèi)核是操作系統(tǒng)的內(nèi)部核心程序,它向外部提供對計算機設備的核心管理調(diào)用。而編譯內(nèi)核的目的主要是改變內(nèi)核的默認選項,編譯內(nèi)核有3個指令可以使用,可以用其中的任意一個進行編譯。3個指令如下:
(1)#make con fig(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)。
(2)#make menuconfig(基于文本選單的配置界面,字符終端下推薦使用)。
(3)#make xconfig(基于圖形窗口模式的配置界面,Xw indow下推薦使用)。
本文采用make menuconfig命令進行編譯。當內(nèi)核的編譯工作完成之后,會在/μClinux-dist/images目錄下看到3個文件:linux-bootram.bin,linuxbootrom.bin和rom fs.img。linux-bootram.bin和linux-bootrom.bin是要得到的可以燒寫在嵌入式系統(tǒng)中運行的文件,linux-bootram.bin可以燒寫到嵌入式系統(tǒng)的SDRAM里運行,linux-bootrom.bin可以燒寫在flash里運行。經(jīng)過以上步驟,就獲得了編譯好的鏡像文件并且將其燒寫到嵌入式系統(tǒng)里運行。
當命令行出現(xiàn)之后,操作系統(tǒng)已經(jīng)啟動。在命令行中,可以用熟悉的ls等命令查看嵌入式系統(tǒng)中μClinux的情況并進行操作。這樣,操作系統(tǒng)μClinux就在S3C44B0的嵌入式平臺上移植完畢。
本文使用的是SQLite-2.8.15.tar.gz版本,到Linux下的vi編輯器來對μClinux和SQLite進行編輯,編輯以下3個文件對內(nèi)核設置進行修改:μ Cli-nux-dist/user/Makefile ;μClinux-dist/config/Configure.help; μClinux-dist/config/config.in。
在對SQLite的修改中,修改或添加以下4個文件,可以完成SQLite在μClinux下的編譯:
SQLite/main.mk (修改);
SQLite/Makefile (添加);
SQLite/src/os.c (修改);
SQLite/src/shell.c (修改)。
修改的具體步驟本文不再贅述,通過對SQLite數(shù)據(jù)庫匹配于嵌入式系統(tǒng)S3C44B0和操作系統(tǒng)μClinux的修改,即可進行編譯。編譯過程中,在make menuconfig的user app lication部分可以看到μClinux內(nèi)核中剛添加的Database→菜單,如圖4,進入并選擇SQLite,保存退出后按原先的步驟重新編譯內(nèi)核。
對SQLite的修改完成后,uClinux中已經(jīng)加入了嵌入式數(shù)據(jù)庫SQLite,再次編譯,在μClinuxdist/images下面就有編譯生成的rom fs文件系統(tǒng)了,這個就是需要的包含有SQLite的rom fs,可以燒寫在嵌入式系統(tǒng)上運行。在板子上也可以對數(shù)據(jù)庫進行“select * from”操作。經(jīng)過如上過程,即完成了SQLite的移植[7]。通過以上編譯和移植的過程,實現(xiàn)了ARM 7+μClinux+SQLite的嵌入式數(shù)字軌道地圖數(shù)據(jù)管理平臺。
本論文分析數(shù)字軌道地圖的作用和組成部分,給出GPS數(shù)據(jù)的測量和處理方法,并實現(xiàn)了數(shù)字軌道地圖的嵌入式數(shù)據(jù)管理平臺的軟硬件設計。通過嵌入式操作系統(tǒng)μC linux和嵌入式數(shù)據(jù)庫SQLite在基于ARM 7的嵌入式開發(fā)板S3C44B0上的移植,完成軟硬件平臺搭建,利用ARM 7+μClinux+SQLite的組合建立數(shù)字軌道地圖的嵌入式數(shù)據(jù)管理平臺,為數(shù)字軌道地圖的實現(xiàn)提供了重要的基礎。嵌入式數(shù)字軌道地圖數(shù)據(jù)管理平臺體積小、成本低、運行速度快,具有重要應用價值。在此平臺基礎上,可為深入開展精確而且可靠的列車衛(wèi)星定位算法等研究提供有力的技術支持。
[1]D J Horgan. Verification and validation: the West Coast Mainline railway upgrade programme[J]. Journal of Rail and Rapid Transit,2005(1):11-20.
[2]胡 浪. LOCOPROL:低運量線路的低成本高效信號系統(tǒng)方案[J]. 世界軌道交通,2006(7):48-49.
[3]李 凱. 青藏鐵路ITCS信號控制系統(tǒng)方案[J]. 中國鐵路,2005(7):31-36.
[4]劉大杰,施一民. 全球定位系統(tǒng)的原理與數(shù)據(jù)處理[M]. 上海:同濟大學出版社,1998,8.
[5]楊國林. GPS 技術在導航電子地圖中的應用研究[J]. 高校理科研究,2006(3):69-70.
[6]周 媛. 基于S3C2510A和uCl inux的嵌入式系統(tǒng)研究與開發(fā)[D]. 北京:北京交通大學,2007,6.
[7]胡菲菲. SQLite在嵌入式電子地圖中的應用[J]. 工程地質(zhì)計算機應用,2008(2):31-36.