CN102193889B - 一种i2c总线转发器及其读写方法 - Google Patents
一种i2c总线转发器及其读写方法 Download PDFInfo
- Publication number
- CN102193889B CN102193889B CN201110152497.5A CN201110152497A CN102193889B CN 102193889 B CN102193889 B CN 102193889B CN 201110152497 A CN201110152497 A CN 201110152497A CN 102193889 B CN102193889 B CN 102193889B
- Authority
- CN
- China
- Prior art keywords
- read
- bus
- write
- access
- state machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明提出一种可在不同传输频率的I2C总线间使用的I2C总线转发器及其读写方法,具有多种频率转发功能,且操作简单,无需额外开关控制。所述的I2C总线转发器,包括一个总线从设备接口、一个或多个总线主设备接口、一个状态机和至少一个读写寄存器,其中,总线主设备接口、总线从设备接口和读写寄存器分别与状态机相连。
Description
技术领域
本发明所述的技术方案涉及一种总线转发器及其读写方法,尤其是一种应用于不同频率的I2C总线的转发器及其读写方法。
技术背景
I2C(集成电路间互连总线)是由飞利浦公司于上世纪80年代早期开发的。它是一个简单的两线总线,包括一条数据线和一条时钟线。目前I2C已经成为重要的全球业界标准,被所有主要的IC厂商所认同和使用。I2C是低数据速率方式,用于短距离用途,它具有多种功能和仲裁特性,采用主控-伺服通讯方式。I2C总线与其它总线如UART、CAN、USB、SPI相比,具有操作简单,得到应用的时间比较长等优点。
一般,I2C的频率可以做到100kHz、400kHz和3.4MHz。当需要在同一总线上同时使用100kHz、400kHz和3.4MHz不同频率设备时,可以使用一个I2C总线转发器,将两种设备隔离在两侧,使它们分别按自己的频率工作,如飞利浦公司的PCA9515。目前市场上的I2C总线转发器在工作时,设置在主设备和从设备之间,使I2C总线上的频率在经过I2C总线转发器后降低或升高到从设备所需的频率。它的缺点是,一个I2C总线转发器只能转发一个频率,当I2C总线上有多个不同频率的从设备时,就无法用一个I2C总线转发器完成多种频率转发;另外,此类I2C总线转发器使用时需要系统配置一个开关控制转发器的开启和闭合,从而增加了系统的复杂性。
发明内容
针对上述现有技术的不足,本发明拟提出一种可在不同传输频率的I2C总线间使用的I2C总线转发器及其读写方法,具有多种频率转发功能,且操作简单,无需额外开关控制。本发明所述的一种I2C总线转发器,包括一个总线从设备接口、一个或一个以上总线主设备接口、一个状态机和至少一个读写寄存器,其中,总线主设备接口、总线从设备接口和读写寄存器分别与状态机相连。
总线从设备接口和总线主设备接口分别用于连接主设备和从设备,与主设备相连的I2C总线简称I2C主总线,与从设备相连的I2C总线简称I2C从总线。I2C从总线的工作频率可以低于、等于或高于I2C主总线的工作频率。
上述I2C总线转发器的状态机根据主设备发出的指令,判断是否对需要进行频率转发的从设备进行读写访问,然后根据相应的指令由初始状态切换到写访问或读访问状态。
在读写过程中,所述读写寄存器保存或更新1个或多个需要转发的从设备的器件地址、访问地址、读写数据和重读标志位等。
在对从设备进行读写访问前,所述主设备通过I2C主总线在读写寄存器中写入一个或多个需要转发的从设备器件地址。
所述I2C总线转发器的读写方法,具体写访问步骤如下:
S1.主设备发出写访问命令,I2C总线转发器的状态机判断是否是对需要转发的从设备发出写访问命令,若不是,则保持空闲状态;
S2.若是,在I2C总线转发器的读写寄存器中保存此次写访问的从设备的器件地址、访问地址和写入的数据,同时状态机通过总线从设备接口向主设备发送写成功的应答;
S3.I2C总线转发器通过I2C从总线对保存在读写寄存器中的数据的器件地址进行写访问,使用读写寄存器保存的访问地址为访问地址,使用读写寄存器保存的写入数据为写入的数据;
S4.写访问结束,I2C总线转发器的状态机恢复到初始的空闲状态。
具体读访问步骤如下:
S1.主设备发出读访问命令,I2C总线转发器的状态机判断是否是对需要转发的从设备发出读访问命令,若不是,则保持空闲状态;
S2.若是,当读写寄存器的重读标志位无效时,I2C总线转发器的状态机向主设备回传读不成功应答,令发起读访问的主设备发起第二次读访问;同时I2C总线转发器的总线主设备接口通过I2C从总线对保存在读写寄存器中的数据的器件地址进行读访问,使用读写寄存器上一次保存的该从设备器件地址对应的访问地址为访问地址,将读访问得到的数据为读出数据并保存在读写寄存器中,I2C总线转发器将读访问的器件地址保存在读写寄存器中,并 置重读标志位有效;
S3.当读写寄存器的重读标志位有效时,I2C总线转发器的状态机向主设备发送读成功应答,并将保存在读写寄存器中的读出数据通过I2C主总线回传到主设备,同时清空重读标志位;
S4.读访问结束,I2C总线转发器的状态机恢复到初始的空闲状态。
在读写过程中,使用I2C传输标准,当主设备发出的读写访问命令的从设备器件地址不是需要转发的从设备的器件地址时,I2C总线转发器保持空闲操作。
本发明所述的一种I2C总线转发器可以设置两个或两个以上的总线主设备接口,用于在不同工作频率的I2C总线间转发I2C协议。
本发明所述的一种I2C总线转发器可以设置两个或两个以上的读写寄存器,分别用于存储不同从设备的器件地址、访问地址、读写数据和重读标志位等。
本发明的有益效果是,通过本发明所述的一种I2C总线转发器及其读写方法,使I2C总线上不同工作频率的从设备可以同时工作;此外,所述的一种I2C总线转发器,结构简单,操作简便,无需额外的控制器件对其进行控制,节省系统资源。
附图说明
图1是一种I2C总线转发器的结构原理图;
图2是一种I2C总线转发器的读写方法流程图。
具体实施方式
如图1所示,I2C总线转发器主要包括一个总线从设备接口3,两个总线主设备接口4,一个状态机1和一个读写寄存器2。总线从设备接口3、总线主设备接口A4-A、总线主设备接口B4-B和读写寄存器2分别与状态机1相连。主设备6和从设备a5-a通过I2C主总线7与总线从设备接口3相连;从设备b5-b和从设备c5-c通过I2C从总线A8-A与总线主设备接口A4-A连接;从设备d5-d通过I2C从总线B8-B与总线主设备接口B4-B连接。
主设备6和从设备a5-a使用相同的工作频率,主设备6与从设备b5-b、从设备c5-c以及从设备d5-d使用不同的工作频率。通过本发明所述的一种I2C总线转发器,同一I2C总线 上同时使用不同频率的从设备5时,均能正常工作。
如图2所示,I2C总线转发器读写方法流程,具体步骤如下:
1)I2C总线转发器的状态机1接收到主设备6发出的读写访问命令;
2)状态机1首先判断是否是对保存在读写寄存器2中的从设备b5-b、从设备c5-c或从设备d5-d进行读写访问,如果不是,而是对从设备a5-a进行读写访问,I2C总线转发器保持空闲状态,如果是,则判断是写访问还是读访问;
3)若是写访问,在I2C总线转发器的读写寄存器2中保存此次写访问的从设备5(从设备b、从设备c或从设备d)的器件地址、访问地址和写入的数据,同时状态机1通过总线从设备接口向主设备6发送写成功的应答;
4)I2C总线转发器通过I2C从总线8对上一步骤保存在读写寄存器2中的数据(从设备b、从设备c或从设备d)进行写访问,使用读写寄存器2保存的访问地址为访问地址,使用读写寄存器2保存的写入数据为写入的数据;
5)写访问结束,状态机1恢复到初始的空闲状态;
6)若在步骤2)中状态机1判断为读访问,当读写寄存器2的重读标志位无效时,I2C总线转发器的状态机1向主设备6回传读不成功应答,令主设备6发起第二次读访问;同时I2C总线转发器通过I2C从总线8上对保存在读写寄存器2中的数据(从设备b、从设备c或从设备d)进行读访问,使用读写寄存器2上一次保存的该从设备器件地址对应的访问地址为访问地址,将读访问得到的数据做为读出数据并保存在读写寄存器2中,并置重读标志位有效;
7)当读写寄存器2的重读标志位有效时,状态机1通过总线从设备接口3向主设备6发送读成功的应答,并将保存在读写寄存器2中的读出数据通过I2C主总线7回传到主设备6,同时清空重读标志位;
8)结束读访问,状态机1恢复到初始的空闲状态。
除上述实施例外,本发明还可以有其他实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
Claims (1)
1.一种I2C总线转发器读写方法,其特征在于,包括如下步骤:
1)I2C总线转发器的状态机(1)接收到主设备(6)发出的读写访问命令;
2)状态机(1)首先判断是否是对保存在读写寄存器(2)中需要转发的数据(5)进行读写访问,如果不是,I2C总线转发器保持空闲状态,如果是,则判断是写访问还是读访问;
3)若是写访问,在I2C总线转发器的读写寄存器(2)中保存此次写访问的从设备(5)的器件地址、访问地址和写入的数据,同时状态机(1)通过总线从设备接口(3)向主设备(6)发送写成功的应答;
4)I2C总线转发器通过I2C从总线(8)对上一步骤保存在读写寄存器(2)中的数据(5)进行写访问,使用读写寄存器(2)保存的访问地址为访问地址,使用读写寄存器(2)保存的写入数据为写入的数据;
5)写访问结束,状态机(1)恢复到初始的空闲状态;
6)若在步骤2)中状态机(1)判断为读访问,当读写寄存器(2)的重读标志位无效时,I2C总线转发器的状态机(1)向主设备(6)回传读不成功应答,令主设备(6)发起第二次读访问;同时I2C总线转发器通过I2C从总线(8)对保存在读写寄存器(2)中的从设备(5)进行读访问,使用读写寄存器(2)上一次保存的该从设备器件地址对应的访问地址为访问地址,将读访问得到的数据做为读出数据并保存在读写寄存器(2)中,并置重读标志位有效;
7)当读写寄存器(2)的重读标志位有效时,状态机(1)通过总线从设备接口(3)向主设备(6)发送读成功的应答,并将保存在读写寄存器(2)中的读出数据通过I2C主总线(7)回传到主设备(6),同时清空重读标志位;
8)结束读访问,状态机(1)恢复到初始的空闲状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110152497.5A CN102193889B (zh) | 2011-06-08 | 2011-06-08 | 一种i2c总线转发器及其读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110152497.5A CN102193889B (zh) | 2011-06-08 | 2011-06-08 | 一种i2c总线转发器及其读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102193889A CN102193889A (zh) | 2011-09-21 |
CN102193889B true CN102193889B (zh) | 2014-01-22 |
Family
ID=44601979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110152497.5A Active CN102193889B (zh) | 2011-06-08 | 2011-06-08 | 一种i2c总线转发器及其读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102193889B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346310B (zh) * | 2013-08-05 | 2018-01-02 | 豪威科技(上海)有限公司 | 一种高性能i2c从机数据交换电路及方法 |
TWI636367B (zh) | 2014-02-07 | 2018-09-21 | 瑞士商安晟信醫療科技控股公司 | 用於多個主機匯流排協定的方法與裝置 |
CN105528314B (zh) * | 2015-12-28 | 2019-04-05 | 华为技术有限公司 | 一种数据处理方法及控制设备 |
CN106168934B (zh) * | 2016-06-29 | 2018-12-14 | 锐捷网络股份有限公司 | 一种数据传输方法及装置 |
CN107861866B (zh) * | 2017-09-30 | 2020-05-22 | 南京国睿中数电子科技有限公司 | 一种基于uart接口的嵌入式系统调试方法 |
CN111124979B (zh) * | 2019-10-31 | 2021-07-06 | 苏州浪潮智能科技有限公司 | 一种基于堆栈结构的i2c多主访问方法和系统 |
CN112698614B (zh) * | 2021-03-25 | 2021-06-15 | 之江实验室 | 一种任意字节读写用户侧逻辑控制器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568463A (zh) * | 2001-10-15 | 2005-01-19 | 英特尔公司 | 用于时分多路复用总线的总线成帧器 |
CN1637256A (zh) * | 2004-01-07 | 2005-07-13 | 株式会社日立制作所 | 数据通信装置及使用该装置的控制器 |
-
2011
- 2011-06-08 CN CN201110152497.5A patent/CN102193889B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568463A (zh) * | 2001-10-15 | 2005-01-19 | 英特尔公司 | 用于时分多路复用总线的总线成帧器 |
CN1637256A (zh) * | 2004-01-07 | 2005-07-13 | 株式会社日立制作所 | 数据通信装置及使用该装置的控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN102193889A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102193889B (zh) | 一种i2c总线转发器及其读写方法 | |
US10339093B2 (en) | USB interface using repeaters with guest protocol support | |
CN102023956B (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
US8938576B2 (en) | Data transfer in memory card system | |
CN105468548B (zh) | 串行外围接口的通信 | |
CN101416137A (zh) | 具有不一致帧速的多个usb控制器的功率优化帧同步 | |
CN101295255B (zh) | 固件更新系统及方法 | |
CN111897749A (zh) | 基于Quad-SPI控制器与外扩FLASH通信控制系统及方法 | |
CN100419639C (zh) | 切换内存时钟频率的方法和装置以及切换时钟频率的系统 | |
KR20070056724A (ko) | 클락 신호의 출력을 제어할 수 있는 컨트롤러와 그 방법,및 상기 컨트롤러를 구비하는 시스템 | |
CN104021101A (zh) | 基于lpc1768平台的usb接口系统及实现方法 | |
CN114116378A (zh) | 获取PCIe设备温度的方法、系统、终端及存储介质 | |
CN102567272B (zh) | 一种提高spi接口电路工作频率的方法 | |
CN102073611A (zh) | 一种i2c总线控制系统及方法 | |
CN101415270B (zh) | 移动终端及其处理模块的通讯方法 | |
CN101923505A (zh) | 外围组件互连快速插槽的测试系统及测试方法 | |
CN112291027A (zh) | 时钟选择方法、装置、设备及计算机可读存储介质 | |
CN103631534A (zh) | 数据存储系统以及其管理方法 | |
US20130042142A1 (en) | Debug carrier transactions | |
CN103577356A (zh) | 实现iic接口地址扩展的设备及方法 | |
CN202102429U (zh) | 一种i2c总线中继器 | |
CN113886297A (zh) | 一种基于dma的spi并发通讯se装置及方法 | |
CN208190652U (zh) | 一种全双工通用同步异步串行收发器的主板 | |
CN102103885B (zh) | Sd卡清除忙状态的方法及清除忙状态电路 | |
CN103309828A (zh) | 一种sd卡从控制器及控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |