《同时支持标准和非标准I2C接口的数据传输方法及装置.pdf》由会员分享,可在线阅读,更多相关《同时支持标准和非标准I2C接口的数据传输方法及装置.pdf(11页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102929828 A (43)申请公布日 2013.02.13 CN 102929828 A *CN102929828A* (21)申请号 201210398780.0 (22)申请日 2012.10.18 G06F 13/40(2006.01) (71)申请人 广东欧珀移动通信有限公司 地址 523841 广东省东莞市长安镇乌沙海滨 路 18 号 (72)发明人 张强 周辉 (74)专利代理机构 深圳中一专利商标事务所 44237 代理人 张全文 (54) 发明名称 同时支持标准和非标准 I2C 接口的数据传输 方法及装置 (57) 摘要 本发明适用于通讯接口领域。
2、, 提供一种同时 支持标准和非标准 I2C 接口的数据传输方法及装 置, 所述方法包括 : 获取 I2C 总线中数据线上的地 址数据 ; 判断所述地址数据是否为非标准 I2C 设 备的地址 ; 判断是时, 将主机 I2C 接口配置成通用 输入输出接口来模拟非标准 I2C 接口协议实现数 据传输 ; 判断否时, 将主机 I2C 接口配置成标准 I2C 接口实现数据传输。本发明技术方案中, 主机 I2C 接口既可驱动标准时序的 I2C 接口设备的同 时, 还可以驱动非标准时序的 I2C 接口设备, 省去 了使用其他GPIO口模拟I2C来驱动非标准时序的 I2C 接口设备的过程, 从而达到了节省 G。
3、PIO 口的 目的。 (51)Int.Cl. 权利要求书 1 页 说明书 5 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 5 页 附图 4 页 1/1 页 2 1. 一种同时支持标准和非标准 I2C 接口的数据传输方法, 其特征在于, 所述方法包括 : 获取 I2C 总线中数据线上的地址数据 ; 判断所述地址数据是否为非标准 I2C 设备的地址 ; 判断是时, 将主机 I2C 接口配置成通用输入输出接口来模拟非标准 I2C 接口协议实现 数据传输 ; 判断否时, 将主机 I2C 接口配置成标准 I2C 接口实现数据传输。 2. 如权。
4、利要求 1 所述方法, 其特征在于, 所述判断是时, 将主机 I2C 接口配置成通用输 入输出接口来模拟非标准 I2C 接口协议实现数据传输步骤, 具体包括 : 判断是时, 释放主机 I2C 接口的数据线和时钟线 ; 将所述主机 I2C 接口的数据线和时钟线配置为普通的通用输入输出接口 ; 配置所述通用输入输出接口的接口时序, 模拟出当前非标准 I2C 接口协议来驱动所述 地址数据对应的非标准 I2C 设备, 实现数据传输。 3. 如权利要求 1 所述方法, 其特征在于, 所述判断否时, 将主机 I2C 接口配置成标准 I2C 接口实现数据传输步骤, 具体包括 : 判断否时, 将主机 I2C 。
5、接口配置成标准 I2C 接口 ; 根据标准 I2C 接口时序驱动与所述地址数据对应的标准 I2C 设备, 实现数据传输。 4. 一种同时支持标准和非标准 I2C 接口的数据传输装置, 其特征在于, 所述装置包括 : 地址获取单元, 用于获取 I2C 总线中数据线上的地址数据 ; 地址判断单元, 用于判断所述地址数据是否为非标准 I2C 设备的地址 ; 通用输入输出配置单元, 用于在地址判断单元判断是时, 将主机 I2C 接口配置成通用 输入输出接口来模拟非标准 I2C 接口协议实现数据传输 ; 标准接口配置单元, 用于在地址判断单元判断否时, 将主机I2C接口配置成标准I2C接 口实现数据传输。
6、。 5. 如权利要求 4 所述装置, 其特征在于, 所述通用输入输出配置单元包括 : 接口释放模块, 用于在地址判断单元判断是时, 释放主机 I2C 接口的数据线和时钟线 ; 第一配置模块, 用于将所述主机 I2C 接口的数据线和时钟线配置为普通的通用输入输 出接口 ; 通用输入输出接口配置模块, 用于配置所述通用输入输出接口的接口时序, 模拟出当 前非标准 I2C 接口协议来驱动所述地址数据对应的非标准 I2C 设备, 实现数据传输。 6. 如权利要求 4 所述装置, 其特征在于, 所述标准接口配置单元包括 : 第二配置模块, 用于在地址判断单元判断否时, 将主机 I2C 接口配置成标准 I。
7、2C 接口 ; 标准接口配置模块, 用于根据标准 I2C 接口时序驱动与所述地址数据对应的标准 I2C 设备, 实现数据传输。 权 利 要 求 书 CN 102929828 A 2 1/5 页 3 同时支持标准和非标准 I2C 接口的数据传输方法及装置 技术领域 0001 本发明属于核电处理领域, 尤其涉及一种同时支持标准和非标准 I2C 接口的数据 传输方法及装置。 背景技术 0002 I2C (Inter Integrated Circuit) 总线是由 PHILIPS 公司开发的两线式串行总 线, 用于连接微控制器及其外围设备, 是微电子通信控制领域广泛采用的一种总线标准。 它 是同步通。
8、信的一种特殊形式, 具有接口线少, 控制方式简单, 器件封装形式小, 通信速率较 高等优点。 按照标准的I2C总线协议, I2C总线包括两根传输线, 分别是串行的数据线 (SDA) 和串行的时钟线 (SCL) , 各个设备挂载在 I2C 总线上进设备件间的数据传输。 0003 但是在实际项目开发过程中, 主机通常需要与多个设备进行数据通讯, 主机的 I2C 接口上挂载有多个设备, 但其中可能会存在只有非标准 I2C 接口的设备, 不支持标准时序 的 I2C 接口协议, 此时为了使得主机能够与所有的设备进行通讯, 通常的解决方案为 : 利用 主机的 GPIO(General Purpose In。
9、put Output, 通用输入输出) 接口模拟相应的非标准 I2C 接口协议, 来驱动所述不支持标准I2C接口协议的设备, 实现数据通讯, 当主机没有GPIO接 口, 或者 GPIO 接口数量相当紧张时, 就没有足够的 GPIO 接口资源来模拟非标准 I2C 接口协 议, 这样就无法实现驱动所述不支持标准 I2C 接口协议的设备。 发明内容 0004 鉴于上述问题, 本发明的目的在于提供一种同时支持标准和非标准 I2C 接口的数 据传输方法及装置, 旨在解决现有I2C通讯系统中, 若GPIO接口资源紧张的情况下, 无法实 现驱动非标准 I2C 设备的技术问题。 0005 一方面, 所述同时支。
10、持标准和非标准 I2C 接口的数据传输方法包括下述步骤 : 0006 获取 I2C 总线中数据线上的地址数据 ; 0007 判断所述地址数据是否为非标准 I2C 设备的地址 ; 0008 判断是时, 将主机 I2C 接口配置成通用输入输出接口来模拟非标准 I2C 接口协议 实现数据传输 ; 0009 判断否时, 将主机 I2C 接口配置成标准 I2C 接口实现数据传输。 0010 另一方面, 所述同时支持标准和非标准 I2C 接口的数据传输装置包括 : 0011 地址获取单元, 用于获取 I2C 总线中数据线上的地址数据 ; 0012 地址判断单元, 用于判断所述地址数据是否为非标准 I2C 。
11、设备的地址 ; 0013 通用输入输出配置单元, 用于在地址判断单元判断是时, 将主机 I2C 接口配置成 通用输入输出接口来模拟非标准 I2C 接口协议实现数据传输 ; 0014 标准接口配置单元, 用于在地址判断单元判断否时, 将主机 I2C 接口配置成标准 I2C 接口实现数据传输。 0015 本发明的有益效果是 : 本发明技术方案首先根据主机寻址所发出的地址数据判断 说 明 书 CN 102929828 A 3 2/5 页 4 当前主机需要进行数据通讯的从机是标准 I2C 设备还是非标准 I2C 设备, 若当前地址数据 是非标准 I2C 设备的地址时, 将主机 I2C 接口配置成 GP。
12、IO 接口来模拟非标准 I2C 接口协议 实现数据传输, 否则直接将主机I2C接口配置成标准I2C接口实现数据传输, 因此从上述描 述可以, 本发明技术方案实现了主机通过一个 I2C 接口既可以与标准 I2C 设备进行数据通 讯, 也可以与非标准 I2C 设备进行数据通讯, 无需使用额外的 GPIO 接口, 在主机 GPIO 接口 资源紧张的情况下提供了一个很好的数据传输解决方案。 附图说明 0016 图 1 是一种 I2C 总线的数据通讯系统结构图 ; 0017 图2是本发明第一实施例提供的同时支持标准和非标准I2C接口的数据传输方法 的流程图 ; 0018 图3是本发明第二实施例提供的同时。
13、支持标准和非标准I2C接口的数据传输方法 的流程图 ; 0019 图4是本发明第三实施例提供的同时支持标准和非标准I2C接口的数据传输装置 的结构方框图 ; 0020 图5是本发明第四实施例提供的同时支持标准和非标准I2C接口的数据传输装置 的结构方框图。 具体实施方式 0021 为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。 0022 在实现本发明之间需要搭建好硬件结构, 本发明提供的同时支持标准和非标准 I2C 接口的数据传输方法和装置适用于采用 I2。
14、C 总线的数据通讯系统, 具体的如图 1 所示, 该数据通讯系统包括主机 101 以及若干从机, 所述从机中包括有标准 I2C 设备 102 和非标 准 I2C 设备 103, 这里不限定所述标准 I2C 设备 102 和非标准 I2C 设备 103 的数量, 所述主 机 101、 标准 I2C 设备 102 和非标准 I2C 设备 103 的 SDA 接口和 SCL 接口分别对应连接到 I2C 总线的串行数据线 (SDA 线) 和串行时钟线 (SCL 线) 上, 所述串行数据线和串行时钟线 通过上拉电阻连接到正的电源电压上, 为了说明本发明所述的技术方案, 下面通过具体实 施例来进行说明。 。
15、0023 实施例一 : 0024 图2示出了本发明第一实施例提供的同时支持标准和非标准I2C接口的数据传输 方法的流程图, 为了便于说明仅示出了与本发明实施例相关的部分。 0025 本实施例提供的同时支持标准和非标准 I2C 接口的数据传输方法包括 : 0026 步骤 S201、 获取 I2C 总线中数据线上的地址数据。 0027 在 I2C 总线协议里, 每个从机 (标准 I2C 设备 102 和非标准 I2C 设备 103) 中都保 存有一个设备地址, 该地址是主机101所知晓的, 当主机101要求与从机进行一次数据传输 时, 首先主机根据协议标准在 SCL 线上发出时钟信号, 当 SCL。
16、 线为高电平, SDA 线由高电平 跳变到低电平时, 表明数据传输考开始, 并以该时钟信号为节拍在 SDA 线上发送需要寻址 说 明 书 CN 102929828 A 4 3/5 页 5 的从机的地址数据, 通常该地址数据位 8 位, 前 7 为地址, 后 1 位为读写标记, 用于表示向从 机中写入数据或是读出数据。 0028 步骤 S202、 判断所述地址数据是否为非标准 I2C 设备的地址。 0029 主机 101 发送起始信号 (即 SCL 线为高电平, SDA 线由高电平跳变到低电平) 后, 所 有从机侦听到起始信号后, 开始接收主机101发送的地址数据, 并将该数据的前7位于自己 的。
17、地址进行比较, 地址一致的从机为主机所要寻址的从机设备, 这样即可知晓当前的地址 数据是标准 I2C 设备 102 的地址还是非标准 I2C 设备 103 的地址。 0030 步骤S203、 判断是时, 将主机I2C接口配置成通用输入输出接口来模拟非标准I2C 接口协议实现数据传输。 0031 当所述地址数据与其中的一个非标准 I2C 设备 103 的地址一致时, 该非标准 I2C 设备103向主机返回一个响应信号, 表明准备开始与所述主机101开始数据传输, 主机接收 到该响应信号后, 将自己的 I2C 口配置成 GPIO 接口, 并按照当前非标准 I2C 设备 103 所支 持的非标准 I。
18、2C 接口协议, 控制所述 GPIO 接口输出相应的时序, 此时由于主机 101 和非标 准 I2C 设备 103 具有相同的接口协议认识, 因此两者之间可以进行数据传输。 0032 步骤 S204、 判断否时, 将主机 I2C 接口配置成标准 I2C 接口实现数据传输。 0033 当所述地址数据与其中的一个标准 I2C 设备 102 的地址一致时, 该标准 I2C 设备 102 向主机返回一个响应信号, 表明准备开始与所述主机 101 开始数据传输, 主机接收到该 响应信号后, 将 I2C 接口配置成标准 I2C 接口, 此时主机 101 与标准 I2C 设备 102 之间即可 按照标准 I。
19、2C 接口协议进行数据传输。 0034 在本实施例中, 由于具有一个地址判断过程, 当为标准 I2C 设备的地址时, 主机与 标准 I2C 设备直接按照标准 I2C 接口协议进行数据传输, 当为非标准 I2C 设备的地址时, 主 机将 I2C 接口配置成 GPIO 接口, 并模拟所述非标准 I2C 设备所述支持的非标准 I2C 接口协 议, 来实现与非标准 I2C 设备进行数据传输。本方法中, 主机通过一个 I2C 接口即可与若干 个标准和非标准 I2C 设备进行数据传输, 节约了主机宝贵的 GPIO 资源。 0035 实施例二 : 0036 图3示出了本发明第二实施例提供的同时支持标准和非标。
20、准I2C接口的数据传输 方法的流程图, 为了便于说明仅示出了与本发明实施例相关的部分。 0037 本实施例提供的同时支持标准和非标准 I2C 接口的数据传输方法包括 : 0038 步骤 S301、 获取 I2C 总线中数据线上的地址数据 ; 0039 步骤 S302、 判断所述地址数据是否为非标准 I2C 设备的地址, 0040 上述步骤 S301、 S302 与实施例一中步骤 S201、 S202 相同, 此处不再赘述。 0041 步骤 S303、 判断是时, 释放主机 I2C 接口的数据线和时钟线。 0042 当前的地址数据为非标准 I2C 设备 103 的地址时, 该非标准 I2C 设备。
21、 103 会返回 一个响应信号, 此时主机 101 释放掉 I2C 接口连接的 SDA 线和 SCL 线的控制权, 准备进行后 续 I2C 接口配置操作。 0043 步骤 S304、 将所述主机 I2C 接口的数据线和时钟线配置为普通的通用输入输出接 口 ; 0044 步骤 S305、 配置所述通用输入输出接口的接口时序, 模拟出当前非标准 I2C 接口 协议来驱动所述地址数据对应的非标准 I2C 设备, 实现数据传输。 说 明 书 CN 102929828 A 5 4/5 页 6 0045 在释放 SDA 线和 SCL 线的控制权后, 首先将主机 I2C 接口的数据线和时钟线配置 为普通的 。
22、GPIO 接口, 由于本实施例中, 所述非标准 I2C 设备 103 的接口时序协议与标准协 议不同, 比如数据输出格式定义不同、 数据应答方式不同等等, 但无论如何, 主机 101 先前 是已经知悉所述非标准 I2C 设备 103 的时序协议, 因此主机 101 只需按照该时序协议的要 求来配置所述 GPIO 接口的接口输出时序, 使得主机 101 与非标准 I2C 设备 103 之间具有相 同通讯协议, 此后两者按照该协议要求实现数据传输即可。 0046 步骤 S306、 判断否时, 将主机 I2C 接口配置成标准 I2C 接口 ; 0047 步骤S307、 根据标准I2C接口时序驱动与所。
23、述地址数据对应的标准I2C设备, 实现 数据传输。 0048 当前的地址数据为标准 I2C 设备 102 的地址时, 该标准 I2C 设备 102 会返回一个 响应信号, 此时主机 101 将自己的 I2C 接口配置成标准 I2C 接口, 按照标准的 I2C 接口时序 协议, 主机 101 和标准 I2C 设备 102 进行数据传输, 具体传输过程与现有方法一致, 此处不 再赘述。 0049 当上述传输完毕后, 主机101发出终止信号, 所有从机继续侦听等待主机101发送 起始信号进行下一轮数据传输。 0050 本实施例中步骤S303-S305为实施例一中步骤S203的具体优选的实施方式, 步。
24、骤 S306、 S307 为实施例一中步骤 S204 的具体优选实施方式, 通过本实施例, 主机的 I2C 接口 可以同时与支持标准和非标准 I2C 接口的设备进行数据传输。 0051 实施例三 : 0052 图4示出了本发明第三实施例提供的同时支持标准和非标准I2C接口的数据传输 装置的流程图, 为了便于说明仅示出了与本发明实施例相关的部分。 0053 本实施例提供的同时支持标准和非标准 I2C 接口的数据传输装置包括 : 0054 地址获取单元 401, 用于获取 I2C 总线中数据线上的地址数据 ; 0055 地址判断单元 402, 用于判断所述地址数据是否为非标准 I2C 设备的地址 。
25、; 0056 通用输入输出配置单元 403, 用于在地址判断单元 402 判断是时, 将主机 I2C 接口 配置成通用输入输出接口来模拟非标准 I2C 接口协议实现数据传输 ; 0057 标准接口配置单元 404, 用于在地址判断单元 402 判断否时, 将主机 I2C 接口配置 成标准 I2C 接口实现数据传输。 0058 本实施例提供的各个功能单元 401-404 对应实现了实施例一中的步骤 S201-S204, 具体的, 当主机需要与从机进行数据通讯时, 首先需要进行寻址, 地址获取单元 401 获取到主机发送的地址数据后, 地址判断单元 402 进行地址比对判断, 当该地址为非标 准 。
26、I2C 设备的地址时, 通用输入输出配置单元 403 将主机 I2C 接口配置成通用输入输出接 口来模拟非标准 I2C 接口协议实现数据传输, 否则标准接口配置单元 404 将主机 I2C 接口 配置成标准 I2C 接口实现数据传输。 0059 实施例四 : 0060 图5示出了本发明第四实施例提供的同时支持标准和非标准I2C接口的数据传输 装置的流程图, 为了便于说明仅示出了与本发明实施例相关的部分。 0061 本实施例提供的同时支持标准和非标准 I2C 接口的数据传输装置包括 : 0062 地址获取单元 51, 用于获取 I2C 总线中数据线上的地址数据 ; 说 明 书 CN 102929。
27、828 A 6 5/5 页 7 0063 地址判断单元 52, 用于判断所述地址数据是否为非标准 I2C 设备的地址 ; 0064 通用输入输出配置单元 53, 用于在地址判断单元 52 判断是时, 将主机 I2C 接口配 置成通用输入输出接口来模拟非标准 I2C 接口协议实现数据传输 ; 0065 标准接口配置单元 54, 用于在地址判断单元 52 判断否时, 将主机 I2C 接口配置成 标准 I2C 接口实现数据传输。 0066 其中所述通用输入输出配置单元 53 包括 : 0067 接口释放模块 531, 用于在地址判断单元判断是时, 释放主机 I2C 接口的数据线和 时钟线 ; 006。
28、8 第一配置模块 532, 用于将所述主机 I2C 接口的数据线和时钟线配置为普通的通 用输入输出接口 ; 0069 通用输入输出接口配置模块 533, 用于配置所述通用输入输出接口的接口时序, 模 拟出当前非标准I2C接口协议来驱动所述地址数据对应的非标准I2C设备, 实现数据传输。 0070 其中所述标准接口配置单元 54 包括 : 0071 第二配置模块 541, 用于在地址判断单元判断否时, 将主机 I2C 接口配置成标准 I2C 接口 ; 0072 标准接口配置模块 542, 用于根据标准 I2C 接口时序驱动与所述地址数据对应的 标准 I2C 设备, 实现数据传输。 0073 本实。
29、施例中功能单元51、 52以及功能模块531-533、 541-542对应实现了实施例二 中的步骤 S301-S307。本实施例中, 所述通用输入输出配置单元 53 本质为开发人员在主机 内写入的一段执行代码, 由于开发人员在搭建 I2C 总线系统时, 已经知悉所选取的非标准 I2C设备的非标准I2C时序协议, 因此开发人员通过程序将主机I2C接口配置成GPIO口后, 将所述I2C接口当做GPIO口使用, 再配置GPIO相关寄存器参数及其他参数, 使得所述GPIO 口能够按照当前非标准 I2C 时序协议输出时序, 这样主机和非标准 I2C 设备具有相同的协 议基础后, 即可按照协议要求完成数据。
30、传输。 0074 综上, 本发明实施例判断主机发送的数据地址是标准 I2C 设备还是非标准 I2C 设 备的地址, 当为非标准 I2C 设备的地址时, 将主机 I2C 接口配置成 GPIO 接口来模拟非标准 I2C 接口协议实现数据传输, 否则直接将主机 I2C 接口配置成标准 I2C 接口实现数据传输。 因此主机的 I2C 接口既可驱动标准时序的 I2C 接口设备的同时, 还可以驱动非标准时序的 I2C接口设备, 省去了使用其他GPIO口模拟I2C来驱动非标准时序的I2C接口设备的过程, 从而达到了节省 GPIO 口的目的。 0075 本领域普通技术人员可以理解, 实现上述实施例方法中的全部。
31、或部分步骤是可以 通过程序来指令相关的硬件来完成, 所述的程序可以在存储于一计算机可读取存储介质 中, 所述的存储介质, 如 ROM/RAM、 磁盘、 光盘等。 0076 以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 尽管参照前述实 施例对本发明进行了较详细的说明, 对于本领域的技术人员来说, 其依然可以对前述各实 施例所记载的技术方案进行修改、 或者对其中部分技术特征进行等同替换。凡在本发明的 精神和原则之内所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。 说 明 书 CN 102929828 A 7 1/4 页 8 图 1 图 2 说 明 书 附 图 CN 102929828 A 8 2/4 页 9 图 3 说 明 书 附 图 CN 102929828 A 9 3/4 页 10 图 4 说 明 书 附 图 CN 102929828 A 10 4/4 页 11 图 5 说 明 书 附 图 CN 102929828 A 11 。