多设备在主模式下进行iic通信的方法及系统的制作方法

文档序号:6493361阅读:2053来源:国知局
多设备在主模式下进行iic通信的方法及系统的制作方法
【专利摘要】一种多设备在主模式下进行IIC通信的系统,包括连接在一条IIC总线上的多个主设备及一从设备,每一主设备在IIC通信中只具有主模式,从设备在IIC通信中只具有从模式,且每一主设备均可通过IIC通信协议来读写该从设备。各个主设备轮询该从设备,当其中一个主设备需要发送数据到另一个主设备时,该其中一个主设备通过IIC总线将数据发送给该从设备,数据将暂存于该从设备中,该另一个主设备再将数据从该从设备中读出,从而得到该其中一个主设备发送的数据。本发明还提供一种相应的通信方法,通过借用第三方IIC从设备来缓存数据,可实现多个处于主模式的设备之间的数据传输,通讯安全可靠,且不需额外添加硬件资源,开发难度较低。
【专利说明】多设备在主模式下进行IIC通信的方法及系统
【技术领域】
[0001]本发明涉及通讯【技术领域】,特别是涉及一种多设备在主模式下进行Iic(Inter-1ntegrated Circuit)通讯的方法。
【背景技术】
[0002]IIC (也可以表示为I2C或I2C)总线是一种两线式串行总线,用于连接微控制器及其外围设备。采用IIC总线管理的设备,称为IIC设备。在IIC通讯中,一次数据的传输是发送器将数据发送给接收器,完成此数据传输需要一个主设备(主机)和一个从设备(从机)。根据Iic通讯标准,同一时间里两个传输数据的设备不能同时处于主模式,即两个只具有主模式的设备是无法直接通讯的,必须一个器件处于主模式,另一个设备处于从模式,且同一时间只能有一个设备发送数据,即一次数据的传输是:主设备发送数据,从设备接收数据;或从设备发送数据,主设备接收数据。
[0003]然而,在实际应用中,由于软、硬件资源的限制,或者为了降低开发难度,有时需要使两个同时处于主模式下的Iic设备实现数据传输,但这种情形不符合IIC的通信要求,按照常规无法进行数据传输。

【发明内容】

[0004]有鉴于此,有必要提供一种多设备在主模式下进行IIC通信的系统,以解决上述问题。
[0005]一种多设备在主模式下进行IIC通信的系统,包括连接在一条IIC总线上的多个主设备及至少一个从设备,每一主设备在IIC通信中只具有主模式,从设备在IIC通信中只具有从模式,且每一主设备均可通过IIC通信协议来读写该从设备。各个主设备轮询该从设备,当其中一个主设备需要发送数据到另一个主设备时,该其中一个主设备通过Iic总线将数据发送给该从设备,数据将暂存于该从设备中,该另一个主设备再通过IIC总线将数据从该从设备中读出,从而得到该其中一个主设备发送的数据。
[0006]还有必要提供一种多设备在主模式下进行IIC通信的方法,以解决上述问题。
[0007]—种多设备在主模式下进行IIC通信的方法,应用于一种IIC通信系统中,该系统包括连接在一条Iic总线上的多个主设备及至少一个从设备,每一主设备均可通过IIC通信协议来读写该从设备。该从设备包括一个第三方数据缓存区,该第三方数据缓存区用于缓存数据。各个主设备具有不同的工作模式,包括空闲模式、发送模式及接收模式,在一次数据传输过程中,作为数据发送方的主设备发出数据传输开始信号START和数据传输终止信号STOP,作为数据接收方的主设备发出数据传输响应信号ACK。所述方法包括以下步骤:
一路IIC总线上各个处于空闲模式下的主设备以一第一固定频率轮询从设备的第三方数据缓存区的数据;
其中一个主设备在需要向另一个主设备传输数据时,写入START信号到第三方数据缓存区中,请求发送数据,该其中一个主设备进入发送模式,并以一第二固定频率轮询该第三方数据缓存区的数据;
当该另一个主设备读取到第三方数据缓存区中的START信号后,该另一个主设备进入接收模式,并写入ACK信号到第三方数据缓存区中,响应数据发送,并以第二固定频率轮询该第三方数据缓存区的数据;
若该其中一个主设备读取到第三方数据缓存区中的ACK信号时,该其中一个主设备将需要传输的数据分次连续地写入到第三方数据缓存区内而发送给该另一个主设备;
若数据已经传输完毕,则该其中一个主设备写入STOP信号到第三方数据缓存区中,并退出发送模式而返回空闲模式,以第一固定频率轮询第三方数据缓存区的数据;及
当该另一个主设备读取第三方数据缓存区中的STOP信号时,该另一个主设备退出接收模式,并返回空闲模式,以第一固定频率轮询第三方数据缓存区的数据。
[0008]本发明的IIC通信系统,通过借用第三方IIC从设备来缓存数据,可实现多个处于主模式的设备之间的数据传输,通讯安全可靠,且不需额外添加硬件资源,开发难度较低。
【专利附图】

