一种I3C设备及通信方法与流程

文档序号:14714273发布日期:2018-06-16 01:01阅读:469来源:国知局
一种I3C设备及通信方法与流程

本发明属于集成电路IP核设计技术领域,更具体地说,是涉及一种I3C设备及通信方法。



背景技术:

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

依据移动产业处理器端口(Mobile Industry Processor Interface,简称MIPI)联盟的I3C新标准规范,I3C是一种改进I2C特性的新的接口标准,同时支持向后兼容性,允许I2C从设备与支持MIPI联盟的I3C规范的新设备共存,I3C主设备能够在快速模式下(FM)和快速模式+(FM+)速率下与I2C从设备进行通信。但是,I3C主设备要实现与I2C从设备的通信,如果采用纯传统模式作为I2C总线运行,将无法利用I3C规范特性的任何优势,同时也会导致I3C接口逻辑复杂度、功耗变大。

综上所述,现有的I3C设备及方法无法实现I3C主设备兼容I2C从设备时保留I3C规范的优点并以高数据速率与I3C从设备进行通信。



技术实现要素:

本发明的目的在于提供一种I3C设备及方法,以解决现有技术中存在的I3C设备与I2C设备共存时,I3C设备无法保留其高数据速率等优点的问题。

本发明是这样实现的:

本发明第一方面提供一种I3C设备,所述I3C设备包括用户端、I3C主设备及从设备,所述从设备包括I2C从设备和/或I3C从设备;所述I3C主设备通过I3C总线与所述I2C从设备连接,所述I3C从设备通过所述I3C总线与所述I3C主设备连接;

具体的,所述用户端,用于向I3C主设备发送控制命令流,并接收所述I3C主设备反馈的反馈信号;所述I3C主设备,用于接收所述控制命令流,并将所述控制命令流解析成总线控制信号发送至I3C总线上;其中,所述控制命令流中包含从机地址,所述从机地址为I3C地址和/或I2C专用地址;所述I2C从设备,用于接收所述I3C总线上对应所述I2C专用地址的总线控制信号,并根据所述I2C专用地址的总线控制信号接收所述I3C主设备发送的数据,或者根据所述I2C专用地址的总线控制信号向所述I3C主设备发送数据;所述I3C从设备,用于接收所述I3C总线上对应所述I3C地址的总线控制信号,并根据所述I3C地址的总线控制信号接收所述I3C主设备发送的数据,或者根据所述I3C地址的总线控制信号向所述I3C主设备发送数据。

本发明实施例提供的I3C设备,通过I3C总线实现I2C从设备或者I3C从设备与I3C主设备的通信,在I3C总线上配置I2C从设备专用地址,I3C主设备接收用户端传输的控制命令流并解析控制命令流中的从机地址,I3C主设备通过判断从机地址区分通信的对象是I3C从设备还是I2C从设备,并根据用户的不同需求调整时钟频率,进而满足不同功能需求,使I3C主设备兼容I2C从设备时可以保留I3C规范的优点以高数据速率与I3C从设备进行通信。

本发明第二方面提供一种I3C设备的通信方法,所述方法包括以下步骤:

步骤S10:所述用户端向I3C主设备发送控制命令流,并接收所述I3C主设备反馈的反馈信号;

步骤S20:所述I3C主设备接收所述控制命令流,并将所述控制命令流解析成总线控制信号发送至I3C总线上;其中,所述控制命令流中包含从机地址,所述从机地址为I3C地址和/或I2C专用地址;

步骤S30:所述I3C主设备判断所述从机地址是否为所述I2C从设备专用地址,若是,执行步骤S40,若否,则执行步骤S50;

步骤S40:所述I2C从设备接收所述I3C总线上对应所述I2C专用地址的总线控制信号,并根据所述I2C专用地址的总线控制信号接收所述I3C主设备发送的数据,或者根据所述I2C专用地址的总线控制信号向所述I3C主设备发送数据;

步骤S50:所述I3C从设备接收所述I3C总线上对应所述I3C地址的总线控制信号,并根据所述I3C地址的总线控制信号接收所述I3C主设备发送的数据,或者根据所述I3C地址的总线控制信号向所述I3C主设备发送数据。

本发明提供的I3C设备的通信方法,通过用户端向I3C主设备发送控制命令流,I3C主设备接收用户端发送的控制命令流并解析控制命令流中的从机地址,判断从机地址是否属于I2C从设备专用地址,是则I3C主设备调整与I2C从设备相对应的时钟频率,并对I2C从设备根据I2C协议执行读写操作,否则I3C主设备调整与I3C从设备相对应的时钟频率,并对I3C从设备根据I3C协议执行读写操作,使I3C主设备可以保留I3C规范的优点同时兼容I2C从设备时以高数据速率与I3C从设备进行通信。

