基于FPGA的列车用CAN通信转换控制方法及转换模块技术

技术编号:15518848 阅读:123 留言:0更新日期:2017-06-04 08:55
本发明专利技术涉及一种基于FPGA的列车用CAN通信转换控制方法及转换模块,方法步骤为:FPGA连接至少三个CAN接口模块,一个模块级CAN接口模块接FPGA所在设备的内部模块级CAN总线,其余CAN接口模块中,一个CAN接口模块或两个CAN接口模块接待通信的一个设备的设备级CAN总线,FPGA还连接数字量输入接口单元。FPGA将模块级CAN接口模块接收到的设备内部模块级CAN总线发送的数据重新打包,同时通过其他CAN接口转发至其他设备,FPGA将其他CAN接口模块接收到的设备级CAN总线发送的数据重新打包,同时通过模块级CAN接口模块发送至该设备的其他相关模块。本发明专利技术能够满足三路及三路以上CAN总线的要求,实现数据的快速可靠传输。

【技术实现步骤摘要】
基于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通信转换控制方法及转换模块,能够满足三路CAN总线及三路以上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仅有一个,即发送内部状态为“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报文已接收”标志。优选的,FPGA内部的定时器模块提供FPGA运行的时间周期、定时及延时;FPGA内部的状态监测模块定时循环检测所有CAN接口模块的在线/离线状态;FPGA还连接数字量输出接口单元,并通过数字量输出接口单元指示灯显示FPGA运行状态、ID配置情况以及所有CAN接口模块的离线状态。为了达到上述目的,基于上述转换控制方法,本专利技术还提供了一种基于FPGA的列车用CAN通信转换模块,包括FPGA、内嵌于FPGA中的至少三路CAN通信控制模块、内嵌于FPGA中的数字量输入检测模块以及与数字量输入检测模块连接的数字量输入接口单元,每路CAN通信控制模块均连接有一路用于连接CAN总线的CAN接口模块;FPGA分别与每路CAN接口模块之间均连接有0V或3.3V的脉冲信号,用于CAN接收和CAN发送,FPGA与数字量输入接口单元之间连接有0V或3.3V的数字量信号,用于提供数字量输入状态。优选的,FPGA内嵌有至少三路CAN通信控制模块,每路CAN通信控制模块均连接有一路用于连接CAN总线的CAN接口模块。多路CAN接口模块中,设备级CAN接口模块均为隔离的CAN收发电路,均包括一个隔离式CAN总线收发器以及由+5V转+5V的电源隔离模块,在CAN发送时将FPGA输出的0V/3.3V脉冲信号转换为符合CAN通信标准的差分信号,在CAN接收时将符合CAN通信标准的差分信号转换为FPGA可接收的0V/3.3V脉冲信号;模块级CAN接口模块为非隔离的CAN收发电路,包括一CAN总线收发器,在CAN发送时将FPGA输出的0V/3.3V脉冲信号信号转换为符合CAN通信标准的差分信号,在CAN接收时将符合CAN通信标准的差分信号转换为FPGA可接收的0V/3.3V脉冲信号。优选的,所述数字量输入接口单元包含数字量隔离器,将外部的+5V电平转换为隔离的适用于FPGA的+3.3V电平。优选的,连接外部设备的CAN总线为设备级CAN总线,用于负责设备之间的通信;连接设备内部模块的CAN总线为模块级CAN总线,用于负责单个设备内部的模块间的通信。与现有技术相比,本专利技术的优点和积极效果在于:(1)本专利技术提供的CAN通信转换控制方法,采用FPGA实现至少三路CAN总线通信,通过两路CAN接口模块分别连接列车同一设备的不同设备级CAN总线,且互为冗余,一路CAN接口模块连接FPGA所在设备的内部模块级CAN总线,FPGA将模块级CAN接口模块接收到的设备内部模块级CAN总线发送的数据重新打包,同时通过其他CAN接口转发至其他设备,FPGA将其他CAN本文档来自技高网...
基于FPGA的列车用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仅有一个,即发送内部状态为“ID Status”,若ID配置有效,除设置发送内部状态“ID Status”的一个ID外,还设置其他用于转发数据的ID;第一CAN通信控制模块通过内部状态“ID Status”从模块级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报文已接收”标志。...

【技术特征摘要】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1