刘海波,王红艳,李爱宁,何 洪
(河北工程技术高等专科学校,河北沧州 061001)
随着数字化、信息化时代的到来,现场总线技术已经广泛地应用于工业控制中,涉及行业和领域非常广泛,其中汽车制造、化工生产、钢铁制造、煤矿生产、智能建筑等应用广泛,而且尤其以CAN总线在这些行业应用中的份额较大。其主要原因就是由于CAN总线具有可靠性高、成本低、容易实现等优点,而且其传输速率高、抗电磁干扰能力强,当传输距离达到10 km时传输速度仍可达到5kbps[1]。
在CAN总线的各种应用系统中,都有大量的现场参数需要测量,从而实现对整个系统的控制和监测。对现场参数测量来说数量大、测量点分散、测量精度要求也高,如何运用先进技术实现多参数智能测控值得我们去研究。文中以TM320为核心,设计了CAN总线智能数据采集系统,实现将多种被测参数集中进行测量、处理、显示和记录,并与控制系统相连实现自动控制和调节。
CAN总线的数据采集系统采用上位机加智能网络测量节点组成[2]。系统组成框图如图1所示。
图1 系统结构框图
1.1微处理器TMS320LF2407A
TMS320LF2407A是一款定点DSP控制器,它采用了高性能静态CMOS技术,使得供电电压降为3.3 V,减小了控制器的功耗;40MIPS的执行速度使得指令周期缩短到25 ns(40 MHz),从而提高了控制器的实时控制能力;片内集成了32 K字的闪存(可加密)、2.5K的数据/程序RAM、544 B双口RAM、2KB单口RAM、500 ns转换时间的A/D转换器;片上事件管理器提供了可以满足各种电机的PWM接口和I/O功能;还提供了适用于工业控制领域的一些特殊功能:看门狗电路、串行外设模块SPI、串行通信模块SCI和区域控制器模块CAN等,从而使它可广泛应用于工业控制领域。
TMS320LF2407A的CAN模块是一个完全的CAN总线控制器,他符合CAN总线技术规范,通过驱动芯片PCA82C250就可以把DSP芯片TMS320LF2407A接入CAN总线。
1.2总线收发器PCA82C250
PCA82C250是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动接收能力。这是使用最广泛的一种CAN收发器。它具有完全符合ISOll898标准、高速率(最高可达1Mb/s)、低电流待机模式、未供电节点不干扰总线、斜率控制以降低射频干扰(RFI)、差分接收器具有抗宽范围的共模干扰和抗电磁干扰(EMI)等特点。其接口电路如图2所示。
图2 CAN总线接口电路
系统中的CAN总线智能节点的设计采用STC89C58RD+作为微处理器,SJAl000作为CAN总线控制器,CAN总线收发器还是采用PCA82C250。
2.1STC89C58RD+单片机
STC89C58RD+单片机是一款超强抗干扰、高速、低功耗的单片机。其特点为:内部32K的Flash存储器、1.28 K字节的RAM及16K的E2PROM,指令与标准的8051系列单片机完全兼容;高抗静电性、强抗快速脉冲干扰特性以及宽电压和温度范围特性;I/O口和其内部的电源供电系统、时钟电路、复位电路和看门狗电路等经过特殊处理,具有超强的抗干扰能力;有较低的电磁辐射、超低功耗、支持在线编程、加密性强。
2.2CAN通信接口
SJAl000是智能节点中总线与微处理器的控制接口,用于控制实现上位机和下位机之间的数据通信。PCA82C250作为CAN总线收发器,在SJAl000与PCA82C250之间采用高速光耦6N137用于隔离控制器与外部总线上的信号,从而避免干扰信号影响控制系统功能,提高了控制系统的可靠性[3]。接口电路如图3所示。
图3 CAN通信接口电路
CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,实时性强,节点信息分成不同的优先级,优先级高的数据最多可在134 μs内得到传输;多主方式工作,CAN总线网络上任意节点均可在任意时刻主动地向网络上的其他节点发送信息;CAN总线通信格式采用短帧格式、报文滤波技术,CAN只需通过报文滤波技术即可实现点对点、一点对多点及全局广播等多种方式传送数据[4]。
CAN总线采集系统程序软件设计分为下位机和上位机两部分。
3.1下位机智能节点软件设计
下位机CAN节点的程序主要包括初始化程序、报文发送程序和报文接收程序三部分。
初始化程序是完成对CAN通信参数设置,主要针对SJAl000。在上电复位后,才能对相关的寄存器进行设置。所以首先通过控制寄存器设置SJAl000工作在复位模式,对需要写入的寄存器如钟分频寄存器、命令寄存器、验收码寄存器、验收滤波寄存器、总线定时器0、总线定时器l和输出控制寄存器等进行写入操作。系统中CAN控制器采用BasicCAN工作模式。如图4所示为SJA1000的初始化程序流程图。
图4 SAJ1000初始化
CAN接收子程序负责节点的报文接收,SJA1000报文的接收主要有中断接收方式和查询接收方式两种方式,系统采用中断方式。开启单片机的外部中断0,设置单片机外部中断的中断优先级和中断触发方式。如图5所示为报文接收程序流程图。
CAN发送子程序负责节点的报文发送任务。报文的发送可以采用中断方式或采用查询方式,系统中关闭发送中断,采用查询方式。如图6所示为报文发送程序流程图。
3.2上位机CAN主节点程序设计
CAN主节点程序设计也包括初始化、报文接收、报文发送基本部分。对TM320来说系统采用CCS开发环境,CCS是一种针对标准TMS320调试接口的集成开发环境。其具有高度集成的源代码编辑器、对C语言源文件和DSP汇编语言文件的目标管理等特点。由于TM320的CAN模块是内嵌式,因此它的软件设计要简单一些。
图5 报文接收
图6 报文发送
在初始化时,将邮箱使能位禁止,进入复位模式。配置位定时器、寄存器(BCRl和BCR2);然后将主控制寄存器的改变数据域请求位CDR置1,进入配置邮箱寄存器来配置数据的标识符、帧类型及数据结构;最后返回工作模式,将需要用到的邮箱使能,相应的邮箱就能进行正常的发送和接收操作了。数据从CAN控制器发送到CAN总线是由控制器自动完成的,所以DSP在写数据到发送邮箱后,如果相应邮箱的发送请求为使能,则信息帧就会被发送到CAN总线上。在每次报文成功发送后,系统都会收到发送应答,将发送请求复位,开始下一帧数据的传送。系统的接收采用中断方式,设置好接收邮箱后,只有标识符相同的信息才能被接收。
该系统完成了以DSP 芯片TMS320LF2407A为核心的CAN总线多数据采集系统的设计,该系统具有抗干扰能力强、结构简单、参数采集智能化程度提高,同时由于采用总线结构,系统布线的工作量减少,尤其在多参数长距离检测中优势更加明显。该系统的应用领域也比较广泛,在汽车检测、煤矿生产等多种场合都能应用且可靠性较高。
参考文献:
[1]许文斌,桂武明.基于CAN总线的多参数测控系统设计.微计算机信息,2010,26(5-2):61-62.
[2]张颖超.基于CAN总线的温室监测系统的通信设计.控制工程,2009,1(1):103-104.
[3]王坚峰.基于CAN总线的温室环境控制系统.轻工机械,2009,27(1):69-71.
[4]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术.北京:北京航空航天大学出版社,2004.
[5]刘师良,李长青.基于CAN总线的煤矿监控系统工作站的研究.工矿自动化,2009(1):66-68.