APP下载

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

2014-01-15朱宝增黎明也管慧明

电子设计工程 2014年16期
关键词:报文总线微波

朱宝增,黎明也,严 华,管慧明

(上海微波设备研究所 上海 201802)

随着电子技术水平的日益进步,系统设计朝着模块化、通用化的方向发展。而在模块数量多达几十个的机载设备系统中,模块的控制与数据传输也面临到新的挑战。采用传统离散I/O的控制方法势必增加设备量,系统布线复杂且调试不便,可靠性不高,因此广泛采用总线设计方法,并行总线虽具有速率高的特点,但不适应于模块布置相对分散的系统中,而传统的串行总线(如UART串口)是一种低数据率和点对点的数据传输标准,难以支持相对复杂设备的功能操作。20世纪80年代发展起来的现场总线具有通信网络化、互联简单、开放的特点,因此在工业控制中得到了广泛应用,特别是CAN(Controller Area Network)控制器局域网配置灵活、帧结构简单、传输速度快且可靠性很高,广泛应用于汽车、机械、机器人、数控、医疗器械等行业,被公认为是最有前途的现场总线之一[1]。因此,在机载系统模块间数据通信采用CAN总线的方案,可以根据不同种类模块的特点,在原有技术基础上,通过精心设计和器件选型,以最小的改动,将所有模块顺利接入CAN总线网络,满足系统通用化、模块化的需求。

1 CAN总线系统总体设计

基于CAN总线的机载设备网络系统系统框图如图1所示,系统采用非对称型主从式网络结构,上位机选择的是带有CAN接口的计算机主板,作为CAN总线网络中的主节点,其它模块单元为从节点,节点数超过20个。从节点按功能类型分主要有两种形式,一种是以微波器件为主的模块,主要用于功能控制,诸如接收、变频、本振源等,这种模块内部均有一些受控单元,需要数字控制,如开关、数控衰减器、故障检测模块等等,系统设计了一款通用CAN总线控制板,该板核心器件是一款带CAN接口的微处理器,能完成与上位机的参数传输和对受控单元的译码控制。另一种是以信号处理为主的模块,主要用于数据处理,如干扰源模块等,板上的处理器以TI公司6000系列的DSP为核心,但该款芯片不含CAN接口,系统选择了一款独立的CAN控制器作为该模块的CAN接口,将其接入CAN总线网络。

系统CAN网络的通信协议以CAN2.0A帧结构为基础,数据率为500 Kb/s,最大可支持1 Mb/s,支持广播和点对点传送数据,数据包长度最大为4 GB。

一个CAN2.0A标准帧由11位的标识符、1位RTR、4位的数据长度和数据区(最多8个字节,包含数据索引和数据)组成,具体说明如表1所示,帧报文格式。

标识符占11位,分成了3个部分:方向,地址和类型,具体含义如下:

图1 CAN总线机载设备系统网络框图Fig.1 Network diagram of CAN bus pod system

表1 帧报文格式Tab.1 The frame format of message

1)方向:方向位决定一半的优先级,而剩余的优先级由节点地址决定,低地址优先级高。当方向位为“1”时,从节点发送数据报文到主节点,优先级由地址决定;当方向位为“0”时,主节点发送数据报文到从节点,优先级由地址决定;

2)地址:表示节点地址,主控计算机的节点地址定为10,本系统中规定其它模块的节点地址必须大于20;

3)类型:数据报文的类型,具体说明如表 2所示,数据帧类型。对于数据长度不超过8个字节的信息采用单帧类型;对于数据长度超过8字节的信息采用多帧类型,其中发送的最后一帧采用结束多帧类型,其余帧采用非结束多帧类型,每帧在数据包中的具体位置采用数据索引表示。

表2 数据帧类型Tab.2 Data frame type

数据长度:每帧的数据长度,最长为8个字节,占4位,包含数据索引和数据的长度。

数据索引:长度为4个字节,对于单帧报文,表示具体数据,不作索引用;对于多帧数据,该字节表示此帧在数据包中的位置,从1开始计数。

数据:长度为1~4个字节,由具体的信息内容决定。

2 信号处理模块CAN节点的设计

当前,有一些处理器将CAN控制器嵌入其中,但是仍有大量人们比较熟悉的处理器并不带有CAN控制器。系统中的信号处理模块作为CAN总线网络中的一个节点,采用的处理器就是不带CAN控制器的TI 6000系列的DSP,因此采用处理器和CAN控制器组合设计成为必要。

