CN104809094A - Spi控制器及其通信方法 - Google Patents
Spi控制器及其通信方法 Download PDFInfo
- Publication number
- CN104809094A CN104809094A CN201510270755.8A CN201510270755A CN104809094A CN 104809094 A CN104809094 A CN 104809094A CN 201510270755 A CN201510270755 A CN 201510270755A CN 104809094 A CN104809094 A CN 104809094A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- controller
- data buffer
- crc
- 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
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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
- G06F2213/2414—Routing of interrupt among interrupt handlers in processor system or interrupt controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种SPI控制器。该控制器包括:接口模块(1)、寄存器组模块(2)、时钟分频模块(3)、发送数据缓冲器(4)、接收数据缓冲器(5)、延时发送模块(6)、发送/接收控制逻辑模块(7)和中断产生模块(8)。另外,本发明公开了一种利用所述SPI控制器通信的方法。本发明可以实现延时发送控制功能,保证了接口操作的高速性,也满足了慢速接口器件的操作时序的要求。
Description
技术领域
本发明涉及***串行总线SPI接口,尤其涉及SPI控制器及利用该控制器实现的通信方法。
背景技术
随着超大规模集成电路的发展,SOC(System on Chip,***级芯片)设计越来越复杂。IP核(Intellectual Property core)是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。IP核具有规范的接口协议,良好的可移植性与可测试性,为***开发提供了可靠的保证。研究IP复用技术具有重要意义。
SPI接口是Motorola公司推出的一种同步串行接口技术。SPI具有结构简单、通讯速度快等显著优点,可以实现CPU与各种***设备(如FLASH、LCD显示驱动器、网络控制器、AD转换器、DA转换器和其他CPU等)以串行方式进行通信。如果能将CPU的各种***设备视为不同的IP核,视为各种IP核的设备基于SPI协议与CPU进行通信,将大大简化芯片的设计难度。但是目前SPI接口设计还不够灵活,一是当接口传输的速度相对于CPU较慢时,接口和CPU的操作时序就会不一致,导致SPI接口适用范围比较窄;二是在通信过程中很容易出现数据传输错位和丢失的错误,得到的数据并不是实际需要的数据。
发明内容
针对现有技术存在的缺陷,为了既保证接口操作的高速性,也满足了慢速接口器件的操作时序的要求。根据本发明的一个方面,提出了一种SPI控制器,所述控制器分别与CPU和外部串行设备相连,所述控制器包括:接口模块、寄存器组模块、时钟分频模块、发送数据缓冲器、接收数据缓冲器、延时发送模块、发送/接收控制逻辑模块、中断产生模块,其中,
接口模块配置为根据总线的时序对寄存器组模块读写,以按逻辑完成接口模块与CPU之间的通信;
寄存器组模块配置为通过接口模块读写操作,完成所述控制器的控制参数的配置;
时钟分频模块配置为根据寄存器组模块中的预分频系数和再分频系数产生串行输出时钟;
发送数据缓冲器配置为缓存通过接口模块写入的待传输数据,直到外部串行设备通过发送/接收控制逻辑模块将所述待传输数据读出;
接收数据缓冲器配置为用于缓存来自发送/接收控制逻辑模块从外部串行设备发送的数据,直到CPU通过接口模块将所述发送的数据读出;
中断产生模块配置为根据接收数据缓冲器的状态信息产生接收数据缓冲器的服务中断、接收数据缓冲器的溢出中断,根据发送数据缓冲器的状态信息产生发送数据缓冲器的服务中断。
本发明的SPI控制器能够满足不同串行***设备接口的时序要求,使得主机可以和连接有不同处理速度的串行***设备快速通信,适应范围更广泛。
在一些实施方式中,寄存器组模块包括控制寄存器、数据寄存器、校验控制寄存器、中断控制寄存器、延时发送寄存器、DMA(DirectMemory Access,直接内存访问)控制寄存器、状态寄存器和时钟分频寄存器。
在一些实施方式中,延时发送模块包括指令解析模块和倒计时计数器模块,
所述指令解析模块配置为解析来自寄存器组模块的延时发送寄存器、发送数据缓冲器、发送/接收控制逻辑模块的命令,并把命令解析结果发送给倒计时计数器模块。
所述倒计时计数器模块配置为根据指令解析模块命令解析结果,对发送数据缓冲器中数据发送到间间隔进行控制。
在一些实施方式中,发送/接收控制逻辑模块包括:发送控制逻辑模块和接收控制逻辑模块,
发送控制逻辑模块包括:CRC(Cyclic Redundancy Check,循环冗余校验)编码模块、并转串逻辑模块和传输结束控制模块,
接收控制逻辑模块包括:数据缓存区模块、串转并逻辑模块、CRC校验模块和接收超时控制模块。
在一些实施方式中,所述的控制器,还包括:
DMA接口,设置为通过接口模块与DMA交互数据。
根据本发明的另一个方面,提出了一种利用SPI控制器通信的方法,包括以下步骤:
1)将上述控制器分别与CPU与外部串行设备通信连接;
2)基于CPU和外部串行设备的接口时序,设置所述控制器的延时的控制参数;
3)所述控制器接收CPU的并行数据,并根据所述延时的控制参数将所述并行数据转化为串行数据后发送给外部串行设备;
4)所述控制器将接收的外部串行设备的串行数据,并将所述串行数据转化成并行数据,以供CPU接收。
在一些实施方式中,上述步骤2)还包括:
设置所述控制器的校验参数;
上述步骤3)还包括:
所述控制器根据所述校验参数,将发送数据缓冲器中的数据发送到发送控制逻辑模块中的CRC编码模块进行CRC编码,生成第一CRC编码,再将所述数据和第一CRC编码一并转换成串行数据输出至所述外部串行设备;
上述步骤4)还包括:
所述控制器根据所述校验参数,将外部串行设备的数据和所述第一CRC编码一并发送到接收控制逻辑模块中的串转并逻辑模块,同时将串行数据的数据部分发送到接收控制逻辑模块中的CRC校验模块,并在CRC校验模块内进行CRC编码,生成第二CRC编码,所述数据和所述第一CRC编码经过串转并逻辑模块转换成并行数据后,数据部分发送到数据缓冲区模块,同时第一CRC编码发送到CRC校验模块;
比较所述第一CRC编码和所述第二CRC编码,
当二者一致时,将所述数据缓冲区模块中的数据发送到接收数据缓冲器以供CPU接收,否则产生CRC错误中断。
在一些实施方式中,所述控制器的控制参数是通过对寄存器组模块的读写操作,对所述控制器的工作模式、移位时钟的极性、移位时钟的相位、时钟频率、数据长度、中断功能、DMA功能、延时发送控制、CRC校验使能参数中的至少一者进行设置。
本发明的提出的SPI控制器支持可编程的延时发送控制功能和CRC校验功能,保证了接口操作的高速性,也满足了慢速接口器件的操作时序的要求,并且也能保证数据传输的准确性和可靠性,适应范围更广泛。
附图说明
图1为本发明一实施方式的SPI控制器的结构示意图;
图2为本发明一实施方式的SPI控制器的延时发送寄存器的帧格式示意图;
图3为本发明一实施方式的SPI控制器的延时发送寄存器各个位域功能示意图;
图4为本发明一实施方式的SPI控制器的发送控制逻辑模块和与其连接的其它模块的结构示意图;
图5为本发明一实施方式的SPI控制器的接收控制逻辑模块和与其连接的其它模块的结构示意图;
图6为本发明一实施方式的SPI控制器发送数据的流程示意图;
图7为本发明一实施方式的SPI控制器接收数据的流程示意图;
图8为本发明一实施方式的SPI控制器的接口时序示意图。
具体实施方式
下面结合附图对本发明作进一步详细的说明。
图1为本发明一实施方式的SPI控制器的结构示意图。如图1所示,SPI控制器包括接口模块1(该接口模块可以根据总线类型,例如APB(Advanced Peripheral Bus,***总线)或者AHB(Advanced Highperformance Bus,***总线)等协议,配置为APB接口模块、AHB接口模块等形式)、寄存器组模块2、时钟分频模块3、发送数据缓冲器4、接收数据缓冲器5、中断产生模块8、DMA接口9这几个常规接口模块,以及功能模块:延时发送模块6、发送/接收控制逻辑模块7(该模块包括发送控制逻辑模块71和接收控制逻辑模块72)。SPI控制器通过接口模块1与CPU 11(本实施例中的CPU也可以由单片机或者SOC芯片代替)和/或DMA 12相连,并通过发送/接收控制逻辑模块7与外部串行设备10相连,使得CPU 11和/或DMA 12与外部串行设备10交互通信。其中:
CPU 11接口模块1配置为根据总线的时序对寄存器组模块2读写,按逻辑完成总线与SPI控制器连接的CPU 11之间的通信。
寄存器组模块2配置为根据接口模块1发来的读写寄存器的控制信号,通过对寄存器组模块2中的寄存器进行读写操作,完成***对SPI接口控制参数的配置,如主从模式配置、时钟的极性配置、时钟相位配置、数据长度(4-16位)配置、CRC校验使能配置、DMA功能使能配置、发送延时配置等,以及标示SPI的工作状态。
寄存器组模块2包括控制寄存器21、数据寄存器22、CRC控制寄存器23、中断控制寄存器24、延时发送寄存器25、DMA控制寄存器26、状态寄存器27、时钟分频寄存器28。
其中,控制寄存器21用来设置工作模式(主从模式)、时钟的极性、时钟相位、数据长度(4-16位)等参数。控制寄存器21主要控制发送/接收控制逻辑模块7。数据寄存器22用来完成对发送数据缓冲器4中写数据操作和读取接收数据缓冲器5中的数据。例如:当接口模块1写数据寄存器22时(即产生发送数据缓冲器4的写信号),数据将放入发送数据缓冲器4中当前发送数据缓冲器写指针所指向的单元;当接口模块1读取数据寄存器22时(即产生接收数据缓冲器的读信号),将访问接收数据缓冲器5中当前接收数据缓冲器读指针所指向的单元。数据寄存器22主要控制发送数据缓冲器4和接收数据缓冲器5。CRC控制寄存器23主要控制CRC校验使能,因此主要控制发送/接收控制逻辑模块7。中断控制寄存器24为一组控制中断的寄存器,一共有4个寄存器,分别是中断掩码寄存器、原始中断状态寄存器、掩码后中断状态寄存器、中断清除寄存器。其中中断掩码寄存器是用来使能各个中断,即允许中断发送给中断控制器;原始中断状态寄存器用来获取各个中断掩码之前的原始中断状态;掩码后中断状态寄存器用来获取各个中断经掩码之后的状态;中断清除寄存器用来清除中断;中断控制寄存器24主要用来控制中断产生模块8。延时发送寄存器25用来延时使能,以及设置延时发送间隔计数的数目,来控制延时发送模块6。DMA控制寄存器26是用来控制DMA接口9的发送DMA使能和接收DMA使能。状态寄存器27主要用来指示发送数据缓冲器4和接收数据缓冲器5的填充状态,因此该寄存器主要用来控制发送数据缓冲器4和接收数据缓冲器5。时钟分频寄存器28用来设置预分频系数和再分频系数,该寄存器主要用来控制时钟分频模块3。
时钟分频模块3用于根据寄存器组模块2的时钟分频寄存器28中的预分频系数和再分频系数产生串行输出时钟。
发送数据缓冲器4用于缓存来自CPU 11通过接口模块1写入的待传输数据,直到发送/接收控制逻辑模块7将其读出。
接收数据缓冲器5用于缓存通过发送/接收控制逻辑模块7从外部串行设备10接收的数据,直到CPU 11通过接口模块1读出该数据。
上述SPI控制器具有16位16级深度的先入先出发送数据缓冲器4和接收数据缓冲器5,在发送和接收时可最多进行32个字节的连续操作。这为高速连续操作提供了可能,提高了通讯效率。
中断产生模块8用于根据接收数据缓冲器5的状态信息产生接收数据缓冲器服务中断、接收数据缓冲器溢出中断,根据发送数据缓冲器4的状态信息产生发送数据缓冲器4的服务中断,根据发送/接收控制逻辑模块7的状态信息传输结束中断、接收数据缓冲器超时中断、CRC错误中断。
DMA接口9用于实现接口模块1和DMA 12之间的通信,使数据传输效率更高。
延时发送模块6包括指令解析模块61和倒计时计数器模块62。延时发送模块6用来控制发送数据缓冲器4中的数据延时发送。根据外部串行设备接口传输速度的情况,通过寄存器组模块2的延时发送寄存器25,对发送数据缓冲器4中数据发送到发送/接收控制逻辑模块7的时间间隔进行控制。
指令解析模块61的主要功能是负责解析来自寄存器组模块2的延时发送寄存器25、发送数据缓冲器4、发送/接收控制逻辑模块7、倒计时计数器模块62的命令,根据命令解析结果,把控制信号(例如:开始倒计时/倒计时计数器启动、倒计时计数器的初值参数信号)发送给倒计时计数器模块62,使倒计时计数器模块62根据命令解析结果进行倒计时计数工作。
图2为本发明一实施方式的SPI控制器的延时发送寄存器的帧格式示意图,图3为本发明一实施方式的SPI控制器的延时发送寄存器各个位域功能示意图。所图2和图3所示,延时发送寄存器25寄存器位域[31:9]为保留位,且为只读;位域[8]为延时发送使能控制位,可读可写,该位置为1代表延时发送使能,即使能延时发送模块6;位域[7:0]为延时发送间隔计数,可读可写,例如,该位域为0x8(二进制8’b00001000),代表延时发送8个时钟,以时钟分频模块3的输出时钟周期为单位计数,因此,倒计时计数器模块62的计数范围为0~255串行时钟周期。
如下是软件编程延时发送数据的例子,以延时发送8个时钟为第一实施例,以延时n个时钟为第二实施例具体说明软件编程延时发送的实现方式。
第一实施例:
#define HWREG(x)
(*((volatile unsigned long*)(x)))
//对于在一个地址上写数据的函数的定义
#define SPI_Delay 0x40000000
//对于延时发送寄存器25的寄存器地址进行定义
HWREG(SPI_Delay)=0x108;
//在SPI_Delay(延时发送寄存器地址)上写0x108(二进制数9’b100001000),延时发送寄存器25位域[8]控制位置1,延时发送使能,位域[7:0]为8’b00001000,代表延时8个时钟。
第二实施例:
#define HWREG(x)
(*((volatile unsigned long*)(x)))
//对于在一个地址上写数据的函数的定义
#define SPI_Delay 0x40000000
//对于延时发送寄存器25的寄存器地址进行定义
#define ASSERT(expr)
//ASSERT函数进行定义
#define DELAYE 0x00000100
//延时发送寄存器25延时发送使能进行定义
void
Delay(unsigned long n)
{
ASSERT((n>=0)&&(n<=255));
//检查变量是大于等于0,还是小于等于255,是否在延时发送计数的范围内
HWREG(SPI_Delay)=n;
//延时n个时钟
HWREG(SPI_Delay)|=DELAYE;
//延时发送使能
}
经过上述软件编程就可以对延时发送进行可编程配置,结合延时发送模块6可以实现延时发送的功能。本发明的延时发送是通过硬件延时发送模块6来实现的,只需对延时参数进行设置,无需编写大量使用软件延时程序,通过消耗软件资源,增加CPU的处理负担来实现延时发送。本发明通过硬件来实现延时发送,减少了软件资源的消耗,并且减轻了CPU的处理负担。保证了接口操作的高速性,也满足了慢速接口器件的操作时序的要求。
当寄存器组模块2的延时发送寄存器25的位域[8]置位(根据寄存器组模块2的延时发送寄存器25的指示信号),并且当发送数据缓冲器4中存在数据,即发送数据缓冲器4不空(根据发送数据缓冲器4的指示信号),并且发送的前一个数据的最后一位即将发送到输出串口上时(根据来自发送/接收控制逻辑模块7的指示信号),并且此时倒计时计数器处于清零状态(根据倒计时计数器模块62的指示信号)时,当这些指示条件都满足时,指令解析模块61将这些指示信息解析成倒计时计数器启动命令,将其发送给倒计时计数器模块62;指令解析模块61将来自寄存器组模块2的延时发送寄存器25的位域[7:0]解析成倒计时计数器的初值参数发送给倒计时计数器模块62。
倒计时计数器模块62的功能是根据指令解析模块61命令解析结果,对发送数据缓冲器4中数据发送的时间间隔进行控制。具体工作过程如下:当倒计时计数器模块62接收到指令解析模块61的倒计时计数器启动命令时,并且接收到指令解析模块61的倒计时计数器的初值参数,倒计时计数器赋初值,然后开始减计数,根据时钟分频模块3的输出串行时钟进行减计数,当该时钟的上升沿来临时,倒计时计数器减1,当倒计时计数器达到0值时,停止减计数,产生一个指示信号,发送给发送数据缓冲器4,指示已经达到发送延时,这时发送数据缓冲器4可以将数据发送到发送/接收控制逻辑模块7,这样能保证慢速的接口器件的操作时序,如一些符合SPI接口的慢速的FLASH等。
如图4和图5所示,发送/接收控制逻辑模块7包括发送控制逻辑模块71和接收控制逻辑模块72。发送/接收控制逻辑模块7的功能是负责数据并-串转换、数据的串-并转换,以及CRC校验和检测接收超时状态和发送结束状态。发送/接收控制逻辑模块7的CRC校验功能在设计上采用16位CRC校验码,其生成多项式为x16+x12+x5+1的CRC-CCITT码,在功能上更加灵活,保证数据传输的准确性,并且适应范围更广泛。
图4为本发明一实施方式的SPI控制器的发送控制逻辑模块71和与其连接的其它模块的结构示意图。如图4所示,发送控制逻辑模块71包括CRC编码模块711、并转串逻辑模块712、传输结束控制模块713。
当CRC校验使能时,发送数据缓冲器4中的数据发送到CRC编码模块711进行CRC编码,并和数据打包在一起,作为一帧数据发送到并转串逻辑模块712,经过并转串逻辑模块712转成串行数据,输出到外部串行设备10。当CRC校验没有使能时,发送数据缓冲器4中的数据直接发送到并转串逻辑模块712,经过并转串逻辑模块712转成串行数据,输出到外部串行设备10。如果传输结束中断使能时,那么当发送数据缓冲器4为空,并且最后一个数据的最后一位已经通过串行输出接口发出时,传输结束控制模块713产生传输结束中断,用以指示数据全部发送完成。
图5为本发明一实施方式的SPI控制器的接收控制逻辑模块72和其它模块相互连接的结构示意图。如图5所示,接收控制逻辑模块72包括数据缓存区模块721、串转并逻辑模块722、CRC校验模块723、接收超时控制模块724。
当CRC校验使能时,外部串行设备10(根据SPI控制器的主从设定情况,外部串行设备10相应代表主机或从机)发来整包数据包括CRC编码在内发送到串转并逻辑模块722,同时将数据包中的数据发送到CRC校验模块723中进行CRC编码,数据包通过串转并逻辑模块722转换成并行数据后,数据部分发送到数据缓冲区模块721,同时CRC编码部分发送到CRC校验模块723。CRC校验模块723比较两次CRC编码是否一致,并将比较结果反馈给数据缓冲区模块721,如果两次CRC编码一致,并且当前接收数据缓冲器5不满时,数据缓冲区模块721中的数据发送到接收数据缓冲器5中;如果两次的CRC编码不一致,那么数据缓冲区模块721中的数据不发送到接收数据缓冲器5中,并产生CRC错误中断。如果CRC校验禁能时,数据直接发送到串转并逻辑模块722,转换成并行数据。当接收数据缓冲器5不满时,数据发送到接收数据缓冲器5中。接收超时控制模块724的功能是用来检查接收是否超时。如果传输停止后超过32个PCLK周期(具体时间可以设定)时,接收数据缓冲器5中仍有数据未被读出,则产生接收数据缓冲器5的超时中断。
本发明的SPI控制器通过设计延时发送模块6,增加可编程发送延时功能,可以通过配置发送数据缓冲器4中的数据延时发送的时间来满足了慢速接口器件的操作时序的要求,并且通过设计发送/接收控制逻辑模块7,增加可编程编程CRC校验功能,并配有发送结束和接收超时检查,在功能上更加灵活,保证数据传输的准确性和可靠性。
图6为本发明一实施方式的SPI控制器发送数据的流程示意图。如图6所示,SPI控制器向外部串行设备发送数据的过程包括以下步骤:
步骤S11:设置SPI控制器的参数。通过接口模块1对寄存器组模块2读写操作,对SPI控制器的参数进行设置。这些参数例如可包括:工作模式(工作模式参数为Mode,当Mode=0,为主机模式;当Mode=1,为从机模式。)、移位时钟的极性(移位时钟极性参数为CPOL,当CPOL=0,串行同步时钟的空闲状态为低电平;当CPOL=1,串行同步时钟的空闲状态为高电平。)、移位时钟的相位(移位时钟的相位参数为CPHA,当CPHA=0,在串行同步时钟的第一个跳变沿(上升沿或下降沿)数据被采样;当CPHA=1,在串行同步时钟的第二个跳变沿(上升沿或下降沿)数据被采样。)、时钟频率(时钟频率参数为BR1和BR2,其中BR1为预分频系数,BR1是2到254范围内的偶数,BR2为再分频系数,BR2是0到255范围内的整数,例如,当BR1=4,BR2=3,按照计算公式SCK=SysClk/(BR1*(1+BR2))可计算出,SPI的时钟(SCK)为接口模块1的时钟(SysClk)的16分频。)、数据长度(数据长度参为Dwidth,Dwidth是3到15范围的整数,例如,当Dwidth=3,代表数据长度为4位;当Dwidth=7,代表数据长度为8位。)、中断功能(例如,参数TXIM代表发送数据缓冲器4的服务中断使能,当TXIM=1,发送数据缓冲器4的服务中断使能,允许发送数据缓冲器4的服务中断输出;当TXIM=0,发送数据缓冲器4的服务中断禁能,不允许发送数据缓冲器4的服务中断输出。)和DMA功能(例如,TXDMAE代表发送DMA使能,当TXDMAE=1,发送DMA使能,启动发送DMA传输功能;当TXDMAE=0,发送DMA禁能,禁能发送DMA传输功能。)、延时发送控制(例如,Delay_enable设置为1,延时发送使能,Delay_NUM设置为6,延时6个时钟发送。)、CRC校验使能(CRC校验使能参数为CRC_EN,当CRC_EN置1,代表CRC校验使能;当CRC_EN清0,代表CRC校验禁能。)等参数进行设置。
步骤S12:接口模块1通过写寄存器组模块2中的数据寄存器21的地址,产生写发送数据缓冲器4的写信号,把数据发送到发送数据缓冲器4中。
步骤S13:发送数据缓冲器4不空(即只要发送数据缓冲器4内有数据)时,延时模块6判断是否延时已到。当延时已到,跳转至步骤S14,否则,等待直到CPU 11或DMA 12通过接口模块1向发送数据缓冲器4发送数据,待发送数据缓冲器4不空,且延时到时为止。
步骤S14:判断是否需要CRC编码(即需要判断CRC校验是否使能,如果CRC校验使能,则需要CRC编码,反之CRC校验禁能,则不需要CRC编码)。
步骤S15:将发送数据缓冲器4中的数据发送到发送控制逻辑模块71中的CRC编码模块711进行CRC编码,生成第一CRC编码,再将数据和第一CRC编码打包并作为一帧数据发送至发送控制逻辑模块71中的并转串逻辑模块712,经其处理将并行数据转换成串行数据。
步骤S16:CRC校验禁能,数据发送至发送控制逻辑模块71中的并转串逻辑模块712,经其处理将并行数据转换成串行数据。
步骤S17:发送控制逻辑模块71中的并转串逻辑模块712将串行数据输出至外部串行设备10。
图7示意性地显示了根据本发明的SPI控制器接收数据的流程。如图7所示,SPI控制器从外部串行设备接收数据的过程包括以下步骤:
步骤S21:设置SPI控制器的控制参数。通过接口模块1对寄存器组模块2读写操作,对SPI控制器的一些参数进行设置,如工作模式(工作模式参数为Mode,当Mode=0,为主机模式;当Mode=1,为从机模式。)、移位时钟的极性(移位时钟极性参数为CPOL,当CPOL=0,串行同步时钟的空闲状态为低电平;当CPOL=1,串行同步时钟的空闲状态为高电平。)、移位时钟的相位(移位时钟的相位参数为CPHA,当CPHA=0,在串行同步时钟的第一个跳变沿(上升沿或下降沿)数据被采样;当CPHA=1,在串行同步时钟的第二个跳变沿(上升沿或下降沿)数据被采样。)、时钟频率(时钟频率参数为BR1和BR2,其中BR1为预分频系数,BR1是2到254范围内的偶数,BR2为再分频系数,BR2是0到255范围内的整数,例如,当BR1=4,BR2=3,按照计算公式SCK=SysClk/(BR1*(1+BR2))可计算出,SPI的时钟(SCK)为接口模块1的时钟(SysClk)的16分频。)、数据长度(数据长度参为Dwidth,Dwidth是3到15范围的整数,例如,当Dwidth=3,代表数据长度为4位;当Dwidth=7,代表数据长度为8位。)、中断功能(例如,参数RXIM代表接收数据缓冲器5的服务中断使能,当RXIM=1,接收数据缓冲器5的服务中断使能,允许接收数据缓冲器5的服务中断输出;当RXIM=0,接收数据缓冲器5的服务中断禁能,不允许接收数据缓冲器5的服务中断输出。)和DMA功能(例如,RXDMAE代表接收DMA使能,当RXDMAE=1,接收DMA使能,启动接收DMA传输功能;当RXDMAE=0,接收DMA禁能,禁能接收DMA传输功能。)、延时发送控制(例如,Delay_enable设置为1,延时发送使能,Delay_NUM设置为6,延时6个时钟发送。)、CRC校验使能(CRC校验使能参数为CRC_EN,当CRC_EN置1,代表CRC校验使能;当CRC_EN清0,代表CRC校验禁能。)等参数进行设置。
步骤S22:判断是否需要CRC编码(如果CRC校验使能,则需要CRC编码,反之CRC校验禁能,则不需要CRC编码),当需要CRC编码时,下一步骤将跳转至S23;当不需要CRC编码时,下一步骤将跳转至S24。
步骤S23:外部串行设备10包括将数据和第一CRC编码的数据包发送到接收控制逻辑模块72中的串转并逻辑模块722,同时将数据包中的数据部分发送到接收控制逻辑模块72中的CRC校验模块723中进行CRC编码,生成第二CRC编码。包括数据和第一CRC编码的数据包经过串转并逻辑模块722转换成并行数据后,数据部分发送到数据缓冲区模块721,同时第一CRC编码部分发送到CRC校验模块723。下一步骤将跳转至S25。
步骤S24:外部串行设备10的数据直接发送至接收控制逻辑模块72中的串转并逻辑模块722,经其处理将串行数据转换成并行数据。下一步骤将跳转至步骤S27。
步骤S25:判断第一CRC编码和第二CRC编码是否一致,如果两次CRC编码一致,下一步骤将跳转至S27;如果两次CRC编码不一致,下一步骤将跳转至S26。
步骤S26:中断产生模块8产生CRC错误中断,停止发送数据。
步骤S27:当前接收数据缓冲器5不满时,接收控制逻辑模块72将转换好的并行数据发送到接收数据缓冲器5。对于需要CRC编码的,该步骤是接收控制逻辑模块72中的数据缓冲区模块721将并行数据发送到接收数据缓冲器5,对于不需要CRC编码的,该步骤是接收控制逻辑模块72中的串转并逻辑模块722将并行数据发送到接收数据缓冲器5。
步骤S28:SPI控制器判断接收数据缓冲器5是否不空,当接收数据缓冲器5不空时,下一步骤将跳转至步骤S210;当接收数据缓冲器5为空时,下一步骤将跳转至步骤S29。
步骤S29:等待接收控制逻辑模块72向接收数据缓冲器5发送数据,直至接收数据缓冲器5中有数据(接收数据缓冲器5)为止。
步骤S210:接口模块1读取接收数据缓冲器5中的数据。
本发明的提出的一种SPI控制器支持可编程的延时发送控制功能和CRC校验功能,保证了接口操作的高速性,也满足了慢速接口器件的操作时序的要求,并且也能保证数据传输的准确性和可靠性,适应范围更广泛。
图8为本发明一实施方式的SPI控制器的接口时序示意图。如图8所示,所述的SPI控制器可以通过寄存器组模块2配置主机模式/从机模式,一般有4条时序线,串行时钟线SCK、从设备选通信号SSE(低电平有效)、主机输出/从机输入数据线MOSI、从机输出/主机输入数据线MISO。当SPI工作于主机模式,则开启SCK的输出,当SPI工作于从机模式时,则关闭SCK输出;并且根据时钟的极性(CPOL)配置、时钟相位(CPHA)配置,如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升沿或下降沿)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升沿或下降沿)数据被采样。如图8所示是带有CRC编码的SPI控制器的接口时序图(若CRC不使能,则时序图也是一致的,只是在接口上传输的只有数据而已,不包括CRC编码),当CPOL=0,CPHA=0,串行同步时钟的空闲状态为低电平,当开始传输数据时,SSE拉低,SPI控制器(主设备)和外部串行设备(从设备)将在SCK上升沿捕捉数据,在下降沿移位输出;当CPOL=1,CPHA=0,串行同步时钟的空闲状态为高电平,当开始传输数据时,SSE拉低,SPI控制器(主设备)和外部串行设备(从设备)将在SCK下降沿捕捉数据,在上升沿移位输出;当CPOL=0,CPHA=1,串行同步时钟的空闲状态为低电平,当开始传输数据时,SSE拉低,SPI控制器(主设备)和外部串行设备(从设备)将在SCK下降沿捕捉数据,在上升沿移位输出;当CPOL=1,CPHA=1,串行同步时钟的空闲状态为高电平,当开始传输数据时,SSE拉低,SPI控制器(主设备)和外部串行设备(从设备)将在SCK上升沿捕捉数据,在下降沿移位输出。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护。
Claims (10)
1.一种SPI控制器,所述控制器分别与CPU(11)和外部串行设备(10)相连,所述控制器包括:接口模块(1)、寄存器组模块(2)、时钟分频模块(3)、发送数据缓冲器(4)、接收数据缓冲器(5)、延时发送模块(6)、发送/接收控制逻辑模块(7)和中断产生模块(8),其中,
接口模块(1)配置为根据总线的时序对寄存器组模块(2)读写,以按逻辑完成接口模块(1)与CPU(11)之间的通信;
寄存器组模块(2)配置为通过接口模块(1)读写操作,完成所述控制器的控制参数的配置;
时钟分频模块(3)配置为根据寄存器组模块(2)中的预分频系数和再分频系数产生串行输出时钟;
发送数据缓冲器(4)配置为缓存通过接口模块(1)写入的待传输数据,直到外部串行设备(10)通过发送/接收控制逻辑模块(7)将所述待传输数据读出;
接收数据缓冲器(5)配置为用于缓存来自发送/接收控制逻辑模块(7)从外部串行设备(10)发送的数据,直到CPU(11)通过接口模块(1)将所述发送的数据读出;
中断产生模块(8)配置为根据接收到的状态信息生成相应的中断。
2.根据权利要求1所述的控制器,寄存器组模块(2)包括控制寄存器(21)、数据寄存器(22)、校验控制寄存器(23)、中断控制寄存器(24)、延时发送寄存器(25)、DMA控制寄存器(26)、状态寄存器(27)和时钟分频寄存器(28)。
3.根据权利要求1所述的控制器,其中,所述延时发送模块(6)包括指令解析模块(61)和倒计时计数器模块(62):
所述指令解析模块(61)配置为解析来自所述寄存器组模块(2)的延时发送寄存器(25)、发送数据缓冲器(4)、发送/接收控制逻辑模块(7)的命令,并把命令解析结果发送给倒计时计数器模块(62);
所述倒计时计数器模块(62)配置为根据指令解析模块(61)命令解析结果,对发送数据缓冲器(4)中数据发送时间间隔进行控制。
4.根据权利要求1所述的控制器,其中,发送/接收控制逻辑模块(7)包括:发送控制逻辑模块(71)和接收控制逻辑模块(72),其中,
发送控制逻辑模块(71)包括CRC编码模块(711)、并转串逻辑模块(712)和传输结束控制模块(713),
接收控制逻辑模块(72)包括数据缓存区模块(721)、串转并逻辑模块(722)、CRC校验模块(723)和接收超时控制模块(724)。
5.根据权利要求1所述的控制器,还包括:
DMA接口(9),设置为通过接口模块(1)与DMA(12)交互数据。
6.根据权利要求1-5任一项所述的控制器,其中所述中断产生模块(8)根据接收到的状态信息生成相应的中断包括以下的一种或多种:根据数据缓冲器(5)的状态信息产生接收数据缓冲器(5)的服务中断、接收数据缓冲器(5)的溢出中断,根据发送数据缓冲器(4)的状态信息产生发送数据缓冲器(4)的服务中断,根据发送/接收控制逻辑模块(7)的状态信息产生结束中断和接收数据缓冲器(5)的超时中断。
7.一种利用SPI控制器通信的方法,包括:
1)将权利要求1-6任一项所述控制器分别与CPU(11)与外部串行设备(10)通信连接;
2)基于CPU(11)和外部串行设备(10)的接口总线时序,设置所述控制器的延时的控制参数;
3)所述控制器接收CPU(11)的数据,并根据所述延时的控制参数将所述并行数据转化为串行数据后发送给外部串行设备(10);
4)所述控制器将接收的外部串行设备(10)的串行数据,并将所述串行数据转化成并行数据,以供CPU(11)接收。
8.根据权利要求7所述的方法,其中,
所述步骤2)还包括:
设置所述控制器的校验参数;
所述步骤3)还包括:
所述控制器根据所述校验参数,将发送数据缓冲器(4)中的数据发送到发送控制逻辑模块(71)中的CRC编码模块(711)进行CRC编码,生成第一CRC编码,再将所述数据和第一CRC编码一并转换成串行数据输出至所述外部串行设备(10);
所述步骤4)还包括:
所述控制器根据所述校验参数,将外部串行设备(10)的数据和所述第一CRC编码一并发送到接收控制逻辑模块(72)中的串转并逻辑模块(722),同时将串行数据的数据部分发送到接收控制逻辑模块(72)中的CRC校验模块(723),并在CRC校验模块(723)内进行CRC编码,生成第二CRC编码,所述数据和所述第一CRC编码经过串转并逻辑模块(722)转换成并行数据后,数据部分发送到数据缓冲区模块(721),同时第一CRC编码发送到CRC校验模块(723);
比较所述第一CRC编码和所述第二CRC编码,
当二者一致时,将所述数据缓冲区模块(721)中的数据发送到接收数据缓冲器(5)以供CPU(11)接收,否则产生CRC错误中断。
9.根据权利要求7或8所述的方法,其中,所述控制器的控制参数是通过对寄存器组模块(2)的读写操作进行。
10.根据权利要求9所述的方法,其中,所述控制器的控制参数包括对所述控制器的工作模式、移位时钟的极性、移位时钟的相位、时钟频率、数据长度、中断功能、DMA功能、延时发送控制、CRC校验使能参数中的至少之一进行的设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510270755.8A CN104809094B (zh) | 2015-05-25 | 2015-05-25 | Spi控制器及其通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510270755.8A CN104809094B (zh) | 2015-05-25 | 2015-05-25 | Spi控制器及其通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104809094A true CN104809094A (zh) | 2015-07-29 |
CN104809094B CN104809094B (zh) | 2017-11-24 |
Family
ID=53693928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510270755.8A Active CN104809094B (zh) | 2015-05-25 | 2015-05-25 | Spi控制器及其通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104809094B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106683694A (zh) * | 2016-12-19 | 2017-05-17 | 西安微电子技术研究所 | 一种速率自适应的存储器接口电路 |
CN106874224A (zh) * | 2017-02-17 | 2017-06-20 | 杭州朔天科技有限公司 | 自动搬运且适应器件的多线SPI‑Flash控制器 |
CN107436851A (zh) * | 2016-05-26 | 2017-12-05 | 北京联合大学 | 串行外设接口四线隔离***及其控制方法 |
CN108052473A (zh) * | 2017-12-21 | 2018-05-18 | 杭州中天微***有限公司 | 串行通信装置 |
WO2018120612A1 (zh) * | 2016-12-28 | 2018-07-05 | 深圳市中兴微电子技术有限公司 | 一种数据采样方法、芯片和计算机存储介质 |
CN108959136A (zh) * | 2018-06-26 | 2018-12-07 | 豪威科技(上海)有限公司 | 基于spi的数据传输加速装置、***及数据传输方法 |
CN109408426A (zh) * | 2018-10-23 | 2019-03-01 | 四川九洲电器集团有限责任公司 | 一种灵活通用的串行通信方法及*** |
CN109726163A (zh) * | 2018-12-30 | 2019-05-07 | 广东大普通信技术有限公司 | 一种基于spi的通信***、方法、设备和储存介质 |
CN109976898A (zh) * | 2017-12-27 | 2019-07-05 | 上海大郡动力控制技术有限公司 | 分层任务***的SPI与Eeprom异步通讯方法 |
CN110134621A (zh) * | 2018-02-09 | 2019-08-16 | 北京忆芯科技有限公司 | 通过环回数据通路提供cmb |
CN110399318A (zh) * | 2019-07-23 | 2019-11-01 | 四川星明能源环保科技有限公司 | 一种spi硬件结构***及其运行流程 |
CN110515879A (zh) * | 2019-08-02 | 2019-11-29 | 广州粒子微电子有限公司 | 一种异步传输装置及其传输方法 |
CN111061337A (zh) * | 2019-12-10 | 2020-04-24 | 北京智联安科技有限公司 | 一种主机收发接口设计方法 |
CN111444123A (zh) * | 2020-03-28 | 2020-07-24 | 珠海市一微半导体有限公司 | 基于硬件加速的spi接口的自动读取控制***及方法 |
CN111782574A (zh) * | 2020-07-14 | 2020-10-16 | 北京四季豆信息技术有限公司 | 一种串行外设接口控制方法和串行外设接口控制器 |
CN111897749A (zh) * | 2020-06-23 | 2020-11-06 | 中国船舶重工集团公司第七0七研究所 | 基于Quad-SPI控制器与外扩FLASH通信控制***及方法 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
WO2021056965A1 (zh) * | 2019-09-27 | 2021-04-01 | 安凯(广州)微电子技术有限公司 | 一种高速spi主模式控制器 |
CN112631976A (zh) * | 2020-12-16 | 2021-04-09 | 中国电子科技集团公司第五十八研究所 | 一种可配置硬件ip电路结构 |
CN113176966A (zh) * | 2021-03-12 | 2021-07-27 | 青芯半导体科技(上海)有限公司 | 一种检查spi接收数据有效性的***及方法 |
CN115514592A (zh) * | 2022-10-19 | 2022-12-23 | 通号通信信息集团上海有限公司 | 一种采用双spi和io中断替换ssi多从机的通信设备 |
CN116094531A (zh) * | 2023-04-06 | 2023-05-09 | 苏州萨沙迈半导体有限公司 | Sent信号接收***、芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366250A (zh) * | 2001-01-18 | 2002-08-28 | 深圳市中兴集成电路设计有限责任公司 | 一种同步串口控制器 |
KR20050005634A (ko) * | 2003-07-07 | 2005-01-14 | 삼성전자주식회사 | 통신시스템의 직병렬 인터페이스 장치 및 방법 |
CN102231143A (zh) * | 2011-07-04 | 2011-11-02 | 浙江大学 | 一种安全可复用spi***接口电路 |
-
2015
- 2015-05-25 CN CN201510270755.8A patent/CN104809094B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366250A (zh) * | 2001-01-18 | 2002-08-28 | 深圳市中兴集成电路设计有限责任公司 | 一种同步串口控制器 |
KR20050005634A (ko) * | 2003-07-07 | 2005-01-14 | 삼성전자주식회사 | 통신시스템의 직병렬 인터페이스 장치 및 방법 |
CN102231143A (zh) * | 2011-07-04 | 2011-11-02 | 浙江大学 | 一种安全可复用spi***接口电路 |
Non-Patent Citations (1)
Title |
---|
徐海铭: "DSP集成电路设计与研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436851B (zh) * | 2016-05-26 | 2020-05-12 | 北京联合大学 | 串行外设接口四线隔离***及其控制方法 |
CN107436851A (zh) * | 2016-05-26 | 2017-12-05 | 北京联合大学 | 串行外设接口四线隔离***及其控制方法 |
CN106683694A (zh) * | 2016-12-19 | 2017-05-17 | 西安微电子技术研究所 | 一种速率自适应的存储器接口电路 |
WO2018120612A1 (zh) * | 2016-12-28 | 2018-07-05 | 深圳市中兴微电子技术有限公司 | 一种数据采样方法、芯片和计算机存储介质 |
CN106874224A (zh) * | 2017-02-17 | 2017-06-20 | 杭州朔天科技有限公司 | 自动搬运且适应器件的多线SPI‑Flash控制器 |
CN108052473A (zh) * | 2017-12-21 | 2018-05-18 | 杭州中天微***有限公司 | 串行通信装置 |
US10922263B2 (en) | 2017-12-21 | 2021-02-16 | C-Sky Microsystems Co., Ltd. | Serial communication device |
CN109976898A (zh) * | 2017-12-27 | 2019-07-05 | 上海大郡动力控制技术有限公司 | 分层任务***的SPI与Eeprom异步通讯方法 |
CN109976898B (zh) * | 2017-12-27 | 2022-11-08 | 上海大郡动力控制技术有限公司 | 分层任务***的SPI与Eeprom异步通讯方法 |
CN110134621A (zh) * | 2018-02-09 | 2019-08-16 | 北京忆芯科技有限公司 | 通过环回数据通路提供cmb |
CN110134621B (zh) * | 2018-02-09 | 2023-12-19 | 北京忆芯科技有限公司 | 通过环回数据通路提供cmb |
CN108959136B (zh) * | 2018-06-26 | 2020-12-25 | 豪威科技(上海)有限公司 | 基于spi的数据传输加速装置、***及数据传输方法 |
CN108959136A (zh) * | 2018-06-26 | 2018-12-07 | 豪威科技(上海)有限公司 | 基于spi的数据传输加速装置、***及数据传输方法 |
CN109408426B (zh) * | 2018-10-23 | 2020-06-26 | 四川九洲电器集团有限责任公司 | 一种灵活通用的串行通信方法及*** |
CN109408426A (zh) * | 2018-10-23 | 2019-03-01 | 四川九洲电器集团有限责任公司 | 一种灵活通用的串行通信方法及*** |
CN109726163A (zh) * | 2018-12-30 | 2019-05-07 | 广东大普通信技术有限公司 | 一种基于spi的通信***、方法、设备和储存介质 |
CN110399318A (zh) * | 2019-07-23 | 2019-11-01 | 四川星明能源环保科技有限公司 | 一种spi硬件结构***及其运行流程 |
CN110515879B (zh) * | 2019-08-02 | 2021-05-25 | 广州粒子微电子有限公司 | 一种异步传输装置及其传输方法 |
CN110515879A (zh) * | 2019-08-02 | 2019-11-29 | 广州粒子微电子有限公司 | 一种异步传输装置及其传输方法 |
WO2021056965A1 (zh) * | 2019-09-27 | 2021-04-01 | 安凯(广州)微电子技术有限公司 | 一种高速spi主模式控制器 |
CN111061337A (zh) * | 2019-12-10 | 2020-04-24 | 北京智联安科技有限公司 | 一种主机收发接口设计方法 |
CN111444123A (zh) * | 2020-03-28 | 2020-07-24 | 珠海市一微半导体有限公司 | 基于硬件加速的spi接口的自动读取控制***及方法 |
WO2021196507A1 (zh) * | 2020-03-28 | 2021-10-07 | 珠海一微半导体股份有限公司 | 基于硬件加速的 spi 接口的自动读取控制***及方法 |
CN111444123B (zh) * | 2020-03-28 | 2021-01-15 | 珠海市一微半导体有限公司 | 基于硬件加速的spi接口的自动读取控制***及方法 |
US11734219B2 (en) | 2020-03-28 | 2023-08-22 | Amicro Semiconductor Co., Ltd | Automatic read control system based on a hardware accelerated SPI and automatic read control method |
CN111897749A (zh) * | 2020-06-23 | 2020-11-06 | 中国船舶重工集团公司第七0七研究所 | 基于Quad-SPI控制器与外扩FLASH通信控制***及方法 |
CN111782574A (zh) * | 2020-07-14 | 2020-10-16 | 北京四季豆信息技术有限公司 | 一种串行外设接口控制方法和串行外设接口控制器 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
CN112631976A (zh) * | 2020-12-16 | 2021-04-09 | 中国电子科技集团公司第五十八研究所 | 一种可配置硬件ip电路结构 |
CN113176966A (zh) * | 2021-03-12 | 2021-07-27 | 青芯半导体科技(上海)有限公司 | 一种检查spi接收数据有效性的***及方法 |
CN115514592A (zh) * | 2022-10-19 | 2022-12-23 | 通号通信信息集团上海有限公司 | 一种采用双spi和io中断替换ssi多从机的通信设备 |
CN116094531A (zh) * | 2023-04-06 | 2023-05-09 | 苏州萨沙迈半导体有限公司 | Sent信号接收***、芯片 |
CN116094531B (zh) * | 2023-04-06 | 2023-12-12 | 苏州萨沙迈半导体有限公司 | Sent信号接收***、芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN104809094B (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104809094A (zh) | Spi控制器及其通信方法 | |
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互***和方法 | |
JP3998532B2 (ja) | データ転送装置 | |
CN102929836B (zh) | 一种航天专用asic芯片*** | |
CN102621974B (zh) | 基于通信总线的工业自动化实时控制装置及控制方法 | |
CN106487372A (zh) | 包括单线接口的装置和具有该装置的数据处理*** | |
CN105808396A (zh) | 一种芯片调试装置、调试方法及soc芯片*** | |
CN107015927A (zh) | 一种基于SoC支持多个SPI接口标准组的装置 | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展***和方法 | |
CN107592250B (zh) | 基于航空fc总线多速率自适应测试设备 | |
CN104834620A (zh) | 串行外设接口spi总线电路、实现方法以及电子设备 | |
CN112256615B (zh) | Usb转换接口装置 | |
CN103164314B (zh) | 基于异步物理层接口的PCIe接口芯片硬件验证方法 | |
US6170027B1 (en) | LPC/ISA bridge and its bridging method | |
US10684981B2 (en) | Fast termination of multilane single data rate transactions | |
WO2019217077A1 (en) | Latency optimized i3c virtual gpio with configurable operating mode and device skip | |
CN112631976A (zh) | 一种可配置硬件ip电路结构 | |
CN105718410A (zh) | 一种基于fpga的lpc与spi及i2c转换适配器及其实现方法 | |
CN102929330B (zh) | 用于产生usb外设时钟的电路及方法 | |
Li et al. | UART Controller with FIFO Buffer Function Based on APB Bus | |
Jusoh et al. | An FPGA implementation of shift converter block technique on FIFO for RS232 to universal serial bus converter | |
Pham-Thai et al. | A novel multichannel UART design with FPGA-based implementation | |
CN100462952C (zh) | 接口可配置的通用串行总线控制器 | |
Malviya et al. | Tiny I2C protocol for camera command exchange in CSI-2: a review | |
CN204706031U (zh) | 串行外设接口spi总线电路以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |