CN104714908B - 支持主从模式的spi接口 - Google Patents

支持主从模式的spi接口 Download PDF

Info

Publication number
CN104714908B
CN104714908B CN201310684633.4A CN201310684633A CN104714908B CN 104714908 B CN104714908 B CN 104714908B CN 201310684633 A CN201310684633 A CN 201310684633A CN 104714908 B CN104714908 B CN 104714908B
Authority
CN
China
Prior art keywords
data
spi
register
spi interface
slave
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
Application number
CN201310684633.4A
Other languages
English (en)
Other versions
CN104714908A (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.)
Shanghai Huahong Integrated Circuit Co Ltd
Original Assignee
Shanghai Huahong Integrated Circuit 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 Shanghai Huahong Integrated Circuit Co Ltd filed Critical Shanghai Huahong Integrated Circuit Co Ltd
Priority to CN201310684633.4A priority Critical patent/CN104714908B/zh
Publication of CN104714908A publication Critical patent/CN104714908A/zh
Application granted granted Critical
Publication of CN104714908B publication Critical patent/CN104714908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种支持主从模式的SPI接口,包括:一控制寄存器,用于配置收发数据字节数、中断使能、从设备16字节使能、输出全零使能和主模式传输启动;一配置寄存器,用于配置主从模式选择、MSB/LSB选择、极性、相位和主模式时钟分频;一状态寄存器,用于寄存操作完成标志和中断标志;一从模式握手寄存器,仅在从模式下可见;同时作为一个字节的数据寄存器,用于寄存发送和接收从模式下,每次收发的首字节;一16字节数据寄存器,为16个可寻址数据寄存器,发送和接收共用,每次发送数据的同时,接收新的数据。本发明能够实现芯片与外部设备间全双工的,同步串行数据传送功能。

Description

