一种I2C总线的仲裁方法及系统技术方案

技术编号:17406709 阅读:44 留言:0更新日期:2018-03-07 04:39
本发明专利技术提供了一种I2C总线的仲裁方法及系统,二者均在I2C总线当前空闲时将I2C总线的控制权分配给当前主控器件,而在I2C总线当前非空闲时基于接收到的状态寄存器当前反馈的相应标志位的值,实现对上述当前主控器件的总线控制权的统筹分配;且二者均实时采集各当前确权主控器件的I2C总线通信状态,并在每次判定相应当前确权主控器件的I2C总线通信结束后,收回该相应当前确权主控器件的I2C总线控制权,并控制上述状态寄存器释放其BUSY标志位;所述的当前确权主控器件为当前分配有I2C总线的控制权的主控器件。本发明专利技术能够实现多主控器件状态下I2C总线控制权的自由切换,提高了I2C总线的通信速率、通信稳定性和通信质量。

An arbitration method and system for I2C bus

The present invention provides a method and system of the I2C bus, I2C bus and two are assigned to the current control of the main control device in the current I2C bus is idle, and based on the corresponding state register receives the feedback bit value in I2C bus at idle, to realize bus allocation the current master device control; and the two are real-time acquisition of I2C bus communication is the main control device the current state of each, and in every decision of I2C bus communication is the corresponding master device after the end of the I2C bus to take control of the corresponding current is the main control device, and control the status register the release of the BUSY flag; the right of the main control device for the current distribution control of the main control device with I2C bus. The invention can realize free switching of I2C bus control power under the condition of multi master devices, and improves the communication speed, communication stability and communication quality of I2C bus.

【技术实现步骤摘要】
一种I2C总线的仲裁方法及系统
本专利技术涉及总线通信领域,具体是一种I2C总线的仲裁方法及系统。
技术介绍
I2C(Inter-IntegratedCircuit)总线,是由PHILIPS公司开发的两线式(串行数据(SDA)线和串行时钟(SCL)线)串行总线,通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息,是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点,已成为微电子通信控制领域广泛采用的一种总线标准。申请公布号为“CN106155971A”的中国专利申请公开了一种I2C总线的仲裁方法,该方法包括:接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。该方案对于各个主控器件的I2C总线控制请求可以相对准确高效地进行仲裁,减少冲突产生的概率,从而减少主控器件获取仲裁结果的延时,有利于处理实时业务。可见,基于上述公开的方案,在多主控器件的I2C总线链路中,让一个主控器件长期占用总线的控制权,即使在没有数据发送任务时,该主控器件也会一直独占总线的控制权,直至另一个主控器件需要发送数据包时,才会通过仲裁模块申请释放总线的控制权,从而进行控制权的切换。这使得总线资源一直处于“非A即B”的被占用状态,造成了总线资源的极大浪费。另外,当一个主控器件长期占有总线的控制权,总线一旦出现异常,比如出现与地短接现象,上述公开的方案无法做出即时的判断,会认为是总线控制下的正常电平拉低,致使影响总线的稳定性。此为现有技术的不足之处。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术的不足,提供一种I2C总线的仲裁方法及系统,用于实现多主控器件状态下总线控制权的自由切换,提高总线的通信稳定性和通信质量。为解决上述技术问题,本专利技术提供了一种I2C总线的仲裁方法,应用在网络设备中,所述网络设备包括至少两个主控器件,所述的I2C总线配设有总线仲裁单元,所述的总线仲裁单元配置有一状态寄存器,所述的状态寄存器定义有BUSY标志位、WAIT标志位和ERROR标志位,其中BUSY标志位用于指示I2C总线占用状态、WAIT标志位用于指示I2C总线等待释放状态、ERROR标志位用于指示I2C总线故障状态;该I2C总线的仲裁方法包括步骤:总线仲裁单元接收当前主控器件发送的I2C总线控制请求;总线仲裁单元在接收到当前主控器件发送的I2C总线控制请求后,判定I2C总线当前是否空闲;总线仲裁单元在判定I2C总线当前空闲后,将I2C总线的控制权分配给上述当前主控器件,并拉高上述状态寄存器的BUSY标志位;否则总线仲裁单元访问所述的状态寄存器,并在接收到上述状态寄存器当前反馈的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配;总线仲裁单元实时采集各当前确权主控器件的I2C总线通信状态,并在每次判定相应当前确权主控器件的I2C总线通信结束后,收回该相应当前确权主控器件的I2C总线控制权,并控制上述状态寄存器释放其BUSY标志位;所述的当前确权主控器件为当前分配有I2C总线的控制权的主控器件。其中,在接收到上述状态寄存器当前反馈的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配,具体包括:总线仲裁单元在接收到上述状态寄存器回应的BUSY标志位的值为该标志位被拉高后对应的值、回应的WAIT标志位和ERROR标志位的值均为初始值后,拉高所述状态寄存器的WAIT标志位,并向上述当前主控器件发送等待被分配I2C总线控制权的回应;总线仲裁单元在接收到上述状态寄存器回应的BUSY标志位和WAIT标志位的值对应为相应标志位被拉高后各自对应的相应值、回应的ERROR标志位的值为初始值后,向上述当前主控器件发送拒绝分配I2C总线控制权的回应;总线仲裁单元在接收到上述状态寄存器回应的ERROR标志位的值为该标志位被拉高后对应的值后,向上述当前主控器件发送拒绝分配I2C总线控制权的回应。进一步地,总线仲裁单元在向上述当前主控器件发送等待被分配I2C总线控制权的回应后,并在判定当前确权主控器件的I2C总线通信结束后,释放上述状态寄存器的BUSY标志位,并将I2C总线的控制权分配给该当前主控器件;且在上述将I2C总线的控制权分配给该当前主控器件后,释放上述状态寄存器的WAIT标志位并拉高上述状态寄存器的BUSY标志位。另外,本专利技术还提供了一种I2C总线的仲裁系统,应用在网络设备中,所述网络设备包括至少两个主控器件,所述的I2C总线配设有总线仲裁单元,所述的总线仲裁单元配置有一状态寄存器,所述的状态寄存器定义有BUSY标志位、WAIT标志位和ERROR标志位,其中BUSY标志位用于指示I2C总线占用状态、WAIT标志位用于指示I2C总线等待释放状态、ERROR标志位用于指示I2C总线故障状态;所述的总线仲裁单元包括:第一收发模块,用于接收当前主控器件发送的I2C总线控制请求;第一判定模块,用于在第一收发模块接收到当前主控器件发送的I2C总线控制请求后,判定I2C总线当前是否空闲;第一分配模块,用于在第一判定模块判定I2C总线当前空闲时,将所述I2C总线的控制权分配给上述当前主控器件;还在将所述I2C总线的控制权分配给上述当前主控器件后,用于拉高状态寄存器的BUSY标志位;第二分配模块,用于在第一判定模块判定所述I2C总线当前为非空闲时,访问所述的状态寄存器;还用于在接收到上述状态寄存器当前回应的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配;第二判断模块,与所述的第一分配模块和第二分配模块相连,用于实时采集各当前确权主控器件的I2C总线通信状态;并用于在每次判定相应当前确权主控器件的I2C总线通信结束后,收回该相应当前确权主控器件的I2C总线控制权,并控制上述状态寄存器释放其BUSY标志位;所述的当前确权主控器件为当前分配有I2C总线的控制权的主控器件。其中所述的第二分配模块,在接收到上述状态寄存器当前回应的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配,具体包括:在接收到上述状态寄存器回应的BUSY标志位的值为该标志位被拉高后对应的值、回应的WAIT标志位和ERROR标志位的值均为初始值后,用于拉高所述状态寄存器的WAIT标志位,并用于向上述当前主控器件发送等待被分配I2C总线控制权的回应;在接收到上述状态寄存器回应的BUSY标志位和WAIT标志位的值对应为相应标志位被拉高后各自对应的相应值、回应的ERROR标志位的值为初始值后,用于向上述当前主控器件发送拒绝分配I2C总线控制权的回应;在接收到上述状态寄存器回应的ERROR标志位的值为该标志位被拉高后对应的值后,用于向上述当前主控器件发送拒绝分配I2C总线控制权的回应。其中所述的第二分配模块,在其向上述当前主控器件发送等待被分配I2C总线控制权的回应,并在第二判断模块判定当前确权主控器件的I2C总线通信结束后,用于释放上述状本文档来自技高网
...
一种I2C总线的仲裁方法及系统

