翻斗量油仪的设计
8Fh 8Eh WP 0 0 0 0 0 0 0 小时的寄存器(84h.85h)的位是用于定义DS1302是12小时制还是24小时制。当选为高时,12小时模式,位5为1时,是PM。当该位为低时,选择的是24小时模式,同时,位5是第二个10小时位。
秒寄存器(81h,80h)的位7定义为时钟暂停标志(CH)。当该位为1时,时钟停止振荡。DS1302处于低功耗模式。该位为0时,时钟开始振荡。
控制寄存器(8Fh,8Eh)的位7为保护位。其他7位均志为0.在任何对ds1302的RAM写前,该位必须为0.当WP为1时,写保护位禁止所有的对1302的写操作。 2.2.3存储芯片的选择
我们用到的粗粗芯片是AT24C512
图11 AT24C512的引脚
1.AT24C512简介
由于量油记录的数据量较大。一个消息包含时间(年.月.日.时分秒),井号名称,翻斗的净容量,以及翻斗的次数,因此,单挑信息量达到了16字节。又由于要粗粗最近3个月的信息量。因此我们采用了容量较大的AT24C512。
AT24C512是ATMEL公司新近推出的具有I2C总线容量达512Kbit(64K×8)的E2PROM,该芯片的主要特性如下:存储容量为65536byte;与100kHz、400kHz、1MHzI2C总线兼容;100000次编程/擦写周期;单电源、读写电压为1.8V~5.5V;ESD保护电压>4kV;数据可保存40年;写保护功能,当WP为高电平时,进入写保护状态;CMOS低功耗技术,最大写入电流为3mA;128byte页写入缓存器;自动定时的写周期。 2.引脚功能:
SCL:串行时钟该引脚为一输入引脚,用于产生器件所有数据发送或接收的时钟。
SDA:串行数据/地址双向串行数据/地址引脚,用于器件所有数据的发送或接收。
SDA是1个开漏输出引脚,可与其它开漏输出或集电极开路输出进行线接。
WP:写保护当引脚WP连接到VCC时,所有存储数据变为写保护。当引脚WP接
第 22 页 共 48 页
硬件设计
VSS时,则允许器件进行正常读写操作。
A0,A1:器件地址输入这两个引脚为硬件连线或者不连接,通过连接VCC或VSS的组合可使单总线最多寻址4个AT24C512,当这些引脚没有连接时其默认值为0。
NC:该引脚悬空。
VCC,GND:电源引脚和接地引脚。 3.工作原理
由于AT24C512是I2C总线的,所以得严格按照时序要求来写程序。
图12 I2C起始停止信号
这是I2C总线的开始和停止控制信号。
图13 一个字节的写入时序
这是单字节的写入,应答时序。
图14 一个之间诶的读取时序
第 23 页 共 48 页
翻斗量油仪的设计
这是单字节的读入,应答,以及停止时序。
AT24C512的所有地址和数据都是以8位的形式串行传给存储器读出的。每次存储器都将在第九个时钟SCL周期时由SDA发零信号以对收到的8位数据进行应答。读或者写入的位数都是高位在前,低位在后。当EEPROM进入开始状态后,一般都需要一个8位的地址字来选择芯片以进行读写。器件地址字由5位0、1组成的命令字和2位地址选择位A1、A0以及一位读/写操作位构成。对于AT24C512,命令字为“10100”,同一串行总线上可以连接4个AT24C512器件,这些器件可以通过地址线A1,A0加以区分。如果只有一个AT24C512,那么A1、A0都取0.低位为1时表示读操作,为0表示操作。其格式如下:
表12 AT24C512地址控制寄存器
1 MSB 0 1 0 0 A1 A0 R/W LSB 同时,AT24C512外部引脚A1、A0也要相应的连接到VCC或者GND。 读写操作
写操作:AT24C512的写字节和写页两种方式,共64K*8bit。写字节时通常在想AT24C512发送设备的地址字并接到应答信号后,还需要发送2个8位地址来选择地址。AT24C512在接收到这个地址后,会应答一个0信号,然后根据CLOCK写8位数据到AT24C512.存储器接收到数据后会同样返回一个信号,写数据结束后,发出结束命令,AT24C512进入内部计时的写周期,这个内部写周期大约为5us,在写循环过程中,所有的输入都不能进行。知道写结束,EEPROM才能响应。AT24C512具有128字节作为一页的写页功能,可以一次性写入一页,写页的初始化过程与字节的方法基本相同。不同的是:当写页操作写入一个数据字节后,微控制器不发停止状态,而是在应答信号后接着输入127个字节.每一个字节接收完毕后,EEP—ROM照样输出一个零应答信号.因为一页只有128个单元,所以数据字的地址低7位在接收到一个字节后会自动加1,而高位地址不变,即页地址不变.若内部产生的地址达到了页的边界时,系统将回到页的开始进行写.如果一次要写的字节大于128字节,则最早写入的字节将被覆盖.图2为其写操作流程图.
第 24 页 共 48 页
硬件设计
图15 I2C操作时序
读操作:
读操作有当前地址读、随机读、读串三种方式.其初始化过程基本与写操作相同,只是在设备选择字中的最低位要改成读而已.在当前地址读操作方式时,内部数据的地址将保持在最后的读写操作地址加1上,OP只要芯片有电源供给,这个地址将一直保持着.直到读到EEPROM的最后字节后又回到最开始的位置.而随机读操作之前先要向EEPROM写入一个字节地址,然 后才能读.读串操作既可以是当前地址读,也可以是随机地址读.当微控制器接收到一个数据字后,会回应一个应答信号.EEPROM在接收到应答信号后会将地址加1,接着输出下一个字节.而当微控制器接收到数据但不回应答信号时,读过程结束. 2.2.4 U盘读写模块
我们采用的U盘读写模块是PB375A模块
第 25 页 共 48 页
翻斗量油仪的设计
图16 PB375A模块的引脚图
PB375是一款集成USB HOST、SD卡读写、文件系统。LDD等功能于一体的单芯片U盘/SD卡读写解决方案,相对于PB375,其增加了UART接口,内置5V转为3.3V的LDO,保留SD卡功能拓展接口,让您的开发更加简单,功能更加强大。
应用于嵌入式系统/单片机读写U盘、闪盘、闪存盘、USB移动硬盘、USB读卡器、等。
图17 系统的框图
第 26 页 共 48 页