一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种7位寻址模式I2C控制器访问任意容量存储器的方法与流程

2022-04-14 03:21:00 来源:中国专利 TAG:

一种7位寻址模式i2c控制器访问任意容量存储器的方法
技术领域
1.本发明公开一种7位寻址模式i2c控制器访问任意容量存储器的方法,涉及通讯技术领域。


背景技术:

2.i2c通讯协议(inter-integrated circuit)是由philips公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要uart、can等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(ic)间的通讯。i2c是一种双线总线,包括sda(serialdata-串行数据线)和scl(serialclock
ꢀ‑
串行时钟线),通过这两条线,系统元器件之间可以相互通讯。
3.i2c总线从寻址范围上划分有7位地址模式和10位地址模式。i2c数据传输的过程中,数据帧的大小固定为8位的字节,高位先发送。i2c通讯协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。
4.常见的i2c基本读写过程如下:所述写数据包括:若配置的方向传输位为“写数据”方向,如图1所示,广播完地址,接收到应答信号后,主机开始正式向从机传输数据(data),数据包的大小为8 位,主机每发送完一个字节数据,都要等待从机的应答信号(ack),重复这个过程,可以向从机传输n个数据,这个n没有大小限制。当数据传输结束时,主机向从机发送一个停止传输信号(p),表示不再传输数据。
5.所述读数据:若配置的方向传输位为“读数据”方向,如图2所示,广播完地址,接收到应答信号后,从机开始向主机返回数据(data),数据包大小也为8位,从机每发送完一个数据,都会等待主机的应答信号(ack),重复这个过程,可以返回n个数据,这个n也没有大小限制。当主机希望停止接收数据时,就向从机返回一个非应答信号(nack),则从机自动停止数据传输。
6.目前,采用7位寻址模式的i2c总线为辅助设备提供了7位地址线,最多只能访问128字节的物理空间。采用10位寻址模式的i2c总线为辅助设备提供了10位地址线,最多只能访问1k字节的物理空间。随着i2c总线应用场景的增加,不同应用下存储器的空间大小各异,i2c控制器已经不能满足这种需求。为此都在积极寻求突破方法,例如专利文献cn100416536c公开了《10位寻址模式i2c控制器访问大容量存储器的方法》,虽然解决了10位寻址模式访问超过1k字节的物理空间,但是其最多也地址扩展到15bit即访问极限为32k字节的物理空间,并且指令格式前3个字节固定为物理地址,增加了指令的设计长度。


技术实现要素:

