0 引 言
随着计算机技术和通信技术的迅速发展,将众多的计量点数据进行采集、传输、处理已经成为现实。自动抄表(the Automatic Meter Reading,AMR)技术应运而生,逐渐成为抄表技术的主流。
1 电力集中抄表系统的构成
电力集中抄表系统采用三层体系结构,如图1所示。第一层是主站服务器,其主要作用是负责存储多功能电表的数据,实现对仪表的远程监控、远程控制等功能。服务器安装在客户服务中心的抄表主站,通过GPRS/GSM来查收各个多功能电表的相关数据和参数。第二层是集中器,集中器通过GPRS/GSM与主站服务器相连,通过CAN总线与第三层的采集终端相连,完成与采集器和主站服务器的数据通信工作,第三层是采集器。在采集器中嵌入了各种标准通信规约,可实现对各种电表的采集。采集器可同时采集、存储64块电表的数据。它既要完成电表的电量数据采集工作,还要根据系统的要求完成与集中器之间的数据通信,将需要传送的电量数据送到集中器中。通过GPRS/GSM无线通信,能够及时、方便地进行系统的远程信息传输,与主站服务器实现信息交换;每台集中器通过CAN总线,可以管理最多110个采集器。
2 CAN总线通信系统设计
2.1 CAN总线简介
控制器局域网(Controller Area Network,CAN)是国际上应用最广泛的现场总线之一,具有技术先进,可靠性高,功能完善,成本合理等优越性,已被广泛应用于各个自动化控制系统中。该设计给出CAN总线节点方案,采用内置多路CAN总线控制器LPC2294作为主控制器。
2.2 CAN节点硬件电路组成
图2给出CAN节点硬件电路,由AMR微控制器LPC2294、CAN总线收发器TJA1050T、高速光耦6N137和电源隔离模块B0505S等组成。
2.2.1 控制器特点
该设计选用的LPC2294是Philips公司新推出的一款功能强大、超低功耗、具有ARM7TDMI内核的32位微控制器。它具有144脚封装,2个32位定时器,8路10位ADC,4路CAN通道和PWM通道以及多达9个外部中断,内部嵌入256 KB高速FLASH存储器和16 KB静态RAM,包含76(使用了外部存储器)~112(单片)个GPIO口。如此丰富的片上资源完全可以满足一般工业控制的需要,同时还可以减少系统硬件设计的复杂度。另外,LPC2294支持JTAG实时仿真和跟踪、128位宽度的存储器接口和独特的加速结构,能够使32位代码在高达60 MHz的操作频率下运行。LPC2294内部集成有4路CAN控制器;符合CAN规范CAN2.0B,ISO 11989-1标准;总线数据波特度均可达1 Mb/s;可访问32位的寄存器和RAM;全局验收过滤器可识别几乎所有总线的11位和29位Rx标识符;验收过滤器为选择标准标识符提供了FullCAN-style自动接收功能。作为该设计的核心部件,LPC2294不仅担起主控制器的作用,同时还作为CAN网络的节点控制器,与网络中其他节点实现数据传输与交换。
2.2.2收发器特点
收发器TJA1050T是CAN协议控制器和物理总线之间的接口,它与“ISO 11898”标准完全兼容。CANH与CANL理想配合,可使电磁辐射减到更低。除此之外,TJA1050T不上电时,总线呈现无源特性,这使得TJA1050T在性能上大大优于以前的CAN总线收发器。TJA1050T有高速和静音(它们由引脚“S”来控制)两种工作模式。在高速模式中,总线输出信号有固定的斜率,并且以尽量快的速度切换。高速模式适用于最大位速度和最大总线长度的情况,而且此时其收发器循环延迟最小;在静音模式时,发送器是禁能的,而不管TxD的输入信号。静音模式可以防止CAN控制器不受控制时对网络通信造成堵塞。
3 CAN总线通信系统软件设计
对于LPC2294微处理器,CAN控制器完全是基于事件触发的,即在本身状态发生改变时,CAN控制器会把状态变化的结果告诉微处理器。因此中心微处理器可以采用中断方式或者轮询方式对CAN控制器做出相应的处理。各CAN节点按规定格式和周期发送数据到总线上,同时根据需要各取所需报文。对于接收数据,则采用中断的方式实现,一旦中断发生,即将接收的数据装载到相应的报文寄存器中。此时利用屏蔽滤波寄存器对接收报文的标识符和预先在接收缓冲器初始化时设定的标识符进行有选择地逐位比较,只有标识符匹配的报文才能进入接收缓冲器,那些不符合要求的报文将被屏蔽于接收缓冲器外,从而减轻CPU处理报文的负担。
3.1 CAN控制器初始化
初始化CAN控制器的操作包括硬件使能、软件复位、设置报警界限、设置总线波特率、设置中断工作方式、设置验收滤波器工作方式、设置工作模式并启动CAN等。初始化程序如下:
3.2 数据发送
将待发送的数据打包成符合CAN协议的帧格式后,便可写入发送缓冲区,并启动发送。在写发送缓冲区前必须查询其状态。LPC2294中的每个CAN控制器有3个发送缓冲区,它们的状态可通过查询CANSR得知。只有当其中有空闲的发送缓冲区时才可将数据写入。在发送大量数据时,这一步显得尤其重要,否则将不能保证发送的可靠性。启动发送成功后,只能通过查询CANGSR的TCS位或配合发送成功中断来判断数据是否发送成功。
3.3 数据接收
接收数据可采用查询方式或中断方式。在某一段时间内,CAN总线并不总是在活动。为了提高效率,可采用中断方式,在初始化程序中必须使能接收中断。在中断服务子程序中,读取CANICR,判断是否有接收中断标志,有则读取接收缓冲区数据。为了防止接收缓冲区数据溢出,可开辟一个循环接收数据队列来暂时存储数据,主程序则通过查询该队列获得总线数据。
4 结 语
基于ARM的CAN总线,其电力集中抄表系统的数据通信具有很强的实时性、可靠性和抗干扰性,该系统的样机正在进行挂网测试,以期通过研究和改进,进一步提高程序的通信处理、纠错和容错能力。