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

安全保护电路,利用AT89C51可编程的1/O中断口接到水表的外封装上实现保护。使封装完好时I/O线相当于接地,为低电平,一旦封装被非法打开,I/O线就不与地连接,其电平变为高电平,此时CPU将发生安全保护中断,立即关断电磁阀中断供水。这样就能有效地防止私拆或恶意破坏水表的事件发生。

(3) 通信接口电路

通信接口电路,利用AT89C51的串行通信口,选用MAX2338芯片形成485接口电路。外部数据读取设备可通过水表的485接口,将水表的数据读出,实现自动抄表功能。

第4章 系统各模块软件设计

4.1 IC卡读写软件设计 4.1.1 H6152内部寄存器

H6152内部的EEPROM可以分为两部分,32*6B的密码存储器和20B的功能寄存器。密码寄存器可以由用户设置,作为访问Mifarel卡的快速密码访问区,可以保存密码A和密码B类型的预设密码。功能寄存器用于设置通信波特率、通信类型等信息其地址分配和功能如表4.1所示:

表4.1 H6152内部功能寄存器

地址 00H~03H 04H 05H 功能 说明 32位设备序列号 用于保存出厂时又厂商设定的唯一设备序列号 当前设备ID 通信协议设定 用于保存多机通信时当前设备的ID号 用于设定H6152的通信协议和上电复位后的工作状态 06H O7H~0FH 10H~13H 波特率设定 保留 用户数据 用于设定H6152的通信速率 保留无法使用 可以由用户设定,用于保存用户信息 (1)04H(当前设备ID)

当MCU和多个读写模块组成多机串行总线网络时,该寄存器用于保存当前设备的ID号,作为设备的地址。ID的实际取值范围为1~254,因为0和255分别用于标识主控制设备和“getID”申请。默认情况下,该寄存器值为01H,当H6152使用ASCII通信协议时,该字节无效。

(2)05H(协议配置寄存器)

MSB LSB

保留 保留 保留 Cont.mode Binary timeout Extend ID Binary Autostart Cont.Mode为用于“连续读”模式下工作范围内存在多张Mifarel卡时的卡片识别控制。该位为0时,“连续读”模式仅用于天线有效范围内只有一张Mifarel卡的情况,当天线有效范围内出现多张卡时,读写模块会根据卡片的位置选择其中一张并返回其序列号;该位为1时,“连续读”模式在工作范围内出现多张Mifarel卡同样正常工作。该位默认值为0。

Binary timeout位为0时,Binary(比特流)通信协议下不开启超时控制;为1时开启超时控制。该位默认值为0。

Extend ID位为0时,执行“c” “s” “m”命令时,传送Mifarel卡序列号前不传送卡片类型字节(TAGID);为1时,传送Mifarel卡序列号前先发送1B卡片类型。TAGID的值可以为01H、02H、03H和FFH,其中,FFH表示未知卡片。该位默认值为0。

Binary位用于设定读写模块使用的通信协议类型。为0时,使用ASCII通信协议;为1时,使用Binary通信协议。该位默认值为0。

Autostart位为0时,H6152在上电复位后自动进入“连续读”模式(即读写模块反复与工作范围内的Mifarel卡进行通信,读取其序列号);为1时仅在读写模块接收到“c”命令时才进入“命令”模式。由于Binary通信协议下不支持“c”命令,如果使用Binary协议进行通信,该位内容将被忽略。该位的默认值为1。 (3)06(波特率选择)

用于设定H6152的通信速率,其内容如下:

MSB LSB

保留 保留 保留 保留 保留 保留 BS1 BS0 06的低2位BS1和BS0用于设定H6152的通信速率,如表4.2所示:

表4.2 H6152的通信速率设定

BS1 0 0 1 1 BS0 0 1 0 1 通信速率(bps) 9600 19200 38400 57600 默认状态下,H6152的串行格式为8位数据位、无校验、1位停止位、通信速率9600bps

4.1.2 H6152通信协议与控制命令

默认状态下,单片机需要使用“9600,n,8,1”方式与H6152进行串行通

信。H6152支持两种串行异步通信协议:ASCII协议和Binary(比特流)协议。ASCII协议应用在MCU控制一个H6152的情况,Binary协议用于多个Mifare读写模块与Mcu组成的串行通信网络,在此我们只采用一个读写模块,采用简洁的ASCII协议。

ASCII通信 协议的帧结构如下:

命令(1~2字节) 数据(N字节) 一帧的内容实际上就是一个字符串,其中,命令不分通常为1~2个字节,根据命令的不同后面跟随的数据内容和长度也不相同,N字节的数据部分需要将待传送的数据转化为十六进制后以ASCII形式发送。

H6152提供了各项控制命令下面介绍本设计所应用到的一些命令(只考虑ASCII模式)。

(1) Reset(系统软复位)