7.为了要解决因寻址空间限制而无法寻址任意容量存储空间设备的技术问题,本发明公开一种7位寻址模式i2c控制器访问任意容量存储器的方法。
8.本发明便于移植到不同的应用场景下,不但节约成本,而且增强了使用的灵活性。
9.本发明详细的技术方案如下:一种7位寻址模式i2c控制器访问任意容量存储器的方法,其特征在于,包括读存储器操作,步骤如下:(1-1)i2c控制器向存储器发送一个起始信号,所述存储器是指从机;(1-2)i2c控制器向存储器发送写操作命令,并等待从机的应答信号ack;(1-3)收到从机的应答信号ack后,i2c控制器向存储器发送地址,并等待从机的应答信号ack;(1-4)收到从机的应答信号ack后,若步骤(1-3)所发送地址字节的第一bit为1,则代表所述存储器地址还未发送完毕,继续进行步骤(1-3);若步骤(1-3)所发送地址字节的第一bit为0,则代表所述地址已经发送完毕,转向步骤(1-5);具体任意存储器容量可变地址参见图3所示;(1-5)等待从机的应答信号ack;(1-6)i2c控制器收到应答信号ack后,i2c控制器向存储器发送一个起始信号;(1-7)i2c控制器向所述目标存储器发送要读取的存储器地址,然后再发读操作命令,并等待从机的应答信号ack;(1-8)i2c控制器收到应答信号ack后,i2c控制器从存储器中读取的n个字节数据,且每个字节读取后等待从机的应答信号ack;(1-9)收到从机针对最后字节的应答信号ack后,i2c控制器发送停止(stop)命令。
10.根据本发明优选的,所述步骤(1-2)中所述写操作命令为1个字节,1-7bit对应存储器的设备号,第8bit为0表示这次操作是写操作。
11.根据本发明优选的,所述步骤(1-7)中读操作命令为1个字节,1-7bit对应存储器的设备号,第8bit为1表示这次操作是读操作。
12.一种7位寻址模式i2c控制器访问任意容量存储器的方法,其特征在于,包括写存储器操作,步骤如下:(2-1)i2c控制器向存储器发送一个起始信号,所述存储器是指从机;(2-2)i2c控制器向存储器发送写操作命令,并等待从机的应答信号ack;(2-3)收到应答信号ack后,i2c控制器向存储器发送地址,并等待从机的应答信号ack;(2-4)收到从机的应答信号ack后,若步骤(2-3)所发送地址字节的第一bit为1,则代表所述存储器地址还未发送完毕,继续进行步骤(2-3);若步骤(2-3)所发送地址字节的第一bit为0,则代表所述地址已经发送完毕,转向步骤(2-5);具体任意存储器容量可变地址参见图3所示;(2-5)等待从机的应答信号ack;(2-6)i2c控制器收到ack后,i2c控制器向存储器中发送n个字节的写入数据,且每个字节写入后等待从机回传应答信号ack;(2-7)收到从机针对最后字节的ack后,i2c控制器发送停止(stop)命令。
13.根据本发明优选的,所述步骤(2-2)中写操作命令为1个字节,1-7bit对应存储器
的设备号,第8bit为0表示这次操作是写操作。
14.本发明有益的技术效果:本发明只需使用7bit寻址方式可以实现任意容量存储器的访问。i2c控制器根据使用需求可以进行任意移植,不需要更改硬件电路,灵活性强。
附图说明
15.图1为普通i2c控制器基本写流程示意图;图2为普通i2c控制器基本读流程示意图;图3为发明的7bit寻址模式存储器地址组成格式示意表;图4为发明的7bit寻址模式i2c控制器读取存储器的流程示意图;图5为发明的7bit寻址模式i2c控制器写存储器的流程示意图。
具体实施方式
16.为了便于本领域人员更好的理解本发明,下面结合附图和具体实施例对本发明做进一步详细说明,下述仅是示例性的不限定本发明的保护范围。
17.如图3、4、5所示。
18.实施例1、一种7位寻址模式i2c控制器访问任意容量存储器的方法,包括读存储器操作,步骤如下:(1-1)i2c控制器向存储器发送一个起始信号,所述存储器是指从机;(1-2)i2c控制器向存储器发送写操作命令,并等待从机的应答信号ack;(1-3)收到从机的应答信号ack后,i2c控制器向存储器发送地址,并等待从机的应答信号ack;(1-4)收到从机的应答信号ack后,若步骤(1-3)所发送地址字节的第一bit为1,则代表所述存储器地址还未发送完毕,继续进行步骤(1-3);若步骤(1-3)所发送地址字节的第一bit为0,则代表所述地址已经发送完毕,转向步骤(1-5);具体任意存储器容量可变地址参见图3所示;(1-5)等待从机的应答信号ack;(1-6)i2c控制器收到应答信号ack后,i2c控制器向存储器发送一个起始信号;(1-7)i2c控制器向所述目标存储器发送要读取的存储器地址,然后再发读操作命令,并等待从机的应答信号ack;(1-8)i2c控制器收到应答信号ack后,i2c控制器从存储器中读取的n个字节数据,且每个字节读取后等待从机的应答信号ack;(1-9)收到从机针对最后字节的应答信号ack后,i2c控制器发送停止(stop)命令。
19.所述步骤(1-2)中所述写操作命令为1个字节,1-7bit对应存储器的设备号,第8bit为0表示这次操作是写操作。
20.所述步骤(1-7)中读操作命令为1个字节,1-7bit对应存储器的设备号,第8bit为1表示这次操作是读操作。
21.实施例2、一种7位寻址模式i2c控制器访问任意容量存储器的方法,其特征在于,包括写存储器操作,步骤如下:(2-1)ii2c控制器向存储器发送一个起始信号,所述存储器是指从机;(2-2)i2c控制器向存储器发送写操作命令,并等待从机的应答信号ack;(2-3)收到应答信号ack后,i2c控制器向存储器发送地址,并等待从机的应答信号ack;(2-4)收到从机的应答信号ack后,若步骤(2-3)所发送地址字节的第一bit为1,则代表所述存储器地址还未发送完毕,继续进行步骤(2-3);若步骤(2-3)所发送地址字节的第一bit为0,则代表所述地址已经发送完毕,转向步骤(2-5);具体任意存储器容量可变地址参见图3所示;(2-5)等待从机的应答信号ack;(2-6)i2c控制器收到ack后,i2c控制器向存储器中发送n个字节的写入数据,且每个字节写入后等待从机回传应答信号ack;(2-7)收到从机针对最后字节的ack后,i2c控制器发送停止(stop)命令。
22.所述步骤(2-2)中写操作命令为1个字节,1-7bit对应存储器的设备号,第8bit为0表示这次操作是写操作。
23.应用例1、现结合实施例1,对容量小于等于128字节存储器的访问。
24.基本读操作流程包括:a.i2c控制器发送一个起始信号;b.i2c控制器发送一个字节的写操作命令;c.收到ack后,i2c控制器发送一个字节的待读取存储器的地址;d.收到ack后,i2c控制器发送一个起始信号;e.i2c控制器发送读操作命令;f.收到ack后,i2c控制器从存储器中读取n个字节,每个字节读取完后应该有个ack;g.收到最后一个字节的ack后,i2c控制器发送一个stop位;进一步地,步骤b中写1-7位对应存储器的设备号,第8bit为0表示是写操作进一步地,步骤c中结合图3,第1bit应该为0,2-8bit对应存储器的地址,访问范围为0000000b-1111111b;进一步地,步骤e中写1-7位对应存储器的设备号,第8bit为1表示是写操作进一步地,步骤f中n表示i2c控制器要读取存储器字节的长度,最小为1,最大为128。
25.应用例2、现结合实施例2,对容量小于等于128字节存储器的访问。
26.基本写操作流程包括:a.i2c控制器发送一个起始信号;
b.i2c控制器发送一个字节的写操作命令;c.收到ack后,i2c控制器发送一个字节的待写存储器的地址;d.收到ack后,i2c控制器向存储器中发送n个字节数据,每个字节发送完后应该有个ack;e.收到最后一个字节的ack后,i2c控制器发送一个stop位;进一步地,步骤b中写1-7位对应存储器的设备号,第8bit为1表示是写操作进一步地,步骤c中结合图3,第1bit应该为0,2-8bit对应存储器的地址,访问范围为0000000b-1111111b;进一步地,步骤f中n表示i2c控制器要写存储器字节的长度,最小为1,最大为128。
27.应用例3、现结合实施例1,对容量大于128字节小于16k字节存储器的访问。
28.基本读操作流程包括:a.i2c控制器发送一个起始信号;b.i2c控制器发送一个字节的写操作命令;c.收到ack后,i2c控制器发送一个字节的待读取存储器的地址;d.收到ack后,i2c控制器再发送一个字节的待读取存储器的地址;e.收到ack后,i2c控制器发送一个起始信号;f.i2c控制器发送读操作命令;g.收到ack后,i2c控制器从存储器中读取n个字节,每个字节读取完后应该有个ack;h.收到最后一个字节的ack后,i2c控制器发送一个stop位;进一步地,步骤b中写1-7位对应存储器的设备号,第8bit为0表示是写操作;进一步地,步骤c中结合图3,第1bit应该为1,2-8bit对应存储器的地址地高7bit;进一步地,步骤d中结合图3,第1bit应该为0,2-8bit对应存储器的地址地低7bit;进一步地,结合步骤c,d,所能访问存储器地址空间为14’h00-14’h3ff;进一步地,步骤f中写1-7位对应存储器的设备号,第8bit为1表示是写操作进一步地,步骤g中n表示i2c控制器要读取存储器字节的长度,最小为1。
29.应用例4、现结合实施例2,对容量大于128字节小于16k字节存储器的访问。
30.基本写操作流程包括:a.i2c控制器发送一个起始信号;b.i2c控制器发送一个字节的写操作命令;c.收到ack后,i2c控制器发送一个字节的待写存储器的地址;d.收到ack后,i2c控制器再发送一个字节的待写存储器的地址;e.收到ack后,i2c控制器向存储器中发送n个字节数据,每个字节发送完后应该有个ack;f.收到最后一个字节的ack后,i2c控制器发送一个stop位;进一步地,步骤b中写1-7位对应存储器的设备号,第8bit为1表示是写操作进一步地,步骤c中结合图3,第1bit应该为1,2-8bit对应存储器的地址地高7位;
进一步地,步骤d中结合图3,第1bit应该为0,2-8bit对应存储器的地址地低7位,所能访问存储器地址空间为14’h00-14’h3ff;进一步地,步骤e中n表示i2c控制器要写存储器字节的长度,最小为1。
31.应用例5、对容量大于16k字节存储器的访问。类似地,当访问存储器范围超过14’h3fff 小于21’h1fffff时候,结合附图3,i2c控制器需要用3个字节来表示存储器的地址;依次类推,存储器容量落在不同范围内,i2c控制器需要使用不同长度的字节来进行表示。
32.以上仅描述了本发明的基本原理和优选实施方式,本领域人员可以根据上述描述做出许多变化和改进,这些变化和改进应该属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献