源端口 Source Port(16bit) 序列号Sequence Number(32bit) 宿端口 Destination Port(16bit) 确认号Acknowledgement Number(32bit) 头长U A P R S F Reserved R C S S Y I 窗口大小Window Size 度 (6bit) G K H T N N (16bit) 校验和Checksum(16bit) 选项Options(0或多个32bit字) 数据Data(可选) 图7.4 TCP报文格式
40个字节 紧急指针Urgent Pointer(16bit)
(2)UDP协议
UDP是用户数据报协议的简称。它位于TCP/IP协议集中,与TCP相对应,是一种提供应用程序之间传送数据报的机制。将每台机器看作是一些抽象的协议端口的集合,协议端口能区分在一台机器上运行的多个程序。每个UDP报文不仅传送用户数据,还包括发送方和接收方的协议端口号,以使接收方的UDP软件能将报文送到正确的接收进程,并回送应答报文给对应的发送进程。UDP使用底层的网络协议来传送报文,同IP一样,提供不可靠的无连接数据报传输服务。它不提供报文到达确认、排序以及流量控制等功能,因此报文可能会丢失、重复、以及乱序等。而可靠性的问题将由使用UDP的应用程序来解决。
每个UDP报文称为一个用户数据报,分UDP报头和UDP数据区两部分。报头由四个16位长的字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验和。UDP报文格式如图7.5所示。
16位源端口号 16位UDP长度 数据(如果有) 16位目的端口号 16位UDP校验和 图7.5 UDP报文格式
综上所述,再结合GPRS网络的情况具体谈一下它们的区别: l)从对系统资源的要求上看,TCP较多,UDP少。
22
2)UDP程序结构较简单。
3)TCP是基于流模式的,UDP是基于数据报模式的。
4)TCP保证数据正确性和数据的顺序,UDP可能会丢包,数据顺序也没有保证。 5)TCP传输存在一定的延时,大概是1600ms,UDP响应速度稍微快一些。 6)从GPRS网络端口资源分析,UDP十分紧缺,变化很快。而TCP采用可靠链路传输,不存在端口变化的问题。
本系统中要求监控中心和GPRS模块能相互的、实时的传输数据。TCP本身就是可靠链路传输,提供一个实时的双向的传输通道,能很好的满足这一要求。而对于UDP传输,在一段时间没有数据流量后,端口容易改变,产生的影响就是从监控中心向GPRS模块发送数据,GPRS模块接收不到。从通讯的可靠性方面来说,不容许传输过程中的数据丢失或者最大限度的要求数据的可靠性。否则,根本无法实现远程监控。从这一点来看,很显然在无线数据传输过程中,TCP比UDP更能保证数据的完整性、可靠性,存在更小的丢包率。从经济性的角度考虑,要求降低费用,和费用直接相关的就是流量了,流量低,费用就低了。虽然TCP本身的包头要比UDP多,但是UDP在实际应用中往往需要维护双向通道,就必须要通过大量的心跳包数据来维护端口资源。总的比较起来,UDP的实际流量要比TCF还要大。
基于对以上几点的考虑,本文认为TCP传输更能满足本系统对通讯的要求,所以在本系统的GPRS通讯部分,选择了TCP协议。
7.3.3 GPRS通讯模式选择
为了适应不同的应用场合,GPRS通讯模式的选择必须从两个方面考虑,一个是下位机终端GPRS模块的通讯模式,一个是监控中心的通讯模式。下面分别介绍:
GPRS终端单元可以工作在三种工作模式下:永远在线模式、中心呼号模式和定时传输模式,下面以传输TCP数据报为例来说明三种不同的数据传输模式下,GPRS终端单元的工作流程。
(1)实时在线模式
描述:保持GPRS模块与监控中心的永久连接。工作过程:GPRS模块启动后自动连接GPRS网络,根据监控中心的IP地址自动连接监控中心,并保持和维护链路的连接,当链路发生异常时,GPRS模块自动重新建立与监控中心的连接。
实时在线模式下,终端要通过发送心跳包来维持与数据中心之间的链路。终端系统启动定时器,当设定心跳时间到时,DTU向数据中心发送设定的心跳包。
(2)中心呼叫模式
描述:由数据中心发起数据传输请求,GPRS模块应答并发送/接收数据。
工作过程:当监控中心需要收集或发送数据时发出呼叫指令,GPRS模块立即连接GPRS网络并登录监控中心网络,按照中心的指令传输数据或执行操作。
由于该模式下,每次通讯都有由中心发出呼叫指令,随后等待GPRS抄表模块的响应,而响应的过程一般较为漫长,所以会引起较大延时,不能满足系统的实时要求。
(3)定时传输模式
描述:GPRS模块根据事先设置的定时间隔向数据中心(DSC)发送数据和接收数据,数据收发完毕,自动断线。
在该模式下,工作流程和中心呼叫模式相似,不同之处在于,定时传输模式是在设定时间到时终端登录GPRS网络连接数据中心,数据传输完毕后,终端等待下一次预定时间到时登录GPRS网络连接数据中心,传输数据。
在无线远程抄表系统中,考虑到无线远程抄表系统要求的是实时,双向的数据传输,
23
而且GPRS通讯是按数据流量计费的特点,在本系统中选用永远在线的模式,即让下位机终端的GPRS模块启动后就主动连接监控中心,并且在以后的时间里一直维护链路的畅通,以保证通讯的正常进行。
监控中心的通讯模式也是一个不容忽视的环节,由于GPRS网络和Internet网络一样是基于TCP/IP协议的,并且它们是互通的。所以,监控中心的通讯模式就有两种,一种是直接通过GPRSMODEM或者专线的方式接入到GPRS网络中,从而与下位机终端的GPRS模块完成通讯;另外一种就是先接入Internet网络,利用Internet网络与GPRS网络可以互通的原理来实现与下位机终端GPRS通讯。在本系统中,监控中心以固定IP连接的方式接入Internet网络,通过GPRS网关GGSN接入GPRS网络,下位机终端在进入GPRS网络之后,就可以连接这个固定地址来与监控中心建立无线的连接,从而组建远程测控网络,进行基于TCP/IP协议的网络通讯。
7.3.4 系统设计要求
自动抄表系统是由各功能模块组合而成的控制系统,在设计的时候,应考虑各方面的因素影响。现在市场上流行的设备和产品五花八门,功能很多,价格也很昂贵,如果一味追求高端、先进,会使成本过高,功能过剩,造成不必要的浪费。结合系统的功能指标需求,应该在经济实用的前提下,不断提高抄表系统的性能。我们在进行具体设计的时候应该注意以下几点:
(l)技术的成熟性及先进性
系统设计时必须采用成熟而先进的技术,使系统在今后一段时间内都处于领先地位,延长系统的生命力。
(2)系统的可靠性 数据的采集,数据的通讯都必须准确可靠,系统各部分的抗干扰、抗攻击能力要强,要求能适应各种恶劣的环境。 (3)系统的方便性
系统的构建、调试要尽可能方便,施工、安装要方便。系统一旦发生故障,维护工作量要少。
(4)系统的可扩充性
系统要能够根据用户的数量,调整安装结构,可以根据需要升级或扩充功能,并且备有广域联网的功能。
(5)系统的开放性
今后的发展趋势是多元化的,因此系统在选用通信协议以及硬件接口时都要符合开放的系统规范。
24
第八章 系统的硬件设计
终端硬件平台设计成以ARM7微处理器为核心,在Nucleus Plus实时操作系统的支持下完成信号参数采集、控制命令执行和通讯等功能的测控及通讯装置。对硬件平台的总体设计要求包括:
(1)功能性要求
所设计出的硬件平台必须能充分支撑其上的软件系统以实现强大的功能,准确、迅速地完成智能电表相关参数数据和事件的监测,并能对数据进行保存、上报处理;实时响应和执行监控中心的控制命令具备简洁的人机交互界面,便于现场了解信息、控制和调试;满足应用程序远程下载升级和未来其他功能扩展对硬件平台的要求。
(2)性能要求
要保证所设计的系统能适应环境的要求,具体表现为有很好的抗干扰性性能,其中最主要的是抗电磁干扰的性能。
(3)经济性要求
在此基础上还要考虑实现此终端系统的经济成本。
8.1 终端系统结构
如图8.1所示,终端选用LPC2138为主控MCU,利用其片上的512kFlash,32kRAM作为程序存储及运行空间:片上实时时钟经测定误差在1s/天内,以32.768kHz晶振和3.3V的银锌纽扣电池为独立的时钟源和电源,用于抄表时间控制和实时时间显示,外接一片12C接口的E2PROMAT24C16(16Kbit)存储终端参数,一片SPI接口的FlashAT45DB32(32Mbit)存储历史数据以及远程软件升级时暂存接收到的新程序;液晶屏用于显示终端当前参数、实时状态和抄表数据,可由按键控制显示页面切换和更改终端地址。
25
系统电源及电源监控电路 图8.1 终端硬件原理图
系统时钟和RTC LCD及按键 多功能电表 RS485 LPC2138 开关 MC55 本地调试接口 FLASH E2PROM
LPC2138通过UARTO以RS232电平与GPRS模块MC55连接,用AT命令控制其登录互联网,建立与主站的连接后按国家电网公司的《电力负荷管理系统数据传输规约-2004》与之通信。终端通过UART1以RS485电平与电表连接,按各电表协议如《多功能电能表通信规约DL/T 645-1997》获取抄表数据。
8.2 ARM控制单元及相关外围电路
8.2.1 ARM控制单元
在监测系统中一般采用微处理器或工业控制计算机来实现高速信息处理、数字化控制及网络通讯等功能。由于工业控制计算机启停时间长,系统的可靠性不如采用专用芯片实现的微处理器系统,因此在可靠性要求很高的场合,多采用微处理器作为监测系统的主控制器。同时,在监测系统中,作为主控制器的微处理器对监测系统的品质指标提高具有举足轻重的作用,因此选择性能优良的微处理器是提高控制系统性能指标的关键。
对它的主要要求是有较大容量的存储器、高速的运算速度、丰富的集成外围模块、足够的I/O口以及较好的适用环境的能力等等。考虑到以上因素,本系统最终决定选用PHILIPS公司的32位ARM7系列LPC2138作为该系统的微处理器,其强大的功能可以大大简化测控系统的设计。
下面就简单介绍一下LPC2138的情况。LPC2138是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-SCPU,LPC2138的主要特性如下:
(1)单电源供电,CPU操作电压范围:3.0~3.6V(3.3V+/-10%),含有上电复位(POR)和掉电检测(BOD)电路.
(2)小型的LQFP64封装上包含多达47个通用I/O口(可承受5V电压),这些GPIO内部设有上拉电阻,输入输出方式可选。口线与其他功能复用,可进行相关的连接配置选择。
(3)片内晶振频率范围:1-30MHz。通过片内PLL可实现最大为60MHZ的CPU操作频率,PLL的稳定时间为1OOus。
(4)32KB片内静态RAM,512KB片内Flash程序存储器。
(5)2个32位定时器(带4路捕获和4路比较通道)、PWM单元(6路输出)和看门狗。
(6)2个16C550工业标准UART,2个高速I2C接口(400kbit/s),一个SPI和SSP(具有缓冲功能,数据长度可变)。
(7)2个8路10位A/D转换器共包含16个模拟输入,每个通道的转换时间低至2.44us。单个D/A转换器可产生不同的模拟输出。
(8)向量中断控制器。可配置优先级和向量地址;通过外部中断将处理器从掉电模式中唤醒。9个边沿或电平触发的外部中断引脚。
(9)2个低功耗模式为空闲和掉电;实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗;可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
(10)片内Boot装载程序实现在系统编程(ISP)和在应用中编程(IAP);Flash编程时间为1ms可编程256字节,扇区擦除或整片擦除只需400ms。 8.2.2 电源监控及复位电路
对于实际的ARM应用系统而言,由于ARM芯片的高速、低功耗、低工作电压导
26
TM