王 鹏
(赤峰学院 计算机科学与信息工程学院,内蒙古 赤峰 024000)
取暖智能节能系统中CAN总线协议转换的设计与实现
王 鹏
(赤峰学院 计算机科学与信息工程学院,内蒙古 赤峰 024000)
根据热用户性质的不同,提供不同的负荷控制策略,采用CAN总线技术,利用每一路通道信号控制一个房间所有暖气片的开关阀门,实现分时、分温、分室、按需供热,满足不同房间的个性化需求,避免不考虑房间用途而统一供热造成的浪费.引入更加成熟的以太网技术:CAN总线构建底层终端设备网络,实现对终端房间的信息采集与热流量控制;以太网构建信息局域网,实现楼宇之间的信息传递;协议网关实现CAN与TCP/IP的协议转换,CAN与以太网网关进行有机连接.
CAN总线;多协议标准;协议转换;uIP
CAN(Controller Area Network),全称“控制器局域网”,是工业现场总线的一种,能有效支持分布式控制或实时控制的串行通信网络.最初是为解决汽车中控制与测试仪器之间的数据交换而开发的一种串行数据通信协议.通信介质可以是双绞线、同轴电缆、光纤,通信速率可达1Mbps.CAN协议的物理层,数据链路层功能都集成在总线通信接口中,可以实现通信数据的成帧处理,包括数据块编码,位填充等工作.随着应用领域的不断扩大,产品的性能不断提高,价格也不断下降.CAN总线的性能和价格优势,与建筑物内各个办公房间分布点多、面广、占用的空间体积大等相匹配,非常适合于建筑节能控制中应用.
其特点有:
(1)传输距离比较远.主控点与节点的分布距离,在10km内都有效,通过双绞线把分布在楼内各房间的节点连接起来,当楼房的建筑面积大、楼层高时,满足布线需求.
(2)价格低廉.CAN总线使用铜芯双绞线或为了减少外界干扰使用屏蔽铜芯双绞线作为数据传输通道,减少工程应用的成本.
(3)超强的纠错和检错能力.在介质访问控制子层上,负责报文分帧,仲裁,应答,错误检测和标定.并采用非破坏仲裁技术及短帧传送数据,能满足工业控制的实时性和确定性的要求,在网络负载很重的情况下不会出现网络瘫痪的情况;在逻辑链路控制子层上,满足报文滤波、过载通知及恢复管理的功能.另外,节点与总线的连接是并联结构,若其中的某一个节点损坏,不影响其他节点的工作.
使用CAN总线技术,一台上位主机利用每一路通道信号控制一个房间所有暖气片阀门的开与关,通过对房间内每组暖气片的热水流量的调节实现节能的目的.
但是,CAN总线技术在建筑节能控制中也存在一些问题:
(1)控制节点不够用
一栋楼的房间个数可能会很多,而一个单位或企业的建筑物又不止一栋,造成CAN总线的单一主控机无法控制所有终端的现象.
(2)限于速度的要求,有效距离不够远
虽然CAN总线的有效传输距离可以达到10千米,但传输速率是随着传输距离而递减的.为追求快速,则长距离的楼宇之间可能无法连接;为保证传输距离,则速度不能满足要求.
解决以上问题的方法也有多种:
多主控机
采用多个主控主机,分别控制一组CAN总线结构.这种分散管理的方式不能集中控制,节能效果不好,成本较高.
多接口模式
采用多种接口并用,实现多路控制.但稳定性较差,成本高.
多协议标准
采用多种协议组合使用,扬长避短,各发挥优势.
本项目采用的是多协议标准方式,引入更加成熟的以太网技术:CAN总线构建底层终端设备网络,实现对终端房间的信息采集与热流量控制;以太网构建信息局域网,实现楼宇之间的信息传递;协议网关实现CAN与TCP/IP的协议转换,CAN与以太网网关进行有机连接,实现信息传递.如下图所示:
图1 多协议系统结构
多协议标准的核心问题在协议网关的协议转换上,要实现嵌入式以太网接口与CAN总线接口的数据转换功能.网关结构以及功能如下图:
图2 协议网关结构及功能
本系统的工作原理是拥有权限的主控端发给现场智能节点的控制指令在以太网内被打包成TCP/IP包,通过以太网传递给网关.网关接到数据包后,根据CAN协议对拆包后的数据重新打包,然后把数据传给现场的目的智能节点.这样就可以实现以太网主控端对智能终端的控制.而各个智能节点的状态数据通过CAN总线提交给网关,网关将CAN数据转化为以太网数据,再通过以太网送达给主控端主机,用于主控端的诊断和决策.
实现这一转换过程要使用uIP协议.
uIP协议栈去掉了TCP/IP中不常用的功能,简化通讯流程,保留通信必须使用的协议,重点放在IP/TCP/ICMP/UDP/ARP的网络层和传输层协议上,保证了其代码的通用性和结构的稳定性.uIP协议栈为嵌入式系统而设计,还具有如下优越功能:
C语言编写,完全开放,通用性强
代码占用空间小,易于移植
适合8位,16位的嵌入式微处理器运行
对数据的处理采用轮循机制,不需要操作系统的支持.
uIP提供的是策略,由上往下逐步封装用户的数据,如:应用数据-TCP封装头部-IP封装头部-mac封装+尾部-发送.在UIP协议里面通过uip_init()来初始化.
主要工作是:
(1)将uip_state结构体全部清零.
(2)初始化用于TCP链接的uip_conn结构体,将连接状态置为close.
(3)设置用于TCP链接的端口lastport=4096.
部分代码如下:
引入以太网技术,采用多协议标准组合,协议网关完成不同协议的转换,最终实现了价格低廉的CAN总线构成终端设备网络;技术成熟、性能稳定的以太网技术构建信息局域网,实现楼宇之间的信息传递;进而实现了对同属于一个单位的不同建筑物进行集中管理,协调控制每个房间按需供热,提高了节能效果.
〔1〕林成浴.TCP/IP协议及其应用[M].人民邮电出版社,2013.7.
〔2〕舒志兵.现场总线运动控制系统[M].电子工业出版社,2007.1.
〔3〕曾珞亚.应用于智能建筑的几种总线技术浅析[J].低压电器,2009(1).
TP273
A
1673-260X(2017)11-0018-02
2017-08-16
内蒙古教育厅基金项目资助(NJZC16257)