CN106789511A - 基于fpga的列车用can通信转换控制方法及转换模块 - Google Patents

基于fpga的列车用can通信转换控制方法及转换模块 Download PDF

Info

Publication number
CN106789511A
CN106789511A CN201611196888.6A CN201611196888A CN106789511A CN 106789511 A CN106789511 A CN 106789511A CN 201611196888 A CN201611196888 A CN 201611196888A CN 106789511 A CN106789511 A CN 106789511A
Authority
CN
China
Prior art keywords
fpga
module
interface
mark
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611196888.6A
Other languages
English (en)
Other versions
CN106789511B (zh
Inventor
张艳芳
李磊
修方奎
宋以俊
孙冬
张利军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd
Original Assignee
CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd filed Critical CRRC Qingdao Sifang Rolling Stock Research Institute Co Ltd
Priority to CN201611196888.6A priority Critical patent/CN106789511B/zh
Publication of CN106789511A publication Critical patent/CN106789511A/zh
Application granted granted Critical
Publication of CN106789511B publication Critical patent/CN106789511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40293Bus for use in transportation systems the transportation system being a train

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

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

Description

基于FPGA的列车用CAN通信转换控制方法及转换模块
技术领域
本发明属于列车通信技术领域,涉及列车用CAN通信转换技术,具体地说,涉及一种基于FPGA的列车用CAN通信转换控制方法及转换模块。
背景技术
CAN(Controller Area Network的简称,即控制器局域网)总线是一种用于实时应用的多主方式串行通信总线协议,具有很多优越的特性。其优点包括:使用成本低;具有极高的总线利用率;数据的传输距离远,长达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仅有一个,即发送内部状态为“ID Status”,若ID配置有效,除设置发送内部状态“ID Status”的一个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接口模块接收到的设备级CAN总线发送的数据重新打包,同时通过模块级CAN接口模块发送至该设备的其他相关模块,使设备级CAN网络的任一节点均可获取网络设备的全部信息,不需要列车所有设备均与列车网络连接,只需要接入头车的两个设备,列车网络即可获取全部设备的信息,简化了列车网络拓扑,降低了整车成本。
(2)本发明提供的CAN通信转换模块采用FPGA实现至少三路CAN总线通信,控制电路结构简单,运行效率高,以简单的电路实现数据的快速可靠传输,能够实现设备级网络与设备内部网络的可靠数据传输,连接同一设备的两个CAN接口模块所实现的两个CAN总线网络间数据冗余控制逻辑,可保证一路设备级CAN总线断开时不影响整个系统的性能。
(3)本发明提供的CAN通信转换模块采用模块化设计,推动了列车网络设备的模块化设计,CAN通信转换模块中的CAN接口模块可以为CAN通信标准的不同模块,维护时只需更换需要维修的模块即可,降低了设计和维护成本,同时便于设备维护人员进行维护和维修。
(4)本发明提供的CAN通信转换模块及控制方法,采用FPGA作为主控芯片,硬件和软件的继承性高,几乎不受芯片升级换代的影响,FPGA的并行工作机制保证了连接在同一设备的两路CAN接口模块工作在冗余控制下的同步性,如不适用冗余控制逻辑,可扩展到互联三个及三个以上CAN总线网络。
附图说明
图1为本发明一实施例中基于FPGA的列车用CAN通信转换控制方法的CAN网络拓扑结构图。
图2为本发明一实施例中基于FPGA的列车用CAN通信转换控制方法的数字量输入检测流程图。
图3为本发明一实施例中基于FPGA的列车用CAN通信转换控制方法的CAN1接口模块/CAN2接口模块工作流程图。
图4为本发明一实施例中基于FPGA的列车用CAN通信转换控制方法的CAN3接口模块工作流程图。
图5为本发明一实施例中基于FPGA的列车用CAN通信转换控制方法的CAN1接口模块、CAN2接口模块、CAN3接口模块的状态检测流程图。
图6为本发明一实施例中基于FPGA的列车用CAN通信转换控制方法的FPGA运行状态、ID配置情况以及CAN接口模块离线状态显示流程图。
图7为本发明一实施例中基于FPGA的列车用CAN通信转换模块的硬件结构简图。
图8为本发明一实施例中基于FPGA的列车用CAN通信转换模块的FPGA处理器的逻辑框架图。
图9为本发明另一实施例中基于FPGA的列车用CAN通信转换控制方法的CAN网络拓扑结构图。
具体实施方式
下面,通过示例性的实施方式对本发明进行具体描述。然而应当理解,在没有进一步叙述的情况下,一个实施方式中的元件、结构和特征也可以有益地结合到其他实施方式中。
参见图1至6,本发明一实施例,提供了一种基于FPGA的列车用CAN通信转换控制方法,其具体步骤如下:
FPGA连接三个CAN接口模块,模块级CAN接口模块接FPGA所在设备的内部模块级CAN总线,CAN1接口模块和CAN2接口模块分别接待通信的一个设备的不同设备级CAN总线,且两个CAN接口模块互为冗余;所述模块级CAN接口模块表示为CAN3接口模块。连接CAN1接口模块的设备级CAN总线为设备级CAN1总线,连接CAN2接口模块的设备级CAN总线为CAN2总线;连接CAN3接口模块的模块级CAN总线为CAN3总线。
FPGA上电后,FPGA内部的数字量输入检测模块在设定时间内读取来自于数字量输入接口单元的数字量输入状态,并确定所在的节点位置,所述数字量输入检测模块在读取数字量输入状态过程中输出“读取配置未完成”标志,在读取完成后输出“读取配置完成”标志,若节点位置有效,则输出“配置有效”标志,根据节点位置确定所有CAN接口模块所需的报文ID配置参数,若节点位置无效,则仅输出“配置无效”标志。
FPGA内部的每个CAN通信控制模块均一直处于等待状态,直到检测到“读取配置完成”标志为止。
在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“ID Status”,若ID配置有效,除设置发送内部状态“ID Status”的一个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报文已接收”标志。
由于FPGA为并行工作机制,FPGA运行中,各接口模块及数字量输入接口单元彼此独立循环,交换数据,能够快速可靠传输数据,并保证两路设备级CAN总线工作在冗余控制下的同步性,若不使用冗余控制逻辑时,可扩展到互联3个CAN总线网络。
参见图7、图8,本发明另一实施例中,基于上述实施例所述的转换控制方法,提供了一种基于FPGA的列车用CAN通信转换模块,包括FPGA、内嵌于FPGA中的三路CAN通信控制模块、内嵌于FPGA中的数字量输入检测模块以及与数字量输入检测模块连接的数字量输入接口单元,每路CAN通信控制模块均连接有一路用于连接CAN总线的CAN接口模块;FPGA分别与每路CAN接口模块之间均连接有0V或3.3V的脉冲信号,用于CAN接收和CAN发送,FPGA与数字量输入接口单元之间连接有0V或3.3V的数字量信号,用于提供数字量输入状态。
为了实现三路CAN接口模块的对总线发送的信号进行转换并转发出去,在本发明一优选实施例中,三路CAN接口模块中,CAN1接口模块包括一个隔离式CAN总线收发器和一个由+5V转+5V的电源隔离模块,电源隔离模块为隔离式CAN总线收发器供电,隔离式CAN总线收发器将CAN1总线接收、CAN1总线发送的信号转换为符合CAN通信标准的差分信号CAN1H、CAN1L转发出去。同样地,CAN2接口模块包括一个隔离式CAN总线收发器和一个由+5V转+5V的电源隔离模块,电源隔离模块为隔离式CAN总线收发器供电,隔离式CAN总线收发器将CAN2总线接收、CAN2总线发送的信号转换为符合CAN通信标准的差分信号CAN2H、CAN2L。CAN3接口模块为非隔离的CAN收发电路,包括一CAN总线收发器,CAN总线收发器将CAN3接收、CAN3发送的信号转换为符合CAN通信标准的差分信号CAN3H、CAN3L。在本发明一更优选实施例中,所述隔离式CAN总线收发器采用隔离式CAN总线收发器IS1050DUB,电源隔离模块采用电源隔离模块DRC010505U,CAN总线收发器采用SN65HVD232D。
为了使外部数字量输入电平转换为适于FPGA使用的电平输入,在本发明一优选实施例中,所述数字量输入接口单元包含数字量隔离器,将外部的+5V电平转换为隔离的适用于FPGA的+3.3V电平。在本发明一更优选实施例中,所述数字隔离器采用IS07240CDWR。
为了实现设备的外部通信和内部通信,参见图7,在本发明一优选实施例中,连接CAN1接口模块的CAN1总线和连接CAN2接口模块的CAN2总线为设备级CAN总线,用于负责设备之间的通信,CAN1总线和CAN2总线的波特率均设置为100kbit/s或125kbit/s;连接CAN3接口模块的CAN3总线为内部模块级CAN总线,用于负责单个设备内部的模块间的通信,CAN3总线的波特率设置为500kbit/s。
在本发明上述实施例中,所述FPGA为采用Xilinx公司的Spartan-6系列的FPGA,包含有9152个逻辑单元、576kb RAM和5720个逻辑块。采用FPGA作为主控芯片,硬件和软件的继承性高,几乎不受芯片升级换代的影响,FPGA的并行工作机制保证了两路CAN接口模块工作在冗余控制下的同步性,如不选用冗余控制逻辑,则可扩展到互联三个CAN总线网络。
上述实施例所述CAN通信转换模块工作时,CAN1通信控制模块连接CAN1接口模块,CAN2通信控制模块连接CAN2接口模块,CAN3通信控制模块连接CAN3接口模块,CAN1接口模块、CAN2接口模块分别接同一设备的不同外部CAN总线,且互为冗余,其中,CAN1接口模块接CAN1总线,CAN2接口模块接CAN2总线;CAN3接口模块接FPGA所在设备的内部模块级CAN总线,即CAN3总线。CAN3通信控制模块循环检测接收“CAN3报文已接收”标志,检测到该标志后FPGA将CAN3接口模块接收到的设备内部模块级CAN总线发送的数据重新打包,同时通过CAN1接口模块、或CAN2接口模块转发至其他设备,CAN1通信控制模块循环检测接收“CAN1报文已接收”标志,CAN2通信控制模块循环检测接收“CAN2报文已接收”标志,CAN1通信控制模块检测到“CAN1报文已接收”标志、CAN2通信控制模块循环检测到“CAN2报文已接收”标志后,FPGA将CAN1接口模块、CAN2接口模块接收到的设备级CAN总线发送的数据重新打包,同时通过CAN3接口模块发送至该设备的其他相关模块。
在本发明又一实施例中,提供了一种基于FPGA的列车用CAN通信转换控制方法,其具体步骤如下:
参见图9,FPGA连接四个CAN接口模块,模块级CAN接口模块接FPGA所在设备的内部模块级CAN总线,CAN1接口模块和CAN2接口模块分别接待通信的一个设备的不同设备级CAN总线,且两个CAN接口模块互为冗余,CAN3接口模块接待通信的另一个设备的设备级CAN总线;所述模块级CAN接口模块表示为CAN4接口模块。连接CAN1接口模块的设备级CAN总线为设备级CAN1总线,连接CAN2接口模块的设备级CAN总线为CAN2总线,连接CAN3接口模块的设备级CAN总线为CAN3总线;连接CAN4接口模块的模块级CAN总线为CAN4总线。
FPGA上电后,FPGA内部的数字量输入检测模块在设定时间内读取来自于数字量输入接口单元的数字量输入状态,并确定所在的节点位置,所述数字量输入检测模块在读取数字量输入状态过程中输出“读取配置未完成”标志,在读取完成后输出“读取配置完成”标志,若节点位置有效,则输出“配置有效”标志,根据节点位置确定所有CAN接口模块所需的报文ID配置参数,若节点位置无效,则仅输出“配置无效”标志。
FPGA内部的每个CAN通信控制模块均一直处于等待状态,直到检测到“读取配置完成”标志为止。
在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“ID Status”,若ID配置有效,除设置发送内部状态“ID Status”的一个ID外,还设置其他用于转发数据的ID;第一CAN通信控制模块通过内部状态“IDStatus”从模块级CAN接口模块循环发送检测到的数字量输入状态以及其他所有CAN接口模块离线/在线状态;若ID配置有效,第一CAN通信控制模块循环检测是否有“CAN1报文已接收或CAN2报文已接收或CAN3报文已接收”标志,检测到该标志后将FPGA缓存区BUFF1_2或BUFF3中的数据重新打包,按照内部模块级CAN通信协议从CAN4接口模块转发;若ID配置有效,第一CAN通信控制模块循环检测是否收到新报文,若收到新报文且新报文ID符合配置,则接收该报文至FPGA缓存区BUFF4,并置“CAN4报文已接收”标志。
在配置完成后,CAN1通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN1接口模块,若检测到“配置无效”标志,则关闭与CAN1接口模块;若ID配置有效,CAN1通信控制模块循环检测是否有“CAN4报文已接收”标志,检测到该标志后将FPGA缓存区BUFF4中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN1接口模块转发;若ID配置有效,CAN1通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF1_2,并置“CAN1报文已接收”标志。
在配置完成后,CAN2通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN2接口模块,若检测到“配置无效”标志,则关闭与CAN2接口模块;若ID配置有效,CAN2通信控制模块循环检测是否有“CAN4报文已接收”标志,检测到该标志后将FPGA缓存区BUFF4中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN2接口模块转发;若ID配置有效,CAN2通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF1_2,并置“CAN2报文已接收”标志。
在配置完成后,CAN3通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN3接口模块,若检测到“配置无效”标志,则关闭与CAN3接口模块;若ID配置有效,CAN3通信控制模块循环检测是否有“CAN4报文已接收”标志,检测到该标志后将FPGA缓存区BUFF4中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN3接口模块转发;若ID配置有效,CAN3通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF3,并置“CAN3报文已接收”标志。
由于FPGA为并行工作机制,FPGA运行中,各接口模块及数字量输入接口单元彼此独立循环,交换数据,能够快速可靠传输数据,并保证两路设备级CAN总线工作在冗余控制下的同步性,若不使用冗余控制逻辑时,可扩展到互联4个CAN总线网络。
作为本发明上述实施例的延伸,由于FPGA丰富的接口和灵活的可配置性,在简单更改硬件配置的情况下,可以通过复制扩展至三路以上。因此,FPGA根据实际网络通信需要,可以设置不同数量的CAN通信控制模块,连接不同数量的CAN接口模块,可扩展性好,且两个CAN接口模块接同一设备的不同设备级CAN总线,能够保证一路CAN总线断开时不影响整个系统的性能。
上述实施例用来解释本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。

Claims (10)

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仅有一个,即发送内部状态为“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报文已接收”标志。
2.如权利要求1所述基于FPGA的列车用CAN通信转换控制方法,其特征在于,FPGA连接三个CAN接口模块,模块级CAN接口模块接FPGA所在设备的内部模块级CAN总线,CAN1接口模块和CAN2接口模块分别接待通信的一个设备的不同设备级CAN总线,且两个CAN接口模块互为冗余;所述模块级CAN接口模块表示为CAN3接口模块;
在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“ID Status”,若ID配置有效,除设置发送内部状态“ID Status”的一个ID外,还设置其他用于转发数据的ID;第一CAN通信控制模块通过内部状态“ID Status”从模块级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接口模块分别接待通信的一个设备的不同设备级CAN总线,且两个CAN接口模块互为冗余,CAN3接口模块接待通信的另一个设备的设备级CAN总线;所述模块级CAN接口模块表示为CAN4接口模块;
在配置完成后,第一CAN通信控制模块进行初始化,若ID配置无效,设置的ID仅有一个,即发送内部状态为“ID Status”,若ID配置有效,除设置发送内部状态“ID Status”的一个ID外,还设置其他用于转发数据的ID;第一CAN通信控制模块通过内部状态“ID Status”从模块级CAN接口模块循环发送检测到的数字量输入状态以及其他所有CAN接口模块离线/在线状态;若ID配置有效,第一CAN通信控制模块循环检测是否有“CAN1报文已接收或CAN2报文已接收或CAN3报文已接收”标志,检测到该标志后将FPGA缓存区BUFF1_2或BUFF3中的数据重新打包,按照内部模块级CAN通信协议从CAN4接口模块转发;若ID配置有效,第一CAN通信控制模块循环检测是否收到新报文,若收到新报文且新报文ID符合配置,则接收该报文至FPGA缓存区BUFF4,并置“CAN4报文已接收”标志;
在配置完成后,CAN1通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN1接口模块,若检测到“配置无效”标志,则关闭与CAN1接口模块;若ID配置有效,CAN1通信控制模块循环检测是否有“CAN4报文已接收”标志,检测到该标志后将FPGA缓存区BUFF4中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN1接口模块转发;若ID配置有效,CAN1通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF1_2,并置“CAN1报文已接收”标志;
在配置完成后,CAN2通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN2接口模块,若检测到“配置无效”标志,则关闭与CAN2接口模块;若ID配置有效,CAN2通信控制模块循环检测是否有“CAN4报文已接收”标志,检测到该标志后将FPGA缓存区BUFF4中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN2接口模块转发;若ID配置有效,CAN2通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF1_2,并置“CAN2报文已接收”标志;
在配置完成后,CAN3通信控制模块检测到“配置有效”标志,若ID配置有效,则初始化CAN3接口模块,若检测到“配置无效”标志,则关闭与CAN3接口模块;若ID配置有效,CAN3通信控制模块循环检测是否有“CAN4报文已接收”标志,检测到该标志后将FPGA缓存区BUFF4中的数据重新打包,按照设备级CAN总线通信接口协议从与CAN3接口模块转发;若ID配置有效,CAN3通信控制模块循环检测是否收到新报文,若收到新报文且新报文的ID符合配置,则接收该报文至FPGA的缓存区BUFF3,并置“CAN3报文已接收”标志。
5.如权利要求4所述基于FPGA的列车用CAN通信转换控制方法,其特征在于,连接CAN1接口模块的设备级CAN总线为设备级CAN1总线,连接CAN2接口模块的设备级CAN总线为CAN2总线,连接CAN3接口模块的设备级CAN总线为CAN3总线;连接CAN4接口模块的模块级CAN总线为CAN4总线。
6.如权利要求1至5任意一项所述基于FPGA的列车用CAN通信转换控制方法,其特征在于,FPGA内部的定时器模块提供FPGA运行的时间周期、定时及延时;FPGA内部的状态监测模块定时循环检测所有CAN接口模块的在线/离线状态;FPGA还连接数字量输出接口单元,并通过数字量输出接口单元指示灯显示FPGA运行状态、ID配置情况以及所有CAN接口模块的离线状态。
7.一种基于FPGA的列车用CAN通信转换模块,基于权利要求1所述转换控制方法,其特征在于,包括FPGA、内嵌于FPGA中的至少三路CAN通信控制模块、内嵌于FPGA中的数字量输入检测模块以及与数字量输入检测模块连接的数字量输入接口单元,每路CAN通信控制模块均连接有一路用于连接CAN总线的CAN接口模块;FPGA分别与每路CAN接口模块之间均连接有0V或3.3V的脉冲信号,用于CAN接收和CAN发送,FPGA与数字量输入接口单元之间连接有0V或3.3V的数字量信号,用于提供数字量输入状态。
8.如权利要求7所述的基于FPGA的列车用CAN通信转换模块,其特征在于,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脉冲信号。
9.如权利要求8所述的基于FPGA的列车用CAN通信转换模块,其特征在于,所述数字量输入接口单元包含数字量隔离器,将外部的+5V电平转换为隔离的适用于FPGA的+3.3V电平。
10.如权利要求8或9所述的基于FPGA的列车用CAN通信转换模块,其特征在于,连接外部设备的CAN总线为设备级CAN总线,用于负责设备之间的通信;连接设备内部模块的CAN总线为模块级CAN总线,用于负责单个设备内部的模块间的通信。
CN201611196888.6A 2016-12-22 2016-12-22 基于fpga的列车用can通信转换控制方法及转换模块 Active CN106789511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611196888.6A CN106789511B (zh) 2016-12-22 2016-12-22 基于fpga的列车用can通信转换控制方法及转换模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611196888.6A CN106789511B (zh) 2016-12-22 2016-12-22 基于fpga的列车用can通信转换控制方法及转换模块

Publications (2)

Publication Number Publication Date
CN106789511A true CN106789511A (zh) 2017-05-31
CN106789511B CN106789511B (zh) 2019-06-18

Family

ID=58897269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611196888.6A Active CN106789511B (zh) 2016-12-22 2016-12-22 基于fpga的列车用can通信转换控制方法及转换模块

Country Status (1)

Country Link
CN (1) CN106789511B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888231A (zh) * 2017-10-27 2018-04-06 中国科学院西安光学精密机械研究所 基于差分信号的多路同步脉冲信号传输系统及传输方法
CN108243074A (zh) * 2017-12-11 2018-07-03 芜湖职业技术学院 可实现多台can实训设备测试的装置
CN110768881A (zh) * 2019-10-31 2020-02-07 中车青岛四方车辆研究所有限公司 数据交互系统及数据交互方法
CN112039745A (zh) * 2020-09-17 2020-12-04 广东高云半导体科技股份有限公司 Can总线通讯控制系统及通信系统
CN114675529A (zh) * 2022-04-13 2022-06-28 中国兵器装备集团自动化研究所有限公司 一种基于can总线电平接口的并行冗余系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889494A (zh) * 2006-06-26 2007-01-03 株洲南车时代电气股份有限公司 一种基于tcn的多总线车辆通信控制模块
CN2922304Y (zh) * 2006-06-26 2007-07-11 株洲南车时代电气股份有限公司 基于tcn的多总线车辆通信控制模块
CN201130955Y (zh) * 2007-05-24 2008-10-08 谢步明 基于arm7核微处理器的mvb-can 网关设备
CN201837879U (zh) * 2010-08-20 2011-05-18 上海自动化仪表股份有限公司 列车外围接口设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889494A (zh) * 2006-06-26 2007-01-03 株洲南车时代电气股份有限公司 一种基于tcn的多总线车辆通信控制模块
CN2922304Y (zh) * 2006-06-26 2007-07-11 株洲南车时代电气股份有限公司 基于tcn的多总线车辆通信控制模块
CN201130955Y (zh) * 2007-05-24 2008-10-08 谢步明 基于arm7核微处理器的mvb-can 网关设备
CN201837879U (zh) * 2010-08-20 2011-05-18 上海自动化仪表股份有限公司 列车外围接口设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888231A (zh) * 2017-10-27 2018-04-06 中国科学院西安光学精密机械研究所 基于差分信号的多路同步脉冲信号传输系统及传输方法
CN108243074A (zh) * 2017-12-11 2018-07-03 芜湖职业技术学院 可实现多台can实训设备测试的装置
CN108243074B (zh) * 2017-12-11 2021-02-05 芜湖职业技术学院 可实现多台can实训设备测试的装置
CN110768881A (zh) * 2019-10-31 2020-02-07 中车青岛四方车辆研究所有限公司 数据交互系统及数据交互方法
CN110768881B (zh) * 2019-10-31 2021-08-24 中车青岛四方车辆研究所有限公司 数据交互系统及数据交互方法
CN112039745A (zh) * 2020-09-17 2020-12-04 广东高云半导体科技股份有限公司 Can总线通讯控制系统及通信系统
CN112039745B (zh) * 2020-09-17 2021-06-22 广东高云半导体科技股份有限公司 Can总线通讯控制系统及通信系统
CN114675529A (zh) * 2022-04-13 2022-06-28 中国兵器装备集团自动化研究所有限公司 一种基于can总线电平接口的并行冗余系统及方法

Also Published As

Publication number Publication date
CN106789511B (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
CN106789511A (zh) 基于fpga的列车用can通信转换控制方法及转换模块
CN104579606B (zh) 多功能车辆总线mvb网络系统冗余设计方法
CN206374741U (zh) 列车网络控制系统
CN103139060A (zh) 基于双dsp的高容错性can总线数字网关
CN202944335U (zh) 电传动内燃动车组列车及重联列车
CN101661454B (zh) 一种可动态重构的高速串行总线系统及控制方法
CN103490959B (zh) 一种双冗余can总线故障检测方法
CN102104515A (zh) 耦合装置、包括耦合装置的系统和用于该系统的方法
CN103490966A (zh) 一种双冗余can总线数据接收处理方法
CN103840993A (zh) 一种双冗余can总线数据发送方法
CN201626437U (zh) 一种多功能车辆总线控制器和多功能车辆总线网卡
CN104009976B (zh) 一种用于多主站系统之间的实时通信方法及其设备
CN101710376A (zh) 安全计算机3取2表决方法硬件平台
CN104796356A (zh) 轨道车辆用车载以太网交换机和信号收发及列车重联方法
CN108614527A (zh) 一种安全级dcs现场控制站
CN105306352A (zh) 一种工业现场总线协议网关装置
CN106656625B (zh) 基于arm的列车用can通信转换控制方法及转换模块
CN104571045B (zh) 列车网络的中央控制单元及其操作方法
CN104085424B (zh) 车载信号系统安全控制平台
CN107168045A (zh) 一种基于EtherCAT的通信冗余控制系统
CN108616435A (zh) 基于高速串行总线的双余度系统数据传输方法
CN209627394U (zh) 一种数字信号采集器及系统
CN216313114U (zh) 一种动车组控制系统融合架构
CN205336307U (zh) 基于fip通信的网络控制模块
CN110244631A (zh) 一种模拟信号采集器、方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant