I3C电路设备、系统和通信方法与流程

文档序号:14269321阅读:218来源:国知局

本发明属于集成电路领域,更具体地说,是涉及一种i3c电路设备、系统和通信方法。



背景技术:

知识产权核(intellectualpropertycore,简称ip核),是指某一方提供的芯片设计模块。设计人员能够以ip核为基础进行专用集成电路或或现场可编程逻辑门阵列(field-programmablegatearray,简称fpga)的逻辑设计,以缩短设计周期、提高设计质量与效率。

随着集成电路芯片应用的日益增长,采用i2c(inter-integratedcircuit)协议的设备其弊端逐渐显露,随之移动产业处理器端口(mobileindustryprocessorinterface,简称mipi)联盟提出了i3c新标准规范。i3c新标准规范具有有效的减少集成电路芯片系统的物理接口、支持低功耗、高数据速率和其他已有接口协议的优点。

依据mipi联盟的i3c新标准规范,i3c包含了更为丰富的功能,具有更优的功能,控制寄存器可以很好的实现各功能的控制,但是如何运用控制寄存器实现i3c协议的功能是个难题,现有技术中还无法做运用控制寄存器来实现i3c的相关功能。



技术实现要素:

为实现上述目的,本发明提供一种i3c电路设备、系统和通信方法,可以运用控制寄存器来实现i3c设备之间的通信和实现i3c各种功能。

本发明是这样实现的:

本发明第一方面提供一种i3c电路设备,包括内部状态机和控制寄存模块,所述控制寄存模块用于获取用户端发送的控制流,当所述内部状态机为可执行命令的状态时,通过所述内部状态机从所述控制寄存模块获取所述控制流的控制命令解析成i3c总线信号并输出到与所述i3c电路设备连接的i3c总线。

具体的,所述控制寄存模块包括若干个控制寄存器,所述控制寄存器用于根据所述控制流的控制命令的种类分别输入相应的控制寄存器中。

具体的,所述内部状态机用于根据所述控制流的顺序从所述控制寄存模块中相应的控制寄存器提取控制命令解析成i3c总线信号并输出到所述i3c总线。

与现有技术相比,本发明提供的i3c电路设备,通过控制寄存模块中的控制寄存器获取用户端发送的控制流,控制流的控制命令根据其种类的不同分别输入不同的控制寄存器中;内部状态机根据其状态从相应的控制寄存器中获取控制命令解析成i3c总线信号输出到i3c总线,用户不需要考虑精确的i3c总线时序,将控制流输入到控制寄存器中就可以实现i3c协议的各种功能,使i3c主、从设备之间的通信更加灵活。

本发明第二方面提供一种i3c电路系统,

包括用户端、i3c总线和i3c电路设备,所述i3c电路设备分别与用户端和i3c总线相连接;

所述i3c电路设备包括i3c主设备和从设备,所述i3c主设备和/或从设备包括内部状态机和控制寄存模块;

所述i3c电路设备,用于通过所述控制寄存模块获取所述用户端发送的控制流,当所述内部状态机为可执行命令的状态时,通过所述内部状态机从所述控制寄存模块获取所述控制流的控制命令解析成i3c总线信号并输出到所述i3c总线;

所述用户端,用于向所述i3c电路设备发送所述控制流,并根据所述控制流的控制命令将数据输入到所述i3c主设备后再通过所述i3c总线输入到所述从设备,或者根据所述控制流的控制命令将数据输入到所述从设备后再通过所述i3c总线输入到所述i3c主设备。

具体的,所述控制寄存模块包括若干个控制寄存器,所述i3c电路设备用于通过所述控制寄存器存储所述控制流的控制命令,根据所述控制命令的种类分别存入不同的控制寄存器;通过内部状态机根据所述控制流的顺序从相应的控制寄存器中提取控制命令解析成i3c总线信号并输出到所述i3c总线。

具体的,所述用户端还用于从所述i3c电路设备中提取数据,并与控制流中指定的传输数据进行比较,若提取的数据与指定的传输数据一致,则判断所述控制流执行正确。

具体的,所述控制命令为i3c标准的控制命令,包括:开始、停止、发送地址、读写数据、内中断请求和热连接。

与现有技术相比,本发明提供的i3c电路系统,i3c电路设备通过控制寄存器获取用户端发送的控制流,通过内部状态机从控制寄存器中获取控制命令并解析成i3c总线信号输出到i3c总线,用户端向i3c电路设备发送控制流和数据就可以实现i3c主、从设备之间的数据通信,用户可以根据需要输入不同的控制流,实现不同的功能,提高了用户设计i3c电路的灵活性。

本发明第三方面提供一种i3c电路的通信方法,

