基于ATM89C51单片机的IC卡读写器的设计_第1页
基于ATM89C51单片机的IC卡读写器的设计_第2页
基于ATM89C51单片机的IC卡读写器的设计_第3页
基于ATM89C51单片机的IC卡读写器的设计_第4页
基于ATM89C51单片机的IC卡读写器的设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1摘 要IC 卡是一个正蓬勃发展的边缘产业,一个与我们的生活正越来越密切的产业。在普及因特网和计算机的大潮涌来时,IC 卡扮演着越来越重要的角色。IC 卡读写设备大致可分为两大类:一类为专用读写设备或称脱机读写器。其特点是:充分利用 IC 卡存储量大,可以独立存储和工作, 不需要和主机相连就可完成数据读写的优点,可与应用设备结合或单独工作。例如:IC 卡电表,水表,ATM 机, 商场收款机。另一类为通用读写设备,或称联机读写器,是带有单片机和存储器的设备,通过并行或串行口与 PC 机或应用系统网络相连接。 在运行不同软件时可以读写不同种类的 IC 卡,组成不同的应用系统。如果配备开发系统软件,可对 IC 卡做初始规划,数据加密和初始写入,从而构成 IC 卡应用开发制作环境。在本设计中, 我们讨论通用开发系统基于 ATM89C51 单片机的IC 卡读/写器的设计。通过 89C51 单片机来实现 IC 卡的读和写,在系统中设计一个复位电路,接在 89C51 的复位管脚上。复位电路是微机应用中重要的一环,一个好的复位电路对微机抗干扰有重要作用。另外还在单片机上接了一个时钟电路,用来设置单片机内部震荡的时间。RS232 串行接口在本设计中用于单片机与 PC 机之间的连接, IC 卡座用于插卡,实现 IC 卡与读写器的连接。本设计中所涉及的主要是接触式逻辑加密卡SLE4442 卡。另外一些外围电路的设计使整个 IC 卡读写器显得完美。2目 录前言 . 3第一章 概述 . 5 一 IC 卡技术 5二 IC 卡应用 8第二章 系统原理框图 . 10一 系统原理框图的绘制 10二 原理图 13第三章 硬件部分 . 14一 AT89C51 单片机简介 . 14二 RS232 串行接口 16三 SLE4442 简介 18四 IC 卡座 18五 外围电路 20第四章 软件部分 . 25一 工作过程、流程图 25二 用 C51 实现的读/写主程序 . 27 三 上位 PC 机通信接口软件 . 343第五章 总结 . 36一 总结 36二 致谢 37三 参考文献 38前 言IC 卡是一个正蓬勃发展的边缘产业,一个与我们的生活正越来越密切的产业。在普及因特网和计算机的大潮涌来时,IC 卡扮演着越来越重要的角色。IC 卡读写设备大致可分为两大类:一类为专用读写设备或称脱机读写器。其特点是:充分利用 IC 卡存储量大,可以独立存储和工作, 不需要和主机相连就可完成数据读写的优点,可与应用设备结合或单独工作。例如:IC 卡电表,水表,ATM 机, 商场收款机。另一类为通用读写设备,或称联机读写器,是带有单片机和存储器的设备,通过并行或串行口与 PC 机或应用系统网络相连接。 在运行不同软件时可以读写不同种类的 IC 卡,组成不同的应用系统。如果配备开发系统软件,可对 IC 卡做初始规划,数据加密和初始写入,从而构成 IC 卡应用开发制作环境。在本设计中, 我们讨论通用开发系统基于 ATM89c51 单片机的 IC卡读/写器的设计。IC 卡读/写设备由 IC 卡卡座,单片机,数据存储器 RAM,程序存储器 EEPROM,接口电路和外围设备等组成。 IC 卡读/写器各部分结构与功能简单介绍如下:1.IC 卡卡座IC 卡卡座是连接 IC 卡与读写器的。其功能包括对 IC 卡供电,提供读写信号和传送数据。要求提供方便的插拔方式和可靠的接触,并带有带电插拔,过流保护,插卡检测等能力。IC 卡和插座的结构尺寸必须符合国际标准化组织4(ISO)7816 的标准。对触点数目、位置、信号名称和功能都有明确规定,以保证兼容性。2.单片机和存储器读写器中配备单片机和 ROM,RAM 存储器,构成微机系统,单片机运行 ROM 中固化的软件,执行与 IC 卡和上位 PC 机的通信规程。控制对 IC 卡的读写,完成IC 卡与主机间数据的格式转换。为减轻单片机负担,提高读写速度,常配置有硬件密文转换和单元。3.接口电路和外围设备通用读写器一般与 PC 机或网络联机工作, 常用标准并行或串行口与上位机连接和通讯。常用的是带有 25 芯或者 9 芯插口的 RS232- C 型串行接口, 可直接接到 PC 机的 COM1 或 COM2 上。此时,可利用主机的显示器作监视器,主机键盘作控制和输入,利用主机打印机输出。此时主机与读写器组成了 IC 卡应用与开发系统,操作与一般微机相仿,但用户界面将随所配软件而有很大不同。4.IC 卡系统软件本设计的系统软件是通过 C51 编写的。5第一章 概述一、IC 卡技术IC 卡概述1. 什么是 IC 卡IC 卡是英文集成电路卡(integrted circnit card )的缩写,其大小和名片相当,但比名片稍厚些。国际标准化组织 ISO 为它制定了国际标准,对卡的长度、宽度及厚度都做了比较明确的规定。制作时,将一个专用的集成电路芯片镶嵌于基片中,封装成形,即为 IC 卡。IC 卡的概念是 20 世纪 70 年代初提出来的,法国人 RoLa MdMore Mo 与 1970 年首先将 IC 卡芯片放于卡片中。2. IC 卡的分类(1)根据卡中所镶嵌的集成电路的不同分类存储卡:卡中的集成电路为 EEPROM。逻辑加密卡:卡中集成电路为带加密逻辑和 EEPROM。CPU 卡:卡中的集成电路包括中央处理器 CPU、EPROM 、随机存储器RAM 以及固化在只读存储器 ROM 中的片内操作系统。严格的讲只有 CPU 才是真正的只能卡。(2)根据卡与外界数据传送的形式分类IC 卡可分为接触型与非接触型。非接触型 IC 卡又称射频卡。当前使用广泛的是接触型 IC 卡。在这种卡上,起 IC 芯片有 8 个触点可与外界接触;射频卡的集成电路不向外引出触点,因此,它除了包含前述三种 IC 卡的电路外,还带有射频收/发电路及其相关电路。6(3)根据应用领域分类IC 卡分为金融卡和非金融卡。金融卡又分 为信用卡和现金卡。信用卡由银行发行并管理,持卡人用它作为消费时的支付工具,可使用预先设的的透支限额资金。现金卡可用作电子存折和电子钱包,不允许透支. 3. IC 卡技术(1)IC 卡读/写技术IC 卡是一种集成电路卡,它的读写设备是每个 IC 卡应用系统不可缺的周边设备。该设备通过 IC 卡的 8 个触点向 IC 卡提供电源与 IC 卡相互交换信息。虽然 IC 卡是从磁卡发展而来的,但他在机器读/写性能上却远优与磁卡,无需往复的机械动作即可完成人-机-卡之间的多次会话过程,使卡在应用时操作简单,给人们带来极大的便利。(2)IC 卡的安全技术信息安全的目的就是保证数据在确定的时间内,在确定的地点,在确定的条件下,只能被却定的对象使用。而 IC 卡正是为了解决数据是安全问题而设计的,它采用的是半导体密码存放与软件加密技术,能够有效地阻止卡的非法复制与数据篡改,应用设备设备在脱离网络的情况下,可以对 IC 卡进行鉴别。IC 卡的信息安全一般具有以下特征:保密性:既防止未经授权的使用者获取信息;完整性:防止未经授权的信息改变(更改、删除、增加) ;可获取性:防止未经授权的截取信息;真实型:即通过一系列的技术措施验证信息的真实性;持久性:即长久时间信息保存的可靠性。(3)数据存储技术7在一个应用系统的使用中,系统必须对所有持卡人建立一份身份与使用的档案。在磁卡系统中,这组档案存放在中心数据库系统内,没次持卡人使用必须通过终端,以网络形式从数据库系统中提出那分与自己有关的档案,IC 卡的数据存储能路比磁卡要强得多,卡把持卡人有关的大量信息存放在卡中,因而使得 IC 卡使用的灵活性大大增强,交易的实时性也明显改善。目前,IC 卡的存储容量可达近 1MB。4. IC 卡的技术特点(1) 芯片的制造技术与工艺目前,IC 卡用芯片扑片采用较为先进的 CMOS,BICMOS 等集成电路制造工艺,具有较好的点性能及抗干扰能力,一采用 CMOS 工艺制造的 IC 卡芯片为例,起主要技术指标为;写入/删除次数最少可大 100000 次。数据保存时间最少为 10 年。工作电压为 5V。抗静电 4000V 左右。噪音容限也较高。(2) IC 卡座的技术要求IC 卡卡座哈 IC 卡应有良好的接触点,应有尽量小的摩擦。具有生产制造时的质量稳定性。具有对应用环境(温度、湿度、震动及电磁干扰等)的适应性。其中正确的工作顺序较为重要。按有关 ISO/IEC7816 标准规定,在 IC 卡的触点和读/写设备的触点之前,读/写设备不应对磁卡施加有关点信号,以免造成不可预料的损坏。IC 卡读/写设备作为系统和用户交互的接口,必将棉队各种各样复杂的应用环境,如在金融系统应用中的 ATM(自动柜员机)8,有可能放置在露天公共场合,处于高/低温、潮湿、电磁干扰等环境;在电车、汽车自动售票系统应用中,处于振动、电磁干扰等环境。因此,在设计阶段就应注意;IC 卡读/写设备环境适应性问题。二. IC 卡的应用IC 卡的应用领域非常广泛。它除了涵盖传统磁卡的全部功能外,还拓展到许多磁卡所不能胜任的领域。这在很大程度上归功与 IC 卡的大容量数据存储能力和强有力的安全特性。目前,IC 卡除在金融系统外,在非金融系统也得到了广泛的应用。如在通信领域中的公用电话卡,移动电话中的 SIM 卡;在交通领域中的驾驶员执照卡、停车收费卡、公交交通设施是自动收费卡及公共交通工具的自动收费卡等;另外在医疗保健、个人身份识别、预收费仪表、校园及消费娱乐领域中也得到了具体的应用。(1) 通信领域数字移动电话中的用户识别模式智能卡(SIM 卡)及公用电话用 IC 卡。(2) 医疗卫生和计划生育管理卫生部计划发行医疗 IC 卡;国家计划生育委员会准备发行育龄妇女计划生育 IC 卡(3) 企业保险 领域用于医疗保险、失业保险、养老保险及儿童免疫接种等,目前海南、褡裢等地已发行 IC 保险卡。(4)交通领域用于汽车驾驶员管理、公交路费及公交或地铁自动售票,目前公安部已9完成“机动车辆驾驶员违章处理 IC 卡”的标准起草工作,并已通过专家审定。(5) 对企、事业单位和社会团体的管理国家工商局准备发行工商企业监管 IC 卡,并在部分省市试点。(6) 企、事业单位内部管理目前已包括单位职工内部管理、场区内部通行控制、校园师生管理、饭店 IC 卡门锁及饭店内部消费等。这类 IC 卡以集团、单位内部发行为主。(7) 公共事业目前 IC 卡水表、电气及煤气表已在许多城市使用,今后会进一步推广。(8) 税务(包括国税和地税)许多省市已开始使用 IC 卡进行税金的征收和稽查。(9) 加油中国石化总公司和地方石油公司都已有组织地建立 IC 加油卡收费系统。随着时间的推移,IC 卡的应用范围将会越来越广泛。它给人们的工作和生活带来很大的方便,相信在不远的将来,IC 卡会真正走进我们的工作和生活。10第二章 原理图一系统原理框图的绘制1.Protel99 软件的概述(1)随着电子技术的飞速发展,新型电子器件和集成电路的永远日趋广泛,电子电路也变得越来越复杂,这给电路的设计工作带来了更大的难度。因此通过计算机进行电子电路的互助设计成为设计电路板的一个基本手段。Protel99 包含众多的服务器,总提上可以分为 5 种组件,分别为:原理图设计组件、PCB 设计组件、布线组件、可边成逻辑器件组件和仿真组件。由于其性能优越,Protel99 已成为电路设计不可缺少的理想工具。(2)下面简单介绍电路原理图的设计步骤。总体来说,设计一个电路原理图,首先要设置图纸的大小和外形,对电路图进行总体规划,然后在图纸上放置元件, (其中,库里面没有我们所需的元件需要我们自己画)进行布局布线,接着对这个版面进行编辑和调整,最后保存或打印,具体的电路原理图的设计流程如图 1 所示: 11图 1设计 PCB 板首先要启动 Protel99-PCB 编辑器。启动该编辑器的操作步骤如下: 新建或打开一个设计数据库文件(*.ddb) 。进入设计文件夹 Documents。选择 F ile/New 命令,打开对话框。双击该对话框中的 即可创建一个新的元件库文件,默认的文件12名为 PCB1。在工作窗口中该文件的图标上单击或在设计浏览器中该文件名上双击,即可进入 PCB 板编辑器。然后即可在 PCB 编辑板上画出所需的电路原理图,如下页所示:二 原理图:13第三章 硬件部分介绍14一 AT89C51 单片机简介 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8 位微处理器,俗称单片机。AT89c51 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C51 是它的一种精简版本。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1主要特性:与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2管脚说明:VCC:供电电压。15GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个16机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 二 RS232 串行接口EIA-RS-232C 是由美国电子工业协会 EIA 制订的一种串行物理接口标准。RS-232C 采用负逻辑,-5 -15V 为逻辑 1,+5+15V 为逻辑 0。而 TTL电平的“1”和“0”的特征电压分别为.和.,用 RS-232C 总线进行串行通信需外接电路实现电平转换。在发送端需用驱动电路将电平转换成 RS-232C 电平,在接收端用接收电路将 RS-232C 电路转换为 TTL 电平。17本设计是用的 TI 公司的 RS-232C 收发器 MAX232,可用单一 +5V 电源供电实现电平转换。RS-232C 在设计中主要永远用于 PC 机与 IC 卡读/写器之间的通信,框图如下RS-232C 芯片的引脚结构如图 5 所示:图 5图 5 中的 C1、C2 、C3 、C4 及 V+、V是电源变换电路部分。在实际应用中,器件对电源噪音很敏感。因此,VCC 必须要对地加去耦电容,其值为 0.1F 。电容 C1、C2 、C3 及 C4 取同样的数值的钽电解电容,用以提18高抗干扰能力,在连接时必须尽量靠近器件。MAX232 的 13、14 管脚为串行异步通信发送及接受引脚。三 SLE4442 卡简介 SLE4442 卡内部有一个 256 8bit EEPROM,不可逆的 4 个写保护字节,具备密码保护功能,可以随时读取主存储器内容;在校验成功后,可读保护存储器、读写安全存储器和写主存储器。 SLE4442 有一个密码逻辑,用以控制对存储器的读写。为此,SLE4442 包含一个 4 字节加密存储区,该存储区有一个错误计数器 EC(0-2 位)和三个字节的参考数据,这三个字节作为一个整体,称为可编程密码(PSV) 。整个数据区除了参考数据,其它的数据都能被读取,在校验数据与内部参考数据比较正确后才能进行读写操作,连续三次比较错误后,错位计数器将阻止任何比较尝试,从而也消除了任何擦写操作。四 IC 卡座IC 卡座引脚如图 6 所示,其中引脚 SW1、SW2 为微动开关在无 IC 卡状态时,处与断开状态;有卡插入时,IC 卡卡座上的微动开关闭合。因此,此开关往往是用来判断是否插 IC 卡的传感器件。19其引脚 VCC:工作电压;SCL(CLK):串行时钟;GND:接地;SDA(I/O):串行数据(输入/输出) ;SW1、SW2:微动开关本设计中与逻辑有关的引出端先只有 2 条:SCL 和 SDA。所有的地址、数据及读/写控制命令等信号均从 SDA 端输入/输出。为了区分线上的数据、地址、操作命令以及各种状态的“开始”与“结束” ,卡片内设计就多个逻辑控制单元。其中,启动与停止逻辑单元产生控制读/写操作的“ 开始”与“停止”标志信号。20“开始”状态:当 SCL 处于高电平时,SDA 从高电平转向低电平,即产生“开始”标志信号。“停止”状态:当 SCL 处于高电平时,SDA 从低电平转向高电平,即产生一个“停止”标志信号,如图 6 所示:图 6 读/写的启动与停止时序SDA 和 SCL 通常各自通过一个电阻拉到高电平,当 SCL 为高电平时,对应的SDA 上的数据有宵;而当 SCL 为低电平时,允许 SDA 上的数据变化。数据输入/输出应答逻辑单元产生数据输入/输出操作应答信号。操作时所有的地址和数据字均一 8 位码串行输入/输出于卡片。卡片没收到一个 8 位码长的地址或数据后都以置 SDA 线为低电平方式“确认 ”应答信号,其波形如图 7 所示21图 7五 外围电路(1)状态灯IC 卡的上电一般是可知的,即对 IC 卡读/写时,须给 IC 卡上电(送电源) ,因此,IC 卡的上电控制比较简单。由于 IC 卡读/写电流很小,一般为几个 A,因此其实现可按照图 8 所示。由单片机 89C51 的 P14 信号通过小功率三极管9012 控制系统的+5V 电源切入 IC 卡座。当 IC 卡上电后,发光二极管 L2 被点亮,起读/写指示作用。每次对 IC 卡读/写完成后。即及时先电,以减少插拔时带电的可能性,要保证 IC 卡能任意插拔(有可能处于带电状态) ,不致 IC 卡损坏,必须使 IC 卡拔电过程处于断电的状态。要做到这点,必须保证 IC 卡的下电迅速及时图 8(2)蜂鸣器22一般所指的蜂鸣器是以压电陶瓷为主要元件的。压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。这种能力缘于其特殊的晶体结构。当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,并且电流的变化与压力的变化密切相关。反之亦然。所以利用这一特性,在压电陶瓷上通过一定频率的电流,就会引起压电陶瓷微小形变,这一形变带动空气发生振动,如果频率适当,就可以被人耳所听见,也就是产生了蜂鸣声。本设计当中蜂鸣起的做用是 IC 卡与单片机是否连接。将 IC 卡插进卡座时,IC 卡座与单片机之间的连接无误是蜂鸣器会响。在取出 IC 卡,即 IC 卡与单片机断开连接,蜂鸣器也要响。具体连接图如图 9 所示:图 923(3) 电源电路U1=220V,U2=8V,Uc1=1.2U2=9.6V,Uo=5V功率稳压电源由电源变压器、整流电路、滤波电路和稳压电路四个部分组成,如图 10 所示+ 电 源 + 整 流 + 滤 波 + 稳 压 +u1 u2 u3 uI U0_ 变压器 _ 电 路 _ 电 路 _ 电 路 _u1 u2 u3 uI U0 0 t 0 t 0 t 0 t 0 t 图 10 稳压电源的组成框图及整流与稳压过程() 电源变压器 电源变压器的作用是将来自电网的 220V 交流电压 u1 变换为整流电路所需要的交流电压 u2。电源变压器的效率为: 12P其中: 是变压器副边的功率, 是变压器原边的功率。2P124() 整流和滤波电路在稳压电源中一般用四个二极管组成桥式整流电路,整流电路的作用是将交流电压 u2 变换成脉动的直流电压 u3。滤波电路一般由电容组成,其作用是把脉动直流电压 u3 中的大部分纹波加以滤除,以得到较平滑的直流电压 UI。U I 与交流电压 u2 的有效值 U2 的关系为:2).1(UI在整流电路中,每只二极管所承受的最大反向电压为: 2RM流过每只二极管的平均电流为:UIRD245.0其中:R 为整流滤波电路的负载电阻,它为电容 C 提供放电通路,放电时间常数 RC 应满足: 2)53(TR其中:T = 20ms 是 50Hz 交流电压的周期。()稳压电路由于输入电压 u1 发生波动、负载和温度发生变化时,滤波电路输出的直流电压 UI 会随着变化。因此,为了维持输出电压 UI 稳定不变,还需加一级稳压电路。稳压电路的作用是当外界因素(电网电压、负载、环境温度)发生变化时,能使输出直流电压不受影响,而维持稳定的输出。稳压电路一般采用集成稳压器和一些外围元件所组成。采用集成稳压器设计的稳压电源具有性能稳定、结构简单等优点。集成稳压器的类型很多,在小功率稳压电源中,普遍使用的是三端稳压器。按输出电压类型可分为固定式和可调式,此外又可分为正电压输出或负电压输出两种类型。()固定电压输出稳压器常见的有 CW78 (LM78 )系列三端固定式正电压输出集成稳压器;CW79 (LM79 )系列三端固定式负电压输出集成稳压器。三端是指稳压25电路只有输入、输出和接地三个接地端子。型号中最后两位数字表示输出电压的稳定值,有 5V、6V、9V、15V、18V 和 24V。稳压器使用时,要求输入电压UI 与输出电压 Uo 的电压差 UI - Uo 2V。稳压器的静态电流 Io = 8mA。当 Uo = 5 18V 时,U I 的最大值 UImax= 35V;当 Uo=18 24V 时,U I 的最大值 UImax = 40V。第四章 软件部分 一.工作过程软件结构设计及其分析()读/写器软件结构读/写器的读/写操作由上位 PC 机进行控制,通过串行通信的命令字节来实现。集体规定我诶:如握手信号为 0AAH,则读卡;如握手信号为 0BBH,则写卡。读/写器的主程序框图如图 11 所示。其中,在读 /写卡开始时,设置读写卡标志;在通信开始时,设置通信标志。避免数据不全或错误数据读入或写入。另外,所以的 IC 卡数据是先存放在 IC 卡的读缓冲区和写缓冲区的。“有卡插入否”是用过判断 P33 引脚的高低电平来实现的。为了保证读卡的可靠性,必须进行软件“去抖”处理。一旦有卡插入,则设置读/写卡标志(有卡) ;在通信时,设置正在通信标志。目的是我为了避免带电插卡。本26系统中关键的软复位是通过在外中断 INT0 服务函数中设置软复位标志、在主函数中强制跳转到函数首实现的。图 11 主程序流程图拔卡处理是通过设置成高优先级的下降沿触发的 INT0 中断来实现的。其程序如图 12 所示:图 12 拔卡处理中断子程序27串行通信才用 3 线制软握手方式(2)软件系统分析为保证 IC 卡读/写过程准确可靠,除要保证读/写函数严格按照 IC 卡的读/写时序外,还须采用“重读”和“复读”措施。即读 IC 卡是,采用读 2 次的方式,如 2 次相符,则数据有效,否则再进行第 3 次读,写 IC 卡时,先将数据写入,再回读比较,否则重写一次,以免偶然的写失导致得出 IC 卡失效的错误结论。如何使上、下位机均不死机或能简单恢复正常工作呢?对于作为下位机的IC 卡读/写器,利用 IC 卡能随意插拔,再结合 IC 卡的拔卡处理是一个高级中断的特点,将 IC 卡的拔卡中断程序设计成 2 个分支:(1)非 IC 卡读/写且非与上位机通信状态;(2)在与上位机通信或正在对 IC 卡读/写状态。第 1 种情况下,中断子程序是简单的鞍鼻卡 BEEP 告警后,直接中断返回;第 2 种情况,则会引起系统工作时常甚至死机,在恢复中断环境后,用强制跳转指令强制从主程序开始执行,达到复位的效果。程序框图如图 12 所示。为确保串行通信的可靠性,应着重从上、下位机通信软件的以下问题入手合理选择通信波特率。由于上、下位机通信的数据量很小(最多为 IC 卡的容量) ,因此通信波特率可选低一些,如 2400;但要高度重视下位机(即 IC 卡读/写器)的波特率参数整顶问题。对于 51 系统 CPU,尤其要注意电源管理寄存器中 SMOD 位的设置。以 2400 波特率为例,当 SMOD=0 时,波特率参数为0F9H,实际波特率为 2232,此时波特率相对误差是 7;而当 SMOD=1 时,波特率参数为 0F3H,实际波特率为 2401,此时波特率相对误差是 0.16,满足正常通信所规定的波特率相对误差小于 5的要求。二 用 C51 实现的读/写主程序#include #include #define uchar unsigned char#define uint unsigned int 28/ * IC 卡信号输入/输出*/Sbit scl=P17;Sbit sda=P16; / *I/O 口定义*/Sbit ICOUT=P32; Sbit ICIN=P33;Sbit COMM=P34;Sbit BELL=P35;Sbit PWR=P14;/*波特率选择*/Sbit BACD=P12;/*24c0124c16 读/写驱动程序*/Sbit a0=ACC-0;Sbit a1=ACC-1;Sbit a2=ACC-2;Sbit a3=ACC-3;Sbit a4=ACC-4;Sbit a5=ACC-5;Sbit a6=ACC-6;Sbit a7=ACC-7;/ *读/写数据缓冲区,24C01 最多为 128B *Uchar buf16;Uchar flag;/ * 标志定义* /Sbit IC_WR=flag-0;Sbit ONCOMM=flag-1;Sbit RST=flag-2;Void start_ic(void)Sda=1;Scl=1;Delay(2);Sda=0;Delay(6);Void stop_ic(void)Sda=0;Scl=1;Delay(6);Sda=1;Delay(6);Scl=0;Sda=0;29Void ack_ic(void)Sda=0;Delay(3);Scl=1;Delay(3);Scl=0;Sda=1;/ * 读字节函数,无应答信号 * /Unsigned char rd24(void)Sda=1;Scl=1;a7=sda;scl=0;Scl=1;a6=sda;scl=0;Scl=1;a5=sda;scl=0;Scl=1;a4=sda;scl=0;Scl=1;a3=sda;scl=0;Scl=1;a2=sda;scl=0;Scl=1;a1=sda;scl=0;Scl=1;a0=sda;scl=0;Sda=1;scl=1;scl=o;Return(ACC);/ * 写字节函数 * /Void wd24(unsigned char dd) ACC=dd;Sda=a7;scl=1;scl=0;Sda=a6;scl=1;scl=0;Sda=a5;scl=1;scl=0;Sda=a4;scl=1;scl=0;Sda=a3;scl=1;scl=0;Sda=a2;scl=1;scl=0;Sda=a1;scl=1;scl=0;Sda=a0;scl=1;scl=0;Sda=1;scl=1;While(sda=1);SCL=0;/ * 随机地址地字节函数,address 为预读单元地址 *Uchar read_buter(uchar address)Uchar x;30Start_ic();Wd24(0a0);Wd24(address);Start_ic();Wd24(0a1);X=rd24();Stop_ic();Return(x);/ * 从指定地址开始顺序读块地址数据,数据存入全局缓冲区中 buf,n 为数据字节数 * /Uchar read_bytes(uchar address,uchar n)Uchar a,y;For(y=0;yC51 IC.CL51 IC.OBJ三 上位 PC 机通信接口软件在 Windows 9x 的串行通信实现一般有 3 种方式:(1) 利用 Windows 9x 的 API 接口函数。(2) 对于 RAD 开发系统(如 VB) ,可利用 ActiveX 串行通信控件。(3) 利用 DLL 动态链接库,直接操作串行端口。上述 3 种方式各有特点。这里讨论采用第 3 种方式实现的串行通信接口,具有应用灵活的特点。下面给出基于 Delphi4.0 的串行通信 DLL 程序:Library Mycomdll;Use SysUtils;Classes;ConstCOM1: =$ 3f8;COM2: =$2f8;VarCOM: Word;DLL 中全局变量Procedure Outb(Const Port:Word;onst Dbyte:Byte);pascal;BeginAsmMOV DX,PortMOV AL,DbyteOUT DX,ALEnd;End;Function Inb(Const Port:Word):Byte;pascal; BeginAsmMOV DX,PortMOV AL,Dbyte35OUT DX,ALEnd;End;Function Inb(Const Port:Word):Byte;pascal;BeginAsmMOV DX,PortIN AL,DXMOV Resullt,ALEnd;End;串行口初始化,COM1,COM2 可选,波特率 2400,4800 可选Procedure CommInit(Consst Port:Byte;Const Band:String);Stdcall;VarBAUDL,BAUDH:Byte;BeginIf Port=1 thenCOM:=COM1;ElseCOM:=COM2;If BAUD=2400 thenBeginBAUDL:=$30;BAUDH:=$00;End;ElseBeginBAUDL:=$18;BAUDH:=$00;End;Outb(COM+3,$80);Outb(COM,BAUDL);Outb(COM+1,BAUDH);Outb(COM+3,$03);End;发送一字节Procedure SendByte(Const Dbyte:Byte);Stdcall;VarStatus:Byte;BeginRepestStatus:=Inb(COM+5);Until(Status and $20)=$20);

温馨提示

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

评论

0/150

提交评论