CN113961500A - 一种iic总线从控制器及其工作方法 - Google Patents
一种iic总线从控制器及其工作方法 Download PDFInfo
- Publication number
- CN113961500A CN113961500A CN202111024170.XA CN202111024170A CN113961500A CN 113961500 A CN113961500 A CN 113961500A CN 202111024170 A CN202111024170 A CN 202111024170A CN 113961500 A CN113961500 A CN 113961500A
- Authority
- CN
- China
- Prior art keywords
- state
- iic
- iic bus
- information
- slave controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004891 communication Methods 0.000 claims abstract description 13
- 230000009191 jumping Effects 0.000 claims description 18
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 abstract description 7
- 238000010168 coupling process Methods 0.000 abstract description 7
- 238000005859 coupling reaction Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004132 cross linking Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开一种IIC总线从控制器及其工作方法,该控制器包括:具有多种状态的状态机,且配置有数据协议;IIC总线从控制器,用于周期性的查询其所在从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据状态信息和数据信息对状态机进行状态切换;还用于根据状态机的当前状态输出以下内容中的至少一项:地址信息、数据信息、读使能信息、写使能信息;还用于根据多个状态下输出的多个信息对IIC从设备中资源进行按址访问。本发明的技术方案解决了现有IIC总线的通讯方式,对于IIC总线中交联设备的种类和数量较多的情况,主、从设备控制器的复杂度和耦合度较高的问题。
Description
技术领域
本发明涉及但不限于数字电路技术领域,尤其涉及一种IIC总线从控制器及其工作方法。
背景技术
IIC总线是一种常用的标准总线接口,具有结构简单、灵活性高等特点。可编程逻辑器件搭载用于解析IIC总线信号的IP核的方式越来越多的应用于工业领域,进一步提高了IIC总线的适用性,扩展了IIC总线的应用场景。
目前,比较典型的IIC通讯方式是定义主、从设备间的数据ICD,通过“组包”和“解包”实现数据交互,在通过IIC总线交联的设备数量较少的情况下,这种方式简单、高效。然而,随着交联设备的种类和数量的增加,数据“组包”和“解包”导致主、从设备的控制器的复杂度和耦合度越来越高,已经不能满足要求。
发明内容
本发明的目的为:为了解决背景技术中的问题,本发明实施例提出一种IIC总线从控制器及其工作方法,以解决现有IIC总线的通讯方式,对于IIC总线中交联设备的种类和数量较多的情况,主、从设备控制器的复杂度和耦合度较高的问题。
本发明的技术方案为:本发明实施例提出一种IIC总线从控制器,IIC总线连接至少一个IIC主设备和多个IIC从设备,每个IIC从设备中配置有IIC总线从控制器和用于解析IIC总线信号的IP核,且所述IP核与所述IIC总线从控制器相连接;所述IIC总线从控制器包括:具有多种状态的状态机,且配置有数据协议;
其中,所述IIC总线从控制器,用于周期性的查询其所在IIC从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据所获取的状态信息和所述数据信息对状态机进行状态切换;
所述IIC总线从控制器,还用于根据状态机的当前状态输出以下内容中的至少一项:地址信息、数据信息、读使能信息、写使能信息;
所述IIC总线从控制器,还用于根据多个状态下输出的多个信息对IIC从设备中资源进行按址访问。
可选地,如上所述的IIC总线从控制器中,
所述数据协议中包括:操作码、地址码、数据码1和数据码2,且每个码的位宽均为8比特;
其中,所述操作码用于区分IIC主设备发起的IIC总线操作为读操作或写操作,且读操作码和写操作码的汉明距离大于预设阈值。
可选地,如上所述的IIC总线从控制器中,
所述状态机的状态包括:初始化态、空闲态、接收1状态、接收2状态、接收3状态、发送1状态、发送2状态和发送3状态。
可选地,如上所述的IIC总线从控制器中,
所述IIC总线从控制器控制状态机每完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址读操作访问;
所述IIC总线从控制器控制状态机每完成一次空闲态、接收1状态、接收2状态、接收3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址写操作访问。
可选地,如上所述的IIC总线从控制器中,
所述IIC总线从控制器查询IP核的周期为:依据IIC总线通讯速率所确定的。
可选地,如上所述的IIC总线从控制器中,
所述IIC总线从控制器,还用于在IIC从设备复位后,控制状态机进入初始化状态,完成对该IIC从设备中IP核的初始化工作后,并控制状态机进入空闲态。
可选地,如上所述的IIC总线从控制器中,所述IIC总线从控制器用于对状态机进行状态切换,其中,所述IIC主设备完成一次对IIC从设备的按地址读操作访问过程中的状态切换方式,包括:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;
2),发送1状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该发送1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并产生读使能信息,在该IIC从设备中按地址码所指示的资源读取16比特数据,并跳转至发送2状态;
3),发送2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送2状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的高8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态2;如果状态信息显示为本次读操作结束,则跳转至发送3状态;
4),发送3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送3状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的低8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态3;如果状态信息显示为本次读操作结束,则跳转至空闲态。
可选地,如上所述的IIC总线从控制器中,所述IIC总线从控制器用于对状态机进行状态切换,其中,所述IIC主设备完成一次对IIC从设备的按地址写操作访问过程中的状态切换方式,包括:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;
2),接收1状态:IIC总线从控制器周期性地获取其所在IIC从设备中P核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并跳转至接收2状态;
3)接收2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收2状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码1,并跳转至接收3状态;
4)接收3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收3状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码2,并产生写使能信息,按接收1状态赋值的地址码写入16比特数据,并跳转至空闲状态。
本发明实施例还提供一种IIC总线从控制器的工作方法,采用如上述任一项所述的IIC总线从控制器执行的工作方法,所述方法包括:
步骤1,周期性的查询其所在从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据状态信息和所述数据信息对状态机进行状态切换;
步骤2,根据状态机的当前状态输出以下内容中的至少一项:地址码、数据码、读使能信息、写使能信息;
步骤3,根据多个状态下输出的地址码、数据码,以及读使能信息或写使能信息,按照地址码对IIC从设备中对应的资源进行按址访问。
可选地,如上所述的IIC总线从控制器的工作方法中,所述步骤3中,所述按照地址码对IIC从设备中对应的资源进行按址访问,包括:
通过控制状态机完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址读操作访问;
通过控制状态机完成一次空闲态、接收1状态、接收2状态、接收3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址写操作访问。
可选地,如上所述的IIC总线从控制器的工作方法中,所述步骤1之前,还包括:
步骤a,IIC从设备复位后,IIC总线从控制器控制状态机进入初始化态,完成对其所在IIC从设备中IP核的初始化工作后,控制状态机进入空闲态。
本发明的有益效果为:本发明实施例提出一种IIC总线从控制器及其工作方法,其中的IIC总线从控制器基于可编程逻辑器件实现,在现有IIC从设备中IP核的基础上,创新性的提出了IIC主、备设备间的数据协议和控制状态机,使得该IIC总线从控制器通过周期性地查询其所在IIC从设备中IP核的状态寄存器,控制状态机实现初始化态、空闲态、多个发送状态和多个接收状态这8个状态之间的切换,同时依据通讯协议输出地址、数据、片选、读写使能等信号,有效实现了IIC主设备通过IIC总线从控制器对IIC从设备的“按地址读写访问”。本发明实施例提供的技术方案,显著提高了IIC总线的适用性,降低了交联设备间的耦合度,提高了系统健壮性,可广泛应用于工业领域。
附图说明
图1为本发明实施例提供的一种IIC总线从控制器的结构示意图;
图2为本发明实施例提供的IIC总线从控制器控制状态机进行状态切换的原理示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
上述背景技术中已经说明,现有IIC总线的通讯方式,由于主、从设备之间通过“组包”和“解包”实现数据交互,随着交联设备的种类和数量的增加,数据“组包”和“解包”导致主、从设备的控制器的复杂度和耦合度越来越高,已经不能满足IIC总线的通讯的可靠性要求。
为了降低主、从设备的控制器的复杂度和耦合度,考虑提出一种新的IIC通讯方案,基于上述需求,本发明实施例提出一种IIC总线从控制器及其工作方法,可以实现IIC主设备对IIC从设备的“按址访问”,并且实现IIC主控制器对从控制器交联设备的“点对点”控制和采集。
本发明提供以下几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明实施例提供的一种IIC总线从控制器的结构示意图。本发明实施例提供的IIC总线从控制器应用于通过IIC总线连接的IIC主设备和IIC从设备的使用场景中。通常的,IIC总线连接至少一个IIC主设备和多个IIC从设备,每个IIC从设备中配置有IIC总线从控制器和用于解析IIC总线信号的IP核;且IP核与IC总线从控制器相连接,两者之间可以实现信息交互。
图1中仅示意出通过IIC总线与IIC主设备相连接的一个IIC从设备,以及该IIC从设备和内部IIC总线从控制器的具体结构,通过IIC总线相连接的其它IIC从设备和IIC总线从控制器的结构与此相同。
如图1所示IIC总线从控制器的结构中,可以包括:具有多种状态的状态机,且IIC总线从控制器中配置有数据协议。另外,可以看出,IIC从设备中的IP核具有……
基于本发明实施例中IIC总线从控制器的结构和配置方式,首先,本发明实施例中的IIC总线从控制器,可以周期性的查询其所在IIC从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据所获取的状态信息和数据信息对状态机进行状态切换。
其次,本发明实施例提供的IIC总线从控制器,还用于根据状态机的当前状态输出以下内容中的至少一项:地址信息、数据信息、读使能信息、写使能信息。
再者,本发明实施例提供的IIC总线从控制器,还用于根据多个状态下输出的多个信息对IIC从设备中资源进行按址访问。
需要说明的是,本发明实施例提供的IIC总线从控制器,可以基于可编程逻辑器件实现,具体在其所属的IIC从设备的IP核的基础上实现,主要包括上述数据协议和状态机两个部分,并且其状态机具有多个状态。
在本发明实施例中,IIC总线从控制器所配置的数据协议中以下包括信息:操作码、地址码、数据码1和数据码2,其中地址码具体指该IIC总线从控制器所属从设备中各资源的地址。
需要说明的是,上述每个码的位宽均为8比特;其中,操作码用于区分IIC主设备发起的IIC总线操作为读操作或写操作,要求读操作码和写操作码的汉明距离尽可能大;在具体实施时,读操作码和写操作码的汉明距离大于预设阈值,例如要求上述汉明距离大于2,以避免操作码的误判。
本发明上述实施例已经说明,IIC总线从控制器中的状态机具有多种状态,在本发明实施例的一种实现方式中,该状态机可以包括以下8种状态,包括:初始化态、空闲态、接收1状态、接收2状态、接收3状态、发送1状态、发送2状态和发送3状态。
如图2所示,为本发明实施例提供的IIC总线从控制器控制状态机进行状态切换的原理示意图,可以看出,初始化状态可以切换为空闲态,空闲态的切换具有以下两条切换回路:
切换回路1,空闲态切换为发送1状态,发送1状态切换为发送2状态,发送2状态切换为发送3状态;
切换回路2,空闲态切换为接收1状态,接收1状态切换为接收2状态,接收2状态切换为接收3状态。
进而,无论是上述两种情况中的发送3状态,还是接收3状态,后续都切换为空闲态;从而形成如图2所示的两条状态切换回路。
基于本发明实施例中状态机的上述各种状态,以及图2所示各种状态的切换方式。本发明实施例提供的IIC总线从控制器,一方面,控制状态机每完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换过程,即完成一次切换回路1的切换过程,则IIC主设备完成一次对IIC从设备的按地址读操作访问;另一方面,控制状态机每完成一次空闲态、接收1状态、接收2状态、接收3状态,最后返回到空闲态的切换过程,即完成一次切换回路2的切换过程,则IIC主设备完成一次对IIC从设备的按地址写操作访问。
在本发明实施例的一种实现方式中,IIC总线从控制器查询其所在IIC从设备中IP核的周期为:依据IIC总线通讯速率所确定的。
在本发明实施例的一种实现方式中,上述已经说明IIC总线从控制器进入空闲态后的两条状态切换回路,对于该IIC总线从控制器,其首次进入空闲态的形式为:在IIC从设备复位后,控制状态机进入初始化状态,完成对该IIC从设备中IP核的初始化工作后,并控制状态机进入空闲态。
以下对本发明实施例提供的IIC总线从控制器中,状态机的各个状态的具体切换方式和状态跳转条件,进行详细说明:
切换过程一,对于上述状态切换回路1为IIC主设备完成一次对IIC从设备的按地址读操作访问过程的状态切换过程,该过程中的具体切换方式流程包括:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;在该切换过程一中,具体判断出操作码等于读操作码,调整至发送1状态;
2),发送1状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该发送1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并产生读使能信息,在该IIC从设备中按地址码所指示的资源读取16比特数据,并跳转至发送2状态;
3),发送2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送2状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的高8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态2;如果状态信息显示为本次读操作结束,则跳转至发送3状态;
4),发送3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送3状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的低8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态3;如果状态信息显示为本次读操作结束,则跳转至空闲态。
切换过程二,对于上述状态切换回路2为IIC主设备完成一次对IIC从设备的按地址写操作访问过程的状态切换过程,该过程中的具体切换方式流程包括:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;在该切换过程二中,具体判断出操作码等于写操作码,调整至接收1状态;
2),接收1状态:IIC总线从控制器周期性地获取其所在IIC从设备中P核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并跳转至接收2状态;
3)接收2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收2状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码1,并跳转至接收3状态;
4)接收3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收3状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码2,并产生写使能信息,按接收1状态赋值的地址码写入16比特数据,并跳转至空闲状态。
根据上述切换过程一和切换过程二的具体切换方式可以看出,控制状态机每完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换回路,IIC主设备便实现一次对IIC从设备的读操作访问;控制状态机每完成一次空闲态、接收1状态、接收2状态和接收3状态,最后返回到空闲态的切换回路,IIC主设备便实现一次对IIC从设备的写操作访问。因为地址码、数据码1和数据码2的位宽均为8比特,IIC总线从控制器的“按址访问”空间大小为512Byte。在实际应用中,可根据访问空间大小需要,对数据协议和控制状态机进行修改,以增强适用性。
现有IIC总线的连接结构中,IIC主设备和IIC从设备之间只有IIC连接,这个连接是串行总线,不能直接实现对从设备的按地址访问,本发明实施例提供在IIC从设备中设计了一个IIC总线从控制器,将串行总线改为并行总线,间接实现对从设备的按地址访问。
本发明实施例提供的IIC总线从控制器,基于可编程逻辑器件实现,在现有IIC从设备中IP核的基础上,创新性的提出了IIC主、备设备间的数据协议和控制状态机,使得该IIC总线从控制器通过周期性地查询其所在IIC从设备中IP核的状态寄存器,控制状态机实现初始化态、空闲态、多个发送状态和多个接收状态这8个状态之间的切换,同时依据通讯协议输出地址、数据、片选、读写使能等信号,有效实现了IIC主设备通过IIC总线从控制器对IIC从设备的“按地址读写访问”。本发明实施例提供的技术方案,显著提高了IIC总线的适用性,降低了交联设备间的耦合度,提高了系统健壮性,可广泛应用于工业领域。
基于本发明上述各实施例提供的IIC总线从控制器,本发明实施例还提供该IIC总线从控制器的工作方法,具体采用本发明上述任一实施例提供的的IIC总线从控制器所执行的工作方法,该工作方法包括:
步骤1,周期性的查询其所在从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据状态信息和数据信息对状态机进行状态切换;
步骤2,根据状态机的当前状态输出以下内容中的至少一项:地址码、数据码、读使能信息、写使能信息;
步骤3,根据多个状态下输出的地址码、数据码,以及读使能信息或写使能信息,按照地址码对IIC从设备中对应的资源进行按址访问。
本发明实施例提供的IIC总线从控制器的工作方法中,其IIC总线从控制器的数据协议中包括:操作码、地址码、数据码1和数据码2,且每个码的位宽均为8比特,且控制机具有初始化态、空闲态、接收1状态、接收2状态、接收3状态、发送1状态、发送2状态和发送3状态这8个状态。
在本发明实施例中,IIC总线从控制器查询IP核的周期为,依据IIC总线通讯速率所确定的。举例来说,当IIC总线通讯速率为400KHz时,(即2.5us传输一个比特),因此,查询周期应小于2.5us(则不会存在数据丢失现象)。
本发明实施例提供的工作方法中,上述步骤1之前,还包括:在IIC从设备复位后,IIC总线从控制器控制状态机进入初始化态,完成对该IIC从设备中IP核的初始化工作后,控制状态机进入空闲态;随后依据周期性查询出的IP核的状态信息和数据信息对状态机进行状态切换,包括以下两种切换过程:
切换过程一,通过控制状态机完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换,则IIC主设备完成一次对IIC从设备的按地址读操作访问;
切换过程二,通过控制状态机完成一次空闲态、接收1状态、接收2状态、接收3状态,最后返回到空闲态的切换,则IIC主设备完成一次对IIC从设备的按地址写操作访问。
上述两个切换过程的具体实施过程和跳转条件如下说明:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;
2),发送1状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该发送1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并产生读使能信息,在该IIC从设备中按地址码所指示的资源读取16比特数据,并跳转至发送2状态;
3),发送2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送2状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的高8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态2;如果状态信息显示为本次读操作结束,则跳转至发送3状态;
4),发送3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送3状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的低8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态3;如果状态信息显示为本次读操作结束,则跳转至空闲态;
5),接收1状态:IIC总线从控制器周期性地获取其所在IIC从设备中P核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并跳转至接收2状态;
6)接收2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收2状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码1,并跳转至接收3状态;
7)接收3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收3状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码2,并产生写使能信息,按接收1状态赋值的地址码写入16比特数据,并跳转至空闲状态。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种IIC总线从控制器,其特征在于,IIC总线连接至少一个IIC主设备和多个IIC从设备,每个IIC从设备中配置有IIC总线从控制器和用于解析IIC总线信号的IP核,且所述IP核与所述IIC总线从控制器相连接;所述IIC总线从控制器包括:具有多种状态的状态机,且配置有数据协议;
其中,所述IIC总线从控制器,用于周期性的查询其所在IIC从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据所获取的状态信息和所述数据信息对状态机进行状态切换;
所述IIC总线从控制器,还用于根据状态机的当前状态输出以下内容中的至少一项:地址信息、数据信息、读使能信息、写使能信息;
所述IIC总线从控制器,还用于根据多个状态下输出的多个信息对IIC从设备中资源进行按址访问。
2.根据权利要求1所述的IIC总线从控制器,其特征在于,
所述数据协议中包括:操作码、地址码、数据码1和数据码2,且每个码的位宽均为8比特;
其中,所述操作码用于区分IIC主设备发起的IIC总线操作为读操作或写操作,且读操作码和写操作码的汉明距离大于预设阈值。
3.根据权利要求2所述的IIC总线从控制器,其特征在于,
所述状态机的状态包括:初始化态、空闲态、接收1状态、接收2状态、接收3状态、发送1状态、发送2状态和发送3状态;
所述IIC总线从控制器控制状态机每完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址读操作访问;
所述IIC总线从控制器控制状态机每完成一次空闲态、接收1状态、接收2状态、接收3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址写操作访问。
4.根据权利要求1~3中任一项所述的IIC总线从控制器,其特征在于,
所述IIC总线从控制器查询IP核的周期为:依据IIC总线通讯速率所确定的。
5.根据权利要求1~3中任一项所述的IIC总线从控制器,其特征在于,
所述IIC总线从控制器,还用于在IIC从设备复位后,控制状态机进入初始化状态,完成对该IIC从设备中IP核的初始化工作后,并控制状态机进入空闲态。
6.根据权利要求5所述的IIC总线从控制器,其特征在于,所述IIC总线从控制器用于对状态机进行状态切换,其中,所述IIC主设备完成一次对IIC从设备的按地址读操作访问过程中的状态切换方式,包括:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;
2),发送1状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该发送1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并产生读使能信息,在该IIC从设备中按地址码所指示的资源读取16比特数据,并跳转至发送2状态;
3),发送2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送2状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的高8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态2;如果状态信息显示为本次读操作结束,则跳转至发送3状态;
4),发送3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为IIC主设备没有发起读操作,则继续停留在该发送3状态;如果状态信息显示为IIC主设备正在发起一次读操作,则将发送1状态中按地址码读取的16比特数据的低8位写入发送缓冲中;
IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为本次读操作未结束,则继续停留在该发送状态3;如果状态信息显示为本次读操作结束,则跳转至空闲态。
7.根据权利要求5所述的IIC总线从控制器,其特征在于,所述IIC总线从控制器用于对状态机进行状态切换,其中,所述IIC主设备完成一次对IIC从设备的按地址写操作访问过程中的状态切换方式,包括:
1),空闲态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果IP核的状态信息显示为该IP核的接收缓冲中无数据,则继续停留在该空闲态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给操作码,并进行判断:(1)如果操作码等于读操作码,则跳转至发送1状态;(2)如果操作码等于写操作码,则跳转至接收1状态;
2),接收1状态:IIC总线从控制器周期性地获取其所在IIC从设备中P核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收1状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给地址码,并跳转至接收2状态;
3)接收2状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收2状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码1,并跳转至接收3状态;
4)接收3状态:IIC总线从控制器周期性地获取其所在IIC从设备中IP核的状态信息;如果状态信息显示为接收缓冲中无数据信息,则继续停留在该接收3状态;如果状态信息显示为接收缓冲中有数据信息,则IIC总线从控制器将数据信息从IP核中读出,赋值给数据码2,并产生写使能信息,按接收1状态赋值的地址码写入16比特数据,并跳转至空闲状态。
8.一种IIC总线从控制器的工作方法,其特征在于,采用如权利要求1~7中任一项所述的IIC总线从控制器执行的工作方法,所述方法包括:
步骤1,周期性的查询其所在从设备中的IP核,获取IP核的状态信息和用于对操作码赋值的数据信息,并依据状态信息和所述数据信息对状态机进行状态切换;
步骤2,根据状态机的当前状态输出以下内容中的至少一项:地址码、数据码、读使能信息、写使能信息;
步骤3,根据多个状态下输出的地址码、数据码,以及读使能信息或写使能信息,按照地址码对IIC从设备中对应的资源进行按址访问。
9.根据权利要求8所述的IIC总线从控制器的工作方法,其特征在于,所述步骤3中,所述按照地址码对IIC从设备中对应的资源进行按址访问,包括:
通过控制状态机完成一次空闲态、发送1状态、发送2状态、发送3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址读操作访问;
通过控制状态机完成一次空闲态、接收1状态、接收2状态、接收3状态,最后返回到空闲态的切换过程,则IIC主设备完成一次对IIC从设备的按地址写操作访问。
10.根据权利要求9所述的IIC总线从控制器的工作方法,其特征在于,所述步骤1之前,还包括:
步骤a,IIC从设备复位后,IIC总线从控制器控制状态机进入初始化态,完成对其所在IIC从设备中IP核的初始化工作后,控制状态机进入空闲态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111024170.XA CN113961500B (zh) | 2021-09-01 | 2021-09-01 | 一种iic总线从控制器及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111024170.XA CN113961500B (zh) | 2021-09-01 | 2021-09-01 | 一种iic总线从控制器及其工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961500A true CN113961500A (zh) | 2022-01-21 |
CN113961500B CN113961500B (zh) | 2024-04-09 |
Family
ID=79460760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111024170.XA Active CN113961500B (zh) | 2021-09-01 | 2021-09-01 | 一种iic总线从控制器及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961500B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907689A (en) * | 1996-12-31 | 1999-05-25 | Compaq Computer Corporation | Master-target based arbitration priority |
US20020056063A1 (en) * | 2000-05-31 | 2002-05-09 | Nerl John A. | Power saving feature during memory self-test |
CN102184148A (zh) * | 2011-04-18 | 2011-09-14 | 北京航空航天大学 | 一种基于fpga的at96总线控制器ip核及其构建方法 |
CN103729165A (zh) * | 2014-01-16 | 2014-04-16 | 哈尔滨工业大学 | 应用于高速运动控制系统的pci从设备核心控制模块 |
CN107911391A (zh) * | 2017-12-14 | 2018-04-13 | 天津光电通信技术有限公司 | 一种基于fpga的axi协议与spi协议转换的方法 |
CN112286852A (zh) * | 2019-07-25 | 2021-01-29 | 杭州海康汽车技术有限公司 | 基于iic总线的数据通信方法和数据通信装置 |
-
2021
- 2021-09-01 CN CN202111024170.XA patent/CN113961500B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907689A (en) * | 1996-12-31 | 1999-05-25 | Compaq Computer Corporation | Master-target based arbitration priority |
US20020056063A1 (en) * | 2000-05-31 | 2002-05-09 | Nerl John A. | Power saving feature during memory self-test |
CN102184148A (zh) * | 2011-04-18 | 2011-09-14 | 北京航空航天大学 | 一种基于fpga的at96总线控制器ip核及其构建方法 |
CN103729165A (zh) * | 2014-01-16 | 2014-04-16 | 哈尔滨工业大学 | 应用于高速运动控制系统的pci从设备核心控制模块 |
CN107911391A (zh) * | 2017-12-14 | 2018-04-13 | 天津光电通信技术有限公司 | 一种基于fpga的axi协议与spi协议转换的方法 |
CN112286852A (zh) * | 2019-07-25 | 2021-01-29 | 杭州海康汽车技术有限公司 | 基于iic总线的数据通信方法和数据通信装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113961500B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
US6862643B2 (en) | USB compound device operates a plurality of devices by using the same USB logic circuit and the method for implementation thereof | |
US10007628B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US10241955B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
CN114048164B (zh) | 芯片互联方法、系统、设备及可读存储介质 | |
CN108228492B (zh) | 一种多通道ddr交织控制方法及装置 | |
KR20010051014A (ko) | 데이터 전송 제어 장치 및 전자 기기 | |
CN112272130B (zh) | 半导体测试机通信总线系统 | |
JPH1083375A (ja) | Scsiシステム | |
CN111552658B (zh) | 一种通信方法、通信控制装置及i2c总线系统 | |
CN105786736A (zh) | 一种多芯片级联的方法、芯片和装置 | |
CN110912836A (zh) | 使转发设备转发数据的方法、控制设备、存储介质和系统 | |
CN112749113A (zh) | 一种数据交互的方法、系统、设备及介质 | |
CN107748509B (zh) | 基于单片机收发控制的asi通信从机实施方法 | |
KR20000005301A (ko) | 주국과 적어도 하나의 종국을 갖는 통신시스템 | |
CN111948971A (zh) | 一种智能卡管理装置及其数据转接方法 | |
CN113051204A (zh) | 串行背板总线通信方法及系统 | |
CN113961500A (zh) | 一种iic总线从控制器及其工作方法 | |
CN103488601B (zh) | 一种时钟延时、数据访问方法、系统及设备 | |
CN113961496A (zh) | 通信电路系统、方法、芯片以及存储介质 | |
CN113722261A (zh) | Spi扩展片选数目和增强读写响应时间灵活性的方法 | |
CN112764385A (zh) | 小型plc总线的实现系统及方法 | |
CN116561041B (zh) | 一种单总线通信系统及方法 | |
CN210609213U (zh) | 可配置化协议转换网关 | |
CN212411050U (zh) | 一种智能卡管理装置和智能卡系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |