C总线装置及其通讯方法

文档序号:9929484阅读:405来源:国知局
C总线装置及其通讯方法
【技术领域】
[0001]本发明涉及I2C总线装置及其通讯方法,具体涉及一种大数据主设备传输的I2C总线装置及其通讯方法,属于I2C总线通讯技术领域。
【背景技术】
[0002]传统通讯电源系统中,I2C通讯功能应用十分广泛,业界已形成标准通信协议PMBus数字电源管理协议。该协议是通过传输接口及命令语言来促进电源本体与其他设备通讯。例如,通讯电源与监控管理主机之间的通信采用I2C通讯功能即PMBus电源管理协议。
[0003]而这种通讯电源与监控管理主机之间的I2C通讯协议,实际上通讯电源在PMBus环境中充当从器件,监控管理主机充当I2C通讯主机。通讯电源主控芯片在功能实现上是I2C接收中断服务程序处理者,意在执行协议中的传输链路层。
[0004]传统I2C总线应用情况图如图1所示:
[0005]但是无论单片机还是DSP,微处理器在作为电源主控芯片时,不可能单一的执行I2C这一个工作,而是全面控制系统的任何功能。PMBus总线协议只是规范化从设备配置数据方式,而主控设备不是基于自主设计的,也不作为一个转换器。多数时候主设备是计算机,只负责单一的处理I2C通讯总线数据。
[0006]以DSP主控芯片举例,I2C功能的实现是通过I2C状态寄存器状态标志位置I或清O来判断的。传统的DSP芯片作为I2C主机来实现信息通讯功能时,每次发送数据较少,执行主函数周期较长,不利于大数据量传输,并且直接影响其他功能的控制。

【发明内容】

