智能手持抄表器设计_第1页
智能手持抄表器设计_第2页
智能手持抄表器设计_第3页
智能手持抄表器设计_第4页
智能手持抄表器设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

摘 要摘 要采用科学的方法进行用电负荷管理是缓解我国电力供需矛盾的一种有效手段,复费率电能表是一种有效的方法,并以其优良的性能获得了广泛的应用。复费率电度表系统包括复费率管理系统、抄表器和复费率电表,抄表器是配合电度表进行无线抄表的工具,它的主要功能是通过红外数据通讯来实现电度表的抄表,并可以对电度表中的参数进行设置或修改,抄表所得用户数据可以通过USB接口传送到PC机进行处理。手持式抄表机是用于移动数据采集的掌上型设备。它可以实现数据的采集、存储、传输和处理等基本功能,特别适用于信息流、物流集中点。本论文首先简单的介绍了本课题的背景意义和研究现状,然后根据依照智能仪器的设计原则,分析了系统的总体硬件设计原理和软件需求,提出系统总体设计方案。本设计除了主控MCU外,还包含有其他七大模块设计。与以往的设计相比,本设计增加了GPRS通信功能和读写卡功能。随后论文具体介绍了红外抄表器的设计和实现。包括系统硬件设计、各模块所需芯片简单介绍、系统电路单元分析。由于硬件部分是大家比较熟悉和容易理解的,所以这里只是简单的介绍了一下。论文工作的重点是在固件上,所以在软件设计方面较为简单,只给出了程序流程图。最后,本论文对所作的设计进行总结,系统概括了本抄表机设计完成的任务,说明本设计的主要功能基本实现。论文指出了设计中仍然存在的问题和需要采取的解决办法,并寄希望于在今后的研究工作中得到进一步的完善。并对手持机在以后的抄表行业中进行展望。关键词:USB、手持抄表机、GPRS通信、读写卡IIAbstractAbstractIts an effective way to adjust needs and supply to a balance between consumer and electrical power plant by scientific management,using multi-rates power meter is one of the way. Multi-rates power meter,portab1e meter controller and meter management OS all three parts together consist the multi-rate meter system.The handheld meter reading device is a handheld device used for mobile data collection. It can achieve the basic functions of data acquisition, storage, transmission and processing, especially suitable for the flow of information, logistics focal point. Firstly, a brief introduction of the contextual meaning of this topic and Research, then in accordance with the design principles of intelligent instruments,the paper selects the chips for the design of hardware circuit and plans the overall system structure. This design contains the other seven modules designed apart from the master MCU . Compared with the previous design, the design adds GPRS communication module and card reader. Next,the paper specifically describes the design and how to achieve it,,including: device hardware,device software,and host software. we are more familiar with the hardware part,so only make a brief introduction. The focus of the paper work is firmware, software design is relatively simple, only give the program flow chart. Finally, the paper summarizes the tasks completed by the meter reading device.Also some problems are pointed out and solutions offered . Hope the whole design improved in future research . Outlook and the handheld after the meter reading industry.Key Words: USB,Hand-held Meter Reading,GPRS Communication,Card Reader第一章 绪 论目 录目 录摘 要IABSTRACTII目 录III第一章 绪 论1 1.1课题研究的背景1 1.2 课题研究的意义1 1.3 国内外的研究现状2 1.4 本文的主要工作3第二章 手持抄表器的系统设计4 2.1整体设计方案及系统构成4 2.1.1 硬件选择遵从以下原则4 2.1.2 软件需求分析4第三章 手持抄表器的硬件设计6 3.1 手持抄表器的主要功能6 3.2 CPU模块介绍6 3.2.1芯片选择6 3.2.2 电路设计7 3.3 红外通信电路的设计8 3.3.1 红外通讯原理8 3.3.2 元器件选择9 3.3.3红外发射接收电路9 3.4 显示模块的硬件实现10 3.4.1 芯片选择10 3.4.2 LCD显示电路11 3.5 键盘模块的硬件实现11 3.5.1芯片选择11 3.5.2 键盘电路的设计12 3.6 USB模块的设计13 3.6.1 USB通讯简介13 3.6.2 USB接口的实现硬件13 3.6.3 硬件电路图14 3.7 外部扩展存储器的设计15 3.7.1 芯片选择15 3.7.2 电路设计15 3.8 读写卡模块的设计16 3.8.1 SLE4442卡简介16 3.8.2 SLE4442卡的接口电路17 3.9 GPRS通讯模块的设计17第四章 手持抄表器的软件设计20 4.1 红外通信软件设计20 4.1.1红外通信协议20 4.1.2 红外通信软件设计20 4.2 显示模块22 4.3 键盘模块23 4.4 USB程序模块24 4.4.1 USB传输协议24 4.4.2 USB的软件设计25 4.5存储器的读写程序设计28 4.6 读写卡模块28 4.7 GPRS通信模块29总 结31参考文献32致 谢33附录一 显示程序34附录二 键盘程序36附录三 总电路图43- 44 -第一章 绪 论第一章 绪 论1.1课题研究的背景智能手持式抄表机是用于用户用电量的数据读取的手持式设备。抄表机除了可以对用电数据的采集、存储,还可通过本身带有的通讯接口实现数据传输并能根据自身的要求处理数据等基本功能。对于需采集的数据信息较多且集中的地方非常适用。长期以来,我国对用户用电量数据都是采用基于电能表的手工作业方式,即抄表员携带电力用户的用电信息簿,每隔一段时间到各用户住所手工抄录用电数据,最终收取的电费多少都是以此为依据。相比传统的手工作业抄表方式,手持式抄表机具有得天独厚的优势。随着近年来我国用电量的大幅增长和“一户一表”工程的开展,手工作业的抄表方式将需要更多的工作人员投入到这一工作中。这一弊端损害到了到供电企业的社会效益和经济效益,主要表现在以下几个方面:(1)高成本,劳动强度大。电力系统的飞速发展在很大程度上给抄表增加了难度,由于抄表收费人员有限,导致工作效率低、劳动强度大、高成本,如果增加工作人员就会成本进一步增加。(2)手工的方式出错概率较高。传统的手工抄表方式很容易因自己的疏忽造成抄表数据的错误,同时会出现因抄表员个人原因而出现的漏抄和估抄情况。(3)难以适应数据信息化、规范化的管理。由于电力行业的快速发展和以市场为导向的改革的深入及城乡“一户一表”工程的实施,使得手工抄表方式不能适应供电企业进行商业化改造,使之确保在生产和管理方式保持先进性,以保证供电配电部门能够为电力用户提供优质服务。传统的手工作业抄表方式已严重影响了这一方面改革的进展。1.2 课题研究的意义当前,我国用户用电的信息管理基本都是由当地的电力部门统一管理,大多是由抄表工作人员到用户家中进行人工抄表的方式。对用户来说,陌生的抄表人员登门抄表往往会使他们感到不安,而对抄表员来说不仅需要楼上楼下地跑,还要经常面对一些用户的冷眼相待;再加上社会上不法分子不时有冒名抄表人员入室抢劫事情发生,致使用户和抄表人员的关系非常不和谐,非常容易引发社会治安状况。本文论述的关于抄读用户用电量的设计将减轻电力部门的抄表工作,提高工作效率和信息化水平并降低了工作人员的劳动强度,同时有助于国家经济和社会的发展。1.3 国内外的研究现状手持式抄表器是在上世纪80年代后期才逐渐被国人所熟知,当时我国能源部组派遣供用电考察团访问美国,他们所到过很多城市都看到了用抄表微机抄表的方式,取代了原有的手工抄写和光电输入计算机的落后方式,促进了用户用电数据信息系统化、规范化的发展。由于用户数量的快速增长和电价的计算越来越复杂,但抄表、计算机管理工作人员严重不足,1986年我国在各地电力基层开始试图用抄表机来解决这日益严重的问题,并且在其它领域的应用也有所尝试。我们手持抄表设备开发起步相对较晚,手持抄表设备的硬件和软件的初始配置相对落后。然而,由于电力部门对抄表器的研究和开发以取代手工抄表的迫切需求,使得与抄表器有关的技术都取得了长足的发展,这些发展促使电力行业的真正开始走向无纸化,电子化,现代化1。我国是在90年代末期才开始进行自主开发抄表器设备,并使之逐渐被推广应用。进入二十世纪后,人们才渐渐明白抄表机所带来的方便,由于技术发展使抄表机的优势愈加凸显。所以抄表机在国内的使用越来越普遍,并在这期间获得了迅速的推广。现在人们使用抄表系统主要分两大类:一、远程抄表,即抄表员使用计算机控制并通过远程通讯装置来实现对用户的用电数据进行读取,不需工作人员到现场;二、现场抄表,即抄表员需要一个手持式抄表设备,亲自到用户家中或是其他一些用电现场读取用户电量数据信息。采用远程抄表可大量节省人力成本,可以对用户用电数据进行实时读取等优点,但是远程抄表必须具备有一个完善的系统架构,这将不可避免的带来高额的费用以实现基础设施的建设。而手持式现场抄表系统成本较低,再加上其他一些集抄技术,所以手持式抄表系统更加受到电力管理部门的青睐。可以预见的是,随着抄表技术的快速发展,手持式抄表机必将变的越来越智能化、便于携带,其通信功能愈加强大并使之能应用到越来越多的领域,一定会成为电力部门工作人员抄表的必备工具。1.4 本文的主要工作本课题在对手持抄表器的开发提出了整套方案包括硬件、固件和驱动程序基础上有所选择的对各个模块进行了阐述。对于其中一些模块,比如键盘、LCD显示、红外接受和发送,无线数传模块,读写卡模块等都采用了成熟的模块,在硬件和固件上都相对比较简单。解决的主要任务是:1 构建一个智能化的抄表器2,为各个模块选择了较为合适的硬件芯片,设计了USB接口,使之可以完成与主机之间的USB通讯。2 选择合适的无线数传模块和读写卡模块,使抄表器能实现简单的读写卡功能,并通过无线通讯功能实现对用户现场收费。3 编写智能抄表器的键盘及显示程序,并能现其它模块的功能比如红外、USB通讯、GPRS通讯等。第二章 手持抄表器的系统设计第二章 手持抄表器的系统设计2.1整体设计方案及系统构成本设计主要从硬件和软件两方面入手,其中硬件部分的设计首先要考虑处理器的内部功能单元,如内存是不是能满足要求,I/O接口、中断系统是不是合适,为了保证系统设计的要求,必要的时候要进行片外系统扩展,并设计相应的电路。同时考虑系统的I/O设备的配置,依照功能要求配置外围电路,如键盘、通讯装置、显示等。在软件方面,在设计时一定要考虑硬件功能特性,使系统各部分能协调运转。2.1.1 硬件选择遵从以下原则(1)根据系统功能选择合适的处理器,尽量朝片上系统方向设计硬件系统。应尽量减少器件的数量,系统器件越多,相互干扰也越强,损耗也越大,降低了系统的稳定性,而且成本较高。(2)选择典型电路,尽量使硬件系统标准化,模块化。(3)系统的扩展和I/O配置,应充分满足应用系统的功能要求,为二次开发留下适当的空间。(4)硬件结构和应用软件方案应一并考虑。硬件结构与软件方案会产生相互影响考虑的原则是:为了简化硬件结构,软件能实现的功能尽量由软件实现,但要注意,由软件实现的硬件功能,一般响应时间较长,且占用处理器时间。(5)处理器外围电路较多时,必须考虑其驱动能力。系统驱动能力不足时会导致系统工作不稳定。(6)元件的布局一定合理,考虑问题要全面,以增强系统的可靠性,尽量消除元器件之间的相互干扰。同时手持机的硬件设计还要考虑实用性,便携性,适应性等。2.1.2 软件需求分析智能手持抄表器软件系统的性能要求,主要有。(1)容量满足要求,需要系统存储和处理的数据主要有用户信息,用电量等这些数据需要长期的保存,且需要进行必要的备份数据,所以对数据库的容量有一定的要求,所以要选取合适的存储芯片,来满足相关需求。(2)时间要求,系统对实时特性具有一定的要求,因为每月的抄表时间要记录下来以不至于因为不同月份的抄表记录混乱。工人在记录了一组数据后需要证明其具体时间。这一方面可通过对时钟芯片进行编程实现。(3)系统应有良好可靠性,为了提高系统可靠性,减少系统故障,需最大限度的使用模块化、结构化设计。为了满足达到这一要求,选用的微处理芯片应自带有开发工具的,使用其模块化的例子程序,进行在线调试。(4)可维护性,系统应具有的可维护性,一旦系统出现故障,能够在较短的时间内恢复系统运行。本文通过模块化设计,完成系统的整体设计。红外通讯模块主要是完成对用户用电数据读取,所得数据在LCD显示模块上显示并存储到扩展存储模块上,且可通过USB接口把数据传输到PC机上。读写卡模块主要是读取缴费卡上的信息,并且通过GPRS模块的远程通讯功能对用户实现实时收费功能。各模块有机的结合在一起来完成系统功能。其总体框图如图2-1所示。 图2-1 系统硬件总体框图第三章 手持抄表器的硬件设计第三章 手持抄表器的硬件设计3.1手持抄表器的主要功能手持抄表器主要功能是通过红外数据通讯来对电度表进行抄表,并可以设置或修改电度表中的参数,所得用户的抄表数据可以通过USB接口传送到PC机处理。同时抄表器还有无线数传通讯和读写卡功能,可以为用户实时充费。使用USB接口,实现了快速、便捷的通信,并配合管理系统实现对电网用户的有效管理。抄表器的硬件包含有八大模块,分别为CPU模块、红外通讯模块、LCD显示模块、键盘模块、USB通讯模块、扩展储存器模块、读写卡模块、无线数传模块。本文下面作一一介绍。3.2 CPU模块介绍3.2.1芯片选择选择适当的处理器作为本设计手持机的核心芯片,可使得本次设计简单而应用全面,并且易于扩展。快速的信息处理速度、高性能的技术指标、低功耗这些都是选择处理器的重要依据,同时还要考虑设计本身的要求。根据以上要求在本设计中,用AT89C51芯片作为主控芯片。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Falsh Programable and Erasable Read Only Memory)的低功耗、高性能CMOS位微处理器。图3-1 AT89C51的管脚图处理器AT89C51的引脚主要分为四大类:主电源引脚、时钟引脚输入/输出引脚和控制引脚。其中主电源引脚包括VCC:供电电压。GND:接地。时钟引脚为XTAL1、XTAL2,为单片机提供时钟控制信号,也可接外部晶体振荡器。输入/输出引脚包括P0、P1、P2、P3四大接口,处理器AT89C51的控制引脚包括RST/VPD、ALE、/PSEN等,其主要功能4如下表3-1所示。 表3-1 引脚功能 P0(P0.0P0.7)P0口为一个8位漏极开路双向I/O 口P1(P1.0P1.7)Pl口是一个内部提供上拉电阻的8位双向I/O 口P2(P2.0P2.7)P2口为一个内部上拉电阻的8位双向I/O口 P3.0准双向I/O口 串行口输入端 P3.1准双向I/O口 串行口输出端 P3.2准双向I/O口 /INT0 外部中断0低电平有效 P3.3准双向I/O口 /INT1 外部中断1低电平有效 P3.4准双向I/O口 T0 记时器0外部输入 P3.5准双向I/O口 T1记时器 1外部输入 P3.6准双向I/O口 /WR 外部数据存储器写选通 低电平有效 P3.7准双向I/O口 /RD 外部数据存储器读选通 低电平有效 RST复位输入。当振荡器复位器件时,要保持引脚两个机器周期高电平时间 ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。 /PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP当/EA保持低电平时,则在此期间外部程序存储器。在FLASH编程期间,此引脚也用于施加 12V编程电源 (VPP)。由以上可知,单片机AT89C51的引脚数不是太多,但是有许多引脚都有第二功能,因此能实现的功能就非常多。此外AT89C51可以在低到零频率的条件下静态逻辑,并且设有稳态逻辑,在芯片处于掉电模式时,不止一种软件可选。在闲置模式下,CPU停止工作但其他内置如定时器、串口、计数器等仍在工作。在掉电模式下,使存储器里德内容得以保存并且冻结振荡器,禁止所用其它芯片功能,直到下一个硬件复位为止。3.2.2 电路设计AT89C51的电路设计如图3-2所示。图3-2 AT89C51电路图晶振使用11MHz作为AT89C51的晶振输入。复位电路使用通常的RC电路。3.3 红外通信电路的设计3.3.1 红外通讯原理红外数据通讯装置包括红外发射器和接收器两部分,其主要是以红外线作为载体来完成信号的收发。在发射端,经过适当调制后的数字信号发送到转换电路,然后由红外发射二极管发射出红外光脉冲,这部分功能主要由红外发射二极管完成;在接收端,红外接收器对接收到的信号进行光电变换,进行适当解调并恢复出原信号。红外通信载波信号的形式在空中传播,当有载波通过时,接收端输出数字信号0,反之,输出数字信号1。因此在发射电路中一般采用二进制串行码作为发送的功能指令码。其通讯时波形如图3-3所示。 图3-3 红外通讯波形图3.3.2 元器件选择红外发射电路采用发射二极管TSAL6200,它会将周期的电信号转变红外光信号;而红外接收装置采取红外接收器件HS0038B。3.3.3红外发射接收电路D0为红外发射管,T1为低噪小功率NPN三极管,R1为10欧姆,R2为50欧姆,为了加长发射管发射的距离可减小R2的阻值,而增大R1的电阻。红外发射电路如图3-4所示。红外接收装置对接收到的红外信号进行光电变换,解调后恢复出数据信号。首先接收器接收到红外信号时会产生一个低电平,然后这个低电平会传输到单片机上,单片机就会开始处理数据,其实现电路如图3-5所示。图3-4 红外发送电路图3-5 红外接收电路3.4 显示模块的硬件实现3.4.1 芯片选择本设计采用SMC1602A字符型LCM5,管脚如图3-6所示。图3-6 SMC1602A管脚图SMC1602A字符型LCM有16条引脚线,比其他同型号的多两条引脚,这两条引脚分别是VCC(15脚):背光电源线,GND(16脚):地线,与14个引脚的相比其控制功能完全一样,其引脚功能如表3-2所示。表3-2 SMC1602A管脚说明引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、双向数据总线 0位(最低位)8DB1底4位三态、双向数据总线 1位9DB2底4位三态、双向数据总线 2位10DB3底4位三态、双向数据总线 3位11DB4高4位三态、双向数据总线 4位12DB5高4位三态、双向数据总线 5位13DB6高4位三态、双向数据总线 6位14DB7高4位三态、双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光电源负极3.4.2 LCD显示电路SMC1602A的显示界面为16字2行,首行主要显示抄表时间以便确定抄表日期,第二行主要为用户表号和用电量。其电路图如3-7所示。 图3-7 LCD显示电路3.5 键盘模块的硬件实现键盘及它的接口设计是本设计系统的一个重要组成部分,它的性能是否优良直接影响着系统可靠性、负载状况、稳定性、用户操作是否便利等诸多方面。独立式、矩阵式和由专用键盘管理芯片构成的键盘是系统键盘及其接口的最常见的几种方法6。独立式按键键盘在当按键数量较多时浪费控制器I/O资源但是识别与编码简便,所以按键较少时非常合适;矩阵式按键键盘适合设计需要按键较多时使用,但软件扫描编码繁琐;用专用芯片构成编码键盘省去了软件上的设计规划且编码较少,能驱动较多按键。综合上述因素和设计要求选用键盘芯片。3.5.1芯片选择本抄表机系统设计所需的键盘芯片采用ZLG72907,此芯片是由国内广州一家专门研究单片机的公司自行设计的键盘扫描管理芯片。它可以扫描管理多达64只按键。其中功能键有8只,其中不同的按键组合啊按下可实现一些特殊功能。为了防止按键命令错误ZLG7290设置有键盘去抖动处理功能。当按下某一只按键超过一段时间后,此键值能够使不松手而连续有效,此为芯片的连击键功能。为了与处理器接口方便从而为键盘提供中断信号,此芯片采用了I2C总线方式。该芯片为工业级,能有效的阻挡外界干扰,已有大量应用,特别是在工业测控中。ZLG7290有24个引脚,采用SOP封装形式,其引脚排列如图3-8所示。 图3-8 ZLG7290管脚图DIG0DIG7是键盘列信号,SegASegH是键盘行信号,SCL是I2C总线时钟信号,SDA是I2C总线数据信号,INT是键盘中断信号,OSC1、OSC2是晶振信号,/RES为复位信号。3.5.2 键盘电路的设计本抄表机系统设计是通过ZLG7290芯片控制来实现的的键盘输入,键盘输入部分的电路如图3-9。为了使电源更加稳定,一般要把电解电容防在VCC到GND之间,电容值在47uF 和470uF之间。信号线SDA和SCL上要分别加上拉电阻以满足I2C总线协议的要求。外接简单的RC复位电路可以使复位信号是低电平有效,也可以通过直接拉低RST引脚的方法进行复位。K1K10这10个按键是数字按键09,后面4只为功能键,同时按下K14、K15键可使抄表机在抄表和收费功能之间切换。从以上分析可以看出,无论是典型的硬件电路,还是成熟的软件程序,在ZLG7290芯片都非常容易设计。图3-9 键盘电路3.6 USB模块的设计3.6.1 USB通讯简介USB使用一个四线电缆,其中两根为串行通道用来数据传输,另两根为下游(Downstream)设备提供电源,如图3-10所示。D+、D-是串行数据通信线,它支持两种数据传输率。VBUS是典型的+5V电源,GND是地线9。 图3-10 USB的电缆3.6.2 USB接口的实现硬件本设计采用Philips公司的USB接口芯片PDIUSBD12。PDIUSBD12作为一个USB器件,其性性价是比较高的,它除了能支持本地DMA传输,主要用于微控制器系统中实现与控制器进行通信的高速通用并行接口。应尽可能加入足够的状态指示电路以方便调试,接口电路应有防反插功能。因为USB工作频率较高,应考虑抗干扰问题。PDIUSBD12的管脚图如图3-11所示。 图3-11 PDIUSBD12的管脚图3.6.3 硬件电路图PDIUSBD12的电路连接图如图3-12所示。 图3-12 单片机与PDIUSBD12接线图3.7外部扩展存储器的设计3.7.1 芯片选择EEPROM选择HOLTEK公司的HT24LC16。HT24LC16是通过I2C协议控制其读写的。HT24LC16的管脚排列及描述12如图3-13及表3-4所示。图3-13 HT24LC16的管脚 表3-4 HT24LC16管脚说明符号管脚号功能描述A0A213地址输入VSS4地SDA5串行数据I/OSCL6串行时钟输入WP7写保护VCC8正电源 3.7.2 电路设计HT24LC16的电路设计如图3-14所示。图3-14 HT24LC16电路连接3.8 读写卡模块的设计现在人们使用的电表预付费卡为IC卡,且为接触式的,本文是基于芯片SLE4442的IC卡的读写模块设计。3.8.1 SLE4442卡简介SLE4442是一种逻辑加密存储卡,由德国西门子公司设计,它具有完全独立的可编程存储器和2KB的存储容量,这是一款性价比优良的IC卡,该卡的主要性能特点如下。(1)芯片才有NMOS工艺技术,每字节的擦除、写入编程时间为2.5ms;(2)2线连接协议, 串行口满足ISO7816传输协议;(3)至少10万次擦写;至少10万年的数据保存期。SLE4442 芯片的管脚排列及描述如下图3-15及表3-5所示。图 3-15 SLE4442 芯片管脚图表3-5 SLE4442管脚说明3.8.2 SLE4442卡的接口电路此卡属于接触式的,其读卡卡座选用的是推拉型的。该卡座有10个接触点,其电路示意图如下图3-16表示:图 3-16 SLE4442卡接口电路示意图卡座中的CLK、I/O、K1、VCC等信号线都与SLE4442芯片的对应管脚相连,这些信号线都与单片机的P1口连接。由于所选单片机的P1口动能力不足以启动SLE4442,故而在信号线上加1K的上拉电阻,以提高驱动能力。卡座的供电与单片机系统应分开从而防止IC卡座被插入金属物而造成短路,且让系统能检测到这种短路。电路的工作原理可以这样表述:通过K1、K2来判断IC卡是否插入;当有卡插入时,K1、K2短路给P1口送入低电平,以此判断有卡插入,否则为无卡插入或插入方式不正确。3.9 GPRS通讯模块的设计GPRS是通用无线分组业务的缩写(General Packet Radio Service)是一种俗称为2.5G的移动通信技术,介于移动通信在第二代和第三代技术之间的一种过渡形式,它具有“永远在线”和“高速”的优势。GPRS允许用户固定的模式下接收和发送数据,消除了电路交换模式的网络资源的需求,提供了低成本同时高效的无线分组数据业务。目前,较成熟的GPRS 模块主要有Sony的GR47/48模块,WAVCOM公司的M1206B模块,西门子公司的MC35系列模块等。每种模块的应用系统都已非常成熟。本设计采用静远电子技有限公司设计的超小型GPRS模块JYC331D3 DTU。JYC331D3 DTU20 采用小型化设计,外形尺寸和西门子模块大小一样,内嵌PPP、IP、TCP、UDP等通信协议。采用512V供电电源,RS232串口/TTL电平,内置SIM卡座,用户几乎不用开发,只要通过供电就可实现GPRS联网。JYC331D3 DTU在温度范围,抗干扰方面都采用特殊设计,保证了芯片的工作稳定性,广泛应用于抄表行业、工业监管、交通管理等行业的应用。基本优势如下。(1)供电优势:此芯片供电范围较宽,能与5V系统和12V系统无缝对接,无需电源稳压电路设计;(2)自带SIM卡:在使用国外一些GPRS模块时,一般都需设计sim卡电路,而此模块自带sim卡,可直接使用。同时考虑一些产品设计需sim卡外置,也留有sim卡外置接口;(3)标配宏电DTU通信协议,降低了产品的综合成本,提高了竞争力;(4)技术开放优势:详细讲解看门狗,二次看门狗的实现原理;(5)提供SDK开发编程接口:会C语言就能开发,且提供众多的示例程序供参考,开发便捷高效;(6)超小设计,极大方便集成,和mc39i大小一样,并可根据用户定制大小;其管脚如图3-17所示。 图 3-17 JYC331D3管脚图TX232、RX232是RS232电平,可以跟PC的串口直接通信。TTLTXD、TTLRXD是TTL电平,电平电压范围是2.7V5V。SYNC是网络模块指示灯信号,可直接驱动LED,不需要使用三极管放大电路。RUN是模块运行指示灯信号。P0.6可用来采集电压信号。是CPU的一个IO口。RDE在扩充RS485芯片的时候需要使用。VDD4.2是模块提供的4.2V电压。VCC是512V的输入电压,GND是电压接地。CCIO、CGND、CVCC、CRST、CCLK是SIM卡的接口电路。不过使用板载的SIM卡座,这些管脚悬空。由于系统选用的GPRS模块是一个比较成熟的产品,使用时只需将其作为一个采用RS232接口的通信器件使用即可。第四章 手持抄表器的软件设计第四章 手持抄表器的软件设计系统的软件采用了模块化设计(Block based design)方法,对系统按功能模块化,在模块化的过程中,应尽最大可能的保持模块在功能、结构方面的独立性及完整性;同时模块间要便于联接与分离;并保证各个模块的通用性和可移植性;还要考虑模块间的相互影响,抗干扰的问题,模块的性能不能影响系统的主要功能。4.1 红外通信软件设计4.1.1红外通信协议整个红外协议栈比较庞大而复杂,在嵌入式系统中,由于微处理器速度和内存的限制,不可能实现整个的红外协议栈。实际在红外通信中一般不会有太大数据量的传输,尤其在嵌入式系统中,可以考虑将一个单一的数据包进行传输。因此可以将协议栈简化,根据自身设计的需求,选择性地实现自己需要的协议和功能。4.1.2 红外通信软件设计在本设计中,当传输的数据为1时方波信号的脉宽为3ms,传送的数据为0时脉宽为1ms,连续传送8个数据表示完成了一个字节的数据传输。为了正确的传输数据,传送完一个字节的数据后,然后发送其反码。在发送和接收每个字节的同步数据传输之前设定了同步头,最开始同步头脉冲持续时间为5ms,其他的同步头脉宽都是3ms。波形图和红外发送子程序流程如图4-1及4-2所示。 图4-1 红外发送波形图 图4-2 红外发送子程序 图4-3 红外接收中断子程序流程图红外接收器输出的方波信号,在这段时间内比较单片机的计数,判断此脉宽代表同步头脉冲宽度、“1”、还是“0”。如果是最开始的同步头,准备接收数据,接收完的数据为一个字节后,应该接收到一个中间同步头,然后接收之前接收数据的反码,然后比较这两次分别接收到得8个数据,如果不是反正码关系,表示接收错误数据;若是反正码关系,则接收下一个字节的数据,直到接收完所有数据。这样接收到的数据较为准确。子程序流程图如图4-3所示。4.2 显示模块抄表器显示界面的好坏对抄表人员读取和输入数据有很大的影响,同时创建一个人性化的界面有利于抄表人员的工作,提供工作效率。本设计的显示界面在处于抄表工作时主要显示用户的表号和用电量,还有抄表时间。切换到充费功能时,显示预付费卡的基本信息如卡号,充费金额等。编写显示模块程序,根据总体设计思想分为三个层次:芯片层、应用层、接口层。显示流程如图4-4所示: 图4-4 LCD显示流程图4.3 键盘模块本设计抄表机的键盘分两部分共17只按键,其中K0键直接控制单片机的复位电路,为系统的复位键。剩余的16只按键都是由键盘芯片ZLG7290控制,下面主要介绍这一部分的软件设计。在ZLG7290芯片所控制的16只按键K1K16中,前10只按键为数字键09,K11到K14为方向键可操作光标,K15为“确定”键,K16为“删除”。后4只都是功能键,其中K14、K15同时按下可实现抄表机在抄表和充费功能之间切换。如果某个普通键被按下可以从键值寄存器中读取相应的键值,则键盘芯片系统寄存器判断是否有数据输入到抄表机。如果按下功能键,芯片ZLG7290的/INT会脚产生了中断请求,键值寄存器Key的值在被读走后自动变成0。其实现按键程序流程框图如图4-5所示。 图4-5 按键程序流程图4.4 USB程序模块人机接口设备(HID)类是Windows完全支持的USB总线设备类型中的一种。在运行Windows98或更高版本操作系统的PC机上,应用程序可以与HID进行通信。对于主机的驱动和HID通信,设备必须使用相应的固件按程序来满足一定的要求,通过固件程序的调度,主机才可以得到设备的描述符以及完成端点数据的传输。4.4.1 USB传输协议USB的传输流程如下图4-6所示。现在结合这一传输流程对USB的传输协议进行说明14:图4-6 USB传输流程(1)设备请求。在USB协议中,主机对USB设备的各种配置操作是通过设备请求来实现的。USB中定义了11种标准的USB设备请求,当USB功能设备连到USB主机上的时候,USB主机首先通过标准的USB设备请求和USB设备进行通信。USB主机读取描述符,从而获得该USB功能设备的产品信用和功能配置。(2)主机发送设备的令牌包。令牌包用来指明数据传输方向和帧的开始等。主要包括:1)OUT包,此时数据从USB主机发送到USB设备;2)IN包,此时数据从USB设备发送到USB主机;3)SOF包,此时数据作为一个帧或者小帧开始信息;4)SETUP包,此时作为主机向USB设备发送的配置信息。在本计当中,由于令牌包是为了满足主机软件初始化的请求,所以数据传输类型择控制传输的方式。(3)数据包传输。数据包中包含了本次传输的数据。其数据大小取决于端点和传输类型,最大的数据量为1024字节。由于本次传输的数据具有非周期的,大包的突发通信等特点,所以在传输类型方向选择块传输的方式。(4)达成握手。数据的接收方向发送方报告此次数据传输是否成功,握手阶段同步字段、握手包和EOP构成。4.4.2 USB的软件设计在设计开发一个USB外设的时候,开发者主要需要编写三部分的程序:固件程序;USB驱动程序;客户应用程序。本文主要阐述固件程序的编写。下面是固件程序的主循环部分:#include#define D12_COMMAND(*(unsigned char xdata *)0xff01)#define D12_DATA (*(unsigned char xdata *)0x7f02)extern void D12_int();sbit D12_suspend=P10;sbit D12_int_n=P11;sbit D12_eot_n=P12;sbit D12_DMAck_n=P13;sbit D12_DMAreq=P14;void main(void)unsigned char ist;P1=0xff;D12_COMMAND=0xf3;D12_DATA=0x06;/设置模式0D12_DATA=0x03;/初始化频率12MHzD12_COMMAND=0xd0;D12_DATA=0x80;/设置地址0使能D12_COMMAND=0xf3;/连接主机D12_DATA=0x16;while(1) if(!D12_int_n)D12_int();涉及具体的芯片PDIUSBD12,负责实现具体芯片要求的操作方式。所有数据读写操作应该通过硬件接口层来实现。对于PDIUSBD12,要实现所有PDIUSBD12的命令操作。如读写中断寄存器使用函数:int D12ReadInterruptRegisister( )。d12ic.c实现PDIUSBD12的命令操作,其中包括以下函数:void D12_SetAddressEnable(unsigned char bAddress,unsigned char bEnable)void D12_SetEndpointEnable(unsigned char bEnable)void D12_SetMode(unsigned char bConfig,unsigned char bClkDiv)unsigned short D12_ ReadInterruptRegisister(void)unsigned short D12_SelectEndpoint(unsigned char bEndp)/读出最后一次传输的状态,并清除这个状态:unsigned char D12_ReadLastTransaction Status(unsigned char bEndp)unsigned char D12_ReadEndpoint Status(unsigned char bEndp)/设置端点状态,用于STALL一个端点:void D12_SetEndpoint Status(unsigned char bEndp, unsigned char bStalled) void D12_SendResume(void) /resumes the device form suspend mode.unsigned short D12_ ReadCurrentFrameNumber(void)unsigned char D12_ReadEndpoint(unsigned char endp,unsigned char*buf)void D12_AcknowledgeEndpoint(unsigned char endp)infra.c实现红外模块的操作。其中包括以下函数:void INFRA_Receive(unsigned char receivedata)void INFRA_Send(unsigned char senddata)以下是整个USB客户驱动程序的流程:1)驱动程序安装:USB HUB驱动程序检测一个新的USB设备何时插入。PnP管理器使用厂商ID或设备类信息选择要运行的驱动程序并安装。2)驱动程序初始化: 驱动程序有一个初始化入口,一个必须称为DriverEntry的例程。当驱动程序被装入时,内核调用它。3)等待客户程序调用,准备接受IRP:大多数的常规IRP,客户USB驱动程序无需处理,只需传递给下层驱动程序处理。USB类驱动程序主要通过USB驱动程序接口(USBDI)的内部IOCTL使用。客户驱动程序为内部IOCTL创建一个新的IRP,填写该IRP,并沿设备栈向下把这个IRP发送到USB系统驱动程序,然后等待,直到该IRP被处理。4)读、写IRP的处理:在客户驱动程序中,重点部分是对读写IRP的处理。以读为例,对于大块数据的读,客户驱动程序将其分割成若干个长度较小的部分,为每个部分创建一个IRP,依次发送给设备栈中的下一个驱动程序,等待全部完成

温馨提示

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

评论

0/150

提交评论