同时支持标准和非标准i2c接口的数据传输方法及装置的制作方法

文档序号:6379138阅读:212来源:国知局
专利名称:同时支持标准和非标准i2c接口的数据传输方法及装置的制作方法
技术领域
本发明属于核电处理领域,尤其涉及一种同时支持标准和非标准I2C接口的数据传输方法及装置。
背景技术
I2C (Inter 一 Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较 高等优点。按照标准的I2C总线协议,I2C总线包括两根传输线,分别是串行的数据线(SDA)和串行的时钟线(SCL),各个设备挂载在I2C总线上进设备件间的数据传输。但是在实际项目开发过程中,主机通常需要与多个设备进行数据通讯,主机的I2C接口上挂载有多个设备,但其中可能会存在只有非标准I2C接口的设备,不支持标准时序的I2C接口协议,此时为了使得主机能够与所有的设备进行通讯,通常的解决方案为利用主机的GPIO (General Purpose Input Output,通用输入输出)接口模拟相应的非标准I2C接口协议,来驱动所述不支持标准I2C接口协议的设备,实现数据通讯,当主机没有GPIO接口,或者GPIO接口数量相当紧张时,就没有足够的GPIO接口资源来模拟非标准I2C接口协议,这样就无法实现驱动所述不支持标准I2C接口协议的设备。

发明内容
鉴于上述问题,本发明的目的在于提供一种同时支持标准和非标准I2C接口的数据传输方法及装置,旨在解决现有I2C通讯系统中,若GPIO接口资源紧张的情况下,无法实现驱动非标准I2C设备的技术问题。一方面,所述同时支持标准和非标准I2C接口的数据传输方法包括下述步骤获取I2C总线中数据线上的地址数据;判断所述地址数据是否为非标准I2C设备的地址;判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输;判断否时,将主机12C接口配置成标准12C接口实现数据传输。另一方面,所述同时支持标准和非标准I2C接口的数据传输装置包括地址获取单元,用于获取I2C总线中数据线上的地址数据;地址判断单元,用于判断所述地址数据是否为非标准I2C设备的地址;通用输入输出配置单元,用于在地址判断单元判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输;标准接口配置单元,用于在地址判断单元判断否时,将主机I2C接口配置成标准12C接口实现数据传输。本发明的有益效果是本发明技术方案首先根据主机寻址所发出的地址数据判断当前主机需要进行数据通讯的从机是标准I2C设备还是非标准I2C设备,若当前地址数据是非标准I2C设备的地址时,将主机I2C接口配置成GPIO接口来模拟非标准I2C接口协议实现数据传输,否则直接将主机I2C接口配置成标准I2C接口实现数据传输,因此从上述描述可以,本发明技术方案实现了主机通过一个I2C接口既可以与标准I2C设备进行数据通讯,也可以与非标准I2C设备进行数据通讯,无需使用额外的GPIO接口,在主机GPIO接口资源紧张的情况下提供了一个很好的数据传输解决方案。


图I是一种I2C总线的数据通讯系统结构图;图2是本发明第一实施例提供的同时支持标准和非标准I2C接口的数据传输方法的流程图;图3是本发明第二实施例提供的同时支持标准和非标准I2C接口的数据传输方法的流程图; 图4是本发明第三实施例提供的同时支持标准和非标准I2C接口的数据传输装置的结构方框图;图5是本发明第四实施例提供的同时支持标准和非标准I2C接口的数据传输装置的结构方框图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在实现本发明之间需要搭建好硬件结构,本发明提供的同时支持标准和非标准I2C接口的数据传输方法和装置适用于采用I2C总线的数据通讯系统,具体的如图I所示,该数据通讯系统包括主机101以及若干从机,所述从机中包括有标准I2C设备102和非标准I2C设备103,这里不限定所述标准I2C设备102和非标准I2C设备103的数量,所述主机101、标准I2C设备102和非标准I2C设备103的SDA接口和SCL接口分别对应连接到I2C总线的串行数据线(SDA线)和串行时钟线(SCL线)上,所述串行数据线和串行时钟线通过上拉电阻连接到正的电源电压上,为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。实施例一:图2示出了本发明第一实施例提供的同时支持标准和非标准I2C接口的数据传输方法的流程图,为了便于说明仅示出了与本发明实施例相关的部分。本实施例提供的同时支持标准和非标准I2C接口的数据传输方法包括步骤S201、获取I2C总线中数据线上的地址数据。在I2C总线协议里,每个从机(标准I2C设备102和非标准I2C设备103)中都保存有一个设备地址,该地址是主机101所知晓的,当主机101要求与从机进行一次数据传输时,首先主机根据协议标准在SCL线上发出时钟信号,当SCL线为高电平,SDA线由高电平跳变到低电平时,表明数据传输考开始,并以该时钟信号为节拍在SDA线上发送需要寻址的从机的地址数据,通常该地址数据位8位,前7为地址,后I位为读写标记,用于表示向从机中写入数据或是读出数据。步骤S202、判断所述地址数据是否为非标准I2C设备的地址。主机101发送起始信号(即SCL线为高电平,SDA线由高电平跳变到低电平)后,所有从机侦听到起始信号后,开始接收主机101发送的地址数据,并将该数据的前7位于自己的地址进行比较,地址一致的从机为主机所要寻址的从机设备,这样即可知晓当前的地址数据是标准I2C设备102的地址还是非标准I2C设备103的地址。步骤S203、判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输。当所述地址数据与其中的一个非标准I2C设备103的地址一致时,该非标准I2C设备103向主机返回一个响应信号,表明准备开始与所述主机101开始数据传输,主机接收·到该响应信号后,将自己的I2C 口配置成GPIO接口,并按照当前非标准I2C设备103所支持的非标准12C接口协议,控制所述GPIO接口输出相应的时序,此时由于主机IOI和非标准I2C设备103具有相同的接口协议认识,因此两者之间可以进行数据传输。步骤S204、判断否时,将主机12C接口配置成标准12C接口实现数据传输。当所述地址数据与其中的一个标准I2C设备102的地址一致时,该标准I2C设备102向主机返回一个响应信号,表明准备开始与所述主机101开始数据传输,主机接收到该响应信号后,将I2C接口配置成标准I2C接口,此时主机101与标准I2C设备102之间即可按照标准I2C接口协议进行数据传输。在本实施例中,由于具有一个地址判断过程,当为标准I2C设备的地址时,主机与标准I2C设备直接按照标准I2C接口协议进行数据传输,当为非标准I2C设备的地址时,主机将I2C接口配置成GPIO接口,并模拟所述非标准I2C设备所述支持的非标准I2C接口协议,来实现与非标准I2C设备进行数据传输。本方法中,主机通过一个I2C接口即可与若干个标准和非标准I2C设备进行数据传输,节约了主机宝贵的GPIO资源。实施例二 :图3示出了本发明第二实施例提供的同时支持标准和非标准I2C接口的数据传输方法的流程图,为了便于说明仅示出了与本发明实施例相关的部分。本实施例提供的同时支持标准和非标准I2C接口的数据传输方法包括步骤S301、获取I2C总线中数据线上的地址数据;步骤S302、判断所述地址数据是否为非标准I2C设备的地址,上述步骤S301、S302与实施例一中步骤S201、S202相同,此处不再赘述。步骤S303、判断是时,释放主机I2C接口的数据线和时钟线。当前的地址数据为非标准I2C设备103的地址时,该非标准I2C设备103会返回一个响应信号,此时主机101释放掉I2C接口连接的SDA线和SCL线的控制权,准备进行后续12C接口配置操作。步骤S304、将所述主机I2C接口的数据线和时钟线配置为普通的通用输入输出接Π ;步骤S305、配置所述通用输入输出接口的接口时序,模拟出当前非标准I2C接口协议来驱动所述地址数据对应的非标准I2C设备,实现数据传输。
在释放SDA线和SCL线的控制权后,首先将主机I2C接口的数据线和时钟线配置为普通的GPIO接口,由于本实施例中,所述非标准I2C设备103的接口时序协议与标准协议不同,比如数据输出格式定义不同、数据应答方式不同等等,但无论如何,主机101先前是已经知悉所述非标准I2C设备103的时序协议,因此主机101只需按照该时序协议的要求来配置所述GPIO接口的接口输出时序,使得主机101与非标准I2C设备103之间具有相同通讯协议,此后两者按照该协议要求实现数据传输即可。步骤S306、判断否时,将主机I2C接口配置成标准I2C接口 ;步骤S307、根据标准I2C接口时序驱动与所述地址数据对应的标准I2C设备,实现数据传输。当前的地址数据为标准I2C设备102的地址时,该标准I2C设备102会返回一个 响应信号,此时主机101将自己的I2C接口配置成标准I2C接口,按照标准的I2C接口时序协议,主机101和标准I2C设备102进行数据传输,具体传输过程与现有方法一致,此处不
再赘述。当上述传输完毕后,主机101发出终止信号,所有从机继续侦听等待主机101发送起始信号进行下一轮数据传输。本实施例中步骤S303-S305为实施例一中步骤S203的具体优选的实施方式,步骤S306、S307为实施例一中步骤S204的具体优选实施方式,通过本实施例,主机的I2C接口可以同时与支持标准和非标准I2C接口的设备进行数据传输。实施例三:图4示出了本发明第三实施例提供的同时支持标准和非标准I2C接口的数据传输装置的流程图,为了便于说明仅示出了与本发明实施例相关的部分。本实施例提供的同时支持标准和非标准I2C接口的数据传输装置包括地址获取单元401,用于获取I2C总线中数据线上的地址数据;地址判断单元402,用于判断所述地址数据是否为非标准I2C设备的地址;通用输入输出配置单元403,用于在地址判断单元402判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输;标准接口配置单元404,用于在地址判断单元402判断否时,将主机I2C接口配置成标准I2C接口实现数据传输。本实施例提供的各个功能单元401-404对应实现了实施例一中的步骤S201-S204,具体的,当主机需要与从机进行数据通讯时,首先需要进行寻址,地址获取单元401获取到主机发送的地址数据后,地址判断单元402进行地址比对判断,当该地址为非标准I2C设备的地址时,通用输入输出配置单元403将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输,否则标准接口配置单元404将主机I2C接口配置成标准I2C接口实现数据传输。实施例四图5示出了本发明第四实施例提供的同时支持标准和非标准I2C接口的数据传输装置的流程图,为了便于说明仅示出了与本发明实施例相关的部分。本实施例提供的同时支持标准和非标准I2C接口的数据传输装置包括地址获取单元51,用于获取I2C总线中数据线上的地址数据;
地址判断单元52,用于判断所述地址数据是否为非标准I2C设备的地址;通用输入输出配置单元53,用于在地址判断单元52判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输;标准接口配置单元54,用于在地址判断单元52判断否时,将主机12C接口配置成标准I2C接口实现数据传输。其中所述通用输入输出配置单元53包括接口释放模块531,用于在地址判断单元判断是时,释放主机I2C接口的数据线和时钟线;第一配置模块532,用于将所述主机I2C接口的数据线和时钟线配置为普通的通用输入输出接口;
通用输入输出接口配置模块533,用于配置所述通用输入输出接口的接口时序,模拟出当前非标准I2C接口协议来驱动所述地址数据对应的非标准I2C设备,实现数据传输。其中所述标准接口配置单元54包括第二配置模块541,用于在地址判断单元判断否时,将主机I2C接口配置成标准12(接口 ;标准接口配置模块542,用于根据标准I2C接口时序驱动与所述地址数据对应的标准I2C设备,实现数据传输。本实施例中功能单元51、52以及功能模块531-533、541_542对应实现了实施例二中的步骤S301-S307。本实施例中,所述通用输入输出配置单元53本质为开发人员在主机内写入的一段执行代码,由于开发人员在搭建I2C总线系统时,已经知悉所选取的非标准I2C设备的非标准I2C时序协议,因此开发人员通过程序将主机I2C接口配置成GPIO 口后,将所述I2C接口当做GPIO 口使用,再配置GPIO相关寄存器参数及其他参数,使得所述GPIO口能够按照当前非标准I2C时序协议输出时序,这样主机和非标准I2C设备具有相同的协议基础后,即可按照协议要求完成数据传输。综上,本发明实施例判断主机发送的数据地址是标准I2C设备还是非标准I2C设备的地址,当为非标准I2C设备的地址时,将主机I2C接口配置成GPIO接口来模拟非标准I2C接口协议实现数据传输,否则直接将主机I2C接口配置成标准I2C接口实现数据传输。因此主机的I2C接口既可驱动标准时序的I2C接口设备的同时,还可以驱动非标准时序的12C接口设备,省去了使用其他GPIO 口模拟12C来驱动非标准时序的12C接口设备的过程,从而达到了节省GPIO 口的目的。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,尽管参照前述实施例对本发明进行了较详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改、或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种同时支持标准和非标准I2C接口的数据传输方法,其特征在于,所述方法包括 获取I2C总线中数据线上的地址数据; 判断所述地址数据是否为非标准I2C设备的地址; 判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输; 判断否时,将主机12C接口配置成标准12C接口实现数据传输。
2.如权利要求I所述方法,其特征在于,所述判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输步骤,具体包括 判断是时,释放主机I2C接口的数据线和时钟线; 将所述主机I2C接口的数据线和时钟线配置为普通的通用输入输出接口 ; 配置所述通用输入输出接口的接口时序,模拟出当前非标准I2C接口协议来驱动所述地址数据对应的非标准I2C设备,实现数据传输。
3.如权利要求I所述方法,其特征在于,所述判断否时,将主机I2C接口配置成标准I2C接口实现数据传输步骤,具体包括 判断否时,将主机I2C接口配置成标准I2C接口 ; 根据标准I2C接口时序驱动与所述地址数据对应的标准I2C设备,实现数据传输。
4.一种同时支持标准和非标准I2C接口的数据传输装置,其特征在于,所述装置包括 地址获取单元,用于获取I2C总线中数据线上的地址数据; 地址判断单元,用于判断所述地址数据是否为非标准I2C设备的地址; 通用输入输出配置单元,用于在地址判断单元判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输; 标准接口配置单元,用于在地址判断单元判断否时,将主机I2C接口配置成标准I2C接口实现数据传输。
5.如权利要求4所述装置,其特征在于,所述通用输入输出配置单元包括 接口释放模块,用于在地址判断单元判断是时,释放主机I2C接口的数据线和时钟线;第一配置模块,用于将所述主机I2C接口的数据线和时钟线配置为普通的通用输入输出接口 ; 通用输入输出接口配置模块,用于配置所述通用输入输出接口的接口时序,模拟出当前非标准I2C接口协议来驱动所述地址数据对应的非标准I2C设备,实现数据传输。
6.如权利要求4所述装置,其特征在于,所述标准接口配置单元包括 第二配置模块,用于在地址判断单元判断否时,将主机I2C接口配置成标准I2C接口 ;标准接口配置模块,用于根据标准I2C接口时序驱动与所述地址数据对应的标准I2C设备,实现数据传输。
全文摘要
本发明适用于通讯接口领域,提供一种同时支持标准和非标准I2C接口的数据传输方法及装置,所述方法包括获取I2C总线中数据线上的地址数据;判断所述地址数据是否为非标准I2C设备的地址;判断是时,将主机I2C接口配置成通用输入输出接口来模拟非标准I2C接口协议实现数据传输;判断否时,将主机I2C接口配置成标准I2C接口实现数据传输。本发明技术方案中,主机I2C接口既可驱动标准时序的I2C接口设备的同时,还可以驱动非标准时序的I2C接口设备,省去了使用其他GPIO口模拟I2C来驱动非标准时序的I2C接口设备的过程,从而达到了节省GPIO口的目的。
文档编号G06F13/40GK102929828SQ201210398780
公开日2013年2月13日 申请日期2012年10月18日 优先权日2012年10月18日
发明者张强, 周辉 申请人:广东欧珀移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1