王飛, 岳林, 趙曉宇, 楊森, 王斐武
(中國鐵道科學(xué)研究院集團有限公司 通信信號研究所,北京 100081)
列車運行控制系統(tǒng)依據(jù)線路客觀條件和實際狀況,對列車運行狀態(tài)進行監(jiān)控,是保障列車安全高效運行的核心技術(shù)裝備[1-2]。目前,我國鐵路最成熟的列控技術(shù)是CTCS-2級和CTCS-3級列控系統(tǒng),但為了進一步提高列車運行速度、縮短追蹤間隔、減少建設(shè)運營維護成本,提出下一代列控系統(tǒng)——CTCS-4 級列控系統(tǒng)。該系統(tǒng)的關(guān)鍵技術(shù)包括移動閉塞、基于衛(wèi)星列車精確定位、基于衛(wèi)星列車完整性檢查、高速鐵路車地雙向傳輸?shù)燃夹g(shù)[3-4]。在基于衛(wèi)星列車精確定位技術(shù)中,CTCS-4級列控系統(tǒng)移除了大量地面設(shè)備,包括采用傳統(tǒng)軌道電路來實現(xiàn)列車占用檢查及定位等設(shè)備,而采用衛(wèi)星定位、速度傳感器以及定位實體應(yīng)答器結(jié)合數(shù)字電子地圖,以實現(xiàn)列車多源融合定位[5-6]。
針對基于衛(wèi)星列車精確定位技術(shù),車載設(shè)備通過車地無線通信網(wǎng)絡(luò)與地面臨時限速服務(wù)器(TSRS)建立通信,實現(xiàn)電子地圖及衛(wèi)星差分數(shù)據(jù)的實時在線請求、接收、拼接、使用和存儲等功能[5]。在接收到TSRS 發(fā)送的電子地圖文件時,需要對其進行校驗,若校驗通過后才能保存接收的電子地圖文件;在需要使用地圖文件時可以快速找到相應(yīng)的文件數(shù)據(jù)。
FLASH 存儲器(簡稱FLASH)是一種常用的嵌入式系統(tǒng)存儲器,具有防振、不容易丟失、節(jié)電存儲等特點[7]。目前具備成熟技術(shù)的車載設(shè)備主處理平臺通常選用FLASH 來存儲業(yè)務(wù)數(shù)據(jù)及系統(tǒng)參數(shù)。因此,考慮將接收到的電子地圖存于FLASH 中,并對電子地圖的存取問題展開探討,給出一種高效且適用于車載設(shè)備的存取方案。
一般意義上,所謂電子地圖是指將地圖用數(shù)字形式表示,而軌道地圖是將整個軌道網(wǎng)絡(luò)拓撲結(jié)構(gòu)用數(shù)字形式表示,主要包含地圖索引文件、軌道地理信息文件、固定應(yīng)用數(shù)據(jù)文件[8]。其中,地圖索引文件包含TSRS管轄的每個車站的信息及前后車站的鏈接關(guān)系;軌道地理信息文件涵蓋了衛(wèi)星定位經(jīng)緯度數(shù)據(jù)與軌道位置數(shù)據(jù)間的對應(yīng)關(guān)系;固定應(yīng)用數(shù)據(jù)文件包含區(qū)間和站內(nèi)的應(yīng)答器(包含實體應(yīng)答器和虛擬應(yīng)答器)、車站內(nèi)道岔、管轄邊界。固定應(yīng)用數(shù)據(jù)是車載設(shè)備在區(qū)間和站內(nèi)定位判斷所處軌道,以及觸發(fā)虛擬應(yīng)答器報文的依據(jù)。同時,應(yīng)答器中的數(shù)據(jù)是車載設(shè)備運行所需的基礎(chǔ)數(shù)據(jù)。
電子地圖主要作用是輔助衛(wèi)星確定列車在軌道上的精確位置,即衛(wèi)星定位獲得的列車位置與車載設(shè)備存儲的電子地圖中的位置進行匹配,確保列車定位精度和列控系統(tǒng)實時精確控制[9]。電子地圖輔助定位示意見圖1。
圖1 電子地圖輔助定位示意圖
通常FLASH 由若干塊單元組成,每個塊單元又由若干Page 頁組成,且以塊單元進行數(shù)據(jù)擦除操作,以Page 頁的方式進行數(shù)據(jù)讀寫。FLASH 的寫操作很特殊,必須是先擦除,然后才能寫入數(shù)據(jù),這是由于FLASH執(zhí)行寫編程指令時,只有數(shù)據(jù)為“1”時才能寫入,為“0”時無法寫入,而擦除指令只有數(shù)據(jù)為“0”時才能擦除,為“1”時不執(zhí)行。而且,擦除操作是以塊單元進行操作,因此對指定位置寫入的數(shù)據(jù)進行擦除操作時,只能對整個塊單元數(shù)據(jù)擦除[10]。
在此探討的列控車載設(shè)備中用于電子地圖儲存的FLASH大小為3.6 GB,按塊(Block)為最小操作單位,大小為512 Byte,擦除僅支持最小2 MB數(shù)據(jù)擦除。依據(jù)FLASH 的存儲特點,讀、寫、擦操作單位最好是1 個Block大小的整數(shù)倍,可以保障在更新或刪除某些數(shù)據(jù)時不會導(dǎo)致其他數(shù)據(jù)被修改。但針對小于1個Block空間的文件,會造成FLASH存儲空間的浪費。為簡化文件管理方案和避免因共享1個Block而導(dǎo)致操作不同文件時相互影響,在方案設(shè)計時將不同文件存儲在不同的Block空間內(nèi)。同時,對該FLASH的讀、寫、擦操作時間進行測試統(tǒng)計(見圖2、圖3),為存取方案設(shè)計提供參考。
圖2 FLASH操作的總耗時統(tǒng)計
圖3 單個Block操作的耗時統(tǒng)計
圖2 為隨著1 次讀、寫、擦Block 個數(shù)增多時,讀、寫、擦總耗時的統(tǒng)計,其中擦除是按2 MB的整數(shù)倍來統(tǒng)計總耗時。圖3為隨著1次讀、寫、擦Block個數(shù)增多時,單個Block讀、寫、擦耗時的統(tǒng)計,其中擦除是按2 MB的整數(shù)倍來統(tǒng)計單個Block耗時。由圖2和圖3可以看出,1次讀、寫、擦操作的Block是按整數(shù)倍增長的。同時,對比圖2和圖3可知,對多個Block的讀、寫操作時間并不是對單個Block操作時間的疊加,同時對多個Block進行讀、寫時間要比同樣數(shù)量單獨操作的時間少很多。擦除操作不管是總耗時還是單個Block耗時變化都不大,這是由于擦除最小單位是2 MB,擦除1 個Block 時,是對2 MB數(shù)據(jù)進行處理,而不是對512 Byte數(shù)據(jù)處理,也就表現(xiàn)為不管是總耗時還是單個Block耗時變化都不大。而對于單個Block擦除時間出現(xiàn)急劇下降的情況,是由于同時擦除16 384 個Block,數(shù)據(jù)量為8 MB,總的擦除時間約為12 ms,則2 MB的擦除時間約為3 ms。
通常FLASH 芯片管理根據(jù)FLASH 容量、文件數(shù)目和大小,將FLASH固定劃分為幾個存儲區(qū)域,再對每個文件對應(yīng)的起始地址加以記錄,當需要對某文件進行讀、寫、擦等操作時,先查到其對應(yīng)的起始地址和區(qū)域大小,然后到該地址進行數(shù)據(jù)讀、寫、擦等操作。該方案簡單、容易實現(xiàn),但要預(yù)估文件的大小進行分配,如果預(yù)估不準確,將導(dǎo)致無法正確存儲或者浪費空間資源。
以實際情況考慮,鐵路線上的TSRS 及車站個數(shù)是一定的,可以假設(shè)某條線路上有3個TSRS、50個車站、10 個中繼站。其中,地圖索引文件描述的是1 個TSRS管轄范圍內(nèi)每個車站的信息及前后車站的鏈接關(guān)系,文件大小不超過10 kB。軌道地理信息文件和固定應(yīng)用數(shù)據(jù)文件描述的是1 個車站內(nèi)關(guān)鍵點(如應(yīng)答器、道岔、信號機等)的精確衛(wèi)星數(shù)據(jù),這2個文件相對索引文件較大,其中最大文件估計為64 kB。按最大文件數(shù)據(jù)計算,估算該鐵路電子地圖數(shù)據(jù)總量為3×10 kB+60×(64 kB×2)=7.53 MB,取整為8 MB。因此,即使將整條線路數(shù)據(jù)全部存儲,都用不完FLASH 的3.6 GB 存儲空間,必然會有很多空間剩余。
因此,對于FLASH 可以不用考慮存儲空間是否浪費,著重考慮如何快速存儲讀取數(shù)據(jù),滿足車載設(shè)備在線實時操作的需求。目前考慮電子地圖存儲任務(wù)在100 ms內(nèi)完成,并且不影響其他任務(wù)的執(zhí)行。
根據(jù)FLASH管理機制以及電子地圖不同文件特點,同時考慮地圖儲存過程耗時情況來設(shè)計存取方案,F(xiàn)LASH 存儲器框架結(jié)構(gòu)見圖4。(1)針對地圖索引文件、軌道地理信息文件和固定應(yīng)用數(shù)據(jù)文件大小,將FLASH存儲區(qū)劃分為3個存儲空間;(2)每個存儲空間劃分為文件索引區(qū)和數(shù)據(jù)存儲區(qū),其中,文件索引區(qū)存放文件在存儲區(qū)的位置以及各存儲塊的使用情況;數(shù)據(jù)存儲區(qū)存放接收的電子地圖二進制文件;(3)將數(shù)據(jù)存儲區(qū)再進行劃分,將N個小塊聚集為1個大塊(大小為512 Byte×N)視為1 個管理單元,該N個小塊應(yīng)滿足足夠存儲1個文件,且在該文件發(fā)生改變時也能滿足覆蓋存儲需求,而不需要再找其他空閑存儲空間。
圖4 FLASH存儲器框架結(jié)構(gòu)
該方案的優(yōu)缺點如下:
(1)針對不同文件劃分不同存儲空間,有利于針對不同文件快速查找相應(yīng)的存儲空間,有效減少查找遍歷文件次數(shù)。
(2)數(shù)據(jù)存儲區(qū)劃分大塊存儲區(qū),不僅能減少文件索引區(qū)對數(shù)據(jù)儲存區(qū)存儲狀態(tài)的描述,還可有效規(guī)避數(shù)據(jù)刪除造成的碎片以及碎片回收機制的考量,簡化了管理策略。
(3)該方案的不足之處在于:需要提前預(yù)估每個文件的大小,以便準確劃分各存儲區(qū)大小,不利于靈活存儲數(shù)據(jù)。
根據(jù)以上文件管理方案,F(xiàn)LASH 文件索引區(qū)組織結(jié)構(gòu)見表1,其中,F(xiàn)LASH塊列表描述數(shù)據(jù)存儲區(qū)根據(jù)實際文件大小劃分的大塊分區(qū)的占用情況,“1”表示該大區(qū)已占用,“0”表示該大區(qū)未占用,0xFF 表示該大區(qū)壞死,不能使用。
表1 文件索引組織結(jié)構(gòu)
表1中的文件描述根據(jù)文件描述結(jié)構(gòu)進行文件大小配置,并依次排列存放。任何一個數(shù)據(jù)文件更新之前,都要更新對應(yīng)的文件描述字段信息,確定該文件描述狀態(tài)、文件類型和存儲起始位置。對應(yīng)的文件描述結(jié)構(gòu)見表2。
表2 文件描述結(jié)構(gòu)
確定了索引結(jié)構(gòu)后,車載設(shè)備從FLASH 中讀、寫電子地圖文件的具體流程見圖5。車載設(shè)備上電啟機后,首先從FLASH存儲器劃分的地圖索引文件存儲區(qū)、軌道地理信息文件存儲區(qū)、固定應(yīng)用數(shù)據(jù)文件存儲區(qū)中讀取文件索引區(qū),獲得存儲占用情況列表和文件描述列表,然后進入等待讀、寫命令流程。
圖5 FLASH中文件讀寫流程
由于車載設(shè)備發(fā)送給FLASH 存儲器的讀、寫命令中包含文件類型,因此在收到讀、寫命令時可直接定位到不同文件存儲區(qū),獲得不同文件存儲占用情況列表和文件描述列表,在內(nèi)存中對2 個列表遍歷搜索操作,獲得存儲區(qū)占用情況以及文件存儲起始塊編號信息,從而完成讀、寫操作。
地圖索引文件、軌道地理信息文件、固定應(yīng)用數(shù)據(jù)文件的讀、寫操作基本相同,以下讀、寫步驟適用于任意一種文件。
(1)寫操作命令步驟如下:
步驟1:判斷寫命令是否結(jié)束,該步驟主要考慮到如果電子地圖文件數(shù)據(jù)量較大,操作時間超過100 ms時,意味著1個周期處理不完該寫命令操作,需要下個周期繼續(xù)處理。
步驟2:根據(jù)待寫入的文件信息,掃描文件描述列表判斷是否有重命名文件,該步驟的實現(xiàn)主要通過文件類型、所屬TSRS 設(shè)備編號和車站編號統(tǒng)一判斷;如果找到重命名文件,則覆蓋原有數(shù)據(jù),更新文件描述列表以及存儲占用情況列表。
步驟3:待寫入的文件信息是一個新的文件,由于存放文件信息描述區(qū)的空間是一定的,則需要判斷該文件描述列表是否有足夠空間存放該文件的文件描述;如果文件描述列表沒有足夠存儲空間去描述新的文件信息,需要刪除無效的文件描述信息,更新文件描述列表。
步驟4:文件描述列表有足夠空間存放該文件的文件描述,但是數(shù)據(jù)存儲區(qū)的空間也是一定的,同樣需要確定數(shù)據(jù)存儲區(qū)是否有足夠空間寫該文件;如果數(shù)據(jù)儲存區(qū)沒有足夠存儲空間去存儲新的文件數(shù)據(jù),需要刪除列車已通過的TSRS 區(qū)域的地圖文件,更新文件描述列表及存儲占用情況列表。盡管該方案中FLASH有足夠空間存放電子地圖,但出于對程序的靈活性及全面性考慮仍需進行該邏輯的判斷。
步驟5:數(shù)據(jù)存儲區(qū)有足夠空間寫該文件,則搜索存儲占用情況列表中第1個未占用的大區(qū)號,同時更新文件描述列表,從文件描述起始塊號寫入數(shù)據(jù),最后更新存儲占用情況列表。
(2)讀操作命令步驟如下:
步驟1:判斷讀命令是否結(jié)束,該步驟主要考慮到如果電子地圖文件數(shù)據(jù)量較大,操作時間超過100 ms時,意味著1個周期處理不完該讀命令操作,需要下個周期繼續(xù)處理。
步驟2:根據(jù)待讀取的文件信息,掃描文件描述列表判斷是否有該文件,如果沒有該文件返回失?。蝗绻业皆撐募?,同時在該文件的描述列表中找到文件占用的起始塊號和文件大小,然后從該起始塊號讀取相應(yīng)大小的文件數(shù)據(jù)。
對CTCS-4級列控系統(tǒng)的研究目前處于鐵路信號領(lǐng)域的前沿,很多新提出的關(guān)鍵技術(shù)在世界范圍內(nèi)還沒有成熟應(yīng)用,例如基于電子地圖輔助衛(wèi)星實現(xiàn)列車精確定位技術(shù)中,電子地圖如何生成以及如何存取等相關(guān)技術(shù)沒有統(tǒng)一的技術(shù)標準規(guī)范,仍需開展大量研究工作。針對電子地圖存取問題,結(jié)合FLASH操作方法及電子地圖特點,設(shè)計一套有效的文件存取方案,為車載設(shè)備運行期間高效存儲和讀取電子地圖提供一種可執(zhí)行的解決方案。