本科毕业论文开题报告

时间:2022-08-13 08:52:00

本科毕业论文开题报告

本科毕业论文开题报告

论文题目

通用预付费安全组件技术研究-下位机

学生姓名

马杨军

专业班级

计本021

性别

⒈课题研究意义及现状

预付费水,电,气一卡通系统为民用智能水表,电表,管道燃气表及小区费用管理(如卫生管理费,治安费,停车费,宽带网络费等)提供了"一卡通"管理平台;我们制作的自能水表,电表及管道燃气表,则为"一卡通"管理提供了可靠,实惠,实用的表具.两者相结合,只用一张IC卡,就能实现水,电,气及小区费用等多种收费的管理,省时,剩事,省力,不仅方便了居民生活,更有利于管理部门的集中统一控制,是今后小区智能化管理的必趋势.

一户一卡,一卡多表,每张IC卡最多可管理8块智能表,为将来系统的扩展提供了良好的技术基础.

卡中数据安全可靠,各表数据均独立存放于IC卡中,互不影响;卡中各类数据均进行加密处理,且使用校验和检错技术和写卡密码保护机制,确保卡中交易数据的可靠,准确和完整.

采用一套管理系统,功能完善,操作简单.对遗失卡用户可进行补卡操作,对换表用户可进行换表处理,对需要退费的用户可进行退费处理.

融合了IC卡预付费水表,电表,气表的各种功能特点.

适用范围:小区智能化管理;学校智能化后勤管理

随着预付费系统应用的发展,安全认证要求越来越多,要求安全系统满足不断发展的业务要求.针对安全要求的不断变化,本项目采用开放的系统架构和安全功能模块化的设计思想,通过灵活的配置,满足各种安全要求.

⒉课题研究的主要内容,预期目标和研究方案

研究内容:

本项目主要研究基于ISO-7816的智能卡技术,实现独立于SmartCos的安全认证下位机组件.

1.IC卡技术:

研究基于SmartCos的IC卡技术,实现ISO7816-4通讯.

2.智能卡框架技术:

研究基于ANSIC的智能卡技术,实现独立于COS的安全认证组件.

3.智能卡模拟技术:

研究独立于具体设备的IC卡应用组件,探索设备内嵌安全组件的软件模拟方法.

预期目标:

完成智能卡的读取,分辨,和处理相关卡的各项功能,做到安全,可靠地使用.

研究方案

基于ANSIC实现下位机软件的设备独立性,以预付费电卡表为例实现下位机的安全组件功能,实现密钥存储,传输和管理,以及与上位机的通讯和认证功能.

⒊课题进度计划

2005-1-20~2005-2-10:熟悉ISO-7816的智能卡技术.

2006-2-11~2006-3-1:熟悉E-SAM模块的功能.

2006-3-2~2005-3-25:完成智能卡读取,处理等模块功能.

2005-3-26~2005-4-1:对所做的功能进行测试,修改.

2005-4-2~2005-5-1:撰写毕业论文.

⒋参考文献

[1]陈邦媛.射频通信电路[M].北京:科学出版社,2002

[2]王爱英.智能卡技术――IC卡[M].北京:清华大学出版社,2000

[3]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,1998

[4]张肃文,陆兆熊.高频电子线路[M].北京:高等教育出版社,1992

指导教师意见

指导教师签名:

年月日

论文摘要

中文摘要:本文针对IC卡式电子预付费电能表的实际设计出发,介绍了接触式IC卡智能电表的IC卡选用,及读卡器的设计与实现,着重于IC卡数据记录,读取原理介绍,功能实现过程.设计基于IC卡的预付费电子电能表系统,采用AT24CO1实现数据记录,资料保存.采用MCS-51系列单片机89C52微处理芯片与计算机串行口通讯实现微机对卡的数据操作.

关键词:智能IC卡,读写器

Abstract:

