CN114528235A - 一种基于spi的通信方法、从设备及*** - Google Patents
一种基于spi的通信方法、从设备及*** Download PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000002093 peripheral effect Effects 0.000 title description 5
- 230000005540 biological transmission Effects 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 6
- 229910044991 metal oxide Inorganic materials 0.000 claims description 3
- 150000004706 metal oxides Chemical class 0.000 claims description 3
- 239000004065 semiconductor Substances 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000012856 packing Methods 0.000 claims description 2
- 235000015429 Mirabilis expansa Nutrition 0.000 abstract 2
- 244000294411 Mirabilis expansa Species 0.000 abstract 2
- 235000013536 miso Nutrition 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total 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)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种基于SPI的通信方法、从设备及***,该方法包括:当需要向主设备发送数据时,从设备改变INT管脚的电平,以使所述主设备改变CS管脚的电平;其中,所述主设备与所述从设备之间连接有CS管脚、CLK管脚、MOSI管脚、MISO管脚和INT管脚;当侦测到所述CS管脚的电平发生改变后,所述从设备通过控制MISO管脚的电平,向所述主设备发送待发送数据;当确定无需向所述主设备发送数据时,所述从设备恢复所述INT管脚的电平。本发明能在现有技术主从设备之间管脚连接数量大的情况下,仅利用主从设备间五线管脚连接的方案,实现主从设备之间SPI的全双工通信,节约了管脚硬件资源。
Description
技术领域
本发明属于通信领域,特别涉及一种基于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管脚的电平。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071877.4A CN114528235B (zh) | 2022-01-21 | 2022-01-21 | 一种基于spi的通信方法、从设备及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071877.4A CN114528235B (zh) | 2022-01-21 | 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=81621451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210071877.4A Active CN114528235B (zh) | 2022-01-21 | 2022-01-21 | 一种基于spi的通信方法、从设备及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114528235B (zh) |
Citations (18)
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 | 杭州华橙软件技术有限公司 | 数据传输方法、装置、***、存储介质及电子装置 |
-
2022
- 2022-01-21 CN CN202210071877.4A patent/CN114528235B/zh active Active
Patent Citations (18)
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 | 杭州华橙软件技术有限公司 | 数据传输方法、装置、***、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114528235B (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
US7093039B2 (en) | Communication terminal increasing effective data rate on asynchronous transmission and a data transmission method therefor | |
GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
CN114528235A (zh) | 一种基于spi的通信方法、从设备及*** | |
CN103888375A (zh) | 基于arinc 429的通信方法、装置及扩展接口 | |
CN101655825A (zh) | 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 | |
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 | |
CN111208892B (zh) | 一种用串行i2c信号对芯片***实现复位的方法 | |
CN112835834B (zh) | 数据传输*** | |
CN115481078A (zh) | 主从式通讯***及方法 | |
CN113419985A (zh) | Spi***自动读取数据的控制方法及spi*** | |
CN111639043A (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 | ||
GR01 | Patent grant |