基于ARM9的RTU设计
MCU通过数据总线、地址总线、若干控制信号线与以太网控制器DM9000相连,以太网控制器的两对差分信号线接到合适的网络变压器上,同时为了保护以太网控制器,在网络变压器跟RJ45网口之间加入一个合适的ESD保护电路,可以消除外部环境的影响。以太网通信模块图工作原理如图5所示。
1.5 存储器模块和温度测量模块
存储器包括SDRAM、Norflash和Nandflash。SDRAM用来临时存放数据,确保程序能正常运行;Norflash用于存储程序;Nandflash用于存储数据,在RTU突然掉电或通信网络故障的情况下,Nandflash能把重要的数据信息保存起来,待到RTU再次上电并且网络通畅时,再把数据提取出来发送出去。
E2PROM可以用来存储RTU的初始配置信息,包括RTU设备基本属性、IP地址信息、网络参数、串口参数、主从模式选择和AD采样配置等信息。RTU上电运行时,先从E2PROM中读取配置信息,RTU初始化各个模块之后才能正常工作。
测温模块可以用来测量RTU的工作温度,并实时地或定时地向上传输其温度值,实现温度监控。
2 RTU软件设计
该新型RTU内嵌μC/OS-II实时操作系统,数据传输协议采用Modbus协议。μC/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核,适用于工业控制中的实时监控。Modbus协议包括ASCII、RTU、TCP。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通信采用主-从方式。Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。 Modbus/TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。在本文中,作为主站的RTU,内嵌的实时操作系统μC/OS-II实现上层Modbus/TCP协议与Modbus/RTU协议之间的通信(即上位机与计算机、上位机与下位机之间的通信)。而作为从站的RTU,内嵌的实时操作系统μC/OS-II实现Modbus/RTU协议通信(即上位机与下位机之间的通信),对所连接的被测设备进行控制信息的输入输出以及RTU采集和输出模块的控制。以下主要介绍作为从站的RTU软件设计。
2.1 Modbus/RTU协议
Modbus串行链路协议是一个主-从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247)连接于同一个串行总线。Modbus通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个Modbus事务处理。当设备使用RTU模式在Modbus串行链路通信时,报文中每个8位字节含有两个4位十六进制字符。这种模式的主要优点具有是较高的数据密度,而且在相同的波特率下比ASCII模式有更高的吞吐率。每个报文必须以连续的字符流传送。在RTU模式,报文帧由时长至少为3.5个字符时间的空闲间隔区分。如果两个字符之间的空闲间隔大于1.5个字符时间,则报文帧被认为不完整应该被接收节点丢弃。RTU接收驱动程序的实现,由于1.5个字符时间(t1.5)和3.5个字符时间(t3.5)的定时,隐含着大量的对中断的管理。在高通信速率下,这导致CPU负担加重。因此,在通信速率等于或低于19 200 b/s时,这两个定时必须严格遵守;对于波特率大于19 200 b/s的情形,应该使用2个定时的固定值:建议的字符间超时时间(t1.5)为750μs,帧间的超时时间(t3.5)为1.750ms。
2.2 Modbus数据模型
在一系列不同平台上,Modbus数据模式有不同的特性,基本平台有离散输入、线圈、输入寄存器和保持寄存器。在该新型RTU系统中,事先要与主站RTU协商定义好一个离散输入对应表、线圈对应表、输入寄存器对应表、保持寄存器对应表。主站RTU和从站RTU根据对应表中的数据位执行相应的操作。主站RTU读离散输入即读取从站RTU数字量输入状态;主站RTU写线圈即控制从站RTU数字量输出(继电器输出);从站RTU模拟量输入(AD采集的数据)存储于输入寄存器中,供主站RTU读取:主站RTU通过写保持寄存器可以给从站RTU发送配置信息,从站RTU读保持寄存器执行相应操作。用来存储从站RTU的初始配置信息的E2PROM,就是通过读取相应的保持寄存器中数据,写入到E2PROM中,再对RTU重新配置。
2.3 Modbus从站
Modbus主站和Modbus从站是两个独立的模块,主站为上位机(客户机),而从站为下位机(服务机)。主站和从站都有相同的数据链路层,并且它们的帧报文数据结构都是相同的。Modbus从站服务任务是从站协议的核心组成部分,它的主要工作是处理Modbus主站点功能请求,返回主站请求的保持寄存器、输入寄存器、线圈和离散量输入等值,或接收并保存主站写入的保持寄存器和线圈等值;另外,Modbus从站的应用程序也会读取或写入相关的寄存器。从站RTU程序流程:首先,初始化目标板、μC/OS-II、系统时基等等;接着,创建一个系统初始任务(优先级最高)和Modbus从站服务程序;再接着开始运行任务。基于μC/OS-II的从站RTU程序流程图如图6所示。
- 直接变频接收机设计可实现多标准/多频带运行(10-11)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 无线通信网络设计与现场测试(10-10)
- WiMAX数据传输加密方案设计与实现(05-25)
- 高性能TD-SCDMA接收机的设计(03-15)
- 初步设计WiMAX射频系统(03-29)