TheICcard''''schoiceofcontactedICcardsintelligent-meterisintroducesinthethesis,andthedesignandrealizationofcard-readeraswell.AccordingtothepracticaldesignofIC-Cardwiseandelectricallypreparedelectricitymeter.Andthestressisputontheintroductionofdatarecord;readingprincipleofICcardelectricallypreparedelectivelysystemisbasedonICcard.Inwhichisadoptedtofitfuldatarecordandstoreofreference,andsingle-chipcomputer89C52microprocessorcommunicationareadoptedtorealizethecomputer-to-carddataoperation.

Keywords:intelligentICcard,cardreader

目录

引言

第一章:总体方案设计与论证

第二章:IC卡系统设计与实现

2.1IC卡介绍

2.2读卡器基本原理及设计

第三章:系统硬件设计与实现

3.1标准异步串行通信接口技术

3.289C51与24C01通信的硬件设计

第四章:系统软件设计与实现

4.1模拟I2C总线数据传输编程

4.2系统软件程序流程图

附录一系统硬件电路图

附录二参考文献

----引言----

1970年,法国人罗兰德・默瑞诺(RolandMoreo)第一次将可编程的集成电路芯片(IC-IntegratedCircuit)放于卡片中,使卡片具有了更多的功能,这一发明给世界带来了极大的改变,这种卡片就是被称为IC卡的新型智能卡.

IC卡概念及分类

(1).什么是IC卡以下几种解释从不同方面对IC卡进行了描述.

①其外型和信用卡一样,但卡上含有符合国际标准化组织(ISO)有关标准的集成电路芯片(IC).

②由一个或多个集成电路芯片组成,并封装成便于携带的卡片;具有暂时或永久性的数据存储能力,其内容可供外部读取或供内部处理,判断使用;具有逻辑和数学运算处理能力,用于识别和响应外部提供的信息和芯片本身的处理需求.

③实际上,IC卡就是集成电路卡.它是一种随着半导体技术的发展和社会对信息安全性等要求的日益提高应运而生的,是一种将具有微处理器及大容量存储器等集成电路芯片嵌装于塑料基片上而制成的卡片.

在IC卡的左上角封装有IC芯片,其上覆盖有6或8个触点和外部设备进行通讯.

IC卡属于半导体卡.半导体卡片采用微电子技术进行信息的存储,处理,又可以分为:有接触点卡和无接触点卡.前者由读写设备的接触点和卡片上的触点相接触,进行信息的读写;而后者则与读写设备无电路接触,由非接触式的读写技术进行读写(例如,光或无线电技术).

有接触点卡又分为:存储卡和智能卡(带微控制器).存储卡又可分成RAM卡(可读写)和ROM卡(只读).

此外,从功能上IC卡大致可分成三类::存储器卡,智能卡(带微控制器)和超级智能卡.其中,存储器卡由于价格便宜,开发应用相对简单等原因,目前在各个领域已有大量的应用,还可以再分为以下两种:普通存储器IC卡,智能存储器IC卡等.

IC卡应用技术

IC卡是硬件与软件技术的高度结合,主要技术包含三个部分:硬件技术,软件技术及相关应用领域的专业技术.

IC卡软件,指智能卡中所出现的IC卡系统监控程序或IC卡操作系统,而IC卡操作系统则更完善,复杂.智能卡的硬件就是一个小型的微控制器系统,只是在安全方面有更多的设计而已.而软件则是智能IC卡实现其安全性的关键.

一个较完善的IC卡操作系统必须能够管理一个或多个相互独立的应用.它应能为有关应用提供相应的应用管理,传输管理,文件管理,安全管理等功能.

IC卡作为一种电子信息媒体,同磁卡,光卡等信息媒体一样,必然由计算机或相应的专用设备对其中存储的信息进行读取,分析,处理.而这种设备中往往不具备IC卡的读写接口,IC卡读写设备就是计算机同IC卡之间的接口设备.

从IC卡读写方式的角度分析,IC卡读写技术可以分为两大类:

一,通过机械触点进行电气连接,与计算机等设备进行通讯.此种类型的IC卡为接触式IC卡,它同计算机之间的接口设备为接触式IC卡读写设备,是目前应用最广泛的IC卡.

二,IC卡同计算机之间通过无线方式,如无线电波,进行通讯..此种类型的IC卡为无接触式IC卡,它同计算机之间的接口设备,即为无接触式IC卡读写设备.目前,由于技术及应用上的限制,此种IC卡的应用还不很广泛.

一般IC卡所使用的主要芯片分为通用芯片和专用芯片两大类.所谓通用芯片,就是普通的集成电路芯片,如本设计中应用的美国ATMEL公司的AT24C01两线串行连接协议存储芯片.其出厂时就有两种供货形式,一是封装成集成电路直接提供给最终用户使用,二是以裸芯片的形式提供给IC卡生产厂商封装成IC卡.裸芯片几乎没有安全性设计,也不完全符合目前IC卡的国际标准,但因其开发使用简单,价格便宜,比较适合于初期的对安全性要求不高的IC卡应用.所谓专用芯片,就是专为IC卡而设计,制造的芯片,如荷兰Philips公司的PCB2032/2042芯片.这种芯片符合目前IC卡的ISO国际标准,具有较高的安全性.

IC卡所使用的专用芯片一般分为存储器芯片和微处理器芯片两大类.存储卡使用存储器芯片作为卡芯;智能卡则使用微处理器芯片作为IC卡芯片.

IC卡常使用的存储器芯片种类及特性

存储器类型:

1.ROM(ReadOnlyMemory)

只读存储器,一次写入后不可更改或删除.一般由芯片制造商进行掩膜写入信息,价格便宜,适合于大量的应用.

2.RAM(RandomAccessMemory)

随机存取存储器,掉电后信息丢失,卡片上需电源.一般和其它种类的存储器共同使用,作为信息处理时的临时存储.

3.PROM(ProgrammableROM)

一次编程多次读出存储器,可由用户编程写入应用信息,价格较便宜适合于较大量的应用.

4.EPROM(ErasablePROM)

可在紫外线擦除之后写入信息.目前,在IC卡中已经很少应用.

5.E2PROM(ElectronicallyEPROM)

电可擦除,写入存储器.

目前,在IC卡上应用得最多的为带加密运算的微控制器(MPU+CPU)逻辑控制,管理功能,加密,解密等运算功能如:飞利浦公司的83C852等.

不带加密运算的微控制器(CPU)逻辑控制,管理等功能如:日立公司的H8系列等.

第一章:总体方案设计与论证

方案设计与论证:

电子式电能表系统一般包括:电能表部分和IC卡读写器部分,设计中IC卡是作为数据的存储中介,因而IC卡的选用十分重要.选用的IC卡应能够完成数据存储,电能表识别等功能,还应具有密码保护,数据加密的功能.数据能否正确写入IC卡,因而微机与读写器通讯也是关键.这两部分直接影响到整个系统的功能实现与否,下面对各种方案的选择进行设计和论证:

IC卡选用方案设计

方案一:采用只读识别卡

采用只读识别卡作为本系统的存储媒介,通过电能表识别IC卡持有者身份,利用微机与电能表通讯得取用户的数据信息(如:用户个人资料,预存电费,已用电费…),进行电费计费.其优点是:无须对IC卡本身进行操作,可以防止人为对卡保存的个人资料的篡改;使用寿命长,硬件成本低.缺点:需要编写专用的微机操作系统进行数据管理程序,异地通讯程序,在无微机的地域不适用,通用性不强.

方案二:采用存储卡作为本系统的存储媒介

利用微机控制专用读写器对IC卡进行数据操作(对卡充值),通过电能表读取IC卡上的数据,(预存电费,已用电量…)进行电费计费.其优点是:只要使用专用的电能表,IC卡就能通用,通用性强;硬件成本不高;其缺点是:数据保密性不强.其典型型号有:

AT24C01A/02/04/08/16/32/64二线串行E2PROM;

AT93C46/56/66三线串行E2PROM;

Microchip24LC01A/02/04/08/16/32/65二线串行E2PROM;

方案三:采用逻辑加密存储卡作为本系统的存储媒介

加密存储器卡(Securitycards接触型)内嵌芯片在存储区外增加了控制逻辑.在访问存储器前,需要核对密码.只有密码正确,才能存取数据.允许连续密码核验的错误次数很少(一般在十次以内),可以有效防止非法试探.若在限定的次数密码仍不对,则卡片死锁作废.利用微机控制专用读写器对IC卡进行数据操作(对卡充值,更改资料…),通过电能表进行密码识别,读取IC卡上的数据(预存电费,已用电量…),进行电费计费.其优点是:只要使用专用的电能表,IC卡就能通用,通用性强;数据保密性强.缺点是:较以上二种方案成本过高.典型型号有:

AT88SC101内嵌带加密逻辑1K串行E2POM(一个应用区);

AT88SC102内嵌带加密逻辑1K串行E2POM(二个应用区)

SLE4404416位带内部PIN校验的智能E2POM;

SLE44281K字节E2POM,带写保护和可编程密码;

1.1.4方案四:采用CPU卡作为存储媒介

CPU卡(SMARTCARDS接触型)内嵌芯片相当于一个特殊类型的单片机,内部除了带控制器,存储器,时序控制逻辑外,还带有算法单元和操作系统.IC卡本身可以完成所有的数据操作,其保密性更强.其特点是存储容量大,处理能力强,信息存储安全等特性,因此,被广泛应用于信息安全性要求特别高的场合.其典型型号有:

MC68HC05SC011.8KROM/36字节RAM/1KEPROM/无E2POM;

MC68HC05SC216KROM/128字节RAM/无EPROM/3KE2POM;

MC68HC05SC266KROM/224字节PAM/无EPROM/1KE2POM;

MC68HC05SC2716KROM/240字节PAM/无EPROM/3KE2POM;

MC68HC05SC2813KROM/240字节PAM/无EPROM/8KE2POM;

MC68HC05SC2913KROM/512字节PAM/无EPROM/4KE2POM;

1.1.5方案五:采用射频CPU卡

射频CPU卡(RFCPU非接触型)的信息存取是通过无线电波来完成的,主机与射频卡之间没有机械触点,其内嵌电路除了存储单元,控制逻辑外,还有电源和射频收发电路.这类卡主要用于存取频繁,可靠,安全要求特别高的场合.其优点是:IC卡与读写器无需接触,减少了机械磨损,卡的使用寿命很长,使用方便,其缺点是:读卡器电路复杂,设计成本高.其典型型号有:

型号

程序存储器容量(KB)

RAM容量(B)

AT88SC51

4

128

AT88SC52

8

256

AT88SC53

12

256

AT88SC54

16

256

AT88SC54C

16

256

AT88SC55

20

512

较以上五种方案,方案三采用逻辑加密存储卡作为数据媒,方案四采用CPU卡优于方案一和方案二.但是此方案中的逻辑加密存储卡极难买到,而且其加密,解密过程过于复杂,非有专业知识较难实现.方案四中采用CPU卡,虽然电路简单,成本亦不高,但是IC卡的内部数据处理过程较复杂,设计无需采用该类IC卡,而射频CPU卡由于电路复杂,成本较高,调试较困难,根据本设计的特点和比较各种方案的可行度等因素,决定采用方案二选用存储卡作为数据存储媒介,其数据保存,传输与方案三中基本相同,设计电路简单.保密性通过程序加密完成,在设计中,以非加密存储器卡作为售电的传输媒质,具体型号是ATMEL公司的AT24C01A,二线串行E2POM.用VC++再微机上编制相应的售电管理系统,配以相应的读卡器实现对IC卡的初始化,卡号识别,充值等操作.

第二章:IC卡系统设计与实现

IC卡介绍

2.1.124C01的基本原理:

24C01的特点是单相电源供电,工作电压范围宽:2.5~5.5V;低功耗CMOS技术(100KHZ,2.5V和400KHZ,5V兼容),自定时写周期(包含自动擦除),页面写周期的典型值为2ns,具有硬件写保护.

器件型号24C01的结构和引脚如图所示:

其中:SCL---串行时钟端

SDA---串行数据端

WP---为写保护,当WP为高电平存储器只读;当WP为低电平时存储器可读可写.

A0,A1,A2---片选或块选

SDA为漏极开路端,需接上拉电阻到VCC.数据的结构为X8位.信号为电平触发,而非边沿触发.输入端内接有滤波器,能有效抑制噪声.自动擦除(逻辑"1")在每一个写周期内完成.

24C01采用I2C规程,运用主从双向通信.器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器.主器件(通常是微控制器)和从器件可工作与接收器和发送器状态.总线必须有主器件控制,主器件产生串行时钟(SCL),控制总线的传送方向,并产生开始和停止条件.串行E2PROM为从器件.无论主控制器,还是从控制器,接受一个字后必须发出一个确认信号ACK.

开始和停止位控制总线有效.操作在开始位控制下开始,再停止位控制下结束.开始位为SCL为低,SDA由高到低变化.停止位为SCL为高时,SDA由低到高变化.

当SCL为高时,数据稳定有效,在SCL脉冲的低电平期间数据SDA改变,变为所传输的数据位.对每一个SCL脉冲,只能传送一位数据.

2.1.2控制字节要求:

开始位以后,主器件送出8位控制字节.控制字节的结构(不包括开始位)如下所示:

1010

A2A1A0

R/W(1/0)

I2C从器件地址

片选信号

读写控制位

说明:

(1).控制字节的第1~4位为从器件地址位(存储器为1010).控制字节中的前4为码确认器件的类型.此4位码右飞利浦公司的I2C规程所决定.1010码即为从器件为串行E2PROM的情况.串行E2PROM将一直处于等待状态,直到1010码发送到总线上为止.当1010码发送到总线上,其他非串行E2PROM从器件将不会影响.

(2).控制字节的第5~7位为1~8片的片选或存储器内的块地址选择位.此三个控制位用于选片或者内部块选择.此处24C01内部无连接.

器件

容量

(Kbit)

内部块数

页面字节

控制字(位)

引脚

A2A1A0

A2A1A0

24LC01B,24C01

1

1

8

XXX

内部无连接

A2,A1,A0引脚无内部连接,这三位无关紧要;作为器件选择的,可接高电平或低电平.

(3).控制字节第8位为读,写操作控制码,如果此位为1,下一字节进行读操作(R);此字节为0,下一字节进行写操作(W).

当串行E2PROM产生控制字节确认位以后,主器件总线上将传送相应的字地址或数据信息.

2.2读卡器基本原理及设计

2.2.1确认要求:

在每一个字节接收到后,接收器件必须产生一个确认信号位ACK.主器件必须产生一个与此确认位相应的额外时钟脉冲.若不在从器件输出的最后一个字节中产生确认位,主器件必须发一个数据结束信号给从器件.在这种情况下.从器件必须保持数据线为高电平(用ACK表示),使的主器件能产生停止条件.

2.2.2写操作:

1.字节写:

在主器件发出开始信号以后,主器件发送写控制字节即10101A2A1A00(其中R/W控制位为低电平"0").指示从接收器被寻址,由主器件发送的下一个字节字地址将被写入到24C01的地址指针.主器件接受来自24C01的另一个确认信号以后,发送数据字节,并写入到寻址的存储器地址.24C01再次发出确认信号,同时主器件产生停止条件P启动内部写周期.在内部写周期内24C01将不产生确认信号.如下图:

2.页面写:

如同字节写方式,先将写控制字节,字地址发送到24C01,接着发N个数据字节,主器件发送不多于一个字节的数据字节到24C01,这些数据字节暂时存在片内页面缓存器中,在主器件发送停止信号后写入常数.如果主器件在产生停止条件以前要发送多于一页字的数据,地址计数器将会循环,并且先接收到的数据将被覆盖.象字节写操作一样,一旦停止条件被接收到,则内部写周期将开始.见下图:

3.写保护

当WP端连接到VCC,24C01可被用做串行ROM,编程将被禁止,且整个存储器写保护.

2.2.3读操作:

当从器件地址的R/W位被置为"1",启动读操作.存在三种基本读操作类型;读当前地址内容,读随意地址内容.

1.读当前地址内容:

24C01片内包含一个地址计数器,此地址计数器保持被存取的最后一个字的地址,并在片内自动加1.因此,如果以前存取(读或者写操作均可)的地址为N,下一个读操作从N+1地址中读出数据.在接收到从器件的地址中R/W为1的情况下,24C01发送一个确认位,并且送出8位数据字.主器件将不产生确认位(相当于产生ACK),但产生一个停止条件.24C01不再继续发送.见下图:

2.读随意地址内容:

这种方式允许主器件读存储器任意地址内容,操作如下图表示:

主器件发出1010A2A1A0后发W位,再发读的存储器地址,在接收到从器件的确认位ACK后产生一个开始条件S,以结束上述写过程,再法一个读控制字节,从器件24C01在发ACK信号后发出8位数据,主器件发ACK后发出一个停止位,24C01不再发后续字节.

3.读顺序地址内容:

读顺序地址内容的方式与读随意地址内容的方式相同,只是在24C01发送第一个字节以后主器件不发ACK和STOP.而是发ACK确认信号,控制24C01发送下一个顺序地址的8位数据字,直到X个数据读完.见下图表示:

4.防止噪声:

24C01使用了一个VCC门检测器电路.在一般条件下,如果VCC低于1.5V,门检测器对内部擦,写逻辑不使能.

SCL和SDA输入端接有施密特触发器和滤波器电路,即使在总线上有噪声存在的情况下它们也能抑制噪声峰值以保证器件正常工作.

第三章:系统硬件设计与实现

3.1标准异步串行通信接口技术

3.1.1RS-232C总线标准接口:

RS-232标准接口的全称是:"使用二进制进行交换的数据设备和数据通信设备(DCE)之间的接口".计算机,外设,显示终端等都属于数据终端设备,而调制解调器则是数据通信设备.RS-232在通信线路中的连接的方式如下图所示:

"RS-232C"中的RS是RECOMMENDEDSTANDARD的缩写.232是标识符,C表示此标准修改了三次(原来有过RS-232A,RS232-B标准)

RS-232C定义了20根信号线,其中最常用的信号线的定义,分类及功能见下表:

引脚号

信号名称

简称

方向

信号功能

1

保护地

-

-

接设备外壳,安全地线

2

发送数据

TXD

DCE

DTE发送串行数据

3

接收数据

RXD

DTE

DTE接收串行数据

4

请求发送

RTS

DCE

DTE请求切换到发送方式

5

清除发送

CTS

DTE

DCE以切换到准备接收(清除发送)

6

数传设备就绪

DSR

DTE

DCE准备就绪

7

信号地

-

-

信号地

8

载波检测(RLSD)

DCD

DTE

DCE已接收到远程信号

20

数据终端就绪

DTR

DCE

DCE准备就绪

22

振铃指示

RI

DTE

通知DTE,通信线路以妥

电气特性:

由于RS-232C是早期(1969年)为促进公用电话网络进行数据通信而制定的标准,其逻辑电平是对地对称的,与TTL,MOS逻辑电平完全不同.逻辑0电平为+5V~+15V之间,逻辑1电平为-5V~-15V之间,因此,RS-232C驱动器与电平连接必须经过电平转换.

RS-232C由于发送器和接收器之间具有公共的信号地,不能使用双端信号,因此,共膜噪声会耦合到信号系统中,这是迫使RS-232C使用较高传输电压的主要原因.即使如此,该标准的信号传输速率也只能达到20KB/S,而且最大距离仅15M.只有在这种条件下才能可靠地进行数据传输.下表列出了RS-232C的主要电器性能:

不带负载时驱动器输出电平V0

<25V(-25~+25V)

负载电阻RL范围

3~7K

负载电容(包括线间电容)CL

+3V

传号(MARK)或逻辑"1"时

驱动器输出电平

-5~-15V

在负载端

<-3V

输出短路电流

<0.5A

驱动器转换速率

<30V/us

驱动器输出电阻R0

<300)(在断电条件下测量)

3.1.2RS-232C总线标准连接系统:

当计算机与终端之间利用RS-232C作近程连接时,这时有几根线实现交换连接.

下图为计算机与读写器(终端)之间利用RS-232C连接的最常用的交叉连线图.图中"发送数据"与"接收数据"是交叉相连的,使得两设备都能检测出对方是否已经准备好.

3.1.3MAX232芯片及接口电路:

MAX232芯片介绍:

MAX232芯片是MAXIM公司生产,包行两路接收器和驱动器的IC芯片,适用于各种EIA-232C和V.28/V.24的通信接口.MAX232芯片内部有一个电压变换器,可以把输入的+5V电源电压变换成为RS-232C所输出电平所需的10V电压.所以,采用此芯片的串行通信系统只需单一的+5V电源就可以了.对于没有12V电源的场合,其适用性更强.

MAX232芯片的引脚结构如图:

实际RS232接口电路:

在实际中,器件对电源噪声很敏感.因此,VCC必须对地加去耦电容C5,其值为0.1F.电容C1,C2,C3,C4取同样数值的钽电解电容1.0F/16V,用以提高抗干扰能力,再连接时必须尽量靠近器件.

注意:如使T1IN接单片机的发送端TXD,则PC机的RS-232的接收端RSD一定要对应接T1OUT引脚;同时,R1OUT接单片机的RXD引脚,PC机的RS-232的发送端TXD对应接R1IN引脚,其接口电路如下图:

3.289C51与24C01通信的硬件设计

3.2.189C51与24C01通信的硬件电路图(见附图)

图为89C52微控制器与24C01串行EEPROM的典型连接.图中P1.6提供24C01的时钟SCL,P1.7和24C01内部进行数据传送,A2A1A0内部无连接,为无关位.

注意:图中的WP为EEPROM的写保护信号,高电平有效,因为我们要进行写入操作,所以只能把它接低电平.

第四章:系统软件设计与实现

4.1模拟I2C总线数据传输编程:

24C01系列是采用I2C接口的串行EEPROM器件.而51系列单片机大多无I2C总线接口功能,这就要靠软件来模拟了.

I2C总线在标准方式下的最高时钟频率为100KHZ,时钟信号最小时端为4.7S,高电平时端不得小于4S,这就决定了器件的最大传送率不大于10KB/S.可用展宽TLOW的办法来降低数据传送率.

用普通I/O线模拟I2C总线数据传送时,必须遵从定时规范.下图绘出了启动,停止,发送应答ACK("0"数据位)以及发送反态应答位("1"数据位)的时序规范.

常用程序段编程:

4.1.1产生起始位和停止位:

如果单片机所用晶体振荡器的频率为6MHZ,则每个周期为2S根据上图的(A),(B),我们可分别写出产生时钟SCL和SDA的发送起始条件和停止条件两段子程序.本设计中晶体频率并非6MHZ,而是使用12MHZ的晶振频率,则要相应增加各程序段中NOP指令的条数,NOP指令应增至4条以满足时序的要求.

(A).发送起始条件STAT(B).发送停止条件STOP

STA:SETBP1.7STOP:CLRP1.7

SETBP1.6SETBP1.6

NOPNOP

NOPNOP

NOPNOP

NOPNOP

CLRP1.7SETBP1.7

NOPNOP

NOPNOP

NOPNOP

NOPNOP

CLRP1.6CLRP1.7

RETRET

4.1.2发送应答位和反态应答位子程序:

如上图(C),(D)编出ACK和ACK的发送子程序:

(A).发送应答位ACK(B).发送反态应答位ACK

MACK:CLRP1.7MNACK:SETBP1.7

SETBP1.6SETBP1.6

NOPNOP

NOPNOP

NOPNOP

NOPNOP

CLRP1.6CLRP1.6

SETBP1.7CLRP1.7

RETRET

4.1.3应答位检查子程序:

在I2C中总线数据传送中,接收器收到发送器传送来的一个字节后,必须向SDA线上返送一个应答位ACK,表明此字节已经收妥.本子程序使单片机产生一个额外的时钟(第九个时钟脉冲,在脉冲的高电平期间读ACK应答位,并将它的状态被复制到FO标志中以供检查.若有正常ACK,则FO标志为0,否则为1.

CACK:SETBP1.7;P1.7作为输入

SETBP1.6;第9各时钟脉冲开始

NOP

MOVC,P1.7;读SDA线

MOVFO,C;转存入FO中

CLR;时钟脉冲结束

NOP

RET

4.1.4字节数据发送子程序:

由于是SDA接在并行口,无移位寄存器,因此数据通过指令完成移位在从P1.7串行输出.遵循时序要求数据在时钟低电平时变化,高电平时稳定,每一个时钟脉冲传送一位,编写字节数据传送子程序.

该子程序的入口条件时待发送的字节位于累加器ACC中.

WRB:MOVR7,#8;位计数器初值

WLP:RLCA;欲发送位移入C中

JCWR1;此位为1,转入WR1

CLRP1.6;此位为0,发送0

SETBP1.7;时钟脉冲变为高电平

NOP;延时

NOP

NOP

NOP

CLTP1.6

DJNZT7,WLP

RET

WR1:SETBP1.7

SETBP1.6

NOP

NOP

CLRP1.6

CLRP1.7

DJNZR7,WLP

RET

4.1.5字节数据接收子程序:

该子程序的功能是在时钟的高电平时数据以稳定,读入一位,经过8个时钟从SDA线上读入一个字节数据,并将所读字节存于A和R6中.

RDB:MOVR7,#8;R7存放位计数器初值

RLP:SETBP1.7;P1.7输入

SETBP1.6;SCL脉冲开始

MOVC,P1.7;读SDA线

MOVA,R6;取回暂存结果

RLCA;移入新接收为位

MOVR6,A;暂存入R6

CLRP1..6;SCL脉冲结束

DJNZR7,RLP;未读完8位,转RLP

RET;8位读完,返回

4.1.6N个字节数据发送子程序:

子程序入口条件:

控制字节1010A2A1A0W以存放在片内RAM的SLA单元中.

待发送数据各字节已位于片内RAM以MTD+1为起始地址的N个连续单元中.

NUMBYT单元中存有欲发送数据的字节数.

24C01接收到数据的存放首址存放在片内RAM和MTD单元.

WRNBYT:PUSHPSW;保护现场

WRNBYT1:MOVPSW,#18H;改用第3组工作寄存器

CALLSTA;发起始条件

MOVA,SLA;读写控制字节

CALLWRB;发送写控制字节

CALLCACK;检测应答位

JBFO,WRNBYT;无应答位,重发

MOVR0,#MTD;有应答位,继而发数据,第一个数据为首址

MOVR5,NUMBYT;R5存读数据字节数

WRDA:MOVA,@R0;读一个字节数据

LCALLWRB;发送此字节

LCALLCACK;检测ACK

JBFO,WRNBYT1;无ACK,重发

INCRO;调整指针

DJNZR5,WRDA;尚未发完N个字节,继续

LCALLSTOP;全部数据发完,停止

POPPSW;恢复现场

RET;返回

4.1.7读,写数据程序:

从24C01的当前地址开始读出N个字节数据存入片内RAM以MRD为首地址的N个单元中.

这段子程序的入口条件:

片内RAM中的SLA单元存有1010A2A1A0R读控制字节.

NUMBYT单元中存有欲接收数据的字节数

子程序的出口条件:

所读完的数据将存入片内RAM以MRD为首地址的N个连续单元内.

RDNBYT:PUSHPSW;发送起始条件

RDNBYT1:MOVPSW,#18H;读入读控制字节

LCALLSTA;发送读控制字节

MOVA,STA;检测ACK

LCALLWRBYT;无ACK,重新开始

LCALLCACK;接受数据缓冲区指针

JBFO,RDNBYT1;读一个字节

MOVR1,#MRD;存入接收数据缓冲区

GO-ON:LCALLRDB;未全接收完,转ACK

MOV@R1,A;以读完所有字节,发ACK

DJNZNUMBYT,ACK;发停止条件

LCALLMNACK

LCALLSTOP

POPPSW

RET

ACK:LCALLMACK;发ACK

INCR1;调整指针

AJMPGO-ON;继续接收

4.2系统软件程序流程图

4.2.1PC机通讯软件框图:

4.2.2单片机通讯软件框图:

附录一:

附录二参考文献

[1]康华光编.电子技术基础―模拟部分.第四版.北京:高等教

育出版社,1992年

[2]康华光编.电子技术基础―数字部分.第四版.北京:高等

教育出版社,1992年

[3]邱关源编.电路.第三版.北京:高等教育出版社,1989年.

[4]蔡美琴.张为民.沈新群.张荣娟主编.MCS-51系列单片机系

统及应用.第一版,北京:高等教育出版社,1992年.

[5]李朝青编.PC机及单片机数据通信技术.北京:航空航天大

学出版社,

[6]王卓人.邓晋钧.刘宗祥编.IC卡的技术与应用.电子工业出

版社,1999年.

[7]丁元杰主编.单片微机原理及应用.第二版.北京:机械工

业出版社,2000年.

[8]刘乐善主编.微型计算机接口技术及应用.华中理大学出版

社,

[9]周明德主编.微型计算机系统原理及应用.第三版.北京:清华大学出版社,1998年.

[10]王爱英.智能卡技术――IC卡[M].北京:清华大学出版社,2000

基于IC卡预付费电子电能表系统设计与实现

第页共29页

接收数据

发送数据

RXD

TXD

接收数据

发送数据

TXD

RXD

屏蔽地

数据终端就绪

数据终端就绪

数据终端就绪

数据终端就绪

信号线