CN112559424A - 一种三线spi通信系统和方法 - Google Patents
一种三线spi通信系统和方法 Download PDFInfo
- Publication number
- CN112559424A CN112559424A CN201910850568.5A CN201910850568A CN112559424A CN 112559424 A CN112559424 A CN 112559424A CN 201910850568 A CN201910850568 A CN 201910850568A CN 112559424 A CN112559424 A CN 112559424A
- Authority
- CN
- China
- Prior art keywords
- slave
- master
- port
- output
- input
- 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.)
- Withdrawn
Links
Images
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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种三线SPI通信系统,包括主设备和从设备;所述主设备和从设备通过三根SPI通信线连接,这三根线分别是CS片选线,SCLK时钟线,以及SDA数据线;所述主设备内设置时钟发生器,该时钟发生器的输出端口与SCLK时钟线引脚连接;所述SDA数据线分时传输数据,在按照以下两种方式择一的传输数据:在SCLK时钟线的上升沿执行主设备输出从设备输入,在SCLK时钟线的下降沿执行主设备输入从设备输出;或在时钟信号的上升沿执行主设备输入从设备输出,下降沿执行从设备输入主设备输出;本方案通讯线路减少到3条,从而使主从设备之间物理连接被大大简化。
Description
技术领域
本申请属于电数据处理领域,特别涉及一种数据信息传送或交换方法的改机。
背景技术
标准的SPI通信采用4个IO口来通信,但专用芯片IO口资源太多。传统的SPI总线是四线总线,包括MISO主设备数据输入,从设备数据输出;MOSI,主设备数据输出,从设备数据输入;SCLK 时钟信号,由主设备产生;CS 从设备使能信号,由主设备控制。与从设备交换数据时主设备首先会通过CS片选信号选择一个想要与其通讯的设备,然后在SCLK时钟信号的控制下通过数据线发送和接受数据,主设备会控制整个通讯过程。如果从设备较多,主设备与从设备的连接线就会随从设备的增多而增多,这大大增加了连接的复杂度。在一些应用场合需要为总线增加长线驱动器或是隔离器以增强系统的远程通讯能力或可靠性,如果能够减少串行通讯的总线数量无疑将很有意义。
发明内容
为解决上述技术问题本发明提供一种三线SPI通信系统,其包括主设备和从设备;所述主设备和从设备通过三根SPI通信线连接,这三根线分别是CS片选线,SCLK时钟线,以及SDA数据线;
所述主设备内设置时钟发生器,该时钟发生器的输出端口与SCLK时钟线引脚连接;
所述SDA数据线分时传输数据,在按照以下两种方式择一的传输数据:在SCLK时钟线的上升沿执行主设备输出从设备输入,在SCLK时钟线的下降沿执行主设备输入从设备输出;或在时钟信号的上升沿执行主设备输入从设备输出,下降沿执行从设备输入主设备输出。
按照上述方案,相当于将四线SPI协议中的MOSI线和MISO线经过分时复用整合到一根数据线中,并且在上升沿执行MOSI在下降沿执行MISO即在同一时钟周期的不同时期同时执行了发送和接收动作,相对于传统的SPI协议并没有损失传输速率。
优选地,所述主设备为MCU,所述MCU包括分别与所述CS片选线,SCLK时钟线和SDA数据线连接的IO端口引脚;
所述MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线和CS片选线的信号。
优选地,MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线的步骤包括:
1)初始化SPI协议参数;
2)将SDA引脚电平设置为待发送数据位的电平信号;
3)将时钟信号设置为高电平;
4)将时钟信号设置为低电平;
5)将所述SDA引脚电平作为接收数据位。
优选地,MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线的步骤包括:
1)初始化SPI协议参数;
2)将SDA引脚电平设置为待发送数据位的电平信号;
3)将时钟信号设置为低电平;
4)将时钟信号设置为高电平;
5)将所述SDA引脚电平作为接收数据位。
优选地,所述主设备内设置主设备移位寄存器,所述从设备内设置从设备移位寄存器;
所述主设备移位寄存器和从设备寄存器的输出端和输入端分别连接主设备SDA引脚和从设备SDA引脚;
所述主设备和从设备为16位移位寄存器,所述16位移位寄存器每间隔一位设置为有效位。
优选地,所述主设备内设置第一开关电路连接,所述从设备内设置第二开关电路;
所述主设备的移位寄存器的输入和输出端口分别与第一开关电路的第一端口和第二端口连接,第一开关电路的第三端口与SDA引脚连接;
所述从设备的移位寄存器的输入和输出端口分别与第二开关电路的第一端口连接和第二端口连接,第二开关电路的第三端口与SDA引脚连接;;
在MISO模式下时所述主设备输入从设备输出,所述第一开关电路和第二开关电路共同作用,将所述第二移位寄存器的输出端口与第一移位寄存器的输入端口连接;
在MOSI模式下所述从设备输入主设备输出,所述第一开关电路和第二开关电路共同作用,将所述移第一位寄存器输出口与第二移位寄存器的输出端口连接。
优选地,在MISO模式下所述第一开关电路和第二开关电路的第一端口和第三端口导通;在MOSI模式下所述第一开关电路和第二开关电路第二端口与第三端口导通。
优选地,所述所述开关电路的驱动信号为时钟信号。
本发明还提供一种三线SPI的通信方法,包括步骤:
拉低CS片选信号;
在时钟信号上升沿执行主设备输入从设备输出,在时钟信号的下降沿执行从设备输入主设备输出。
本发明还提供另一种三线SPI的通信方法,包括步骤:
拉低CS片选信号;
在时钟信号的下降沿执行主设备输出从设备输入,在时钟信号的上升沿执行从设备输出主设备输入。
本发明将MISO主设备数据输入从设备数据输出;MOSI主设备数据输出从设备数据输入,两条线进行时分复用合并为一条,在保留SPI四线完整功能的基础上,将通讯线路减少到3条,从而使主从设备之间物理连接被大大简化。由于主从之间的通讯线路数量的减少使得主从设备之间的隔离与驱动的成本大为降低。
附图说明
图1是主从设备连接方式示意图。
图2是主从设备通过硬件实现分时传输信号的一种实现方式。
图3是通信协议时序信号说明图。
图4是图3中通信协议说明示意图。
具体实施方式
参照图1所述SPI通信系统包括主设备和从设备,所述主设备和从设备之间为三根SPI通信线连接,这三根根线分别是CS片选线,SCLK时钟线,以及SDA数据线;所述主设备MASTER内设置时钟发生器MCG,该时钟发生器的输出端口与SCLK时钟线引脚连接;所述时钟发生器可通过软件模拟,也可以是硬件时钟发生器。所述CS片选信号线为从设备SPI使能信号线,在传输数据时,主设备首先将该CS片选信号线上的电平拉低,使得相应的从设备进入数据传输状态。所述从设备的可以为一个或多个,当从设备为多个时每个从设备的CS片选信号线都要与主设备的IO端口连接,主设备控制不同的端口可控制不同从设备通信。
所述SDA数据线分时传输数据,SDA数据线按照以下两种方式择一的传输数据:在时钟总线的上升沿执行主设备输出从设备输入从设备输入,在数据总线的的下降沿执行主设备输入从设备输出;或在时钟信号的上升沿执行主设备输入从设备输出,下降沿执行从设备输入主设备输出。
所述SDA传输数据可通过软件模拟或硬件的形式实现,以下分别对这两种情况介绍。
使用软件模拟时所述主设备为MCU,所述MCU包括分别与所述CS片选线SCLK时钟线和SDA数据线连接的IO端口引脚。MCU可通过指令控制所述CS片选线、SCLK时钟线和SDA数据线的电平信号。所述MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线和CS片选线的信号。
当MCU按照在SCLK时钟线的上升沿执行主设备MASTER输出从设备SLAVE输入,在SCLK时钟信号的下降沿执行主设备输入从设备输出;这种方法收发数据时
MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线的步骤包括:
1)初始化SPI协议参数;
2)将SDA引脚电平设置为待发送数据位的电平信号;
3)将时钟信号SCLK引脚设置为高平;
4)将化时钟信号SCLK引脚为低电平;
5)将所述SDA引脚电平作为接收数据的位。
重复所述步骤2)-5)8次,即完成一次数据交换,相当于完成一次四线SPI协议中主设备和从设备移位寄存器的数据交换过程。
在所述步骤1)中初始化SPI协议参数包括,初始化时钟极性和相位以确定上升沿或下降沿收发数据。
在所述步骤3)中所述SLCK设置为高电平后,主设备发送数据所述从设备接收数据,在步骤4)中所述SCLK被设置为低电平所述从设备发送数据主设备接收数据。
当MCU按照或在时钟信号的上升沿执行主设备输入从设备输出,下降沿执行从设备输入主设备输出;这种方法收发数据时,MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线的步骤包括:
1)初始化SPI协议参数;
2)将SDA引脚电平设置为待发送数据的位电平信号;
3)将时钟信号设置为低平;
4)将化时钟信号为低电平;
5)将所述SDA引脚电平作为接收数据的位。
重复所述步骤2)-5)8次,即完成一次数据交换,相当于完成一次四线SPI协议中主设备和从设备移位寄存器的数据交换过程。在所述步骤1)中初始化SPI协议参数包括,初始化时钟极性和相位以确定上升沿或下降沿收发数据。
在上述方案中从设备也可为MCU模拟SPI通信或硬件支持SPI通信。
参照图2使用硬件实现SPI协议时在所述主设备MASTER内设置时钟发生器MCG和移位寄存器MSR,所述主设备内的时钟发生器MCG的输出端与SCLK数据线连接,时钟发生器MCG提供所述移位寄存器MSR移位信号。
所述从设备SLAVE内设置从设备移位寄存器SSR,所述主设备MASTER寄存器MSR和从设备寄存器SSR的输出端分别连接主设备SDA引脚和从设备SDA引脚。
所述移位寄存器为16位移位寄存器,所述16位移位寄存器没间隔1位为有效位,该有效位为存储实际发送的8位数据,参照图中箭头向下对应的位,这些有效位的数据来自缓存器;在图中主设备有效位从左起第二个为最高位,每隔一位为有效位。所述主设备的有效位对应于从设备的读取位,参照图中箭头向上对应的位,经过一个数据传输周期,所述主设备的有效位全部转移到从设备的读取位,从设备的有效位全部转移至主设备读取位。上述设置将有效位隔开设置的目的在于防止移位寄存器移动过程中丢失有效数据。
所述主设备内设置第一开关电路连接MST,所述从设备内设置第二开关电路SST;所述主设备的移位寄存器MSR的输入和输出端口分别与第一开关电路的第一端口MP1和第二端口MP2连接,第一开关电路MST的第三端口与SDA引脚连接;所述第一电路开关MST和第二电路开关MST分别与时钟发生器MCG连接。所述主设备移位寄存器包括16触发器t,其中没间隔1位的触发器的输出单元代表1个数据有效位对应于箭头向下的位置。间隔设置8个有效位的目的在于,所述主从设备通信时所述主从设备的移位寄存器交替通过SDA数据线串联,在移动方向的末端数据位被移除而间隔设置有效位能够有效避免有效数据被移除的情况,经过8个时钟周期主从设备的有效位数据完全交换,达到了与四线SPI通信相同的数据交换效果。在完成数据交换后,有效数据到达非有效位,对应图中箭头向上的位置。
所述从设备的移位寄存器SSR输出和输入端口分别与第二开关电路的第一端口MP1连接和第二端口MP2连接;可选的所述移位寄存器SSR的高位为输出端低位为输入端。
在MISO模式下时所述主设备输入从设备输出,所述第一开关电路MST和第二开关电路SST共同作用,两开开关电路导通MP1和MP3端口都导通,所述第二移位寄存器的输出端口与第一移位寄存器的输入端口连接。
在MOSI模式下时所述主设备输出从设备输入,所述第一开关电路MST和第二开关电路SST共同作用,两开挂开关电路导通MP2和MP3都导通,所述第一移位寄存器MSR的输出端口与第二移位寄存器SSR的输入端口连接,如图3中所示的连接状态;
所述第一、第二开关电路被时钟信号驱动,在上时钟上升沿导通MP1端口和MP3端口,在下降沿导通MP2端口和MP3;或在上时钟上升沿导通MP2端口和MP3端口,在下降沿导通MP1端口和MP3。
数据从主设备移位寄存器MSR向从设备移位寄存器SSR移动,值得注意的是从设备移位寄存器的最高位被移除,在本实施例中将所述从设别的最高为设置为非有效位,即在主设备输出从设备输入时移位寄存器的有效数据不会损失。
在本实施例中的图2和图3中需要先行执行了MISO,因为此主设备的最高为数据为非有效数据被移除对有效数据没有影响,即在从设备输出主设备输入时移位寄存器的有效数据不会损失。显然可调整所述主从设备的有效位位置,即可先行进行MOSI操作。另外所述有效位和非有效位可以通过协议定义,所述有效位用于数据交换,所述非有效位用于数据交换后的输出存储、处理等过程。
参照图4其为电性的数据传输过程中的时序信号,其中可包括多个数据位,其中RW代表读写指令A0-A6代表读写地址DI数据代表读写数据。其中T1两次SPI访问时间大于250ns,T2a和T2b为CS和SCLK间隔大于41.5ns,T3为地址和数据之间间隔,T4为高地位数据间隔,T5为时钟周期。
Claims (10)
1.一种三线SPI通信系统,其包括主设备和从设备;其特征在于,所述主设备和从设备通过三根SPI通信线连接,这三根线分别是CS片选线,SCLK时钟线,以及SDA数据线;
所述主设备内设置时钟发生器,该时钟发生器的输出端口与SCLK时钟线引脚连接;
所述SDA数据线分时传输数据,其按照以下两种方式择一的传输数据:在SCLK时钟线的上升沿执行主设备输出从设备输入,在SCLK时钟线的下降沿执行主设备输入从设备输出;或在时钟信号的上升沿执行主设备输入从设备输出,下降沿执行从设备输入主设备输出。
2.如权利要求1所述的一种三线SPI通信系统,其特征在于,所述主设备为MCU,所述MCU包括分别与所述CS片选线,SCLK时钟线和SDA数据线连接的IO端口引脚;
所述MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线和CS片选线的信号。
3.如权利要求2所述的一种三线SPI通信系统,其特征在于,MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线的步骤包括:
1)初始化SPI协议参数;
2)将SDA引脚电平设置为待发送数据位的电平信号;
3)将时钟信号设置为高电平;
4)将时钟信号设置为低电平;
5)将所述SDA引脚电平作为接收数据位。
4.如权利要求2所述的一种三线SPI通信系统,其特征在于,MCU通过控制所述IO端口引脚电平,模拟SDA数据线,SCLK时钟线的步骤包括:
1)初始化SPI协议参数;
2)将SDA引脚电平设置为待发送数据位的电平信号;
3)将时钟信号设置为低电平;
4)将时钟信号设置为高电平;
5)将所述SDA引脚电平作为接收数据位。
5.如权利要求1所述的一种三线SPI通信系统,其特征在于,所述主设备内设置主设备移位寄存器,所述从设备内设置从设备移位寄存器;
所述主设备移位寄存器和从设备寄存器的输出端和输入端分别连接主设备SDA引脚和从设备SDA引脚;
所述主设备和从设备为16位移位寄存器,所述16位移位寄存器每间隔一位设置为有效位。
6.如权利要求5所述的一种三线SPI通信系统,其特征在于,所述主设备内设置第一开关电路连接,所述从设备内设置第二开关电路;
所述主设备的移位寄存器的输入和输出端口分别与第一开关电路的第一端口和第二端口连接,第一开关电路的第三端口与SDA引脚连接;
所述从设备的移位寄存器的输入和输出端口分别与第二开关电路的第一端口连接和第二端口连接,第二开关电路的第三端口与SDA引脚连接;;
在MISO模式下时所述主设备输入从设备输出,所述第一开关电路和第二开关电路共同作用,将所述第二移位寄存器的输出端口与第一移位寄存器的输入端口连接;
在MOSI模式下所述从设备输入主设备输出,所述第一开关电路和第二开关电路共同作用,将所述移第一位寄存器输出口与第二移位寄存器的输出端口连接。
7.如权利要求6所述的一种三线SPI通信系统,其特征在于,在MISO模式下所述第一开关电路和第二开关电路的第一端口和第三端口导通;在MOSI模式下所述第一开关电路和第二开关电路第二端口与第三端口导通。
8.如权利要求7所述的一种三线SPI通信系统,其特征在于,所述所述开关电路的驱动信号为时钟信号。
9.一种三线SPI的通信方法,其特征在于包括:
拉低CS片选信号;
在时钟信号上升沿执行主设备输入从设备输出,在时钟信号的下降沿执行从设备输入主设备输出。
10.一种三线SPI的通信方法,其特征在于包括:
拉低CS片选信号;
在时钟信号的下降沿执行主设备输出从设备输入,在时钟信号的上升沿执行从设备输出主设备输入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910850568.5A CN112559424A (zh) | 2019-09-10 | 2019-09-10 | 一种三线spi通信系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910850568.5A CN112559424A (zh) | 2019-09-10 | 2019-09-10 | 一种三线spi通信系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559424A true CN112559424A (zh) | 2021-03-26 |
Family
ID=75028725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910850568.5A Withdrawn CN112559424A (zh) | 2019-09-10 | 2019-09-10 | 一种三线spi通信系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559424A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251403A (zh) * | 2023-11-08 | 2023-12-19 | 北京紫光芯能科技有限公司 | 一种spi协议主从设备的通讯模式配置方法及装置 |
-
2019
- 2019-09-10 CN CN201910850568.5A patent/CN112559424A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251403A (zh) * | 2023-11-08 | 2023-12-19 | 北京紫光芯能科技有限公司 | 一种spi协议主从设备的通讯模式配置方法及装置 |
CN117251403B (zh) * | 2023-11-08 | 2024-05-14 | 北京紫光芯能科技有限公司 | 一种spi协议主从设备的通讯模式配置方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101329663B (zh) | 一种实现片上系统管脚分时复用的装置及方法 | |
US7778814B2 (en) | Method and device for simulating an automation system | |
CN101588285A (zh) | 一种非透明传输的实现方法、非透明桥和通信系统 | |
CN109407574B (zh) | 一种多总线可选择输出控制装置及其方法 | |
JPS6239580B2 (zh) | ||
CN115659906A (zh) | 一种芯片验证系统、方法及相关设备 | |
CN112559424A (zh) | 一种三线spi通信系统和方法 | |
CN102279826A (zh) | 一种串口复用装置 | |
CN219574799U (zh) | 一种基于amba总线的多总线桥接器及其片上系统 | |
CN209118268U (zh) | 一种高鲁棒性spi总线驱动电路 | |
CN102929828B (zh) | 同时支持标准和非标准i2c接口的数据传输方法及装置 | |
US7395197B2 (en) | Verification method and system for logic circuit | |
CN214480671U (zh) | 一种基于spi通讯的一对多通讯电路 | |
CN110008162A (zh) | 一种缓冲接口电路及基于该电路传输数据的方法和应用 | |
CN112506839B (zh) | 一种一对多spi总线切换方法及装置 | |
CN201378316Y (zh) | 通用输入/输出接口扩展电路和具有该电路的移动终端 | |
CN210983388U (zh) | 一种可一路转多路pci-e和pci总线接口的板卡 | |
JPS6361533A (ja) | シリアルデ−タ転送装置 | |
CN117056274B (zh) | 一种用于单核处理器的并行数据通信架构及方法 | |
JPWO2008044486A1 (ja) | 多局通信装置 | |
JP2893897B2 (ja) | シリアル入出力装置 | |
CN114546925B (zh) | 一种适用于高速相机的多设备通信装置及方法 | |
CN112434483B (zh) | 数据传输系统的生成方法和数据传输系统 | |
CN115658584A (zh) | 一种基于令牌环的spi背板总线通信方法 | |
JP2004334551A (ja) | シリアル通信システム及びシリアル通信用ローカル端末 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210326 |
|
WW01 | Invention patent application withdrawn after publication |