支持主从模式的SPI接口
技术领域
本发明涉及SPI(Serial Peripheral interface串行外围设备接口)接口领域,特别是涉及一种支持主从模式的SPI接口。
背景技术
SPI总线是Motorola公司推出的一种高速的,全双工,同步的通信总线。由于简单易用的特性,如今越来越多的芯片集成了这种通信协议,广泛的应用于通信电子、计算机技术领域。SPI接口主要应用在外围设置FLASHRAM(闪速存储器)、网络控制器、LCD(液晶屏幕)显示驱动器、A/D转换器和MCU(微控制器)等。
SPI模块使用4条线:串行时钟线(SCLK)、主设备输入/从设备输出数据线(MISO)、主设备输出/从设备输入数据线(MOSI)和低电平有效的从设备选择线(NSS)。在主设备输出时钟信号的驱动下,数据按位传输,MISO与MOSI同时传输,为全双工通信。
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外接设备时钟相位和极性应该一致。
目前市场上主流SPI设备,传输速度一般为几Mbps(兆位/秒)。
发明内容
本发明要解决的技术问题是提供一种支持主从模式的SPI接口,能够实现芯片与外部设备间全双工的,同步串行数据传送功能。
为解决上述技术问题,本发明的支持主从模式的SPI接口,包括:
一链路层,用于数据输入和输出的传输;
一控制寄存器,与所述链路层相连接,用于配置收发数据字节数、中断使能、从设备16字节使能、输出全零使能和主模式传输启动;
一配置寄存器,与所述链路层相连接,用于配置主从模式选择、MSB/LSB(最高有效位/最低有效位)选择、极性、相位和主模式时钟分频;
一状态寄存器,与所述链路层相连接,用于寄存操作完成标志和中断标志;
一从模式握手寄存器,其输入端与一串转并接口的输出端相连接,其输出端与一并转串接口的输入端相连接,仅在从模式下可见;同时作为一个字节的数据寄存器,用于寄存发送和接收从模式下,每次收发的首字节;
一16字节数据寄存器,其输入端与所述串转并接口的输出端相连接,其输出端与所述并转串接口的输入端相连接,为16个可寻址数据寄存器,发送和接收共用,每次发送数据的同时,接收新的数据;
所述并转串接口,与所述链路层相连接,用于将并行数据转换为串行数据;
所述串转并接口用于将串行数据转换为并行数据。
所述配置寄存器在上电初始化过程中完成配置,在下电前不会二次更改。
所述从模式握手寄存器用于存放上一笔数据收发完成标志。
本发明能够实现MCU接口到SPI接口设备的数据,地址和控制信号的转化;实现芯片与外部设备间全双工的,同步串行数据传送功能;能够兼容市场上主流SPI产品,并且,在主从设备都是采用本发明SPI接口设计的前提下,主从对接,能够达到几十Mbps的传输速率。
本发明支持SPI主从模式,串口时钟频率可调,串口时钟极性和相位可调,串口MSB/LSB可调。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
附图1是所述支持主从模式的SPI接口结构框图。
具体实施方式
SPI接口通过4个引脚与外部器件相连:
MISO,主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。
MOSI,主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。
SCK,串口时钟,作为主设备的输出,从设备的输入。
SSn,从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,用来选中从设备。从设备只有在被选中的前提下,才能够接收主设备发送过来的时钟和数据。
传输格式:
SPI接口无论主从模式,均支持可配置的时钟极性(CPOL)和相位(CPHA)。CPOL决定端口时钟是正相还是反相;CPHA决定第一个还是第二个时钟沿采数据。主设备和从设备进行通信,时钟极性(CPOL)和相位(CPHA)必须保持一致。
CPHA=0传输:
SCK的第一个边沿用于对MISO和MOSI的数据进行采样。对有些设备而言,当从设备被选中时,第一个数据比特立刻有效。在这种模式下,第一个SCK边沿在SSn变低后半个时钟周期后发出。半个时钟周期后,SCK第二个边沿出现,第二个比特位传输到数据线上。同时第一个SCK周期采样到的比特移位到移位寄存器中。SCK重复8个周期发送一个字节数据。
CPHA=1传输:
有些设备要求第一个SCK边沿传输第一个数据位到数据线上,第二个时钟边沿采样数据。这种模式下,需要在开始传输操作之前设置CPHA为1。
第一个SCK边沿在SSn为低的半个SCK时钟周期后出现。第一个时钟边沿使从SPI设备传输第一个数据位到数据线上。半个SCK周期之后,第二个SCK边沿出现,此边沿用于主设备和从设备锁存数据。当第三个边沿发生时,上一个收到的数据位移位到SPI移位寄存器(即16字节数据寄存器)。同时,下一位数据被发送到SPI数据线上。
SPI接口主模式的波特率由所述配置模块(SPICFG)的CLK(时钟)控制分频系数,将CPU时钟分频后产生。SPI接口从模式的波特率由外接的主模式控制,最快可支持两倍系统时钟频率。
结合附图1所示,所述支持主从模式的SPI接口,包括:一链路层,一控制寄存器,一配置寄存器,一状态寄存器,一从模式握手寄存器,一16字节数据寄存器,一并转串接口,一串转并接口。
所述链路层,从模式的时钟为SCKs,从模式的片选输入为SSnS;主模式的时钟为SCKm,主模式的片选输出为SSnm。
所述控制寄存器(SPICTRL),共8个bit(比特),从高到低依次是:DBC[2:0],IRQEN,BULKOP,SL_DBC_16,TXb,SCGO。
DBC[2:0],Data数据计数器,用于指示一个SPI接口周期发送接收的数据数量。数值范围0到15。传输的字节数等于所述控制寄存器设置的数值加1。
IRQEN,SPI中断允许。0:不允许SPI中断;1:允许SPI中断。
BULKOP,BULK(块操作)模式允许。BULKOP=0,传输结束后SPI_S无效;BULKOP=1,SSn将保持直到BULKOP=0操作完成。BULK仅支持主(Master)模式。
SL_DBC_16,从模式下有效,传输最大字节数为17个,包括16个数据字节和一个握手字节。
TXb,当SPI接口工作于半双工模式,只接收,将输出数据线置为零。
SCGO,SPI传输启动。SCGO=0,SPI接口传输未启动;SCGO=1,启动SPI接口传输。SPI接口传输过程中对此位的写入操作无效。所述控制寄存器的其他位在传输中可以被修改。
所述配置寄存器,共6个bit,从高到低依次是:SLAVE,LSB,CPHA,CPOL,CLKDIV[1:0]。
SLAVE,为主从模式选择。SLAVE=0:选择SPI接口主模式;SLAVE=1,选择SPI从模式。
LSB,为MSB/LSB选择。LSB=0,MSB(Most Significant Bit)先发送;LSB=1,LSB(Least Significant Bit)先发送。
CPHA,为时钟相位。
CPOL,为时钟极性,控制没有数据传输时空闲状态电平。CPOL=0,为空闲时,时钟低电平;CPOL=1,为空闲时,时钟高电平。
CLKDIV,为SPI接口主模式时钟分频系数。其中,
00B为CPU时钟;
01B为CPU时钟2分频;
10B为CPU时钟4分频;
11B为CPU时钟8分频。
所述状态寄存器,共2个bit,从高到低依次是:SPI_INT,SCIP。
SPI_INT,为SPI接口中断请求标志。SPI_INT=0,为无SPI接口中断请求;SPI_INT=1,为SPI接口中断请求发生。该位由硬件置位,软件清0。
SCIP,为SPI接口传输状态位。SCIP=0,为SPI接口不在传输中;SCIP=1,为SPI接口传输中。当软件设置所述控制寄存器的SCGO位为1时,硬件自动设置SCIP为1,直到传输完成。硬件自动对SCIP进行置位和清零操作,软件通过读取SCIP获得SPI接口传输状态,以确定是否可以安全的读取数据,进行下一个命令操作。仅当此位为0时,软件才可以操作下一个SPI接口指令。
所述从模式握手寄存器,共8个bit,为SPISLBUFF[7:0]。
SPISLBUFF[7:0],为SPI从握手数据/缓冲;用于SPI接口从模式轮询状态数据或SPI接口从模式传输缓冲。SPI从模式传输时,SPISLBUFF[7:0]作为第一个数据传输,所述16字节数据寄存器中数据寄存器SPIDATA0中寄存的数据作为第二个数据传输。
16字节数据寄存器,SPIDATA0~15,每个寄存器8个bit。
SPIDATA0~15是16个可寻址数据寄存器,是SPI接口最重要的组成部分,发送和接收共用。它是串行移位结构,发送时,数据寄存器0,数据寄存器1,数据寄存器2…数据寄存器15的内容依次串行发出。同时,接收到的数据依次刷新数据寄存器0即SPIDATA0,数据寄存器1即SPIDATA1,数据寄存器2即SPIDATA2…数据寄存器15即SPIDATA15的内容。
图1中,“MOSIm/MISOs”,表示所述并转串接口,作为SPI主模式使用时,为主模式输出,从模式输入;作为SPI从模式使用时,为主模式输入,从模式输出。
“MISOm/MOSIs”,表示所述串转并接口,作为SPI主模式使用时,为主模式输入,从模式输出;作为SPI从模式使用时,为主模式输出,从模式输入。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。