[0007]本发明的目的是为了解决现有的I2C总线装置及其通讯方法通讯需要占用主循环时间,造成通讯时间长,通讯效率低的问题。
[0008]本发明的技术方案是:一种大数据主设备传输的I2C总线装置,包括主设备、I2C总线和若干从设备,主设备和从设备之间通过I2C总线建立连接,所述主设备包括I2C控制器、状态寄存器、模式寄存器、地址寄存器、计数器、数据接收寄存器、接收移位寄存器、数据发送寄存器和发送移位寄存器,I2C控制器包括I2C发送、接收函数体计算单元,I2C控制器的输出端分别连接状态寄存器、模式寄存器、地址寄存器和数据发送寄存器,数据发送寄存器通过发送移位寄存器连接I2C总线,数据接收寄存器的输入端通过接收移位寄存器连接I2C总线,数据接收寄存器的输出端连接I2C控制器,所述计数器与I2C控制器建立双向数据传输连接,I2C控制器与I2C总线建立双向数据传输连接。
[0009]所述12C总线包括SDA线和SCL线,I2C控制器与SCL线建立双向数据传输连接,接收移位寄存器和发送移位寄存器均与SDA寄存器建立连接,所述从设备分别与SDA线和SCL线建立双向数据传输连接。
[0010]状态寄存器:用于判断总线状态;
[0011 ]地址寄存器:用于配置从机地址;
[0012]模式寄存器:用于配置I2C传输模式,及其发送位、停止位传输状态;
[0013]数据发送寄存器:用于装载命令字节;
[0014]数据接收寄存器:用于保存I2C总线的接收数据;
[0015]I2C发送、接收函数体计算单元:用于进行读或写函数操作。
[0016]计数器,用于记录进入函数单元的次数。
[0017]基于所述一种大数据主设备传输的I2C总线装置的通讯方法,所述通讯方法包括发送数据方法和读取数据方法,所述发送数据方法包括以下步骤:
[0018]步骤一、根据状态寄存器判断总线状态,总线处于空闲状态时,进入步骤二;
[0019]步骤二、配置从机地址,设置主机模式进入发射模式,并判定起始条件和写从器件地址是否发送完成,主要包括将模式寄存器起始条件位STT置I并跳出函数体;所述配置从机地址方法包括将地址字节赋值给地址寄存器的过程;
[0020]待主循环再次进入I2C写命令函数,根据模式寄存器的起始条件位判定初始位是否发送完成。
[0021]步骤三、若起始条件和写从器件地址发送完成,向发送寄存器复制,并判定命令字节是否发送完成,具体包括:将命令字节装载在I2C数据发送寄存器,并跳出I2C写命令函数;
[0022]待再次进入函数体,判断状态寄存器中发送完成位是否置位。
[0023]步骤四、在命令字节发送完成状态下,重复进行步骤三直至发送完所有的数据后置模式寄存器停止条件位;
[0024]步骤五、进入函数体单元,根据模式寄存器停止条件位判定命令函数是否执行完成。
[0025]所述读取数据方法包括以下步骤:
[0026]步骤一、根据状态寄存器判断总线状态,总线处于空闲状态时,进入步骤二;
[0027]步骤二、配置从机地址,设置主机模式进入发射模式,并判定起始条件和写从器件地址是否发送完成,具体包括将模式寄存器起始条件位置I并跳出函数体;所述配置从机地址方法包括将地址字节赋值给地址寄存器的过程;
[0028]待主循环再次进入I2C写命令函数,根据模式寄存器的起始条件位判定初始位是否发送完成。
[0029]步骤三、若起始条件和写从器件地址发送完成,将命令字节装载在I2C数据发送寄存器,具体包括:将命令字节装载在I2C数据发送寄存器,并跳出I2C写命令函数;
[0030]待再次进入函数体,判断状态寄存器中发送完成位是否置位。
[0031]步骤四、清除总线忙位,再次配置从机地址,设置主机模式进入接收模式,并判定起始条件和从地址是否发送完成;
[0032]步骤五、若起始条件和写从器件地址发送完成,进入读命令函数体单元,并保存接收数据;
[0033]步骤六、在命令字节发送完成状态下,重复进行步骤五直至发送完所有的数据后置模式寄存器停止条件位;
[0034]步骤七、进入函数体单元,根据模式寄存器停止条件位判定读命令函数是否执行完成。
[0035]本发明与现有技术相比具有以下效果:本发明的I2C功能函数不跟随硬件的动作单步执行,而是释放等待时间去执行其它任务。例如,以传统I2C写功能函数为例,只有当数据发送完成后,才能跳出函数,去执行别的功能,大大降低了控制芯片的利用率。本发明专利考虑到系统内部,监控可编程芯片与功率可编程芯片之间需要大量的数据交互,通过减少每次通讯时的数据传输量,来减少函数执行时间。本发明的方法解决了DSP(MCU)作为主设备时,大量传输数据的同时可以正常执行其他控制、通讯功能,提高了通讯效率和通讯质量。本发明同时兼容从设备中断接收I2C数据即Pmbus协议的传输方法。
【附图说明】
[0036]图1,传统I2C总线应用状况图;
[0037]图2,传统I2C主设备发送数据事件流程图;
[0038]图3,传统I2C主设备读取数据事件流程图;
[0039]图4,本发明的原理不意图;
[0040]图5,本发明的I2C总线装置的结构框图;
[0041]图6,本发明不占用主循环时间的单帧大数据量主设备传输的I2C通讯发送数据流程图;
[0042]图7,本发明不占用主循环时间的单帧大数据量主设备传输的I2C通讯接收数据流程图。
【具体实施方式】
[0043]结合【附图说明】本发明的【具体实施方式】,本发明的一种大数据DSP主设备传输的I2C总线装置,包括DSP主设备、I2C总线和若干从设备,DSP主设备和从设备之间通过I2C总线建立连接,所述DSP主设备包括I2C控制器、状态寄存器、模式寄存器、地址寄存器、计数器、数据接收寄存器、接收移位寄存器、数据发送寄存器和发送移位寄存器,I2C控制器包括I2C发送、接收函数体计算单元,I2C控制器的输出端分别连接状态寄存器、模式寄存器、地址寄存器和数据发送寄存器,数据发送寄存器通过发送移位寄存器连接I2C总线,数据接收寄存器的输入端通过接收移位寄存器连接I2C总线,数据接收寄存器的输出端连接I2C控制器,所述计数器与I2C控制器建立双向数据传输连接,I2C控制器与I2C总线建立双向数据传输连接。
[0044]所述I2C总线包括SDA线和SCL线,I2C控制器与SCL线建立双向数据传输连接,接收移位寄存器和发送移位寄存器均与SDA寄存器建立连接,所述从设备分别与SDA线和SCL线建立双向数据传输连接。
[0045]状态寄存器:用于判断总线状态;
[0046]地址寄存器:用于配置从机地址;
[0047]模式寄存器:判断起始条件机写从器件地址发送完成;
[0048]数据发送寄存器:用于装载命令字节;
[0049]数据接收寄存器:用于保存I2C总线的接收数据;
[0050]I2C发送、接收函数体计算单元:用于进行读或写函数操作。
[0051]计数器,用于记录进入发送数据函数或接收
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1