2.1 硬件设计

CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此CAN控制器与其它处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以TI 6000系列的DSP为核心的、基于SJA1000的CAN总线接口设计,CAN总线接口芯片选择PCA82C250芯片。

SJA1000是一种独立CAN控制器,它兼容CAN2.0A和CAN2.0B两种技术规范。SJA1000具有BasicCAN和PeliCAN两种工作方式 ,PeliCAN工作方式支持具有很多新特性的CAN 2.0B 协 议[2]。

SJA1000接口为地址/数据复用模式,DSP处理器通常为地址/数据总线分离的结构,而且DSP不提供ALE信号,设计的关键就是DSP要把SJA1000的地址当成数据写入并同时产生ALE信号。本文采用基于FPGA的DSP和SJA1000接口设计的方法,利用地址数据信号产生CAN的ALE、CS等信号,其优点在于使用多个总线设备时,可用一片FPGA完成所有总线设备的译码,这种方法有更好的适用性。FPGA与SJA1000的信号连接见原理图 2,AECLKOUT2是 DSP和FPGA之间的同步时钟信号,SAEA[22..3]和SAED[63..0]分别是DSP和FPGA之间的地址线和数据线,DSP和FPGA之间是64 bits数据宽度,而FPGA与SJA1000的接口是8位数据宽度。

2.2 软件设计

独立的CAN控制器SJA1000必须在上电或硬件复位后设置CAN通讯。在由DSP操作期间,要发送一个软件复位请求,然后SJA1000会被重新配置,即再次初始化。上电后SJA1000在管脚17得到一个复位脉冲(低电平),使它进入复位模式。而SJA1000配置信息的寄存器仅在复位模式可写,因此在设置SJA1000的寄存器前,DSP要通过读复位模式/请求标志来检查SJA1000是否已达到复位模式。初始化SJA1000流程图如图3所示。

3 微波模块CAN总线节点的设计

按照系统模块化、通用化、标准化的要求,整个机载设备系统结构上采用盲插式插盒形式,每一个盒体为一个独立功能的模块,所有模块的低频走线尽量通过背板互联。为了满足每个微波模块对外通信和对内译码控制的需求,在微波盒体内嵌入一块通用CAN总线控制板。

3.1 硬件设计

图2 FPGA与SJA1000的原理图Fig.2 Schematic diagram of FPGA with SJA1000

图3 初始化SJA1000流程图Fig.3 Flow chart of SJA1000 initialization

通用CAN总线控制板选用由STM32F103C8T6微控制器和CAN总线驱动芯片PCA82C250构成,通用CAN总线控制板原理图见图4。STM32F103C8T6是意法半导体推出的高性能、低成本、低功耗32位ARM CortexTM-M3 CPU内核。该微控制器带有bxCAN通讯接口,它支持CAN协议2.0A和2.0B,波特率最高可达1 Mb/s[3]。飞利浦公司的PCA82C250作为主控制器内嵌bxCAN模块与总线之间的CAN收发接口,该接口芯片可以同时支持110个节点在线,完全符合“ISO 11898”标准,并具有良好的电磁干扰可靠性与热保护功能[4]。

STM32F103C8T6内嵌的bxCAN模块实现了CAN协议的物理层和数据链路层的功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。用户进行软件设计时,只需完成波特率、过滤验证码等设置的初始化工作,然后再进行应用层开发。该微控制器还具有20多根的IO端口,可将上位机下传的控制参数进行译码解析,对微波模块的开关、衰减器等进行控制,大大降低了对系统I/O数量的需求。此外,这款微控制器内嵌了一个温度传感器,在对测量精度要求不是很高的场合,可以方便地实现诸如模块增益温度的补偿措施[5]。

图4 通用CAN总线控制板原理图(部分)Fig.4 Schematic diagram of the general CAN bus control board (part)

3.2 软件设计

对于控制类的微波模块大部分的指令和数据仅需要很少的字节数,例如启动模块自检只需1个字节,自检回送、接收通道选择、通道增益设置等只需2个或3个字节,这时采用CAN—bus短帧的传输方式即可。

为了减轻CAN网络的总线负荷,采用了非应答模式,即命令只发送1次,当接收节点接收到该信息后,也不必发送应答信息[2]。如有模块通信超时,系统在上电之后的模块自检就能提前知道。

