毕业论文基于单片机的IC卡智能水表设计 下载本文

器的器件需要通过总线竞争获得主控权,并启动一次数据交换。

一个典型的I2C总线标准的IC器件,其内部不仅有I2C接口电路,还可将内部各单元电路划分成若干相对独立的模块,它只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。CPU可以通过指令对各功能模块进行控制,各种被控制电路均并联在这条总线上,所以每个电路和模块都有唯一的地址。在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器)。CPU发出的控制信号分为地址码和控制量(数据)两部分。地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C总线接口电路如图3.8所示。

图3.8 I2C总线接口电路

I2C总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并产生时钟脉冲,以允许与被寻址的器件进行数据传送。被寻址的器件,称为从器件。一般来讲,任何器件均可以称为从器件,只有单片机才能称为主器件。

主、从器件对偶出现,工作在接收还是发送数据方式,由器件的功能和数据传送方向所决定。

传统的单片机串行接口的发送和接收一般都分别各用一条线,而I2C总线则根据器件的功能通过软件程序使其工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器,而当其从主线上接收信息时,又成为接收器。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I2C总线的控制完全由挂在总线上的主器件送出地址和数据决定,在总线上,既没有中心机也没有优先级。

总线上主和从(即发送和接收)的关系取决于此时数据传送的方向。SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到电源端。连接总线器件的输出级必须是集电极或漏极开路,以具有线“与”功能,当总线空闲时,两根线都是高电平。I2C总线上数据的传输速率在标准模式下可达100kb/s,在快速模式下可达400kb/s,在高速模式下可达3.4Mb/s。连接到总线的接口数量只由总线电容是400pF的限制决定。

3.3.2 AT24C01简介

AT24C01是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10 000次)、写入速度快(小于10ms)等特点。AT24C01中带有片内寻址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的操作。所有字节都以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8字节的数据。图3.9为AT24C01的引脚图。各引脚功能如下:

图3.9 AT24C01的引脚图

SCL:串行时钟。在该引脚的上升沿时,系统将数据输入到每个EEPROM器件,在下降沿时输出。

SDA:串行数据。该引脚为开漏极驱动,可双向传送数据。 A0~A2:器件/页面寻址。为器件地址输入端。

Wp:硬件写保护。当该引脚为高电平时禁止写入,为低电平时可正常读/写数据。

Vcc:电源。一般输入+5V电压。 Vss:接地。

3.3.3 硬件原理图

记忆单元硬件原理图如图3.10所示。利用单片机AT89C51与24C01进行I2C通信,实现对某一地址内数据的读/写校验操作。

图3.10记忆单元硬件原理图

3.4 电磁阀控制电路

电磁阀选用脉冲式电磁阀,为以色列BERMAD公司出品,其控制电路原理如图3.11所示。这种电磁阀在开启时只需在其控制线AB两端加一正向脉冲(幅度DC12V宽度大于20 ms),水阀一旦开启则会自动保持。当关断时则在AB两端加一反向脉冲,水阀就会关闭。因为这种电磁阀开启后不需给电磁阀持续供电,所以它的功耗非常低,因而特别适合用在IC卡水表中作为水表开启送水或欠费停水的执行单元。电路设计上采用多路模拟开关组合成一组双刀双掷开关,在AT89C51的控制下,将正脉冲或负脉冲加到电磁阀的控制线AB两端。

A+ Vcc+ Vcc- B- 脉 冲 电 磁 阀 图3.11 电磁阀控制电路图

3.5 其它模块电路

(1) 脉冲提取电路

脉冲提取电路,用于提取IC卡水表的计量脉冲。可在原有的老式湿式水表加入磁针和干簧管,磁针随着用水的流动而旋转使得干簧管动作发出开关信号,作为计量信号。也可以利用干式磁传水表已有的开关信号输出,作为计量信号。

(2) 安全保护电路