具体实施方式
为使本发明的目的、技术方案和优点更加清楚明确,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明主要用于解释本发明,但并不作为对本发明的限定。
实施例一
本发明实施例提供了一种软硬件并行解码装置,解决了解码过程中共因失效带来的安全问题,进一步避免了在解码、转储过程中由于报文错误引起的安全隐患,提高了应答器用户报文的安全性,达到了列车运行控制系统所要求的安全完整性等级。
如图1所示,一种软硬件并行解码装置,该装置包括:硬件解码模块101、软件解码模块102、报文比较模块103和数据包组成模块104;
其中,硬件解码模块101,用于对接收到的应答器传输报文进行解码,得到应答器用户报文;
软件解码模块102,用于对接收到的应答器传输报文进行解码,得到应答器用户报文;
报文比较模块103,用于比较所述硬件解码模块得到的应答器用户报文与软件解码模块得到的应答器用户报文是否一致;
数据包组成模块104,用于将所述应答器用户报文组成数据包发送给外设。
本实施例中的软硬件并行解码装置采用软件解码、硬件解码并行地完成对应答器传输报文的解码,并比较两个解码结果是否一致,这样就可以很好地解决了解码过程中共因失效带来的安全问题,并且本实施例中的软硬件并行解码装置的输出数据包是在软件解码、硬件解码的两个解码结果比较一致后,由上述两个解码结果组成的,这样就进一步避免了在解码、转储过程中由于报文错误引起的安全隐患。
具体在本实施例中,硬件解码模块101与软件解码模块102是同步地接收应答器传输报文,并同步地对接收到的应答器传输报文进行解码,并且硬件解码模块101与软件解码模块102接收应答器传输报文是在过点标识有效的前提下进行的,当列车在应答器的作用范围外时,过点标识保持低电平,表示无效;当列车在应答器的作用范围内时,过点标识转变为高电平,表示有效;
进一步地,当过点标识为低电平时,硬件解码模块101与软件解码模块102都不工作,即不接收应答器传输报文,不进行解码操作,以降低功耗;当过点标识为高电平时,硬件解码模块101与软件解码模块102启动解码流程,开始分别接收应答器传输报文;
并且在本实施例中,硬件解码专指用纯硬件的方法实现对接收到的应答器传输报文的解码,硬件解码模块都是由硬件逻辑电路组成,没有程序指令的控制,具体本实施例中的硬件解码模块采用可编程门阵列FPGA来实现,但不限于通过此方式来实现;
软件解码专指用软件方法实现对接收到的应答器传输报文的解码,其核心是软件解码子程序,通过被主程序调用来完成对应答器传输报文的解码,具体主程序通过调用各个子程序完成解码和输出工作,主要包括接收数据、转储数据、应答器传输报文解码、存储解码结果、记录系统工作状态以及与外设通信等,具体本实施例中的软件解码模块采用微控制单元MCU来实现,但不限于通过此方式来实现。
参见图2,较佳的,本实施例中的硬件解码模块101具体包括:
按位解码单元,用于接收到的应答器传输报文按位进行解码;
在本实施例中,应答器传输报文是按位进行传输的,因此按位解码单元具体从接收到第一位有效的应答器传输报文码开始一位一位地对应答器传输报文进行解码,即按位解码单元的解码窗口的移动步幅为1,作为最佳实施例,具体在实际应用中,解码窗口的移动步幅可以大于1;
解码判断单元,用于判断按位解码单元已解码的位数是否达到了预设的位数;
具体在本实施例中,当接收到的应答器传输报文为长报文时,则预设的位数可以定义为1100位,当接收到的应答器传输报文为短报文时,则预设的位数可以定义为435;
硬件用户报文存储单元,用于当解码判断单元的判断结果为“是”时,存储解码得到的所有的应答器用户报文。
软件解码模块102具体包括:
串-并转换单元,用于对接收到的应答器传输报文进行串-并转换,得到转换后的数据;
数据存储单元,用于存储串-并转换单元得到的数据;
数据判断单元,用于判断数据存储单元中的数据位数是否达到了预设的位数;
具体在本实施例中,当接收到的应答器传输报文为长报文时,则预设的位数可以定义为1100位,当接收到的应答器传输报文为短报文时,则预设的位数可以定义为435;
解码单元,用于当数据判断单元的判断结果为“是”时,对上述应答器传输报文进行解码,得到应答器用户报文;
软件用户报文存储单元,用于存储解码单元解码得到的应答器用户报文。
数据包组成模块104具体包括:
报文运算单元,用于对软件用户报文存储单元中的应答器用户报文进行运算;
组成单元,用于将报文运算单元得到的运算结果与硬件用户报文存储单元中的应答器用户报文组成数据包。
本实施例中的软硬件并行解码装置还包括:
查新模块,用于在报文比较模块之前,判断硬件用户报文存储单元与软件用户报文存储单元中是否都有新数据存入;
具体地,在查新模块的判断结果为“是”时,报文比较模块才比较硬件用户报文存储单元与软件用户报文存储单元中的应答器用户报文是否一致;
数据包缓存模块,用于缓存数据包组成单元组成的数据包,等待发送给外设;
具体本实施例中,数据包缓存模块中共有8个缓冲区,可以缓存8个数据包,这是因为在现有应答器组中的应答器个数最大为8个的情况下,可以保证不丢失应答器用户报文,而在实际应用中,可以根据应答器组中的应答器个数的变化相应地变化数据包缓存模块中的空间,如应答器个数为16个时,则数据包缓存模块中则可以有16个缓冲区,以保证不丢失应答器用户报文;
清空模块,用于在数据包组成模块直接将数据包发送给外设之后或数据包组成模块将数据包缓存到数据包缓存模块中之后,清空硬件用户报文存储单元与软件用户报文存储单元中的应答器用户报文。
进一步地,本实施例中的硬件解码模块在解码得到应答器用户报文的同时还可以产生应答器定位信息,共2种,一种直接以硬件电平的方式通知外设,为了提高应答器定位信息的抗干扰能力,通过RS485接口芯片输出应答器定位信息;另一种通过高速串口,把应答器定位信息发送给软件解码模块,由软件处理器发送给外设。
在本实施例中,当数据包缓存模块中有数据包时,则在接收到外设的请求后,将当前数据包发送给外设,并等待外设的下一次请求;当数据包缓存模块中没有数据包时,则在接收到外设的请求后,将硬件解码模块与软件解码模块的工作状态发送给外设。
本实施例中的软硬件并行解码装置采用软件解码、硬件解码并行地完成对应答器传输报文的解码,并比较两个解码结果是否一致,这样就可以很好地解决了解码过程中共因失效带来的安全问题,并且本实施例中的软硬件并行解码装置的输出数据包是在软件解码、硬件解码的两个解码结果比较一致后,由上述两个解码结果组成的,这样就进一步避免了在解码、转储过程中由于报文错误引起的安全隐患,提高了应答器用户报文的安全性,达到了列车运行控制系统所要求的安全完整性等级。
实施例二
本发明实施例提供了一种软硬件并行解码方法,如图3所示,具体如下:
S1:硬件处理器对接收到的应答器传输报文进行解码,得到应答器用户报文,同步的软件处理器也对接收到的应答器传输报文进行解码,得到应答器用户报文;
S2:比较所述硬件处理器解码得到的应答器用户报文与软件处理器解码得到的应答器用户报文是否一致;
若不一致,则返回S1;
若一致,则将所述应答器用户报文组成数据包,发送给外设。
其中,在本实施例中,硬件处理器对应答器传输报文进行解码专指用纯硬件的方法实现对接收到的应答器传输报文的解码,其解码操作都是由硬件逻辑电路完成,没有程序指令的控制,具体本实施例中的硬件处理器采用可编程门阵列FPGA来实现,但不限于通过此方式来实现;
软件处理器对应答器传输报文进行解码专指用软件方法实现对接收到的应答器传输报文的解码,其核心是软件解码子程序,通过被主程序调用来完成对应答器传输报文的解码,具体主程序通过调用各个子程序完成解码和输出工作,主要包括接收数据、转储数据、应答器传输报文解码、存储解码结果、记录系统工作状态以及与外设通信等,具体本实施例中的软件处理器采用微控制单元MCU来实现,但不限于通过此方式来实现。
本实施例中的软硬件并行解码方法采用软件解码、硬件解码并行地完成对应答器传输报文的解码,并比较两个解码结果是否一致,这样就可以很好地解决了解码过程中共因失效带来的安全问题,并且在本实施例中,在软件解码、硬件解码的两个解码结果比较一致后,由上述两个解码结果组成数据包发送给外设,这样就进一步避免了在解码、转储过程中由于报文错误引起的安全隐患。
进一步的,参见图4,软硬件并行解码方法的具体流程如下:
步骤300:硬件处理器与软件处理器同步地接收应答器传输报文;
在本实施例中,硬件处理器与软件处理器同步地接收应答器传输报文是在过点标识有效的前提下进行的,当列车在应答器的作用范围外时,过点标识保持低电平,表示无效;当列车在应答器的作用范围内时,过点标识转变为高电平,表示有效;
进一步地,当过点标识为低电平时,硬件处理器与软件处理器都不工作,以降低功耗;当过点标识为高电平时,硬件处理器与软件处理器启动解码流程,开始分别接收应答器传输报文。
步骤301:硬件处理器对接收的应答器传输报文按位进行解码;
在本实施例中,应答器传输报文是按位进行传输的,因此硬件处理器具体从接收到第一位有效的应答器传输报文码开始一位一位地对应答器传输报文进行解码,即硬件处理器的解码窗口的移动步幅为1,作为最佳实施例,具体在实际应用中,解码窗口的移动步幅可以大于1。
步骤302:硬件处理器判断当前已解码的位数是否达到了预设的位数,若否,则返回步骤301,若是,则执行步骤303;
在本实施例中,当接收到的应答器传输报文为长报文时,则预设的位数可以定义为1100位,当接收到的应答器传输报文为短报文时,则预设的位数可以定义为435。
步骤303:将解码得到的所有应答器用户报文存入硬件用户报文缓存器中;
步骤311:软件处理器对接收到的应答器传输报文进行串-并转换,存储到数据缓存中;
步骤312:判断数据缓存中的数据位数是否达到了预设的位数,若否,则继续执行步骤311,若是,则执行步骤313;
在本实施例中,当接收到的应答器传输报文为长报文时,则预设的位数可以定义为1100位,当接收到的应答器传输报文为短报文时,则预设的位数可以定义为435。
步骤313:对数据缓存中的数据进行解码,得到应答器用户报文;
步骤314:将得到的应答器用户报文存储软件用户报文缓存器中;
步骤315:对存入软件用户报文缓存器中的应答器用户报文进行运算,得到运算结果;
在本实施例中,具体对上述应答器用户报文进行CRC运算,得到CRC码。
步骤321:判断硬件用户报文缓存器与软件用户报文缓存器中是否都有新数据存入,若是,则执行步骤322,若否,则返回步骤321;
步骤322:比较硬件用户报文缓存器中的应答器用户报文与软件用户报文缓存器中的应答器用户报文是否一致,若否,则返回步骤321,若是,则执行步骤323;
步骤323:将步骤315得到的运算结果与硬件用户报文缓存器中的应答器用户报文组成数据包;
步骤324:将上述数据包存入数据包缓存器中,等待将数据包发送给外设,并清空硬件用户报文缓存器与软件用户报文缓存器。
在本实施例中,数据包缓存模块中共有8个缓冲区,可以缓存8个数据包,这是因为在现有应答器组中的应答器个数最大为8个的情况下,可以保证不丢失应答器用户报文,而在实际应用中,可以根据应答器组中的应答器个数的变化相应地变化数据包缓存模块中的空间,如应答器个数为16个时,则数据包缓存模块中则可以有16个缓冲区,以保证不丢失应答器用户报文。
进一步地,本实施例中的硬件处理器在解码得到应答器用户报文的同时还可以产生应答器定位信息,共2种,一种直接以硬件电平的方式通知外设,为了提高应答器定位信息的抗干扰能力,通过RS485接口芯片输出应答器定位信息;另一种通过高速串口,把应答器定位信息发送给软件处理器,由软件处理器发送给外设。
在本实施例中,当数据包缓存器中有数据包时,则在接收到外设的请求后,将当前数据包发送给外设,并等待外设的下一次请求;当数据包缓存器中没有数据包时,则在接收到外设的请求后,将硬件处理器与软件处理器的工作状态发送给外设。
本实施例中的软硬件并行解码方法采用软件解码、硬件解码并行地完成对应答器传输报文的解码,并比较两个解码结果是否一致,这样就很好地解决了解码过程中共因失效带来的安全问题,并且本实施例中输出的数据包是在软件解码、硬件解码的两个解码结果比较一致后,由上述两个解码结果组成的,这样就进一步避免了在解码、转储过程中由于报文错误引起的安全隐患,提高了应答器用户报文的安全性,达到了列车运行控制系统所要求的安全完整性等级。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。