微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > CAN总线在机车监控系统中的应用

CAN总线在机车监控系统中的应用

时间:04-04 来源:西安工程科技学院 西安交通大学 点击:

CAN总线在机车监控系统中的应用

以Philips公司的SJA1000为例,介绍了CAN现场总线的特点,控制器的功能、结构和CAN2.0B总线协议的基本内容,阐述了一个基于CAN总线的火车机车监控系统,及其系统性能要求、系统硬件构建、软件设计思路和应用结果,由此说明CAN总线的优点及其用于工业现场控制系统的一个通用设计过程。
    关键词:CAN,现场总线,SJA1000初始化,机车监控系统,信号检测,局域网


1 引 言
  对火车机车监控系统而言,数据测量/传输的快速性、准确性、可靠性、通讯的灵活性都是至关重要的。以前的机车数据监控仅仅提供现场数据的显示和报警,在各设备上加智能仪表,比较分散,不便于观察机车运行情况和进行及时检修,机车运行数据也无法保存,而这些数据是查清机车故障原因和检修的重要依据;智能仪表的各种操作,如调零、限值、精度都因环境和人为因素,影响了简单仪表的显示、报警功能,加之工作现场环境恶劣(高温、震动、电磁波辐射等),导致其实时性、准确性都较差。随着国内现场总线技术的发展,有必要及时更新原来的检测系统。
  机车监控系统本身有几十个数据采集节点(采用单片微机AT89C51),一个上位工控机负责数据存储和记录,由于采集点多、采集频率较高(20Hz),因此,总线上的数据通常比较拥挤,而系统对数据传输的准确性、报警数据的实时性要求特别高,鉴于此,我们选择CAN现场总线搭建数据平台,它兼具了灵活性、实时性、准确性、可靠性各方面的优势。
  CAN是控制器局域网络(Controller Area Net)的简称,是80年代德国奔驰汽车公司制定的一种串行通讯协议,主要用于汽车多个控制设备和多个仪器仪表之间的数据通讯,链路层采用CAN2.0B协议。现在,它已广泛应用于各种工业现场,特别适用于做优化、分析及维护的系统。90年代,国内开始对CAN总线应用进行研究,目前已在诸多领域中应用CAN总线技术。
  本系统就是一个依照CAN2.0B构建的局域网,总线控制器采用德国Philips公司的SJA1000,驱动器为与其匹配的PCA82C250,下位机和上位机通过CANH、CANL双绞线进行双向通信。此系统的整个硬件结构又可以作为CAN网络的一个标准节点,构成树状网络,它是CAN总线系统的最小构成和典型应用。
2 CAN总线特点简介
  CAN总线的最大特征就是,网络内各节点以多主方式工作,各节点在任意时刻都可以点对点、一点对多点向其他节点发送信息,不分主从,灵活性好。
  CAN总线上同时传送的数据采用非破坏性仲裁,ID小的优先传送,低优先级数据延迟发送,这对负载较重的网络解决网络瘫痪、网络阻塞及提高效率很有效。
  CAN还有较强的校验功能,出错的数据自动重新发送,可靠性很高。
  另外,CAN通讯介质选择双绞线,机车现场空间狭窄,双绞线的现场布线、安装、拆卸都比较简单。最大通信距离长达10km,比特率可达1Mbps(通信距离较大时,比特率会有所降低),可同时传送16个报文。Philips公司的SJA1000的工作温度范围:-40℃~+125℃,存储温度范围:-65℃~+150℃。
  对于系统选用的SJA1000CAN控制器,其功能模块主要有:接口管理逻辑(Interface ManagementLogic)、接收FIFO栈(Receive FIFO)、接收过滤器(Acceptance Filter)、发送缓冲器(Transmit Buffer)和CAN核心模块(CAN Core Block),结构如图1所示(见Philips Semiconductors公司的资料:ApplicationNote——SJA1000 Stand-alone CAN ControllerAN97076,1997)。


  接口管理逻辑主要处理和微控制器的信号交换,通过CS、ALE/AS、RD、WR、INT等控制信号与微控制器进行数据读写。而CAN核心模块就是CAN2.0B的执行部分。
  接收过滤器接收经CAN核心模块转换过的数据,通过寄存器接收码寄存器(Acceptance CodeRegister,ACR)、接收屏蔽寄存器(Acceptance MaskRegister,AMR)做过滤处理,符合ID要求的数据才予以接收。ACR提供本机ID,AMR提供ID过滤时的有效位信息。接收FIFO栈用来暂存通过过滤器过滤而接收的数据。
  发送缓冲器(TB)存储欲发送的数据,CAN核心模块从发送缓冲器读数,依照CAN2.0B协议发送数据。
3 系统功能及硬件实现
  此系统除了常规系统提供的功能之外,还具有模块优先级可调(ID可调)、报警限值可调、报警历史数据的保存等功能。
  工作现场由多个模拟仪表和一些开关信号组成,每一个仪表配一块数据采集板,开关量的采集由一个和模拟量采集板相似的单独模块完成。下位机采用ATMEL公司的AT89C51微型单片机,主要做通信数据的采集、简单判断和数据发送的准备工作;通信部分由总线控制器SJA1000及其配套的驱动器PCA82C250构成,它们可以完成数据链路层和物理层的所有工作;另有上位工控机,带有5M字节的闪存E2PROM,能提供10万次擦除和10年的数据保存期,用以存储各个采集模块报警前、后1min的数据,机车每个运行周期结束后,就将E2PROM中的数据导出,以备日后的性能分析;监控报警模块,用来进行数据的实时显示及报警,为了防止上位机出现瓶颈现象,各模块的报警任务分散给下位机完成,向上位机发送数据只需将报警标志位置复位即可;总线终端接100Ω~120Ω电阻以抑制信号反射,保证通信可靠性。双绞线连接各个模块节点,形成多主控制的局域网。另外,为了防止系统运行意外,还加了X25045(美国Xicor公司的外围器件,集成了Watchdog、复位控制器、带Block锁的CMOS串行E2PROM阵列三种功能)作看门狗,4KB的SPI(Serial Peripheral Interface)E2PROM可以存储此节点的报警限值等一些重要数据。系统拓扑结构如图2所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top