CAN总线简介
CAN为多主方式工作,网络上任一节点均可以在任意时刻主动向网络上其他节点发送信息;CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求;CAN采用非破坏性总线仲裁技术;CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据;CAN的直接通信距离最远可达10km(速率5kbit/s以下),通信速率最高可达1Mbit/s(此时通信距离最长为40m);CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低;CAN的通信介质可为双绞线、同轴电缆或光缆,选择灵活。
系统方案设计
系统由以下部分组成:脉冲电度表、电量采集器、CAN转换器、调制解调器、上位机。系统的结构框图如图1所示。
图1电力抄表系统结构框图
由图1可知,电量采集器实时采集居民楼脉冲电度表输出的脉冲信号,经CAN接口传至CAN总线上,再经CAN转换器转换和Modem实现上位机与下位机的通信,从而完成数据的采集、存储、计量、显示等功能,对整个小区每个用户的情况实现实时监控。
系统工作原理
电度量的采集
根据转盘式电度表的结构,它的脉冲与转盘所转的圈数成正比,脉冲数累计后再乘以系数即可得到相应的电度量。为提高脉冲计量的准确性,软件设计时采用定时连续采样的方法。一个有效的电脉冲宽度在50ms以上,设计采用的定时周期为16ms.对于正常脉冲,定时采样连续测得脉冲为高电平的次数≥2,见图2。若脉冲宽度太小,测得次数不够2次,这时可以把这个脉冲去掉。
图2脉冲采样检查示意图
电量采集器
电量采集器的主要功能是对脉冲数据计数以及与上位机通信。它的核心器件是AT89C52微处理器与中断控制器8259A.系统中,中断源超过8级,故8259A采用级联方式。每个电量采集器下有5片8259A级联,从而满足32路电量信号的输入。电量采集器的原理框图如图3所示。
图3电量采集器原理框图
系统中,8259A用来配合AT89C52控制外部中断源。8259A为AT89C52分析、判断、决定中断请求信号的优先权。来自多个电表的中断信号经输入处理电路后被送到8259A.其中的一路为高电平时,8259A的IRR(中断请求寄存器)相应位置位;接着,8259A对其IRR和IMR(中断屏蔽寄存器)提供的情况进行分析处理,当某路中断源未被IMR屏蔽,且该路中断源的优先级别高于CPU正在处理事务的级别时,8259A的17引脚产生一个高电平,再经过专门的中断申请与响应电路变为低电平,就向AT89C52提出中断请求,而其余的中断信号排队等待并保存。这样脉冲信号就不会丢失,保证了系统采集信号的准确度。之后,仪表技术与传感器得到中断申请的AT89C52会比较当前运行程序与中断申请的优先级别,经中断申请与响应电路向8259A发回中断响应信号.这时,AT89C52转去执行中断服务程序。
为保护采集到的数据,设计中采用了存储器。存储区可分为两个区:一个工作区,存储实时的电度量,隔一定时间刷新1次;一个备份区备份6个月的电度量,以防有用信息的丢失。
为方便用户查询,系统可在采集器中设计显示电路LCM103,实现就地显示。把它的引脚CS、WR、DA2TA和单片机的相关接口连接就可以实现其显示功能。多个中断源的数据在LCM103中采用轮流显示方式。LCM03的10位可以分别定义为用户户别、表别与显示数据。第10位为户别,第8位为表别,其余位表示各表耗用能量的数字,第3位是小数点。第9位和第7位为空格,以便读数清晰。
设计时,在LCM103的VDD与VLCD引脚之间加511kΩ的电阻,以使显示亮度适中。
CAN接口转换器
CAN转换器由CAN控制器SJA1000和CAN驱动器PCA82C250组成。CAN转换器负责接收上位机下达的命令并向上传送本站点的电量,1组CAN总线上最多可挂110个站点,其框图如图4所示。
图4CAN控制器接口功能框图
CAN转换器
为了实现单片机与上位机的通信,设计了TTL电平与RS-232之间转换的接口,如图5所示。AT89C52本身不含控制器,所以采用了CAN控制器SJA1000和CAN驱动器PCA82C250。
图5RS232/CAN转换器功能框图
CAN总线通信波特率
计算出小区控制室上位机与电量采集器中单片机通信的波特率为40.5Kbit/s,取50Kbit/s,此时CAN总线的通信距离达1.5km,如果控制室建于负荷中心,此通信距离可以满足要求。此时总线定时寄存器BTR0与BTR1分别为BTR0=47H=01000111B,BTR1=2FH=0011111B.此外,为使系统内各站点工作时同步,上位机必须在整点时刻向各站点发布校时命令。
软件设计
主要对采集器主程序的设计作简要说明。它包括初始化与数据采集处理两部分。初始化程序包括对8259A初始化。在数据采集部分,采集器主程序采取循环采集数据的方式,并对接受到的命令进行分类,然后转相应的命令处理子程序。主程序流程图如图6所示。
系统抗干扰措施
(1)在系统设计中,选用了X5045芯片,该芯片中设有看门狗电路。看门狗电路对CPU进行实时监测,如果CPU落入死循环中,看门狗电路能及时发现并使整个系统复位。在软件编程上,设置每隔1s访问1次看门狗电路。若程序跑飞或超过了设置时间(本系统设为1.4s)没有访问看门狗芯片,X5045芯片将自动输出复位脉冲,直到程序运行正常。
(2)数据采集器中设有滤波电路,对各种表产生的电脉冲信号进行滤波,防止信号在传输过程中可能受到的干扰。
(3)利用X5045芯片的电源监控功能设置电源监测电路及掉电保护电路,以防止掉电后数据丢失。
结束语
基于CAN总线的电力抄表系统采用了智能数据采集,通过CAN总线进行数据通信交换,系统响应速度快,抗干扰能力强;网络的可靠性高,通信波特率高,数据传输量大;结构简单,安装、维护方便。系统可以方便地实现实时监测、高速数据采集、查表打印、系统监控等功能,具有较好的应用前景。(作者:忻龙彪,桂垣,武斌)