多通道CAN总线组网研究

时间:2022-07-05 04:38:31

多通道CAN总线组网研究

摘 要:在工业监控系统中,建立高速、可靠的数据通信通道是其中的关键技术。针对实际监控系统超过500个现场节点的要求,应用可靠快捷的CAN总线组网技术,并对各种CAN总线扩展组网方案进行研究,分析各组网方案的原理,比较其优缺点,在实际系统中采用通过多串口卡扩展CAN通道组网方案,充分利用计算机高速分时采集数据、处理数据的特点,提高系统的可靠性。并给出系统中部分电路原理图和软件程序流程图。

关键词:CAN总线;多串口卡;转换卡;流程图

中图分类号:TP273 文献标识码:A

文章编号:1004-373X(2008)06-095-04

Research on Multi-channel CAN Bus Networking

SONG Yuqin 2,GONG Chao3,ZHANG Wanjiang4

(1.College of Automation,Northwestern Polytechnical University ,Xi′an,710072,China;

2.College of Electronics and Information,Xi′an Polytechnical University,Xi′an,710048,China;

3.Sale Department,Xi′an Coal Mining Machinery Plant,Xi′an,710032,China;4.Xi′an Electric Power Institute,Xi′an,710032,China)

Abstract:Building high-speed and reliable communication channel is crucial technology in industry monitor system.Aiming at requirements over 500 field nodes in practical monitor system,the reliable and fast CAN bus technology is used.Various extended CAN bus networking schemes are studied.The theories of schemes are analyzed.Advantages and disadvantages are compared.The extended networking project through multi-serial port card is adopted in the practical system.It makes good use of the computer characteristics of high speed and time-sharing dada collection and processing.The reliability of system is improved.Parts of circuit theory chart and program flow chart are illustrated.

Keywords:CAN bus;multi-serial port card;conversion card;flow chart

1 引 言

在工业过程的数据采集、监控管理及分布式控制中,要求车间监控室通过高速数据通道对生产现场的运行数据进行实时、准确监控,从而改善控制性能,提高控制精度,有效进行设备故障检测和诊断,及时反映企业生产状况,提高企业的生产效率。因此在监控系统中采用何种技术组建网络数据通道就成为一个关键问题,由于采用CAN现场总线技术构建网络通道具有良好的故障隔离能力和可靠性,因此在工业控制系统中得到了广泛的应用。本文根据实际监控系统超过500个现场节点的要求,对各种CAN总线扩展组网方案进行了比较研究,最终采用扩展多通道串口CAN总线组网方案,提高系统通信速度和可靠性,完全满足系统要求。

2 多通道CAN总线组网方案

监控系统采用CAN总线作为数据通道,具有数据传输速率快、可靠性高的优点。但CAN总线组网节点有限,网络中最多只能有110个节点,在系统节点众多时,采用单一CAN总线网络就无法满足系统要求,必须对CAN总线网络进行扩展。

(1) 组网方案1:采用多个CAN卡进行直接组网。

购买市场上成熟的CAN卡产品,把多个CAN卡直接插入到监控室PC机的扩展插槽中,利用CAN卡组成多个CAN网络,实现对现场节点的监控。例如对于具有150个节点的系统,可以采用2块CAN卡,每块CAN卡实现对75个节点数据的监控。这种方案,系统结构简单,组网方便,但对于节点众多的监控系统,却难以实现。如本系统要求对500多个现场节点进行监控,至少需要5块CAN卡,而PC机的扩展插槽有限,因此本系统只适用于网络节点数较少的系统。

(2) 组网方案2:采用分级监控的方案。

采用单路输出的CAN卡和CAN中间转换系统组成一级CAN总线网络,再通过CAN中间转换系统和现场节点组成二级CAN网络,从而扩展了现场监测系统的节点数,级数越多,可监控的现场节点数也就越多。分级扩展的方案可扩充的节点多,但由于需要中间转换系统,使系统的级数增加,现场信息必需经过中级才能传送到主计算机处理,信息传送速率较慢,且在中间级出现故障时会使系统局部瘫换,此种方案适用与监测节点在千点以上的系统。

(3) 组网方案3:通过扩展串行端口,结合多路RS 232转CAN总线的转换卡,实现对CAN网络的扩展。

即购买多路输出的串口卡,比如MOXA公司生产的4路或8路输出的多串口卡C104P/C168P,再配以多路RS 232输入多路CAN总线输出的转换卡,分时对各路挂接的节点扫描监测,从而扩展所监测的节点数。采用多串口卡的方案,可充分利用计算机高速分时采集数据、处理数据的特点,多路“同时”发送及接收数据,采集现场数据快捷及时,即采集数据的速率高。并且由于每路的CAN总线直接与现场监测系统相连,可以很好地实现现场数据的分散采集,主计算机对数据的集中处理,系统的危险分散,可靠性高。但此种方案需要购买多串口卡,并对每个串口输出配置RS 232转CAN的转换卡。此种方案最适用于一千个节点以下的系统。系统组网结构图如图1所示。

(4) 组网方案4:通过单一串口,配置RS 232转CAN的专用转换卡,实现多通道CAN总线组网。

为此,在系统中采用模拟开关,如4路双向模拟开关CD4066,低电压双路模拟开关MAX4684等。当模拟开关导通时,导通电阻低,相当于接通电路;模拟开关截止时,呈现很高的阻抗,可以看成为开路。计算机通过命令来选择所要监控数据的通道,由RS 232转CAN转换卡上的微处理器控制模拟开关的通断,从而选中所要采集数据的通道,实现对通道切换。这种设计将使系统简单,占用系统资源少,系统组成就具有很大的灵活性。但模拟开关接通时有一定的电阻,相当于在CAN回路中串联了电阻,如果该接通电阻很大,信号在模拟开关处的损耗变大,造成信号衰减,影响CAN信号的通信距离和效果,为此,在实际组网过程中要选用低接通阻值的模拟开关。同时由于增加了对模拟电子开关的控制,所以系统软件编程较复杂。系统组网原理框图如图2所示。

3 RS 232转CAN总线转换卡

根据对以上方案的综合比较,由于本监控系统需要对现场500多个节点实现实时监控,因此组网方案3与组网方案4都可以考虑,方案4虽然简化了系统结构,但当模拟电子开关出现故障时,整个网络都会陷入瘫痪状态,而且软件编程较复杂,因此本系统采用方案3实现多通道CAN总线组网。

在此,使用MOXA公司提供的C168P八端口串行通信卡,扩展8路串行通信端口。C168P多端口串行通信卡,用于PC/AT总线,采用ASIC芯片代替了传统的ICS芯片。其传输速度范围可达到50~115.2 b/s。支持RS 232标准电平信号,8个端口可以分配不同中断向量或同一中断向量。并且,MOXA公司提供了基于Microsoft Win32 API函数下开发的PComm软件库,可用于上层多进程或多线程串行通信的软件开发,适用于VB,VC,Delphi等高级语言软件开发环境。由于其性能优良,使用方便,所以被广泛应用于多端口串行通信中。该卡具体设置如表1所示:

由于扩展的8路串行通信端口都为RS 232标准接口。所以他与CAN现场总线不能直接相连,每一路串行端口都需通过转换卡进行转换。此外,CAN现场总线是以报文帧为单位进行数据通信的,且每个报文帧均携带对应的ID标识符,而RS 232是以字节为单位的。所以,需要将RS 232的字节转换成CAN的报文帧形式,或者将CAN的报文帧分解,以字节的形式发送给计算机。这就需要设计一块由RS 232转为CAN总线的转换卡。此转换卡应能将计算机要发送的数据转换成CAN的格式,通过总线发送出去。而且也能将其他节点的数据转换成RS 232信号传送给计算机。为了将计算机转换成为CAN格式,在转换卡中使用AT89C51作为处理器。其中1路转换卡的具体电路图见图3所示,其他7路与此相同。

图3中将串口RS 232电平经过MAX202转化为TTL电平,然后经过光耦6N137进行光电隔离后和AT89C51的串口相连。此转换卡的核心器件为CAN控制器SJA1000。CAN控制器用来执行完整的CAN协议,完成CAN通信功能。图3中AT89C51和CAN控制器SJA1000相连。SJA1000有2种模式,分别是Intel模式和Motorola模式。SJA1000的MODE脚决定选用何种模式;当该脚接高电平时,SJA1000是Intel模式,当该脚接低电平时,SJA1000是Motorola模式。本系统中,SJA1000 的MODE脚接高电平,选用的是SJA1000的Intel模式。图3中使用PCA82C250CAN驱动器作为CAN总线收发器。PCA82C250是CAN控制器与物理总线之间的接口,该器件可以提供对总线的差动发送和接收功能;他能够抗瞬间干扰,具有保护总线能力和斜率控制降低射频干扰功能;具备热保护功能;实现总线与电源及地之间的短路保护;掉电能够自动关闭输出;并可与多达110个节点相连接。CAN接收发送器实现将CAN控制器送出的逻辑电平转化为总线上的物理电平。

