使用I2C总线与主机连接的从机及其通信方法技术

技术编号:15355702 阅读:107 留言:0更新日期:2017-05-17 14:09
本发明专利技术公开一种从机使用I2C总线与主机连接的通信方法,包括:在从机处于发送模式时,检测字节传输完成标志位的状态;当检测到所述字节传输完成标志位处于第一状态,清除所述字节传输完成标志位以在所述发送模式中终止向所述主机发送数据;其中,所述第一状态表示所述主机请求的所有数据已由所述从机发送完成。本发明专利技术还提供了采用上述通信方法的从机。本发明专利技术在兼容标准的I2C总线协议的基础上,配置简单,且从机处于发送状态时,在完成最后一字节数据的传输时无需切换从机的工作模式来停止从机继续传输数据,响应快速,同时,无需额外空读数据寄存器或者写入空数据来停止从机继续传输数据,可靠性高。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种从机使用I2C总线与主机连接的从机及其通信方法
技术介绍
I2C串行总线由两根串行线构成,数据信号线(SDA)与时钟信号线(SCL),分别负责传输数据与时钟。其通信方式为主从模式,主机发起通信(读或写请求),并提供总线时钟。从机对主机的请求进行响应,其中,及时判断主机发送的各种地址、命令位、数据、响应位等,然后根据不同模式通过软件配置控制寄存器来调整自身的模式,以配合完成通信。在传统的I2C设计中,由数据寄存器的空和满来触发下一次的数据传输。因此,当从机处于发送状态时,发送最后一次数据后,数据寄存器变空,此时,依然会触发传输请求标志信号而再向数据寄存器填入数据,如图1中的虚线框所示。主机提供时钟信号给从机,每次9个周期。在从机发送模式中,数据寄存器空时会触发中断,应及时填入数据;否则,可能造成下溢。而在从机接收模式中,数据寄存器满时会触发中断,应及时读取数据;否则,可能造成上溢。当从机在发送模式中发送完所需传输的数据的最后一字节数据后,主机已经获取全部数据,但由于从机处于发送模式,数据寄存器空依然会再次触发中断响应以指示从机再向数据寄存器填入欲发送的数据,但此时从机并不应该再向数据寄存器填入新的数据。为了防止从机传送完主机所请求的数据后继续向主机传输数据,需要在最后一笔数据传输后想办法停止触发传输,目前现有技术中有以下几种方式:1、鉴于从机发送模式下,最后一字节数据传输后的缺陷(一直等待填入新数据),可以关闭发送数据寄存器空(TxE)中断,但是,此方法需要硬件支持独立关闭发送数据寄存器空的中断,并且,在关闭该发送数据寄存器空中断后,何时打开该发送数据寄存器空中断将成为新问题。例如,通常当从机发送完所有数据后便切换到接收模式,此时若接收到主机发送来的再次请求从机发送数据的命令,则从机需要在接收数据寄存器满(RxF)中断中加入逻辑判断来打开发送其数据寄存器空中断再次进入发送模式;2、将从机的模式切换到接收状态,通过再额外空读一次接收数据寄存器来使接收数据寄存器满中断不被触发,从而停止中断响应以终止从机向主机发送数据,但是程序的流程繁琐且行为不易于理解,并且在从机与主机多次进行数据传输时,需要判断繁琐的状态位,反复在发送模式和接收模式之间切换从机的工作模式;3、通过写入空(dummy)数据来填满发送数据寄存器空,进而防止宕在发送数据寄存器空中断中,但是,写入空数据可能导致再次传输时发送的数据错误,影响传输。
技术实现思路
有鉴于此,有必要提供一种从机使用I2C总线与主机连接的从机及其通信方法。本专利技术解决上述技术问题所采用的技术方案是提供了一种从机使用I2C总线与主机连接的通信方法,包括:在从机处于发送模式时,检测字节传输完成标志位的状态;当检测到所述字节传输完成标志位处于第一状态,清除所述字节传输完成标志位以在所述发送模式中终止向所述主机发送数据;其中,所述第一状态表示所述主机请求的所有数据已由所述从机发送完成。其中,所述通信方法还包括:当检测到所述字节传输完成标志位处于第二状态,则继续向所述主机发送数据,其中,所述第二状态表示所述主机请求发送的部分数据已发送完成。其中,所述向所述主机发送数据,包括:向所述从机的发送数据寄存器写入新的数据。其中,所述第一状态和所述第二状态根据所述字节传输完成标志位的数值以及其数值的时长来确定。其中,所述第一状态的时长大于所述第二状态的时长。其中,所述字节传输完成标志位在发送模式下,每完成发送一字节数据则被设置为所述第二状态,且当所述主机请求发送的所有数据发送完成时被设置为所述第一状态。其中,还包括:在处于接收模式时,接收所述主机当前发送的数据;当完成接收所述主机当前发送的数据时,所述字节传输完成标志位处于第二状态,则继续获取所述主机发送的数据。其中,所述接收所述主机当前发送的数据,包括:将所接收的所述主机当前发送的数据写入所述从机的接收数据寄存器中。其中,所述字节传输完成标志位在接收模式下,每完成接收一字节数据则被设置为所述第二状态。其中,还包括:硬件自动识别所接收到的所述主机的读写命令信号且在所接收的从机地址与自身地址匹配时,根据所述读写命令信号自动配置所述从机的工作模式为所述发送模式或接收模式。其中,所述根据所述读写命令信号自动配置所述从机的工作模式为所述发送模式或接收模式包括:获取对应于所述从机地址的读写命令位;在所述读写命令位为第一符号时,将所述从机的驱动程序配置为发送模式,在所述读写命令位为第二符号时,将所述从机的驱动程序配置为接收模式。本专利技术解决上述技术问题所采用的另一技术方案是提供了一种使用I2C总线与主机连接的从机,包括:检测模块,用于在所述从机处于发送模式时,检测字节传输完成标志位的状态;处理模块,耦接于所述检测模块,用于当所述检测模块检测到所述字节传输完成标志位处于第一状态时,清除所述字节传输完成标志位以在所述发送模式中终止向所述主机发送数据;其中,所述第一状态表示所述主机请求的所有数据已由所述从机发送完成。其中,所述处理模块还用于:当所述检测模块检测到所述字节传输完成标志位处于第二状态,则继续向所述主机发送数据,其中,所述字节传输完成标志位的第二状态用于在所述从机处于发送模式时表示所述主机请求发送的部分数据已发送完成。本专利技术解决上述技术问题所采用的又一技术方案是提供了一种使用I2C总线与主机连接的从机,包括:运算逻辑电路,用于在所述从机处于发送模式时,检测字节传输完成标志位的状态;控制电路,耦接于所述运算逻辑电路,用于当检测模块检测到所述字节传输完成标志位处于第一状态时,清除所述字节传输完成标志位以在所述发送模式中终止向所述主机发送数据;其中,所述第一状态表示所述主机请求的所有数据已由所述从机发送完成。本专利技术的有益效果有:相对于传统的I2C设计,在兼容标准的I2C总线协议的基础上,配置简单,且从机处于发送状态时,在完成最后一字节数据的传输时无需切换从机的工作模式来停止从机继续传输数据,响应快速。此外,也无需额外空读数据寄存器或者写入空数据来停止从机继续传输数据,可靠性高。附图说明下面将结合附图及实施方式对本专利技术作进一步说明,附图中:图1是传统的I2C设计中从机的波形图;图2是本专利技术第一实施例的从机的通信方法的流程图;图3是本专利技术上述第一实施例的I2C设计中从机的波形图;图4是本专利技术第二实施例的从机的通信方法的部分流程图;图5是本专利技术上述第二实施例的I2C设计中从机的波形图;图6是本专利技术第一实施例的从机的结构示意图;图7是本专利技术第二实施例的从机的结构示意图。具体实施方式为使本领域的技术人员更好地理解本专利技术的技术方案,下面结合附图和具体实施方式对本专利技术的技术方案做进一步详细描述。为便于理解本专利技术,先对本专利技术在从机中新设置的字节传输完成标志位(byteend,英文简称:BND)进行说明。该字节传输完成标志位BND用于标识数据传输的状态。在从机处于发送模式过程中,该字节传输完成标志位BND至少可以为第一字符或第二字符。其中,该第一字符用于触发从机继续发送数据,例如,用于触发从机的处理器向从机的发送数据寄存器写入数据;第二字符用于触发从机停止发送数据,例如,用于触发从机的处理器停止向从机的发送数据寄存器写入数据。本文档来自技高网
...
使用I2C总线与主机连接的从机及其通信方法

