资源描述
南 昌 工 程 学 院毕毕 业业 设设 计计 (论论 文文)信息工程学院 系(院) 电子信息工程 专业毕业设计(论文)题目 基于单片机的智能 IC 卡电表设计(硬件系统)学生姓名 某某某 班 级 09 电子信息工程 学 号 2009100234 指导教师 欧阳瑾完成日期 2013 年 5 月 20 日基于单片机的智能基于单片机的智能 ICIC 卡电表设计卡电表设计( (硬件系统硬件系统) )The Design of Intelligent IC Card Meter Based on Single Chip Microcomputer(Hardware System)总计 毕业设计(论文) 32 页 表 格 2 个插 图 22 幅南昌工程学院本科毕业设计(论文)I摘 要电表是我国电工仪表行业中产量最大的产品,随着高新技术尤其是电子信息技术的快速发展,电子式、多功能、高精度、多费率、自动抄表等产品的优势突显,且已经逐步成为电表发展的主流。智能电表具有数据的保护,报警功能,断电的显示,负荷的控制,防窃电功能,远程抄表系统等功能,从计量到数据处理都采用以集成电路为核心的电子器件,从而取消了电表上长期使用的机械部件,随着智能化电表的发展,将最终取代传统电表在用户中的使用。本文主要应用 IC 卡单元,89C51 单片机,LED 显示器等各个单元来完成费率的计算,数据的显示,报警,使电表实现智能化。并根据阶梯电价计算出卡内电费剩余等情况,自动报警功能用蜂鸣器进行模拟,并通过四个键盘实现显示的切换以及电价的调整功能,IC 卡采用西门子公司的 SLE4442 卡,可实现逻辑加密,可反复读写,卡内数据保密性好。关键词:关键词:智能化电表 89C51 单片机 电能计量南昌工程学院本科毕业设计(论文)AbstractMeter is one of the largest product output in electrical instrumentation industry in China, with the rapid development of high and new technology especially electronic information technology, electronic, multi-function, high accuracy and rate, the advantage of automatic meter reading and other products, and has gradually become the mainstream of instrument development.smart meter data protection, alarm functions, and the display of power, load control, preventing electricity-stolen, remote meter reading system, and other functions, ranging from measurement to data processing adopts integrated circuit as the core of electronic devices, and cancelled the meters on the long-term use of mechanical parts, with the development of the intelligent electric meter, will eventually replace the traditional electric meter used in the user. This paper application of IC card unit, 89 c51, LED displays, and other units to complete the rate calculation, data display, alarm, intelligent electric meter to realize. And according to the ladder electricity price to calculate the surplus electricity, and so on and so forth, inside of the card, to simulate the automatic alarm function with a buzzer and implementation by four keyboard display switch and electricity price adjustment function, using Siemens SLE4442 card IC card, which can realize the logical encryption, can be repeatedly read and write, Kane data confidentiality. Keywords: Intelligent electric meter;89C51;Electricity measurement.南昌工程学院本科毕业设计(论文)目 录摘 要.IABSTRACT.II第一章 引 言.11.1 智能电表应用的意义.11.2 智能电表的发展.1第二章 总体方案设计.32.1 方案比较.32.2 方案选择.6第三章 器件介绍和单元模块设计.73.1 器件介绍.73.1.1 AT89C51 单片机.73.1.2 ADE7758.73.1.3 DS12887.93.1.4 LCD1602.103.1.5 SLE4442.123.2 单元模块设计.123.2.1 电源模块电路.123.2.2 信号采集电路.143.2.3 计量模块.153.2.4 时钟及 LCD 显示模块.163.2.5 接触式 IC 卡模块.18第四章 软件设计.20南昌工程学院本科毕业设计(论文)4.1 主要软件设计流程框图及说明.204.2 主要芯片读写程序设计及设计工具.21第五章 仿真调试.26结语.28参考文献.29致谢.31附录 电路图.32南昌工程学院本科毕业设计(论文)第一章 引 言电表是我国电工仪表行业中产量最大的产品。近几年,国家连续出台的多项与电表行业发展相关的政策以及房地产产业的迅速发展,为电表需求的上升及保持行业发展的相对稳定起到了一定的保障作用。 随着高新技术尤其是电子信息技术的快速发展,电子式、多功能、高精度、多费率、自动抄表等产品的优势突显,且已经逐步成为电能表发展的主流,在未来几年里,这种趋势将更加明显。城乡电网改造,使电工仪器仪表行业步入了快速发展的轨道,同时也为行业企业提供了一个科技创新的平台,电工仪器仪表生产企业抓住机遇,通过对国外先进技术的兼收并蓄,并高标准、高起点自主开发了一系列高技术产品。因此研究本课题具有重要的实用意义。1.11.1 智能电表应用的意义智能电表应用的意义目前,我国已经开始大面积推广并使用智能电表,以实现对电价分时,阶梯的统计,随着我国经济的发展,用电量激增,对于电能的管理显得尤为的重要。在现代生产生活中,电能已经发展成为一种重要的能源资源,我国电力事业在改革开放的 30 年中,发展极为迅猛,所以相应的电能计量仪表制造业的进步也必须与之相适应,这对于电力事业进行统筹规划和发展,促进我国电力事业稳定,健康的发展有着极其重要的意义。新型智能电表不仅具有传统电表的功能,还能对用户的用电情况进行管理和控制,并且相比于传统电表的机械式结构,没有机械摩擦,大大的提高了准确度和灵敏度,且易于实现自动化测量,并且可以实现远程通讯和控制,具有较高的性能价格比,适合我国国情,有广泛的引用价值。智能电表利用微机技术,通讯技术等等,减少了能量的消耗,把采集,处理集中于一体,节省成本和人力资源,提高了工作效率,适应了现代用户的需求。1.21.2 智能电表的发展智能电表的发展智能电表是在电子式电表的基础上发展而来,欧美发达国家于 20 世纪 70 年代研发并开始使用,经过 30 多年的不断发展,欧美国家不断对智能电表技术进行革新,功能日趋完善。智能化电表,大体上可分为两种类型:带有微处理器的机电式和全电子式。机电式借用原感应式电表的机芯,通过光电传感器读取转盘转数来测量用户的用电量,如磁卡式电表、电卡式电表、IC 卡电表等;而全电子式电表则采用电压电流隔离方式,进第一章 引言行 AD 转换,将采样值相乘并累计计算用户的用电量。机电式智能电表成本较低,主要用于单相电表,适合于居民用户使用。全电子式电表主要用于三相电计费,针对企业应用。为了实现远程自动抄表,应选择配有通信接口的智能电表,通常有 RS485、RS232、CAN 总线收发器或红外等几种接口形式。目前,我国的智能电表也可大致分为机电一体式和全电子式两种,机电一体式即在原有机械结构的基础之上附加一定的电子元件,从而达到所需的功能要求,安装简洁,多用在老实机械表的改装,成本低。全电子式则是采用集成电路为核心,取消了老式电表的机械结构,减少了机械摩擦,使得计价更加准确,可靠性高,耗电少,体积小。在收费系统方面,目前国内上使用最为广泛的为 IC 卡电表收费,成本低,可靠性好,且使用寿命长,一张 IC 卡基本可使用 10 年以上,且可实现,预收费,自动断电,加密等多种功能,但是 IC 卡收费系统也存在很大的缺陷,用户终端仍然与整个网络脱节从经济角度来看电力部门先收费后送电不符合经济政策,可以说在一定程序上侵犯了用户的利益。随着我国提出发展智能坚强电网的提出,为我国电网设施的发展提供了机遇,未来,智能仪器仪表将向着数字化,智能化,网络化,微型化的趋势发展,并进一步与微处理器,PC 技术融合,使仪器仪表技术的数字化,智能化水平不断提高。南昌工程学院本科毕业设计(论文)第二章 总体方案设计本电表采用分时计费原则,将电压,电流等参数进行采集,并输入微处理器,进行运算,并最终实现对于电能的准确计量和控制。因此我们可以采用单片机设计一个智能IC 卡电表,采用低功耗设计,正常工作时关闭显示功能,当有 IC 卡插入时轮流显示当前的用户信息。系统主要功能包括:(1)预付费功能:通过 IC 卡实现先付费后用电。(2)电量报警功能:当电能表剩余电量低于告警电量时,通过报警指示灯和蜂鸣器告警。(3)电能计量功能:配合感应电表及计量芯片实现对电能的计量。(4)保密功能:通过 IC 卡加密,实现 IC 卡与电能表的唯一对应,可以严格有效地防止伪造和复制 IC 卡的行为,在一定程度上便于电力部门的管理与监督。(5)自动复位功能:当电能表受到干扰程序跑飞时,通过看门狗电路实现系统自动复位。(6)数据自动存储与显示功能:用户数据自动保存在 EEPROM 中。通过 LCD 显示当前用户数据。2.12.1 方案比较方案比较智能电表的设计,是基于对用户电压电流信号进行采集,并通过微处理器进行核心运算,当电压电流信号通过采集以后,通过高精度的 A/D 采样保持,最终输入微处理器,另一方面,通过 IC 卡座实现对 IC 卡内部金额的读取,输入单片机,并且要求通过功率和电费的计算,进行显示与报警。对于电力参数的测试,例如电压,电流,有功功率,无功功率,视在功率等,现在都有成熟的测量计算方法,对于电压有效值的测量,可以利用积分电路来实现,也可以利用时间采样信号,将信号值平方,去均值以后,得到平方根,通过 A/D,进行采样,有功功率定义为: UICOSP (2.1)第二章 总体方案设计其中和为电压和电流的有效值,为功率因数。而对于非正弦波形的计算,UICOS只有通过积分运算来完成。方案一:信号采集信号滤波A/D 转换微处理器LCD 显示报警键盘控制IC 卡图 2.1 方案一 在本设计方案中,核心器件为微处理器,这里我们选用是 AT89C51 单片机,当信号采样后通过 A/D 转换,送入微处理器,进行数据的分析和计算,智能电表的实现必须对用户的功率进行准确的计算,在信号采集模块中,通过电压互感器和电流互感器,对用户的电压和电流信号进行采集,微处理器进行功率和电费的计算,可通过 LCD 显示,并可以通过键盘对分时电价进行调整,实现显示的转换和调整,并运用单片机内部时钟设计计时系统,以实现分时的控制。但是此设计有诸多缺陷,首先,在信号采集方面,由于智能电表对于功率的计算,如果单纯的使用单片机,会造成功率计算不准确,如果要提高计算的精度,对于信号的 A/D 转换就必须采用高精度期间,成本费用增加,其次即便使用了高精度的 A/D,在功率计算,补偿方面的程序也想当麻烦,再则,由于使用分时计费系统,只用单片机内部时钟信号进行粗略的计时,产生的时间误差比较大,长时间的使用下会导致计时不准确,而使得电费的计算出现比较大的误差。南昌工程学院本科毕业设计(论文)软件系统方面,其核心则是编写功率计算程序和 A/D 采样程序,并通过键盘扫描的实现显示的切换。方案二:信号采集ADE7758处理器键盘输入信号滤波LCD 显示报警警时钟芯片 IC 卡图 2.2 方案二本方案的设计思路与方案一大致相同,选用 AT89C51 单片机作为微处理器,通过电压传感器,电流传感器实现对用户的电压和电流信息的采集,并在单片机中进行电价的计算,与方案一的不同之处在于,方案二中功率计算部分和 A/D 转换采集部分被一块电能计量芯片 ADE7758 进行代替,该芯片是以一款高准确度的三相电能采集芯片,适用于计量各种三相,单项配置条件下的有功,无功,视在电能。可省去高精度 A/D 的费用的同时,也可以减少单片机内部处理功率的步骤,转而由 ADE7758 完成。同时,由于该智能电表采用分时计费系统,方案二中特别采用一块时钟芯片以提高对于时间的计时准确程度,以确保该电表可以准确计费,同时,由于时钟芯片本身集成有微型电池,可以在断电的情况下继续运行,保证了在智能电表断电的同时,计时系统不至于停止工作。在方案二中,由 ADE7758 进行功率的计算并进行校准,在该芯片中,通过每相有功增益寄存器写入数据,可对输出产生的平均功率经行改变,该芯片中在每个相位集成了一个有功偏移寄存器,该寄存器为 12 位寄存器,用以对有功功率经行校准,由于实际电第二章 总体方案设计路的工作环境的复杂和多变,以及芯片本身制造工艺和各通道之间经行的干扰,都会造成误差的产生,有功功率寄存器的一个 LSB 相当于有功功率乘法器输出的 LSB 的 1/16。在满刻度输出时,如果乘法器的输出为 XCCCCS(838861d) ,LPF2 输出端的 1 个 LSB 相当于在电流通道满刻度60dB 计量误差的 0.0075。在满刻度时,60dB(输入信号级别为满刻度信号输入的 1/1000) ,LPF2 的平均数值为 838.861 (838,861/1,000)。LSB1/838.861/16100% = 测量值的 0.0075% 。有功功率偏移寄存器修正分辨率为0.0075% ( 60 dB) 。另外 ADE7758 的各相有拥有一个空载阀值,如果有功公功率的测量值低于满刻度的0.005%,则该值不会被累加,有效的避免了电表的浅动。ADE7758 通过 41 个电能寄存器连续累加有功功率以实现对信号的积分作用,这种离散的累加作用就相当于连续时间的积分作用,平均有功功率的计算时,是有符号运算的,负电能将会在有功功率寄存器中被扣除。当有功功率为正,且达到最大值时,有功功率的数值将反转到达满刻度的负值0X800,并继续增加,当有功功率为负值,且持续减小到达最小时,会自动转为正的对大刻度 0X7FFF,并继续降低。在软件系统上,该方案与方案一的区别在于,重点在对于 ADE7738 和 DS12887 两块芯片的读写程序的书写,虽然在硬件的搭建上降低了难度,但是在程序书写上难度有所增加。 2.22.2 方案选择方案选择通过对以上两种方案的具体描述和对比,对他们各自的优缺点有了一定的了解。要完成对于电费的准确计算,并综合本次毕业设计成本及可行性进行考虑,最终选择了方案二为本次毕业设计的最终设计方案。南昌工程学院本科毕业设计(论文)第三章 器件介绍和单元模块设计只有各个系统单元模块的有机结合,才可以构成一个完整的系统。下面将介绍本次设计中使用的一些特殊器件和具体的各功能模块电路组成。3.13.1 器件介绍器件介绍3.1.1 AT89C51 单片机本设计采用低功耗,高性能的 AT89C51 单片机, AT89 系列单片机(简称 89 系列单片机)是 ATMEL 公司的 8 位 Flash 单片机。这个系列单片机最吸引人的特点就是在片内含有 Flash 存储器, AT89C51 的单片机是一种低功耗,高性能的含有 4K 字节快擦写可编程擦除只读存储器(EEPORM)的 8 位 CMOS 单片机,时钟频率高达 24MHZ,与8086 的指令系统和引脚完全兼容。芯片上的 EEPROM 允许在线(5V)电才擦除,点写入或采用通用的非易失存储器对程序存储器重复编程。此外, AT89C51 还支持由软件选择的二种掉电工作方式。非常适用于电池供电或其他要求低功耗的场合。由于芯片内的 4程序存储器可在线或用编程器重复编程,因此它有着十分广泛的用途,特别是在便携式和需要特殊信息保存的仪器和系统中显得更为有用。图 3.1 AT89C51 和 AT89C2051 管脚图3.1.2 ADE7758ADE7758 是一款高精度的电能计量芯片,具有高准确度,适用于三相/三线,三相/四线和其他各种三相系统,该芯片通过 SPI 数据串行接口和单片机进行连接,模拟电源端第三章 器件介绍和单元模块设计(AVDD)=数字电源(DVDD)=5V5%,模拟地端(AGND)=数字地(DGND) = 0 V, 使用片内基准源,CLKIN =10 MHz XTAL,温度范围为40C 至+85C3。ADE7758 的管脚图如下图所示:图 3.2 ADE7758 管脚图ADE7758 通过 SPI 串口读写时序图:图 3.3 ADE7758 写时序南昌工程学院本科毕业设计(论文)图 3.4 ADE7758 读时序3.1.3 DS12887DS12887 为一款时钟芯片,该器件可以提供 RTC/日历,闹钟,三个可屏蔽中断和一个可编程方波以及一个 114 字节的 RAM,此 RAM 有电池备份,不会导致断电后时钟停止的现象,该器件把石英晶体和电池集成在了一起,少于 31 天的月份月末日期可自动调整,其中包括闰年补偿,该芯片还有一个精密的温度补偿电路用来监视 VCC 的状态,如果检测到主电源故障可自动转换到备用供电,该芯片接口支持 Intel 和 Motorola 两种模式,在本次设计中,采用的是 Intel 模式,具体读写时序图如下:图 3.5 DS12887 写时序第三章 器件介绍和单元模块设计图 3.6 DS12887 读时序3.1.4 LCD1602LCD1602 是一款工业字符型液晶显示屏,能够同时显示 32 个字符,内部带有 80*8位的内部 RAM 缓冲区,可显示阿拉伯数字,引文字母大小写,常用符号和日文的片假名等,每一个字符都有一个固定的代码,在本次设计中,可以通过 LCD 显示万年历,分时电价,剩余金额等数据信息,可以通过键盘来切换显示。部分主要指令说明如下:表 3.1 LCD1602 指令码指令码功能00111000设置 16*2 显示,5*7 点阵,8 位数据接口00001DCBD=1 开显示;D=0 关显示C=1 显示光标;C=0 不显示光标B=1 光标闪烁;B=0 光标不闪烁南昌工程学院本科毕业设计(论文)000000NSN=1 当读或写一个字符后地址加一,光标加一N=0 当读或写一个字符后地址减一,光标减一S=1 当写一个字符,整屏显示左移(N=1)或右移(N=0) ,以得到屏幕移动光标不移动的效果S=0 当写一个字符,整屏显示不移动80H+地址码设置地址数据指针01H显示清屏:所有指针清零,所有显示清零02H显示回车:数据指针清零LCD1602 读写数据时序如下图所示:图 3.7 1602 读数据时序第三章 器件介绍和单元模块设计图 3.8 1602 写数据时序3.1.5 SLE4442SLE4442 是德国西门子公司的接触式加密型 IC 卡,接口电路简单,编程方便,保密性好,其内部用于一个 256*8 位的 EEPROM 主存储器,另其还含有一个带有 PROM 功能的保护存储器,可进行加密处理,工作温度范围在 070,至少可擦写 10 万次以上,数据保存期最少为 10 年,工作电压为 5V。对 IC 卡操作的命令分为控制,地址,数据三个部分,传送从控制字节 LSB 开始,其具体命令如下面所示:表 3.2 IC 卡命令格式及功能字节 1字节 2字节 3控制地址数据操作00110000输入地址无效读主存储器00111000输入地址输入数据升级主存储器00110100无效无效读保护存储器00111100输入地址输入数据写保护存储器00110001无效无效读加密存储器00111001输入地址输入数据升级加密存储器00110011输入地址输入数据比较数据校验3.23.2 单元模块设计单元模块设计3.2.1 电源模块电路电源模块电路从电网 220V 电压作为输入,通过该电路后,输出端输出大小为 5V 的电压,作为单片机及其他芯片的 VCC 电源,具体的电路图如下图所示:南昌工程学院本科毕业设计(论文)T3TRANS 11234D1B RIDGE1C 10100ufC 110.01ufVin1GND2Vout3U278L05C 120.01ufR 61kVCC12J3C ON2图 3.9 电源接线图如图 3.9 所示为电压模块的电路图,该模块以电网 220 交流电作为输入,通过整流桥整流后,再经过滤波,最后通过一块 78L05 稳压芯片进行稳压,得到一个稳定的 5V 电源,78L05 的输出电流可达到 100mA,无需外接元件,内部本身带有热过载保护,自带内部短路电流限制。该模块的仿真电路如下图所示:TR1TRAN-2P2SC32200uFC40.01uFVI1VO3GND2U27805C50.01uFRV11kVolts+5.00D11N4007D21N4007D31N4007D41N4007图 3.10 电源仿真图图 3.10 为该电源电路的仿真效果图,可以看到,该模块可以很好的工作得到一个稳定的 5V 的电源。第三章 器件介绍和单元模块设计3.2.2 信号采集电路本次设计为智能电表,所以要对用户的电压和电流都进行采样,再通过 ADE7758 芯片来得到一个较为准确的功率值并输入单片机中,因此电流和电压的采集电路分别如下图所示:图 3.11 采集电路图 3.11 为电流和电压的采集电路,在电流采集电路中,通过将电流互感器 TA32BM串联到用户电路中,以采集用户的电流信息,TA32BM 额定输入输出为 5A/2.5mA,通过电流互感器将大电流转换到 ADE7758 可以接受的小电流范围内,然后通过滤波降低信号的干扰,最终输入芯片,在电压采集电路中,通过将电压互感器 TV31B-02 并联到用户的负载上,采集用户的电压信息,TV31B-02 是一款电流型电压互感器,额定电流是2mA/2mA,所以要在电压互感器的缘边串联一个 51K 的电阻来降低互感器原边的电流值到可承受的范围,最后通过 RC 电路滤波后,得到一个近似 0.5V 的电压以输入到 ADE7758南昌工程学院本科毕业设计(论文)芯片,和前面的电流值一起,计算出用户的功率。电压互感器相当于一个内阻很小的电压源,正常运行时它的负载阻抗会很大,相当于开路状态,二次侧只有很小的电流,当二次侧短路时,负载阻抗为零,将产生很大的短路电流,会将电压互感器烧坏。因此,电压互感器二次侧严禁短路。电流互感器在正常运行时,二次电流产生的磁通势对一次电流产生的磁通势起去磁作用,励磁电流很小,铁芯中的总磁通就很小,二次绕组的感应电动势不会超过几十伏。如果二次侧开路,二次电流的去磁作用消失,其一次电流完全变为励磁电流,会引起铁芯内磁通剧增,铁芯处于高度饱和状态,加之二次绕组的匝数很多,就会在二次绕组两端产生很高甚至可达数千伏的电压,不但可能损坏二次绕组的绝缘,再者,由于磁感应强度剧增,使铁芯损耗增大,严重发热,甚至可能烧坏绝缘。3.2.3 计量模块计量模块的核心是通过一块 ADE7758 芯片来完成,通过信号采集电路,将变换后的电压电流信号输入到该芯片,ADE7758 是一款高准确度的三相电能计量芯片,带有两路脉冲输出功能和一个串行接口。ADE7758 集成了二阶模数转换器, 数字积分器,基准电路,温度传感器,以及所有进行有功,无功和视在电能计量以及有效值计量所需的信号处理元件。第三章 器件介绍和单元模块设计A PC F1D GN D2D VD D3A VD D4IA P5IA N6IB P7IB N8IC P9IC N10A GN D11R EF12D OU T13S C L K14D IN15C S16C LK O UT17C LK IN18IR Q19V AR C F20V AP21V B P22V C P23V N24U 5A DE 77 58IA PIA NR 11KC 333 nfV APV ANC IC OY 210 H zC 422 pfC 522 pfC OC IC 6C APS XS D 0S C KS D IV C C图 3.12 ADE7758 接线图图 3.12 为芯片 ADE7758 的具体接线图,ADE7758 作为一款适用范围极广且功能强大的电能计量芯片在本次设计中担任了重要的角色,通过 DOUT 管脚直接与单片机连接,通过 SPI 总线方式,与单片机实现数据之间相互通信,从而实现功率的计算,其中 DOUT管脚与单片机的 P1.4 连接,SCLK 与单片机的 P1.3 连接,DIN 与单片机的 P1.7 连接,CS 片选信号与单片机的 P1.2 连接。3.2.4 时钟及 LCD 显示模块本次设计中,该电表要实现分时计费,既必须引入时钟系统,该时钟系统必须准确,且在电表短时间断电之内,不会停止工作,因此,该模块采用了一块时钟芯片DS12887,该芯片为一款使用很广泛的时钟芯片,具体电路图如下图所示:南昌工程学院本科毕业设计(论文)M O T1N C2N C3A D04A D15A D26A D37A D48A D59A D610A D711G ND12V CC13SQ W14N C15N C16N C17IR Q18R ES ET19D S20N C21R /W22A S23C S24D S1 28 87U 3D S1 28 87D SC SD SD SD SA SD SR WD 0D 1D 2D 3D 4D 5D 6D 7V CC图 3.13 DS12887 接线图图 3.13 为时钟芯片 DS12887 的连线图,其中 DS 与单片机的 P2.1 口连接,R/W 与单片机的 P2.5 口连接,AS 与单片机的 P2.4 口连接,CS 与单片机的 2.2 口连接。通过该芯片可以提供比较精确的万年历。同时智能电表的显示模块选用 LCD 显示,下图为LCD1602 显示电路:VDD1VSS2VEE3RS4RW5LCDEN6D07D18D29D310D411D512D613D714L CD 16 02C S25U 4L CD 16 02D 0D 1D 2D 3D 4D 5D 6D 7E NR SV CCR 1810 K图 3.14 LCD1602 接线图通过该 LCD 液晶显示器,显示我们需要的一些信息。上述两个模块通过与第三章 器件介绍和单元模块设计AT89C51 单片机进行连接,可以实现万年历的功能,且可以保证,在智能电表短时间断电的情况下,时钟不会停止运行,继而实智能电表的分时计费系统可以准确的运行,我们用 Protues 仿真,电路图如下图所示:图 3.15 万年历显示仿真图图 3.15 为万年历显示模块,上图中可以通过按键对 LCD 显示进行调整,可以显示万年历,分时电价,余额等信息。3.2.5 接触式 IC 卡模块这里 IC 卡模块我们选用的是西门子的 SLE4442 加密型 IC 卡,SLE4442 是一种具有加密逻辑电路的智能 IC 卡, 内含 2568 位 EEPROM 主存储器和一个 32 位带 PROM 功能的保护存储器,其触点配置和串行接口符合 ISO 7816 标准(同步传送),具备只有输入正确的3 字节可编程密码(加密存储区) 后才能修改数据的特性。下图为具体模块:南昌工程学院本科毕业设计(论文)V CC1R ST2C LK3N C4G ND5N C6I/O7N C8U 3SL E 444 2-IC CA RDV CCSL E _R STSL E _C LKV CCD 0图 3.16 SLE4442 卡座第四章 软件设计第四章 软件设计本设计中,以 AT89C51 作为微处理器,采用 C 语言进行编程,配合硬件电路,共同构成了本次设计的核心部分。4.14.1 主要软件设计流程框图及说明主要软件设计流程框图及说明 Y报 警程序初始化检测 IC 有卡?余额为零? 开 始切断用户电源信号采集及计量LCD 显示NNYY南昌工程学院本科毕业设计(论文)图 4.1 主程序流程图本次设计的主要流程为当 IC 卡插入卡座,单片机检测到 IC 卡并读取其金额开始计时,当按照开始设定好红灯亮起,同时,LCD 显示屏强制转换到余额界面,字体开始闪烁,蜂鸣器长鸣,此时停止计费,并且开始检测键盘,当按下键盘 key4 后,警告解除,LCD 显示界面重新返回时间界面。令一方面,在计费系统正运行时,可以通过键盘检测,切换显示界面,显示界面共有 4 种,分别为当前时间,3 种电价,余额,共计 5 种界面,当按下键盘 key1 后,在当前时间界面和 3 种电价界面,可以调整时间和电价,增加或者减少,分别由键盘 key2,key3 来控制,由此来完成时间,电价的调整。比照 DS12887 中去读的时间参数,选取电价开始计算余额,当余额定于 30 元时,蜂鸣器每一分钟鸣一次,当余额为 0 时,蜂鸣器长鸣。4.24.2 主要芯片读写程序设计及设计工具主要芯片读写程序设计及设计工具本次设计采用 C 语言,C 语言具有简洁明了的特点,在本次设计中,按照各芯片的读写操作时序,以 SPI 总线操作方式,分别对 DS12887 时钟芯片,ADE7758 电能计量芯片进行读写操作,即可基本完成本次设计的主要功能,同时兼顾完成切换显示时间,电价以及查询余额,并可以调节电价。在读取 DS12887 时钟芯片时,按照其读写时序,当要写入数据时,先要写入地址,将 CS 置低,SA,DS 分别置高,RW 置高,然后给 P0 口赋值,即要写入的地址,然后将AS,RW 置低,再一次给 P0 口赋值,即要写入的数据,最后将 AS,RW,CS,拉高,同理,在读取数据时,也要先写入一个地址,将 AS,DS,RW 置高,将 CS 置低,给 P0 口赋值地址,然后将 AS,DS 拉低,P0 读取数据,最后 DS,AS,CS,全部拉高,具体 C 语言函数如下:void write_ds(uchar add,uchar date)dscs=0;dsas=1;dsds=1;dsrw=1;P0=add;dsas=0;dsrw=0;第四章 软件设计P0=date;dsrw=1;dsas=1;dscs=1;uchar read_ds(uchar add) uchar ds_date;dsas=1;dsds=1;dsrw=1;dscs=0;P0=add;dsas=0;dsds=0;P0=0 xff;ds_date=P0;dsds=1;dsas=1;dscs=1;return (ds_date); 同时,在读取 ADE7758 芯片中有功功率时,同样,按照其读时序图,先将 CS 拉低,选中信号,再用 SCK 模拟一个时钟信号输入,先向 ADE7758 写入一个地址,再从芯片读出数据,ADE7758 和 DS12887 读写程序最大的不同在于,DS12887 可以将 8 位数据一次性读出,而 ADE7758 只能一位一位的读取,因此,在书写读写函数的时,需要指明,读取数据的位数。在 CS 保持低电平的时候,所有的数据传输必须全部完成,另外,除了整体器件复位以外,没有其他方法可以让 ADE7758 返回通信状态,所以必须传输各寄存器的 LSB,复位的方法是运用软件进行复位。如前所述,在第一个字节正在向目标寄存器南昌工程学院本科毕业设计(论文)传送是,可以同时开始另一个字符的传送,但是第二个字节的传输过程不应该在第一个字节传送完成前至少 900ns 内不应该结束。当 ADE7758 寄存器经行读取操作访问时,读取命令个写入命令之间至少需要有 1.1us 的时间间隔,若果间隔过小,将会导致写入操作的最后一个字节丢失,具体位数参见芯片说明书,具体读取函数如下:unsigned long read7753(unsigned char type,unsigned char databit) unsigned char loop=0; unsigned long rtdata=0; type=type&0 x7F; type=type|0 x00; for(loop=0;loop8;loop+) SCK=1; _nop_(); if( type&0X80 )SDO = 1;elseSDO = 0;_nop_(); SCK=0; _nop_(); type=(type1); for(loop=0;loopdatabit;loop+) SCK=1; _nop_(); rtdata=(rtdata1); /上升沿读出数据if(SDI) rtdata+=1; 第四章 软件设计_nop_(); SCK=0; _nop_(); return(rtdata); 本次设计的另一个重点就是现实程序,1602 的显示程序同样按照其读写时序图完成,不同的是,1602 的显示,需要在主程序的开始写一个初始化函数用以设定 1602 的显示方式,光标等等,在本次设计中,只涉及到 1602 的写程序,写数据时,同样需要先写入地址,写地址时,先将 RS,EN 置低,延迟后再将 EN 拉高,赋予地址,最后将 EN 拉低,写数据与读不同之处在于要将 RS 拉高其余同写地址时一样,具体初始化函数,写函数如下:void init()lcden=0;dula=0;wela=0;set_time(); write_com(0 x38);write_com(0 x0c);write_com(0 x06);write_com(0 x01);void write_com(uchar com)rs=0;lcden=0;delay(5);lcden=1;P0=com;南昌工程学院本科毕业设计(论文)lcden=0;void write_date(uchar date)rs=1;lcden=0;delay(5);lcden=1;P0=date;lcden=0; 本次设计采用 Keil uVision2 作为编程工具,用 Protues 进行实物制作前的仿真,Keil作为现在主流的单片机编程工作具有操作简单,快捷的优点,同时可以与 Protues 联动,方便调节和仿真,另用 STC-ISP V31 将程序下载至单片机上运行。在本次软件设计中,最困难的地方在于对 ADE7758 的读写操作,ADE7758 是一块应用非常广泛的电能计量芯片,第一次使用该芯片时,对于串行的读写操作了解不够深入,导致在书写程序的过程中,时序先后发生错误,不知道如何移位读取等等,后来参考一些例子以后最终调试成功。第四章 软件设计南昌工程学院本科毕业设计(论文)第五章 仿真调试该程序是用 C 语言完成,C 语言具有简洁紧凑,灵活方便的特点,在调试程序的时候,软件部分大致可以分为两个部分,一部分是万年历等信息的显示部分,一部分是信号采集部分。第一部分,万年历等信息的显示部分,可以用 Protues 进行仿真,Protues 是一款非常实用的仿真原件,通过载入程序到单片机中,利用 DS12887 时钟芯片构成的仿真效果图,如下图所示:图 5.1 仿真演示效果图如上图所示,当路灯亮的时候,表示计价开始,图中 4 个键盘,通过键盘扫描程序,可以切换显示万年历,电价,余额等信息,当电价为零时,蜂鸣器长鸣,同时,绿灯熄灭,红灯亮起,LCD 显示屏显示余额为零,效果如下图所示:第五章 仿真调试图 5.2 仿真演示效果图由于 ADE7758 在 Protues 的库里面没有,所以无法进行仿真,只有用实物进行演示。本次软件设计中比较艰难的部分在于 ADE7758 的读写程序以及 DS12887 在没有实物的情况下经行仿真,前者是因为对于 SPI 接口的读取掌握还是不到位,后者是因为软件版本问题,Protues7.6 版本以前的库中没有 DS12887 时钟芯片,出于经费和稳妥起见的考虑长时间滞留在此处,后来在朋友的帮助下得以解决。南昌工程学院本科毕业设计(论文)结语如前期仿真中所示,电源部分使用 220V 交流电,通过变压器变压为 12V 之后,利用一块 L7805 稳压芯片,很好的得到了一个较为稳定,且接近 5V 的电压,误差在+0.02V 左右,可以利用其很好为单片机与其它核心芯片进行供电,且在自己搭建的电路中,采取了滤波等措施,电源质量较良好。采集电路部分,也是自己利用万用板搭建,运用电压互感器,电流互感器为核心,进行变压采样,变压后的电压理想值为 0.5V,由于实际环境等影响,其电压真实值为0.55V,但不会对功率计算造成太大的影响,电压电流信号进 ADE7758 之后,即可由单片机进行读取,获得有功功率,用于计算电价,在制作过程中,用 15W 的灯泡作为用户的负载真实的采集电路。核心处理器件部分以 AT89C51 单片机为核心运行,分别可以显示万年历,电价,余额等信息,整体设计的实物图应附带包含效果演示,万年历,电价,以及余额等部分。在硬件搭建过程遇见了很多问题,比如,ADE7758 是一块贴片封装的芯片,由于条件限制万用板上不能进行焊接,后来经过寻找,在网上发现了一种小型 PC 贴片转双列直插式的 PCB 电路板,但是由于技术水平有限,PCB 板还是没做成功。在调试 LCD1602 显示的时候,由于操作不当,导致 1602 损坏,屏幕无法显示,造成了元器件的浪费,同时在采集回路中,由于考虑不全,在采购电阻时,只考虑到其电阻值的大小,没有考虑到其功率的承受能力,导致 51K 电阻在稍微长时间的运行状态下发热比较严重,也导致功率的计算结果也产生了一定的误差。虽然最终没能做出实物,但我收获很多。本次毕业论文的题目为基于单片机的智能 IC 卡电表设计,由于我是负责硬件部分,所有的数据计算,电路的设计、修改、完成都是自己独立完成,进一步了解了产品制作的流程。为了完成设计,我也同时查阅了大量的书籍和资料,自己独立思考和学习能力得到了很好的锻炼和提升,在设计同时,大量运用了 Keil,protel99,Protues 等软件,大大提升了熟练度,在 Protel 绘制电路原理图,在 protues 中画了电路仿真图,通过 keil 编程并将程序导入单片机中,最后在 protues 中仿真。通过这个过程我了解到仿真与实际电路效果之间存在较大的差距,通过本次设计对于智能电表在设计过程中存在的问题有了一些初步的了解,并着手解决这些问题,并且本次设计是自己和另一个同学共同设计并仿真出来的,虽然没做出实物,但是大大提升了自己的综合实践能力和团队合作能力。南昌工程学院本科毕业设计(论文)参考文献1 曹天汉等. 单片机原理与接口技术M.第 2 版.北京:电子工业出版社,20062 李建忠. 单片机原理及应用M.第 2 版.西安:西安电子科技大学出版社,20083 陈杰. 黄鸿编著. 传感器与检测技术M.北京:高等教育出版社,2002.4 王思彤,周晖,袁瑞铭,易忠林. 智能电表的概念及应用J. 电网技术. 2010(04)5 王智,佟国香. 一种 IC 卡电表系统的实现J. 仪表技术,2011(12)6 杨玉婷. 一种基于 IC 卡的电能收费系统的设计方案 J. 计算机光盘软件与应用,2012,(15). 7 吕馥云. 全电子式智能卡预付费电表与用电管理J,2010,(12)8 周军,史兴才,徐超. 基于 ZigBee 的多用户智能电表设计J. 电测与仪表. 2010(01)9 庄葛巍. 直流电能表智能化的研究与应用D. 上海交通大学 201210 胡长安. 基于智能费控电能表的预付费用电体系架构设计与实践D.华北电力大学 201211张毅刚. MCS-51 单片机运用设计。哈尔滨工业大学出版社, 199712 梅丽凤. 单片机原理及接口技术,北京清华大学出版社. 2004 13 杨宁. 单片机与控制技术,北京北京航空航天大学出版社. 200414 陈伟人.李华. MCS-51 系列单片机实用接口技术.北京航天航空大学出版社. 2004.10 15张毅刚. MCS-51 系列单片机实用子程序集锦.清华大学出版社,2006 16 何立民. 单片机应用文集.北京航天航空大学出版社. 200317 徐永权,汪明慧,黄英等. 单片机在控制系统中的应用,电子工业出版社. 2003.10 18 赵茂泰. 智能仪器原理及应用,电子工业出版社. 2005.1 19何立明. 单片机典型模块设计实例导航 .人民邮电出版社. 2005.3 20 Simon Newman,Gavin Sutter.Electronic Payments-The Smart Card:Smart Cards,e-Payments,&LawPart I. Computer Law and Security Report . 2002 21 Identification card Integrated circuit card with contacts Part 3 Electronic signals and transmission protocols. International Standard ISO 7816-3 . 199722 Attali,Isabelle.Smart card programming and security. International Conference on Research in Smart Cards,E-smart 2001 . September19 2001南昌工程学院本科毕业设计(论文)23王浩接触式智能卡读写器设计研究J山东电子,200024Simon Newman,Gavin SuRer,Electronic PaymentsTheSmart Card:Smart Cards,e-Payments,&Law- Part I,ComputerLaw and Security Report,2002南昌工程学院本科毕业设计(论文)致谢在本次毕业论文设计过程中,遇见了很多的困难,但是在指导老师的悉心指导和同学们的热情帮助下,基本实现了预定功能,完成了设计,从最开始茫然无措,到后来慢慢步入正轨,几个月的奋斗,让我收获良多,在老师的悉心指导下,从最开始的仿真模拟,到后来的功能完成,每一个微小的进步都让我兴奋不已。在此我要特别感谢本次毕业设计的指导老师,王老师和欧阳老师,通过每周的见面或者打电话,老师对我进行了悉心的指导,对我设计中存在的问题和不足进行了批评和指正,不厌弃烦的进行讲解,让我受益匪浅,因此本次设计的顺利完成和老师的悉心指导密不可分,感谢我的指导老师。同时也要感谢其他所有老师和我的同学对我的帮助!南昌工程学院本科毕业设计(论文)附录 电路图
展开阅读全文