一种实现自适应速率模拟I<sup>2</sup>C总线通信的方法

文档序号:7664387阅读:399来源:国知局
专利名称:一种实现自适应速率模拟I<sup>2</sup>C总线通信的方法
技术领域
本发明涉及一种基于无线通信模块的实现自适应速率模拟I2C(lnter-Integrated Circuit)总线通信的方法,适用于在无线通信模块与其外挂符合I2C总线协议的设备之间 的通信。
背景技术
由于现在无线通信模块的用途越来越多,根据需求其外挂的设备也是各种各样, 对于某些特定的设备需要特定的总线通信协议才能与之通信,无线通信模块本身也不具 有实现这些总线通信协议的接口。另外,这些总线通信协议必须在一定通信速率以下才 能进行正常的通信,如果超过这个速率,则会产生误码或难以通信;如果速率太低,虽 能正常通信,但不能保证充分利用总线通信速率以提高通信效率。如12(:总线通信协议, 就属于上述协议中的一种。现有技术中,由驱动程序调整速率以达到通信速率正常且能 以最高速率进行通信,但是用现有方法对多个外挂设备需多次调试,消耗大量调试时间。

发明内容
本发明所要解决的技术问题是,减少i2c总线通信的驱动调试时间并且要最大化利
用通信速率进行I2C总线通信。
12C总线通信是由一个主机和若干个从机组成,本发明中无线通信模块作为主机,其
外挂的符合I2C总线接口的设备为从机。
为达上述目的,本发明提供了一种基于无线通信模块的实现自适应速率模拟i2c总
线通信的方法,其包括如下步骤
(1) 建立I2C总线通信速率最高允许值到最低允许值之间的梯度表;
(2) 在无线通信模块中,开辟空间存储从机地址以及从机与主机最佳通信速率值 的对照表;
(3) 初始化三个GPIO (General Purpose 1叩ut/0utput) 口,片选从机;(4) 主机从上述梯度表里依次取出速率值换算为时钟信号频率,从数据地址线上 发出初始化从机的指令,直到从机响应成功,此时的速率值即为能正常通信 的最高速率值;
(5) 根据从机的地址,将步骤(4)中得到的速率值,存储到对照表中的对应位 置。
所述的无线通信模块在此处为带有非易失性随机访问存储器(NVRAM)的无 线通信模块。
所述的三个通用输入输出口GPIO分别为串行时钟线(SCL)接口、串行数据 &地址线(SDA)接口和片选信号线(NCE)接口。 步骤(4)中,在主机发指令前,通过从机地址到对照表中查询,如果发现最高速 率值已经存在,则直接取出该速率值换算为时钟信号频率进行相关的通信。如果还有从 机需要通信,重复步骤(1)到(5)。另外,时钟信号的产生、数据的读写及地址的寻 址可以通过控制GPIO的输入输出方向及电平的拉高和拉低予以实现。
本发明的积极进步效果在于作为主机的无线通信模块,可以自动为各个从机记 录最高通信速率值,充分保证利用最高通信速率进行通信,而不必进行多次调试,大大 提高了效率。


图1为本发明实施例的主机向从机发初始化指令模拟I2C总线通信的时序示意图。
图2为本发明实施例的主机根据不同的从机地址获取不同的最高通信速率流程示 意图。
具体实施例方式
下面通过具体的实施例并结合附图对本发明作进一步详细的描述。
例如,如果主机是无线通信模块ADI6720A,从机是基于MC9S08QG4的3D加速度
传感器,从机的地址是OxOF。将主机的GPO一13、 GPIO一IO、 GPIO—11分别连接到从机
的片选脚、时钟脚、数据&地址脚。
见图l,通过通信速率表中换算出来的时钟频率,将SCL和SDA进行拉高和拉低操作
可以完全模拟lt通信的起始条件(START condition)、从机地址(ADDRESS)、读写信
号(读写信号R/W)、数据传输(DATA)、响应信号(ACK)和结束条件(STOP condition)等(具体参见12(:总线通信协议)。如起始条件先将时钟信号GPIO一10拉高并保持,此 时将数据&地址信号GPI0—ll拉高,并在时钟保持高电平的情况下,拉低GPI0」1,这样 就能获得I2C通信的起始条件。
见图2,主机上电后将GP0」3拉低,选中从机。根据从机的地址OxOF,到保存在 NVRAM中的对照表里査询是否存在有效的通信速率值,如果存在就使用该值发送初始化 指令进行正常通信,否则就以最高到最低的顺序,依次从速度梯度表中取值发送初始化 指令,直到初始化成功,保存初始化成功时的速率值到NVRAM的对应位置,并以这个值 进行正常通信。
本发明可以应用于其它无线通信模块和其外挂的符合其他总线通信协议的设备, 实现方法与本发明所述方法相同。
权利要求
1. 一种基于无线通信模块的实现自适应速率模拟I2C总线通信的方法,其特征在于,包括如下步骤(1)建立I2C总线通信速率最高允许值到最低允许值之间的梯度表;(2)在无线通信模块中,开辟空间存储从机地址以及从机与主机最佳通信速率值的对照表;(3)初始化三个通用输入输出口GPIO(General Purpose Input/Output),片选从机;(4)主机从上述梯度表里依次取出速率值换算为时钟信号频率,从数据地址线上发出初始化从机的指令,直到从机响应成功,此时的速率值即为能正常通信的最高速率值;(5)根据从机的地址,将步骤(4)中得到的速率值,存储到对照表中的对应位置。
2. 如权利要求1所述的基于无线通信模块的实现自适应速率模拟I2C总线通信的方 法,其特征在于所述无线通信模块为带有非易失性随机访问存储器(NVRAM)的无线 通信模块。
3. 如权利要求1所述的基于无线通信模块的实现自适应速率模拟I2C总线通信的方 法,其特征在于所述的三个GPIO 口分别为串行时钟线(SCL)接口、串行数据&地址 线(SDA)接口和片选信号线(NCE)接口。
4. 如权利要求1所述的基于无线通信模块的实现自适应速率模拟I2C总线通信的方 法,其特征在于步骤(4)中,在主机发指令前,通过从机地址到对照表中查询,如 果发现最高速率值已经存在,则直接取出该速率值换算为时钟信号频率进行相关的通 信。如果还有从机需要通信,重复步骤(1)到(5)。
全文摘要
本发明所要解决的技术问题是,减少I<sup>2</sup>C(Inter-Integrated Circuit)总线通信的驱动调试时间并且要最大化利用通信速率进行I<sup>2</sup>C总线通信。为此本发明提供了一种基于无线通信模块的实现自适应速率模拟I<sup>2</sup>C总线通信的方法建立I<sup>2</sup>C总线通信速率最高允许值到最低允许值之间的梯度表;在无线通信模块中,开辟空间存储从机地址以及从机与主机最佳通信速率值的对照表;初始化三个GPIO口,片选从机;主机从上述梯度表里依次取出速率值换算为时钟信号频率,从数据地址线上发出初始化从机的指令,直到从机响应成功。本发明可自动为各个从机记录最高通信速率值,不必进行多次调试,大大提高了效率。
文档编号H04L29/02GK101465838SQ20071017279
公开日2009年6月24日 申请日期2007年12月21日 优先权日2007年12月21日
发明者潘宏得 申请人:希姆通信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1