哈喽小伙伴们 ,今天给大家科普一个小知识。在日常生活中我们或多或少的都会接触到ADM2483在建筑能耗检测系统中的应用方面的一些说法,有的小伙伴还不是很了解,今天就给大家详细的介绍一下关于ADM2483在建筑能耗检测系统中的应用的相关内容。
硬件电路设计
(资料图片仅供参考)
ADM2483芯片集成度较高,外部几乎不需要配置阻容元件即可工作,本文设计的硬件电路原理图如图2所示。RS485是半双工通信方式,收发不能同时,RE和DE分别是接收和发送控制使能引脚,RE低电平有效,DE高电平有效,通过STM32处理器的一个引脚同时控制RE和DE,如图2所示,将RE与DE两个引脚短接,从而实现低电平时接收有效,高电平时发送有效。RXD和TXD引脚分别接到STM32的串口2发送和接收端。采用DC-DC电源芯片B0505S实现双电源供电。R5为RS485总线的终端匹配电阻,典型值约为120欧,以减少线路上传输信号的反射。
软件程序设计
通信协议
建筑能耗监测系统中能耗数据采集的主要目标包括:建筑内的耗电量、耗水量、耗热量等统计量信息,也包括实时电压、电流、功率等实时参数的采集。一般采用间接测量的模式,即通过数据采集器挂载计量仪表进行测量。目前市场上的大部分计量仪表都支持RS485总线,但是通信协议不尽相同,常见的有以下几种:
(1)Modbus协议
Modbus通讯协议又分为ASCII模式和RTU模式两种模式,计量仪表多采用RTU通信协议模式,数据帧格式如表2所示[5]。主机发送的地址码占1个字节,地址码寻址从1~247,247以上的地址域为用户扩展区。功能码0x03表示从仪表中读取数据。主机发送的字节数固定为8个字节,从机响应的字节数,根据数据长度的不同而变化,可以据此设置接收程序的缓冲区大小。
(2)DL/T 645-1997(多功能电表通信规约)
DL/T 645-1997的通信帧格式如表3所示,通过识别起始符与结束符判断一帧数据。地址域由6个2位的BCD码构成,地址域可以表示仪表的地址编码、资产号、用户号或者设备号等,低地址位在先,高地址位在后。校验码CS计算方法如式所示,N表示校验码之前的所有位数和。
(3)CJ/T 188-2004(用户计量仪表通信规约)
CJ/T 188-2004的通信帧格式与DL/T 645-1997类似,如表4所示。地址域由7个2位的BCD码构成,其中,A5,A6固定为厂商代码,低地址位在先,高地址位在后。校验码CS计算方法如式所示。
数据采集模块的驱动程序可以根据实际使用的计量仪表协议进行修改,不同仪表的通信波特率、校验方式等参数信息均需要参照数据手册进行设置。
摘要:针对建筑能耗监测系统中数据采集的需求,本文设计了基于ADM2483芯片的RS485数据采集模块。ADM2483采用iCoupler磁隔离技术,集成度高,单芯片可以支持256个末端负载。文中详细介绍了硬件电路原理图与软件驱动程序,经测试系统运行稳定,工作状况良好,目前,该模块已经广泛应用于建筑能耗监测系统中。
引言
随着经济的快速发展以及人民生活水平的不断提高,致使能源需求不断加大与能源供给相对不足的矛盾日益加重。建筑与工业、交通耗能并列,成为我国能源消耗的三大“耗能大户”[1-3]。因此建筑节能或成为解决能源供应不足和提高能源利用效率的重要途径之一。目前,建筑能耗监测平台正在全国范围内陆续开展,本文设计了一款基于ADM2483的RS485总线数据采集模块,可用于建筑能耗监测系统感知层数据采集。
ADM2483简介
ADM2483是ADI公司推出的基于iCoupler磁隔离技术的RS485收发芯片,芯片内部集成了三通道的数字隔离器、带三态输出的差分驱动器和一个带三态输入的RS485差分接收器[4],如图1所示。由于磁隔离在设计上取消了光电耦合器中影响效率的光电转换环节,因此其功耗仅为光电耦合器的1/6左右,同时具有比光电耦合器更高的数据传输速率、时序精度和瞬态共模抑制能力。消除了光电耦合中不稳定的电流传输率,非线性传输,温度和使用寿命等方面的问题。集成的热关断电路可将驱动器输出置为高阻状态,防止过度的功率损耗。ADM2483隔离电压为2.5kV,信号传输速率500kbps,总线可挂载256个节点。采用易于使用的SOW-16封装,仅需要很少的分立元件就可实现RS485通信功能。
ADM2483的引脚功能如表1所示,其中逻辑端供电引脚VDD1电源输入范围为2.7~5.5V,总线端供电引脚VDD2电源输入范围为4.75~5.25V,接收使能引脚RE,低电平有效,发送使能引脚DE,高电平有效。值得一提的是电源监控引脚PV(Power Valid),为了避免因电源缓慢上电或掉电造成的总线输出抖动,ADM2483设计了电源监控功能,当VDD1引脚电压低于2.0kV时,此引脚为低电平,芯片不工作;当VDD1引脚电压高于2.0V时,此引脚为高电平,芯片正常工作。
采集程序
数据采集程序需要根据不同仪表的通信协议进行编写,这里以LCDG-DG三相电子式电能表为例说明采集程序的编写过程。该电表可以计量电压、电流、电量等参数。寄存器0x0014和0x0015存储累计电量数据,主机部分发送采集指令的程序如下:
ele_modbus_send[1] = 0x03; // 功能码03读取数据
ele_modbus_send[2] = 0x00; // 读取地址高位
ele_modbus_send[3] = 0x14; // 读取地址低位
ele_modbus_send[4] = 0x00; ele_modbus_send[5] = 0x02; // 读取字节数低位
RS485_S_EN; // 发送使能
for(j=0;j<1000;j++);
ele_modbus_send[0]=cal_modbus_add(ele_module[cnt].ad[0],ele_module[cnt].ad[1]);
crc_tmp = getCRC16(ele_modbus_send,6); // 计算CRC校验码
ele_modbus_send[6] = (char) (crc_tmp&0x000000ff);
ele_modbus_send[7] = (char) (crc_tmp>>8);
for(j=0;j<9;j++)
usart1_putchar(ele_modbus_send[j]);
RxCounter = 0; // 清空缓冲区
RS485_R_EN; // 准备接收数据
数据采集程序按照仪表地址进行循环读取,流程图如图4所示,为了保证系统RS485网络的正常工作,通信过程中必须进行超时检测。一般取超时时间T为系统正常通信时间的3~5倍,当系统超时后,如果从机没有反应,则退出本次采集,重新发送该模块的采集指令进行再次采集程序,延时一段时间后,重新对该模块进行采集,同时,超时计数器加1,当计数器累加到3,判定该支路模块为物理故障,放弃对其进行采集,记录该支路信息,跳过该模块,采集地址加1,继续其余模块的采集工作。
结语
本文采用带隔离功能的ADM2483芯片设计的RS485数据采集模块,硬件电路设计简单、体积小巧、使用方便。数据采集模块已经应用于实际的建筑能耗监测系统中,经验证系统工作稳定可靠。可以广泛应用在工业数据采集、远程监控等场合,应用前景良好。
参考文献:
[1] Na Wei, Wu Yong, Song Yanet al. Government Management and Implementation of National Real-time Energy Monitoring System for China Large-scale Public Building[J].Energy Policy,2009,37,(6):2087-2091
[2] Chen Yong-pan, Mu Xian-min, Zhang Ji-li, Lu Zhen. Development of Monitoring System of Building Energy Consumption[C]. In: Proceedings of 2009 International Forum On Computer Science-Technology and Applications,2009:363-366
[3] 唐桂忠,张广明.公共建筑能耗监测与管理系统关键技术研究[J].建筑科学.2009,25,(10):27-29
[4] 王曼曼,祝龙记,胡旭东.基于Modbus协议实现上位机与矿用传感器的通信[J].煤矿机械,2012,33,(7):224-227
[5] 李娟,张波,丘东元.电能质量监测系统中基于ModbusRTU的多机通信[J].电力自动化设备.2007,27,(1):93-95