基于CAN总线的数据采集与控制系统设计

  • 格式:pdf
  • 大小:649.72 KB
  • 文档页数:4

2011年4月15日第34卷第8期现代电子技术ModernElectronicsTechniqueApr.2011Vol.34No.8

基于CAN总线的数据采集与控制系统设计

郝寿朋1,刘瑞玲2

(1.中国海洋大学信息科学与工程学院,山东青岛󰀁266100;2.临沂市高级技工学校,山东临沂󰀁276021)

摘󰀁要:为了保证数据传输的实时性、可靠性,解决数据传输过程中易受干扰的问题,并保证数据采集和控制系统的性

能,采用CAN总线作为现场总线来实现数据传输。经过对系统软硬件在不同环境下的多次测试,验证了该系统的性能,同

时也体现了CAN总线在通信能力、可靠性和实时性等方面的明显优势。

关键词:CAN总线;数据采集;控制系统;串行通信

中图分类号:TN911󰀁34󰀁󰀁󰀁󰀁󰀁文献标识码:A󰀁󰀁󰀁󰀁󰀁文章编号:1004󰀁373X(2011)08󰀁0036󰀁03

DesignofDataAcquisitionandControlSystemBasedonCANBus

HAOShou󰀁peng1,LIURui󰀁ling2(1.CollegeofInformationScienceandEngineering,OceanUniversityofChina,Qingdao266100,China;2.LinyiSeniorTechnicalSchool,Linyi276021,China)

Abstract:Inordertoensurereal󰀁timeandreliabledatatransmission,solvetheproblemthatthedataispronetobeinter󰀁

feredintheprocessofdatatransmission,andensurethecapabilityofthedataacquisitionandcontrolsystem,CAN(controller

areanetwork)busistakenasthefieldbusinthesystemtorealizedatatransmission.CANisakindofserialcommunication

networkthatsupportsthedistributedcontrolandtherealtimecontrol,andhasthecharacteristicsofhighperformanceand

highreliability.Therepeatedtestsforthehardwareandsoftwareofthesystemdemonstratesthecapabilityofthesystem,and

embodiestheobviousadvantageofCANbusintheaspectsofthecommunicationcapability,reliability,realtime,andsoon.

Keywords:CANbus;datacollection;controlsystem;serialcommunication收稿日期:2010󰀁11󰀁270󰀁引󰀁言

随着计算机网络上的高速发展,使得信息的交流与

共享变得空前广泛和自如,而这项技术也渗入到自动化

领域的变革当中,现场总线(Fieldbus)由此应运而生,

开创了工业控制的新篇章。现场总线是一种应用于生

产现场,在现场设备之间、现场设备和控制装置之间实

行双向、串形、多结点的数字通信技术,在当今自动化领

域中具有广阔的发展前景。本文给出了一种基于CAN

总线的数据采集与控制系统设计方案,实现对开关量的

数据采集和对外部设备的控制功能。

控制器局域网(ControllerAreaNetwork,CAN)总

线是现场总线的一种,是一种有效支持分布式控制或实

时控制的串行网络通信,已经被广泛地应用于工业自动

化、船舶、医疗设备、工业设备等方面,并被公认为最有

前途的现场总线之一,其主要特点如下:

(1)CAN是有国际标准的现场总线。

(2)CAN为多主工作方式,网络上的任意一节点

都可在任意时刻向网络上的其他节点发送信息,且不分

主从。(3)CAN采用非破坏总线仲裁技术。当多个节点

同时向总线发送信息出现冲突时,优先级低的节点将主

动退出发送,而优先级高的节点不受影响继续发送。

(4)CAN节点在错误严重的情况下具有自动关闭

输出功能,使总线上其他节点的操作不受影响。

(5)报文采用短帧结构,传输时间短,受干扰概率

低,而且每帧都有CRC校验及其他校验措施,具有极好

的检错效果。

(6)CAN的直接最远通信距离可达10km,最高

通信速率可达1Mb/s。

1󰀁系统总体结构设计

系统主要由上位机(PC机)和数据采集和控制模

块组成。系统总体结构设计如图1所示。

图1󰀁系统总体结构上位机是整个系统的核心,实现系统的监控和管理

功能。CAN总线智能适配卡的作用是收集各个CAN

节点上的数据,然后转发到上位机,同时把上位机的命

令转发到各个节点。由于CAN总线特有的多主传输

方式,各个节点根据需要自主地向总线发送数据,而且

在上位机监听各个节点的同时,节点也实时监听总线并

接收自己需要的数据。数据采集和控制模块采用微处

理器和可编程的CAN控制芯片,主要用于完成现场数

据的采集、数据的传送以及各个现场设备运行的控制。

2󰀁数据采集和控制模块硬件设计

基于CAN总线的数据采集与控制系统将功能尽

可能地分散到各个控制模块中,各个模块以微处理器为

核心,完成数据采集和控制功能。为了使信息能在

CAN协议的标准下进行通信,各个模块都设有CAN

总线接口电路。该模块的微处理器(MCU)选用宏晶科

技的STC89C52RC单片机。STC89C52RC是新一代

超强抗干扰、高速、低功耗的8位单片机,指令代码完全

兼容传统的8051单片机,36个通用I/O口,3个16位

定时器/计数器,4路外部中断。根据实际需求分析,

STC89C52RC单片机完全满足本设计的需求。数据采

集和控制模块的结构如图2所示。

图2󰀁数据采集和控制模块结构图

2.1󰀁CAN总线接口硬件设计

CAN总线接口硬件结构如图3所示。

图3󰀁CAN总线接口硬件结构图