附图说明

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

图1是本发明一实施例提供的I3C设备的结构示意图;

图2是本发明一实施例提供的I3C设备的通信方法的通信流程图;

图3是本发明一实施例提供的I3C设备的通信方法的I2C从设备接收I3C主设备发送的数据的流程图;

图4是本发明一实施例提供的I3C设备的通信方法的I2C从设备向I3C主设备发送数据的流程图;

图5是本发明一实施例提供的I3C设备的通信方法的I3C从设备接收I3C主设备发送的数据的流程图;

图6是本发明一实施例提供的I3C设备的通信方法的I3C从设备向I3C主设备发送数据的流程图。

其中,100-用户端;200-I3C主设备;300-从设备;301-I2C从设备;302-I3C从设备。

具体实施方式

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

图1示出了本发明一实施例所提供的I3C设备的结构示意图,为了便于说明,仅示出与本实施例相关的部分,详述如下:

I3C设备包括用户端100、I3C主设备200及从设备300,从设备300包括I2C从设备301和/或I3C从设备302。

其中,I3C主设备200通过I3C总线与I2C从设备301连接,I3C从设备302通过I3C总线与I3C主设备200连接。

具体的,用户端100,用于向I3C主设备200发送控制命令流,并接收所述I3C主设备200反馈的反馈信号。

具体的,I3C主设备200,用于接收控制命令流,并将控制命令流解析成总线控制信号发送至I3C总线上;其中,控制命令流中包含从机地址,从机地址为I3C地址和/或I2C专用地址。

具体的,I2C从设备301,用于接收I3C总线上对应I2C专用地址的总线控制信号,并根据I2C专用地址的总线控制信号接收I3C主设备200发送的数据,或者根据I2C专用地址的总线控制信号向I3C主设备200发送数据;

具体的,I3C从设备302,用于接收I3C总线上对应I3C地址的总线控制信号,并根据I3C地址的总线控制信号接收I3C主设备200发送的数据,或者根据I3C地址的总线控制信号向I3C主设备200发送数据。

需要说明的是,在本实施例中,I3C主设备200可以包括输入模块、解析模块及I3C电路端口模块;输入模块用于接收控制命令流,并将控制命令流传输至解析模块;解析模块用于解析控制命令流中的从机地址,并传输至I3C电路端口模块;I3C电路端口模块用于接收已完成解析的从机地址,并通过I3C总线传输给从设备300,以便从设备300进行读写操作。

作为一种实施方式,在本发明中,I3C主设备200具有I3C接口,可以实现I3C总线协议,I3C总线协议是一种全新的协议标准,能有效的减少集成装置的物理端口、支持低功耗、高数据速率和其他已有端口协议的优点,I3C总线协议规范吸纳了I2C和SPI的关键特性,具有低引线数、可扩展性、低功耗、更高的容量和新的性能,而且兼容I2C,允许I2C从设备301在相同端口上与I3C总线协议规范的新设备共存。

作为一种实施方式,在本发明中,从设备300是用硬件描述语言的电路,通过I3C总线端口连接到I3C总线上,从设备300通过I3C总线可以实现与I3C主设备200之间的通信,从设备300与I3C主设备200进行数据通信时,可以接收I3C主设备200发送到I3C总线的读写指令和读写操作,并根据读写指令和读写操作做出相应的反馈,进行数据通信。例如,硬件描述语言可以是VerilogHDL、VHDL语言描述的电路,其中,VerilogHDL、VHDL语言都是一种硬件描述的语言。

作为一种实施方式,在本发明中,从设备300可以为I3C从设备302,I3C从设备302采用I3C串行通信协议,吸纳I2C和SPI的关键特性,并将其统一起来,减少了引线数,增加了可扩展性,并快速的发送批处理数据,实现了用户需求的诸多应用设备的最大数据率,同时,I3C从设备302能够在标准I/O下发起START,主动向I3C主设备200发送数据,随时加入到已有的应用系统中,实现与应用系统主控制器的通信。

作为一种实施方式,在本发明中,从设备300可以为I2C从设备301,为了实现保留I3C总线协议规范的优点同时兼容I2C从设备301时以高数据速率与I3C从设备302进行通信,为I2C从设备301配置I2C从设备301专用地址,此专用地址是指给只供I2C从设备301采用的地址。

作为一种实施方式,在本发明中,从设备300可以包括I2C从设备301和I3C从设备302。

值得注意的是,在本实施例中,I3C主设备200通过专用地址判断当前通信对象是I3C从设备302还是I2C从设备301,若当前通信对象为I2C从设备301,则I3C主设备200调整与I2C从设备301相对应的时钟频率,以I2C协议方式对I2C从设备301进行读写操作,若否,则I3C主设备200调整与I3C从设备302相对应的时钟频率,以I3C协议方式对I3C从设备302进行读写操作。

