王飞, 岳林, 赵晓宇, 杨森, 王斐武
(中国铁道科学研究院集团有限公司 通信信号研究所,北京 100081)
列车运行控制系统依据线路客观条件和实际状况,对列车运行状态进行监控,是保障列车安全高效运行的核心技术装备[1-2]。目前,我国铁路最成熟的列控技术是CTCS-2级和CTCS-3级列控系统,但为了进一步提高列车运行速度、缩短追踪间隔、减少建设运营维护成本,提出下一代列控系统——CTCS-4 级列控系统。该系统的关键技术包括移动闭塞、基于卫星列车精确定位、基于卫星列车完整性检查、高速铁路车地双向传输等技术[3-4]。在基于卫星列车精确定位技术中,CTCS-4级列控系统移除了大量地面设备,包括采用传统轨道电路来实现列车占用检查及定位等设备,而采用卫星定位、速度传感器以及定位实体应答器结合数字电子地图,以实现列车多源融合定位[5-6]。
针对基于卫星列车精确定位技术,车载设备通过车地无线通信网络与地面临时限速服务器(TSRS)建立通信,实现电子地图及卫星差分数据的实时在线请求、接收、拼接、使用和存储等功能[5]。在接收到TSRS 发送的电子地图文件时,需要对其进行校验,若校验通过后才能保存接收的电子地图文件;在需要使用地图文件时可以快速找到相应的文件数据。
FLASH 存储器(简称FLASH)是一种常用的嵌入式系统存储器,具有防振、不容易丢失、节电存储等特点[7]。目前具备成熟技术的车载设备主处理平台通常选用FLASH 来存储业务数据及系统参数。因此,考虑将接收到的电子地图存于FLASH 中,并对电子地图的存取问题展开探讨,给出一种高效且适用于车载设备的存取方案。
一般意义上,所谓电子地图是指将地图用数字形式表示,而轨道地图是将整个轨道网络拓扑结构用数字形式表示,主要包含地图索引文件、轨道地理信息文件、固定应用数据文件[8]。其中,地图索引文件包含TSRS管辖的每个车站的信息及前后车站的链接关系;轨道地理信息文件涵盖了卫星定位经纬度数据与轨道位置数据间的对应关系;固定应用数据文件包含区间和站内的应答器(包含实体应答器和虚拟应答器)、车站内道岔、管辖边界。固定应用数据是车载设备在区间和站内定位判断所处轨道,以及触发虚拟应答器报文的依据。同时,应答器中的数据是车载设备运行所需的基础数据。
电子地图主要作用是辅助卫星确定列车在轨道上的精确位置,即卫星定位获得的列车位置与车载设备存储的电子地图中的位置进行匹配,确保列车定位精度和列控系统实时精确控制[9]。电子地图辅助定位示意见图1。
图1 电子地图辅助定位示意图
通常FLASH 由若干块单元组成,每个块单元又由若干Page 页组成,且以块单元进行数据擦除操作,以Page 页的方式进行数据读写。FLASH 的写操作很特殊,必须是先擦除,然后才能写入数据,这是由于FLASH执行写编程指令时,只有数据为“1”时才能写入,为“0”时无法写入,而擦除指令只有数据为“0”时才能擦除,为“1”时不执行。而且,擦除操作是以块单元进行操作,因此对指定位置写入的数据进行擦除操作时,只能对整个块单元数据擦除[10]。
在此探讨的列控车载设备中用于电子地图储存的FLASH大小为3.6 GB,按块(Block)为最小操作单位,大小为512 Byte,擦除仅支持最小2 MB数据擦除。依据FLASH 的存储特点,读、写、擦操作单位最好是1 个Block大小的整数倍,可以保障在更新或删除某些数据时不会导致其他数据被修改。但针对小于1个Block空间的文件,会造成FLASH存储空间的浪费。为简化文件管理方案和避免因共享1个Block而导致操作不同文件时相互影响,在方案设计时将不同文件存储在不同的Block空间内。同时,对该FLASH的读、写、擦操作时间进行测试统计(见图2、图3),为存取方案设计提供参考。
图2 FLASH操作的总耗时统计
图3 单个Block操作的耗时统计
图2 为随着1 次读、写、擦Block 个数增多时,读、写、擦总耗时的统计,其中擦除是按2 MB的整数倍来统计总耗时。图3为随着1次读、写、擦Block个数增多时,单个Block读、写、擦耗时的统计,其中擦除是按2 MB的整数倍来统计单个Block耗时。由图2和图3可以看出,1次读、写、擦操作的Block是按整数倍增长的。同时,对比图2和图3可知,对多个Block的读、写操作时间并不是对单个Block操作时间的叠加,同时对多个Block进行读、写时间要比同样数量单独操作的时间少很多。擦除操作不管是总耗时还是单个Block耗时变化都不大,这是由于擦除最小单位是2 MB,擦除1 个Block 时,是对2 MB数据进行处理,而不是对512 Byte数据处理,也就表现为不管是总耗时还是单个Block耗时变化都不大。而对于单个Block擦除时间出现急剧下降的情况,是由于同时擦除16 384 个Block,数据量为8 MB,总的擦除时间约为12 ms,则2 MB的擦除时间约为3 ms。
通常FLASH 芯片管理根据FLASH 容量、文件数目和大小,将FLASH固定划分为几个存储区域,再对每个文件对应的起始地址加以记录,当需要对某文件进行读、写、擦等操作时,先查到其对应的起始地址和区域大小,然后到该地址进行数据读、写、擦等操作。该方案简单、容易实现,但要预估文件的大小进行分配,如果预估不准确,将导致无法正确存储或者浪费空间资源。
以实际情况考虑,铁路线上的TSRS 及车站个数是一定的,可以假设某条线路上有3个TSRS、50个车站、10 个中继站。其中,地图索引文件描述的是1 个TSRS管辖范围内每个车站的信息及前后车站的链接关系,文件大小不超过10 kB。轨道地理信息文件和固定应用数据文件描述的是1 个车站内关键点(如应答器、道岔、信号机等)的精确卫星数据,这2个文件相对索引文件较大,其中最大文件估计为64 kB。按最大文件数据计算,估算该铁路电子地图数据总量为3×10 kB+60×(64 kB×2)=7.53 MB,取整为8 MB。因此,即使将整条线路数据全部存储,都用不完FLASH 的3.6 GB 存储空间,必然会有很多空间剩余。
因此,对于FLASH 可以不用考虑存储空间是否浪费,着重考虑如何快速存储读取数据,满足车载设备在线实时操作的需求。目前考虑电子地图存储任务在100 ms内完成,并且不影响其他任务的执行。
根据FLASH管理机制以及电子地图不同文件特点,同时考虑地图储存过程耗时情况来设计存取方案,FLASH 存储器框架结构见图4。(1)针对地图索引文件、轨道地理信息文件和固定应用数据文件大小,将FLASH存储区划分为3个存储空间;(2)每个存储空间划分为文件索引区和数据存储区,其中,文件索引区存放文件在存储区的位置以及各存储块的使用情况;数据存储区存放接收的电子地图二进制文件;(3)将数据存储区再进行划分,将N个小块聚集为1个大块(大小为512 Byte×N)视为1 个管理单元,该N个小块应满足足够存储1个文件,且在该文件发生改变时也能满足覆盖存储需求,而不需要再找其他空闲存储空间。
图4 FLASH存储器框架结构
该方案的优缺点如下:
(1)针对不同文件划分不同存储空间,有利于针对不同文件快速查找相应的存储空间,有效减少查找遍历文件次数。
(2)数据存储区划分大块存储区,不仅能减少文件索引区对数据储存区存储状态的描述,还可有效规避数据删除造成的碎片以及碎片回收机制的考量,简化了管理策略。
(3)该方案的不足之处在于:需要提前预估每个文件的大小,以便准确划分各存储区大小,不利于灵活存储数据。
根据以上文件管理方案,FLASH 文件索引区组织结构见表1,其中,FLASH块列表描述数据存储区根据实际文件大小划分的大块分区的占用情况,“1”表示该大区已占用,“0”表示该大区未占用,0xFF 表示该大区坏死,不能使用。
表1 文件索引组织结构
表1中的文件描述根据文件描述结构进行文件大小配置,并依次排列存放。任何一个数据文件更新之前,都要更新对应的文件描述字段信息,确定该文件描述状态、文件类型和存储起始位置。对应的文件描述结构见表2。
表2 文件描述结构
确定了索引结构后,车载设备从FLASH 中读、写电子地图文件的具体流程见图5。车载设备上电启机后,首先从FLASH存储器划分的地图索引文件存储区、轨道地理信息文件存储区、固定应用数据文件存储区中读取文件索引区,获得存储占用情况列表和文件描述列表,然后进入等待读、写命令流程。
图5 FLASH中文件读写流程
由于车载设备发送给FLASH 存储器的读、写命令中包含文件类型,因此在收到读、写命令时可直接定位到不同文件存储区,获得不同文件存储占用情况列表和文件描述列表,在内存中对2 个列表遍历搜索操作,获得存储区占用情况以及文件存储起始块编号信息,从而完成读、写操作。
地图索引文件、轨道地理信息文件、固定应用数据文件的读、写操作基本相同,以下读、写步骤适用于任意一种文件。
(1)写操作命令步骤如下:
步骤1:判断写命令是否结束,该步骤主要考虑到如果电子地图文件数据量较大,操作时间超过100 ms时,意味着1个周期处理不完该写命令操作,需要下个周期继续处理。
步骤2:根据待写入的文件信息,扫描文件描述列表判断是否有重命名文件,该步骤的实现主要通过文件类型、所属TSRS 设备编号和车站编号统一判断;如果找到重命名文件,则覆盖原有数据,更新文件描述列表以及存储占用情况列表。
步骤3:待写入的文件信息是一个新的文件,由于存放文件信息描述区的空间是一定的,则需要判断该文件描述列表是否有足够空间存放该文件的文件描述;如果文件描述列表没有足够存储空间去描述新的文件信息,需要删除无效的文件描述信息,更新文件描述列表。
步骤4:文件描述列表有足够空间存放该文件的文件描述,但是数据存储区的空间也是一定的,同样需要确定数据存储区是否有足够空间写该文件;如果数据储存区没有足够存储空间去存储新的文件数据,需要删除列车已通过的TSRS 区域的地图文件,更新文件描述列表及存储占用情况列表。尽管该方案中FLASH有足够空间存放电子地图,但出于对程序的灵活性及全面性考虑仍需进行该逻辑的判断。
步骤5:数据存储区有足够空间写该文件,则搜索存储占用情况列表中第1个未占用的大区号,同时更新文件描述列表,从文件描述起始块号写入数据,最后更新存储占用情况列表。
(2)读操作命令步骤如下:
步骤1:判断读命令是否结束,该步骤主要考虑到如果电子地图文件数据量较大,操作时间超过100 ms时,意味着1个周期处理不完该读命令操作,需要下个周期继续处理。
步骤2:根据待读取的文件信息,扫描文件描述列表判断是否有该文件,如果没有该文件返回失败;如果找到该文件,同时在该文件的描述列表中找到文件占用的起始块号和文件大小,然后从该起始块号读取相应大小的文件数据。
对CTCS-4级列控系统的研究目前处于铁路信号领域的前沿,很多新提出的关键技术在世界范围内还没有成熟应用,例如基于电子地图辅助卫星实现列车精确定位技术中,电子地图如何生成以及如何存取等相关技术没有统一的技术标准规范,仍需开展大量研究工作。针对电子地图存取问题,结合FLASH操作方法及电子地图特点,设计一套有效的文件存取方案,为车载设备运行期间高效存储和读取电子地图提供一种可执行的解决方案。