CN101382927A - 集成在芯片内的高速串行外围接口电路 - Google Patents

集成在芯片内的高速串行外围接口电路 Download PDF

Info

Publication number
CN101382927A
CN101382927A CNA2008101212488A CN200810121248A CN101382927A CN 101382927 A CN101382927 A CN 101382927A CN A2008101212488 A CNA2008101212488 A CN A2008101212488A CN 200810121248 A CN200810121248 A CN 200810121248A CN 101382927 A CN101382927 A CN 101382927A
Authority
CN
China
Prior art keywords
data
spi
module
read
interface circuit
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
Application number
CNA2008101212488A
Other languages
English (en)
Other versions
CN101382927B (zh
Inventor
郁军军
秦兴
姚卫忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Huatu Microchip Technology Co., Ltd.
Original Assignee
HANGZHOU AIWEIXIN SCIENCE AND TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by HANGZHOU AIWEIXIN SCIENCE AND TECHNOLOGY Co Ltd filed Critical HANGZHOU AIWEIXIN SCIENCE AND TECHNOLOGY Co Ltd
Priority to CN2008101212488A priority Critical patent/CN101382927B/zh
Publication of CN101382927A publication Critical patent/CN101382927A/zh
Application granted granted Critical
Publication of CN101382927B publication Critical patent/CN101382927B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

一种集成在芯片内的高速串行外围接口电路,包括常规串行外围接口电路模块,其包括数据缓冲器、数据打包/解包单元、SPI传输控制层、SPI物理层、AHB slave接口模块,高速串行外围接口电路设有普通工作模式;还包括串行外围接口电路加速模块,高速串行外围接口电路还设有加速工作模式,串行外围接口电路加速模块包括:AHB master接口单元、写加速单元、读加速单元、CRC计算单元、加速控制单元、在加速工作模式下,数据传输过程中CPU告知数据存取地址以长度,由加速控制单元控制读写,在完成加速操作时,通过AHB master接口单元发送中断。本发明大大减少占用CPU资源、能够适应大量复杂高速数据传输,增大数据吞吐量。

Description

集成在芯片内的高速串行外围接口电路
技术领域
本发明涉及串行外围接口,尤其是一种集成在芯片内的串行通讯接口电路。
背景技术
随着芯片日益的系统集成化和复杂化,市场上越来越多的芯片集成了微处理器,而且芯片的外围通讯接口也越来越丰富,其中串行外围接口(SPI)就是常用的一种。如同其名称一样,SPI主要是用作微处理器与外部设备进行通信,比如SD卡,串行FLASH等,可见SPI应用很广。但是SPI需要微处理器与外部设备的频繁通信来完成数据交互,因此微处理器的工作负担很大,SPI只能靠提高系统时钟的频率来增加数据吞吐量,从而在一定的系统频率下局限了SPI的传输速度。
人们试图解决SPI装置的这个缺点。在专利申请号200480034506.9中由E·兰布朗克等提出名为“用于改进数据吞吐量的写入缓冲器的串行外围接口SPI装置”的专利中做出了尝试(以下称为200480034506.9专利)。他们提出了一种通过避免写入冲突和主时钟延长来改进数据吞吐量的方法,虽然在一定的系统频率下能提高一点传输速度,但是毕竟还是没有本质上解决问题,即仍需通过CPU的大量干预来完成数据传输,等待CPU时间和CPU计算时间占了SPI的大部分传输时间,故在大规模芯片中这种工作方式会占用其他模块的CPU工作时间,影响其他模块的工作速度,尤其在大量数据通讯的时候,它会大大增加CPU的工作负担,严重影响整体芯片的性能,而且该SPI传输效率很低,本身的数据吞吐量仍非常有限。同时,外部器件的设计本身也处于快速发展之中,如SD卡有高速、低速卡,而且容量种类丰富,200480034506.9专利的SPI可以驱动SD卡,但是所有的数据都是通过CPU来传递,而且软件驱动需要占用CPU来计算复杂的CRC校验位,尤其是驱动大容量的SD卡,该SPI低速的特性更为明显,整个芯片的性能降低更为显著,因此目前的SPI装置无法在保证一定灵活性的前提下同时适应大量复杂的高速数据传输环境。
发明内容
为了克服已有的串行外围接口SPI装置需要占用大量CPU资源、不能适应大量复杂高速数据传输、数据吞吐量受限的不足,本发明提供一种大大减少占用CPU资源、能够适应大量复杂高速数据传输,增大数据吞吐量的集成在芯片内的高速串行外围接口电路。
本发明解决其技术问题所采用的技术方案是:
一种集成在芯片内的高速串行外围接口电路,包括常规串行外围接口电路模块,所述常规串行外围接口电路模块包括:数据缓冲器,用于缓冲写数据txdfifo和读数据rxdfifo;数据打包/解包单元,用于将写操作下将写数据txdfifo读出的数拆分成一个个数据单元,在读操作下用于将芯片外读取的数据存入读数据rxdfifo;SPI传输控制层,用于控制数据打包/解包单元和SPI物理层之间的时序关系:写操作时数据打包/解包单元完成数据单元的还原时使能SPI物理层,读操作时SPI物理层完成串转并时使能数据打包/解包单元;SPI物理层,用于实现并转串、串转并及大小端;AHB slave接口单元,用于基于AHB总线跟CPU交互,实现SPI工作模式的配置和SPI工作状态的读取;所述的高速串行外围接口电路设有普通工作模式;
所述高速串行外围接口电路还包括串行外围接口电路加速模块,所述的高速串行外围接口电路还设有加速工作模式,所述串行外围接口电路加速模块还包括:AHB master接口单元,用于基于AHB总线来读/写DDR;写加速单元,用于采用单块/多块写操作方式:发送同步头FF→发送单块FE、多块FC→通过AHB master接口单元从DDR取数据至写数据txdfifo且常规串行外围接口电路模块的写操作,同时启动CRC计算单元→发送CRC校验位;读加速单元,用于启动常规串行外围接口电路模块的读操作且启动AHB master接口单元将读数据rxdfifo里数据发送至DDR,同时启动CRC计算单元→CRC校验→发送同步头FF且拉低片选spi_sel;CRC计算单元,用于采用CRC计算公式进行计算;加速控制单元,用于启动所述写加速单元或读加速单元,并控制读写方向,配置寄存器,反映状态;在加速工作模式下,数据传输过程中CPU告知数据存取地址以长度,由加速控制单元控制读写,在完成加速操作时,通过AHB master接口单元发送中断。
作为优选的一种方案:所述的CRC计算单元采用16位CRC的计算公式:G(x)=x16+x12+x5+1,其中x为8位数据单元。
进一步,在所述数据缓冲器由二块32深度、32宽度的FIFO组成,其中一块用于缓存写数据txdfifo,另外一块用于缓冲读数据rxdfifo。普通工作模式下,写操作是CPU配置写入txdfifo,读操作是CPU读取rxdfifo;加速工作模式下,写操作是直接到DDR取数据写入txdfifo,读操作是直接将rxdfifo里的数据发至DDR目标地址且发中断给CPU。
再进一步,所述的数据打包/解包单元中,在读操作下将芯片外读取的数据打包成32位存入读数据rxdfifo或直接存入读数据rxdfifo。
更进一步,所述的SPI物理层还包含时钟产生器,用于产生2-256任意分频的时钟给片外器件,并设置波特率。
所述AHB slave接口单元支持8位、16位、32位的数据单元,支持打包和不打包模式,支持1/2~1/256bit/clk,每个数据单元支持大端和小端模式,同时支持普通SPI模式、加速SPI模式和串行FLASH模式。
本发明的技术构思为:该串行外围接口电路主要由常规SPI模块和SPI加速模块组成,其中常规SPI模块由数据缓冲器、数据打包/解包单元、SPI传输控制层、SPI物理层和AHB slave接口单元组成,SPI加速模块由AHB master接口单元、写加速单元、读加速单元、CRC计算单元和加速控制单元组成。
该电路支持普通工作模式和加速工作模式。常规SPI模块采用普通工作模式,它将CPU要传输的数据经过AHB slave接口单元写入数据缓冲器,再由数据缓冲器取出经数据打包/解包单元分解还原成数据单元,通过SPI传输控制层控制将并行的数据单元送入到SPI物理层,从而可以进一步分解成串行的数据写入到外部器件;将从外部器件读取的串行数据经SPI物理层转化为并行的数据单元,通过SPI传输控制层控制将数据单元送入到数据打包/解包单元进行打包,存入数据缓冲器,CPU通过AHB slave接口单元从数据缓冲器读取该外部器件的数据,故这种模式需要CPU极大的干预来完成与外部器件的数据通讯,虽然传输速度慢,但是适合于发送复杂的命令字。SPI加速模块采用加速工作模式,整个传输过程中只需要CPU告知数据存取地址及长度,无需其它的干预就可以完成数据交互:写操作时候,加速控制单元启动写加速单元,写加速单元自动启动常规SPI模块来完成同步头和start_token(单块FE,多块FC)的发送,然后通过AHB master接口单元从DDR取数据至数据缓冲器,并且再次自动启动常规SPI模块,完成将数据缓冲器中的数据写入到外部器件中,同时写加速单元启动CRC计算单元来计算写数据的CRC校验位,当完成有效数据的传输时,启动常规SPI模块来发送该CRC校验位;读操作时候,加速控制单元启动读加速单元,读加速单元自动启动常规SPI模块来完成对外围器件的读取,且将读取的数据存入到数据缓冲器,启动CRC计算单元来计算读取数据的CRC校验位,同时启动AHB master接口单元将数据缓冲器中的数据发送至DDR,当完成对外围器件的读取时,将读取到的CRC校验位和CRC计算单元的结果进行对比来检验数据传输是否正确,并且将该对比结果写入到AHB slave模块里的对应状态寄存器里,最后启动常规SPI模块来发送同步头,同时拉低外围器件的片选信号,此时从外部器件读取的数据均放在DDR上。当完成SPI加速操作时,均会通过AHB slave接口单元发出中断,便于软件进行下一步操作,与常规技术相比可,本发明SPI电路的加速工作模式不仅可以通过CRC计算单元来实现复杂的CRC计算,而且其所有的交互数据都是通过AHB master接口单元和DDR之间的传输来传递,与外部器件通讯期间无需CPU进行干预,大大减少了CPU的负担,在较低的系统频率下极大地提高数据传输的速度,减少功耗。此外,该SPI电路还可以实现串行FLASH芯片跟CPU之间的互相通讯。
本发明的有益效果主要表现在:1、在需要发送不同命令字且数据量小时候可以启动常规SPI模块,这样在保证接口目标的灵活性前提下,提高了系统性能的稳定性;2、在需要发送命令相对固定、数据量大时候可以启动SPI加速模块,这样在减少CPU工作负担条件下,极大提高了数据传输速度;3、在一定数据吞吐量条件下它较常规SPI需要更低的系统频率,从而降低了功耗;4、SPI加速模块的读/写特有命令可以通过CPU配置来屏蔽,从而在保证速度的前提下增强了对外部器件加速的兼容性,真正实现了保证一定灵活性前提下同时适应大量复杂数据传输环境的目的。
附图说明
图1是本发明的高速SPI电路结构框图。
图2是本发明的SPI与外部器件控制时序图,其中:
(a)所示为cpha=0 cpol=0的示意图;(b)所示为cpha=0 cpol=1时的示意图;(c)所示为cpha=1 cpol=0时的示意图;(d)所示为cpha=1 cpol=1时的示意图。
图3是本发明的SPI串行FLASH操作模式时序图,其中:
(a)所示为读FLASH的示意图,(b)所示为写FLASH的示意图。
图4是本发明的数据打包电原理图。
图5是本发明的数据解包电原理图。
图6是本发明的AHB slave接口时序图,其中:
(a)所示为读slave的示意图,(b)所示为写slave的示意图。
图7是本发明的AHB master接口时序图,其中:
(a)所示为master写操作的示意图,(b)所示为master读操作的示意图。
图8是本发明的32位数据单元流水操作时序图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图8,一种集成在芯片内的高速串行外围接口电路,包括常规串行外围接口电路模块,所述常规串行外围接口电路模块包括:数据缓冲器,用于缓冲写数据txdfifo和读数据rxdfifo;数据打包/解包单元,用于将写操作下将写数据txdfifo读出的数拆分成一个个数据单元,在读操作下用于将芯片外读取的数据存入读数据rxdfifo;SPI传输控制层,用于控制数据打包/解包单元和SPI物理层之间的时序关系:写操作时数据打包/解包单元完成数据单元的还原时使能SPI物理层,读操作时SPI物理层完成串转并时使能数据打包/解包单元;SPI物理层,用于实现并转串、串转并及大小端;AHB slave接口单元,用于基于AHB总线跟CPU交互,实现SPI工作模式的配置和SPI工作状态的读取;所述的高速串行外围接口电路设有普通工作模式;
所述高速串行外围接口电路还包括串行外围接口电路加速模块,所述的高速串行外围接口电路还设有加速工作模式,所述串行外围接口电路加速模块还包括:AHB master接口单元,用于基于AHB总线来读/写DDR;写加速单元,用于采用单块/多块写操作方式:发送同步头FF→发送单块FE、多块FC→通过AHB master接口单元从DDR取数据至写数据txdfifo且常规串行外围接口电路模块的写操作,同时启动CRC计算单元→发送CRC校验位;读加速单元,用于启动常规串行外围接口电路模块的读操作且启动AHB master接口单元将读数据rxdfifo里数据发送至DDR,同时启动CRC计算单元→CRC校验→发送同步头FF且拉低片选spi_sel;CRC计算单元,用于采用CRC计算公式进行计算;加速控制单元,用于启动所述写加速单元或读加速单元,并控制读写方向,配置寄存器,反映状态;在加速工作模式下,数据传输过程中CPU告知数据存取地址以长度,由加速控制单元控制读写,在完成加速操作时,通过AHB master接口单元发送中断。
本发明的高速SPI电路是基于AHB总线的CPU和外部器件串行通讯接口,其结构框图如图1所示,其中spi_sel是给外部器件的片选信号(低电平有效),spi_sck是给外部器件的时钟,spi_mosi是写入外部器件的串行数据,spi_miso是从外部器件读出的串行数据。该电路由常规SPI模块和SPI加速模块组成,其中常规SPI模块由数据缓冲器、数据打包/解包单元、SPI传输控制层、SPI物理层和AHB slave接口单元组成,SPI加速模块由AHB master接口单元、写加速单元、读加速单元、CRC计算单元和加速控制单元组成。
常规SPI模块遵照SPI协议,将CPU要传输的数据经过AHB slave接口单元写入数据缓冲器,再由数据缓冲器取出经数据打包/解包单元分解还原成数据单元,通过SPI传输控制层控制将并行的数据单元送入到SPI物理层,从而可以进一步分解成串行的数据写入到外部器件;将从外部器件读取的串行数据经SPI物理层转化为并行的数据单元,通过SPI传输控制层控制将数据单元送入到数据打包/解包单元进行打包,存入数据缓冲器,CPU通过AHB slave接口单元从数据缓冲器读取该外部器件的数据。常规SPI模块跟外部器件的控制关系如下表1所示,
 
cpha cpol Driving Edge of SPI clock Latching Edge of SPIclock
0 0 Falling edge Rising edge
0 1 Rising edge Falling edge
1 0 Rising edge Falling edge
1 1 Falling edge Rising edge
表1
具体的控制时序图如图2所示,其中tsels、tw、tselh、tdis都是参数可配,这样通过CPU的参数配置可以满足不同的外部器件对控制信号的延迟及驱动/采样时钟的相位要求,增强了兼容性。常规SPI模块还可以通过CPU配置实现串行FLASH芯片跟CPU之间的互相通讯:读操作时候,首先需要往Flash发送64bit的命令,即:命令字52(8bit)+4个“r”+页地址(11bit)+页内字节的起始地址(9bit)+32个无关位,发送完这64bit(通常是组合成8个字节)命令后,紧跟着从Flash读数据,每读出一个字节,字节地址自动加1,如遇到该页的末尾,只要有spi_sck时钟,系统再加到该页的起始处读数据,在整个操作过程中spi_sel始终为“0”,当spi_sel脚回到“1”时,将终止此次操作,spi_miso脚恢复到高阻状态;写操作时候首先需要往Flash发送32bit的命令,紧跟着发送写入的数据,具体的时序如图3所示。由此可见,常规SPI模块虽然需要CPU极大的干预来完成与外部器件的数据通讯,但是它很灵活,可以支持不同类型的外部器件。
SPI加速模块工作在一种类似于“DMA”的方式,以往CPU对常规SPI的控制,现在由SPI加速模块完成,整个传输过程中只需要CPU告知数据存取地址及长度,无需其它的干预就可以完成数据交互:写操作时候,加速控制单元启动写加速单元,写加速单元自动启动常规SPI模块来完成同步头和start_token(单块FE,多块FC)的发送,然后通过AHB master接口单元从DDR取数据至数据缓冲器,并且再次自动启动常规SPI模块,完成将数据缓冲器中的数据写入到外部器件中,同时写加速单元启动CRC计算单元来计算写数据的CRC校验位,当完成有效数据的传输时,启动常规SPI模块来发送该CRC校验位;读操作时候,加速控制单元启动读加速单元,读加速单元自动启动常规SPI模块来完成对外围器件的读取,且将读取的数据存入到数据缓冲器,启动CRC计算单元来计算读取数据的CRC校验位,同时启动AHB master接口单元将数据缓冲器中的数据发送至DDR,当完成对外围器件的读取时,将读取到的CRC校验位和CRC计算单元的结果进行对比来检验数据传输是否正确,并且将该对比结果写入到AHBslave模块里的对应状态寄存器里,最后启动常规SPI模块来发送同步头,同时拉低外围器件的片选信号,此时从外部器件读取的数据均放在DDR上。当完成SPI加速操作时,均会通过AHB slave接口单元发出中断,便于软件进行下一步操作,由此可见,SPI加速模块不仅可以通过CRC计算单元来实现复杂的CRC计算,而且其所有的交互数据都是通过AHB master接口单元和DDR之间的传输来传递,与外部器件通讯期间无需CPU进行干预,大大减少了CPU工作量,在较低的系统频率下极大地提高数据传输的速度,减少功耗,但是鉴于不同器件其命令字不同,而且同一种器件其初始化阶段的命令字多且复杂,同时考虑到硬件复杂性,故SPI加速模块只能适用于命令字相对固定且数据量大阶段(即数据传输阶段),对于支持读/写特有命令的外部器件,比如SD卡,它的加速性能更为优越,同时该读/写特有命令又可以通过CPU配置来屏蔽,从而可以适用于其它器件的加速。
以下结合图1的结构框图详细说明主要部件的功能及结构。
数据缓冲器:数据缓冲器由二块32深度、32宽度的FIFO组成,其中一块用于缓存写数据(txdfifo),另外一块用于缓冲读数据(rxdfifo)。普通模式下,写操作是CPU配置写入txdfifo,读操作是CPU读取rxdfifo。加速模式下,写操作是SPI利用AHB总线直接到DDR取数据写入txdfifo,读操作是SPI直接将rxdfifo里的数据发至DDR目标地址且发中断给CPU。
数据打包/解包单元:数据打包/解包单元如图4、5所示,其中打包使能信号由CPU配置,32位寄存器组由32个D触发器构成。(1)写操作且打包模式下,32位寄存器组0和32位寄存器组1相连组成一个右移寄存器组,txdfifo里的数据是几个数据单元打包组成。当读txdfifo时,先将读出的数据存到32位寄存器组0,32位寄存器组1将上次传输好的数据单元右移出D触发器,同时32位寄存器组0右移数据入32位寄存器组1的高位,当右移个数等于数据单元长度时就完成数据解包。(2)写操作且不打包模式下,txdfifo读出的数就是数据单元,可以直接存到32位寄存器组1。(3)读操作且打包模式下,该过程是写操作且打包模式的逆过程,32位寄存器组2和32位寄存器组3相连组成一个右移寄存器组,rxdfifo里的数据是几个数据单元打包组成,SPI物理层将外围的串行数据转为并行数据且存于32位寄存器组2,32位寄存器组2和32位寄存器组3同时右移操作,32位寄存器组2里的数据存入32位寄存器组3空闲区,当32位寄存器组3满32位时候写入到rxdfifo。(4)读操作且不打包模式下,rxdfifo的每一个地址所存的数据就是一个数据单元,故可以直接将32位寄存器组2写入到rxdfifo。
SPI传输控制层:SPI传输控制层用于控制数据打包/解包单元和SPI物理层之间的时序关系:写操作时数据打包/解包单元完成数据单元的还原时使能SPI物理层;读操作时SPI物理层完成串转并时使能数据打包/解包单元。
SPI物理层:SPI物理层用于实现并转串(写)、串转并(读)及大小端功能。并转串可以通过D触发器首尾相接构成,大端模式下,由数据单元的最高位作为出口左移完成;小端模式下,由数据单元的最低位作为出口右移完成。此外,SPI物理层还包含了时钟产生器,它可以产生2-256任意分频的时钟给片外器件,实现波特率的灵活设置,而这个时钟产生器在偶分频时候用时钟上升沿触发的加法计数器实现,奇分频时候将下降沿触发加法计数器产生信号和上升沿触发加法计数器产生信号经过或门实现。
AHB slave接口单元:AHB slave接口单元是基于AHB总线来跟CPU交互,实现SPI工作模式的配置和SPI工作状态的读取。该电路支持8位、16位、32位的数据单元,支持打包和不打包模式,支持1/2~1/256bit/clk,每个数据单元支持大端和小端模式,同时支持普通SPI模式、加速SPI模式和串行FLASH模式,AHB slave接口单元的时序如图6所示。
AHB master接口单元:AHB master接口单元是基于AHB总线来读/写DDR,其控制时序如图7所示。在加速控制单元控制下,利用该模块,SPI就类似DMA一样,不需要CPU干预,直接将DDR的数据写入到外部器件或直接将外部器件的数据读入到DDR。而对于常规的SPI操作,通讯的数据都需要CPU跟SPI直接交互来完成,相同的系统频率下常规的SPI数据吞吐量小,CPU工作量大。
写加速单元和读加速单元:写/读加速单元主要应用于命令相对固定,数据量较大的情况,本发明的写加速单元采用单块/多块写操作方式:(1)发送同步头FF→(2)发送start_token(单块FE,多块FC)→(3)通过AHB master接口单元从DDR取数据至txdfifo且启动SPI模块写操作,同时启动CRC计算单元→(4)发送CRC校验位。具体实现过程可以通过一个具3个状态的状态机来整体控制:状态a代表(1)、(2)过程,同步头和start_token当作一个16位数据单元发送,在状态a时候可以将这个16位数据单元写入到txdfifo,同时启动常规SPI模块的写操作来发送该16数据单元至外部器件;完成状态a后可以跳至状态b,状态b用于实现过程(3),它启动AHB master来读DDR数据入txdfifo,同时读取txdfifo里数据入常规SPI模块来执行写操作,每当数据打包/解包单元完成数据单元还原时候就开始计算这个数据单元对应的CRC校验位;完成状态b后可以跳至状态c,状态c用于实现过程(4),这时候已经完成了写操作,CRC计算单元的结果就是要传输数据的最终CRC校验位(16位),这时只要将这个16位CRC校验位置入txdfifo且启动常规SPI模块来发送即可。
本实施例的读加速单元采用的读操作方式为:(5)启动SPI模块读操作且启动AHB master接口单元将rxdfifo里数据发送至DDR,同时启动CRC计算单元→(6)CRC校验→(7)发送同步头FF且拉低片选spi_sel。具体实现过程可以通过一个具3个状态的状态机来整体控制:状态d代表过程(5),它启动常规SPI模块去读外部器件,一旦rxdfifo半满就通过AHB master模块写DDR,每当SPI物理层完成一个数据单元的串转并时候就启动CRC计算单元;完成状态d后可以跳至状态e,状态e用于实现过程(6),这时候已经完成了有效数据的读取,但是还需要启动常规SPI模块读取有效数据的16位校验位,将该读取的校验位和CRC计算单元的结果对比来检验是否数据传输正确,将该对比结果写入到AHB slave模块里的对应状态寄存器里;完成状态e后可以跳至状态f,状态f用于实现过程(7),此时对外部器件操作完成,发送同步头和拉低片选来结束外部器件操作,故写8位FF入txdfifo,同时启动常规SPI模块来执行写操作,完成后拉低片选,同时可以发送中断给CPU去取外部器件的数据。
对于支持写加速单元和读加速单元操作方式的外部器件,比如SD卡,本发明的电路加速性能更为优越。由上可知写加速单元和读加速单元只是控制AHB master读/写DDR、常规SPI写/读操作而已,其操作简单,便于硬件实现。为了增强SPI加速模块的兼容性,写操作的特有命令“发送同步头FF、start_token、CRC计算”及读操作的特有命令“CRC计算、校验、发送同步头FF且拉低片选spi_sel”可以通过CPU配置来屏蔽,此时只要跳过这几个状态即可实现,从而使得SPI的加速模块应用加速于其它类型的器件,最大限度地减少了以后升级的工作量。
CRC计算单元:CRC计算单元采用16位CRC的计算公式:G(x)=x16+x12+x5+1,其中x为8位数据单元。将该公式进行多项式展开,可以将多项式的系数存于只读存储器rom_crc中,这样CRC计算公式可以简化为crc=(crc<<8)^rom_crc[(crc>>8)^数据单元],方便硬件实现。虽然该公式只支持8位数据单元,但是本发明的电路从高位至低位按8划分数据单元来依次计算CRC,这样在CRC公式不变的条件下该SPI可以支持8、16、32位数据,从而在加速模式下可以通过该电路来实现复杂的CRC计算,不需要软件驱动占用CPU来完成,大大减少了CPU的负担,提高了速度,而且多种位宽的数据单元使得操作更加灵活,尤其是32位数据单位可以提高总线效率,减少FIFO的存取次数,减少功耗。为了与其它外部器件兼容,该CRC计算单元可以通过CPU配置来屏蔽,增强了硬件的兼容性。
具体实现过程可以通过三级流水来实现:第一级流水用于将数据单元按高位至低位顺序按8划分得到send_buffer,如32位数据单元可以划分成4段“31-24”、“23-16”、“15-8”、“7-0”依次计算CRC;第二级流水用于计算rom_crc的地址“(crc原>>8)^send_buffer”;第三级流水可以根据地址读rom_crc,再(crc原<<8)^rom_crc得到CRC校验位crc,如32位数据单元的流水操作如图8所示。
加速控制单元:当CPU通过AHB slave接口单元启动加速模式时,开启加速控制单元。加速控制单元根据CPU配置的读/写寄存器来启动读加速/写加速单元,从而决定了对AHB总线的操作方式。在操作过程中根据写加速/读加速单元的状态机动态配置传输数据单元个数、数据单元长度及SPI的读/写方向:写操作时候,状态a配置传输数据单元个数为1、数据单元长度为16、SPI的读/写方向为写,状态b配置传输数据单元个数和数据单元长度为CPU预先设置的参数、SPI的读/写方向为写,状态c配置传输数据单元个数为1、数据单元长度为16、SPI的读/写方向为写;读操作时候,状态d配置传输数据单元个数和数据单元长度为CPU预先设置的参数、SPI的读/写方向为读,状态e配置传输数据单元个数为1、数据单元长度为16、SPI的读/写方向为读,状态f配置传输数据单元个数为1、数据单元长度为8、SPI的读/写方向为写。当操作结束时候,通过AHB slave接口单元将相应的状态写入到状态寄存器里,便于软件查询。
综上所述,本发明的高速SPI接口电路有两方面的优点。一方面,外部器件的初始化阶段命令与应答信号比较多,情况比较复杂,但是占CPU不是很紧张,在这段时间的操作可以由常规SPI模块完成,既保证了系统性能稳定性,又保证了接口目标的灵活性。另一方面,外部器件的数据传输阶段命令字相对固定,而且数据量大,在这段时间操作关系到芯片接口性能好坏,这时可以由SPI加速模块完成,从而可以实现足够的数据传输效率前提下不干扰CPU,既保证了数据的传输速度,又保证了芯片的性能。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

Claims (8)

1、一种集成在芯片内的高速串行外围接口电路,包括常规串行外围接口电路模块,所述常规串行外围接口电路模块包括:
数据缓冲器,用于缓冲写数据txdfifo和读数据rxdfifo;
数据打包/解包单元,用于将写操作下将写数据txdfifo读出的数拆分成一个个数据单元,在读操作下用于将芯片外读取的数据存入读数据rxdfifo;
SPI传输控制层,用于控制数据打包/解包模块和SPI物理层之间的时序关系:写操作时数据打包/解包模块完成数据单元的还原时使能SPI物理层,读操作时SPI物理层完成串转并时使能数据打包/解包模块;
SPI物理层,用于实现并转串、串转并及大小端;
AHB slave接口模块,用于基于AHB总线跟CPU交互,实现SPI工作模式的配置和SPI工作状态的读取;
所述的高速串行外围接口电路设有普通工作模式;
其特征在于:所述高速串行外围接口电路还包括串行外围接口电路加速模块,所述的高速串行外围接口电路还设有加速工作模式,所述串行外围接口电路加速模块还包括:
AHB master接口单元,用于基于AHB总线来读/写DDR;
写加速单元,用于采用单块/多块写操作方式:发送同步头FF→发送单块FE、多块FC→通过AHB master接口模块从DDR取数据至写数据txdfifo且常规串行外围接口电路模块的写操作,同时启动CRC计算模块→发送CRC校验位;
读加速单元,用于启动常规串行外围接口电路模块的读操作且启动AHB master接口单元将读数据rxdfifo里数据发送至DDR,同时启动CRC计算模块→CRC校验→发送同步头FF且拉低片选spi_swl;
CRC计算单元,用于采用CRC计算公式进行计算;
加速控制单元,用于启动所述写加速单元或读加速单元,并控制读写方向,配置寄存器,反映状态;
在加速工作模式下,数据传输过程中CPU告知数据存取地址以长度,由加速控制单元控制读写,在完成加速操作时,通过AHB master接口单元发送中断。
2、如权利要求1所述的集成在芯片内的高速串行外围接口电路,其特征在于:所述的CRC计算模块采用16位CRC的计算公式:
G(x)=x16+x12+x5+1,其中x为8位数据单元。
3、如权利要求1或2所述的集成在芯片内的高速串行外围接口电路,其特征在于:在所述数据缓冲器由二块32深度、32宽度的FIFO组成,其中一块用于缓存写数据txdfifo,另外一块用于缓冲读数据rxdfifo。普通工作模式下,写操作是CPU配置写入txdfifo,读操作是CPU读取rxdfifo;加速工作模式下,写操作是直接到DDR取数据写入txdfifo,读操作是直接将rxdfifo里的数据发至DDR目标地址且发中断给CPU。
4、如权利要求3所述的集成在芯片内的高速串行外围接口电路,其特征在于:所述的数据打包/解包单元中,在读操作下将芯片外读取的数据打包成32位存入读数据rxdfifo或直接存入读数据rxdfifo。
5、如权利要求1或2所述的集成在芯片内的高速串行外围接口电路,其特征在于:所述的SPI物理层还包含时钟产生器,用于产生2-256任意分频的时钟给片外器件,并设置波特率。
6、如权利要求4所述的集成在芯片内的高速串行外围接口电路,其特征在于:所述的SPI物理层还包含时钟产生器,用于产生2-256任意分频的时钟给片外器件,并设置波特率。
7、如权利要求1或2所述的集成在芯片内的高速串行外围接口电路,其特征在于:所述AHB slave接口单元支持8位、16位、32位的数据单元,支持打包和不打包模式,支持1/2~1/256bit/clk,每个数据单元支持大端和小端模式,同时支持普通SPI模式、加速SPI模式和串行FLASH模式。
8、如权利要求6所述的集成在芯片内的高速串行外围接口电路,其特征在于:所述AHB slave接口单元支持8位、16位、32位的数据单元,支持打包和不打包模式,支持1/2~1/256bit/clk,每个数据单元支持大端和小端模式,同时支持普通SPI模式、加速SPI模式和串行FLASH模式。
CN2008101212488A 2008-09-25 2008-09-25 集成在芯片内的高速串行外围接口电路 Expired - Fee Related CN101382927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101212488A CN101382927B (zh) 2008-09-25 2008-09-25 集成在芯片内的高速串行外围接口电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101212488A CN101382927B (zh) 2008-09-25 2008-09-25 集成在芯片内的高速串行外围接口电路

Publications (2)

Publication Number Publication Date
CN101382927A true CN101382927A (zh) 2009-03-11
CN101382927B CN101382927B (zh) 2010-06-02

Family

ID=40462772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101212488A Expired - Fee Related CN101382927B (zh) 2008-09-25 2008-09-25 集成在芯片内的高速串行外围接口电路

Country Status (1)

Country Link
CN (1) CN101382927B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135946A (zh) * 2010-01-27 2011-07-27 中兴通讯股份有限公司 一种数据处理方法和装置
CN102495818A (zh) * 2011-12-09 2012-06-13 上海爱信诺航芯电子科技有限公司 一种提高软件方式spi通信速率的方法
CN104331385A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种串行外围接口的高速半硬件实现方法
CN105045744A (zh) * 2015-08-12 2015-11-11 上海斐讯数据通信技术有限公司 一种高速接口
CN105511806A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 处理写请求的方法和移动终端
CN108415859A (zh) * 2018-04-28 2018-08-17 珠海市微半导体有限公司 一种激光陀螺仪数据的硬件加速电路
CN108959136A (zh) * 2018-06-26 2018-12-07 豪威科技(上海)有限公司 基于spi的数据传输加速装置、系统及数据传输方法
CN109120485A (zh) * 2018-06-14 2019-01-01 苏州工业园区职业技术学院 智能家庭网关及其控制方法
CN109273031A (zh) * 2018-10-09 2019-01-25 珠海格力电器股份有限公司 一种flash译码电路和flash译码方法
CN110069432A (zh) * 2018-01-22 2019-07-30 华大半导体有限公司 带有数据处理功能的外围电路互连系统及其联动方法
CN110995507A (zh) * 2019-12-19 2020-04-10 山东方寸微电子科技有限公司 一种网络加速控制器及方法
CN111413862A (zh) * 2020-03-31 2020-07-14 涵涡智航科技(玉溪)有限公司 一种无人机摇杆冗余控制系统及其控制方法
WO2020227878A1 (zh) * 2019-05-13 2020-11-19 华为技术有限公司 一种调度存储器中数据的方法、数据调度设备及系统
CN112036117A (zh) * 2020-08-28 2020-12-04 西安微电子技术研究所 一种适用于多种位宽并行输入数据的crc校验控制系统
CN112052213A (zh) * 2020-10-10 2020-12-08 乐鑫信息科技(上海)股份有限公司 增强型spi控制器以及操作spi控制器的方法
CN112463655A (zh) * 2020-11-14 2021-03-09 武汉汇迪森信息技术有限公司 一种高速数据采集存储系统的数据存储及读取方法
WO2021056965A1 (zh) * 2019-09-27 2021-04-01 安凯(广州)微电子技术有限公司 一种高速spi主模式控制器
CN114036096A (zh) * 2021-11-04 2022-02-11 珠海一微半导体股份有限公司 一种基于总线接口的读控制器
CN114036088A (zh) * 2021-11-16 2022-02-11 深圳市创成微电子有限公司 一种dsp数据存储控制架构和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082481B2 (en) * 2003-11-25 2006-07-25 Atmel Corporation Serial peripheral interface (SPI) apparatus with write buffer for improving data throughput
CN100468378C (zh) * 2005-12-17 2009-03-11 鸿富锦精密工业(深圳)有限公司 Spi设备通信电路
CN100437541C (zh) * 2006-03-28 2008-11-26 华为技术有限公司 一种串行外设接口的实现方法

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135946A (zh) * 2010-01-27 2011-07-27 中兴通讯股份有限公司 一种数据处理方法和装置
CN102495818A (zh) * 2011-12-09 2012-06-13 上海爱信诺航芯电子科技有限公司 一种提高软件方式spi通信速率的方法
CN104331385A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种串行外围接口的高速半硬件实现方法
CN105045744A (zh) * 2015-08-12 2015-11-11 上海斐讯数据通信技术有限公司 一种高速接口
CN105511806B (zh) * 2015-11-30 2018-09-07 华为技术有限公司 处理写请求的方法和移动终端
CN105511806A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 处理写请求的方法和移动终端
US10437519B2 (en) 2015-11-30 2019-10-08 Huawei Technologies Co., Ltd. Method and mobile terminal for processing write request
CN110069432B (zh) * 2018-01-22 2023-03-24 小华半导体有限公司 带有数据处理功能的外围电路互连系统及其联动方法
CN110069432A (zh) * 2018-01-22 2019-07-30 华大半导体有限公司 带有数据处理功能的外围电路互连系统及其联动方法
CN108415859A (zh) * 2018-04-28 2018-08-17 珠海市微半导体有限公司 一种激光陀螺仪数据的硬件加速电路
CN108415859B (zh) * 2018-04-28 2023-10-27 珠海一微半导体股份有限公司 一种激光陀螺仪数据的硬件加速电路
CN109120485A (zh) * 2018-06-14 2019-01-01 苏州工业园区职业技术学院 智能家庭网关及其控制方法
CN109120485B (zh) * 2018-06-14 2020-12-22 苏州大学文正学院 智能家庭网关及其控制方法
CN108959136B (zh) * 2018-06-26 2020-12-25 豪威科技(上海)有限公司 基于spi的数据传输加速装置、系统及数据传输方法
CN108959136A (zh) * 2018-06-26 2018-12-07 豪威科技(上海)有限公司 基于spi的数据传输加速装置、系统及数据传输方法
CN109273031A (zh) * 2018-10-09 2019-01-25 珠海格力电器股份有限公司 一种flash译码电路和flash译码方法
WO2020227878A1 (zh) * 2019-05-13 2020-11-19 华为技术有限公司 一种调度存储器中数据的方法、数据调度设备及系统
CN112292660B (zh) * 2019-05-13 2022-05-31 华为技术有限公司 一种调度存储器中数据的方法、数据调度设备及系统
CN112292660A (zh) * 2019-05-13 2021-01-29 华为技术有限公司 一种调度存储器中数据的方法、数据调度设备及系统
WO2021056965A1 (zh) * 2019-09-27 2021-04-01 安凯(广州)微电子技术有限公司 一种高速spi主模式控制器
CN110995507A (zh) * 2019-12-19 2020-04-10 山东方寸微电子科技有限公司 一种网络加速控制器及方法
CN111413862A (zh) * 2020-03-31 2020-07-14 涵涡智航科技(玉溪)有限公司 一种无人机摇杆冗余控制系统及其控制方法
CN112036117A (zh) * 2020-08-28 2020-12-04 西安微电子技术研究所 一种适用于多种位宽并行输入数据的crc校验控制系统
CN112036117B (zh) * 2020-08-28 2023-06-20 西安微电子技术研究所 一种适用于多种位宽并行输入数据的crc校验控制系统
CN112052213A (zh) * 2020-10-10 2020-12-08 乐鑫信息科技(上海)股份有限公司 增强型spi控制器以及操作spi控制器的方法
WO2022073363A1 (zh) * 2020-10-10 2022-04-14 乐鑫信息科技(上海)股份有限公司 增强型spi控制器以及操作spi控制器的方法
CN112052213B (zh) * 2020-10-10 2022-12-02 乐鑫信息科技(上海)股份有限公司 增强型spi控制器以及操作spi控制器的方法
CN112463655B (zh) * 2020-11-14 2022-06-14 武汉汇迪森信息技术有限公司 一种高速数据采集存储系统的数据存储及读取方法
CN112463655A (zh) * 2020-11-14 2021-03-09 武汉汇迪森信息技术有限公司 一种高速数据采集存储系统的数据存储及读取方法
CN114036096A (zh) * 2021-11-04 2022-02-11 珠海一微半导体股份有限公司 一种基于总线接口的读控制器
CN114036096B (zh) * 2021-11-04 2024-05-03 珠海一微半导体股份有限公司 一种基于总线接口的读控制器
CN114036088A (zh) * 2021-11-16 2022-02-11 深圳市创成微电子有限公司 一种dsp数据存储控制架构和方法

Also Published As

Publication number Publication date
CN101382927B (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
CN101382927B (zh) 集成在芯片内的高速串行外围接口电路
CN101276318B (zh) 基于pci-e总线的直接存取数据传输控制装置
CN103064805B (zh) Spi控制器及通信方法
CN102411549B (zh) 存储器系统、主机控制器以及dma的控制方法
CN102012885A (zh) 采用动态i2c总线实现通讯的系统及方法
CN104915303B (zh) 基于PXIe总线的高速数字I/O系统
CN101344870B (zh) 一种复用性强的fifo控制模块及其管理内存的方法
CN101599004B (zh) 基于fpga的sata控制器
CN102023956A (zh) 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN102156683A (zh) 通用串行总线传输转译器及微帧同步方法
CN101436171B (zh) 模块化通信控制系统
CN103207846A (zh) 内存控制器及控制方法
CN106951381A (zh) 一种uart扩展芯片及实现方法
CN102521179A (zh) 一种dma读操作的实现装置和方法
CN100395696C (zh) 静态存储器接口装置及其数据传输方法
CN103092806A (zh) 基于spi数据传输时序的数据传输方法和系统
CN100490015C (zh) 一种访问与非型闪存的系统及方法
CN106055504B (zh) 控制数据传输的方法、装置及计算机设备
CN103488600A (zh) 通用从机同步串行接口电路
CN103019988B (zh) 电脑、嵌入式控制器及其方法
CN202018576U (zh) 单片机通信模块
CN101303568A (zh) 工业控制计算机系统
CN101604304B (zh) 一种多cpu间通信的方法和继电保护装置
CN102750254A (zh) 高速高带宽ahb总线到低速低带宽ahb总线的双向转换桥
CN202583967U (zh) 一种基于mpc5200b处理器的lbe总线单板计算机

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: LAI DANPING

Free format text: FORMER OWNER: HANGZHOU AIWEIXIN SCIENCE AND TECHNOLOGY CO., LTD.

Effective date: 20131211

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131211

Address after: 1 areas of a village in Hangzhou city of Zhejiang province Binjiang District Puyan street 310053 No. 53 crown

Patentee after: Lai Danping

Address before: Hangzhou City, Zhejiang province Binjiang District 310053 shore road 1180 No. 7 Building Room 717

Patentee before: Hangzhou Aiweixin Science and Technology Co., Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160920

Address after: Hangzhou City, Zhejiang province Binjiang District 310052 shore road 1187 Building 1 floor C block 4

Patentee after: Zhejiang Huatu Microchip Technology Co., Ltd.

Address before: 1 areas of a village in Hangzhou city of Zhejiang province Binjiang District Puyan street 310053 No. 53 crown

Patentee before: Lai Danping

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100602

Termination date: 20190925

CF01 Termination of patent right due to non-payment of annual fee