智能抄表终端的设计.doc_第1页
智能抄表终端的设计.doc_第2页
智能抄表终端的设计.doc_第3页
智能抄表终端的设计.doc_第4页
智能抄表终端的设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能抄表终端的设计摘 要 抄表终端实现的功能是完成抄表、数据的存储以及向PC机上传数据。本方案采用RS485总线和远红外通讯实现抄表系统功能。设计采用的是32位高性能ARM处理器和嵌入式实时操作系统uC/OS-II的结合,实现多任务管理,具有良好的人机交互界面。4个通讯口支持RS485总线远程抄表和红外通讯抄表,USB通讯口和RS232通讯口用于和上位机通讯。本设计具有成本低,数据传输稳定、可靠性高、传送距离较远、速度快、抗干扰能力强等优点。关键词 抄表,RS485总线,ARM处理器 ,红外通讯,UCOS/IIDesign of Intelligent Meter Reading Terminal InstrumentAuthor Wang YongTutor Xu Lijia Abstract:The meter reading terminal instrument carries out function of meter reading,storing dates and uploading the data to upper monitor.The design uses a processor of 32 bit which is high-powered to combine uC/OS-II. It can realize the management of multitask. Four port support for the remote meter reading by the RS485 bus and infrared communication.The RS232 and USB are used to communicate with upper monitor .The design is not having lower cost,but also having stable database transmission, reliable performance,far trancemission distance,far speed,strong anti-interference capability and so on.Keywords: meter reading by infrared communication; RS 485 bus; ARM processor; infrared communication; uCOS/II; 1 绪言近几年,随着我国电力事业的不断发展及整个社会正由计划经济向市场经济转轨过程中,电力部门对于电力负荷设备要求也由原来的重控制型而转变到重管理型,由原来采用行政手段而转变为采取经济手段,其中一条措施就是实行峰、谷时段不同价。智能型电能表是一种以按峰谷时段进行计量的计量设备,同时它还能反映出现在负荷、最大负荷出现时间、断相失压等情况。为了能及时有效将这些数据传回电力部门,需要一种终端设备来完成这一工作。(1)一个终端设备必须能接多个电能表,以满足多路进线的要求。(2)由于读一个表需要几秒钟时间,有时甚至需几个命令才能完成。所以为了在电力部门发出查询命令时,及时将表数据上报,必须在这之前将数据组织准备好。(3)除了上报表数据内容这一功能外,该设备还应能对一些表数据进行处理,并在当地设备面板上显示出来,比如:可以显示每一天零点的表读数冻结值,还可以显示功率等等。所以,要求设备具有一定的驱动能力、相当的存储内存、以及相应的显示功能。远程抄表系统不仅能够节约人力资源,更重要的是可提高抄表的准确性,减少因估计或誊写而造成的帐单出错,所以这种技术越来越受到用户欢迎。远程抄表系统一般包括3个部分:上位机、集中器和采集终端。其中采集终端是介于集中器和电能表之间的中间设备,主要具有电量数据采集、处理、存储及转发等功能;根据电能表的不同,电量采集终端以智能通信方式(规约)或脉冲采集方式采集数据,并以一定的算法或程式将采集数据加以周期性和选择性的存储,同时将实时或历史电量数据以集中器要求的格式和内容传递给集中器。由于基于RS 485总线的远程抄表系统不仅成本比较低,而且具有数据传输稳定、可靠性高、传送距离较远、速度快、抗干扰能力强等优点。2 智能抄表终端硬件的设计及实现2.1 抄表终端的总体设计抄表器的硬件设计框图如图1所示。微处理器采用一款基于ARM7内核的控制器。两个UART分别扩展了1个RS485接口与带485的电表通讯,另一个则通过USB转串口模块与上位机通讯。存储器采用AT24C64,通过软件模拟IIC与控制器通讯。抄表器上装备黄/绿背光的12864图形点阵LCD,能够操作显示抄表信息、通信信息、故障信息、报警信息等内容。抄表器还可进行红外和RS232串口通讯。LPC2104(ucOS/II)LCD显示EEPROMRS485接口电能表USB接口按键红外通讯RS232接口上位机图1 抄表终端的硬件设计框图2.2 微控制器模块1LPC2104采用的是ARM7TDMI-S 处理器,是通用的32 位微处理器,它具有高性能和低功耗的特性。ARM 结构是基于精简指令集计算机(RISC)原理而设计的。指令集和相关的译码机制比复杂指令集计算机要简单得多。这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。通常在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。LPC2104集成了一个128K 字节的FLASH 存储器系统。该存储器可用作代码和数据的存储。对FLASH 存储器的编程可通过几种方法来实现:通过内置的串行JTAG 接口,通过串口进行在系统编程(ISP),也可以在应用程序运行时进行在应用编程(IAP)。这样为数据存储和现场固件的升级都带来了极大的灵活性。LPC2104具有16K静态RAM,SRAM可用作代码和/或数据的存储,支持8位访问。SRAM 控制器包含一个回写缓冲区,它用于防止CPU 在连续的写操作时停止运行。2.2.1 电源模块设计 本设计中电源需要为系统提供5V ,3.3V ,1.8V的电压,电源模块采用9V直流电源输入,经过C1、C3滤波,然后通过78M05稳压芯片将电源稳压至5V。再使用LDO芯片(低压差电源芯片)稳压输出3.3V及1.8V电压。LDO芯片采用了LM1117MPX-1.8和LM1117MPX-3.3,其特点为输出电流大,输出电压精度高,稳定性高。系统电源如图2所示。图2 电源模块原理图LM1117系列LDO芯片输出电流可达800mA,输出电压的精度在1%以内,还具有电流限制和热保护功能,广泛用户在手持式仪表、数字家电、工业控制等领域。使用时,其输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。2.2.2 MCU复位模块设计图3 复位模块原理图由于ARM芯片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应能力、时钟源的稳定性、电源监控可靠性等诸多方面也提出了更高的要求。LPC2104复位电平为低电平,复位电路才用专用复位芯片MAX708SD,这样可以使复位电路更加稳定。如图3所示,复位芯片 /MR引脚电平改变 控制 /RST引脚电平的变化,当S1按下 /MR引脚电平有效 ,则 /RST输出为低电平 ,复位MCU。2.3 通讯模块设计2.3.1 抄表器与电能表通讯(RS485通讯模块)图4 RS485硬件原理图RS485通讯模块电路图如上图4所示。芯片采用MAX485接口芯片。它是Maxim公司的一种RS485芯片。采用单一电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用一个管脚控制这两个引脚即可,在本方案中将这两个引脚都接高电平,使之工作在发送状态;A端和B端分别为接收和发送的差分信号端, RS485采用差分信号负逻辑,2V6V表示“0”,- 6V- 2V表示“1”。当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。J2与电表接口实现通讯。2.3.2 USB通讯模块设计USB转UART模块电路设计如图5所示。CP2102是一款高集成度的USB-UART桥接电路,它们能够用最简单的外部电路,最少的外部器件及最小的电路板面积简便实现USB2.0到UART的转换。与其他USB-UART转接电路的工作原理类似,CP2102通过驱动程序将PC的USB口虚拟成COM口以达到扩展的目的。虚拟COM口(VCP)的器件驱动程序允许一个基于CP2102的器件以PC应用软件的形式作为一个增加的COM口独立于任何现有的硬件。COM口使用运行在PC上的应用软件以访问一个标准硬件COM口的方式访问基于CP2102的器件,PC与CP2102间的数据传输是通过USB完成的,因此,无需修改现有的软件和硬件就可以通过USB向基于CP2102的器件传输数据。图5 USB转UART模块原理图2.3.3 红外通讯模块设计红外通讯是利用波长为900nm1000nm的红外波作为信息的载体,发射装置把二进制信号经过高频调试后发射出去,接收装置把接收的红外高频信号进行解调作为原来信息的一种通信传输方式。其中调试方式有脉宽调制PWM和脉时调制PPM两种,本方案采取的是PWM脉时调制方式。 图6 红外通讯模块原理图红外发射是利用单片机的串行数据发送口TXD控制驱动三极管Q2进行二进制“0”和“1”的传输(数据由串行发送缓冲器SBUF中送出),以及利用单片机P0.10口控制驱动三极管Q1进行高频38.4KHZ调制从而可靠地实现了红外发射管D1在传输数据“0”时进行高频红外发射和数据“1”时被截止发射功能。状态关系见表1。表1 状态关系表名称状态TXD01P0.100101IR发射管状态1000由P0.10控制高频调制,D1定时导通和截止产生高频发射信号,即实现发送数据“0”的功能。D1截止不发射,即实现了发送数据“1”的功能。红外接收是利用红外接收是利用红接收管PIC12034收到高频信号输出低电平确定为数据“0”,而没收到高频信号输出高电平确定为数据“1”方式经过解调,把数据通过单片机串行数据接收口RXD进行串行方式接收(接收数据存储在串行口缓冲器SBUF中)。2.3.4 PC机通信电路接口设计(RS232)以及ISP模块图7 RS232及ISP原理图RS-232-C标准采用的接口是9芯或25芯的D型插头,但实际上要完成最基本的串行通信功能,只需要数据接收、数据发送和地三根接线即可,只要是注意的是RS-232-C标准所定义的高、低电平信号与单片机系统的TTL电路所定义的高、低电平信号完全不同,TTL的标准逻辑uIn对应2V-3.3V电平,标准逻辑.0”对应OV-0.4V 电平;而RS-232-C标准采用负逻辑方式,标准逻辑I”对应一5V-15V电平,标准逻辑HOH对应+5V-+15V电平。显然,两者间要进行通信必须经过信号电平的转换。目前常使用的电平转换电路为MAX3232,它的噪声容限为2V。即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1”。它与LPC2104的连接电路如图7所示。在线系统编程 (ISP)通过boot 装载程序和串口对片内Flash 存储器进行编程和再编程。通过短路帽S8控制ARM运行方式,当复位后P0.13(ISP_EN)为低电平被认为是启动ISP命令处理器的外部硬件请求。如果没有外部请求(P0.13(ISP_EN)复位后采样为高电平),那么将搜索有效的用户程序。如果找到有效的用户程序,执行的控制就转移给用户程序。于P0.13口在复位后处于高阻模式,所以需要提供上拉电阻使管脚处于一个确定的状态.2.4 数据存储模块设计2.4.1 IIC接口的EEPROM设计IIC总线是荷兰飞利浦PHILIPS开发的一种高效,实用,可靠的双向二线制(也有3线制,家电很少用)串行数据传输结构总线,该总线使各电路分割成各种功能的模块,并进行软件化设计,各个功能模块电路内都有集成一个IIC总线接口电路,因此都可以挂接在总线上,很好的解决了众多功能IC与CPU之间的输入输出接口,使其连接方式变得十分简单。图8 IIC模块原理图本系统中采用ATMEL公司AT24C64,在本设计中可存储100个用户信息,它是8K的串行电可擦除可编程的EEPROM器件,提供了2线串行接口。相对于Flash和SDRAM芯片,它与LPC2104的相接比较简单,只需将时钟和数据线对应相接,并接上上拉电阻即可。如图8所示,为了支持高速IIC总线操作,总线上拉电阻R1、R2的的大小为3K,这样总线变化时上升/下降的速度就变快了。2.5 人机交互电路设计2.5.1 按键模块按键模块如图9所示,6个独立按键S2S7的功能分别为上、下、左、右、确定、退出。由于做普通I/O口时没有内部上拉电阻,所以需要外接上拉电阻R20R25。当没有按键时,口线值为1,当按键按下时为0;而R14R19为口线保护电阻,即当连接按键的I/O设置为输出时,这几个电阻保证了输出口不会直接对地短路。图9 按键模块原理图2.5.2 LCD液晶显示接口电路图10 显示模块及时钟电路原理图智能抄表终端提供良好的人机操作界面,如图10所示,本设计使用了128*64的点阵液晶显示器.采用外部11.0592MHz晶振,用1M电阻R3并接到晶振的两端,使系统更容易起振。用11.0592MHz晶振的原因是使串口波特率更精确,同时能够支持LPC2104芯片内部PLL功能及ISP功能。3 智能抄表终端软件的设计及实现3.1选择实时操作系统uC/OS-II的理由通常一个单片机应用程序所控制的外设和履行的任务不多,采取一个主循环和几个顺序调用的子程序模块(后台行为),通过中断服务处理异步事件(前台行为),这种程序设计方法也被称为前后台模式。不复杂的小系统可以采用这种模丸目前随着嵌入式系统复杂程度的不断提高,这种程序设计方法就会暴露出两个问题:一是中断可能得不到及时响应,处理时间过长,这对于一些控制场合是不允许的:二是系统任务多,要考虑的各种可能性也多,各种资源如调度不当就会发生死锁,降低软件的可靠性,程序编写任务量成指数增加。解决这些问题的最好办法就是使用实时操作系统,多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。3.2 uC/OS-11的特点及运行机制33.2.1 uC/OS-II的特点uC/OS-II提供了对64个任务的管理,除了系统内核本身所保留了8个任务外,用户的应用程序最多可以有56个任务。由于uC/OS-II是一个基于优先级的实时操作系统,因此每个任务的优先级必须不相同,系统中的每个任务都处于以下5种状态之一,这5种状态分别是休眠态、就绪态、运行态、等待态(等待某一事件发生)和被中断态.uC/OS-II是一个占先式的内核,即最高优先级的任务一旦就绪,总能得到处理器的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,则当前任务的处理器控制权就被剥夺了,或者说该任务就被挂起,那个高优先级的任务立刻得到处理器的控制权。如果是中断服务程序(ISR)使一个高优先级的任务进入就绪态,中断处理完成后,被中断了的任务将被挂起,优先级高的那个任务则开始运行。其状态切换方式如图11所示。uC/OS-II提供了对信号量、邮箱和消息队列的支持。等待或者挂起就绪运行休眠中断程序图11 uC/OS-II控制下的任务状态切换图3.2.2 uC/OS-II的任务调度机制实际上uC/OS-II可以简单地看作是一个多任务调度器,在此基础上增加了不同任务之间相互通信的信号量等服务。实现多任务的调度是uC/OS-II的精华所在,也是移植工作中的重点,只有充分的理解了任务调度机制,才能在系统移植过程中写出高效的代码来。uC/OS-II进行任务调试的思想是,每时每刻总是让优先级最高的就绪任务处于运行状态,为此uC/OS-I把任务调度工作分为两步:寻找优先级别最高的任务和任务切换。 3.3 本设计软件流程软件流程如图12所示,在本系统中,共建立9个任务,分别给每个任务分配不同的优先级由高到低,任务之间彼此独立,通过实时内核UC/OS来管理切换这些任务。优先级最高且处于就绪状态的任务是当前正在运行的任务,每个任务都是一个死循环。本设计中通过按键消息来挂起不需要运行的任务,恢复需要运行的任务,实现任务间的切换。底层驱动模块之间也是相互独立的,他们都是为任务层服务的,实现底层驱动。图12 系统软件流程图3.4 主要模块软件的设计实现前面已经提及在uC/OS-I下编程用户只需分别编写各个任务,并给各个任务分别分配给不同的优先级别,uC/OS-II会依据任务的优先级别进行调度。本抄表系统的任务安排如3.4.13.4.6所示:3.4.1 主函数main( )在main( )函数中,首先初始化板上的外围设备,如LCD、串口、通用1./O口、RTC. IIC总线 等, 建立任务,之后调用uC/OS-II的OSStartO函数以开始任务的运行,调用此函数之后,操作系统将会根据任务的优先级首先进入TaskSatrt任务并进行多任务的调度,此后永不返回。 初始化外设OSInit()初始化操作系统创建任务OSStart()多任务调度开始图13 主函数流程图*注:代码见附录3 3.4.2 主菜单任务 MainmenuTask主菜单任务MainmenuTask初始化显示图标菜单初始化显示图标菜单建立按键消息等待按键恢复要执行的任务挂起当前任务有按键无按键图14 显示主菜单*注:代码见附录43.4.3 键盘任务 KeyTask恢复键盘任务(resume)接收键盘输入返回按键消息挂起键盘任务挂起当前任务图15 键盘任务流程*注:代码见附录103.4.4 抄表任务 ProcessTask3.4.4.1 抄表任务框图UART驱动程序UC/OS-II通讯测试485抄表红外抄表广播校时图16 抄表任务流程框图抄表协议采用 国内较普遍的中华人民共和国电力行业标准DLT/645 (多功能电能表通信规约)。*注:代码见附录63.4.4.2 链路层8本协议为主-从结构的半双工通信方式。手持单元或其它数据终端为主站,费率装置为从站。每个费率装置均有各自的地址编码。通信链路的建立与解除均由主站发出的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据长度、数据域、帧信息纵向校验码及帧结束符等7 个部分组成。每部分由若干字节组成。0D0D1D2D3D4D5D6D7P1传送方向起始位8位数据偶校验停止位图17 字节格式每字节含8 位二进制码,传输时加上一个起始位(0)、一个偶校验位和一个停止位(1),共11 位。其传输序列如图17。D0 是字节的最低有效位,D7 是字节的最高有效位。先传低位,后传高位。表2 帧格式说明代码帧起始符68H地址域A0A1A2A3A4A5帧起始符68H控制码C数据长度域L数据域DATA校验码CS结束符16H初始化唤醒电表(0xFE)读表地址比较地址? YN发送帧接收程序接收正确? YN是否重发? YN退出通讯NY发完毕? 图18 通讯流程图帧是传送信息的基本单元,帧格式如图18。帧起始符0x68标识一帧信息的开始,地址域可为标号.资产号 .用户号 .设备号等。控制码为通讯命令。校验码CS表示从帧起始符开始到校验码之前的所有个字节的模256的和,即个字节二进制算术和,不记超过256的溢出值。结束符0X16 表示一帧信息的结束,其值16H=00010110B。通讯流程框图如图18所示。*注:代码见附录63.4.5 用户管理任务UC/OS-II新建和删除目录新建和删除目录查找用户用户统计IIC驱动程序底层驱动图19 抄表任务流程框图*注:代码见附录53.4.6 抄表器与上位机通信协议3.4.6.1 通讯协议表3 上传数据协议上传数据上传目录上传户名上传表号上传总电量上传峰电量上传平电量上传谷电量上传抄表时间上传抄表状态命令帧0x320x686字节6字节6字节3字节3字节3字节3字节3字节1字节表4 通讯测试协议通讯测试命令帧0x68 , 0x31 , 0x173.4.6.2 简易上位机抄表管理软件图20 上位机抄表管理软件通过抄表器的RS232 和USB 通讯口和上位机连接,将抄表器中的数据上传到上位机中进行管理。在上传数据的时候首先要进行通讯测试,只有当通讯测试成功以后才能上传数据。抄表管理软件如图20所示。通讯测试协议如表4所示。上传数据协议如表3所示。4 总结本设计的任务是设计一个抄表器,其实质是32ARM处理器和嵌入式实时系统UC/OS-II的一个简单的应用。在设计过程中首先遇到的困难就是硬件电路的调试,在调试EEPROM读写和USB通讯时遇到了读写不成功和不能和上位机通讯等困难等等。大部分的时间还是花在软件的编写上,在这工程中遇到的主要困难是UC系统的移植和多任务的建模。其次就是一些功能上的调试困难,在调试抄表模块的时候,出现了不能和电表通讯的情况,以及不能正确的抄写电量的困难 等等,在克服了种种困难后,搭建了一个嵌入式GUI系统平台,并在上面开发了一些功能。实现了基本抄表功能的同时也添加了一些附加功能,使整个系统不单是一个抄表器。5 结论整个系统的优点在于:遵守硬件设计原则的情况下将整个系统划分为通讯模块,存储模块、人机交互接口模块,并给出了详细的电路连接图,这些硬件组成为系统提供了足够的存储空间、完善的通讯功能和良好的交互界面,不仅能够满足抄表的要求,而且有利于系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论