摘 要:本文介绍了CAN总线的主要性能及特点,并结合自行开发设计的现场总线智能模块和通信控制器提出了CAN总线在实际工业应用中的总体结构,同时给出了CAN总线协议转换器的硬件设计方法和通信协议。 0 引言 现场总线是连接智能设备和自动化控制设备的双向串行、数字化、多节点通信网络,它也称为现场底层设备控制网络(Infranet)。现场总线技术因其集多种优势于一体的优点很快获得控制界的认同,引起了世界性的控制技术变革浪潮。现场总线控制系统FCS(Fieldbus Control System),它在现场级采用现场总线技术,从而可将各种工业现场设备通过总线与控制系统连接起来,实现双向、多节点的数字通信。与传统的过程控制系统相比,它具有如下优点: - 多点通信结构:现场设备采用一对传输线连接起来;结构简单,扩展、维护方便。
- 可靠性高:由于数字信号在传输、处理过程中与模拟信号相比,具有抗干扰能力强,精度高等特点。
- 网络开放性:现场总线是开放互连网络,用户可将其与其它网络互连,以实现信息共享。
- 互换性和互操作性:用户可根据具体应用情况,灵活选用不同厂家的设备,统一组态。
应用于工业过程控制系统的现场总线技术主要有:基金会现场总线FF(Foundation Fieldbus)、控制器局域网CAN(Controller Area Network)、局部操作网络LON Works、过程现场总线PROFIBUS和HART协议等。下面就CAN现场总线网络在工业过程中的实际应用情况给出CAN总线通信控制器设计方法。 1 CAN总线的特点: CAN总线是一种有效支持分布式控制和实时控制的串行通信网络,早期为汽车的控制系统而设计,用于汽车内部测量与执行部件之间的数据通信协议。由于其卓越的信号传输性能及极高的可靠性, 目前在很多行业已得到广泛的应用。它也是基于OSI模型,但进行了优化,采用了其中的物理层、数据链路层和应用层,提高了实时性。由于其采用了许多新技术及独特的设计,与其它现场总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其特点可概括如下: - 多主方式工作,通信方式灵活。利用这一特点可方便地构多机备份系统。
- 介质访问控制子层采用非破坏总线仲裁技术,从而避免了网络瘫痪情况。
- 通信距离最远可达10km(速率5kbps以下),通信速率最高可达1Mbps。
- 采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。
- 每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。
- 节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。
2 CAN总线的网络结构 图1 CAN总线的网络结构图 CAN总线网络结构如图1所示。图中现场设备网(Device Network)采用CAN,位于现场的智能模块(节点)和智能仪表等以及位于控制室的显示操作单元、声光报警单元、智能仪表等通过总线连接,完成数据采集和实时数据处理、调节、控制等任务。现场智能模块接收来自传感器的被控参数信号,完成实时参数的变送、控制、执行功能。隔离型通信控制器完成CAN、数据操作站SCADA及RS485接口设备间的协议互转换,在SCADA上实现集中显示、管理,控制室内仪表与现场智能模块(仪表)通过总线实现资源共享,实现控制彻底分散、管理集中的分布式控制系统。同时可方便地与工业以太网(Ethernet)连接,提高工厂的信息化管理水平。 3 现场总线通信控制器设计 3.1功能描述 现场总线通信控制器包括RS232、RS485、CAN三个通信接口,实现功能如下: - RS232与CAN的通信协议适配
带有RS232接口的数据操作站可以通过RS232接口接入,实现与CAN智能模块的信息通讯,完成操作命令的下发及智能模块实时数据、运行状态的采集。 - RS232与扩展RS485的通信协议适配
带RS232接口的数据采集站通过RS232接口接入,实现与带RS485接口的下位控制仪器、仪表等设备的连接,完成现场数据的接收和命令的发送。 - CAN与扩展RS485的通信协议适配
连接到CAN上的智能模块、仪表通过通讯协议转换器与RS485接口的控制仪器、仪表等设备交换信息,实现信息共享。 3.2现场总线通信控制器硬件设计 在设计中我们采用北京亚控公司的组态王作为操作站操作软件,通信协议选用通用Modbus RTU串行通讯协议。该协议转换器的主要功能是完成将操作站基于Modbus RTU串行通讯协议的命令及数据转换成CAN2.0协议所要求的通信格式传送给智能模块、仪表;同时将实时信息及状态信息转换为Modbus RTU串行通讯协议格式提供给SCADA。其硬件设计电路图如图 图2 现场总线通信控制器(通信协议转换器)硬件设计 从图中可以看出,该通信控制器的硬件电路包含了与数据操作站连接的RS232接口电路和CAN接口电路,均采用ATMEL公司的AT89C51单片机作为中央处理单元,在软件的支持下实现命令、数据的收发。电路中采用了IMP813L作为单片机上电复位及看门狗监控电路,该电路与软件陷阱、热启动判别等软件技术配合使用确保总线协议转换器安全、可靠地工作。双口RAM存储单元IDT7132将两个互为独立的通讯接口电路连接起来,用于存放网络配置和智能模块、仪表信息,同时作为通信接收和发送缓冲区实现两个单片机实时数据和命令传递。CAN总线通信接口电路采用PHILIPS公司的SJA1000 CAN总线控制器和PCA82C250 CAN总线驱动器。SJA1000具有基本模式和增强型CAN模式,支持11位ID或29位ID,自动检错和纠错能力高,多主仲裁结构,支持主从、点对点及广播通信方式。PCA82C250为CAN总线收发器具有 总线保护能力和驱动能力强的特点。在电路中CAN总线收发部分与主控电路部分通过6N137进行光电隔离。RS232接口芯片采用Maxim公司的MAX232。 该通信控制器电源的输人为24VDC工业标准供电电源,采用DC/DC模块电源提供两路输出相互隔离的5VDC电源,一路给主控电路提供电源,另一路供CAN总线驱动部分、以及扩展RS485总线驱动部分电路。
3.3扩展RS485接口 EIA RS485是工业界广泛使用的双向、平衡传输标准,它支持多点通信。在设计CAN总线系统时,为了兼容工厂原有RS485接口的工控仪表,设计了一个RS485扩展接口,它通过图2中右侧MCU 的异步串行口RXD、TXD 经6N137光电隔离后与RS485总线驱动器MAX1487连接,其接收发送控制端由P1.2(RP12)经4N35光电隔离完成接收与发送选择。由该部分的电路图如图3所示。 4 通信协议 4.1 CAN的数据(信息)帧结构 报文中的位流采用NRZ(Non-Return to Zero)编码,这意味着一个完整的位的位电平要么是显性要么是隐性。CAN2.0A标准据帧结构如下所示:
SOF | 仲裁场 | 控制场 | 数据场 | CRC场 | ACK | 帧结束 | SOF:帧起始表示数据帧的起始,它由一个显性位构成。 仲裁场:由11位标识符与一个代表数据帧的显性位(RTR)组成,11位标识符由CAN通信控制器SJA1000发送缓冲器第一个字节(地址10H)和第二个字节高三位组成。 控制场:由两个保留位(发送时为显性位)和四位数据长度码组成,对应定义数据长度为0 8。 数据场:由数据帧中被发送的数据组成,数据长度由控制场定义。 CRC场:由CRC序列和CRC界定符组成,CRC序列由CAN通信控制器SJA1000根据SOF、仲裁场、控制场、数据场采用多项式X15 +X14 +X10+X7+X4+X3 +X1而自动产生的十六位循环冗余码组成。CRC界定符由一个隐性位组成。 ACK:由应答间隙位和应答界定位组成。发送数据帧设备一个隐性位表示ACK间隙位和一个隐性位表示ACK界定位;接收数据帧设备在成功接收有效报文,在ACK间隙发送一个显性位报告给发送设备。 帧结束:由7个隐性位组成帧结束标志序列界定。 有关远程帧、出错帧结构请参见文献6。
4.2隔离型总线通信控制器与操作站的通信协议 采用北京亚控公司的组态王啡为操作站组态和运行软件,选用Modbus RTU串行通信协议做为通信控制器与操作站之间的通信协议,信息帧结构如下所示:
3.5T | 地址 | 功能代码 | 数据数量 | 数据1 | …… | 数据N | CRC高字节 | CRC低字节 | 3.5T | 使用RTU模式,通信数据之间发送至少有3.5个字符时间间隔(3.5T),整个消息帧必须连续传输。如果在帧完成之前有超过3.5T停顿时间,接收设备将刷新不完整的消息。地址范围为00H-0F7H,在CAN中通信控制器的地址默认为00H,所以在CAN中智能模块(仪表)等节点地址及RS485地址为01H~0F7H。
4.2.1 操作站读CAN的智能模块(仪表)节点定义,如读4号现场采集模块的四路采集数据: 操作站信息帧: CAN总线控制器SJA1000发送缓冲区(存储地址为10H~1AH) 4号现场智能模块应答(例四路采集数据均为3E8H)CAN总线控制器SJA1000接收缓冲区: 转化为回复操作站信息帧: 4.2.2 操作站向CAN的智能模块(仪表)节点写一个数据,如写5号地址现场智能模块PID给定值#3E8H): 操作站信息帧(现场智能模块调节给定值参数寄存器0010H): CAN总线控制器SJA1000发送缓冲区: 4号现场智能模块应答(例四路采集数据均为3E8H)CAN总线控制器SJA1000接收缓冲区: 转化为回复操作站信息帧 通信控制器CAN总线控制器SJA1000验收码设定为#00H,验收屏蔽码设定为#0FFH,表示可接收任何地址的信息帧。在现场智能模块中验收码设定对应其地址码,验收屏蔽码设定为#00H,表示只能接收地址为该地址码的信息帧。扩展RS485接口通信协议在应用时以上润仪表厂的通信协议进行的设计,在设计中RS485接口仪表地址范围为0C8H~0FTH,CAN智能模块地址范围为01~0C7H。参考文献 [1]PHILIPS SJA1000 Data Handbook[M].PHILIPS Semiconductors Corpoation,1999. [2]PHILIPS PCA82C250 Data Handbook[M].PHILIPS Semiconductors Corporation,1999. [3]IDT 71 32SA/LA High-Speed Dual-Port Static SRAM Datasheet[M],The IDT Product&Company Information CD,1999. [4]干树川.基于CAN的现场总线网络实现.工业自动化应用实践[C].北京:电子工业出版社,2002. [5]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999. [6]组态王6.02用户手册[M].北京:北京亚控公司,1999.
|