作为一种实施方式,在本发明中,I3C从设备302还包括通过热接入新加入到I3C总线上的I3C从设备302,I3C主设备200避开I2C从设备301专用地址,按照动态地址分配机制为新加入到I3C总线上的I3C从设备302分配地址,热接入是指在I3C总线配置好以后,I3C从设备302可以随时加入到该I3C总线上,I3C主设备200为I3C从设备302分配动态地址。

作为一种实施方式,在本发明中,从设备300中具体单元可以是互联网传感器、可穿戴设备、医疗仪器、移动设备及汽车系统中的传感器等。

本发明实施例提供的I3C设备,实现I3C总线上I3C从设备与I2C从设备的共存,在I3C总线上配置I2C从设备专用地址,I3C主设备接收用户端传输的控制命令流并解析控制命令流中的从机地址,I3C主设备通过判断从机地址区分通信的对象是I3C从设备还是I2C从设备,并根据用户的不同需求调整时钟频率,进而满足不同功能需求,使I3C主设备兼容I2C从设备时可以保留I3C规范的优点以高数据速率与I3C从设备进行通信。

图2示出了本发明一实施例所提供的I3C设备的通信方法的通信流程图,为了便于说明,仅示出与本实施例相关的部分,详述如下:

I3C设备的通信方法包括以下步骤:

步骤S10:用户端100向I3C主设备200发送控制命令流,并接收I3C主设备200反馈的反馈信号。

步骤S20:I3C主设备200接收控制命令流,并将控制命令流解析成总线控制信号发送至I3C总线上;其中,控制命令流中包含从机地址,从机地址为I3C地址和/或I2C专用地址。

在步骤S20中,I3C主设备200接收到用户端100发送的控制命令流,并对控制命令流中的从机地址进行解析,通过I3C总线向从设备300发送从机地址指令,I3C主设备200当接收到从设备300根据从机地址指令发出的确认的反馈信号时或者接收到用户端100发送的控制命令流时,向从设备300发送读写指令,等待从设备300发出确认的反馈信号。

作为一种实施方式,在本发明中,I3C主设备200包括I3C接口、控制寄存器、中断模块、数据缓存区、状态机、开始模块和结束模块;I3C接口用于实现I3C总线的协议,I3C总线为支持I3C协议的总线,I3C主设备200发送的地址或者读写指令根据I3C总线协议翻译成I3C总线信号发送到I3C总线下的从设备300;控制寄存器模块用于控制和确定操作模式以及当前执行任务的特性;中断模块是I3C主设备200用来处理从设备申请的IBI请求;数据缓存区用于存放I3C主设备200发送或读取从设备300的数据;状态机用于显示I3C主设备200所处的状态及I3C主设备需要进行的操作;开始模块用于产生设备的启动条件,之后进行读写操作;结束模块用于产生结束条件,终止读写操作。

步骤S30:I3C主设备200判断从机地址是否为I2C从设备301专用地址,若是,执行步骤S40,若否,则执行步骤S50。

步骤S40:I2C从设备301接收I3C总线上对应I2C专用地址的总线控制信号,并根据I2C专用地址的总线控制信号接收I3C主设备200发送的数据,或者根据I2C专用地址的总线控制信号向I3C主设备200发送数据

进一步的,作为一种实施方式,在本发明中,如图3所示,I2C从设备301接收I3C主设备200发送的数据的具体包括如下步骤:

步骤S401A:用户端控制I3C主设备200发起开始命令。

步骤S402A:用户端控制I3C主设备200发送七位从机地址和一位写操作指令0,等待I2C从设备301发送确认的反馈信号。

步骤S403A:I2C从设备301接收I2C专用地址,并自动响应I3C主设备200。

步骤S404A:用户端控制I3C主设备200发送I2C从设备301的寄存器地址。

步骤S405A:用户端100控制I3C主设备200发送数据,等待I2C从设备301发送确认的反馈信号。

步骤S406A:I2C从设备302发送确认的反馈信号。

步骤S407A:可重复步骤S405A和S406A多次,并顺序写入多个寄存器。

步骤S408A:I3C主设备200发送结束信号。

进一步的,作为一种实施方式,在本发明中,如图4所示,I2C从设备301向I3C主设备200发送数据的具体包括如下步骤:

步骤S401B:用户端100控制I3C主设备200发起开始命令。

步骤S402B:用户端100控制I3C主设备200发送七位从机地址和写操作指令0,等待I2C从设备301发送确认的反馈信号。

步骤S403B:I2C从设备301接收I2C专用地址,并自动响应I3C主设备200。

步骤S404B:用户端100控制I3C主设备200发送I2C从设备301的寄存器地址。

