一种串行外设接口的实现方法技术

技术编号:2848666 阅读:188 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种多工作模式串行外设接口的实现方法,通过SPI配置参数设定SPI的工作模式,然后根据各种工作模式下同步串行数据帧相关的所有可编程参数进行数据收发,同时实现真正意义上的全双工同步串行传输。由于本发明专利技术SPI接口的工作方式以及串行数据帧相关的所有参数都可以通过软件配置,因此按本发明专利技术所述方法实现的SPI接口能支持目前所有的带SPI接口的外设。且本发明专利技术设计的SPI扩展功能,如设备使能信号可配置成为帧同步信号,使之支持其它常用的同步串行外设接口,扩大了SPI接口的应用范围,降低了片上系统的设计投入。

【技术实现步骤摘要】

本专利技术涉及串行通讯技术,更确切地说,涉及。
技术介绍
串行外设接口主要用来完成并行总线接口到外部串行接口之间的数据转换。尤其适用于对外设、器件的配置与控制,因为这类应用一般要求的传输速率不高、数据量不大。而且由于SPI接口逻辑简单、接口管脚少、编程应用方便,因此多数外设/器件也都支持SPI串行接口。一般来说,SPI采用一种主-从式结构的同步串行通讯方式,1个主设备可带1个或者多个从设备。并行总线接口端总线随并行总线类型而异,而串行接口端的信号主要有4个信号串行数据信号主设备输出-从设备输入;串行数据信号主设备输入-从设备输出;位时钟信号;从设备使能信号。SPI串行数据传输由主设备的位时钟和从设备使能信号控制。从设备使能信号是一个可选的低电平有效的信号,用于使能从设备的串行数据的输入/输出。在只有一个从设备时,从设备上的从设备使能信号可以直接接地,即不要专用的从设备使能信号。此时,位时钟信号控制主/从设备之间的串行通信,即主设备只在数据收发时产生位时钟信号。现有的SPI接口只能以半双工方式工作,无法实现真正意义上的全双工。图1所示的一种嵌入式微计算机的SPI接口是相对比较接近于全双工的一种类型,其主设备的8位数据寄存器与从设备的8位数据寄存器连在一起组成了一个分布的16位寄存器。当进行数据传输时,16位的寄存器通过位时钟信号移动8比特位置,数据高效的在主设备与从设备之间交换写进主设备的数据寄存器的数据发送到了从设备,写进从设备数据寄存器的数据发送到了主设备。这种传输方式虽然表面上为全双工,即同时收发数据,但实际的数据收发过程完全受主设备控制——因为从选择信号以及位时钟的产生决定了从设备发送数据的时序,因此其并非真正意义上的全双工方式。并且一次只能连接一个从设备,传输波特率也只有8种可选。另外在主设备与从设备之间的一次性读写传输时,不支持命令字与数据字之间的等待,并且从选择信号在传输过程中必须始终保持有效。没有数据传输时也不能有时钟输出,否则可能出错。另一种同步串行接口(SSP)的实现方式则从现有器件出发,把串行帧格式分作了3类,针对3种不同的帧格式设定不同的支持特性,如下表所示 表1 SSP对3种数据帧的支持特性这种基于器件类型而设计的SSP接口,能实现部分带SPI接口的外设/器件的帧格式。但同样不支持全双工的数据传输,而且帧类型的划分也相对机械。同时不难看出,无论上述哪一种接口实现方式,其支持的有效数据位宽的范围都较小,且主设备接收数据过程复杂除了命令字以外,还需要额外的垃圾数据来产生位时钟信号和从设备使能信号;虽然帧格式3不需要额外的垃圾数据,但是其命令字固定为8比特,极大的限制了其应用范围。
技术实现思路
针对现有技术只能适用特定工作范围的缺点,本专利技术提供了一种多工作模式的SPI接口实现方法,并使所有与数据传输有关的参数可以由CPU配置,扩大SPI串行接口的应用场合,减少片上系统(SOC)设计中同步串行接口的种类,从而降低SOC芯片的设计开发成本。本专利技术多工作模式串行外设接口(SPI)实现方法的主要内容是通过SPI配置设定SPI的工作模式,然后根据各种工作模式下同步串行数据帧相关的所有可编程参数进行数据收发,同时实现真正意义上的全双工同步串行传输。多工作模式串行外设接口(SPI)的实现方法,主要包括以下几个步骤(1)由CPU配置SPI配置参数,使能本设备SPI;(2)SPI根据其配置参数确定多种工作模式中的一种作为当前模式;(3)在确定的当前工作模式下,根据SPI配置参数进行数据收发。其中所述的SPI配置参数包括SPI的工作模式、位时钟状态、主/从模式、读写指示、有效数据宽度、采样边沿、比特流顺序、时钟分频系数、外设选择、一次性读写总数、命令字数、帧连续、等待周期、等待中的时钟状态、DMA传输。其中所述SPI的工作模式包括以下4种(P1)第1模式(PATTERN1)主/从模式,片选引脚输出作为从设备使能信号;(P2)第2模式(PATTERN2)主/从模式,片选引脚输出作为帧同步信号;(P3)第3模式(PATTERN3)主/主模式,片选引脚输出作为设备使能信号; (P4)第4模式(PATTERN4)主/主模式,片选引脚输出作为帧同步信号。所述参数中的位时钟状态是为了支持不同外设对位时钟信号的要求,令没有数据传输时的位时钟状态完全可编程控制,它包括以下3种(C1)状态1(SCLK_FREE)没有数据收发时,位时钟信号始终存在;(C2)状态2(SCLK_HIGH)没有数据收发时,位时钟信号为高电平;(C3)状态3(SCLK_LOW)没有数据收发时,位时钟信号为低电平。上面介绍了本专利技术有关SPI配置的主要内容,下面描述SPI数据收发的过程,由于数据收发主要以数据帧的形式进行,因此下文也称之为帧收发。在PATTERN1模式下,SPI的工作方式只能是主/从之一,片选引脚输出作为从设备使能信号,其实现方法为SPI处于主设备工作方式时的数据收发按以下步骤进行(P1a)当主设备发送缓冲区非空时,使能从设备,对读/写指示位进行判断;(P1b)指示位为“读”时,向从设备发送命令字,经过指定的等待周期之后接收数据字;指示位为“写”时,直接发送数据字;(P1c)本次读/写完成后去使能从设备使能信号;SPI处于从设备工作方式时,只要从设备使能信号有效,就直接收/发数据。在PATTERN2模式下,SPI的工作方式只能是主/从之一,片选引脚输出作为帧同步信号,其实现方法为SPI处于主设备工作方式时只进行数据发送,按以下步骤进行(P2a)判断主设备发送缓冲区是否非空;(P2b)非空时直接发送数据字,且在每开始发送一个数据字之前发送帧同步信号;SPI处于从设备工作方式时只进行数据接收,只要收到帧同步信号,就开始接收数据。在PATTERN3模式下,数据传递的双方都是主设备,均可以随时发起数据发送操作,其实现方法为SPI的数据发送按以下步骤进行(P3a)对发送缓冲区进行判断,非空时,从其中读出一个数据字;(P3b)使设备使能输出信号有效;(P3c)将数据字并串转换并发送出去;(P3c)使设备使能输出信号无效,重新开始对缓冲区状态判断。SPI空闲或进行数据发送的同时,只要设备使能输入信号有效,就开始接收数据。在PATTERN4模式下,数据传递的双方都是主设备,与PATTERN3不同之处在于设备使能信号改为帧同步信号,其实现方法为SPI的数据发送按以下步骤进行(P4a)对发送缓冲区进行判断,非空时,从其中读出一个数据字;(P4b)发送一个帧同步信号;(P4c)将数据字并串转换并发送出去;(P4d)重新开始对缓冲区状态判断。SPI空闲或进行数据发送的同时,只要收到帧同步信号,就开始接收数据。本专利技术的有益效果为使SPI接口的工作方式以及串行数据帧相关的所有参数都可以通过软件配置,按照本专利技术所述方法实现的SPI接口能支持目前所有的带SPI接口的外设;本专利技术设计的SPI扩展功能(如设备使能信号可配置成为帧同步信号)支持其它常用的同步串行外设接口,降低片上系统的芯片设计投入。附图说明图1是已有技术两个嵌入式微计算机之间的SPI接口示意图。图2是本专利技术SPI的工作流程示意图。图3是本专利技术PATTERN1模式下的SPI主设备本文档来自技高网
...

