【技术实现步骤摘要】
基于FPGA的列车用CAN通信转换控制方法及转换模块
本专利技术属于列车通信
,涉及列车用CAN通信转换技术,具体地说,涉及一种基于FPGA的列车用CAN通信转换控制方法及转换模块。
技术介绍
CAN(ControllerAreaNetwork的简称,即控制器局域网)总线是一种用于实时应用的多主方式串行通信总线协议,具有很多优越的特性。其优点包括:使用成本低;具有极高的总线利用率;数据的传输距离远,长达10km;数据传输速率高,可高达1Mbit/s;可根据报文的ID决定接收获屏蔽该报文;具有可靠的错误处理和检错机制;发送的信息遭到破坏后,可以自动重发;节点在错误严重的情况下可自动退出总线;报文不包含源地址或目标地址,仅用标识符来指示功能信息、优先级信息。因此,CAN总线通信在汽车工业、航空工业、工业控制和安全防护等领域中获得广泛的应用。在轨道交通列车应用中,CAN总线最初仅仅用于设备级的网络中。随着车载设备的模块化设计,设备内部不同模块之间也需要快速可靠地进行通信。因此,CAN总线通信也可用于设备内部通信网络,即模块级网络。为了实现设备级网络之间、模块级网络之间以及设备级网络与模块级网络之间的可靠数据传输,同时保证冗余或可扩展功能,转换设备需要具有至少三路CAN总线。现有的大多设备采用的CPU最多内嵌两个CAN控制器,仅具有两路CAN总线。单CPU不能满足三路CAN总线的要求,若增加外部CAN控制器,则控制速度太慢;若采用多个CPU,则增加了电路的复杂性和CPU总线间的数据交互。
技术实现思路
本专利技术针对现有技术存在CAN总线接口较少或控制速度慢、电 ...
【技术保护点】
一种基于FPGA的列车用CAN通信转换控制方法,其特征在于,含有以下步骤:FPGA连接至少三个CAN接口模块,一个CAN接口模块接FPGA所在设备的内部模块级CAN总线,将该CAN接口模块称为模块级CAN接口模块,其余CAN接口模块中,每个CAN接口模块接不同的待通信设备的设备级CAN总线,或两个CAN接口模块分别接同一个待通信设备的两个设备级CAN总线,且两个CAN接口模块互为冗余;FPGA还连接数字量输入接口单元;FPGA上电后,FPGA内部的数字量输入检测模块在设定时间内读取来自于数字量输入接口单元的数字量输入状态,并确定所在的节点位置,所述数字量输入检测模块在读取数字量输入状态过程中输出“读取配置未完成”标志,在读取完成后输出“读取配置完成”标志,若节点位置有效,则输出“配置有效”标志,根据节点位置确定所有CAN接口模块所需的报文ID配置参数,若节点位置无效,则仅输出“配置无效”标志;FPGA内部的每个CAN通信控制模块均一直处于等待状态,直到检测到“读取配置完成”标志为止;在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“I ...
【技术特征摘要】
1.一种基于FPGA的列车用CAN通信转换控制方法,其特征在于,含有以下步骤:FPGA连接至少三个CAN接口模块,一个CAN接口模块接FPGA所在设备的内部模块级CAN总线,将该CAN接口模块称为模块级CAN接口模块,其余CAN接口模块中,每个CAN接口模块接不同的待通信设备的设备级CAN总线,或两个CAN接口模块分别接同一个待通信设备的两个设备级CAN总线,且两个CAN接口模块互为冗余;FPGA还连接数字量输入接口单元;FPGA上电后,FPGA内部的数字量输入检测模块在设定时间内读取来自于数字量输入接口单元的数字量输入状态,并确定所在的节点位置,所述数字量输入检测模块在读取数字量输入状态过程中输出“读取配置未完成”标志,在读取完成后输出“读取配置完成”标志,若节点位置有效,则输出“配置有效”标志,根据节点位置确定所有CAN接口模块所需的报文ID配置参数,若节点位置无效,则仅输出“配置无效”标志;FPGA内部的每个CAN通信控制模块均一直处于等待状态,直到检测到“读取配置完成”标志为止;在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“IDStatus”,若ID配置有效,除设置发送内部状态“IDStatus”的一个ID外,还设置其他用于转发数据的ID;第一CAN通信控制模块通过内部状态“IDStatus”从模块级CAN接口模块循环发送检测到的数字量输入状态以及其他所有CAN接口模块离线/在线状态;若ID配置有效,第一CAN通信控制模块循环检测是否有“设备级CAN报文已接收”标志,检测到该标志后将FPGA设备级数缓存区中的数据重新打包,按照内部模块级CAN通信协议从模块级CAN接口模块转发;若ID配置有效,第一CAN通信控制模块循环检测是否收到新报文,若收到新报文且新报文ID符合配置,则接收该报文至FPGA模块级数据缓存区,并置“模块级CAN报文已接收”标志;在配置完成后,其他各个CAN通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化与该CAN通信控制模块连接的CAN接口模块,若检测到“配置无效”标志,则关闭与该CAN通信控制模块连接的CAN接口模块;若ID配置有效,每个CAN通信控制模块循环检测是否有“模块级CAN报文已接收”标志,检测到该标志后将FPGA模块级数据缓存区中的数据重新打包,按照设备级CAN总线通信接口协议从与该CAN通信控制模块连接的CAN接口模块转发;若ID配置有效,每个CAN通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的设备级数据缓存区,并置“设备级CAN报文已接收”标志。2.如权利要求1所述基于FPGA的列车用CAN通信转换控制方法,其特征在于,FPGA连接三个CAN接口模块,模块级CAN接口模块接FPGA所在设备的内部模块级CAN总线,CAN1接口模块和CAN2接口模块分别接待通信的一个设备的不同设备级CAN总线,且两个CAN接口模块互为冗余;所述模块级CAN接口模块表示为CAN3接口模块;在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“IDStatus”,若ID配置有效,除设置发送内部状态“IDStatus”的一个ID外,还设置其他用于转发数据的ID;第一CAN通信控制模块通过内部状态“IDStatus”从模块级CAN接口模块循环发送检测到的数字量输入状态以及其他所有CAN接口模块离线/在线状态;若ID配置有效,第一CAN通信控制模块循环检测是否有“CAN1报文已接收或CAN2报文已接收”标志,检测到该标志后将FPGA缓存区BUFF1中的数据重新打包,按照内部模块级CAN通信协议从CAN3接口模块转发;若ID配置有效,第一CAN通信控制模块循环检测是否收到新报文,若收到新报文且新报文ID符合配置,则接收该报文至FPGA缓存区BUFF3,并置“CAN3报文已接收”标志;在配置完成后,CAN1通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN1接口模块,若检测到“配置无效”标志,则关闭与CAN1接口模块;若ID配置有效,CAN1通信控制模块循环检测是否有“CAN3报文已接收”标志,检测到该标志后将FPGA缓存区BUFF3中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN1接口模块转发;若ID配置有效,CAN1通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF1_2,并置“CAN1报文已接收”标志;在配置完成后,CAN2通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN2接口模块,若检测到“配置无效”标志,则关闭与CAN2接口模块;若ID配置有效,CAN2通信控制模块循环检测是否有“CAN3报文已接收”标志,检测到该标志后将FPGA缓存区BUFF3中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN2接口模块转发;若ID配置有效,CAN2通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF1_2,并置“CAN2报文已接收”标志。3.如权利要求2所述基于FPGA的列车用CAN通信转换控制方法,其特征在于,连接CAN1接口模块的设备级CAN总线为设备级CAN1总线,连接CAN2接口模块的设备级CAN总线为CAN2总线;连接CAN3接口模块的模块级CAN总线为CAN3总线。4.如权利要求1所述基于FPGA的列车用CAN通信转换控制方法,其特征在于,FPGA连接四个CAN接口模块,模块级CAN接口模块接FPGA所在设备的内部模块级CAN总线,CAN1接口模块和CAN2接口模块分别接待通信...
【专利技术属性】
技术研发人员:张艳芳,李磊,修方奎,宋以俊,孙冬,张利军,
申请(专利权)人:中车青岛四方车辆研究所有限公司,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。