机载CAN总线节点的模块化设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机载CAN总线节点的模块化设计与实现
摘要:针对目前通用化、模块化的要求,本文针对某型号机载设备的实际应用,给出了CAN总线系统的总体设计和应用层的通讯协议,并针对目前已有的各
种模块的特性,在此基础上,针对现有的一些成熟技术,提出了CAN总线的两种
软件和硬件设计方法。

通过长时间的使用,该方案具有可靠性高、维护方便等特点,满足了系统的设计需求。

关键词:机载CAN;总线节点;模块化设计实现
引言
随着电子技术的不断发展,整个系统的设计逐渐趋向于模块化和通用化。


数十个模块中,模块的控制和数据传输也是一个新的问题。

传统的DI/O控制方
式必然会增加设备的容量,由于线路的布线复杂、调试不方便、可靠性较差,所
以普遍采用了总线的方式,虽然并行总线的速度很快,但是它并不适合在模块配
置比较分散的情况下使用,而UART串口等串行总线作为一种数据传送标准,在
较复杂的设备中很难实现其功能运行[1]。

CAN(ControllerAreaNetworic)控制器,其组态灵活、帧结构简单、传输速度快、可靠性高,在汽车、机械、机器人、数控、医疗器械等领域都有着广泛的应用,因此,在机载系统模块间数据通信釆用CAN总线的方案,可以根据不同类型模块的特点,在原有技术基础上,通过精心
设计和器件选型,以最小的改动,将所有模块顺利接入CAN总线网络,达到系统
的通用性和模块化要求。

1、CAN总线系统总体设计
本系统采用了一种不对称的主从式网络,采用了带有CAN接口的主机,以作
为CAN总线网络的主要节点,其他模块为从节点,具有20多个节点。

从节点的
功能类型分为两种,第一种是以微波为中心的模块,它的功能主要包括接收、变频、本振源等,这些模块都是由开关、数控衰减器、故障检测模块组成的。

第二
类是以信号处理为主要功能的模块,主要用于数据处理,例如干扰源等,其中
TI6000系列DSP芯片为核心,但是没有CAN接口,因此系统选用了一个单独的CAN控制器作为CAN接口,并通过CAN总线连接,该系统CAN网络的通讯协议是
基于CAN2.0A框架的,它具有500Kb/s的数据速率,最大支持1Mb/s的速率,并
具有广播和点对点的传输数据,最大的数据包长度是4GBO,CAN2.0A标准帧包括
11位标识符,1位RTR,4位数据长度以及数据区(包括数据索引和数据)。

2、信号处理模块CAN节点的设计
目前,已有许多已嵌入CAN控制器的处理器,由于系统中的信号处理部分是CAN总线网的一个结点,它所使用的处理器是TI6000系列的DSP而非CAN控制器,所以必须将处理器与CAN控制器结合起来[2]。

2.1硬件设计
CAN控制器具备了CAN总线通讯的所有必需的功能,所以CAN控制器和其他
处理器之间的接口设计是CAN总线系统的第一步。

本文着重阐述了基于SJA1000
的H6000系列DSP作为核心的CAN总线接口,选用PCA82C250作为CAN总线接口。

SJA1000是一个具有CAN2.0A和CAN2.0B标准的独立CAN控制器。

SJA1000有两
种工作模式:BasicCAN和PeliCAN,它支持CAN2.0B4的许多新功能。

SJA1000采
用了地址/数据多路传输方式,DSP一般采用地址/数据总线相隔离的结构,DSP
不能提供ALE信号,因此DSP必须将SJA1000的地址作为数据,同时生成ALE信号。

本论文采用FPGADSP与SJA1000接口的设计,以地址数据为基础,生成CAN
的ALE、CS等信号,具有多个总线器件的优势,可以由一片FPGA实现对全部总
线的解码,具有较好的适用性。

AECLKOUT2是DSP与FPGA间的同步时钟信号,SAEA[22.3]和SAED[63.O]是DSP与FPGA间的通讯线路,DSP与FPGA的通讯线路
为64比特,而FPGA与SJA1000的通讯带宽为8比特。

2.2软件设计
SJA1000在电源或硬件重置后,必须设置SCAN通信。

在DSP运行过程中,将
会发出一个软件重置请求,SJA1000会被重新配置,也就是重新进行初始化。

SJA1000在通电之后,在引脚17处获得一个重置脉冲(低),从而将其送入复位
模式。

而SJA1000配置信息的寄存器只能在重置模式下写入,所以在SJA1000的寄存器被设定之前,DSP要检查SJA1000是否已经进入重置模式[3]。

