一种FlexRay-CAN通信网关及实现方法
技术领域
本发明涉及一种网络通信协议转换技术,特别涉及一种FlexRay-CAN通信网关及实现方法。
背景技术
在电力、石油、化工、冶金、钢铁、交通等各种行业,数据通信网络必不可少。现场各类信号通过数据采集***连续采集和处理后,需要通过某种方式传送至上位监控***。CAN总线是目前应用较为广泛的现场总线通信技术之一,FlexRay高速总线作为新兴的通信技术,提供更快的通信速率、更大的带宽和更高的传输可靠性。
FlexRay是继CAN、LIN等车用总线之后,由BMW、Daimler、Motorola等公司开发的一种灵活且功能强大的网络通讯协议。该协议不仅能简化通信***架构,还可使电子单元变得更加稳定和可靠,符合未来先进高速控制应用的需要。同时,FlexRay还支持分布式控制***,并可对CAN、LIN等网络标准进行补充。因此,研究FlexRay并对其拓扑结构进行优化,对发展网络***大有裨益。
FlexRay总线***作为新一代总线技术,它的通讯机制特点表现在以下几个方面:
(1)带宽方面:FlexRay带宽不受协议机制的限制,可进行最快10Mbps速率的通信,当采用双通道冗余***时,可达20Mbps的速率,远大于CAN总线的通信速率。
(2)可量测性:FlexRay可采用单、双通道两种模式,并可实现混合配置。
(3)灵活性:FlexRay可采用多种网络拓扑模式,包括从点对点到无源总线拓扑和有源星形拓扑。而物理层设备可选用电缆或光缆,同时其通讯数据包括静态段和动态段两种,FlexRay的帧ID是和时隙数对应的,也表示了发送方地址。以上都是FlexRay灵活的通讯机制的表现。
(4)确定性:FlexRay静态段严格采用基于时间触发的总线访问方式,而动态段可采用有限确定性的灵活时间触发的总线访问方式。
(5)安全性:FlexRay含有总线监控,它提供分布的时钟同步,同步过程包括对相位偏差和频率偏差纠正,还包括帧头和帧尾的CRC校验过程。
可见,FlexRay总线***的容错能力和分时复用能力能够满足电子组件对更高的数据率、确定性的行为和高可靠性的要求,可以为主要的安全应用提供可靠而及时的信息。此外,FlexRay能够把所有***连接在一起,作为一个整体而不是分散的多个***工作。因此,FlexRay总线***具有独特的性能优势,并在很大可能上将逐渐取代CAN而成为未来汽车及工业测控领域的主流技术。
FlexRay网络结构一般有4种形式,即总线式、星形网,星形总线混合式以及多个星形串接式,总线根据实际需要可以有多个节点。由于结构多样、复杂,因此,对各种网络拓扑结构进行比较,并根据其优缺点进行优化,可以很大程度地提高***的速度和稳定性,而且能够降低使用成本。
发明内容
本发明针对FlexRay总线通信协议与CAN接口通信协议不能相互兼容的问题,提出了一种FlexRay-CAN通信网关及实现方法。该网关能够通过FlexRay总线协议或CAN总线协议双向收发数据,实现了两种通信协议的转换功能。此外,网关还实现了A/D数据采集功能,可直接采集现场0—5V的模拟量数据,并可通过RS232接口与上位监控计算机相连,向上传送现场数据。可广泛用于汽车、电力、化工等工业控制领域。
本发明的技术方案为:一种FlexRay-CAN通信网关,包括FlexRay通信接口电路、CAN通信接口电路、A/D接口电路,还包括微控制器、RS232接口电路、BDM电路、电源电路、复位电路、LED显示电路以及键盘电路,FlexRay通信接口协议数据和CAN通信接口协议数据均进入微控制器,A/D接口电路将现场数据转换后输入微控制器,微控制器处理信号后输出通过FlexRay通信接口电路和CAN通信接口电路转发,同时也可以通过RS232接口电路将数据传送至上位监控计算机,由上位机做统一处理,电源电路给微控制器提供专门的电源,保证微控制器工作稳定,复位电路和键盘电路为操作输入给微控制器指令工作,LED显示电路为操作输出指示,BDM电路协助微控制器工作。
所述微控制器采用512kB片内FLASH,32kB片内RAM的16位高性能微控制器芯片MC9S12XF512。
所述微控制器可通过RS232接口与上位计算机机进行通信。
一种FlexRay-CAN通信网关实现方法,FlexRay-CAN通信网关,包括以下步骤:
1)通信网关主函数是程序首先执行的一个函数,实现硬件和软件的初始化;
2)通信网关由六个用户应用模块构成:***调度模块、FlexRay收发模块、CAN收发模块、A/D采集模块、键盘输入模块和串口收发模块,所有模块均以中断方式实现,设置***调度模块中断优先级最高,FlexRay收发模块和CAN收发模块的中断优先级次之,A/D采集模块、键盘输入模块和串口收发模块中断优先级最低;
3)***每隔75ms对各个模块进行一次调度,根据优先级进行中断处理;
4)进入中断后根据判断指令执行任务后跳出中断等待调度。
本发明的有益效果在于:本发明FlexRay-CAN通信网关及实现方法,可广泛适用于汽车、电力、石油、化工、冶金、钢铁、交通等行业,解决了工业现场FlexRay通信协议与CAN通信协议的转换,并通过RS232接口将数据传送到上位监控计算机,由上位机做统一处理后,用于设备参数监测及作为设备控制的依据。
附图说明
图1本发明FlexRay-CAN通信网关结构示意图;
图2本发明FlexRay-CAN通信网关功能任务图;
图3本发明FlexRay-CAN通信网关FlexRay接口及CAN接口电路示意图;
图4本发明FlexRay-CAN通信网关实现方法程序流程图;
图5本发明FlexRay-CAN通信网关实现方法中FlexRay收发程序流程图;
图6本发明FlexRay-CAN通信网关实现方法中CAN收发程序流程图。
具体实施方式
如图1所示FlexRay-CAN通信网关结构示意图,其硬件平台的微控制器1采用512kB片内FLASH,32kB片内RAM的16位微控制器MC9S12XF512,相应配备FlexRay通信接口电路6、CAN通信接口电路5、RS232接口电路4、BDM电路2、电源电路9、复位电路8、LED显示电路3、键盘电路7以及A/D接口电路10。FlexRay通信协议数据和CAN通信协议数据均进入微控制器1,A/D接口电路10将现场的数据转化处理输入微控制器1,微控制器1处理后通过FlexRay通信接口电路6和CAN通信接口电路5转发,同时也可以通过RS232接口电路4将数据传送至上位监控计算机,由上位机做统一处理。电源电路9为微控制器1提供专门的电源,保证微控制器1工作稳定,复位电路8和键盘电路7为操作输入给微控制器指令工作,LED显示电路4为操作输出,BDM电路2协助微控制器工作。
如图1所示,一方面,FlexRay-CAN通信网关通过CAN通信接口连接各类使用CAN总线的控制子***。由于工业现场越来越多的采用CAN总线技术,所以一个兼容CAN总线的标准的接口必不可少。另一方面,FlexRay-CAN通信网关通过FlexRay通信接口连接FlexRay通信控制器,而FlexRay通信控制器起到全***的控制作用,这样可以构建一个FlexRay高速总线控制***。除此之外,FlexRay-CAN通信网关还具备RS232接口,可以与上位监控计算机或其他总线设备通信,上述这些通信接口使用的接口电路与通信协议是完全不同的,FlexRay-CAN通信网关起到了异构***互联和通信协议转换的关键作用。
如图2所示***功能任务图,***采用中断来完成各模块的调度,简化了应用***的设计,使整个***结构简洁,使复杂的应用程序层次化。整个***的软件设计多个用户应用模块构成,***主函数是程序首先执行的一个函数,主要实现***的硬件和软件初始化。为了完成***实时的各种功能,本发明的应用程序根据各个任务的重要性和实时性,把程序分成六个具有不同的中断优先级,包括***调度模块、FlexRay收发模块、CAN收发模块、A/D采集模块、键盘输入模块和串口收发模块。其中***调度模块中断优先级最高,FlexRay收发模块、CAN收发模块中断优先级次之,A/D采集模块、键盘输入模块和串口收发模块中断优先级最低。高中断优先级的模块可以抢占低中断优先级的工作过程。在设计中,通过对延时参数的设置,***每隔75ms对各模块进行一次调度。
如图3所示,本发明采用的MC9S12XF512微控制器集成了FlexRay控制器,因此只需采用TJA1080总线驱动器即可。MC9S12XF512与TJA1080之间的主要连接为信号收发线、信号收发使能线、芯片使能线以及其他功能线。TJA1080的***电路主要由使该芯片正常工作所需的电阻、电容等。
如图3所示,本发明采用的MC9S12XF512微控制器集成了CAN控制器,因此只需采用***基本芯片MC33742。MC9S12XF512与MC33742之间的主要连接为信号收发线和中断信号线。MC33742的***电路主要由使该芯片正常工作所需的电阻、电容等。此外,MC33742可提供+5V的直流电压,为***供电。
如图4所示***总程序流程图,首先完成***初始化,设置***初始参数。然后逐个判断是否进行FlexRay收发数据、是否进行CAN收发数据、是否进行RS232收发数据以及是否进行数据采集,最后判断调度计数器是否达到最大值,达到则清零,否则保持现有值。计数器累加后转到下一个***调度周期。
如图5所示FlexRay收发程序流程图,根据响应的中断类别来决定是发送还是接收数据。发送数据时需要将数据格式转换为FlexRay协议格式,发送后需要确认是否正确发送。接收数据时需要将FlexRay协议格式转换为一般格式,并对数据进行验证。发送或接收完成后需要清除FlexRay中断,同时熄灭相应的LED灯来显示收发过程已经完成。
如图6所示CAN收发程序流程图,初始化完成后,根据响应的中断类别来决定是发送还是接收数据。发送数据时将数据转换为CAN协议格式,发送后需要确认是否正确发送。接收数据后需要将CAN协议格式转换为一般格式,并对数据进行验证。发送或接收完成后需要清除CAN中断,同时熄灭相应的LED灯来显示收发过程已经完成。