【附图说明】
[0009]图1为本发明的一种多设备在主模式下进行数据传输的系统示意图。
[0010]图2为本发明的主设备的三种工作模式的切换示意图。
[0011]图3为本发明使用的IIC传输信号的定义表。
[0012]图4为本发明的一种多设备在主模式 下进行数据传输的方法流程图。
[0013]图5为本发明的主设备处于发送模式下发送数据的具体流程图。
[0014]图6为本发明的主设备处于接收模式下接收数据的具体流程图。
[0015]主要元件符号说明
【权利要求】
1.一种多设备在主模式下进行Iic通信的系统,包括连接在一条IIC总线上的多个主设备及至少一个从设备,每一主设备在IIC通信中只具有主模式,从设备在IIC通信中只具有从模式,且每一主设备均可通过Iic通信协议来读写该从设备,其特征在于: 各个主设备轮询该从设备,当其中一个主设备需要发送数据到另一个主设备时,该其中一个主设备通过Iic总线将数据发送给该从设备,数据将暂存于该从设备中,该另一个主设备再通过IIC总线将数据从该从设备中读出,从而得到该其中一个主设备发送的数据。
2.如权利要求1所述的系统,其特征在于,该从设备包括一个第三方数据缓存区,该第三方数据缓存区用于缓存数据。
3.如权利要求2所述的系统,其特征在于,各个主设备具有不同的工作模式,该工作模式包括空闲模式、发送模式及接收模式,在一次数据传输过程中,作为数据发送方的主设备发出数据传输开始信号START和数据传输终止信号STOP,作为数据接收方的主设备发出数据传输响应信号ACK,作为数据发送方的主设备每次将数据写入该从设备的第三方数据缓存区中而发送给数据接收方后,查询该第三方数据缓存区而等待数据接收方发送的数据传输响应信号ACK ;若数据发送方在一设定的时间内没有在该第三方数据缓存区中查询到信号ACK,则数据传输终止。
4.如权利要求3所述的系统,其特征在于,该第三方数据缓存区具有一个字节的数据存储空间,各个主设备每次写入一个字节的数据到该第三方数据缓存区中。
5.如权利要求4所述的系统,其特征在于,作为数据发送方的主设备还发出数据信号DATA_L0W4BIT和数据信号DATA_HIGH4BIT,该数据传输响应信号ACK、数据信号DATA_L0W4BIT和数据信号DATA_HIGH4BIT的低四位均为数据位,且数据均为任意数据,高四位均为标识位,并具有固定的数据,在数据传输过程中,该数据信号DATA_L0W4BIT的低四位数据为传输字节的低四位数据,`该数据信号DATA_HIGH4BIT的低四位数据为传输字节的高四位数据。
6.如权利要求5所述的系统,其特征在于,在单个字节的数据传输完毕后,数据接收方将接收到的传输字节的低四位数据及高四位数据合并为一个字节的数据并保存。
7.一种多设备在主模式下进行IIC通信的方法,应用于一种IIC通信系统中,该系统包括连接在一条IIC总线上的多个主设备及至少一个从设备,每一主设备均可通过IIC通信协议来读写该从设备,该从设备包括一个第三方数据缓存区,该第三方数据缓存区用于缓存数据,其特征在于,各个主设备具有不同的工作模式,包括空闲模式、发送模式及接收模式,在一次数据传输过程中,作为数据发送方的主设备发出数据传输开始信号START和数据传输终止信号STOP,作为数据接收方的主设备发出数据传输响应信号ACK,所述方法包括以下步骤: 一路IIC总线上各个处于空闲模式下的主设备以一第一固定频率轮询从设备的第三方数据缓存区的数据; 其中一个主设备在需要向另一个主设备传输数据时,写入START信号到第三方数据缓存区中,请求发送数据,该其中一个主设备进入发送模式,并以一第二固定频率轮询该第三方数据缓存区的数据; 当该另一个主设备读取到第三方数据缓存区中的START信号后,该另一个主设备进入接收模式,并写入ACK信号到第三方数据缓存区中,响应数据发送,并以第二固定频率轮询该第三方数据缓存区的数据; 若该其中一个主设备读取到第三方数据缓存区中的ACK信号时,该其中一个主设备将需要传输的数据分次连续地写入到第三方数据缓存区内而发送给该另一个主设备; 若数据已经传输完毕,则该其中一个主设备写入STOP信号到第三方数据缓存区中,并退出发送模式而返回空闲模式,以第一固定频率轮询第三方数据缓存区的数据;及 当该另一个主设备读取第三方数据缓存区中的STOP信号时,该另一个主设备退出接收模式,并返回空闲模式,以第一固定频率轮询第三方数据缓存区的数据。
8.如权利要求7所述的方法,其特征在于,该第三方数据缓存区具有一个字节的数据存储空间,该步骤“若该其中一个主设备读取到第三方数据缓存区中的ACK信号时,该其中一个主设备将需要传输的数据分次连续地写入到第三方数据缓存区中而发送给第二主设备”具体包括以下步骤: 该其中一个主设备写入一数据信号DATA_L0W4BIT到第三方数据缓存区中,其中,该数据信号DATA_L0W4BIT的低四位数据为传输字节的低四位数据,该数据信号DATA_L0W4BIT的高四位为标识位,并具有固定的数据; 当该另一个主设备读取到第三方数据缓存区中的数据信号DATA_L0W4BIT时,该另一个主设备响应该传输字节的低四位数据的发送请求,写入ACK信号到第三方数据缓存区中; 若该其中一个主设备读取到第三方数据缓存区中的ACK信号时,该其中一个主设备继续写入数据信号DATA_HIGH4BIT到第三方数据缓存区中,其中,该数据信号DATA_HIGH4BIT的低四位数据为传输字节的高`四位数据,该数据信号DATA_HIGH4BIT的高四位为标识位,并具有固定的数据; 当该另一个主设备读取到第三方数据缓存区中的数据信号DATA_HIGH4BIT时,该另一个主设备响应该传输字节的高四位数据的发送请求,写入ACK信号到第三方数据缓存区中,并将接收到的传输字节的低四位数据及高四位数据合并为一个字节的数据;及 若该其中一个主设备读取到第三方数据缓存区中的ACK信号时,该其中一个主设备判断是否还有数据需要传输,如果有,则循环执行上述步骤,继续传输下一个字节的数据,直到数据传输完毕。
9.如权利要求8所述的方法,其特征在于,该另一个主设备响应该传输字节的低四位数据的发送请求而写入到第三方数据缓存区中的ACK信号的低四位数据为该接收的传输字节的低四位数据,该步骤“该其中一个主设备继续写入数据信号DATA_HIGH4BIT到第三方数据缓存区中”之前还包括步骤: 该其中一个主设备检查该ACK信号的低四位数据与该其中一个主设备发送的传输字节的低四位数据是否相同,如果不同,则继续等待下一次轮询第三方数据缓存区的机会,直到等待时间超时,判断传输字节的低四位数据发送失败;如果相同,则判断传输字节的低四位数据发送成功。
10.如权利要求8所述的方法,其特征在于,该另一个主设备响应该传输字节的高四位数据的发送请求而写入到第三方数据缓存区中的ACK信号的低四位数据为该接收的传输字节的高四位数据,该步骤“该其中一个主设备判断是否还有数据需要传输”之前还包括步骤: 该其中一个主设备检查该ACK信号的低四位数据与该其中一个主设备发送的传输字节的高四位数据是否相同,如果不同,则继续等待下一次轮询第三方数据缓存区的机会,直到等待时间超时,判断传输字节的高四位数据发送失败;如果相同,则判断传输字节的高四位数据发送成功。
11.如权利要求7 所述的方法,其特征在于,该第二固定频率高于该第一固定频率。
【文档编号】G06F13/38GK103885910SQ201210561022
【公开日】2014年6月25日 申请日期:2012年12月21日 优先权日:2012年12月21日
【发明者】滕玮, 李东明 申请人:国基电子(上海)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1