CN114641763B - 协议转换器模块系统和使用该协议转换器模块系统的方法 - Google Patents
协议转换器模块系统和使用该协议转换器模块系统的方法 Download PDFInfo
- Publication number
- CN114641763B CN114641763B CN202080073759.6A CN202080073759A CN114641763B CN 114641763 B CN114641763 B CN 114641763B CN 202080073759 A CN202080073759 A CN 202080073759A CN 114641763 B CN114641763 B CN 114641763B
- Authority
- CN
- China
- Prior art keywords
- spi
- bus
- converter module
- module system
- protocol converter
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims abstract description 66
- 238000012546 transfer Methods 0.000 claims description 40
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 235000015429 Mirabilis expansa Nutrition 0.000 claims description 6
- 244000294411 Mirabilis expansa Species 0.000 claims description 6
- 235000013536 miso Nutrition 0.000 claims description 6
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
Abstract
本申请涉及一种协议转换器模块系统以及一种使用该协议转换器模块系统在公共总线协议和SPI协议之间进行优化转换的方法。本申请的目的在于建立一种高性能的芯片内部总线协议到SPI协议转换器模块系统,以消除现有技术的缺点,该目的将通过协议转换器模块系统来实现,该协议转换器模块系统用于使用虚拟地址映射将芯片内部总线读取或写入传输转换为相应的SPI总线读取或写入传输,该虚拟地址映射是该协议转换器模块系统的ADDR信号的结果,其中该协议转换器模块系统包括:至少一个虚拟地址解码器,用于将该芯片内部总线的ADDR信号译码为定义SPI传输参数的切片;以及SPI状态机,用于根据选择的SPI传输参数管理SPI传输,而1位宽度的ADDR信号的至少一个切片定义传输结束END,如果设置了所述END位,则在传输后去使能SS_N线,否则保持SS_N线使能。
Description
技术领域
本申请公开了一种协议转换器模块系统以及一种使用该协议转换器模块系统在公共总线协议和SPI协议之间进行优化转换的方法。
背景技术
对于使用SPI协议的芯片内部总线主机与SPI从机之间的通信,需要协议转换器模块系统。如何建立一种高性能的芯片内部总线协议到SPI协议转换器模块系统,成为需要解决的问题。
发明内容
本申请的目的将通过协议转换器模块系统来实现,该协议转换器模块系统用于使用虚拟地址映射将芯片内部总线读取或写入传输转换为相应的SPI总线读取或写入传输,该虚拟地址映射是协议转换器模块系统的ADDR信号译码的结果,其中该协议转换器模块系统包括:至少一个虚拟地址解码器,该虚拟地址解码器用于将芯片内部总线的ADDR信号译码为定义SPI传输参数的切片;以及SPI状态机,该SPI状态机用于根据选择的SPI传输参数管理SPI传输,而1位宽度的ADDR信号的至少一个切片定义传输结束END,如果设置了END位,则在传输后去使能SS_N线,否则保持SS_N线使能。
虚拟寻址以有效的方式编码/译码不同的SPI模式和SPI操作,从而产生虚拟地址映射。通过访问虚拟地址映射中的特定地址(也称为芯片内部总线的寻址窗口)简单地组装有不同模式的复杂读写传输序列。协议转换器模块系统使用ADDR信号的LSB来区分不同的SPI交互模式。虚拟地址解码器在每次总线传输开始时从ADDR信号中提取切片,该解码器定义SPI传输参数。
SPI状态机根据ADDR信号的选择和提取的传输参数,管理SPI传输。
来源于从芯片内部总线的ADDR信号的切片对应于预定(虚拟)地址映射。SoC的总线主机可以向任意长度的外部组件发起SPI传输,而只需通过设置去使能SS_N线的END位以完成传输。SPI协议的所有其他操作模式由ADDR信号的其他切片定义,或静态存储在寄存器堆中。
本申请的协议转换器模块系统的另一个优点是,SoC的总线主机可以通过一次总线传输在SPI总线上写入预定数量的BUSDWID位,并且总线主机也可以在SPI总线上读取BUSDWID位而仅使用一次总线传输。因此,本申请的协议转换器模块系统减少所需的微控制器指令的数量,从而减少程序存储器和执行时间。如上所述,如果不使用协议转换器模块系统,则需要进行大量传输。因此,本申请的好处是只需要一次传输。
由于本申请的协议转换器模块系统,所有可能的控制组合都可以用较小的硬件工作来解决,因此可以覆盖较大的范围。这使得可以将同一个协议转换器模块系统,用于不同的,例如,FLASH组件。由于本申请的协议转换器模块系统,不再需要使用多个协议转换器模块系统,每个协议转换器模块系统执行从特定芯片内部总线协议到SPI协议的转换。
在本申请的协议转换器模块系统的一个变体中,ADDR信号的另一切片定义SPI传输的数据宽度(DWID),其指定了通过SPI传输的数据的位的数量。该切片具有预定义常量b(BUSWID)的宽度,而b(n)计算编码n个不同值所需的位数。值0表示必须传输的1位。例如,如果使用SoC的32位微处理器,值31指定32位作为数据宽度。如果芯片内部总线协议和SPI协议之间只需要一种传输大小,则该切片是可选的。
在本申请的协议转换器模块系统的另一个变体中,ADDR信号的另一切片定义并行模式(PMOD),其指定了SPI双向数据线的数量。该切片的宽度为b(b(SPIDWID)),而b(n)计算编码n个不同值所需的位数。b(n)是对n进行log2操作的四舍五入。例如,值0相当于单模,这意味着对于32位数据宽度,在32个时钟周期内仅使用一条数据线传输32位。值1表示双路模式,而在16个时钟周期内通过两条数据线传输32位,值2表示四路模式,而在8个时钟周期内通过四条数据线传输32位,值3表示八路模式,而在4个时钟周期内通过八条数据线传输32位。
在本申请的协议转换器模块系统的另一变体中,ADDR信号的另一切片定义时钟分频系数(CLKDIV),其指定了芯片内部时钟的CLK与SPI时钟的SCLK的时钟比。该切片的宽度为CLKDIVWID。例如,值4表示SPI时钟(SCLK)在芯片内部时钟(CLK)的四分之一上运行。该切片是可选的,并且在寄存器堆中可能是静态的。不同的SPI设备支持不同的最大速度,而且同一设备的不同命令/SPI序列可以支持不同的速度。对于本申请的协议转换器模块系统,很容易进行速度切换。
在本申请的协议转换器模块系统的另一个进一步变体中,ADDR信号的另一切片定义从机选择(SS_N),其指定了多个SPI从机的数量,而每个SPI从机具有自己的SS_N信号。该切片的宽度为SPISWID。每个位选择一个从机。允许同时寻址多个从机。该切片是可选的,如果只有一个SPI从机,则应跳过该切片。这可以在称为SPISSWID的常量中指定,在协议转换器模块系统的设计时中定义SPISSWID并在下文解释。
在本申请的协议转换器模块系统的一个变体中,ADDR信号的另一切片定义暂停(PAUSE),其确保对于给定数量的SPI时钟在两次SPI传输之间的暂停。该切片可以是任何宽度。该切片是可选的,并且在寄存器堆中可能是静态的。一些罕见的设备需要这种间隔。
在本申请协议转换器模块系统的另一变体中,ADDR信号的另一切片定义时钟极性(CPOL),其选择时钟极性SPI协议实现细节并具有1位宽度。该切片是可选的,并且在寄存器堆中可能是静态的。
在本申请的协议转换器模块系统的另一变体中,ADDR信号的另一切片定义时钟相位(CPHA),其选择时钟相位SPI协议实现细节并具有1位宽度。该切片是可选的,并且在寄存器堆中可能是静态的。
切片及其为该切片设置或定义的值的组合,定义了虚拟地址映射的虚拟地址窗口。可以通过芯片内部总线读取或写入虚拟地址映射的每个地址。本申请的协议转换器模块系统将它们转换为相应的SPI读取或写入传输。
在本申请的协议转换器模块系统的一个变体中,协议转换器系统还包括:总线数据级,该总线数据级用于从芯片内部总线或从芯片内部总线采集或呈现写入或读取的数据;总线状态机,该总线状态机用于采集芯片内部总线传输,控制总线数据级并与SPI状态机交互;SPI时钟发生器,该SPI时钟发生器用于根据选择的CLKDIV产生SCLK信号;以及SPI移位寄存器,该SPI移位寄存器用于根据选择的传输模式(PMODE)、时钟极性(CPOL)和时钟相位(CPHA),产生或采集用于写入或者读取的SPI数据信号。
总线数据级从芯片内部总线采集写入数据,并将读取数据呈现给芯片内部总线。总线状态机采集芯片内部总线传输,生成符合总线协议的响应,控制总线数据级并与SPI状态机交互。SPI时钟发生器根据选择的CLKDIV,产生SCLK信号。根据选择的传输模式、时钟极性和时钟相位,SPI移位寄存器产生用于写入的SPI数据信号,或在读取时采集SPI数据信号。SPI状态机根据选择的传输参数,管理SPI传输,控制SPI时钟和SPI移位寄存器,并产生SS_N信号。
在本申请的协议转换器模块系统的另一个变体中,在协议转换器模块系统的设计时,定义以下符号,假设函数其计算编码n个不同值所需的位数:SPIDWID定义SPI双向数据线的最大数量,SPISSWID定义SPI从机的数量,BUSDWID定义芯片内部总线数据宽度,BUSAWID定义芯片内部总线地址宽度,以及CLKDIVWID定义支持高达2CLKDIVWID-1的时钟分频的时钟分频说明符。
需要在本申请的协议转换器系统的设计时定义一些常数,而假设函数是有利的,其计算编码n个不同值所需的位数。需要的常数是:SPIDWID,最好是2的幂;SPISSWID,而每个从机都有自己的SS_N信号;BUSDWID,最好是8的倍数;BUSAWID;以及CLKDIVWID。
该目标也将通过一种使用根据前述权利要求所述的协议转换器模块系统以优化运行在片上系统SoC上的公共芯片内部总线协议和运行在外部组件上的SPI协议之间的协议转换的方法来实现,该方法包括以下用于读取操作的步骤:
-将ADDR信号从总线主机传输到协议转换器模块系统的虚拟地址解码器,并提取提供给SPI状态机的SPI传输参数;
-由于是读取传输,对协议转换器模块系统的MISO引脚进行采样;
-当读取所有位时,将SPI移位寄存器的总线读取值复制到总线数据级,并将芯片内部总线上的读取值呈现在RDATA线上;以及
-在READY上以高电平结束。
对于写入操作,必须执行以下步骤:
-将ADDR信号从总线主机传输到协议转换器模块系统的虚拟地址解码器,并提取提供给SPI状态机的SPI传输参数;
-通过总线数据级将WDATA信号传输到SPI移位寄存器;以及
-由于是写入传输,将协议转换器模块系统的MOSI引脚上的数据位移出。
将使用示例性实施例更详细地解释本申请。
附图说明
图1SPI串行接口-单次写入传输(现有技术);
图2SPI串行接口-四路传输(现有技术);
图3总线读取传输(现有技术);
图4总线写入传输(现有技术);
图5从芯片内部总线到SPI的协议转换;
图6本申请的协议转换器模块的框图;
图7根据本申请的ADDR-信号译码;
图8根据本申请的虚拟地址映射窗口;
图9根据本申请第一实施例的协议传输-字读取;
图10根据本申请第二实施例的协议传输-字写入;
图11根据本申请第三实施例的协议传输-双字读取传输;
图12根据本申请第四实施例的协议转换-PMODE=2的连续字写入传输。
具体实施方式
串行外设接口(SPI)(参见“串行外设接口”,2019年,[在线的],获取地址:https://en.wikipedia.org/wiki/Serial_Peripheral_Interface)是本地设备之间数据交换的标准化接口。标准配置包括4行:
‘SCLK’时钟线,由SPI主机驱动,由SPI从机消耗,
‘MOSI’Master-Out Slave-In,数据,由SPI主机驱动,由SPI从机消耗,
‘MISO’Master-In Slave-Out,数据,由SPI从机驱动,由SPI主机消耗,
‘SS_N’Slave-Select Not,从机使能,由SPI主机驱动,由SPI从机消耗。
单次写入SPI传输如图1所示。主机使能(assert)SS_N,在SCLK上产生给定数量的时钟周期,在MOSI上发送数据位并去使能(de-assert)SS_N。每当SS_N线被使能时,可以传输数据位。
有不同的实现细节:
‘CPOL’时钟极性,它定义SCLK的上升沿或下降沿是否被评估为前沿,
‘CPHA’时钟相位,它定义信号更新和/或采样是在前沿还是后沿上完成。
SPI协议的扩展的变体使用更多(双路、4路、8路)的数据线,但在半双工模式下使用的数据线是双向的。数据速度乘以数据线的数量。图2描述了Quad SPI传输。它以使能SS_N开始,以去使能SS_N结束。每条数据线在每个时钟周期按位传输。在4条数据线的情况下,32位在32/4=8个时钟周期内传输。
片上系统(System-on-Chip,SoC)的芯片内部组件通常通过标准化总线系统链接,因此采用芯片内部总线协议(即AHB-“高级微控制器总线架构”,2019年,[在线的],获取地址:https://en.wikipedia.org/wiki/Advanced_Micro controller_Bus_ArchitectureorWishbone或者“Wishbone(计算机总线)”,2019年,[在线的],获取地址:https://en.wikipedia.org/wiki/Wishbone_(computer_bus)。
芯片内部总线协议有多种标准和实施方式。它们都有共同的最小信号集。信号的名称可能因标准而异,但功能相似。
‘CLK’时钟线,由时钟源驱动,
‘ADDR’地址,BUSAWID(即32)位向量,由总线主机驱动,由总线从机消耗,
‘WRITE’读写,在读取或写入传输之间选择,由总线主机驱动,由总线从机消耗,
‘TRANS’传输,表示新总线操作的开始,由总线主机驱动,由总线从机消耗,
‘WDATA’要写入的数据,BUSDWID(即32)位向量,由总线主机驱动,由总线从机消耗,
‘RDATA’读取数据,BUSDWID(即32)位向量,由总线从机驱动,由总线主机消耗,
‘READY’就绪,表示总线操作结束,由总线从机驱动,由总线主机消耗。
图3描述了单次读取传输。总线主机应用ADDR、WRITE、TRANS并等待READY变为高。因此读取的数据RDATA是有效的。
图4描述了单次写入传输。总线主机应用ADDR、WRITE、TRANS、WDATA并等待READY变为高。
根据芯片内部总线协议的确切信号时序因标准而异。除了列出的信号之外,还有以下重要的常见事实:
-传输总是包含地址,并且是读取操作或写入操作。
-读取操作将数据从从机传输到主机。
-写入操作将数据从主机传输到从机。
-传输具有定义的开始,由总线主机发起。
-传输具有定义的结束,由总线从机定义/延迟。
-ADDR信号的最高有效位(Most Significant Bit,MSB)用于在从机之间进行选择。
-ADDR信号的最低有效位(Least Significant Bit,LSB)根据其需要在从机内使用。
一些总线协议还支持不同于数据宽度(BUSDWID)的传输大小。本申请要求的最小传输粒度是BUSDWID。
芯片内部总线基础结构具有以下组成部分:
‘主’模块,可以启动总线传输,
‘从’模块,响应总线传输。
主模块可以是,例如,微控制器或直接存储器访问(Direct Memory Access,DMA)模块。
从模块可以是存储器,该存储器是可读和/或可写字的完整矩阵,或者是可读和/或可写触发器的一个或多个向量的寄存器堆。这些触发器控制或观察硬件信号。这些触发器可在一个或多个地址进行总线访问。还有其他的从模块,例如,FLASH控制器等。
几乎每个片上系统(System-on-Chip,SoC)的芯片内部微控制器都有总线主接口,其启动符合总线协议的读写传输。固件只是读取和写入地址。
典型的处理器指令集需要两条用于读取传输的处理器指令:
1、将地址常量加载到处理器寄存器A;
2、加载来自处理器寄存器A中的地址,将读取值存储到处理器寄存器B;
写入传输需要三个处理器指令:
1、将地址常量加载到处理器寄存器A;
2、将数据常量加载到处理器寄存器B;
3、将处理器寄存器B的内容存储在处理器寄存器A的地址。
在下一个加载指令或存储指令之前,多次传输总是需要更新地址寄存器A的指令。在某些情况下,甚至更多。有多种方法可以缓解这些问题:总线突发传输、处理器流水线等。
在突发模式传输中,设备重复传输数据,而无需完成在单独事务中传输每条数据所需的所有步骤。具有突发模式能力或使用突发模式的常见原因是增加数据吞吐量。
处理器流水线试图通过将传入指令划分为由不同处理器单元执行的一系列顺序步骤,以使处理器的每个部分都忙于某个指令,同时并行处理不同部分的指令。它允许比在给定时钟速率下可能实现的更快的CPU吞吐量,但可能会由于流水线过程本身的额外开销而增加延迟。
主要问题是SoC的芯片内部总线协议和SPI协议有很大的不同。想要通过芯片内部总线启动SPI传输的固件需要使用协议转换器模块系统(参见图5)。由于SPI master 4和SPI slave 5之间的SPI bus 6上使用的SPI协议是标准化的并且始终相同,因此在芯片内部组件之间的SoC的内部总线7上使用的芯片内部总线协议可以在不同的芯片实施方式中具有很大区别。
对于使用SPI协议的芯片内部总线主机与SPI从机之间的通信,需要协议转换器模块系统。传输是处理器程序的一部分。芯片内部总线主机到SPI从机之间的任何转换都需要大量的读写传输。每个总线读取和写入操作都需要大量时钟周期,明显限制了最大SPI传输速度。
因此,本申请的目的是建立一种高性能的芯片内部总线协议到SPI协议转换器模块系统,以消除现有技术中的上述缺点。
图6示出了本申请的协议转换器模块系统1的框图,特别是作为使用虚拟地址窗口的AHB(Advanced High-performance Bus,AHB)到SPI协议转换器模块系统的示例。协议转换器模块系统1包括以下组件:虚拟地址解码器8,将ADDR信号分成图7所示的表1的切片,并以此定义SPI传输参数;总线状态机10,采集芯片内部总线传输,生成符合总线协议的响应,控制总线数据级并与SPI状态机9交互;总线数据级11,从芯片内部总线采集写入数据,并将读取数据呈现给芯片内部总线。根据选择的传输参数;SPI状态机9,管理SPI传输,控制SPI时钟和SPI移位寄存器12,并产生SS_N信号;SPI时钟发生器13,根据选择的CLKDIV产生SCLK信号;以及SPI移位寄存器,根据选择的传输模式、时钟极性和时钟相位,产生用于写入的SPI数据信号或在读取时采集SPI数据信号。
图7的表1的示例地址切片,使得出现图8所示的表2中的示例虚拟地址窗口。为不同切片选择的LSB只是示例。可以使用每个位选择或映射。图7表1中的切片顺序由实施方式决定。每个地址可以通过芯片内部总线读取或写入。协议转换器模块系统1将它们转换为相应的SPI读取或写入传输。例如,子地址0x00FC上写入的芯片内部总线将被转换为图1所示的单个32位SPI写入。子地址窗口0x0280-0x02FF上读取或写入的芯片内部总线将被转换为图2所示的四路SPI读写操作。
图9详细说明了从子地址0x00FC上读取的芯片内部总线到单个32位SPI读取操作的协议转换。ADDR信号的切片(参见图7中的表1)定义了SPI传输细节。
·ADDR[6:2]将DWID定义为31,因此SPI传输大小为32位。
·ADDR[7]将END定义为1,因此SS_N在最后设置为1。
·ADDR[9:8]将PMODE定义为0,因此传输只使用一条数据线,这里是MISO。
·ADDR[13:10]将CLKDIV定义为0,因此SCLK与CLK相同。
由于是读取传输,因此MISO引脚被采样并被移入总线读取值。一旦读取了所有32位,读取的值就会呈现在RDATA上的芯片内部总线上,同时在READY上具有高电平。图9的前七条线表示芯片内部总线上的电平,图9的后四条线表示SPI总线上的电平。这同样适用于图10至图12。
图10示出了相应的芯片内部总线写入,其被转换为单个32位SPI写入操作。写入数据出现在MOSI引脚上并被移出。由于写入数据刚刚被接管,芯片内部总线信号READY保持高电平。于是芯片内部总线被释放,总线主机可以继续其他任务,而协议转换器模块系统汇编SPI写入传输。
确切的总线时序可能因标准而异。SPI信号时序(时钟极性和/或时钟相位)也可能不同。一般来说:
·-ADDR的切片DWID定义要传输的数据位数。如果DWID不是SPIDWID的倍数,则用0填充未使用的位。SCLK具有时钟周期。
·-ADDR的切片END定义SPI传输结束时SS_N的值(图9中的时钟35)。
·-保留SS_N使能(低),使SPI传输宽于BUSDWID(图11中的时钟35和后续时钟)。
·-一旦从MISO中采样到最后的数据位,协议转换器就通过READY结束总线读取操作。
·-总线写入操作不插入任何等待周期。READY立即被使能。连续的写入操作会插入等待周期,直到前一个操作完成(参见图12)。
ADDR[7]切片END可用于将单个芯片内部总线传输连接到较大的SPI传输。图11示出了64位SPI读取传输。END在第一次芯片内部总线传输中为0,在后续为1。第一个芯片内部总线读取操作读取前32位。后续芯片内部总线读取操作读取下一个32位。END指示器可用于组装任何SPI传输长度,与最大芯片内部总线传输大小无关。图12示出了64位SPI写入传输的连接。此外,其在四路模式下运行(PMODE=2)。
SPI协议在实施方式上具有较高的多样性。通用的SPI主机应该符合所有这些要求。任何未涵盖的实现细节都可以集成到地址解码中。
总线主机不必是微控制器。任何其他总线主机同样可以使用协议转换。
一些总线协议支持不同的传输大小。DWID切片可以直接从传输大小导出。但这将传输大小限制为子集-通常是多个字节。
一些协议支持突发读取和写入。END切片可以直接从突发长度导出。但这将传输大小限制为子集。突发长度通常由硬件(即缓存结构)决定,因此很难在固件中控制。
附图标记列表
1 协议转换器模块系统
2 片上系统的总线主机
3 片上系统的总线从机
4 SPI主机
5 SPI从机
6 使用SPI协议的SPI总线
7 使用芯片内部总线协议的总线
8 虚拟地址解码器
9 SPI状态机
10 总线状态机
11 总线数据级
12 SPI移位寄存器
13 SPI时钟发生器
Claims (12)
1.一种协议转换器模块系统(1),其特征在于,所述协议转换器模块系统(1)用于使用虚拟地址映射将芯片内部总线读取或写入传输转换为相应的SPI总线读取或写入传输,所述虚拟地址映射是所述协议转换器模块系统(1)的ADDR信号译码的结果,其中所述协议转换器模块系统(1)包括:
至少一个虚拟地址解码器(8),所述虚拟地址解码器用于将所述芯片内部总线(7)的ADDR信号译码为定义SPI传输参数的切片;以及
SPI状态机(9),所述SPI状态机(9)用于根据选择的SPI传输参数管理SPI传输,而1位宽度的所述ADDR信号的至少一个切片定义传输结束END,如果设置了所述位,则在传输后去使能SS_N线,否则保持SS_N线使能。
2.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义SPI传输的数据宽度DWID,其指定了要通过SPI传输的数据的位的数量。
3.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义并行模式PMOD,其指定了SPI双向数据线的数量。
4.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义时钟分频系数CLKDIV,其指定了所述芯片内部时钟的CLK与SPI时钟的SCLK的时钟比。
5.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义从机选择SS,其指定了多个SPI从机(5)的数量,而每个SPI从机(5)具有自己的SS_N信号。
6.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义暂停PAUS,其确保对于给定数量的SPI时钟在两次SPI传输之间的暂停。
7.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义时钟极性CPOL,其选择时钟极性SPI协议实现细节并具有1位宽度。
8.根据权利要求1所述的协议转换器模块系统(1),其特征在于,所述ADDR信号的另一切片定义时钟相位CPHA,其选择时钟相位SPI协议实现细节并具有1位宽度。
9.根据权利要求1至8中任一项所述的协议转换器模块系统(1),其特征在于,所述协议转换器模块系统(1)还包括:
总线数据级(11),所述总线数据级(11)用于从所述芯片内部总线(7)或向所述芯片内部总线(7)采集或呈现写入或读取的数据;
总线状态机(10),所述总线状态机(10)用于采集所述芯片内部总线传输,控制所述总线数据级(11)并与所述SPI状态机(9)交互;
SPI时钟发生器,所述SPI时钟发生器用于根据选择的CLKDIV产生SCLK信号;以及
SPI移位寄存器(12),所述SPI移位寄存器(12)用于根据选择的传输模式PMODE、时钟极性CPOL和时钟相位CPHA,产生或采集用于写入或者读取的SPI数据信号。
10.根据权利要求1至8中任一项所述的协议转换器模块系统(1),其特征在于,在所述协议转换器模块系统(1)设计时,假设函数定义以下符号,其计算编码n个不同值所需的位数:SPIDWID定义SPI双向数据线的最大数量,SPISSWID定义SPI从机的数量,BUSDWID定义芯片内部总线数据宽度,BUSAWID定义芯片内部总线地址宽度,以及CLKDIVWID定义支持高达2CLKDIVWID-1的时钟分频的时钟分频说明符。
11.一种使用根据权利要求1至8中任一项所述的协议转换器模块系统(1),其特征在于,用于优化运行在片上系统SoC上的公共芯片内部总线协议和运行在外部组件上的SPI协议之间的协议转换的方法,所述方法包括以下用于读取操作的步骤:
将ADDR信号从总线主机(2)传输到所述协议转换器模块系统(1)的虚拟地址解码器(8),并提取提供给SPI状态机(9)的SPI传输参数;
由于是读取传输,对所述协议转换器模块系统(1)的MISO引脚进行采样;以及
当读取所有位时,将SPI移位寄存器(12)的总线读取值复制到总线数据级(11),并将所述芯片内部总线(7)上的读取值呈现在RDATA线上;
在READY上以高电平结束。
12.一种使用根据前述权利要求所述的协议转换器模块系统(1)来优化运行在片上系统SoC上的公共芯片内部总线协议和运行在外部组件上的SPI协议之间的协议转换的方法,其特征在于,所述方法包括以下用于写入操作的步骤:
将ADDR信号从总线主机(2)传输到所述协议转换器模块系统(1)的虚拟地址解码器(8),并提取提供给SPI状态机(9)的SPI传输参数;
通过总线数据级(11)将WDATA信号传输到SPI移位寄存器(12);以及
由于是写入传输,将所述协议转换器模块系统(1)的MOSI引脚上的数据位移出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19207180 | 2019-11-05 | ||
EP19207180.1 | 2019-11-05 | ||
PCT/EP2020/079235 WO2021089303A1 (en) | 2019-11-05 | 2020-10-16 | Protocol translator module system and method using said protocol translator module system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114641763A CN114641763A (zh) | 2022-06-17 |
CN114641763B true CN114641763B (zh) | 2024-04-19 |
Family
ID=73131682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080073759.6A Active CN114641763B (zh) | 2019-11-05 | 2020-10-16 | 协议转换器模块系统和使用该协议转换器模块系统的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114641763B (zh) |
WO (1) | WO2021089303A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115914427A (zh) * | 2022-10-24 | 2023-04-04 | 宁波义钛云软件有限公司 | 终端协议集成及调用方法、装置、计算机设备、存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0619548A1 (en) * | 1993-04-06 | 1994-10-12 | STMicroelectronics S.r.l. | Interface circuit between a control bus and an integrated circuit suitable for two different protocol standards |
CN105320637A (zh) * | 2015-10-23 | 2016-02-10 | 西安中科晶像光电科技有限公司 | Flash数据读取电路 |
WO2016123885A1 (zh) * | 2015-02-05 | 2016-08-11 | 中车青岛四方车辆研究所有限公司 | Cpci总线和isa总线的协议转换器和转换方法 |
CN107291655A (zh) * | 2017-06-14 | 2017-10-24 | 北方电子研究院安徽有限公司 | 一种带APB总线接口的SoC自举IP电路 |
CN107577635A (zh) * | 2017-08-29 | 2018-01-12 | 西安微电子技术研究所 | 一种兼容ahb协议的非握手式jtag调试链路及其调试方法 |
US10042808B1 (en) * | 2015-09-16 | 2018-08-07 | Xilinx, Inc. | Modeling SPI flash memory commands in hardware |
CN108959136A (zh) * | 2018-06-26 | 2018-12-07 | 豪威科技(上海)有限公司 | 基于spi的数据传输加速装置、系统及数据传输方法 |
US10409507B1 (en) * | 2016-10-31 | 2019-09-10 | Marvell International Ltd. | Methods and apparatus for implementing virtual dynamic library loading in embedded systems |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI547784B (zh) * | 2011-04-22 | 2016-09-01 | 緯創資通股份有限公司 | 動態調整匯流排時脈的方法及其裝置 |
-
2020
- 2020-10-16 CN CN202080073759.6A patent/CN114641763B/zh active Active
- 2020-10-16 WO PCT/EP2020/079235 patent/WO2021089303A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0619548A1 (en) * | 1993-04-06 | 1994-10-12 | STMicroelectronics S.r.l. | Interface circuit between a control bus and an integrated circuit suitable for two different protocol standards |
WO2016123885A1 (zh) * | 2015-02-05 | 2016-08-11 | 中车青岛四方车辆研究所有限公司 | Cpci总线和isa总线的协议转换器和转换方法 |
US10042808B1 (en) * | 2015-09-16 | 2018-08-07 | Xilinx, Inc. | Modeling SPI flash memory commands in hardware |
CN105320637A (zh) * | 2015-10-23 | 2016-02-10 | 西安中科晶像光电科技有限公司 | Flash数据读取电路 |
US10409507B1 (en) * | 2016-10-31 | 2019-09-10 | Marvell International Ltd. | Methods and apparatus for implementing virtual dynamic library loading in embedded systems |
CN107291655A (zh) * | 2017-06-14 | 2017-10-24 | 北方电子研究院安徽有限公司 | 一种带APB总线接口的SoC自举IP电路 |
CN107577635A (zh) * | 2017-08-29 | 2018-01-12 | 西安微电子技术研究所 | 一种兼容ahb协议的非握手式jtag调试链路及其调试方法 |
CN108959136A (zh) * | 2018-06-26 | 2018-12-07 | 豪威科技(上海)有限公司 | 基于spi的数据传输加速装置、系统及数据传输方法 |
Non-Patent Citations (1)
Title |
---|
基于DSP的1553B总线系统设计与实现;黄长春;徐抒岩;胡君;;电子设计工程(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114641763A (zh) | 2022-06-17 |
WO2021089303A1 (en) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679539B (zh) | 主從式系統、指令執行方法與資料存取方法 | |
EP1187027A2 (en) | Micro-controller DMA operation with adjustable word size transfers and address alignment/incrementing | |
CN114490460B (zh) | 一种用于asic的flash控制器及其控制方法 | |
CN105205025A (zh) | 一种芯片互连的方法、芯片及装置 | |
GB2396711A (en) | Memory controller with programmable timing and control registers for data transfers which have a distinct sequence of phases. | |
CN102591783A (zh) | 可编程存储器控制器 | |
CN116414767B (zh) | 一种对基于axi协议乱序响应的重排序方法及系统 | |
KR20100087295A (ko) | 이더넷 컨트롤러 | |
CN106980587B (zh) | 一种通用输入输出时序处理器及时序输入输出控制方法 | |
CN103488600A (zh) | 通用从机同步串行接口电路 | |
US6742058B2 (en) | Memory controller having a multiplexer selecting either second set of input signals or converted signals from first set of input signals by a bus mode input | |
CN114641763B (zh) | 协议转换器模块系统和使用该协议转换器模块系统的方法 | |
CN113590520B (zh) | Spi系统自动写入数据的控制方法及spi系统 | |
CN111615691A (zh) | 直接存储器访问适配器 | |
EP2393013B1 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
CN102708079B (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
JP2009181579A (ja) | 機能を呼び出す方法、サブシステムおよびシステム | |
CN110765065A (zh) | 片上系统 | |
CN103064817A (zh) | 一种简化两线式串行数据总线传输方法 | |
EP4266185A1 (en) | Microcontroller chip containing multi-protocol communication interface peripheral and operation method therefor | |
CN102622319B (zh) | 基于mpmc的高速存储器接口ip核的数据交换系统 | |
JP2004110436A (ja) | メモリのリード/ライト制御回路、無接点メモリカード、リード/ライト装置及び無接点メモリカードのリード/ライトシステム | |
US10025730B2 (en) | Register device and method for software programming | |
CN109558076A (zh) | 一种可配置的虚拟spi-flash | |
US20240202156A1 (en) | Device and method for adaptive bus protocol |
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 |