基于CAN的大客飞机航电系统局域网通信设计
扫描二维码
随时随地手机看文章
摘要:提出一种基于CAN总线的大客飞机航电系统局域网通信仿真系统设计方法,探讨了CAN总线在航电总线中应用的优点及可能性。仿真系统硬件通过CAN总线通信卡及工控机实现,软件通过模块化设计方法实现。通信仿真系统实现了各子系统相关数据的传送、处理,以及相关信息的实时显示。应用表明,局域网通信系统工作正常、性能良好,能实现测试设备之间高速率的数据传输与转换,具有良好的实用价值。
关键词:大客飞机;CAN总线;局域网通信;CAN总线通信卡
0 引言
在大客飞机机载设备中,大量信息在系统与系统、系统与部件之间传递。为了让机载设备之间完成实时、准确地通信,尽量减少航电系统电气连线的复杂性,提高航电系统控制的灵活性,而能与其他子系统进行合理通信,必须选用一种合适的总线承担此任务。CAN(Controll er Area Network)总线以其独特的设计思想、优良的性能和极高的可靠性,足以完成上述任务,所以选用CAN总线来开发航电系统局域网通信仿真系统,这是CAN总线在航空领域应用的一次新的尝试。
文中采用CAN总线仿真大客飞机航电系统局域网通信,是以CAN总线为传输总线,以工控机作为子系统仿真机的通信系统,采用总线型拓扑结构。其目的在于仿真飞机某些子系统的功能、总线通信情况,测试整个仿真系统的工作情况,重点检验系统工作状态和逻辑时序的正确性,为CAN总线在航空领域的应用提供案例。
1 仿真系统的功能
CAN总线通信仿真系统分为六个子系统,仿真系统需要实现子系统之间实时准确的数据传输,根据用户需求设置系统的通信参数,如通信速率、通信方式、发送方式等,显示系统参数、本机参数、通信参数,实时显示系统接收的最新数据,保存通信记录。
CAN总线通信仿真系统由硬件和软件两部分组成。硬件主要包括PCI_CAN通信接口板、仿真计算机、总线分线盒及CAN总线等,采用总线型拓扑结构。软件主要任务是根据相应工作状态对数据进行传输、处理以及显示。CAN总线通信仿真系统的拓扑结构如图1所示。
2 仿真系统的硬件设计
CAN总线通信卡是硬件设计的关键部分,主要由CAN总线接口部分、通信控制部分和PCI总线接口部分三大部分组成。电路设计原理框图如图2所示。
PCI协议芯片采用PCI9052,采用64 MB双口RAM缓存,用复杂可编程逻辑器件CPLD和单片机89C51来控制数据的读写,以保证数据的完整性和时序性;CPLD采用EPM7128;CAN控制器采用SJA1000;收发器采用82C250;6N137用作光耦隔离。
2.1 CAN总线接口部分
CAN总线通信卡总线接口电路如图3所示。
CAN总线通信控制部分主要由CAN总线控制器SJA1000、高速光耦6N137和CAN驱动器PCA82C250组成。为了增强CAN总线节点的抗干扰能力,CAN控制器SJA1000的通信引脚TX0和RX0并不是直接与PCA82C250的TXD和RXD相连,而是在中间加入一级高速光耦6N137,这样能很好地实现总线上各个CAN节点之问的电气隔离,增强了抗干扰能力。光耦电路用的2个电源VCC和VDD必须隔离。电源的完全隔离可采用小功率电源隔离模块实现。这虽然增加了接口电路的复杂性,但却提高了节点的稳定性和安全性。PCA82C250的RS脚上接一个斜率电阻。电阻大小可以根据总线通信速度适当调整,一般在16~140 kΩ之间。SJA1000的初始化由单片机来完成,单片机通过控制SJA1000实现数据的接收和发送等通信功能。AD0~AD7连接到单片机的P0口,CS连接到单片机的P2.7口,P2.7为0时,单片机CPU的片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。SJA1000的RD,WR,ALE分别与单片机的相应引脚相连,SJA1000的INT接单片机的INT0,单片机也可通过中断方式访问SJA1000。
2.2 通信控制部分
CAN总线通信控制部分如图4所示,主要由CAN总线控制器SJA1000、单片机AT89S52和双口RAMIDT7006组成,负责整个CAN总线通信控制以及和PCI局部总线的互连。双口RAM作为CAN总线和PCI局部总线交换数据时的一个缓冲存储区。单片机AT89S52是该通信卡通信控制的核心,它负责与双口RAM以及CAN控制器SJA1000之间的通信。
将双口RAM的INTR和单片机的外部中断引脚INT1相连,当PCI9052向双口RAM传输完数据后,触发双口RAM中断引脚INTR,进而触发单片机中断,单片机执行中断服务程序,读取双口RAM中的数据。为了使SJA1000和AT89S52时钟同步,将SJA1000的CLKOUT引脚接至AT89S52的时钟输入端,作为AT89S52的外部时钟输入。SJA1000接收到新的数据后,给出中断信号INT,通过触发中断信号INT0让单片机实时处理这些数据,单片机把这些数据处理完成后,写入双口RAM指定的存储单元后,再向双口RAM的1FFEH单元写入任意数据,即可触发双口RAM左端中断,使计算机接收数据。由于SJA1000的地址数据复用,AD0~AD7可直接将其接到单片机的P0口。双口RAM地址和数据是分开的,通过74LS373和单片机P1口相连。
2.3 PCI总线接口部分
CAN总线通信卡PCI总线接口连接如图5所示。
PCI总线接口电路主要是PCI总线和双口RAM的连接电路。双口RAM是PCI总线和CAN总线数据传输的中转站,由于CAN总线相对于PCI总线而言传输速度较慢,为了充分利用PCI通道的高速特性,一般要将单片机处理后的CAN总线数据暂时缓存在外部存储器中,当存储器写满时再利用PCI总线的突发、快速的特性,将存储器数据一次性读出。这样,既充分利用了PCI接口的高性能,CPU又能空出时间来进行数据处理和显示等其他操作,从而增强数据传输的实时性。
PCI9052本质上是一个桥设备,它把PCI总线对某一段PCI总线地址空间的各种操作(包括读、写等)转换为相应的局部总线上的操作。把数据写入E2PROM完成后,当板卡上电,PCI9052从E2PROM中读取数据并写入PCI9052中的PCI寄存器和局部配置寄存器中。PC机(PCI主控设备)通过读这些寄存器,得知系统中有多少存储器以及I/O控制器要求分配相应的地址空间,将相应的基地址写入PCI基址寄存器中。假设本设计中计算机给PCI9052分配的基地址为0x8400,由局部配置寄存器的值可知,本设计采用的是I/O映射,且空间大小为FFH,则计算机对I/O空间0x8400H~0x84FFH的访问,就会通过PCI9052映射到局部空间0x00H~0xFFH。
3 仿真系统的软件设计
系统软件设计是在Windows XP环境下,用VisualC++6.0开发,采用面向对象的设计方法。软件主要包括主模块、初始化模块、控制模块、数据管理模块、通信模块、显示模块和通信接口驱动软件等。软件可以通过友好界面为用户提供通过CAN总线进行通信的双方的设备号、端口号、波特率、数据等,可以初始化芯片,可以进行复位操作,可以设置波特率。向用户展示CAN总线的通信过程和结果,体现CAN线协议的功能。软件流程图如图6所示。
3.1 主模块
主模块通过调用适当的功能模块,控制系统初始化及整个系统软件的流程。
3.2 初始化模块
初始化模块通过调用API函数进行硬件初始化和软件初始化。主要完成各子系统之间通信所需要的通道选择、波特率、帧格式、工作方式、发送数据方式、发送数据周期等初始化设置。
3.3 控制模块
控制模块主要完成对系统状态、通信以及显示的控制,根据操作人员的操作及其他系统节点的相应状态,确定系统运行状态与工作方式的控制与切换、有关数据通信的控制等。
3.4 数据管理模块
本模块主要完成系统运行过程中,对将要发送的数据进行实时的编码,对接收到的有关数据块进行实时解码。数据处理的主要功能是根据接口控制文件(ICD)文件数据块的大小,配合发送、接收模块完成数据帧的封装和解析。ICD用C++的结构类来表示,并且每个子系统对应一个惟一的ICD文件,ICD文件里面存放有多个数据,形成数据块。数据发送时通过调用软件发送函数,将ICD文件中的参数通过编码组成对应的CAN总线信息帧数据场并以字节的形式进行发送。
3.5 数据通信模块
通信模块通过调用通信卡上底层的API函数,配合数据发送和数据接收等模块完成对各个子系统的数据发送和接收功能。
CAN协议规定数据帧每帧最多携带8个字节的数据。如果数据块的总字节数大于8,那么需要分成多帧传送,并且准确标示数据帧序列号,分辨出帧数据场中的数据对应数据块中的第几个数据。比如在封装时有可能遇到封装某一两字节数据时,本帧目前只能放下一个字节数据,那么本帧将封装低字节,而高字节则被封装进下一帧。程序中设计int型变量ordernum标示这种情况的封装。接收时按封装的反过程解析数据。
3.6 显示模块
显示界面如图7所示。
图7中左端显示各子系统ICD文件节点名称,右上方显示该子系统从其他子系统接收到的最新数据,右下方显示收到最新数据的物理值及在ICD文件中的属性。状态栏显示系统状态。
3.7 应用层协议
应用层协议并不属于软件编程的范畴,但是CAN 2.0协议只规定物理层和链路层的标准,没有规定应用层通信协议,而数据的通信必须按照应用层协议来封装帧、解析帧。目前有很多成熟的工业协议可以选择,但不完全符合本系统的要求,为此,专门制定了针对本系统的应用层协议。
本软件采用扩展格式的数据帧进行通信,扩展帧的29位标识符结构设计如表1所示,应用层信息帧格式如表2所示。
利用本应用层协议传输数据,可以从信息帧中获取数据来源、顺序、是否为最后一帧等信息,完全满足了仿真系统通信的需要,较好地完成了各个子系统之间的通信。
4 结论
CAN总线具有很好的应用前景,它采用非破坏基于优先权仲裁技术,可实现多主工作方式,传输时间短,受干扰概率低,系统灵活、可扩展性强,报文摒除了传统的源地址、目标地址的概念,仅用标识符来指示功能信息、优先级信息,安装简单,易于维护,经济性好。该仿真系统已交付使用。使用结果表明,CAN总线局域网通信卡工作良好,系统工作正常,实现了各子系统之间的通信,人机界面友好,为大客飞机航电综合控制系统不断发展做好技术和物质准备。