所述i3c电路的通信方法包括以下步骤:

i3c电路设备通过控制寄存模块获取用户端发送的控制流;

所述i3c电路设备获取内部状态机的状态;

当所述内部状态机为可执行命令的状态时,所述内部状态机获取所述控制寄存模块中的控制命令解析成i3c总线信号,然后将i3c总线信号输出到与所述i3c电路设备相连接的i3c总线。

具体的,所述i3c电路设备通过所述控制寄存模块的控制寄存器存储所述控制命令,当所述控制命令的种类不同时,所述控制命令分别存入不同的控制寄存器。

具体的,所述内部状态机根据所述控制流的顺序从相应的控制寄存器获取控制命令并执行。

与现有技术相比,本发明提供的i3c电路的通信方法,i3c电路设备通过控制寄存器获取用户端发送的控制流,控制流中的控制命令根据其种类的不同分别输入不同的控制寄存器中;内部状态机根据自身的状态从相应的控制寄存器中提取命令解析成i3c总线信号输出到i3c总线,从而实现了i3c主、从设备之间的数据通信,用户不需要考虑精确的i3c总线时序,通过控制寄存器就可以实现i3c协议的各种功能,使i3c主、从设备之间的信息传输更加灵活。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的i3c电路设备的结构示意图;

图2是图1所示实施例的状态机的示意图;

图3是本发明又一实施例提供的i3c电路系统的结构示意图;

图4是本发明又一实施例提供的i3c电路的通信方法的流程图。

其中,图中各附图标记:

10-i3c电路设备;20-i3c总线;30-用户端;10a-i3c主设备;10b-从设备;101-控制寄存模块;102-内部状态机。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参考图1,其示出了本发明实施例提供的i3c电路设备的结构示意图。

i3c电路设备10包括:控制寄存模块101和内部状态机102。

其中,i3c电路设备10与i3c总线20相连接,可以为主设备和从设备,应当理解的是,这里的主设备是支持i3c协议的主设备,从设备可以是支持i3c协议的从设备,也可以是i3c总线可以兼容的i2c从设备或者其它可以为i3c总线兼容的从设备。

控制寄存模块101,用于获取用户端发送的控制流,其中,用户端可以是处理器也可以是软件,控制流可以是处理器或者是软件给控制寄存模块101输入的多组控制命令,用于实现i3c主、从设备之间的数据通信或者其它功能。

当控制流的控制命令未被执行时,i3c电路设备10将未被执行的控制命令存储于控制寄存模块101中。

内部状态机102可以反映i3c电路设备10的状态,包括:开始(start)、发送地址(address)、读写数据(data)、空闲(idle)和停止(stop)等这些状态,请参考图2,其示出了i3c电路设备的状态机10的示意图。

内部状态机102可执行命令的状态是指内部状态机处于空闲状态或者进行状态的跳转时,内部状态机102状态的跳转是根据i3c协议进行跳转的,例如,内部状态机102从地址(address)跳转状态时,就会从控制流中获取下一个控制命令并执行。

当内部状态机102的状态为可执行命令的状态时,内部状态机102从控制寄存模块101中获取控制流中的控制命令解析成i3c总线信号并输出到i3c总线20。

作为一种实施方式,控制流的控制命令为i3c支持的指令,包括:开始(start)、停止(stop)、发送地址(address)、读写数据(data)、内中断(ibi)请求和热连接(hot-join)等i3c支持的功能。用户可以根据自己的需要,按照i3c协议的标准编写控制流,就可以实现相应的功能。

例如,用户可以按照以下的方式编写数据写入的控制流输入i3c电路设备10中从而实现数据写入的功能:

(1)设置开始命令;

(2)设置主设备的输入值(即7位从设备地址和1位读写位);

(3)设置主设备的输入值(即8位从设备寄存器地址);

(4)设置主设备的输入值(即8位数据);

(5)重复步骤(4)可以发送多个数据;

(6)设置停止命令。

再例如,用户可以按照以下的方式编写数据读取的控制流输入i3c电路设备10中从而实现数据读取的功能:

(1)设置开始命令;

(2)设置主设备的输入值(即7位从设备地址和1位读写位);

(3)设置主设备的输入值(即8位从设备寄存器地址);

(4)设置主设备的输入值(即7位从设备地址和1位读写位);

(5)设置从设备的输入值(即8位数据);

(6)重复步骤(5)可以接收多个数据;

(7)设置停止命令。

作为一种实施方式,控制寄存模块101包括若干个控制寄存器,这些控制寄存器用于存储不同种类的控制命令,例如:开始(start)命令、发送地址(address)命令、读写数据(data)命令这些不同的控制命令都放入不同的控制寄存器中。

当内部状态机102为可执行命令的状态时,内部状态机102是从控制寄存模块101中的相应的控制寄存器获取控制命令并解析成i3c总线信号并输出到i3c总线20,其中,提取控制命令的顺序是按照控制流中控制命令原来的顺序,控制流是按照i3c协议的顺序编写的控制命令。

作为一种实施方式,控制流中的控制命令是标记了顺序再分别存入控制寄存器中的,当内部状态机102提取命令时,在所有的控制寄存器中寻找,找到下一个顺序的控制命令并执行。

作为一种实施方式,当主、从设备之间需要通过i3c总线20进行数据读写操作时,根据控制流的命令,数据从主设备通过i3c总线20传输到从设备,或者是数据从从设备通过i3c总线20传输到主设备。

当从设备10b为多个时,用户端编写的控制流可以在其中加入从设备的地址,从而可以对指定的从设备完成相应的功能;应当理解的是,在从设备只有一个时,用户编写的控制流也包含有从设备的地址,才能与从设备进行数据的通信。

本发明实施例提供的i3c电路设备,通过控制寄存模块中的控制寄存器获取用户端发送的控制流,控制流的控制命令根据其种类的不同分别输入不同的控制寄存器中;内部状态机根据其状态从相应的控制寄存器中获取控制命令解析成i3c总线信号输出到i3c总线,用户可以不考虑精确的i3c总线时序,将控制流输入到控制寄存器中就可以实现i3c协议的各种功能,使i3c主、从设备之间的通信更加灵活。

请参考图3,其示出了本发明实施例提供的i3c电路系统的结构示意图。

i3c电路系统包括:i3c电路设备10、i3c总线20和用户端30,i3c电路设备10分别与i3c总线20和用户端30相连接。

i3c电路设备10包括i3c主设备10a和从设备10b,i3c主设备10a和/或从设备10b中包括控制寄存模块101和内部状态机102,其中,i3c主设备10a为支持i3c总线协议的主设备,从设备10b可以为支持i3c总线协议的从设备也可以是只支持i2c总线协议的从设备。

i3c电路设备10,用于通过控制寄存模块101获取用户端30发送的控制流。

作为一种实施方式,控制流的控制命令为i3c支持的指令,包括:开始(start)、停止(stop)、发送地址(address)、读写数据(data)、内中断(ibi)请求和热连接(hot-join)等i3c支持的功能。用户可以根据自己的需要,按照i3c协议的标准编写控制流输入到控制寄存模块101中,就可以实现相应的功能。

当内部状态机102的状态为可执行命令的状态时,i3c电路设备10通过内部状态机102从控制寄存模块101获取用户端发送的控制流中的控制命令,解析成i3c总线信号并输出到i3c总线20,应当理解的是,当i3c电路设备10中的从设备为只支持i2c协议的从设备时,内部状态机102是从控制寄存模块101获取控制命令解析成i2c总线信号输出到i3c总线20,i2c总线信号为i3c总线20所兼容。

其中,内部状态机102的状态为可执行命令的状态是指内部状态机102处于空闲状态或者进行状态的跳转时,内部状态机102状态的跳转是根据i3c协议进行跳转的。

用户端30,用于向i3c电路设备10发送控制流,并根据控制流的控制命令将数据输入到i3c主设备10a再通过i3c总线20输送到从设备10b,或者根据控制命令将数据输入到从设备10b后再通过i3c总线20输送到i3c主设备10a。

例如,当i3c主设备10a向从设备10b写入数据时,用户端30先向i3c主设备10a输入数据,再根据控制命令将数据通过i3c总线20输出到从设备10b。

又例如,当i3c主设备10a向从设备10b读取数据时,用户端30先向从设备10b输入数据,再根据控制命令将数据通过i3c总线20输出到i3c主设备10a。

i3c电路设备10中的控制寄存模块101中包括若干个控制寄存器,这些控制寄存器用于存储不同种类的控制命令,例如:开始(start)命令、发送地址(address)命令、读写数据(data)命令这些不同种类的控制命令都放入不同的控制寄存器中。

当i3c电路设备10中的内部状态机102为可执行命令的状态时,内部状态机102是从控制寄存模块101中的相应的控制寄存器获取控制命令并解析成i3c总线信号并输出到i3c总线20,其中,提取控制命令的顺序是按照控制流中控制命令原来的顺序,控制流是按照i3c协议的顺序编写的控制命令。

作为一种实施方式,控制流中的控制命令是标记了顺序再分别存入控制寄存器中的,当内部状态机102提取命令时,在所有的控制寄存器中寻找,找到下一个顺序的控制命令并执行。

