中心议题:
* 基于 CAN 总线的楼宇自控系统设计
解决方案:
* 采用通用的PC机作为上位机监控中心
* 由采集模块、主控模块和通信模块组成监测节点
0 引 言
CAN总线最初是德国BOSH公司为汽车检测、控制系统而设计的。现在,它已经成为一种国际标准,在电力、石化、空调、建筑等行业均有应用。CAN总线信息传输采用短帧结构,每一帧仅8 Byte,传输时间短,抗干扰性强;支持多种校验形式,具有强大的纠错能力;采用总线仲裁技术,数据处理能力强。它采用了OSI中的3层网络结构 —— 物理层、数据链路层和应用层,对应用层却未作规范。
由于目前国内还没有CAN通信的应用层协议标准,而国外的应用层协议较为昂贵,在一些利用简单的通信协议就可以满足要求的情况下,采用复杂的协议会造成资源浪费,用户在应用时也会感觉诸多不便,反而限制了CAN的灵活性。 所以,在一些情况下制定适合要求的通信协议,对于CAN的开发和应用至关重要。
本文针对楼宇自控系统的需要,结合CAN的协议规定,从CAN总线的帧结构人手,对应用层作了相应的规定。
1 系统总体设计
基于CAN总线的楼宇自控系统主要由上位机监控中心和各网络监测节点组成。
上位机采用通用的PC机,负责对整个系统中的监测节点进行监控,发送控制命令和一些参数配置信息,并接收来自各个节点的状态信息和测量数据。
监测节点主要由采集模块、主控模块和通信模块组成。监测节点通过参数传感器采集楼宇的温度、CO 浓度、水箱液位、电压、电流等,并采集照明、电梯、中央空调的工作状态,经过微处理器的信号处理,由CAN控制器生成协议报文,并由CAN收发器将数据发送到上位机,同时接收来自上位机的控制命令和参数配置信息,及时给予反馈。
1.1 主控模块
主控模块采用基于ARM 的32 bit微处理器芯片LPC2378。72 MHz的时钟周期,高达512 KB的片内Flash程序存储器,具有在系统编程和在应用编程功能。片内包含了10 bit A/D转换器,4个通用定时器,2个CAN控制器。通用I/0接口外接继电器,检测状态变量。传感器与A/D转换器相连。CAN通道外接 CTM1050CAN收发器,实现与CAN总线的数据通信。
具体使用接口如图2所示,P4.0~P4.14作通用I/O端口;P0.23~P0.26接A/D转换接口,外接放大电路的输出管脚;P0.4、P0.5 接CAN接口;P2.0~P2.5作为6路PWM输出;P2.6作为PWM的捕获输入;Po.19~P0.20接i2C—E PROM来扩充RAM。
1.2 数据采集模块
数据采集模块包括输入/输出模块、A/D采样放大电路两部分。输X/输出模块用于系统中名子系统前端各信号的接入、输出,如电梯状态、水泵运行状态、水箱液位、照明状态、中央空调运行状态、低压配电柜的电流、电压、负荷状态信号等。上述信号可分为两类:开关量输人输出和模拟量输入输出。该电路设计了4路模拟量输入、15路开关量输入和4路输出。开关量如阀门的开启和关闭、电机的起动和停止、继电器的吸合和释放等信号从15路开关量输入口输入,经上板的光电隔离器件送给下板的PLC2378芯片处理。模拟量经放大电路放大后输入到LPC2378的模/数转换器转换成数字量。模/数转换放大电路如图3所示。
该部分主要由4块仪表放大器INA128和1块OP-07运算放大器构成,分别为LPC2378提供4路信号用于A/D转换。INA128是内部集成了3 个运放的低功耗、高精度仪用差分放大器。为抑制供电电源噪声和高阻抗的影响,在器件的引脚4、7附近接0.1 I.LF的去耦陶瓷电容。考虑到静电释放对该芯片的损坏,在两输入端增加压敏电阻进行保护。INA128的输入阻抗极高,需要为两输入端的输入偏置电流提供一条路径,在两输人端接人10 kQ的偏置电阻,并用 ,匹配,使两输入尽可能保持平衡,更好地提高高频率共模抑制。对于输出基准端(Ref),由于LPC2378的A/D转换部分采用VDDA 3.3 V作为参考电压,为使模拟信号在差分输入为负值时也能进行A/D转换,令U =1.65 V。因此,当引脚1、8不接增益电阻时,输出电压为
采用OP-07系列运放作电压跟随器实现提高共模抑制比的目的。所有输入的开关量和模拟量经微处理器MCU处理后通过LPC2378内部集成的CAN控制器发送给总线,等待总线的接收与处理。
1.3 通信模块
通信模块主要采用CTM1050 CAN收发器与LPC2378的CAN通道。CTM1050是一款带隔离的高速CAN收发器芯片,该芯片内部集成了所有必需的CAN隔离及CAN收发器件,这些都被集成在一块不到3 cm 的芯片上。 片的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有DC 2 500 V的隔离功能及静电放电(ESD)保护作用。
将PLC2378的两个引脚CANTxD和CAN—RxD分别与CAN收发器CTM1050的引脚TxD、RxD相连。CTM1050的引脚CANL和 CANH分别接到CAN总线的CANL和CANH,在这两线之间需要一个合适的终端电阻连接。其电路原理图如图4所示。
2 CAN总线通信协议的制定
在基于CAN总线的楼宇控制系统中,楼宇的电梯状态、水泵运行状态、水箱液位、照明状态、CO 浓度、温度、压力、中央空调运行状态,以及低压配电柜的电流、电压、负荷状态信号等均通过总线进行交换。根据系统的特点,结合CAN的协议规定,对29位扩展标识符重新定义。
2.1 CAN总线的帧类型
(1)数据帧。将通信数据从发送器到接收器传送。
(2)远程帧。请求对方传送制定报文标志符的数据帧。
(3)错误帧。表明一个节点检测到了总线/网络故障。
(4)超载帧。在帧的发送之间提供一个延时来控制数据的流动。
本文将对29位标识符的数据帧重新定义,以提高信息的传输效率。
2.2 数据帧标志符ID的定义
在CAN扩展格式中,标志符位由ID28一ID0组成。标志符分配要满足节点及报文对优先级的要求,同时尽可能地利用标志符加载有关信息,以减少在数据域占用的空间,还要为消息滤波提供便利。本文根据CAN仲裁的特点和楼宇自控系统的需要,对CAN的29 bit标志符作重新设计。为了解决节点同时发送信息的冲突,采用帧优先原则,将标志符的前3位DI28、DI27、DI26定义为信息类型,分别表示控制命令、配置命令、状态信息和数据信息,把控制命令定义为最高优先级,依次数据信息最低。同时,采用源/目的地址方案,将标志符DI25~DI16定义为源地址。DI15~DI6定义为目标地址,DI1 1~DIIO定义为单帧/多帧。将上位机PC地址设为0,作为CAN总线的主节点。
CAN协议将29 bit ID分为5部分功能:(1)信息类型标志。该系统信息类型分为4种:控制命令、配置命令、状态信息和数据信息。
① 000— — 控制命令,是主节点PC向监测节点发送的命令。控制中央空调的运行、继电器的开关、电梯的上下等,用来传输最重要的信息,优先级最高。
② 001— — 配置命令,是主节点PC向监测节点发送参数配置信息,用来调整CO 浓度、温度、压力等。优先级仅次于命令信息。
③ 0l0——状态信息,是监测节点反馈给主节点的执行命令的结果。
④ 0ll— — 数据信息,是监测节点发送到上位机PC的信息,包括楼宇的电梯状态、水泵运行状态、水箱液位、照明状态、CO 浓度、温度、压力、中央空调运行状态、低压配电柜的电流的、电压、负荷状态信号等。数据信息分为模拟量和开关量。
⑤ 100—— 查询命令,是上位机查询监测节点是否在线和设备是否正常。
(2)源地址标识。该标识显示的是发送信息的节点地址。由于LPC2378的CAN控制器可接多个设备,所以采用10位ID表示,以满足设备扩展的需要。发送节点因重要性不同而各有优先级,反映在ID标识符中。越重要的设备ID的二进制值越小。地址标识分为两部分:ID25~ID22为设备代码,0000~1lO1分别表示压力监测、水泵监测、中央中央空调监测等l3个监测模块;ID21~ID16表示设备类型号,具体定义了每个监测模块下的设备地址。例如水泵监测包括汲水泵、排水泵和消防泵,分别用000000~000010表示。
(3)目标地址标识。该标识显示的是接受信息的节点地址。当目标地址标识为F时,定义为广播信息。其地址定义格式同(2),高四位为设备代码,低四位为设备类型号。
(4)单帧/多帧标志。可用于区分单帧或多帧连续传送,可作为接收节点判断停止接收数据的依据。其中ID1 1用于区分点对点还是广播信息。具体含义如表2所示。
2.3 数据域格式的定义
由于信息类型不同,并且每个节点采集的信号也不一样,因此需要自定义数据域的格式。其格式定义如表3所示。
一个CAN数据帧最多可传输8 Byte的数据。数据域的第一个字节用来区分信息类型:00H表示控制命令,01H表示配置命令,02H表示状态信息,03H表示数据信息。若传输的数据属于控制命令配置参数和状态信息,则之后的2~ 8 Byte用作数据的传输;若为数据信息,则第二个字节用来定义数据信息的类型。低2位D0~D1用来区分开关量和模拟量:00表示采集的数据为开关量,01表示采集的数据为模拟量。由于监测节点采集的数据包括温度、CO 浓度、湿度、水位、电梯的运行状态、照明状态等,种类很多,所以用高6位D2~D7来定义数据的类型。之后的3~8 Byte用来传输数据。
2.4 CAN协议的优点
(1)采用信息类型优先级、发送节点优先级相结合的方法,详细划分了所有报文的优先权,较好地解决了总线仲裁问题,保证了重点方向、重点目标的优先。
(2)将通信的控制信息全部放在报文标志符中,用7位ID来区分各个设备,而最多8 Byte的数据域全部用来存放通信数据;并且设定应答请求,使系统可以通过硬件检测消息是否成功发送,不需要使用软件查询,从而提高通信效率。
(3)预留了保留位,为今后系统功能的扩展奠定了基础。
3 CAN协议的软件实现
LPC2378芯片包含全局验收滤波器模块,为所有的CAN控制器提供了对接收标志符的查找(CAN术语中称之为验收过滤)。验收滤波器包含一个 512×32(2 KB)RAM,软件可以在其中存放1~5个标志符表。这个RAM可以容纳多达1 024个标志符或5l2个扩展标志符或者两种类型混合的标志符。节点在接收数据时可以通过查找RAM中的ID索引表来决定接收或舍弃数据。本文在ID中定义了帧类型,可作为接收停止的依据,这样保证了多帧的连续接收。该协议在ADS集成开发环境下编译运行。接收节点的软件设计流程图如图5所示。
4 结语
本文简单介绍了基于CAN总线的楼宇控制系统的电路设计,并根据楼宇自控的需要制定CAN应用层协议,定义了包含4部分功能的标志符ID,规定了数据格式,从而提高了数据传输的可靠性和通信效率。