1553B总线与FlexRay总线的协议转换
背景技术:
某一1553B数字时分系统,存在响应型和周期型两种类型的指令传输。如果在1553B总线上传输周期型指令,不仅会造成BC->RT调度指令的大量重复,还存在BC设备和RT设备时间不同步的风险,从而导致RT设备在某个周期内接收不到来自BC设备的消息,甚至会引起总线上大量消息的丢失。
技术实现要素:
(一)要解决的技术问题
本发明要解决的技术问题是:如何解决数字时分系统兼容响应型和周期型两种类型指令传输的问题。
(二)技术方案
为解决上述技术问题,本发明提供一种1553B总线与FlexRay总线的协议转换方法,该方法基于协议转换装置来实施,所述协议转换装置包括:1553B相关硬件模块、协议转换模块、FlexRay相关硬件模块;其中,所述1553B相关硬件模块包括:1553B总线连接的1553B总线控制器(BC)、1553B远程终端设备(RT);所述协议转换模块包括:1553B数据收发电路、控制电路、FlexRay数据收发电路;所述FlexRay相关硬件模块包括FlexRay总线上各个节点设备;
所述1553B数据收发电路包括:1553B物理层收发电路和1553B总线协议控制芯片;所述控制电路包括:CPU及其内部RAM;FlexRay数据收发电路包括:FlexRay物理层收发电路和FlexRay总线协议控制芯片;
所述协议转换方法包括:步骤1:进行BC->RT命令调度、步骤2:进行BC->RT调度消息的协议转换、步骤3:进行RT->BC的命令调度、步骤4:进行RT->BC调度消息的协议转换。
其中,所述步骤1:进行BC->RT命令调度中:
所述1553B总线控制器发送一个BC->RT的命令调度消息,1553B物理层收发电路将命令调度消息的差分信号转换成单端信号后,发到1553B总线协议芯片,最后由CPU将1553B总线协议芯片的消息内容存放在其内部RAM中。
其中,所述步骤2:进行BC->RT调度消息的协议转换中:
BC->RT调度消息分为两类;一是1553B总线控制器更新某个FlexRay节点的数据的命令;二是总线控制器获取某个FlexRay节点的数据的命令;两类消息通过表1中BC->RT消息的命令字区分;
表1消息格式对应表
该步骤2进行BC->RT调度消息的协议转换具体包括:更新FlexRay节点数据的情况、以及获取FlexRay节点数据的情况。
其中,所述更新FlexRay节点数据的情况为:
CPU根据表1中BC->RT消息内容的格式取出内部RAM中1553B格式的数据;若数据帧头与期望一致,则将FlexRay节点号、FlexRay时隙号、指定更新的FlexRay节点数据依次填入FlexRay协议控制芯片;FlexRay物理层收发电路将FlexRay协议控制芯片的单端信号转换成差分信号,并将指定更新的数据发送到FlexRay总线上相应的节点设备。
其中,所述获取FlexRay节点数据的情况为:
CPU根据表1中BC->RT消息内容的格式取出内部RAM中1553B格式的数据;若数据帧头与期望一致,则取出FlexRay协议控制芯片中指定FlexRay节点号、时隙号的数据,存入CPU的内部RAM中。
其中,所述步骤3:RT->BC的命令调度中:
1553B总线控制器发送一个RT->BC的命令调度消息,1553B物理层收发电路将差分信号转换成单端信号后,将消息内容发到1553B总线协议芯片,最后由CPU将1553B总线协议芯片的消息内容存放在其内部RAM中。
其中,所述步骤4:RT->BC调度消息的协议转换中:
RT->BC调度消息分为两类;一是1553B总线控制器更新某个FlexRay节点的数据的回令;二是总线控制器获取某个FlexRay节点的数据的回令;两类消息通过表1中BC->RT消息的命令字区分;
所述步骤4的RT->BC调度消息的协议转换具体包括:更新FlexRay节点数据的情况、以及获取FlexRay节点数据的情况。
其中,所述更新FlexRay节点数据的情况为:
CPU根据表1中RT->BC消息内容的格式组织1553B格式的数据并填入1553B协议控制芯片;1553B物理层收发电路将1553B协议控制芯片的单端信号转换成差分信号,通过1553B总线发送到总线控制器。
其中,所述获取FlexRay节点数据的情况为:
CPU取出内部RAM中指定节点号、时隙号的FlexRay数据,根据表1中RT->BC消息内容的格式组织1553B格式的数据并填入1553B协议控制芯片;1553B物理层收发电路将1553B协议控制芯片的单端信号转换成差分信号,通过1553B总线发送到总线控制器。
(三)有益效果
本发明利用1553B与FlexRay总线各自的特性,1553B总线实现响应型指令传输,FlexRay总线实现周期型指令传输,CPU进行两种总线协议层的转换,解决了数字时分系统兼容响应型和周期型两种类型指令传输的问题。
附图说明
图1是协议转换装置结构图。
图2是BC->RT命令流程图。
图3是RT->BC回令流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为解决现有技术的问题,本发明提供一种1553B总线与FlexRay总线的协议转换方法,该方法基于协议转换装置来实施,所述协议转换装置包括:1553B相关硬件模块、协议转换模块、FlexRay相关硬件模块;其中,所述1553B相关硬件模块包括:1553B总线连接的1553B总线控制器(BC)、1553B远程终端设备(RT);所述协议转换模块包括:1553B数据收发电路、控制电路、FlexRay数据收发电路;所述FlexRay相关硬件模块包括FlexRay总线上各个节点设备;
所述1553B数据收发电路包括:1553B物理层收发电路和1553B总线协议控制芯片;所述控制电路包括:CPU及其内部RAM;FlexRay数据收发电路包括:FlexRay物理层收发电路和FlexRay总线协议控制芯片;
所述协议转换方法包括如下步骤:
步骤1:进行BC->RT命令调度;
如图2所示,所述1553B总线控制器发送一个BC->RT的命令调度消息,1553B物理层收发电路将命令调度消息的差分信号转换成单端信号后,发到1553B总线协议芯片,最后由CPU将1553B总线协议芯片的消息内容存放在其内部RAM中;
步骤2:进行BC->RT调度消息的协议转换;
BC->RT调度消息分为两类;一是1553B总线控制器更新某个FlexRay节点的数据的命令;二是总线控制器获取某个FlexRay节点的数据的命令;两类消息通过表1中BC->RT消息的命令字区分;
表1消息格式对应表
(1)更新FlexRay节点数据的情况
CPU根据表1中BC->RT消息内容的格式取出内部RAM中1553B格式的数据;若数据帧头与期望一致,则将FlexRay节点号、FlexRay时隙号、指定更新的FlexRay节点数据依次填入FlexRay协议控制芯片;FlexRay物理层收发电路将FlexRay协议控制芯片的单端信号转换成差分信号,并将指定更新的数据发送到FlexRay总线上相应的节点设备;
(2)获取FlexRay节点数据的情况
CPU根据表1中BC->RT消息内容的格式取出内部RAM中1553B格式的数据;若数据帧头与期望一致,则取出FlexRay协议控制芯片中指定FlexRay节点号、时隙号的数据,存入CPU的内部RAM中;
步骤3:RT->BC的命令调度;
如图3所示,1553B总线控制器发送一个RT->BC的命令调度消息,1553B物理层收发电路将差分信号转换成单端信号后,将消息内容发到1553B总线协议芯片,最后由CPU将1553B总线协议芯片的消息内容存放在其内部RAM中;
步骤4:RT->BC调度消息的协议转换;
RT->BC调度消息分为两类;一是1553B总线控制器更新某个FlexRay节点的数据的回令;二是总线控制器获取某个FlexRay节点的数据的回令;两类消息通过表1中BC->RT消息的命令字区分;
(1)更新FlexRay节点数据的情况
CPU根据表1中RT->BC消息内容的格式组织1553B格式的数据并填入1553B协议控制芯片;1553B物理层收发电路将1553B协议控制芯片的单端信号转换成差分信号,通过1553B总线发送到总线控制器;
(2)获取FlexRay节点数据的情况
CPU取出内部RAM中指定节点号、时隙号的FlexRay数据,根据表1中RT->BC消息内容的格式组织1553B格式的数据并填入1553B协议控制芯片;1553B物理层收发电路将1553B协议控制芯片的单端信号转换成差分信号,通过1553B总线发送到总线控制器。
实施例
本发明主要针对为兼容数字响应型时分系统中的周期型指令,提供了一种1553B总线与FlexRay总线的协议转换方法。该方法利用FlexRay总线上各节点Node时钟同步的特性,在1553B主总线的一个RT分支增加了一条专门用于收发周期型指令的FlexRay次总线。该RT分支的CPU一方面通过中断方式接收1553B主总线BC设备的BC->RT响应型指令,并将接收到的1553B帧转换成符合FlexRay帧格式的数据,在规定的时隙slot周期性传输到FlexRay次总线。另一方面,CPU通过查询方式周期性获取来自FlexRay次总线上的数据,并翻译成符合1553B帧格式的数据,一旦收到RT发送的响应型指令,CPU就将数据传输到1553B主总线。该方法通过1553B总线与FlexRay总线的协议互转,解决了数字响应型时分系统兼容周期型指令的问题。
其包括:
步骤一CPU分别配置1553B和FlexRay协议控制芯片
上电后,CPU首先对FlexRay协议控制芯片进行配置,重点在于分配收发数据相应的slot。然后将1553B协议控制芯片设为RT模式,设置RT地址为RTn并初始化堆栈区。
步骤二1553B转FlexRay
软件人员可以提前对消息的32个1553数据字制定一套协议,结合上一步分配传输数据相应的slot,用来确定指令的具体内容,比如向FlexRay次总线某个节点传输某些数据或者取出某个节点的相关数据等。当1553B主总线上的BC设备发起一条BC->RTn的指令调度时,1553B协议控制芯片接收到来自BC的消息后,CPU进入中断处理程序取出消息,根据软件人员制定的协议提取有用的1553数据字,通过FlexRay协议控制芯片转换成符合FlexRay帧格式的数据,在规定的slot内发送到FlexRay次总线相应节点设备。
步骤三FlexRay转1553B
CPU通过查询方式实时接收FlexRay协议控制芯片收到的次总线上各个slot的数据,并根据软件人员制定的协议提取有用数据作为若干1553数据字。一旦CPU收到了RTn->BC或RTn->RTx(RTx:其它RT设备)的指令调度,CPU会进入中断处理程序将转换过的数据传递给1553B协议控制芯片,1553B协议控制芯片会将数据封装成符合1553B帧格式的消息,发送给主总线上的BC或其它RT设备。
技术特征:
1.一种1553B总线与FlexRay总线的协议转换方法,其特征在于,该方法基于协议转换装置来实施,所述协议转换装置包括:1553B相关硬件模块、协议转换模块、FlexRay相关硬件模块;其中,所述1553B相关硬件模块包括:1553B总线连接的1553B总线控制器(BC)、1553B远程终端设备(RT);所述协议转换模块包括:1553B数据收发电路、控制电路、FlexRay数据收发电路;所述FlexRay相关硬件模块包括FlexRay总线上各个节点设备;
所述1553B数据收发电路包括:1553B物理层收发电路和1553B总线协议控制芯片;所述控制电路包括:CPU及其内部RAM;FlexRay数据收发电路包括:FlexRay物理层收发电路和FlexRay总线协议控制芯片;
所述协议转换方法包括:步骤1:进行BC->RT命令调度、步骤2:进行BC->RT调度消息的协议转换、步骤3:进行RT->BC的命令调度、步骤4:进行RT->BC调度消息的协议转换。
2.如权利要求1所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述步骤1:进行BC->RT命令调度中:
所述1553B总线控制器发送一个BC->RT的命令调度消息,1553B物理层收发电路将命令调度消息的差分信号转换成单端信号后,发到1553B总线协议芯片,最后由CPU将1553B总线协议芯片的消息内容存放在其内部RAM中。
3.如权利要求2所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述步骤2:进行BC->RT调度消息的协议转换中:
BC->RT调度消息分为两类;一是1553B总线控制器更新某个FlexRay节点的数据的命令;二是总线控制器获取某个FlexRay节点的数据的命令;两类消息通过表1中BC->RT消息的命令字区分;
表1消息格式对应表
该步骤2进行BC->RT调度消息的协议转换具体包括:更新FlexRay节点数据的情况、以及获取FlexRay节点数据的情况。
4.如权利要求3所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述更新FlexRay节点数据的情况为:
CPU根据表1中BC->RT消息内容的格式取出内部RAM中1553B格式的数据;若数据帧头与期望一致,则将FlexRay节点号、FlexRay时隙号、指定更新的FlexRay节点数据依次填入FlexRay协议控制芯片;FlexRay物理层收发电路将FlexRay协议控制芯片的单端信号转换成差分信号,并将指定更新的数据发送到FlexRay总线上相应的节点设备。
5.如权利要求4所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述获取FlexRay节点数据的情况为:
CPU根据表1中BC->RT消息内容的格式取出内部RAM中1553B格式的数据;若数据帧头与期望一致,则取出FlexRay协议控制芯片中指定FlexRay节点号、时隙号的数据,存入CPU的内部RAM中。
6.如权利要求5所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述步骤3:RT->BC的命令调度中:
1553B总线控制器发送一个RT->BC的命令调度消息,1553B物理层收发电路将差分信号转换成单端信号后,将消息内容发到1553B总线协议芯片,最后由CPU将1553B总线协议芯片的消息内容存放在其内部RAM中。
7.如权利要求6所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述步骤4:RT->BC调度消息的协议转换中:
RT->BC调度消息分为两类;一是1553B总线控制器更新某个FlexRay节点的数据的回令;二是总线控制器获取某个FlexRay节点的数据的回令;两类消息通过表1中BC->RT消息的命令字区分;
所述步骤4的RT->BC调度消息的协议转换具体包括:更新FlexRay节点数据的情况、以及获取FlexRay节点数据的情况。
8.如权利要求7所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述更新FlexRay节点数据的情况为:
CPU根据表1中RT->BC消息内容的格式组织1553B格式的数据并填入1553B协议控制芯片;1553B物理层收发电路将1553B协议控制芯片的单端信号转换成差分信号,通过1553B总线发送到总线控制器。
9.如权利要求8所述的1553B总线与FlexRay总线的协议转换方法,其特征在于,所述获取FlexRay节点数据的情况为:
CPU取出内部RAM中指定节点号、时隙号的FlexRay数据,根据表1中RT->BC消息内容的格式组织1553B格式的数据并填入1553B协议控制芯片;1553B物理层收发电路将1553B协议控制芯片的单端信号转换成差分信号,通过1553B总线发送到总线控制器。
本发明属于计算机通信总线技术领域,具体涉及一种1553B总线与FlexRay总线的协议转换方法。本发明利用1553B与FlexRay总线各自的特性,1553B总线实现响应型指令传输,FlexRay总线实现周期型指令传输,CPU进行两种总线协议层的转换,解决了数字时分系统兼容响应型和周期型两种类型指令传输的问题。