基于CAN总线的热网首站监控系统设计和应用
摘 要 :本文在介绍CAN总线的基础上着重讨论了CAN总现在热网首站监控系统中的应用,实践证
明该系统具有结构简单、性能可靠、传输距离远、价格低廉等特点。
关键词 :CAN;数据采集;通信
1 引言
中国 能源 结构以煤为主。为了节省 能源 ,改善环境,国家鼓励发展热电联产集中供热。因此我国北方许多城市已经或即将进行热网改造工程,将传统的分散供热改造为集中供热。集中供热系统是大型的综合性系统,为了保证其运行安全可靠,需要有一套自动化程度较高的监控系统来进行实时监控。其中,首站是整个热网监控系统的核心。但是在实际施工以及系统运行过程中,集中式首站监控系统存在接线复杂、维修困难、危险集中等缺点。为了解决这些问题,该热网首站监控系统采用 现场总线 技术来设计。而且,经过对目前比较有影响的几种 现场总线 技术进行研究,在分析对比的基础上,选择了CAN总线作为首站监控系统设备层通信总线。
2 CAN总线简介
CAN(Contro11er Area Network)总线是德国Bosch公司从80年代初为解决现代 汽车 中众多的控制与测试 仪器 之间的数据交换而开发的一种串行数据通信协议。
2.1CAN总线的特性:
——多主站依据优先权进行总线访问
——非破坏性的基于优先权的总线仲裁
——多地址借助接收滤波进行帧传送
——带有位填充的非归零(NRZ)编码/解码
——可编程的传输速率(可高达1Mbps)
——通信介质选择灵活,可为双绞线、同轴电缆或光纤
——强有力的错误检测和错误处理能力
2.2CAN网络传输速率和距离
CAN网络上的任意两个节点之间的最大传输距离与其位速率有关,其对应关系请见下表所示(假定选择Philips P8XC592 CAN控制器,且其晶振频率为11.0592MHz):

2.3CAN的分层结构
CAN遵从OSI模型,按照OSI基准模型,CAN结构划分为两层:数据链路层和物理层。然而,在实际应用中,即使只是实现简单的基于CAN的分布式系统,仅有物理层和数据链路层是远远不够的。比如对于传输长度超过8个字节的数据块、带有握手协议的数据传输过程、标识符分配、通过网络管理节点等,这些功能就不能实现。
因此需要在这两层之外附加一层来支持应用过程,即“应用层”。这一层功能对应OSI基准模型中的上五层,主要完成网络层和传输层的工作,提供接口,使得通信模块和具体应用模块分离。针对热网首站监控系统,应用层协议需要通信双方具体协商制定。
3 基于CAN的热网首站监控系统总体设计
3.1系统总体结构
热网首站微机监控系统,是整个热网微机监控系统的子系统,是在一次设备( 传感器 、 变送器 、各种执行机构)的基础上完成对热网首站的监测与控制,通过调节供热管网的供水流量、供水温度、供水压力,保证热网首站安全、可靠、高效、稳定的运行,并完成与调度站的数据交换。根据上述要求,本系统在保证系统可靠工作和降低成本的条件下,考虑到通用性、实时性和可扩展性等方面的因素,采用了主要由上位计算机系统和前端控制器、手持器构成的系统结构。其系统总体结构如下图所示:注:上图中,前端控制器可以有多个,手持器仅有一个,且当系统正常运转后,手持器就不需要了。

3.2系统各组成部分
CAN网络的拓扑结构采用总线式结构,这种结构比环型结构信息吞吐率低,但结构简单、成本低,并且用无源抽头连接,系统可靠性高。信息的传输采用CAN通信协议,通信介质仅采用两条双绞线即可。
(1)首站上位机
在系统中设置一台工业控制计算机(以下称作上位机),它负责对整个系统进行管理。上位机通过CAN网卡与前端控制器通信,同时通过局域网或者公共电话交换网与整个工厂或者公司的计算机信息网络进行连接,实现信息共享。具体来说,上位机具有以下功能:组态功能、数据采集、参数设置、远程控制、流程显示、数据存储、趋势显示、报表打印、通信。
(2)CAN网卡
CAN网卡是负责CAN总线与PC机之间数据交换的功能模块,它插在PC机的PCI扩展槽中,通过连接器与CAN总线相连。CAN网卡上存在两个方向的数据交换:CAN网卡与PC机之间的数据交换(通过双端口RAM实现)以及CAN网卡与CAN总线之间的数据交换(由微处理器通过访问CAN控制器的接收缓冲区以及发送缓冲区来实现)。CAN网卡上的CAN控制器选用的是PHILIPS公司的SJA1000芯片(其晶振频率为16MHz)。
(3)前端控制器
一台前端控制器有8路模拟量输入、2路模拟量输出、4路 开关 量输入和4路 开关 量输出。本系统采用PHILIPS的带有在片CAN控制器的微控制器P80C592(其晶振频率为11.0592MHz),它是适用于自动化和通用工业应用的8位高性能微控制器。CAN网络的 通讯 部分主要由P80C592的CAN控制器及CAN控制器接口器件82C250组成。CAN控制器负责与微处理器之间的状态、控制和命令信号的交换,并承担网络 通讯 的控制任务。82C250是CAN控制器和物理总线间的接口,可以提供对总线的差动发送能力和对CAN控制器的差动接收能力。
(4)手持器
手持器对前端控制器设置参数(如控制算法参数、量程、报警限等),不对现场设备进行检测与控制,也不保存实时数据:手持器有键盘,具有显示功能。待系统正常运行时,前端控制器仅与上位机进行通信,手持器将不再被使用。
4 系统 软件 设计
在 软件 设计中,遵循模块化设计思想,采用结构化程序设计方案,使之具有良好的模块性、可修改性及可移植性。
4.1上位机 软件 功能模块划分及开发环境
上位PC机 软件 分为三个基本的模块:主监控模块,数据管理模块、通信模块。
考虑到本系统的多任务性能,网络扩展性能,安全可靠性能及统一界面性能,选用中文Windows 2000 Server作为PC机的操作系统平台。
由于热网首站的实时监控和显示功能需要一种界面友好的可视化编程语言来实现,而数据管理又需要该语言有较强的数据库编程功能,因此选用中文Borland C++Builder 6.0作为主要开发语言。
考虑到监控主机与调度室的网络通信功能,以及热网首站数据信息的重要性和安全性,PC机的数据库选用Microsoft SQL Server 2000数据库系统平台来进行开发。
4.2前端控制器 软件 设计
(1) 软件 开发环境
前端控制器 软件 采用MCS—51汇编语言进行程序设计。P80C592是51系列的芯片,而MCS-51具有编程效率高的特点,适于工业控制领域的应用。
(2)CAN通信应用层协议
前端控制器 软件 设计中最关键的是与上位机的通信部分。针对热网首站监控系统,经过通信双方具体协商制定,使用 现场总线 CAN网络技术,制定了CAN应用层协议。应用层完成的主要工作有:描述符分配、报文发送与接收、流量控制、顺序控制等。
描述符由两个字节DSCR1和DSCR2组成:包括标识符、远程发送请求位(RTR)和数据长度码(DLC)。如下表所示:

注:①DIR表示方向。=0时,表示主站向从站发送数据;=1时,表示从站向主站发送数据。
②TYPE表示报文帧类型。TYPE.2=0时,表示点对点发送;=l时,表示广播发送。
TYPE.1~TYPE.0=0X时,表示单帧报文;=11时,表示非结束多帧报文;=10时,表示结束多帧报文。
③当数据是多帧报文时,数据场的第一个字节被用作索引号,DLC包括索引。其尾帧以实际数据长度后跟设定结束标志结束。
(3)CAN通信初始化
其主要是设置CAN的通信参数。需要初始化的寄存器有:总线定时寄存器0、总线定时寄存器1、输出控制寄存器、接收代码寄存器、接收屏蔽寄存器等等。需要注意的是,只有当控制寄存器中的复位要求位置为高时,这些寄存器才可被访问。因此,在对这些寄存器初始化前,必须确保系统进入了复位状态。在访问总线定时寄存器时,由于其内容决定波特率的数值,总线定时寄存器的初始化字必须依据系统中各CAN控制器的晶振频率而设定。初始化程序的流程图如图(a)所示。
(4)数据发送程序
信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。发送程序只需把发送的信息帧送到CAN的发送缓冲区,启动发送命令即可。需要注意的是,发送中断不是由于发送完成而产生,而是由于发送缓冲区再次可用而产生的。发送中断服务流程图如图(b)所示。
(5)数据接收程序
信息从CAN总线到CAN接收缓冲区是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息即可。需要注意的是,读接收缓存器(RBF0或RBF1)内容后,CPU必须通过置释放接收缓存位为高来释放缓存器,使得另一个报文立即变得有效。接收中断服务程序的流程图如图(c)所示。

5 结束语
应用层协议是CAN网络应用的关键,因此在该热网首站监控系统中,最主要的工作是:在上位PC机与前端控制器之间的通信中,使用 现场总线 CAN网络技术,制定了用户层通信协议。而且本系统已经完成了在实验室阶段的调试工作,通信部分能够正常工作。 |