3、微波模块CAN总线节点的设计
根据系统模块化、通用化和标准化的要求,整个机载设备的系统结构采取了一种盲插的方式,每个盒子都是一个独立的能量模块,所有的模块都尽可能地通过背板连接。

为了满足微波模块的外部通讯和内部解码控制要求,将一块通用CAN总线控制板嵌入到微波箱中。

3.1硬件设计
通用CAN总线控制器选择了STM32F103C8T6单片机和PCA82C250的CAN总线驱动芯片PCA82C250组成。

STM32F103C8T6是由意法公司开发的一款高性能、低成本、低功耗的32位ARMCortexTM-M3CPU核心。

单片机采用bxCAN通信接口,支持2.0A和2-0B,其波特率达到1Mb/s,飞利浦公司的PCA82C250作为主控制器,内置于bxCAN模块与总线之间的CAN传输接口,能够同时支持110个网络结点,满足“ISO11898”的要求,并且具备较好的EMI可靠性和耐热性。

STM32F103C8T6内置的bxCAN模块可以实现CAN的物理层和数据链路层,它可以处理数据的数据流,包括位填充,数据块编码,循环冗余检查,优先级识别。

在进行软件设计之前,用户可以简单地进行波特率,过滤验证码等初始化工作,并在应用层的开发中实现。

同时,它还配备了20多个10端口,可以解码和分析上位机的控制参数,控制模块的开关、衰减等,从而减少了对I/O的要求。

另外,该单片机还内置了一个温度传感器,能够很容易地在不需要精确测量的情况下,对模块的增益温度进行补偿。

3.2软件设计
大多数的控制级微波模组所需的字节数较小,如启动模组自检只需1字节,而自检回送、接收通道选择、信道增益设定等,则采用CAN-bus短帧传送。

在CAN网络中,为减少总线负载,采用无响应方式,即指令一次,接收端收到消息后,无需再发送响应信息端口。

若有模块通讯超时,则可在上电源后进行模组自我检查。

在此基础上,将报文识别码与数据相结合,以优先级来保障各个节点的
CPU负荷,并充分发挥CAN控制器的接收与过滤功能。

通过对接受滤波器进行运算,判定其数值与所接收的识别位的数值是否相等,CAN控制器将接收到的信息存储到接收FIFO中。

例如,每个微波模块的结点只要接受上级的报文,那么微波模块的接收滤波器就可以接收到主结点的报文,而其他子结点的报文就会被过滤掉。

模组内有数字衰减和微波开关,自检时必须与外部的自检源相连,通过微波信道输入功率检测器,如果功率在正常范围内,则自动判断为正常,否则将报告给上位机。

4、系统调试注意事项
4.1低温复位异常
机载设备需要-55~+75℃,而STM32F103C8T6的低温只能支持-40Y,在低温测试中,由于微波组件在低温下运行,往往会出现故障[4]。

经过多次观察,发现单片机RST管脚在-55Y处的复位时间比常温时降低10%左右,由于采用RC复位电路进行复位,低温下电容的容限降低,使复位时间缩短。

4.2阻抗匹配问题
由于高速传送与讯号完整性(SI)有关,故需要进行阻抗匹配设定,各子系统之间使用专用CAN电缆,主板传送时阻抗匹配,终端120Q配对。

注意,即使是有多个结点,在系统远端的两个结点加上一个匹配电阻器即可,而其他结点不能加,否则会造成阻抗不匹配,造成系统通讯异常。

5、结语
本文以某型号机载设备的实际应用为基础,在系统的整体设计中,提出了一种方便的CAN总线通信协议,利用包IDID与数据相结合,利用优先级来实现关键节点间的信息交互,提高了CAN通信的实时性,减少了CAN总线的负载,为其它设备通信方式提供了借鉴。

在基础硬件模块的设计上,针对机载设备中各种模块的特性,给出了实现CAN通讯接口的两种软件和硬件实现方法。

该方案已经在某型号机载上进行了一年多的测试,证明其工作性能良好,具有较高的可靠性。

参考文献
[1]代宏泽.基于CAN总线的柴油机通信模块设计与实现[J].科技创新导报,2019,16(18):3.
[2]贾甜.基于CAN总线的模块化冗余PLC结构设计[J].物联网技
术,2015(1):2.
[3]朱宝增,黎明也,严华,等.机载CAN总线节点的模块化设计与实现[J].电子设计工程,2014,22(16):151-154,158.
[4]曾勤波.机载光纤CAN总线的设计与实现[D].湖北:华中科技大学,2012.。

相关文档
最新文档