【技术保护点】
一种I2C总线的仲裁方法,应用在网络设备中,所述网络设备包括至少两个主控器件,所述的I2C总线配设有总线仲裁单元,其特征在于,所述的总线仲裁单元配置有一状态寄存器,所述的状态寄存器定义有BUSY标志位、WAIT标志位和ERROR标志位,其中BUSY标志位用于指示I2C总线占用状态、WAIT标志位用于指示I2C总线等待释放状态、ERROR标志位用于指示I2C总线故障状态;该I2C总线的仲裁方法包括步骤:总线仲裁单元接收当前主控器件发送的I2C总线控制请求;总线仲裁单元在接收到当前主控器件发送的I2C总线控制请求后,判定I2C总线当前是否空闲;总线仲裁单元在判定I2C总线当前空闲后,将I2C总线的控制权分配给上述当前主控器件,并拉高上述状态寄存器的BUSY标志位;否则总线仲裁单元访问所述的状态寄存器,并在接收到上述状态寄存器当前反馈的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配;总线仲裁单元实时采集各当前确权主控器件的I2C总线通信状态,并在每次判定相应当前确权主控器件的I2C总线通信结束后,收回该相应当前确权主控器件的I2C总线控制权,并控制上述状态寄存器释放其BUSY标志位;所述的当前确权主控器件为当前分配有I2C总线的控制权的主控器件。...

【技术特征摘要】
1.一种I2C总线的仲裁方法,应用在网络设备中,所述网络设备包括至少两个主控器件,所述的I2C总线配设有总线仲裁单元,其特征在于,所述的总线仲裁单元配置有一状态寄存器,所述的状态寄存器定义有BUSY标志位、WAIT标志位和ERROR标志位,其中BUSY标志位用于指示I2C总线占用状态、WAIT标志位用于指示I2C总线等待释放状态、ERROR标志位用于指示I2C总线故障状态;该I2C总线的仲裁方法包括步骤:总线仲裁单元接收当前主控器件发送的I2C总线控制请求;总线仲裁单元在接收到当前主控器件发送的I2C总线控制请求后,判定I2C总线当前是否空闲;总线仲裁单元在判定I2C总线当前空闲后,将I2C总线的控制权分配给上述当前主控器件,并拉高上述状态寄存器的BUSY标志位;否则总线仲裁单元访问所述的状态寄存器,并在接收到上述状态寄存器当前反馈的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配;总线仲裁单元实时采集各当前确权主控器件的I2C总线通信状态,并在每次判定相应当前确权主控器件的I2C总线通信结束后,收回该相应当前确权主控器件的I2C总线控制权,并控制上述状态寄存器释放其BUSY标志位;所述的当前确权主控器件为当前分配有I2C总线的控制权的主控器件。2.根据权利要求1所述的I2C总线的仲裁方法,其特征在于,在接收到上述状态寄存器当前反馈的相应标志位的值后,实现对上述当前主控器件的总线控制权的统筹分配,具体包括:总线仲裁单元在接收到上述状态寄存器回应的BUSY标志位的值为该标志位被拉高后对应的值、回应的WAIT标志位和ERROR标志位的值均为初始值后,拉高所述状态寄存器的WAIT标志位,并向上述当前主控器件发送等待被分配I2C总线控制权的回应;总线仲裁单元在接收到上述状态寄存器回应的BUSY标志位和WAIT标志位的值对应为相应标志位被拉高后各自对应的相应值、ERROR标志位回应的值为初始值后,向上述当前主控器件发送拒绝分配I2C总线控制权的回应;总线仲裁单元在接收到上述状态寄存器回应的ERROR标志位的值为该标志位被拉高后对应的值后,向上述当前主控器件发送拒绝分配I2C总线控制权的回应。3.根据权利要求2所述的I2C总线的仲裁方法,其特征在于,进一步地,总线仲裁单元在向上述当前主控器件发送等待被分配I2C总线控制权的回应后,并在判定当前确权主控器件的I2C总线通信结束后,释放上述状态寄存器的BUSY标志位,并将I2C总线的控制权分配给该当前主控器件;且在上述将I2C总线的控制权分配给该当前主控器件后,释放上述状态寄存器的WAIT标志位并拉高上述状态寄存器的BUSY标志位。4.一种I2C总线的仲裁系统,应用在网络设备中,所述网络设备包括至少两个主控器件,所述的I2C总线配设有总线仲裁...

【专利技术属性】
技术研发人员:林宁亚
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1