步骤S405B:I3C主设备200发起开始命令。

步骤S406B:I3C主设备200发送七位从机地址和一位读操作指令1,等待I2C从设备301发送确认的反馈信号。

步骤S407B:I2C从设备301发送确认的反馈信号。

步骤S408B:I3C主设备200读取I2C从设备301寄存器中存放的数据。

步骤S409B:用户端100控制I3C主设备200向I2C从设备301发送应答信号。

步骤410B:重复步骤408B和409B可连续读取多个数据。

步骤411B:I3C主设备200发送结束信号。

步骤S50:I3C从设备302接收I3C总线上对应I3C地址的总线控制信号,并根据I3C地址的总线控制信号接收I3C主设备200发送的数据,或者根据I3C地址的总线控制信号向I3C主设备发送数据。

进一步的,作为一种实施方式,在本发明中,如图5所示,I3C从设备302接收I3C主设备200发送的数据的具体包括如下步骤:

步骤S501A:用户端100控制I3C主设备200发起开始命令。

步骤S502A:用户端100控制I3C主设备200发送七位从机地址和一位写操作指令0,等待I3C从设备302发送确认的反馈信号。

步骤S503A:I3C从设备302检测I3C地址,并自动响应I3C主设备200。

步骤S504A:用户端100控制I3C主设备200发送I3C从设备302的寄存器地址。

步骤S505A:用户端100控制I3C主设备200发送数据,等待I3C从设备302发送确认的反馈信号。

步骤S506A:I3C从设备302发送确认的反馈信号。

步骤S507A:可重复步骤S505A和S506A多次,并顺序写入多个寄存器。

步骤S508A:I3C主设备200发送结束信号。

进一步的,作为一种实施方式,在本发明中,如图6所示,I3C从设备302向I3C主设备200发送数据的具体包括如下步骤:

步骤S501B:用户端100控制I3C主设备200发起开始命令。

步骤S502B:用户端100控制I3C主设备200发送七位从机地址和一位写操作指令0,等待从设备发送确认的反馈信号。

步骤S503B:I3C从设备302自动响应I3C主设备200。

步骤S504B:用户端100控制I3C主设备200发送I3C从设备302的寄存器地址。

步骤S505B:I3C主设备200发起开始命令。

步骤S506B:I3C主设备200发送七位从机地址和一位读操作指令1,等待I3C从设备302发送确认的反馈信号。

步骤S507B:I3C从设备302发送确认的反馈信号。

步骤S508B:I3C主设备200按照步骤S504B写入的寄存器地址开始读取数据。

步骤S509B:用户端100控制I3C主设备200和I3C从设备302分别向对方发送是否继续读取信号,若I3C主设备200停止发送继续读信号,则I3C主设备200发起结束命令;若I3C从设备302停止发送继续读数据信号,则I3C从设备302结束读操作。

需要说明的是,在本实施例中,将控制命令流解析成总线控制信号发送至I3C总线上包括:

对控制命令流解析,以获取解析结果。

若解析结果为控制命令流中包含的从机地址为I2C专用地址,则将I3C总线的频率调整为第一频率,并根据调整频率后的I3C总线向I2C从设备301发送I2C专用地址的总线控制信号。

若解析结果为控制命令流中包含的从机地址为I3C地址,则将I3C总线的频率调整为第二频率,并根据调整频率后的I3C总线向I3C从设备302发送I3C地址的总线控制信号。

其中,第一频率是指I3C主设备200调整与I2C从设备301相对应的时钟频率,第二频率是指I3C主设备200调整与I3C从设备302相对应的时钟频率。

值得注意的是,在本实施例中,I2C从设备301的读写操作与I3C从设备302的读写操作不同,以两者的读取操作为例,I2C从设备301是通过I3C主设备200的应答信号来决定是否发送下一个数据,并且I2C从设备301不能主动结束发送数据,但对I3C从设备302来说,I3C主设备200根据I3C主设备200是否继续读取信息来决定是否继续读取操作,I3C从设备302可以根据I3C从设备302是否继续读取信息来决定是否继续读取操作。

本发明提供的I3C设备及通信方法,通过在I3C总线上配置I2C从设备专用地址,I3C主设备能够通过I2C从设备专用地址判断出当前通信对象是I3C从设备还是I2C从设备,从而智能的切换其工作方式,在用户与I3C主设备之间搭建了一个良好、统一的交互机制,这种以智能方式兼容I2C从设备,简化了用户对I3C总线上从设备操作的繁琐性,还满足I3C总线协议的功能和速度等新要求,确保I3C能够实现集成电路之间更高速度、更灵活、更低功耗的信息传输,提高用户设计的灵活性,达到降低功耗、减少物理接口、高速传输、降低集成电路间互联成本的目的。

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

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