Claims (11)

1.一种支持主从模式的SPI接口,其特征在于,包括:
一链路层,用于数据输入和输出的传输;
一控制寄存器,与所述链路层相连接,用于配置收发数据字节数、中断使能、从设备16字节使能、输出全零使能和主模式传输启动;
一配置寄存器,与所述链路层相连接,用于配置主从模式选择、最高有效位MSB选择、最低有效位LSB选择、极性、相位和主模式时钟分频;
一状态寄存器,与所述链路层相连接,用于寄存操作完成标志和中断标志;
一从模式握手寄存器,其输入端与一串转并接口的输出端相连接,其输出端与一并转串接口的输入端相连接,仅在从模式下可见;同时作为一个字节的数据寄存器,用于寄存发送和接收从模式下,每次收发的首字节;
一16字节数据寄存器,其输入端与所述串转并接口的输出端相连接,其输出端与所述并转串接口的输入端相连接,为16个可寻址数据寄存器,发送和接收共用,每次发送数据的同时,接收新的数据;
所述并转串接口,与所述链路层相连接,用于将并行数据转换为串行数据;
所述串转并接口用于将串行数据转换为并行数据。
2.如权利要求1所述的SPI接口,其特征在于:所述配置寄存器在上电初始化过程中完成配置,在下电前不会二次更改。
3.如权利要求1所述的SPI接口,其特征在于:所述从模式握手寄存器用于存放上一笔数据收发完成标志。
4.如权利要求1所述的SPI接口,其特征在于:所述控制寄存器,共8个bit,从高到低依次是:DBC[2:0],IRQEN,BULKOP,SL_DBC_16,TXb,SCGO;其中,
DBC[2:0],为Data数据计数器,用于指示一个SPI接口周期发送接收的数据数量;数值范围为0到15;传输的字节数等于所述控制寄存器设置的数值加1;
IRQEN,为SPI中断允许;IRQEN=0,为不允许SPI中断;IRQEN=1,为允许SPI中断;
BULKOP,为块操作BULK模式允许;BULKOP=0,为传输结束后SPI_S无效;BULKOP=1,为从设备选择SSn将保持,直到BULKOP=0操作完成;块操作BULK仅支持主模式;
SL_DBC_16,为从模式下有效,传输最大字节数为17个,包括16个数据字节和一个握手字节;
TXb,当SPI接口工作于半双工模式,只接收,将输出数据线置为零;
SCGO,为SPI接口传输启动;SCGO=0,为SPI接口传输未启动;SCGO=1,为启动SPI接口传输;SPI接口传输过程中对此位的写入操作无效;所述控制寄存器的其他位在传输中可以被修改。
5.如权利要求1所述的SPI接口,其特征在于:所述配置寄存器,共6个bit,从高到低依次是:SLAVE,LSB,CPHA,CPOL,CLKDIV[1:0];其中,
SLAVE,为主从模式选择;SLAVE=0,为选择SPI接口主模式;SLAVE=1,为选择SPI从模式;
LSB,为最高有效位MSB/最低有效位LSB选择;LSB=0,MSB先发送;LSB=1,LSB先发送;
CPHA,为时钟相位;
CPOL,为时钟极性,控制没有数据传输时空闲状态电平;CPOL=0,为空闲时时钟低电平;CPOL=1,为空闲时时钟高电平;
CLKDIV,为SPI接口主模式时钟分频系数;其中,
00B为CPU时钟;
01B为CPU时钟2分频;
10B为CPU时钟4分频;
11B为CPU时钟8分频。
6.如权利要求1所述的SPI接口,其特征在于:所述状态寄存器,共2个bit,从高到低依次是:SPI_INT,SCIP;
SPI_INT,为SPI接口中断请求标志;SPI_INT=0,为无SPI接口中断请求;SPI_INT=1,为SPI接口中断请求发生;该位由硬件置位,软件清0;
SCIP,为SPI接口传输状态位;SCIP=0,为SPI接口不在传输中;SCIP=1,为SPI接口传输中。
7.如权利要求6所述的SPI接口,其特征在于:当软件设置所述控制寄存器的SCGO位为1时,硬件自动设置SCIP为1,直到传输完成;硬件自动对SCIP进行置位和清零操作,软件通过读取SCIP获得SPI接口传输状态,以确定是否能安全的读取数据,进行下一个命令操作;仅当此位为0时,软件才操作下一个SPI接口指令。
8.如权利要求1所述的SPI接口,其特征在于:所述从模式握手寄存器,共8个bit,表示为SPISLBUFF[7:0];SPISLBUFF[7:0]为SPI从握手数据或缓冲;用于SPI接口从模式轮询状态数据或SPI接口从模式传输缓冲;SPI从模式传输时,SPISLBUFF[7:0]作为第一个数据传输,所述16字节数据寄存器中数据寄存器SPIDATA0中寄存的数据作为第二个数据传输。
9.如权利要求1所述的SPI接口,其特征在于:所述16字节数据寄存器表示为,SPIDATA0~15,每个寄存器8个bit;SPIDATA0~15是16个可寻址数据寄存器,为串行移位结构,发送时,数据寄存器0,数据寄存器1,数据寄存器2…数据寄存器15的内容依次串行发出;同时,接收到的数据依次刷新数据寄存器0即SPIDATA0,数据寄存器1即SPIDATA1,数据寄存器2即SPIDATA2…数据寄存器15即SPIDATA15的内容。
10.如权利要求1所述的SPI接口,其特征在于:所述并转串接口,作为SPI主模式使用时,为主模式输出,从模式输入;作为SPI从模式使用时,为主模式输入,从模式输出。
11.如权利要求1所述的SPI接口,其特征在于:所述串转并接口,作为SPI主模式使用时,为主模式输入,从模式输出;作为SPI从模式使用时,为主模式输出,从模式输入。
CN201310684633.4A 2013-12-13 2013-12-13 支持主从模式的spi接口 Active CN104714908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310684633.4A CN104714908B (zh) 2013-12-13 2013-12-13 支持主从模式的spi接口

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310684633.4A CN104714908B (zh) 2013-12-13 2013-12-13 支持主从模式的spi接口

