基于i2c协议的eeprom读写功能实现(编辑修改稿)内容摘要:
的命令。 2. 确认 查询 在写周期期间器件不会对命令作出确认,这可用来确定写周期何时完成(这个特点可以优化总线的吞吐量,使其最大化)。 如果主器件已经发出写命令的停止条件,器件将启动内部定时写周期。 可以随时进行确认查询。 这包括在主器件发出起始条件后,再发送用于写命令( R/W = 0)的控制字节。 如果器件仍处在写周期内,则不返回确认信号。 一旦没有返回确认信号,起始位和控制字节必须重新发送。 如果写周期结束,器件返回确认信号,主器件就可以执行下一个读或写命令。 参见流程图( 图 9)。 3. 读操作 读数据过程: 1) 主控在检测到总线空 闲的状况下,首先发送一个 START 信号掌管总线; 2) 发送一个控制字节(包括 7 位器件地址码和一位 R/W);(某些器件的地址字节可能带有其他功能) 3) 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号( ACK); 4) 主控收到 ACK 后释放数据总线,开始接收第一个数据字节; 5) 主控收到数据后发送 ACK 表示继续传送数据,发送 NACK 表示传送数据结束; 6) 主控发送完全部数据后,发送一个停止位 STOP,结束整个通讯并且释放总线; 图 4 页写入 操作 基于 I2C 协议 EEPROM 读写功能的实现 8 除了控制寄存器的 R/W 位设置为‘ 1’外,读操作与写操作基本相同。 有 三种基本的读操作:当前地址的读操作、随机读操作和连续读操作。 ( 1) 当前地址的读操作 当前地址的读操作, 被控器件内部储存器地址计数器保留最后一次访问的地址。 24XX 内置一个自动加‘ 1’地址计数器,该计数器保留最后一次访问的地址。 因此,如果先前对地址‘ n’( n 为任意合法地址)进行读或写操作,则下一条读操作命令将可能从地址n+1 访问数据。 接收到 R/W 位设置为‘ 1’的控制字节后, 24XX 发出确认信号,并发送 8 位数据字节。 主器件不会对数据传输作出确认,但会产生停止条件, 24XX 即停止数据发送( 图 5) ( 2) 随机读操作 随机读操作允许主器件以随机方式访问任意存储器 , 主控器件先发写命令,然后发要读的地址,然后发读命令。 执行该指令前必须先设置地址字节。 作为写操作的一部分,通过发送字节地址给 24XX 来完成地址字节的设置( R/W 设置为‘ 0’)。 字节地址发送完后 ,主器件一接收到确认信号即产生起始条件。 内部地址计数器设置完之后写操作即被终止。 主器件再次发送控制字节,而该字节中 R/W 位设置为‘ 1’。 之后 24XX 会发出确认信号, 并发送 8 位数据字节。 主器件不会对数据传输作出确认,但会产生停止条件, 24XX 即停止数据发送(图 6)。 在随机读取命令之后,内部地址计数器加 1 指向下一条地址。 图 5 当前地址读操作 基于 I2C 协议 EEPROM 读写功能的实现 9 ( 3) 连续读操作 连续读操作的起动过程和随机读操作相同,只是在 24XX发送完第一个数据字节后,主器件发出确认信号,而在随机读操作中发送的是停止条件 ,在连续读操作时 被控器件完成一个读字节操作后内部地址计数器自动加一。 确认信号指示 24XX 器件发送下一个连续地址的数据字节(图 7)。 在 24器件向主器件发送完最后一个字节后,主器件不会产生确认信号,而是产生停止条件。 为了可以进行连续读操作, 24XX 器件内置了一个地址指针,在每次操作完成后该指针加 1。 地址指针允许一次操作连续读取整个存储器的内容。 在达到最后一个地址字节后,地址指针将翻转到地址 0x00。 图 6 随机 读操作 图 7 连续 读操作 基于 I2C 协议 EEPROM 读写功能的实现 10 六. 具体设计过 程 1. 程序流程图 启动 I2C 总线 发送控制字节 检测应答信号 ACK 发送第一个数据字节 检测应 答信号 ACK 继续传送数据 发送停止位,释放 I2C 总线 完成数据的写操作 传送数据结束 N Y N Y 图 8 写数据的流程图 基于 I2C 协议 EEPROM 读写功能的实现 11 发送写命令 发送停止条件 以启动写周期 发送起始位 发送控制字节 (其中 R/W = 0) 下一步操作 器件确认否。 ( ACK = 0)。 N Y 图 9 确认查询流程图 基于 I2C 协议 EEPROM 读写功能的实现 12 2.系统组成模块结构及功能 ( 1)函数定义 函数定义是对各个基础函数的定义 ,并且设置需要运用的信息,便于调用 include include include define DELAY_TIME 60 /*延时时间 */ define TRUE 1/*设置 ACK*/ define FALSE 0/*定义 0为错误 */ 启动 I2C 总线 发送控制字节 检测应答信号 ACK 释放总线,接收第一个数据字节 检测应答信号 ACK 继续接收数据 发送停止位,释放 I2C 总线 完成数据的读操作 传送数据结束 N Y N Y 图 10 读数据流程图 基于 I2C 协议 EEPROM 读写功能的实现 13 sbit SCL=P1^7。 sbit SDA=P1^6。 /*假设由 */ void DELAY(unsigned int t) /*延时函数 */ void I2C_Start(void) /*启动 I2C总线 */ void I2C_Stop(void) /*终止 I2C总线 */ void SEND_0(void) /* 设置时钟, 发送 0,在 SCL为高电平时使 SDA信号为低 */ void SEND_1(void) /* 设置时 钟, 发送 1,在 SCL为高电平时使 SDA信号为高 */ bit Check_Acknowledge(void) /*发送完一个字节后检验设备的应答信号 */ void WriteI2CByte(char b)reentrant/*向 I2C总线写一个字节 */ char ReadI2CByte(void)reentrant/*从 I2C总线读一个字节 */ void Write_One_Byte(char addr,char thedata) /*字节写入函数 */ void Write_A_Page(char *buffer,char addr) /*页写入函数 */ char Read_One_Byte(char addr) /*随机读函数 */ void Read_N_Bytes(char *buffer,char n,char addr) /*顺序读函数 */ ( 2)主函数 mai。基于i2c协议的eeprom读写功能实现(编辑修改稿)
相关推荐
参考文献 [1]柴卫华 .新型数字温度传感器 DS18B20 组成的温度巡检系统 [J].传感器世界 ,2020. [2]潘笑 ,高玉玲 ,康亚娜 .基于模糊 PID 的 AT89S52 单片机智能温度控制系统 [J].兵工自动化 ,2020. [3]赵国强 .基于嵌入式操作系统结构的污水处理控制系统 [J].国家期刊 ,. [4]白玉 ,于世明 .单片机在温控系统中的应用 [J]
何时如何与它们的容器进行交互作用。 容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及 容错性。 但这里值得注意的是, EJB 并不是实现 J2EE 的唯一途径。 正是由于 J2EE 的开放性,使得有的厂商能够以一种和 EJB 平行的方式来达到同样的目的。 ( 4) RMI(Remote Method Invoke):正如其名字所表示的那样, RMI 协议调用远程对象上方法。
IRC( Inter Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互 联网进行交谈和沟通。 随着互连网变得高度发达,即时通讯也变得远不仅仅是 聊天这么简单,自 从 1996 年第一个 IM 产品 ICQ 发明后, IM 的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在 IM 工具上实现,于是功能强大的 IM
中心,告知车辆遭受外部侵入或盗窃,以便车主即时的采取防范措施。 此外,还可以通过无线网络对车载通讯装置的讯号进行基站搜索来确定车辆的位置。 这样更容易寻找到被盗汽车。 汽车远程控制防盗报警系统集 GSM 无线通信技术、计算机控制技术、数据采集技术于一体。 汽车防盗传感器进行状态检测。 一旦检测到有效信号经 A/ D转换后输入到微处理器中进行处理和判断。 其评判结果经 GSM
经过的时间,求解用户的三维运动速度。 以上定位原理说明,用 GPS技术可以同时实现三维定位与接收机时间的定时。 一般来说 ,利用 C/A码进行实时绝对定位,各坐标分量精度在 5l0m左右,三维综合精度在 1530m左右。 利用军用 P码进行实时绝对定位,各坐标分量精度在 13m左右,三维综合精度在 36m左右。 利用相位观测值进行绝对定位技术比较复杂,目前其实时或准实时各坐标分量的精度在 ,事后
第 7 页 西华大学课程设计说明书 4 控制系统硬件设计 混合液系统控制主电路图如图 41 所示。 图 41 混合液位控制系统主电路图 控制柜的安装布置设计 控制柜的面板和内部安装布置如下图所示。 图 4— 2 混合液位控制系统面板及内部电路 第 8 页 西华大学课程设计说明书 5 控制系统软件设计 自动控制程序的 执行对硬件可靠性的要求是很高的,如果机械限位开关、机械开关