一、引言
目前我国北方许多城市已经或者即将进行热网改造工程,将传统的分散供热改造为集中供热。
随着现场总线技术的发展及其在工业自动化领域的不断深入,传统的DCS将会被新一代的现场总线式集散控制系统(Field Distributed Control System ,FDCS) 所取代。经过对目前比较有影响的几种现场总线技术进行研究,在分析对比的基础上,选择了CAN总线作为热网监控系统设备层通信总线。CAN总线(Controller Area Network) 䘎其他总线相比有如下特点:
(1) CAN为多主方式工作;
(2) 废除了传统的站地址编码,而代之以对通信数据块进行编码;
(3) 数据段长度最多为8个字节, 保证了通信的实时性;
(4) CAN的每帧信息都有CRC校验及其它检错措施,保证了数据通信的可靠性。
本文介绍的是针对热网监控系统开发的现场控制和通信的子系统,能安全可靠地实现现场数据采集、闭环控制及数据传输。鉴于篇幅,本文重点介绍CAN网络通信部分的设计与实现。
二、热网监控系统结构及其硬件构成
2.1 系统结构
热网监控系统主要由上位机和现场控制器组成,总体结构如图1所示。
图1 热网监控系统总体结构
热网监控系统是在一次设备(传感器、变送器、各种执行机构)的基础上完成对热网的监测与控制,通过调节供热管网的供水流量、供水温度、供水压力,保证热网安全、可靠、高效、稳定的运行。根据上述要求,本系统在保证系统可靠工作和降低成本的条件下,考虑到通用性、实时性和可扩展性等方面的因素,采用了主要由上位计算机系统和现场控制器构成的系统结构。
系统工作过程如下:上位机首先初始化CAN网卡,设置网卡工作模式、接收码、接收掩码和波特率,然后进入运行状态,在适当条件下与现场控制器进行通信。现场控制器主要完成现场数据的采集与处理、现场设备的控制等功能,并以查询或中断方式与主机进行通信。
2.2 硬件系统
CAN网络的拓扑结构采用总线式结构,其结构简单、成本低,系统可靠性高。信息的传输采用CAN通信协议,通信介质采用双绞线。
1.上位机
上位计算机采用工控机,其负责对整个系统进行管理。上位机通过CAN网卡与现场控制器通信,同时通过局域网或者公共电话交换网与整个工厂或者公司的计算机信息网络进行连接,实现信息共享。上位机具有组态、数据采集、参数设置、远程控制、流程显示、数据存储、趋势显示、报表打印、通信等功能。
2.CAN网卡
CAN网卡是负责CAN总线与PC机之间数据交换的功能模块。CAN网卡上存在两个方向的数据交换:CAN网卡与PC机之间的数据交换(通过双端口RAM实现)以及CAN网卡与CAN总线之间的数据交换(由微处理器通过访问CAN控制器的接收缓冲区以及发送缓冲区来实现)。CAN网卡上的CAN控制器选用的是PHILIPS公司的SJA1000芯片。
3.现场控制器
现场控制器的结构框图如图2所示。
图2 现场控制器的结构框图
该现场控制器具有14路模拟量输入端口、2路模拟量输出端口、4路开关量输入端口、4路开关量输出端口以及时钟接口、数据存储接口、液晶显示接口、网络通信接口、报警输出接口等。本系统采用TI公司的带有10位A/D转换器和CAN控制器的DSP芯片TMS320LF
网络通信接口单元是用来对CAN总线进行读写访问的一部分控制电路。当需要发送数据时,中央处理单元将数据交给网络接口单元电路,由网络接口单元电路进行数据格式转换、串并转换和信号形式转换,将数据按照CAN协议信号形式发送到CAN总线上。当CAN总线上有数据时,它负责从CAN总线上读取数据。首先通过帧过滤功能判断是否接收此帧,若接收,则通过与发送相反的过程,将数据交给中央处理单元。
网络通信接口单元主要由TMS320LF
三、CAN通信软件设计与实现
CAN遵从OSI模型,按照OSI基准模型,CAN结构划分为两层:数据链路层和物理层。然而,在实际应用中,即使只是实现简单的基于CAN的分布式系统,仅有物理层和数据链路层是远远不够的。比如对于传输长度超过8个字节的数据块、带有握手协议的数据传输过程、标识符分配、通过网络管理节点等,这些功能就不能实现。
因此需要在这两层之外附加一层来支持应用过程,即“应用层”。这一层功能对应OSI基准模型中的上五层,主要完成网络层和传输层的工作,提供接口,使得通信模块和具体应用模块分离。针对热网监控系统,应用层协议需要通信双方具体协商制定。
3.1 CAN通信应用层协议
现场控制器软件设计中与上位机的通信是最关键的部分之一。针对热网监控系统,经过通信双方具体协商制定,使用现场总线CAN网络技术,制定了CAN应用层协议。应用层完成的主要工作有:标识符分配、多报文数据包的处理、报文发送与接收等。
1. 标识符分配方案
TMS320LF
其中,DIR表示方向。DIR=0时,表示主站向从站发送数据;DIR=1时,表示从站向主站发送数据。TYPE为报文帧类型,当TYPE.2=0时,表示点对点发送;TYPE.2=l时,表示广播发送。当TYPE.1~TYPE.0=0Xb时,表示单帧报文;=11b时,表示非结束多帧报文;=10b时,表示结束多帧报文。另外还有目标地址和源地址各七位,命令符八位。命令符是用来标识上位机对现场控制器的控制命令,或现场控制器对上位机的上传命令。
2. 报文的处理
本文对CAN通信中的报文处理做了以下规定:
(1)单报文:
单报文由标识符中的数据类型TYPE.1决定,当其为0时表示为单报文,此时待传送的数据不超过8个字节,数据段中为实际传送的数据。
(2)多报文的首帧和中间帧:
多报文的首帧和中间帧由TYPE.1~TYPE.0决定,当其为11b时表示为非结束多报文,即为多报文的首帧和中间帧,此时待传送的数据超过8个字节,数据段中第1个字节为索引项,后7个字节为传送的数据。
(3)多报文的尾帧:
多报文的尾帧由TYPE.1~TYPE.0决定,当其为10b时表示为结束多报文,即为多报文的尾帧,此时规定该帧中数据长度为2个字节,数据段中第1个字节为索引项,第2个字节为待传送数据的总长度,单位为字节。
3.2 CAN通信初始化
CAN通信初始化主要是设置CAN的通信参数,包括配置位定时器和初始化邮箱两部分。需要初始化的寄存器有:位配置寄存器2、位配置寄存器1、标识符寄存器、控制寄存器、局部屏蔽寄存器等。需要注意的是,只有当全局状态寄存器中的改变配置使能位为高时,才能配置位定时器;当主控制器中的改变配置请求位为1,即CAN控制器处于复位工作方式时,才能配置标识符寄存器、控制寄存器和数据域。在访问位配置寄存器时,由于其内容决定波特率的数值,位配置寄存器的初始化字必须依据系统中各CAN控制器的晶振频率而设定。配置位定时器和初始化邮箱的的流程图分别如图5(a)和(b)所示。
3.3 数据发送
信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。发送程序只需把要发送的信息帧送到相关的CAN寄存器,启动发送命令即可,数据发送采用通用定时器周期中断,定时发送采集到的数据到上位
图6 通用定时器周期中断服务程序
机,实现数据的存储,以便用户查询。由于采集到的数据超过8个字节,所以需对数据包进行分片构造报文,见4.1CAN通信应用层协议部分。通用定时器周期中断服务程序
3.4 数据接收
信息从CAN总线到CAN接收邮箱是由CAN控制器自动完成的,数据接收采用邮箱中断。在中断服务程序中读取接收到的数据,对接收到的数据进行解码,并置位相应标志位。在主程序循环中查询标志位,当检测到标志位被置位,则进入相应处理程序,同时对标志位清零。程序流程如图7所示。
图7(a)主程序 (b)接收邮箱中断服务程序
四、结束语
应用层协议是CAN网络应用的关键,因此在该系统中,重点工作是:在现场控制器与上位机之间的通信中,使用现场总线CAN网络技术,制定了用户层通信协议。而且本系统已经完成了在实验室阶段的调试工作,通信部分能够正常工作。本文介绍的CAN 通信设计具有很强的通用性,其成果可以应用在很多数据采集的场合。
参考文献:
[1]孙翠娟,蒋洪.CAN 总线在远程数据采集系统中的应用[J].计算机与现代化,2003(3): 54-56.
[2]饶运涛,周继军,郑勇芸.现场总线CAN原理与应用技术[M].北京航空航天大学出版社.
[3]刘和平,严利平,张学锋,卓清锋.TMS320LF240X DSP结构、原理及应用[M].北京航空航天大学出版社.