本发明专利技术公开了一种支持主从模式的SPI接口,包括:一控制寄存器,用于配置收发数据字节数、中断使能、从设备16字节使能、输出全零使能和主模式传输启动;一配置寄存器,用于配置主从模式选择、MSB/LSB选择、极性、相位和主模式时钟分频;一状态寄存器,用于寄存操作完成标志和中断标志;一从模式握手寄存器,仅在从模式下可见;同时作为一个字节的数据寄存器,用于寄存发送和接收从模式下,每次收发的首字节;一16字节数据寄存器,为16个可寻址数据寄存器,发送和接收共用,每次发送数据的同时,接收新的数据。本发明专利技术能够实现芯片与外部设备间全双工的,同步串行数据传送功能。
【技术实现步骤摘要】
本专利技术涉及SPI (Serial Peripheral interface串行外围设备接口)接口领域,特别是涉及一种支持主从模式的SPI接口。
技术介绍
SPI总线是Motorola公司推出的一种高速的,全双工,同步的通信总线。由于简单易用的特性,如今越来越多的芯片集成了这种通信协议,广泛的应用于通信电子、计算机
SPI接口主要应用在外围设置FLASHRAM (闪速存储器)、网络控制器、IXD (液晶屏幕)显示驱动器、A/D转换器和MCU (微控制器)等。SPI模块使用4条线:串行时钟线(SCLK)、主设备输入/从设备输出数据线(MIS0)、主设备输出/从设备输入数据线(MOSI)和低电平有效的从设备选择线(NSS)。在主设备输出时钟信号的驱动下,数据按位传输,MISO与MOSI同时传输,为全双工通信。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=O,串行同步时钟的空闲状态为低电平;如果CPOL=I,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=O,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=I,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外接设备时钟相位和极性应该—致。目前市场上主流SPI设备,传输速度一般为几Mbps(兆位/秒)。
技术实现思路
本专利技术要解决的技术问题是提供一种支持主从模式的SPI接口,能够实现芯片与外部设备间全双工的,同步串行数据传送功能。为解决上述技术问题,本专利技术的支持主从模式的SPI接口,包括:—链路层,用于数据输入和输出的传输;一控制寄存器,与所述链路层相连接,用于配置收发数据字节数、中断使能、从设备16字节使能、输出全零使能和主模式传输启动;一配置寄存器,与所述链路层相连接,用于配置主从模式选择、MSB/LSB (最高有效位/最低有效位)选择、极性、相位和主模式时钟分频;一状态寄存器,与所述链路层相连接,用于寄存操作完成标志和中断标志;—从模式握手寄存器,其输入端与一串转并接口的输出端相连接,其输出端与一并转串接口的输入端相连接,仅在从模式下可见;同时作为一个字节的数据寄存器,用于寄存发送和接收从模式下,每次收发的首字节;一 16字节数据寄存器,其输入端与所述串转并接口的输出端相连接,其输出端与所述并转串接口的输入端相连接,为16个可寻址数据寄存器,发送和接收共用,每次发送数据的同时,接收新的数据;所述并转串接口,与所述链路层相连接,用于将并行数据转换为串行数据;所述串转并接口用于将串行数据转换为并行数据。所述配置寄存器在上电初始化过程中完成配置,在下电前不会二次更改。所述从模式握手寄存器用于存放上一笔数据收发完成标志。本专利技术能够实现MCU接口到SPI接口设备的数据,地址和控制信号的转化;实现芯片与外部设备间全双工的,同步串行数据传送功能;能够兼容市场上主流SPI产品,并且,在主从设备都是采用本专利技术SPI接口设计的前提下,主从对接,能够达到几十Mbps的传输速率。本专利技术支持SPI主从模式,串口时钟频率可调,串口时钟极性和相位可调,串口MSB/LSB 可调。【附图说明】下面结合附图与【具体实施方式】对本专利技术作进一步详细的说明:附图是所述支持主从模式的SPI接口结构框图。【具体实施方式】SPI接口通过4个引脚与外部器件相连:MIS0,主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。M0SI,主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。SCK,串口时钟,作为主设备的输出,从设备的输入。SSn,从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,用来选中从设备。从设备只有在被选中的前提下,才能够接收主设备发送过来的时钟和数据。传输格式:SPI接口无论主从模式,均支持可配置的时钟极性(CPOL)和相位(CPHA)。CPOL决定端口时钟是正相还是反相;CPHA决定第一个还是第二个时钟沿采数据。主设备和从设备进行通信,时钟极性(CPOL)和相位(CPHA)必须保持一致。CPHA=O 传输:SCK的第一个边沿用于对MISO和MOSI的数据进行采样。对有些设备而言,当从设备被选中时,第一个数据比特立刻有效。在这种模式下,第一个SCK边沿在SSn变低后半个时钟周期后发出。半个时钟周期后,SCK第二个边沿出现,第二个比特位传输到数据线上。同时第一个SCK周期采样到的比特移位到移位寄存器中。SCK重复8个周期发送一个字节数据。CPHA=I 传输:有些设备要求第一个SCK边沿传输第一个数据位到数据线上,第二个时钟边沿采样数据。这种模式下,需要在开始传输操作之前设置CPHA为I。第一个SCK边沿在SSn为低的半个SCK时钟周期后出现。第一个时钟边沿使从SPI设备传输第一个数据位到数据线上。半个SCK周期之后,第二个SCK边沿出现,此边沿用于主设备和从设备锁存数据。当第三个边沿发生时,上一个收到的数据位移位到SPI移位寄存器(即16字节数据寄存器)。同时,下一位数据被发送到SPI数据线上。SPI接口主模式的波特率由所述配置模块(SPICFG)的CLK (时钟)控制分频系数,将CPU时钟分频后产生。SPI接口从模式的波特率由外接的主模式控制,最快可支持两倍系统时钟频率。结合附图所不,所述支持主从模式的SPI接口,包括:一链路层,一控制寄存器,一配置寄存器,一状态寄存器,一从模式握手寄存器,一 16字节数据寄存器,一并转串接口,一串转并接口。所述链路层,从模式的时钟为SCKs,从模式的片选输入为SSnS ;主模式的时钟为SCKm,主模式的片选输出为SSnm。所述控制寄存器(SPICTRL),共8个bit (比特),从高到低依次是:DBC,IRQEN, BULKOP, SL_DBC_16, TXb, SCGO0DBC , Data数据计数器,用于指示一个SPI接口周期发送接收的数据数量。数值范围O到15。传输的字节数等于所述控制寄存器设置的数值加I。IRQEN,SPI中断允许。O:不允许SPI中断;1:允许SPI中断。BULKOP, BULK (块操作)模式允许。BULKOP=O,传输结束后 SPI_S 无效;BULK0P=1,SSn将保持直到BULKOP=O操作完成。BULK仅支持主(Master)模式。SL_DBC_16,从模式下有效,传输最大字节数为17个,包括16个数据字节和一个握手子节。TXb,当SPI接口工作于半双工模式,只接收,将输出数据线置为零。SCGO, SPI传输启动。SCG0=0,SPI接口传输未启动;SCGO=I,启动SPI接口传输。SPI接口传输过程中对此位的写入操作无效。所述控制寄存器的其他位在传输中可以被修改。所述配置寄存器,共6个bit,从高到低依次是:SLAVE,LSB,CPHA,CPOL,CLKDIV[I:O] OSLAVE,为主从模式选择。SLAVE=O:选择SPI接口主模式;SLAVE=1,选择SPI从模式。LSB,本文档来自技高网...
【技术保护点】
一种支持主从模式的SPI接口,其特征在于,包括:一链路层,用于数据输入和输出的传输;一控制寄存器,与所述链路层相连接,用于配置收发数据字节数、中断使能、从设备16字节使能、输出全零使能和主模式传输启动;一配置寄存器,与所述链路层相连接,用于配置主从模式选择、最高有效位MSB选择、最低有效位LSB选择、极性、相位和主模式时钟分频;一状态寄存器,与所述链路层相连接,用于寄存操作完成标志和中断标志;一从模式握手寄存器,其输入端与一串转并接口的输出端相连接,其输出端与一并转串接口的输入端相连接,仅在从模式下可见;同时作为一个字节的数据寄存器,用于寄存发送和接收从模式下,每次收发的首字节;一16字节数据寄存器,其输入端与所述串转并接口的输出端相连接,其输出端与所述并转串接口的输入端相连接,为16个可寻址数据寄存器,发送和接收共用,每次发送数据的同时,接收新的数据;所述并转串接口,与所述链路层相连接,用于将并行数据转换为串行数据;所述串转并接口用于将串行数据转换为并行数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:王彩红,
申请(专利权)人:上海华虹集成电路有限责任公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。