当i3c电路设备10中的从设备为两个以上时,用户端30编写的控制流可以在其中加入从设备的地址,从而可以对指定的从设备完成相应的功能;应当理解的是,当从设备为一个时,用户编写的控制流也包含有从设备的地址,才能与从设备进行数据的通信。

作为一种实施方式,用户端30还用于从i3c电路设备10中提取数据,并与控制流中指定的传输数据进行比较,若提取的数据与指定的传输数据一致,则判断为所述控制流执行正确。

例如,当i3c主设备10a向从设备10b写入数据时,用户端由从设备10b中提取数据,若提取的数据与i3c主设备10a传输的数据一致,则可以判定控制流执行正确,这样可以验证传输的功能。

本发明实施例提供的i3c电路系统,i3c电路设备通过控制寄存器获取用户端发送的控制流,通过内部状态机从控制寄存器中获取控制命令并解析成i3c总线信号输出到i3c总线,用户端向i3c电路设备发送控制流和数据就可以实现i3c主、从设备之间的数据通信,用户可以根据需要输入不同的控制流,实现不同的功能,提高了用户设计i3c电路的灵活性。

请参考图4,其示出了本发明实施例提供的i3c电路的通信方法的流程图。

步骤s301,i3c电路设备10通过控制寄存模块101获取用户端30发送的控制流。

其中,控制流的控制命令为i3c支持的指令,包括:开始(start)、停止(stop)、发送地址(address)、读写数据(data)、内中断(ibi)请求和热连接(hot-join)等i3c支持的功能。用户可以根据自己的需要,按照i3c协议的标准编写控制流输入到控制寄存模块101中,就可以实现相应的功能。

用户端30发送的控制命令的种类不同时,i3c电路设备10通过控制寄存模块101中的若干个控制寄存器根据控制命令的种类分别存入不同的控制寄存器中。

例如:开始(start)命令、发送地址(address)命令、读写数据(data)命令这些不同种类的控制命令都放入不同的控制寄存器中。

步骤s302,i3c电路设备10获取内部状态机102的状态。

i3c电路设备10与i3c总线20相连接,内部状态机102的状态可以由内部状态机102根据i3c总线20中的sda(数据线)的高低电平的转换获取。

步骤s303,判断内部状态机102的状态是否为可执行命令的状态。

内部状态机102的状态为可执行命令的状态是指内部状态机102处于空闲状态或者进行状态的跳转时,内部状态机102状态的跳转是根据i3c协议进行跳转的。

当内部状态机102的状态为可执行命令的状态时,则进入步骤s304,否则返回步骤s302继续等待内部状态机102的状态跳转。

步骤s304,内部状态机102从控制寄存模块101中获取控制命令并解析成i3c总线信号。

内部状态机102根据控制流的控制命令的顺序从控制寄存模块101中的相应的控制寄存器中提取控制命令并解析成i3c总线信号,其中,提取控制命令的顺序是按照控制流中控制命令原来的顺序,控制流是按照i3c协议的顺序编写的控制命令。

作为一种实施方式,控制流中的控制命令是标记了顺序再分别存入控制寄存器中的,当内部状态机102提取命令时,在所有的控制寄存器中寻找,找到下一个顺序的控制命令并执行。

作为一种实施方式,当控制寄存模块101中的控制寄存器存储的控制命令被提取后,控制寄存器自动清除该控制命令。

步骤s305,i3c电路设备10将i3c总线信号输出到i3c总线20。

i3c电路设备10将i3c总线信号输出到与其连接的i3c总线20,完成开始(start)、停止(stop)、发送地址(address)、读写数据(data)、内中断(ibi)请求和热连接(hot-join)等i3c支持的功能。

当i3c电路设备10中的从设备10b为多个时,用户端30编写的控制流可以在其中加入从设备的地址,从而可以对指定的从设备完成相应的功能,应当理解的是,当从设备为一个时,用户编写的控制流也包含有从设备的地址,才能与从设备进行数据的通信。

当进行数据的传输时,数据从用户端30发送到i3c主设备10a再通过i3c总线20传输到从设备10b,或者数据从用户端30发送到从设备10b再通过i3c总线20传输到i3c主设备10a。

本发明实施例提供的i3c电路的通信方法,i3c电路设备通过控制寄存器获取用户端发送的控制流,控制流中的控制命令根据其种类的不同分别输入不同的控制寄存器中;内部状态机根据自身的状态从相应的控制寄存器中提取命令解析成i3c总线信号输出到i3c总线,从而实现了i3c主、从设备之间的数据通信,用户不需要考虑精确的i3c总线时序,通过控制寄存器就可以实现i3c协议的各种功能,使i3c主、从设备之间的信息传输更加灵活。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1