Publications (2)

Publication Number Publication Date
CN104714908A CN104714908A (zh) 2015-06-17
CN104714908B true CN104714908B (zh) 2017-12-19

Family

ID=53414258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310684633.4A Active CN104714908B (zh) 2013-12-13 2013-12-13 支持主从模式的spi接口

Country Status (1)

Country Link
CN (1) CN104714908B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068963A (zh) * 2015-07-24 2015-11-18 北京兆易创新科技股份有限公司 串行收发控制电路及方法
CN106712807A (zh) * 2017-01-22 2017-05-24 安徽大恒能源科技有限公司 一种用于电池板监控系统的16种频率数据传输方法
TW201915818A (zh) * 2017-10-05 2019-04-16 香港商印芯科技股份有限公司 光學識別模組
TWI687815B (zh) * 2018-12-10 2020-03-11 大陸商北京集創北方科技股份有限公司 資料發送方法、具有序列周邊介面之從屬裝置及資訊處理裝置
CN111966623A (zh) * 2020-07-14 2020-11-20 西安爱生无人机技术有限公司 Mcu与多个fpga使用spi进行实时全双工可靠通信的方法
CN111857594A (zh) * 2020-07-22 2020-10-30 苏州元璟半导体技术有限公司 一种基于软件服务的外部存储器接口及其使用方法
CN112565036B (zh) * 2020-11-24 2022-08-30 炬芯科技股份有限公司 数据传输方法、装置、存储介质及通信系统
CN112559426A (zh) * 2020-12-15 2021-03-26 广州智慧城市发展研究院 数据传输方法、接口电路以及装置
CN112765079A (zh) * 2021-01-20 2021-05-07 四川长虹电器股份有限公司 一种适应多种不同设备的spi总线控制方法
CN115168282B (zh) * 2022-09-08 2022-12-02 江西萤火虫微电子科技有限公司 总线协议上配置数据处理方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588337A (zh) * 2004-09-15 2005-03-02 北京中星微电子有限公司 串行通信总线外部设备接口
CN1851682A (zh) * 2006-03-28 2006-10-25 华为技术有限公司 一种串行外设接口的实现方法
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631232B2 (en) * 2007-09-28 2009-12-08 Inventec Corporation Parallel burning system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588337A (zh) * 2004-09-15 2005-03-02 北京中星微电子有限公司 串行通信总线外部设备接口
CN1851682A (zh) * 2006-03-28 2006-10-25 华为技术有限公司 一种串行外设接口的实现方法
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种实用的多通道SPI接口设计;陈耿;《舰船电子工程》;20130420;全文 *
基于MCUIP核的SPI接口ASIC设计及实现;苏伟禄等;《中国集成电路》;20111005;全文 *