通过报文标识符ID和数据的结合使用,用优先级保证重要节点的信息交互,提高了CAN通讯的实时性。为了降低各节点CPU的负担,充分利用CAN控制器的报文验收滤波功能。

通过对验收滤波器的操作,判断它的值和接收信息的识别位的值是否相等,只有相等时CAN控制器才允许在接收FIFO中保存已接收到的信息。举例来说,各个微波模块节点只需接收上位机主节点的报文,则微波模块的报文验收滤波器只对主节点发送报文进行接收即可,其它子节点发送的报文直接被滤除。

以接收模块为例,其微控制器的主程序流程图见图5。该模块内部有数控衰减器和微波开关需要控制,模块自检时需要接通外部的自检源,信号经过微波通道进入功率检测模块,如果功率在正常范围之内则自检判断正常,否则要向上位机报故障。

图5 微控制器程序流程图Fig.5 Flow chart of the micro controller program

4 系统调试注意事项

1)低温复位异常

机载设备的工作温度要求在-55~+75℃范围,而芯片STM32F103C8T6的低温只支持到-40℃,微波模块在进行低温工作试验时,经常会有低温不能正常工作的现象。经反复观测,发现单片机的RST管脚的复位时间在-55℃时比在常温时要下降约10%,考虑到单片机的复位设计采用的是RC复位电路,可能是电容在低温下容值下降导致的复位时间变短,最后通过增大电容的容值,适当延长了复位时间,解决了低温下单片机复位异常的问题。

2)阻抗匹配问题

高速传输涉及信号完整性(SI),因此需进行阻抗匹配设计,分系统间采用专用CAN电缆,在母板传输采用阻抗匹配设计,并且在终端进行120 Ω匹配连接。注意即使系统有多个节点时,在空间上处于系统远端的两个节点加入匹配电阻即可,其余节点不加,否则会导致阻抗不匹配,系统通信不正常。

5 结束语

文章基于某型机载设备工程实例,在系统总体设计上,给出了一种便捷的CAN总线通讯协议,通过报文标识符ID和数据的结合使用,用优先级保证重要节点的信息交互,提高了CAN通讯的实时性[6],减轻了CAN网络的总线负荷,可为其他设备通讯方式提供参考。在底层硬件模块的设计上,根据该机载设备中不同种类模块的特点,提出了两种模块实现CAN通信接口的软硬件解决方案,满足了系统通用化、模块化的需求。该方案已在某型机载设备中经过长达1年多的试验检验,系统运行正常,可靠性很高。

[1]申磊,吴建国,秦磊,等.基于ARM的CAN总线智能节点保护电路的研究[J].仪表技术,2013(11):29-31.SHEN Lei,WU Jian-guo,QIN Lei,et al.Research on CAN Bus Intelligent Node Protection CircuitBased on ARM[J]Instrument Technology,2013(11):29-31.

[2]Philips Semiconductors Inc SJA1000 Stand-alone CAN controller DataSheet[EB/OL].(2000-01).[2014].http://www.nxp.com/documents/data_sheet/SJA1000.pdf.

[3]STMicroelectronics Inc,STM32F103x6 DataSheet[EB/OL](2007-07)[2014].http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00210843.pdf.

[4]NXP Semiconductors Inc PCA82C250 CAN controller interface DataSheet[EB/OL].(2011-08).[2014].http://www.nxp.com/documents/data_sheet/PCA82C250.pdf.

[5]胡小禹,钱志芳.一种改善微波模块增益指标温度特性的新方法[J].电子设计工程,2012(3):78-81.HU Xiao-yu,QIAN Zhi-fang.A new way to improve the temperature character of microwave modules gain feature[J].International Electronic Elements,2012(3):78-81.

[6]严世华,何永强,郎宾.基于DSP的CAN总线应用层协议开发与实现[J].科学技术与工程,2007(22):5939-5942.YAN Shi-hua,HE Yong-qiang,LANG Bin.Development and realization of CAN application layer baseol on DSP[J].Science Technology and Engineering,2007(22):5939-5942.

猜你喜欢

报文总线微波
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
一种基于CAN总线的误码测试方法
为什么
一种USB 接口的微波开关控制器设计
微波冷笑话
ATS与列车通信报文分析