【技术保护点】
一种从机使用I2C总线与主机连接的通信方法,其特征在于,包括:在从机处于发送模式时,检测字节传输完成标志位的状态;当检测到所述字节传输完成标志位处于第一状态,清除所述字节传输完成标志位以在所述发送模式中终止向所述主机发送数据;其中,所述第一状态表示所述主机请求的所有数据已由所述从机发送完成。

【技术特征摘要】
1.一种从机使用I2C总线与主机连接的通信方法,其特征在于,包括:在从机处于发送模式时,检测字节传输完成标志位的状态;当检测到所述字节传输完成标志位处于第一状态,清除所述字节传输完成标志位以在所述发送模式中终止向所述主机发送数据;其中,所述第一状态表示所述主机请求的所有数据已由所述从机发送完成。2.根据权利要求1所述的通信方法,其特征在于,所述通信方法还包括:当检测到所述字节传输完成标志位处于第二状态,则继续向所述主机发送数据,其中,所述第二状态表示所述主机请求发送的部分数据已发送完成。3.根据权利要求1或2所述的通信方法,其特征在于,所述向所述主机发送数据,包括:向所述从机的发送数据寄存器写入新的数据。4.根据权利要求2所述的通信方法,其特征在于,所述第一状态和所述第二状态根据所述字节传输完成标志位的数值以及其数值的时长来确定。5.根据权利要求2所述的通信方法,其特征在于,所述第一状态的时长大于所述第二状态的时长。6.根据权利要求2所述的通信方法,其特征在于,所述字节传输完成标志位在发送模式下,每完成发送一字节数据则被设置为所述第二状态,且当所述主机请求发送的所有数据发送完成时被设置为所述第一状态。7.根据权利要求1所述的通信方法,其特征在于,还包括:在处于接收模式时,接收所述主机当前发送的数据;当完成接收所述主机当前发送的数据时,所述字节传输完成标志位处于第二状态,则继续获取所述主机发送的数据。8.根据权利要求7所述的通信方法,其特征在于,所述接收所述主机当前发送的数据,包括:将所接收的所述主机当前发送的数据写入所述从机的接收数据寄存器中。9.根据权利要求7所述的通信方法,其特征在于,所述字节传输完成标志位在接收模式下,每完成接收一字节数据则被设置为所述第二状态。...

【专利技术属性】
技术研发人员:卢书杰吴哲
申请(专利权)人:杰发科技合肥有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1