新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 基于CAN总线的集散控制系统

基于CAN总线的集散控制系统

作者:西北工业大学航海工程学院 周嵘 吴旭光 王慧时间:2002-12-05来源:电子设计应用
引言
新型的现场总线控制系统(FCS)突破了集散控制系统(DCS)中通信由专用网络的封闭系统来实现所造成的缺陷,把基于封闭、专用的解决方案变成公开化、标准化的解决方案。它可以把来自不同厂商而遵守同一协议规范的自动化设备,通过现场总线网络连成系统,实现综合自动化的各种功能;同时把传统DCS集中与分散相结合的集散系统结构,变成了新型基于现场总线的全分布式的结构,在传统的DCS网络的下一层再引入一个现场总线网络层,将底层智能的I/O模块、各种智能化的电子设备和各种智能化的仪表通过现场总线网构成底层的控制网络。
由于分散度的提高,每个智能单元所涉及的面很少,即使出现故障,也只影响这一个单元。同时,由于这些规模很小的智能单元可以实现全面有效的自诊断功能,出现故障可以及时报警、报告故障类型及故障点,因此给维护带来了极大的方便。另外,这个网络还具有很大的独立性,它将控制进一步下放到各个智能模块、设备中,各个单元的处理并不完全依赖于上位机的运行,即使上位机出现故障或失效,各个智能单元仍可独立地运行并执行预定功能,甚至仍可以通过现场总线传递信息,完成某些协调功能。
下面以为例,阐述了CAN现场总线的结构、特点及其实现。

技术特点
是一种串行数据通信总线,在CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对数据的成帧处理。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点是使网络内的节点个数在理论上不受限制,数据块的标示码可由11位或29位二进制组成,因此可以定义211或229个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据。CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其特点可概括如下:
* CAN为多主工作方式,网络上任一节点均可在任意时刻主动向网络上的其它节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一特点可方便的构成多机备份系统。
* CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134ms内得到传输。
* CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其在网络负载很重的情况下,也不会出现网络瘫痪的情况(以太网则可能)。
* CAN只需通过报文滤波即可实现点对点、点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。
* CAN的直接通信距离最远可达10km(速率<5Kbps);通信速率最高可达1Mbps(此时通信距离最远为40m)。
* CAN上的节点数主要取决于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A技术规范),而扩展标准(CAN2.0B技术规范)的报文标识符几乎不受限制。
* 采用短帧结构,数据段的长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节的数据长度不会占用过长的总线时间,从而保证了通信的实时性。另外,传输时间短,受干扰的概率低。
* CAN的每帧信息都有CRC校验及其它措施,保证了数据出错率极低。
* CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。
* CAN节点在错误严重的情况下具有自动关闭的功能,以使总线上其它节点的操作不受影响。
CAN总线电平如图1所示。