【技术保护点】
一种串行外设接口的实现方法,其特征在于,包括以下步骤:(1)CPU配置串行外设接口的配置参数,使能本设备串行外设接口;(2)串行外设接口根据其配置参数确定多种工作模式中的一种为当前模式;(3)在确定的当前工作模式下, 根据串行外设接口配置参数进行数据收发。

【技术特征摘要】
1.一种串行外设接口的实现方法,其特征在于,包括以下步骤(1)CPU配置串行外设接口的配置参数,使能本设备串行外设接口;(2)串行外设接口根据其配置参数确定多种工作模式中的一种为当前模式;(3)在确定的当前工作模式下,根据串行外设接口配置参数进行数据收发。2.根据权利要求1所述的方法,其特征在于,串行外设接口配置包括以下参数串行外设接口的工作模式、位时钟状态、主/从模式、读写指示、有效数据宽度、采样边沿、比特流顺序、时钟分频系数、外设选择、一次性读写总数、命令字数、帧连续、等待周期、等待中的时钟状态、DMA传输。3.根据权利要求2所述的方法,其特征在于,所述参数中的位时钟状态指没有数据收发时的位时钟信号,包括没有数据收发时,位时钟信号始终存在的第一状态;没有数据收发时,位时钟信号为高电平的第二状态;以及没有数据收发时,位时钟信号为低电平的第三状态。4.根据权利要求1或2或3所述的方法,其特征在于,串行外设接口的工作模式包括主/从模式下,片选引脚输出作为从设备使能信号的第一模式;主/从模式下,片选引脚输出作为帧同步信号的第二模式;主/主模式下,片选引脚输出作为设备使能信号的第三模式以及主/主模式下,片选引脚输出作为帧同步信号的第四模式。5.根据权利要求4所述的方法,其特征在于,在所述第一模式下,串行外设接口处于主设备工作方式时的数据收发按以下步骤进行(P1a)当主设备发送缓冲区非空时,使能从设备,对读/写指示位进行判断;(P1b)指...

【专利技术属性】
技术研发人员:黄卫华吴奇祥
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1