CN114528235A - 一种基于spi的通信方法、从设备及系统 - Google Patents

一种基于spi的通信方法、从设备及系统 Download PDF

Info

Publication number
CN114528235A
CN114528235A CN202210071877.4A CN202210071877A CN114528235A CN 114528235 A CN114528235 A CN 114528235A CN 202210071877 A CN202210071877 A CN 202210071877A CN 114528235 A CN114528235 A CN 114528235A
Authority
CN
China
Prior art keywords
pin
data
level
slave device
sent
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
CN202210071877.4A
Other languages
English (en)
Other versions
CN114528235B (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.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network 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 Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN202210071877.4A priority Critical patent/CN114528235B/zh
Priority claimed from CN202210071877.4A external-priority patent/CN114528235B/zh
Publication of CN114528235A publication Critical patent/CN114528235A/zh
Application granted granted Critical
Publication of CN114528235B publication Critical patent/CN114528235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种基于SPI的通信方法、从设备及系统,该方法包括:当需要向主设备发送数据时,从设备改变INT管脚的电平,以使所述主设备改变CS管脚的电平;其中,所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据;当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平。本发明能在现有技术主从设备之间管脚连接数量大的情况下,仅利用主从设备间五线管脚连接的方案,实现主从设备之间SPI的全双工通信,节约了管脚硬件资源。

Description

一种基于SPI的通信方法、从设备及系统
技术领域
本发明属于通信领域,特别涉及一种基于SPI的通信方法、从设备及系统。
背景技术
随着电子设备的不断升级迭代,单个微控制单元以及无法满足性能的要求,很多场景下都引入了多个微控制单元协同处理的方案。而多个微控制单元之间通讯,则是通过SPI(SerialPeripheral Interface,串行外设接口)通信协议来实现的,由于SPI通信技术是全双工通信的,现有技术中SPI通信通过微控制单元的四个管脚来实现,但四个管脚实现的SPI通信方法存在从设备不能主动发送数据,要由主设备定时发送空包数据,从设备才能往外部发送数据被主设备来读取。
为了解决上述问题,使得能够实现多个微控制单元协同处理,普遍采用较多额外的GPIO(General-purposeintput/output)管脚来进行数据双向高速、稳定的传输,而额外增加四个辅助管脚会导致管脚资源紧张,消耗较大的空间,对于PCB的布局十分不便。
现有的方案存在着需要较多额外的管脚的缺点,比较浪费硬件资源,且缺乏应答机制确认主设备是否接收到数据,因此本领域技术人员有动机开发一种基于SPI的通信方法。
发明内容
本发明所要解决的技术问题在于,提供了一种基于SPI的通信方法,利用较少管脚的硬件资源,降低主从设备的工作量,提高了传输效率。
为了解决上述技术问题,本发明提供了一种基于SPI的通信方法,包括:
当需要向主设备发送数据时,从设备改变INT管脚的电平,以使所述主设备改变CS管脚的电平;其中,所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据;
当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平。
进一步地,所述当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据,具体为:
当侦测到所述CS管脚的电平发生改变后,所述从设备将待发送数据打包成若干份数据包,将数据包存入从设备SPI硬件寄存器中;
每当一份数据包存入从设备SPI硬件寄存器中时,所述从设备通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后所述从设备将加载预设的中断处理函数,从而恢复MISO管脚的电平。
进一步地,所述当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平,具体为:
当确定无需向所述主设备发送数据时,所述从设备写入一份空包数据存于从设备SPI硬件寄存器中,并恢复所述INT管脚的电平。
进一步地,当侦测到所述CS管脚的电平发生改变后,所述从设备还可以通过控制Ready管脚的电平,向所述主设备发送待发送数据;其中,所述主设备与所述从设备之间还连接有Ready管脚。
同时,本发明还提供一种基于SPI的从设备,包括:管脚电平控制模块和数据发送模块;其中,所述从设备与主设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
所述管脚电平控制模块用于当需要向主设备发送数据时,改变INT管脚的电平,以使所述主设备改变CS管脚的电平;以及用于当确定无需向所述主设备发送数据时,恢复所述INT管脚的电平;
所述数据发送模块用于当侦测到所述CS管脚的电平发生改变后,通过控制MISO管脚的电平,向所述主设备发送待发送数据。
进一步地,所述数据发送模块用于当侦测到所述CS管脚的电平发生改变后,通过控制MISO管脚的电平,向所述主设备发送待发送数据,具体为:
所述数据发送模块用于当侦测到所述CS管脚的电平发生改变后,将待发送数据打包成若干份数据包,将数据包存入从设备SPI硬件寄存器中;
每当一份数据包存入从设备SPI硬件寄存器中时,通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后将加载预设的中断处理函数,从而恢复MISO管脚的电平;
其中,所述数据发送模块每当发送一份数据包至所述主设备,通过MOSI接收所述主设备发送的一包空包数据。
进一步地,所述管脚电平控制模块用于当确定无需向所述主设备发送数据时,恢复所述INT管脚的电平,具体为:
所述管脚电平控制模块用于当确定无需向所述主设备发送数据时,写入一份空包数据存于从设备SPI硬件寄存器中,并恢复所述INT管脚的电平。
同时,本发明还提供一种基于SPI的通信系统,包括主设备和从设备;所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
所述从设备执行如上所述任意一项的基于SPI的通信方法。
进一步地,包括以下步骤:
当所述主设备有待发送数据给从设备时,所述主设备改变所述CS管脚的电平;
所述从设备侦测到所述CS管脚的电平发生改变后,控制所述MISO管脚的电平;
所述主设备将待发送数据打包成待若干份数据包,将数据包存入主设备SPI硬件寄存器中;
每当一份数据包存入主设备SPI硬件寄存器中时,所述主设备将数据包通过所述MOSI管脚发送至所述从设备,发送结束后所述主设备恢复CS电平,直至所有数据包都发送给从设备;
每当发送一份数据包至所述从设备,所述主设备通过MISO接收所述从设备发送的一包空包数据。
进一步地,还包括以下步骤:
当所述从设备有待发送数据给主设备时,所述从设备改变所述INT管脚的电平,以使所述主设备改变CS管脚的电平;
所述从设备侦测到所述CS管脚的电平发生改变后,将待发送数据打包成待若干份数据包,将数据包存入从设备SPI硬件寄存器中;
每当一份数据包存入从设备SPI硬件寄存器中时,所述从设备通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后所述从设备将加载预设的中断处理函数,从而恢复MISO管脚的电平;
每当发送一份数据包至所述主设备,所述从设备通过MOSI接收所述主设备发送的一包空包数据;
当确定无需向所述主设备发送数据时,所述从设备写入一份空包数据存于从设备SPI硬件寄存器中,并恢复所述INT管脚的电平。
实施本申请实施例,具有如下的有益效果:
本发明提供的一种基于SPI的通信方法,与现有技术相比,仅额外增加了一个INT管脚,实现主从设备之间的无线通信,便能实现主从设备之间SPI的全双工通信,节约了管脚硬件资源,且依据INT管脚的电平变化,使得主设备做出响应,即可实现从设备主动发送数据来由主设备读取,从而使数据传输的效率明显提高。
进一步地,本发明所提供的基于SPI主从设备间的通信方法,使得主从设备间的工作量,使数据传输的效率明显提高,主设备无需定时发送空包数据才能读取从设备往外部发送数据,从设备可直接依据INT管脚来实现数据包主动发送,同时还具备利用电平信号的恢复来达到确认主设备是否接收到数据的应答机制。
附图说明
图1是本发明实施例所提供的一种基于SPI的通信方法的步骤流程图;
图2是本发明实施例所提供的一种基于SPI的通信方法的时序图;
图3是本发明实施例所提供的一种基于SPI的通信方法中主设备和从设备之间的连接结构图;
图4是本发明实施例所提供的一种基于SPI的从设备的结构图;
图5是本发明实施例所提供的一种基于SPI的通信系统的主设备发送数据的步骤流程图;
图6是本发明实施例所提供的一种基于SPI的通信系统的主设备发送数据的时序图;
图7是本发明实施例所提供的一种基于SPI的通信系统的从设备发送数据的步骤流程图;
图8是本发明另实施例所提供的一种基于SPI的通信系统的主从设备间六线接法的连接结构图;
图9是本发明另实施例所提供的一种基于SPI的通信系统的六线接法的主设备发送数据的步骤流程图;
图10是本发明另实施例所提供的一种基于SPI的通信系统的六线接法的主设备发送数据的时序图;
图11是本发明另实施例所提供的一种基于SPI的通信系统的六线接法的从设备发送数据的步骤流程图;
图12是本发明另实施例所提供的一种基于SPI的通信系统的六线接法的从设备发送数据的时序图;
图13是本发明实施例所提供的一种基于SPI的通信系统的五线接法的主从设备间发送数据的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下将结合本发明中的附图,对本发明实施例中的技术方案进行进一步详细说明。显然,此所描述的实施例仅是本发明一部分实施例,而不是全部实施例,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所用其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1,其是本发明实施例提供的一种基于SPI的通信方法,包括以下步骤:
S101:当需要向主设备发送数据时,从设备改变INT管脚的电平,以使所述主设备改变CS管脚的电平;其中,所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚。
请参阅图2和图3,CS管脚为片选信号管脚,CLK管脚为时钟管脚,MOSI管脚为主设备输出管脚,MISO管脚为从设备输出管脚,INT管脚为主从设备间其中额外连接的GPIO管脚,INT管脚用于触发中断信号,主从设备包括但不限于MCU芯片、单片机等SPI处理器芯片。
在实际情况中,根据不同的SPI处理器芯片,各个管脚的电平拉高或拉低的情况有所不同,但其本质仍是触发该管脚的电平发生变化。
在本实施例中,从设备无法触发传输时序,只能由主设备触发传输时序,所以当从设备需要向主设备发送数据时,需要从设备拉低INT管脚的电平,以使所述主设备拉低CS管脚的电平。
S102:当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据。
具体地,当侦测到所述CS管脚的电平发生改变后,所述从设备将待发送数据打包成若干份数据包,将数据包存入从设备SPI硬件寄存器03中,需要说明的是,本实施例提到的数据包指的是SPI硬件单次传输所能传的最大数据量,为了提高传输效率,每次都是满包传输,假如在最后一次是不能满包的话,则将剩余的数据作为一个数据包进行传输。
请参阅图2和图3,在本实施例中,当从设备侦测到所述CS管脚的电平拉低后,待发送数据存储于从设备缓冲区04中,在从设备缓冲区04中将待发送的数据打包成若干份数据包,每次将一份数据包存入从设备SPI硬件寄存器03中。
每当一份数据包存入从设备SPI硬件寄存器03中时,所述从设备通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后所述从设备将加载预设的中断处理函数,从而恢复MISO管脚的电平。
在本实施例中,每当一份数据包存入从设备SPI硬件寄存器03中时,从设备通过拉低MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备中,如图2所示,发送结束后从设备将加载预设的中断处理函数,从而拉高MISO管脚的电平,拉高MISO管脚的电平是为了让主设备知道从设备已经发送数据完毕,主设备不能再从从设备处读取数据。
在本实施例中,主设备每接收完从设备发送的一份数据包后都会拉高CS管脚的电平,而从设备每发送完一份数据包后都会拉高MISO管脚,当下一份数据包存入从设备SPI硬件寄存器中时,从设备通过拉低MISO管脚的电平,触发主设备拉低CS管脚,从而实现下一个数据包的发送。
进一步地,每当发送一份数据包至所述主设备,所述从设备通过MOSI接收所述主设备发送的一包空包数据。
SPI通信为全双工通信,即每当从设备于MISO管脚发送一份数据包至主设备,主设备也会于MOSI管脚发送一份数据包至从设备,该过程是根据不同的管脚而同时进行的,且从设备发送的数据包大小与主设备发送的数据包大小均相同,当从设备通过MISO管脚向主设备发送数据的过程中,而主设备也有可能往从设备发送的是空包数据。
S103:当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平。
具体地,当确定无需向所述主设备发送数据时,所述从设备写入一份空包数据存于从设备SPI硬件寄存器03中,并恢复所述INT管脚的电平。
请参阅图2和图3,在本实施例中,当所有的数据包发送完毕后,所述从设备写入一份空包数据存于从设备SPI硬件寄存器03中,发送至主设备,来表示当前已无数据发送,同时拉高INT管脚的电平。
同时,请参阅图3和图4,本发明还提供一种基于SPI的从设备,包括:管脚电平控制模块201和数据发送模块202;其中,所述从设备与主设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚。
管脚电平控制模块201用于当需要向主设备发送数据时,改变INT管脚的电平,以使所述主设备改变CS管脚的电平;以及用于当确定无需向所述主设备发送数据时,恢复所述INT管脚的电平。
具体地,所述管脚电平控制模块201用于当确定无需向所述主设备发送数据时,写入一份空包数据存于从设备SPI硬件寄存器03中,并恢复所述INT管脚的电平。
数据发送模块202用于当侦测到所述CS管脚的电平发生改变后,通过控制MISO管脚的电平,向所述主设备发送待发送数据。
具体地,数据发送模块202用于当侦测到所述CS管脚的电平拉低后,将待发送数据打包成若干份数据包,将数据包存入从设备SPI硬件寄存器03中。
每当一份数据包存入从设备SPI硬件寄存器03中时,数据发送模块202通过拉低MISO管脚的电平,数据包通过MISO管脚发送至主设备结束后将加载预设的中断处理函数,从而恢复MISO管脚的电平;其中,所述数据发送模块每当发送一份数据包至所述主设备,通过MOSI接收所述主设备发送的一包空包数据。
本实施例所提供的基于SPI的从设备能够基于从设备是否有数据需要发送至主设备,通过控制INT管脚的电平来主动使主设备响应,以此将从设备所需要发送的数据传输至主设备读取,解决了现有技术中主设备无需定时发送空包数据才能读取从设备往外部发送数据,本方案使得主从设备间的工作量降低,使数据传输的效率明显提高。
同时,请参阅图3,本发明还提供一种基于SPI的通信系统,包括主设备和从设备;所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
从设备执行如上所述任意一项的基于SPI的通信方法。
进一步地,请参阅图3、图5和图6,包括以下步骤:
S201:当主设备有待发送数据给从设备时,主设备改变CS管脚的电平。
S202:从设备侦测到CS管脚的电平发生改变后,控制MISO管脚的电平。
S203:主设备将待发送数据打包成待若干份数据包,将数据包存入主设备SPI硬件寄存器02中。
S204:每当一份数据包存入主设备SPI硬件寄存器02中时,主设备将数据包通过MOSI管脚发送至从设备,发送结束后主设备恢复CS电平,直至所有数据包都发送给从设备。
需要注意的是,主设备发送数据给从设备的过程中可能存在从设备处于休眠状态,所述休眠状态即双工通信无法同步进行,也就是说主设备可以发送数据至从设备,但是此刻的从设备处于休眠状态,无法设置数据ready状态或者是清除了ready状态,此时需要做的就是唤醒从设备的ready状态,可以通过拉MOSI管脚的电平刺激从设备作出反应,从而唤醒从设备。
S205:每当发送一份数据包至从设备,主设备通过MISO接收从设备发送的一包空包数据。
进一步地,请参阅图2、图3和图7,还包括以下步骤:
S301:当从设备有待发送数据给主设备时,从设备改变INT管脚的电平,以使主设备改变CS管脚的电平。
S302:从设备侦测到CS管脚的电平发生改变后,将待发送数据打包成待若干份数据包,将数据包存入从设备SPI硬件寄存器03中。
S303:每当一份数据包存入从设备SPI硬件寄存器03中时,从设备通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至主设备,发送结束后从设备将加载预设的中断处理函数,从而恢复MISO管脚的电平。
S304:每当发送一份数据包至主设备,从设备通过MOSI接收主设备发送的一包空包数据。
S305:当确定无需向主设备发送数据时,从设备写入一份空包数据存于从设备SPI硬件寄存器03中,并恢复INT管脚的电平。
实施例二
本发明实施例还提供一种基于SPI的通信系统,包括主设备和从设备;主设备与从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚、INT管脚和Ready管脚。
请参阅图8,实施例二在实施例一的基础上额外增加一个Ready管脚,实现主从设备之间的六线通信。
请参阅图3、图5和图6,实施例二中主设备发送数据至从设备的具体步骤如下:
S401:当主设备有待发送数据给从设备时,主设备改变CS管脚的电平。
S402:从设备侦测到CS管脚的电平发生改变后,控制Ready管脚的电平。
S403:主设备将待发送数据打包成待若干份数据包,将数据包存入主设备SPI硬件寄存器中。
S404:每当一份数据包存入主设备SPI硬件寄存器中时,主设备将数据包通过MOSI管脚发送至从设备,发送结束后主设备恢复CS电平,同时从设备也恢复Ready管脚的电平,直至所有数据包都发送给从设备。
S405:每当发送一份数据包至从设备,主设备通过MISO接收从设备发送的一包空包数据。
请参阅图2、图3和图7,实施例二中从设备发送数据至主设备的具体步骤如下:
S501:当从设备有待发送数据给主设备时,从设备改变INT管脚的电平,以使主设备改变CS管脚的电平。
S502:从设备侦测到CS管脚的电平发生改变后,将待发送数据打包成待若干份数据包,将数据包存入从设备SPI硬件寄存器中。
S503:每当一份数据包存入从设备SPI硬件寄存器中时,从设备通过改变Ready管脚的电平,将数据包通过MISO管脚发送至主设备,发送结束后从设备将加载预设的中断处理函数,从而恢复Ready管脚的电平。
S504:每当发送一份数据包至主设备,从设备通过MOSI接收主设备发送的一包空包数据。
S505:当确定无需向主设备发送数据时,从设备写入一份空包数据存于从设备SPI硬件寄存器中,并恢复INT管脚的电平。
实施例三
在本实施例三中,提供一种基于SPI的通信系统,包括主设备和从设备;请参阅图3,所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚。
请参阅图13,当主设备有待发送数据给从设备,从设备同样也存在待发送数据时,主设备拉低CS管脚电平,同时主从设备分别将待发送数据在各自设备缓冲区打包后,放入一包数据包存入各自设备SPI硬件寄存器,从设备接收到CS管脚电平拉低后,将MISO管脚拉低,主设备通过MOSI管脚发送数据包,从设备通过MISO管脚发送数据包,主从设备各自发送一包数据包结束后,主设备恢复CS管脚电平,从设备恢复MISO管脚电平;其中,主从设备传输数据包的过程是同时进行的。
当主设备缓冲区的数据大于一包时,重复以上数据包发送的步骤,直至所有的数据包都发送完毕;否则,数据包传输过程结束,主设备CS管脚电平和从设备MISO管脚电平全部恢复至初始状态,即便从设备还有待发送数据,也会终止传输过程,从设备待发送的一包数据包存于从设备SPI硬件寄存器中,用于下一次主设备发起的数据传输或从设备发起数据传输。
同时,在主设备数据传输过程中,从设备缓冲区无数据时,从设备往SPI硬件寄存器写入空包数据,发送至主设备中。
实施本发明实施例,具有如下效果:
本发明实施例提供了一种基于SPI的通信方法,仅通过利用主从设备之间五个管脚,就能实现SPI通信中主设备无需定时发送空包数据才能读取从设备往外部发送数据,从设备可直接依据INT管脚来实现数据包主动发送的方案,同时还具备利用电平信号的恢复来达到确认主设备是否接收到数据的应答机制,并且解决了现有技术中利用较多主从设备之间管脚的问题。
以上是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种基于SPI的通信方法,其特征在于,包括:
当需要向主设备发送数据时,从设备改变INT管脚的电平,以使所述主设备改变CS管脚的电平;其中,所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据;
当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平。
2.如权利要求1所述的一种基于SPI的通信方法,其特征在于,所述当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据,具体为:
当侦测到所述CS管脚的电平发生改变后,所述从设备将待发送数据打包成若干份数据包,将数据包存入从设备SPI硬件寄存器中;
每当一份数据包存入所述从设备SPI硬件寄存器中时,所述从设备通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后所述从设备将加载预设的中断处理函数,从而恢复MISO管脚的电平。
3.如权利要求1所述的一种基于SPI的通信方法,其特征在于,所述当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平,具体为:
当确定无需向所述主设备发送数据时,所述从设备写入一份空包数据存于所述从设备SPI硬件寄存器中,并恢复所述INT管脚的电平。
4.如权利要求1所述的一种基于SPI的通信方法,其特征在于,当侦测到所述CS管脚的电平发生改变后,所述从设备还可以通过控制Ready管脚的电平,向所述主设备发送待发送数据;其中,所述主设备与所述从设备之间还连接有Ready管脚。
5.一种基于SPI的从设备,其特征在于,包括:管脚电平控制模块和数据发送模块;其中,所述从设备与主设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
所述管脚电平控制模块用于当需要向主设备发送数据时,改变INT管脚的电平,以使所述主设备改变CS管脚的电平;以及用于当确定无需向所述主设备发送数据时,恢复所述INT管脚的电平;
所述数据发送模块用于当侦测到所述CS管脚的电平发生改变后,通过控制MISO管脚的电平,向所述主设备发送待发送数据。
6.如权利要求5所述的一种基于SPI的从设备,其特征在于,所述数据发送模块用于当侦测到所述CS管脚的电平发生改变后,通过控制MISO管脚的电平,向所述主设备发送待发送数据,具体为:
所述数据发送模块用于当侦测到所述CS管脚的电平发生改变后,将待发送数据打包成若干份数据包,将数据包存入所述从设备SPI硬件寄存器中;
每当一份数据包存入所述从设备SPI硬件寄存器中时,通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后将加载预设的中断处理函数,从而恢复MISO管脚的电平;
其中,所述数据发送模块每当发送一份数据包至所述主设备,通过MOSI接收所述主设备发送的一包空包数据。
7.如权利要求5所述的一种基于SPI的从设备,其特征在于,所述管脚电平控制模块用于当确定无需向所述主设备发送数据时,恢复所述INT管脚的电平,具体为:
所述管脚电平控制模块用于当确定无需向所述主设备发送数据时,写入一份空包数据存于所述从设备SPI硬件寄存器中,并恢复所述INT管脚的电平。
8.一种基于SPI的通信系统,其特征在于,包括主设备和从设备;所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;
所述从设备执行如权利要求1至4任意一项所述的基于SPI的通信方法。
9.如权利要求8所述的一种基于SPI的通信系统,其特征在于,
当所述主设备有待发送数据给从设备时,所述主设备改变所述CS管脚的电平;
所述从设备侦测到所述CS管脚的电平发生改变后,控制所述MISO管脚的电平;
所述主设备将待发送数据打包成待若干份数据包,将数据包存入主设备SPI硬件寄存器中;
每当一份数据包存入所述主设备SPI硬件寄存器中时,所述主设备将数据包通过所述MOSI管脚发送至所述从设备,发送结束后所述主设备恢复CS电平,直至所有数据包都发送给从设备;
每当发送一份数据包至所述从设备,所述主设备通过MISO接收所述从设备发送的一包空包数据。
10.如权利要求9所述的一种基于SPI的通信系统,其特征在于,
当所述从设备有待发送数据给主设备时,所述从设备改变所述INT管脚的电平,以使所述主设备改变CS管脚的电平;
所述从设备侦测到所述CS管脚的电平发生改变后,将待发送数据打包成待若干份数据包,将数据包存入所述从设备SPI硬件寄存器中;
每当一份数据包存入所述从设备SPI硬件寄存器中时,所述从设备通过改变所述MISO管脚的电平,将数据包通过MISO管脚发送至所述主设备,发送结束后所述从设备将加载预设的中断处理函数,从而恢复MISO管脚的电平;
每当发送一份数据包至所述主设备,所述从设备通过MOSI接收所述主设备发送的一包空包数据;
当确定无需向所述主设备发送数据时,所述从设备写入一份空包数据存于所述从设备SPI硬件寄存器中,并恢复所述INT管脚的电平。
CN202210071877.4A 2022-01-21 一种基于spi的通信方法、从设备及系统 Active CN114528235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210071877.4A CN114528235B (zh) 2022-01-21 一种基于spi的通信方法、从设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210071877.4A CN114528235B (zh) 2022-01-21 一种基于spi的通信方法、从设备及系统

Publications (2)

Publication Number Publication Date
CN114528235A true CN114528235A (zh) 2022-05-24
CN114528235B CN114528235B (zh) 2024-05-31

Family

ID=

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630152A (en) * 1992-05-18 1997-05-13 Motorola, Inc. Communication protocol between master and slave device with register information sharing
CN102354305A (zh) * 2011-09-27 2012-02-15 青岛海信电器股份有限公司 设备间串行通信系统及方法
CN102508812A (zh) * 2011-11-30 2012-06-20 上海大学 一种基于spi总线的双处理器通信方法
CN103077144A (zh) * 2012-12-28 2013-05-01 上海自动化仪表股份有限公司 一种确保数据完整的spi通讯接口及其通讯方法
CN103744825A (zh) * 2013-12-31 2014-04-23 北京中宇新泰科技发展有限公司 一种扩展兼容spi接口双向实时通讯方法
EP3026570A1 (en) * 2014-11-28 2016-06-01 Gemalto Sa A communication system comprising a full-duplex interface with a mechanism to initiate a data exchange
CN208506738U (zh) * 2018-07-25 2019-02-15 天津光电丰泰科技有限公司 一种基于中断信息的spi接口
CN109581927A (zh) * 2018-12-07 2019-04-05 庸博(厦门)电气技术有限公司 伺服驱动器的串行通讯方法及伺服驱动器
CN110955625A (zh) * 2019-11-22 2020-04-03 上海麦腾物联网技术有限公司 一种基于spi的全双工实时通信的方法及装置
CN110990312A (zh) * 2019-11-11 2020-04-10 无锡量子感知研究所 一种用于随钻探测中的芯片级数据通信方法
CN111130710A (zh) * 2019-12-10 2020-05-08 常州新途软件有限公司 一种基于spi的双工通信方法
CN111367850A (zh) * 2020-02-11 2020-07-03 国电南瑞科技股份有限公司 一种fpga和mcu之间的快速通信方法
CN111490920A (zh) * 2019-01-29 2020-08-04 杭州海康汽车技术有限公司 一种基于spi的数据传输方法、系统及装置
CN111737175A (zh) * 2020-06-12 2020-10-02 明见(厦门)技术有限公司 一种高速spi主从机通信方法、终端设备及存储介质
CN112214440A (zh) * 2020-10-10 2021-01-12 北京寓乐世界教育科技有限公司 一种基于spi通信的通信方法
CN113079073A (zh) * 2020-01-06 2021-07-06 广州汽车集团股份有限公司 一种基于spi的全双工通信装置及其通信方法
US20210240656A1 (en) * 2020-01-31 2021-08-05 Infineon Technologies Ag SPI Broadcast Mode
CN113312284A (zh) * 2021-06-03 2021-08-27 杭州华橙软件技术有限公司 数据传输方法、装置、系统、存储介质及电子装置

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630152A (en) * 1992-05-18 1997-05-13 Motorola, Inc. Communication protocol between master and slave device with register information sharing
CN102354305A (zh) * 2011-09-27 2012-02-15 青岛海信电器股份有限公司 设备间串行通信系统及方法
CN102508812A (zh) * 2011-11-30 2012-06-20 上海大学 一种基于spi总线的双处理器通信方法
CN103077144A (zh) * 2012-12-28 2013-05-01 上海自动化仪表股份有限公司 一种确保数据完整的spi通讯接口及其通讯方法
CN103744825A (zh) * 2013-12-31 2014-04-23 北京中宇新泰科技发展有限公司 一种扩展兼容spi接口双向实时通讯方法
EP3026570A1 (en) * 2014-11-28 2016-06-01 Gemalto Sa A communication system comprising a full-duplex interface with a mechanism to initiate a data exchange
CN208506738U (zh) * 2018-07-25 2019-02-15 天津光电丰泰科技有限公司 一种基于中断信息的spi接口
CN109581927A (zh) * 2018-12-07 2019-04-05 庸博(厦门)电气技术有限公司 伺服驱动器的串行通讯方法及伺服驱动器
CN111490920A (zh) * 2019-01-29 2020-08-04 杭州海康汽车技术有限公司 一种基于spi的数据传输方法、系统及装置
CN110990312A (zh) * 2019-11-11 2020-04-10 无锡量子感知研究所 一种用于随钻探测中的芯片级数据通信方法
CN110955625A (zh) * 2019-11-22 2020-04-03 上海麦腾物联网技术有限公司 一种基于spi的全双工实时通信的方法及装置
CN111130710A (zh) * 2019-12-10 2020-05-08 常州新途软件有限公司 一种基于spi的双工通信方法
CN113079073A (zh) * 2020-01-06 2021-07-06 广州汽车集团股份有限公司 一种基于spi的全双工通信装置及其通信方法
US20210240656A1 (en) * 2020-01-31 2021-08-05 Infineon Technologies Ag SPI Broadcast Mode
CN111367850A (zh) * 2020-02-11 2020-07-03 国电南瑞科技股份有限公司 一种fpga和mcu之间的快速通信方法
CN111737175A (zh) * 2020-06-12 2020-10-02 明见(厦门)技术有限公司 一种高速spi主从机通信方法、终端设备及存储介质
CN112214440A (zh) * 2020-10-10 2021-01-12 北京寓乐世界教育科技有限公司 一种基于spi通信的通信方法
CN113312284A (zh) * 2021-06-03 2021-08-27 杭州华橙软件技术有限公司 数据传输方法、装置、系统、存储介质及电子装置

Similar Documents

Publication Publication Date Title
US20200174953A1 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US5175818A (en) Communication interface for independently generating frame information that is subsequently stored in host memory and sent out to transmitting fifo by dma
KR101497001B1 (ko) 그래픽스 멀티미디어 ic 및 그것의 동작 방법
US8520563B2 (en) Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit
JP2010061670A (ja) バス接続システム
US8386908B2 (en) Data transmission methods and universal serial bus host controllers utilizing the same
JP3127523B2 (ja) 通信制御装置およびデータ送信方法
CN102768648B (zh) 低延迟中断收集器、具有该收集器的系统和相关方法
CN101819561A (zh) 文件下载方法及系统
US20240020246A1 (en) Method for Generating Information Based on FIFO Memory and Apparatus, Device and Medium
CN101304362B (zh) 重传缓冲装置及传输数据的方法
CN100579125C (zh) 一种pci以太网媒体访问控制器传输数据的方法
US6941434B2 (en) Self-synchronous FIFO memory device having high access efficiency, and system provided with interface for data transfer using the same
GB2377138A (en) Ring Bus Structure For System On Chip Integrated Circuits
CN101655825B (zh) 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法
US20030041199A1 (en) Communication terminal increasing effective data rate on asynchronous transmission and a data transmission method therefor
CN114528235A (zh) 一种基于spi的通信方法、从设备及系统
CN114528235B (zh) 一种基于spi的通信方法、从设备及系统
CN103888375A (zh) 基于arinc 429的通信方法、装置及扩展接口
CN101534259B (zh) 异步通信控制器及其控制方法
US7757016B2 (en) Data transfer device, semiconductor integrated circuit, and processing status notification method
US20230035810A1 (en) Method for data processing of frame receiving of an interconnection protocol and storage device
CN112835834B (zh) 数据传输系统
CN111026694B (zh) 数据接收方法、设备,图像形成装置、系统和电子设备
CN101194235A (zh) 存储器控制装置及存储器控制方法

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
GR01 Patent grant