CAN总线控制通信系统
的实现
CAN的网络一般有3种实现方式:微控制器+CAN控制器+CAN收发器;集成CAN控制器的微控制器+CAN收发器;CAN的串行I/O器件+CAN收发器。只要符合CAN总线规范的单元都可以通过CAN接口接入CAN总线。CAN总线得到了Intel、Motorola、Philips、Siemens等众多大公司的支持,提供了许多可以实现CAN总线协议的芯片来供用户选择。另外,CAN协议是完全公开的,这些都给CAN总线的开发设计带来很大的方便。CAN控制器有Philips公司的82c200、SJA1000,Intel公司的82526、82527等。集成了CAN控制器的微控制器也很多,如Philips公司的P8XC592/598,Intel公司的196CA/CB,TI公司的TMS320LF2407(DSP)等。CAN的串行I/O芯片可以采用Philips的82c150。CAN的收发器有Philips的82c250,TI的SN65HVD230等。这些芯片一般都兼容最新的CAN2.0A/B协议。
基于DSP芯片的嵌入式控制器CAN节点实现
TI公司推出的TMS320LF240X系列、TMS320LF28X系列芯片是专门针对控制领域的应用而设计的DSP芯片。这类芯片内部不但集成有丰富的控制类单元,而且也集成CAN控制器(兼容CAN2.0A/B),因此可以很方便地将基于DSP芯片的嵌入式控制系统设计CAN总线上的一个CAN节点接入,并且只占用DSP的两根I/O口线(CAN的发送和接收端与I/O是复用的)。图2(基于CAN的第2种实现方式)是采用TMS320LF2407作为微控制器的CAN节点实现。它不但完成各类控制律,而且完成总线的通信功能。
可以看到,这个CAN节点主要是在DSP的基础上增加了一个CAN发送器PCA82C250。需要注意的是:2407采用低功耗设计,3.3V供电,而CAN发送器PCA82C250是5V供电,假如直接相连,2407肯定无法承受。采用两路光耦6N137不仅起到隔离DSP和CAN总线的作用,而且在保护DSP芯片的同时又可以进行电平转换。当然进行电平匹配,还可以采用专门的电平转换芯片,或者CPLD芯片。CAN节点的通信有三种通信模式:高速模式、斜率控制模式、等待模式。三种模式的选择是通过PCA82C250端子的接法来实现的。高速模式下要求接一个0 ~1.8kW的电阻到地;斜率控制模式下要求接一个16.5kW~140kW的电阻到地;等待模式下要求RS接到高电平,至少保证RS的端电压大于0.75VCC。显然图2采用的是斜率控制模式。至于CAN总线的终端匹配电阻的选择并不是固定的,这与所设计的CAN网络的节点个数,采用的传输介质等都有关系。终端电阻主要起到吸收信号的作用,对于较大型的CAN网络,一般在CAN总线的两端各接上一个几百欧的电阻,对于只有几个节点的试验系统,可以在每个节点的接口处接上一个几百欧或稍大一些的电阻都是可以的。
CAN控制器并不一定需要接CAN发送器才可以接到CAN上的。图3中CAN控制器通过采用一些分立的元件直接连到总线上,这种方法的不足在于必须很细致地调节电阻参数,使其满足在显性和隐性情况下,CANH与CANL的电平满足图1的形式。在隐性情况下,VCANH与VCANL被固定于平均电平下,Vdiff近似为零。在显性情况下以差分形式表示,这样可以达到抗共模干扰的作用,而且这样的连接形式只能下挂30个节点。加上CAN收发器后,不仅可以提供对总线的差动发送和接收的功能,同时也大大增强了总线的驱动能力,通信速率可达最高1Mbps,还可最大挂接110个节点。
CAN节点发送数据的程序流程图如图4所示。
CAN节点在接收数据的操作首先也是对CAN寄存器进行配置,接收到报文后,CAN控制器先进行报文滤波,假如符合要求就产生报文接收中断,DSP处理中断服务子程序将mailbox中的数据接收进来,进行处理。
基于51单片机和SJA1000 CAN控制器的CAN节点实现
由于DSP具有很强的数字信号处理能力,因此,基于DSP芯片设计的CAN节点常被用于处理信息量较大的场合。另外,在工控系统中,没有大量数据需要处理,在只要实现简单控制的场合,为了降低成本也常采用单片机开发CAN节点。采用片内带CAN控制器的单片机设计CAN节点,与上述的基于DSP的CAN节点设计类似。图5(基于CAN的第1种实现方式)就是采用AT89C52(普通单片机,不带CAN控制器)、SJA1000(CAN控制器)和PCA82C250设计的CAN节点。单片机和SJA1000 CAN控制器都需要时钟信号(SJA1000的时钟还是比较关键的,因为这将关系到以后总线波特率的设定,假如晶振太小,CAN节点就无法在高速模式下运行),这里使用24MHz的晶振,51单片机的时钟采用SJA1000的CLKOUT输出。采用集成了CAN控制器的单片机或DSP芯片设计CAN节点,可以减小系统的复杂度,提高系统的可靠性,同时也方便设计者的开发,而在价格上却并不一定会比非集成的方案高。
基于串行I/O器件的CAN节点实现
为了提高微控制器的I/O能力,降低线路数量和复杂性,进一步降低成本,Philips等公司还提供了CAN的串行智能I/O器件。这些I/O器件支持由端口输入管脚上变化引起的自动发送,时钟振荡器不要求外部器件,从而大大降低了CAN链路的成本。图6(基于CAN的第3种实现方式)是采用82c150串行连接I/O器件设计的CAN节点实现。
整个CAN通信系统的实现
图7显示的一个比较完整的CAN网络,这个网络还可以通过单片机或DSP的串口与其它网络系统通信,或通过CAN网络上PC节点的以太网接口等其它通信接口接入上层的网络中,从而形成一个更大的网络体系。基于PC机的CAN节点设计与上述几种都不相同,关键是设计符合PC机PCI或ISA插槽的板卡以及板卡的驱动开发,较以上的实现都要复杂的多。CAN总线上节点之间的通信与其它通信一样,必须采用相同的波特率以及相同的协议规范。实际应用中,我们对CAN2.0B做了一定的改进,CAN2.0B提供了29位标识符,利用前24位作为数据标识,8位一组,后五位做作为特殊功能位。将最后一位定义为数据和命令的区分位,前24位符合的报文就可以通过报文滤波,被接收节点接收,节点接收后,根据后5位来区分接收到的是什么数据,并对数据进行相应的处理。

结语
本文详细地研究了基于现场总线的集散控制系统的组成和实现,并研究了基于DSP的嵌入式控制器和基于单片机的串行智能I/O的CAN节点实现方案。研究结果表明,含有DSP和单片机的基于CAN总线而组成的集散控制系统有许多优良的性能,并能充分发挥各类节点的功能。■

参考文献:
1. 邬宽明, CAN总线原理和应用系统设计, 北京航空航天大学出版社, 1996
2. 世界仪表与自动化, 2002年2月
3. 阳宪惠, 现场总线技术及其应用,清华大学出版社, 1999
4.Philips, PCA82C250/251 CAN Transceiver Application Note, 1996
5.Philips, SJA1000 Data Sheet, 2000
6.ATMEL, AT89C52 Data Sheet, 1999

作者简介:
周嵘,王慧:西北工业大学,主要从事工业自动化技术研究、自动控制理论、现场总线技术和DSP芯片技术和应用开发等。
吴旭光:西北工业大学自动化教研室,教授。主要从事自动控制理论、系统建模、计算机仿真和工业自动化技术研究。



图1 CAN总线电平

图2 基于DSP的CAN节点实现

图3 ISO11898建议电气连接

图4 发送数据流程图

图5 基于微控制器和CAN控制器的CAN节点实现

图6 基于串行I/O器件的CAN节点实现

图7 CAN通信系统


关键词: CAN总线

评论

技术专区

关闭