此转换卡的工作原理为:当PC机向其他节点发送数据时,PC机发出的数据经过MAX202先变成TTL电平送入89C51。89C51接收到PC机发来的全部数据后,按照SJA1000要求格式把这些数据重新组装,通过SJA1000发送给82C250。最后82C250把这些数据发送到CAN总线上。PC机接收数据的过程则与此相反。

4 系统通信软件设计

4.1 PC机通信程序

PC机上安装的监控程序要求能够实现对各现场节点数据的实时监控与采集,通信过程是通过扩展串行口进行的。在Windows操作系统提供的串行通信驱动程序的基础上,利用Windows API函数就可实现串行口的编程。但在本系统中,使用VC++为编程环境, 基于MOXA公司提供的Pcomm软件库实现串口数据采集。他把Win32 API封装在自己的软件包内,简化编程步骤,缩短了编程时间。PComm对串口进行编程通信涉及下面的4步处理过程:打开一个要通信的串行端口; 配置串口;通过串口收发数据;释放串口。函数形式如下所示:

(1) sio_open (port);

(2) sio_ioctl (port,B38400,P_NONE | BIT_8 | STOP_1 );

(3) sio_write (port,"ABCDE",5); sio_read (port,ibuf,length);

(4) sio_close (port);

掌握了对串口通信的关键步骤后,在PC机与现场节点之间还需要建立通信协议,以保证数据收发的正确性。本系统定义的通信数据帧共24个字节,包含地址区、命令区、数据区和校验区4个部分,其中校验采用校验和的方法。在软件监控程序中自定义通信函数,程序其他部位需要通信时,只要给此函数传递适合的参数,正确调用函数,就可实现通过串口收发数据。PC机通信函数流程图如图4所示。

4.2 转换卡通信程序

RS 232转CAN总线转换卡一方面要将PC机发送的数据帧通过SJA1000发送到本转换卡组成的CAN网络上;同时对于现场节点送回的数据,转换卡也需要接收后转发给PC机;因此转换卡通信程序是整个系统中非常重要的部分。转换卡中,接收PC机扩展串行口发来的数据和回送给PC机的数据都是通过单片机89C51的串口通信完成,采用单片机串口中断的方式进行。而转换卡和现场节点之间的数据发送和接收采用CAN总线通信完成,因为数据帧共有24个字节,但CAN控制器SJA1000每次最多只能发送和接收8个字节,要完成每个数据帧24个字节的通信,SJA1000需要发送或接收3次才能实现。转换卡中SJA1000发送和接收都采用中断方式,中断信号连接到转换卡单片机的外部中断1上,单片机在外部中断程序中完成数据的发送和接收。因此转换卡上通信程序主要包括:单片机串口发送/接收中断服务程序、SJA1000的发送/接收中断服务程序。单片机串口通信程序较为常用,在此不进行详述。图5给出了SJA1000发送中断服务程序流程图,SJA1000接收中断服务程序流程图原理与此相似。

5 结 语

当监控系统中CAN网络节点数超过110个时,必须采用多通道组网方式。本文针对各种多通道CAN总线组网方式进行了研究,在系统实际组网中选择通过多串口卡扩展CAN通道组网方案,很好地实现了CAN总线工业监控网络的数据通信和现场监控管理功能。

参考文献

[1]夏继强,邢春香.现场总线工业控制网络技术[M].北京:北京航空航天大学出版社,2005.

[2]阳宪惠.工业数据通信与控制网络[M].北京:清华大学出版社,2003.

[3]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.

作者简介 宋玉琴 女,1972年出生,安徽合肥人,西安工程大学讲师,西北工业大学在读博士研究生。研究方向为故障诊断与容错控制、智能控制、嵌入式系统等。

上一篇:异步时序逻辑电路分析方法的研究 下一篇:Matlab软件在信号与系统辅助教学中的应用