0 引言
列车微机控制系统的数据通信网络主要用于传输列车运行时的控制命令、状态、管理信息。以及故障诊断及显示信息等。随着世界铁路市场需求的变化和技术的进步,铁路机车车辆工业对车载数据通信网提出了新的需求,以期建立一个用于铁路设备的标准数据通信平台。为此,国际电工委员会(IEC)历经10年的努力,制订了列车通信网(Train Communication Network)国际标准,简称TCN标准。TCN将整个列车微机控制系统的各层次以及各层次的各单元连接起来,作为系统信息交换和共享的渠道,从而实现全列车环境下的信息交换。列车通信网的应用,使得列车控制系统真正成为一个分布式控制系统,并为列车系统的信息化打下了基础。
1 列车微机控制系统的通信网络
按照TCN标准,列车通信网一般可由连接各个车辆的通信主干网和连接车辆(或固定编组的车辆单元)内部各种设备的通信子网组成。TCN标准中通常将列车主干网称为绞线式列车总线WTB(Wired Train Bus),而将列车通信子网称为多功能车辆总线MVB(Multifunction Vehicle Bus)。图1给出了由这两种总线构成的列车通信网的网络拓扑结构。
2现场总线设备的选择
在TCN所定义的MVB设备类型中,有一类设备是没有处理器的,主要用于连接简单的传感器和执行器的现场设备,一般只参与过程数据的传输,不参与消息通信。鉴于这些设备的现场应用特点,可以将这些现场设备通过现场设备总线(简称现场总线)互连起来,以便通过网关作为车辆总线的设备连接到车辆总线上。在众多的现场总线中,CAN总线凭借独特的优势可被用作列车通信网的现场设备总线。事实上,在列车微机控制系统中,利用CAN总线在数据采集方面的简单性以及数据通信方面的实时性和灵活性,可以方便地对现场控制设备及各类传感器进行信息传输控制及状态数据的采集,从而简化车辆总线的某些功能。
3 CAN通信节点的硬件设计
在TCN网络中,CAN总线节点主要实现现场数据采集和数据通信两个功能,其中现场数据的采集是在列车微机控制系统中,将车辆总线上挂接的智能现场控制设备(即功能控制单元)的功能进一步分散化,即将其分成现场控制单元(设备)和现场I/O采集模块,并用CAN总线将其连成现场总线网络。其中现场控制单元是连接车辆总线和CAN总线的网关,I/O模块一方面对现场传感器信号进行采集及处理,并通过CAN总线接口输出至现场控制单元:另一方面又将通过车辆总线传输下来的控制命令等输出至相应的执行机构。I/O模块在某种程度上相当于为控制单元提供的带CAN总线接口的远端数据采集模块。
本系统中用于通信控制CAN的总线节点由CAN通信接口模块与CPU模块(系统)组成。其中PC/104CAN通信接口模块是一块采用PC/104总线的CAN通信接口卡,其功能主要是实现数据帧的收发及处理。PC/104CAN模块与PC/104总线的CPU模块连接在一起可构成基于PC/104总线的CAN总线通信节点。其中PC/104 CAN模块的硬件结构如图2所示。
所有的CAN节点均通过CAN通信接口向总线上发送数据,并接收与自己相关的总线数据,同时可将采集节点采集的数据传送到监测节点,并将监测节点的控制命令发送到每个采集节点,从而完成整个现场总线网络中的数据交换。在总线通讯接口中,CAN通讯控制器选用SJA1000,CAN总线驱动器则选用82C250。
图2中SJA1000控制器左侧的地址总线通过74LS245连接到PC104总线,而左侧的控制总线连接到GAL20V8的译码电路,右侧通过两个高速光耦器件6N137的隔离与CAN总线驱动器82C250相接.然后通过一个I)B9的通信接口插头座接人CAN通信传输介质。
SJAl000控制器所提供的微处理接口信号主要有AD0~AD7共8根地址数据总线和ALE、CS、RD、WR、RST、MODE、RST和INT,控制器的数据和地址是分时复用线,其中MODE为接口方式选择信号,可选用INTEL方式和MOTOROLA方式。其中INTEL方式对于目前流行的单片机提供了方便快捷的直接接口,但是,对于PC104总线来说.其地址线和数据线是分开的,因此,如何将SJAl000的微处理器接口和PC104总线相连接是电路设计需重点解决的一个关键问题。为了增强PC104。管线的数据驱动能力,本设计采用74LS245来连接SJAl000的数据总线。同时用GAL作为接口逻辑转换电路。并利用GAL器件对信号的转换功能来协调PC104总线与外围器件之间信号线的不兼容性。CPU送来的控制线和地址线信号可作为GAL的输入信号,然后在GAL器件内部按一定的逻辑关系进行组合。从而将生成的一组新的输出功能信号作为接口控制信号送到SJAl000、74LS245、6264,另外,还要考虑这些输出信号的I/O端口地址。所以,问题的关键是要找到GAL的输入与输出关系.为此,首先应分析GAL两侧的信号:其中GAL20V8输入信号是来自系统总线的SA0~SA9、IOR、IOW和来自SJAl000的INT;输出信号主要是面向SJAl000的WR、RD、RST、CS、ALE和总线上的IRQ。因此,可利用一片GALl6V8通过编程用作译码器,以将6264的8KB地址唯一地确定为F0000H—F1FFFH。这种译码程序的设计可以是多种多样的,只要对全部余下的高位地址线进行处理,就可以唯一地实现所要求的存储器地址范围。这种译码连接方式称为全地址译码连接。在分析了GAL器件的这些输入/输出信号之后,即可根据各芯片信号线的要求及端口地址的分配情况来进行相应逻辑信号的译码控制。
4 CAN通信节点的软件设计
通信接口模块PC/104CAN的功能是根据节点主机给它们的指示将命令信号发送至CANIO模块或其它通信节点,同时接收CANIO发送的采集数据或其它通信节点数据,并将其存入RAM,以供节点主机CPU读取和处理。图3所示是一组CAN节点的通信网络结构图。
通信接口模块的硬件驱动程序主要完成CAN通信节点硬件间的通信任务,同时为高层提供一组访问底层硬件设备的应用接口例程。本系统设计的驱动程序是一组逻辑程序,其中具有通用意义的接口驱动函数,它可使应用进程的实现与通信模块硬件的具体实现无关,这样,具体通信硬件实现的差异就被硬件驱动程序屏蔽了。而这可使得CAN节点网络中高层应用软件的模块化和可移植性变得非常方便。
在本系统软件主要包括CAN总线的初始化子程序、CAN总线的数据接收子程序、CAN总线的数据发送子程序等,这些程序可最终完成模拟数据的接收和发送等通信功能。图4所示是系统的总体程序流程图。
5结束语
本次设计的CAN总线网络由3个节点组成,其中以PC/104CAN为主节点,而以CANIO为从节点。作者将实验室自制的输入/输出信号模拟装置连至数据采集节点CANIO,然后在模拟装置中用钮子开关的通断来实现110 V数字输入信号的采集,一15~+15 V的模拟输人信号的输入调整则通过电位器来实现,同时用发光二极管显示来自CANIO的数字信号输出。整个通信网络可以采用点对点的主从方式进行数据通信,从而完成以下功能:
(1)正确实现了CAN协议数据链路层及物理层的功能,并对于上述定义的应用层协议作了初步的尝试,但还有待进一步深化。
(2)PCI04-CAN可根据主机CPU的命令数据,从CANIO结点每隔10 ms定时接收一次数据,并可根据主机的命令要求向CANl0结点发送数据。