在本系统中CAN总线控制器选用SJA1000。

SJA1000是Philips公司生产的独立的CAN总线控制

器,可以应用于一般的工业环境中和移动目标的CAN总线网络控制。SJA1000是Philips半导体

PCA82C200CAN总线控制器BasicCAN的替代产品,

而且增加了一种新的工作模式PeliCAN,这种模式能支

持具有很多新特性的CAN2.0B协议。基本特性如

下:兼容BasicCAN模式;扩展地接收缓冲器(64B,先

进先出FIFO);同时支持11位和29位识别码;位速率

可达1Mb/s;24MHz时钟频率;对不同微处理器的接

口兼容;可编程的CAN输出驱动器配置。PeliCAN模

式扩展功能包括:可读/可访问的错误计数器;可编程的

错误报警器;对每一个CAN总线错误进行中断;单次

发送无重发;验收滤波器控制4B代码、4B屏蔽等。

CAN总线收发器选用Philips公司生产的专用

CAN总线收发器PCA82C250,提供CAN总线协议控

制器和物理总线接口,而且对CAN总线控制器提供差

动接收能力。基本特性如下:高速率(最高达1Mb/s);

具有抗瞬间干扰和保护总线的能力;利用斜率控制,可

降低射频干扰;使用差分接收器,可抗宽范围的共模干

扰,以及抗电磁干扰;热保护;低电流待机模式;未上电

的节点对总线无影响;可以支持多达110个节点。

为了增强CAN总线节点的抗干扰能力,并不是在

SJA1000与PCA82C250之间直接相连,而是加入了高

速光耦隔离器。这样能很好地实现总线上各个CAN

总线节点之间的电气隔离。在该系统中高速光耦采用

6N137。6N137兼容TTL和COMS电平,可通过信号

的宽度为10MHz,完全可满足CAN总线信号1Mb/s

通信速率的要求。

2.2󰀁开关量数据采集单元硬件设计

该单元用于采集现场的开关量数据的采集。硬件

电路图如图4所示。

图4󰀁数据采集单元

该单元将采集到的开关量数据传送到微处理器,并

传送到CAN总线上,然后通过CAN总线智能适配卡

转发给上位机进行处理。外界环境以及电路、器件本身

对系统引入了干扰和噪声,为了提高单片机系统的性

能,保证其稳定性,采用光耦器件进行隔离,抑制干扰。

光耦器件将电信号转变为光信号,光信号传送到接受侧

再转换为电信号。由于光信号的传送不需要共地,可以将光耦器件两侧的地加以隔离。因此在加入光耦器件37第8期郝寿朋等:基于CAN总线的数据采集与控制系统设计后,在传输信号的同时能有效地抑制尖脉冲和各种噪声

干扰,大大提高通道上的信噪比。需要注意的是光耦器

件两端的电源不能共用,否则起不到隔离的作用。

2.3󰀁控制单元硬件设计

该单元用于控制现场外部设备的运行。该单元硬

件电路如图5所示。

图5󰀁控制单元

该单元是上位机按照预先设定好的程序自动控制

输出,上位机通过CAN总线智能适配卡传送开关量到

CAN总线,然后数据采集和控制模块根据需要接受

CAN总线上的开关量,以控制现场设备。在该单元中,

开关量通过单片机的I/O端口输出,但I/O端口的驱

动能力有限,一般不足以驱动继电器,此时需要添加驱

动电路。同时,为了避免单片机受到干扰,在驱动电路

设计时,必须采取隔离措施。

3󰀁软件设计

该系统软件设计主要分为两个部分:数据采集与控

制模块程序设计和CAN总线通信程序设计。

3.1󰀁数据采集与控制模块程序设计

数据采集与控制模块程序设计流程图如图6所示。

图6󰀁数据采集与控制模块程序设计流程图

3.2󰀁CAN总线通信程序设计

CAN总线通信程序设计分为三个部分:CAN总线

初始化、数据发送和数据接收。

(1)CAN总线初始化。CAN总线初始化主要是

设置一些通信参数,保证通信的正常进行。初始化主要包括工作方式的设置、验收滤波方式的设置、验收屏蔽

寄存器和验收代码寄存器的设置、波特率参数设置、中

断允许寄存器的设置等。特别需要注意的是,初始化只

有在复位模式下才可以进行,因为SJA1000配置信息

的寄存器只有在复位模式下才可以进行写操作。

(2)数据发送。数据发送前,微处理器周期查询状

态寄存器,查看发送缓冲器是否被锁定。若没有锁定,

则把从现场取得的开关量数据发向CAN总线控制器

的发送缓冲区,然后启动CAN总线控制器发送命令,

此时CAN总线控制器自动向总线发送数据。数据发

送的流程图如图7所示。

(3)数据接收。数据接收采用中断方式。系统中

的CAN控制器检测到总线上有数据时会自动接收总

线上的数据,存入其接收缓冲区,并向微控制器发送接

收中断,启动中断接收服务程序,通过执行中断接收服

务程序,从CAN控制器的接收缓冲区读取数据,并对

其进行进一步处理工作。数据接收流程图如图8所示。

图7󰀁数据发送流程图󰀁

󰀁图8󰀁数据接收流程图

4󰀁结󰀁语

通过对系统的软硬件的反复调试表明,该数据采集

和控制系统的设计方案是成功的。该系统能高速有效

地采集、传递和处理现场数据,并且能在恶劣环境下保

证通信速率和极低的出错率,运行效果很好,体现了

CAN总线高性能和高可靠性的优点。

参󰀁考󰀁文󰀁献