一种I2C总线转发器及其读写方法转让专利

申请号 : CN201110152497.5

文献号 : CN102193889B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梁俊唐路郑臻鲁金虎

申请人 : 杭州国芯科技股份有限公司

摘要 :

本发明提出一种可在不同传输频率的I2C总线间使用的I2C总线转发器及其读写方法,具有多种频率转发功能,且操作简单,无需额外开关控制。所述的I2C总线转发器,包括一个总线从设备接口、一个或多个总线主设备接口、一个状态机和至少一个读写寄存器,其中,总线主设备接口、总线从设备接口和读写寄存器分别与状态机相连。

权利要求 :

2

1.一种IC总线转发器读写方法,其特征在于,包括如下步骤:2

1)IC总线转发器的状态机(1)接收到主设备(6)发出的读写访问命令;

2)状态机(1)首先判断是否是对保存在读写寄存器(2)中需要转发的数据(5)进行读2

写访问,如果不是,IC总线转发器保持空闲状态,如果是,则判断是写访问还是读访问;

2

3)若是写访问,在IC总线转发器的读写寄存器(2)中保存此次写访问的从设备(5)的器件地址、访问地址和写入的数据,同时状态机(1)通过总线从设备接口(3)向主设备(6)发送写成功的应答;

2 2

4)IC总线转发器通过IC从总线(8)对上一步骤保存在读写寄存器(2)中的数据(5)进行写访问,使用读写寄存器(2)保存的访问地址为访问地址,使用读写寄存器(2)保存的写入数据为写入的数据;

5)写访问结束,状态机(1)恢复到初始的空闲状态;

6)若在步骤2)中状态机(1)判断为读访问,当读写寄存器(2)的重读标志位无效时,2

IC总线转发器的状态机(1)向主设备(6)回传读不成功应答,令主设备(6)发起第二次读2 2

访问;同时IC总线转发器通过IC从总线(8)对保存在读写寄存器(2)中的从设备(5)进行读访问,使用读写寄存器(2)上一次保存的该从设备器件地址对应的访问地址为访问地址,将读访问得到的数据做为读出数据并保存在读写寄存器(2)中,并置重读标志位有效;

7)当读写寄存器(2)的重读标志位有效时,状态机(1)通过总线从设备接口(3)向主2

设备(6)发送读成功的应答,并将保存在读写寄存器(2)中的读出数据通过IC主总线(7)回传到主设备(6),同时清空重读标志位;

8)结束读访问,状态机(1)恢复到初始的空闲状态。

说明书 :

2

一种IC总线转发器及其读写方法

技术领域

[0001] 本发明所述的技术方案涉及一种总线转发器及其读写方法,尤其是一种应用于不2
同频率的IC总线的转发器及其读写方法。
技术背景
[0002] I2C(集成电路间互连总线)是由飞利浦公司于上世纪80年代早期开发的。它是2
一个简单的两线总线,包括一条数据线和一条时钟线。目前IC已经成为重要的全球业界
2
标准,被所有主要的IC厂商所认同和使用。IC是低数据速率方式,用于短距离用途,它具
2
有多种功能和仲裁特性,采用主控-伺服通讯方式。IC总线与其它总线如UART、CAN、USB、SPI相比,具有操作简单,得到应用的时间比较长等优点。
[0003] 一般,I2C的频率可以做到100kHz、400kHz和3.4MHz。当需要在同一总线上同时2
使用100kHz、400kHz和3.4MHz不同频率设备时,可以使用一个IC总线转发器,将两种设备
2
隔离在两侧,使它们分别按自己的频率工作,如飞利浦公司的PCA9515。目前市场上的IC
2 2
总线转发器在工作时,设置在主设备和从设备之间,使IC总线上的频率在经过IC总线转
2
发器后降低或升高到从设备所需的频率。它的缺点是,一个IC总线转发器只能转发一个频
2 2
率,当IC总线上有多个不同频率的从设备时,就无法用一个IC总线转发器完成多种频率
2
转发;另外,此类IC总线转发器使用时需要系统配置一个开关控制转发器的开启和闭合,从而增加了系统的复杂性。

发明内容

[0004] 针对上述现有技术的不足,本发明拟提出一种可在不同传输频率的I2C总线间使2
用的IC总线转发器及其读写方法,具有多种频率转发功能,且操作简单,无需额外开关控
2
制。本发明所述的一种IC总线转发器,包括一个总线从设备接口、一个或一个以上总线主设备接口、一个状态机和至少一个读写寄存器,其中,总线主设备接口、总线从设备接口和读写寄存器分别与状态机相连。
[0005] 总线从设备接口和总线主设备接口分别用于连接主设备和从设备,与主设备相连2 2 2 2 2
的IC总线简称IC主总线,与从设备相连的IC总线简称IC从总线。IC从总线的工作频
2
率可以低于、等于或高于IC主总线的工作频率。
[0006] 上述I2C总线转发器的状态机根据主设备发出的指令,判断是否对需要进行频率转发的从设备进行读写访问,然后根据相应的指令由初始状态切换到写访问或读访问状态。
[0007] 在读写过程中,所述读写寄存器保存或更新1个或多个需要转发的从设备的器件地址、访问地址、读写数据和重读标志位等。
[0008] 在对从设备进行读写访问前,所述主设备通过I2C主总线在读写寄存器中写入一个或多个需要转发的从设备器件地址。
[0009] 所述I2C总线转发器的读写方法,具体写访问步骤如下:
[0010] S1.主设备发出写访问命令,I2C总线转发器的状态机判断是否是对需要转发的从设备发出写访问命令,若不是,则保持空闲状态;
[0011] S2.若是,在I2C总线转发器的读写寄存器中保存此次写访问的从设备的器件地址、访问地址和写入的数据,同时状态机通过总线从设备接口向主设备发送写成功的应答;
[0012] S3.I2C总线转发器通过I2C从总线对保存在读写寄存器中的数据的器件地址进行写访问,使用读写寄存器保存的访问地址为访问地址,使用读写寄存器保存的写入数据为写入的数据;
[0013] S4.写访问结束,I2C总线转发器的状态机恢复到初始的空闲状态。 [0014] 具体读访问步骤如下:
[0015] S1.主设备发出读访问命令,I2C总线转发器的状态机判断是否是对需要转发的从设备发出读访问命令,若不是,则保持空闲状态;
[0016] S2.若是,当读写寄存器的重读标志位无效时,I2C总线转发器的状态机向主设备2
回传读不成功应答,令发起读访问的主设备发起第二次读访问;同时IC总线转发器的总线
2
主设备接口通过IC从总线对保存在读写寄存器中的数据的器件地址进行读访问,使用读写寄存器上一次保存的该从设备器件地址对应的访问地址为访问地址,将读访问得到的数
2
据为读出数据并保存在读写寄存器中,IC总线转发器将读访问的器件地址保存在读写寄存器中,并 置重读标志位有效;
[0017] S3.当读写寄存器的重读标志位有效时,I2C总线转发器的状态机向主设备发送读2
成功应答,并将保存在读写寄存器中的读出数据通过IC主总线回传到主设备,同时清空重读标志位;
[0018] S4.读访问结束,I2C总线转发器的状态机恢复到初始的空闲状态。 [0019] 在读写过程中,使用I2C传输标准,当主设备发出的读写访问命令的从设备器件地2
址不是需要转发的从设备的器件地址时,IC总线转发器保持空闲操作。 [0020] 本发明所述的一种I2C总线转发器可以设置两个或两个以上的总线主设备接口,
2 2
用于在不同工作频率的IC总线间转发IC协议。
[0021] 本发明所述的一种I2C总线转发器可以设置两个或两个以上的读写寄存器,分别用于存储不同从设备的器件地址、访问地址、读写数据和重读标志位等。 [0022] 本发明的有益效果是,通过本发明所述的一种I2C总线转发器及其读写方法,使2 2
IC总线上不同工作频率的从设备可以同时工作;此外,所述的一种IC总线转发器,结构简单,操作简便,无需额外的控制器件对其进行控制,节省系统资源。

附图说明

[0023] 图1是一种I2C总线转发器的结构原理图;
[0024] 图2是一种I2C总线转发器的读写方法流程图。

具体实施方式

[0025] 如图1所示,I2C总线转发器主要包括一个总线从设备接口3,两个总线主设备接口4,一个状态机1和一个读写寄存器2。总线从设备接口3、总线主设备接口A4-A、总线主2
设备接口B4-B和读写寄存器2分别与状态机1相连。主设备6和从设备a5-a通过IC主
2
总线7与总线从设备接口3相连;从设备b5-b和从设备c5-c通过IC从总线A8-A与总线
2
主设备接口A4-A连接;从设备d5-d通过IC从总线B8-B与总线主设备接口B4-B连接。 [0026] 主设备6和从设备a5-a使用相同的工作频率,主设备6与从设备b5-b、从设备
2
c5-c以及从设备d5-d使用不同的工作频率。通过本发明所述的一种IC总线转发器,同一
2
IC总线 上同时使用不同频率的从设备5时,均能正常工作。
[0027] 如图2所示,I2C总线转发器读写方法流程,具体步骤如下:
[0028] 1)I2C总线转发器的状态机1接收到主设备6发出的读写访问命令; [0029] 2)状态机1首先判断是否是对保存在读写寄存器2中的从设备b5-b、从设备c5-c2
或从设备d5-d进行读写访问,如果不是,而是对从设备a5-a进行读写访问,IC总线转发器保持空闲状态,如果是,则判断是写访问还是读访问;
[0030] 3)若是写访问,在I2C总线转发器的读写寄存器2中保存此次写访问的从设备5(从设备b、从设备c或从设备d)的器件地址、访问地址和写入的数据,同时状态机1通过总线从设备接口向主设备6发送写成功的应答;
[0031] 4)I2C总线转发器通过I2C从总线8对上一步骤保存在读写寄存器2中的数据(从设备b、从设备c或从设备d)进行写访问,使用读写寄存器2保存的访问地址为访问地址,使用读写寄存器2保存的写入数据为写入的数据;
[0032] 5)写访问结束,状态机1恢复到初始的空闲状态;
[0033] 6)若在步骤2)中状态机1判断为读访问,当读写寄存器2的重读标志位无效时,2
IC总线转发器的状态机1向主设备6回传读不成功应答,令主设备6发起第二次读访问;
2 2
同时IC总线转发器通过IC从总线8上对保存在读写寄存器2中的数据(从设备b、从设备c或从设备d)进行读访问,使用读写寄存器2上一次保存的该从设备器件地址对应的访问地址为访问地址,将读访问得到的数据做为读出数据并保存在读写寄存器2中,并置重读标志位有效;
[0034] 7)当读写寄存器2的重读标志位有效时,状态机1通过总线从设备接口3向主设2
备6发送读成功的应答,并将保存在读写寄存器2中的读出数据通过IC主总线7回传到主设备6,同时清空重读标志位;
[0035] 8)结束读访问,状态机1恢复到初始的空闲状态。
[0036] 除上述实施例外,本发明还可以有其他实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。