它由三个部分组成,分别是抄表客户端程序、数据集中器以及分布在各家各户的电表。抄表流程如下:首先由抄表人员使用抄表客户端程序向数据集中器以HTTP协议的形式发送抄表请求,该请求通过因特网到达数据集中器后,会首先被一个嵌入式Web服务器进行处理。嵌入式Web服务器将返回一个HTML文件给客户端,要求用户输入命令类型(例如,是抄数据还是执行相关控制操作)、电表编号以及附加数据。当用户填完表单后,这些数据将依照HTTPPOST协议发送给数据集中器中的嵌入式Web服务器。随后,相关的命令和数据参数抽取出来,送给数据集中器的控制模块。控制模块将对命令参数进行判断和安全性检查,然后生成相应的命令元组,以便控制和读取数据。电表通信模块完成与电表之间的通信任务,负责将命令元组发送给电表,并读取执行结果。当执行抄表操作时,数据将被电表通信模块以数据元组的方式返回给控制模块,然后按照固定格式被组装为一个字符串,并交给嵌入式Web服务器。嵌入式Web服务器将这些数据插入到预先设计好的HTML文件模板中,随后将其通过因特网返回给客户端的抄表程序。
硬件设计
从图1中可以看出,数据集中器是系统中的关键部分,一方面它需要按照《DL/T64521997:多功能电能表通信规约》通过RS485总线从电表处采集数据,并执行各种控制任务;另一方面它必须能够解释以HTTP形式发送过来的控制命令,并将执行结果以HTML文件的形式返回给抄表客户端。
本文在进行硬件设计的时候采用了基于IP核的设计方法,并将数据集中器的大部分功能在单个FPGA芯片上予以实现。设计电路原理图之前,必须根据系统需求选择合适的IP核。所谓IP核,是指那些以硬件形式(硅片版图)或者软件形式(用Verilog、VHDL描述的RTL或者门级模型)存在的、具有特定功能的硬件电路。IP核通常分为硬核、固核与软核三种。根据系统的硬件开发环境以及性能需求,本文选择了Altera公司开发的一系列软核产品,它们是用Verilog语言所描述的硬件模块,允许用户根据需要对各种参数进行配置,如数据通路带宽、优先进行速度优化还是资源优化等,因而应用非常灵活。系统所用到的软IP核产品有Nios CPU、ROM、RAM、定时器、通用异步收发器UART,以及用于外部功能扩展的Avalon总线模块,并将Nios CPU配置为32位字长模式,拥有256个通用寄存器,工作频率33MHz;UART配置为14400bPs的波特率,8位数据位,2位停止位,无奇偶校验。在确定了IP核并进行相应设置后,需要设计系统的电路原理图。图2表示了由各个IP模块组成的数据集中器内部硬件结构,其中的ROM用于存放用户程序,RAM作为程序运行时的存储空间,定时器为实时操作系统提供时钟中断功能,外部总线接口和UART负责与系统外部进行通信。它们将通过一条内部总线与Nios CPU相连,这样就构成了一个完整的嵌入式硬件系统。设计电路图后的下一步工作是选择合适的实现载体。基于IP核的设计方法通常使用FPGA芯片或者直接在硅片上实现。本文采用的是Altera公司APEX20KE系列FPGA芯片,能提供8000个左右的逻辑块资源和多达400Kb左右的ROM和RAM存储空间。由于FPGA芯片具有可反复更改的特性,因此有助于硬件系统的改进和不断升级。另外,通过对通信接口进行重构,例如将UART改为CAN总线控制器,可以使系统能与更多的硬件环境兼容。
图2 数据集中器的硬件结构
由于在FPGA芯片上构造电平转换电路和以太网物理层、MAC层电路较困难,本文将这些功能放到了FPGA芯片的外面,并分别使用MAX485和LAN91C111芯片来实现电平转换和以太网硬件接口功能。FPGA芯片内的UART模块和MAX485芯片共同完成与电表的数据通信任务,前者负责接收和发送数据,后者完成信号电平的转换。SMSC公司的LAN91C111是为了方便嵌入式应用系统连接到快速以太网而专门设计的,它实现了CSMA/CD协议的物理层和媒体访问控制层(MAC)两个部分,并可以很方便地与许多嵌入式处理器进行数据交换。