Also Published As

Publication number Publication date
CN104714908A (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
CN104714908B (zh) 支持主从模式的spi接口
CN202870808U (zh) 一种spi串口模块的fpga实现装置
CN102023956B (zh) 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN104794088B (zh) 一种多接口总线转换扩展芯片设计
CN101087235A (zh) 一种基于fpga的多功能通信接口转换设备和方法
CN104424154B (zh) 通用串行外围接口
CN104142900A (zh) 一种通信接口转换装置
CN102243619A (zh) 一种基于fpga实现多路i2c总线端口扩展的方法
CN104156333A (zh) 一种基于fpga的uart多接口扩展系统和方法
WO2017011621A1 (en) Spi interface with less-than-8-bit bytes and variable packet size
CN106933772A (zh) 基于uart ip核的sci通讯方法
CN102523310A (zh) 多功能hart通信接口
CN106789496A (zh) 一种用于运载火箭的光纤惯组1553b通讯接口电路
CN107643993A (zh) 总线转换接口、总线转换接口的工作方法和通信设备
CN106066838A (zh) 基于fpga多路uart的扩展模件及扩展方法
CN201336032Y (zh) 一种软件模拟串行数据传输装置
CN205103813U (zh) 一种基于PCI接口的SpaceWire总线节点通讯模块
CN206757602U (zh) 一种基于SoC支持多个SPI接口标准组的装置
CN103067240A (zh) 四路串行总线与四路can总线转换电路
CN105718410B (zh) 一种基于fpga的lpc与spi及i2c转换适配器及其实现方法
CN102123068A (zh) 一种交调仪多总线通信系统
CN202406141U (zh) 一种防火墙
CN208128284U (zh) 一种基于s698pm的以太网转多路同步串口接口通讯设备
CN205091734U (zh) 一种基于CPCI接口的SpaceWire总线节点通讯模块
CN105306421A (zh) 一种基于pci-e接口的信号处理方法及信号处理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant