陳德旺,魏天磊,侯 贊
(北京交通大學 軌道交通控制與安全國家重點實驗室,北京 100044)
目前,很多國家在研究數字軌道地圖技術,歐洲一些國家以及美國已經在應用GPS技術生成數字軌道地圖數據庫方面進行了一系列研究,并根據各個地區的不同情況提出了不同的數字軌道地圖的設計方法[1~2]。
我國青藏鐵路采用的ITCS列車控制系統包括車載地圖數據庫,該數據庫含有線路描述數據、列車運行數據和通信數據等內容,利用數據庫中保存的這些數據,產生虛擬信號機,減少地面設備,實現車站無人值守[4]。
在軌道信息管理平臺方面,數字地圖可以通過多種平臺實現。嵌入式系統具有實時性和準確性的特點,是列車控制系統中設備的重要實現平臺。將數字地圖的大量軌道位置信息存儲在嵌入式系統中,利用嵌入式數據庫進行管理,相比于其他實現方式,有體積小、重量輕、成本低和穩定性好等優點,可以實時有效地提供列車定位信息。因此以嵌入式系統作為數字軌道地圖的實現平臺,將嵌入式技術和應用于軌道交通的數字地圖技術進行結合是基于通信的列車控制系統(CBTC)發展的趨勢,嵌入式技術可以為CBTC提供良好的技術支持。
數字軌道地圖的內容包括3個部分:軌道線路數據、鐵路專用數據和地形環境數據。而數字軌道地圖的生成則分為5個步驟:線路測繪、數據處理、數據庫創建、編譯、數據驗證[4]。如圖1。

圖1 數字軌道地圖生成流程
本文利用NovAtel衛星定位接收機測量彎道數據。接收機通過設置可以得到NMEA0183的定位數據,在眾多格式的信息中,通過對GPGGA格式的信息進行截取,就可以獲得經緯度等信息。以在北京交通大學主體育場內通過NovAtel衛星定位接收機接收到一些數據為例,在這些數據中,要提取的就是數據中間的緯度和經度信息,并且要通過數據處理把這些經緯度信息轉換為平面坐標,以便生成數字軌道地圖。
經緯度信息提取出來之后,存在經緯度數據格式問題,有度、度分、度秒3種,本實驗獲取的GPGGA數據中經緯度屬于[度.分.分]格式。如“39度57.0811分”。將本實驗中數據轉換為[度.度]格式。轉換完畢后,得到經緯度純度數數據。表1為前15個數據點經緯度(純度數)。

表1 前15個數據點經緯度(純度數)
數字軌道地圖的生成依賴于軌道位置信息數據,通過衛星定位測繪技術獲取。而GPS定位數據是基于WGS-84大地坐標系的數據[5]。要把地球表面上的物體和現象繪制到平面圖紙上,就必須解決球面與平面之間的矛盾。本文數據處理采用高斯—克呂格投影。原理是將依橢圓柱橫切于地球托球體上,以橢圓柱面與橢球表面的切線為中心經線,然后根據一定的約束條件,將中央經線兩側規定范圍內的點投影到橢圓柱面上,從而得到點的高斯投影,如圖2。

設投影帶的主子午線經度為L0,地表P點的經緯度為(L, B),其高斯平面坐標為(x, y),則有高斯投影正算公式如下:


,a和b分別為地球橢球體的長短半軸。
公式(3)中,X為子午線弧長,公式中的參數值如下:
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中編程進行數據轉換,結果如表2。

表2 數據轉換結果
經過MATLAB下編程的轉換,獲得了全部軌道位置信息數據的平面坐標。并用MATLAB做圖,將軌道位置信息數據依次相連,即可獲得軌道線路的數字軌道地圖。
生成數字軌道地圖后,地圖的軌道位置信息數據需要合適的平臺進行管理。數據管理軟硬件平臺整體架構如圖3。

圖3 軟硬件平臺架構
計算機作為開發平臺和主機,通過串口與嵌入式開發平臺S3C44B0的串口相連,將交叉編譯得到的操作系統和數據庫系統傳送給嵌入式系統。嵌入式系統作為終端接收主機PC端傳送過來的數據并進行控制,通過串口給予主機計算機反饋,在主機PC端通過超級終端可以進行監測和控制。
PC端建立Linux的交叉編譯環境cygw in,在Linux環境下將嵌入式實時操作系統uClinux和嵌入式數據庫SQLite進行編譯,生成嵌入式系統可以識別的二進制文件(鏡像文件),利用嵌入式系統的armboot將其載入嵌入式開發板運行。
μClinux是一款免費開源的操作系統,適用于多種嵌入式系統平臺。
到http://www.μClinux.org/網站下載μClinux源碼。本文用的是μClinux20031103.tgz版本,將獲得的源碼壓縮包μClinux20031103.tgz解壓,并在目錄下生成μClinux-dist的文件夾,這個文件夾就是要進行編譯的μClinux操作系統文件夾。
生成操作系統文件后,進行操作系統內核的編譯。內核是操作系統的內部核心程序,它向外部提供對計算機設備的核心管理調用。而編譯內核的目的主要是改變內核的默認選項,編譯內核有3個指令可以使用,可以用其中的任意一個進行編譯。3個指令如下:
(1)#make con fig(基于文本的最為傳統的配置界面,不推薦使用)。
(2)#make menuconfig(基于文本選單的配置界面,字符終端下推薦使用)。
(3)#make xconfig(基于圖形窗口模式的配置界面,Xw indow下推薦使用)。
本文采用make menuconfig命令進行編譯。當內核的編譯工作完成之后,會在/μClinux-dist/images目錄下看到3個文件:linux-bootram.bin,linuxbootrom.bin和rom fs.img。linux-bootram.bin和linux-bootrom.bin是要得到的可以燒寫在嵌入式系統中運行的文件,linux-bootram.bin可以燒寫到嵌入式系統的SDRAM里運行,linux-bootrom.bin可以燒寫在flash里運行。經過以上步驟,就獲得了編譯好的鏡像文件并且將其燒寫到嵌入式系統里運行。
當命令行出現之后,操作系統已經啟動。在命令行中,可以用熟悉的ls等命令查看嵌入式系統中μClinux的情況并進行操作。這樣,操作系統μClinux就在S3C44B0的嵌入式平臺上移植完畢。
本文使用的是SQLite-2.8.15.tar.gz版本,到Linux下的vi編輯器來對μClinux和SQLite進行編輯,編輯以下3個文件對內核設置進行修改:μ 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數據庫匹配于嵌入式系統S3C44B0和操作系統μClinux的修改,即可進行編譯。編譯過程中,在make menuconfig的user app lication部分可以看到μClinux內核中剛添加的Database→菜單,如圖4,進入并選擇SQLite,保存退出后按原先的步驟重新編譯內核。
對SQLite的修改完成后,uClinux中已經加入了嵌入式數據庫SQLite,再次編譯,在μClinuxdist/images下面就有編譯生成的rom fs文件系統了,這個就是需要的包含有SQLite的rom fs,可以燒寫在嵌入式系統上運行。在板子上也可以對數據庫進行“select * from”操作。經過如上過程,即完成了SQLite的移植[7]。通過以上編譯和移植的過程,實現了ARM 7+μClinux+SQLite的嵌入式數字軌道地圖數據管理平臺。

本論文分析數字軌道地圖的作用和組成部分,給出GPS數據的測量和處理方法,并實現了數字軌道地圖的嵌入式數據管理平臺的軟硬件設計。通過嵌入式操作系統μC linux和嵌入式數據庫SQLite在基于ARM 7的嵌入式開發板S3C44B0上的移植,完成軟硬件平臺搭建,利用ARM 7+μClinux+SQLite的組合建立數字軌道地圖的嵌入式數據管理平臺,為數字軌道地圖的實現提供了重要的基礎。嵌入式數字軌道地圖數據管理平臺體積小、成本低、運行速度快,具有重要應用價值。在此平臺基礎上,可為深入開展精確而且可靠的列車衛星定位算法等研究提供有力的技術支持。
[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:低運量線路的低成本高效信號系統方案[J]. 世界軌道交通,2006(7):48-49.
[3]李 凱. 青藏鐵路ITCS信號控制系統方案[J]. 中國鐵路,2005(7):31-36.
[4]劉大杰,施一民. 全球定位系統的原理與數據處理[M]. 上海:同濟大學出版社,1998,8.
[5]楊國林. GPS 技術在導航電子地圖中的應用研究[J]. 高校理科研究,2006(3):69-70.
[6]周 媛. 基于S3C2510A和uCl inux的嵌入式系統研究與開發[D]. 北京:北京交通大學,2007,6.
[7]胡菲菲. SQLite在嵌入式電子地圖中的應用[J]. 工程地質計算機應用,2008(2):31-36.