CN113806265A - 一种spi主从式通讯方法 - Google Patents

一种spi主从式通讯方法 Download PDF

Info

Publication number
CN113806265A
CN113806265A CN202111096468.1A CN202111096468A CN113806265A CN 113806265 A CN113806265 A CN 113806265A CN 202111096468 A CN202111096468 A CN 202111096468A CN 113806265 A CN113806265 A CN 113806265A
Authority
CN
China
Prior art keywords
spi
slave
frame
data
master
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.)
Pending
Application number
CN202111096468.1A
Other languages
English (en)
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 Bluectrl Electronic Technology Co ltd
China Oil and Gas Pipeline Network Corp
Pipechina Eastern Crude Oil Storage and Transportation Co Ltd
Original Assignee
Shanghai Bluectrl Electronic Technology Co ltd
China Oil and Gas Pipeline Network Corp
Pipechina Eastern Crude Oil Storage and Transportation 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 Bluectrl Electronic Technology Co ltd, China Oil and Gas Pipeline Network Corp, Pipechina Eastern Crude Oil Storage and Transportation Co Ltd filed Critical Shanghai Bluectrl Electronic Technology Co ltd
Priority to CN202111096468.1A priority Critical patent/CN113806265A/zh
Publication of CN113806265A publication Critical patent/CN113806265A/zh
Pending legal-status Critical Current

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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种SPI主从式通迅方法,用于SPI主机和SPI从机之间的数据交换,在SPI主机和SPI从机之间采用数据帧传送数据,数据帧包括请求帧、心跳帧、响应帧、非应答帧和空帧。SPI主机向SPI从机发送周期性数据和非周期性数据,发送周期性数据采用请求帧或非应答帧;发送非周期性数据采用请求帧,SPI从机向SPI主机发送数据采用非应答帧。数据帧使用DMA机制进行传输,可有效避免数据帧因在传输的过程中被打断而导致的数据帧不完整,从而提高数据通信效率。上述方法采用数据流的传输方式可以实现高效、可靠的双机通迅。

Description

一种SPI主从式通讯方法
技术领域
本发明涉及SPI通迅总线技术领域,具体涉及一种SPI主从式通迅方法。
背景技术
SPI,串行外围设备接口,是一种高速的,全双工,同步的通信总线,主要应用于AD转换器、CPU与CPU之间,SPI共设置有4根信号线,用于主机与从机之间的连接,其中MISO和MOSI两根线,可以同时发送和接收数据,其通迅效率较高。不过,SPI通讯没有流控机制,发送的数据没有应答,无法确认数据已成功接收,从设备数据准备好时需要通过额外的通道通知主设备,否则容易导致从设备的数据出现断续和误码。
发明内容
本发明的目的是提供一种SPI主从式通迅方法,对SPI存在的问题进行改进,使采用SPI通迅的设备之间可以进行高效地数据传输。
为实现上述目的,本发明的一种SPI主从式通迅方法,一种SPI主从式通迅方法,用于SPI主机和SPI从机之间的数据交换,SPI主机和SPI从机之间采用数据流的方式传输数据,数据流由固定长度的数据帧组成,数据帧包括请求帧、心跳帧、响应帧、非应答帧和空帧;SPI主机向SPI从机发送周期性数据和非周期性数据,发送周期性数据采用请求帧或非应答帧;发送非周期性数据采用请求帧,SPI从机向SPI主机发送数据采用非应答帧。
进一步地,当周期性数据使用非应答帧从SPI主机发往SPI从机时,SPI从机接收到后不需要发送响应到SPI主机;当周期性数据采用请求帧从SPI主机发往SPI从机时,请求帧需要SPI从机收到后发送响应帧到SPI主机。
进一步地,心跳帧用于维持SPI主机和SPI从机之间的连接状态,按以下步骤执行:
起始状态为链路断开状态;
主站周期性发送心跳帧,从站收到心跳帧后,切换链路状态为连接状态,并发送心跳帧到主站;
主站收到从站的心跳帧后,切换链路状态为连接状态。
进一步地,心跳帧包含了本方的链路状态。
进一步地,SPI主机和SPI从机只有在链路为连接状态时才开始传送数据。
进一步地,SPI主机周期性地发送时间戳到SPI从机,时间戳封装在心跳帧内。
进一步地,当SPI主机的请求帧发送完成后,在设定的超时时间内,SPI主机始终没有收到SPI从机的响应帧时,请求帧产生超时,从等待响应队列移入发送队列,重新发送该请求帧。
进一步地,当多次重发超时后,SPI主机和SPI从机的链路断开。
进一步地,SPI主机处于空闲状态并且等待响应队列不为空时,SPI主机发送空帧到SPI从机,SPI从机向SPI主机发送非应答帧。
进一步地,SPI主机和SPI从机通过DMA方式传送数据。
本发明的有益效果是:本通迅方法采用数据流的方式进行通迅,数据按照固定的帧大小传输,各种数据混合在一起形成一个数据流,对应用层来说可以提供周期性数据和非周期性数据的有效交换,固定帧大小有效提高了数据交换的效率,链路状态和超时机制提供了数据的可靠交换。
附图说明
图1是本发明的结构示意图;
图2是DMA连接图;
具体实施方式
下面通过实施例结合附图对本发明作进一步详细说明。
如图1所示,本发明采用两套独立的主机,两套主机之间通过高速SPI连接,基于SPI链路实现了两套主机的CPU之间的数据库同步,将其中一个主机定义为SPI主机,另一个定义为SPI从机。SPI主机和SPI从机均采用运行RTEMS实时系统的PowerPC构建,SPI主机和SPI从机上有两个20000字空间的实时数据库,SPI主机和SPI从机采用主备的方式工作,当SPI主机工作于主模式时,SPI从机工作于备模式,当SPI主机发生故障时,系统会切换到SPI从机,SPI从机开始工作在主模式。工作于备机模式的SPI从机需要保证自身数据库和工作于主模式的SPI主机中的数据库保持同步。SPI主机负责产生时钟信号。本发明SPI主机和SPI从机之间按照数据流的方式来交换信息,采用固定大小的数据帧传输数据,数据帧具有固定长度的帧头信息和CRC校验码,当应用层数据长度大于数据帧的净载荷长度时,采用多个数据帧传输。数据帧包括请求、心跳帧、响应帧、非应答帧和空帧。SPI主机向SPI从机发送周期性数据和非周期性数据,SPI主机向SPI从机发送周期性数据和非周期性数据,发送周期性数据采用请求帧或非应答帧。发送非周期性数据采用请求帧,SPI从机向SPI主机发送数据采用非应答帧。当周期性数据使用非应答帧从SPI主机发往SPI从机时,SPI从机接收到后不需要发送响应到SPI主机,当周期性数据采用请求帧从SPI主机发往SPI从机时,请求帧需要SPI从机收到后发送响应帧到SPI主机。
心跳帧用于保持SPI主机和SPI从机之间的连接状态,按以下步骤执行:
起始状态为链路断开状态;SPI主机周期性发送心跳帧,SPI从机收到心跳帧后,切换链路状态为连接状态,并发送心跳帧到SPI主机;SPI主机收到从站的心跳帧后,切换链路状态为连接状态;当发送队列中有数据需要发送时,不发送心跳帧。
心跳帧包含了本方的链路状态,SPI主机和SPI从机只有在链路为连接状态时才开始传送数据。
上述心跳机制,使SPI主机可以知道SPI从机始终在线,如果SPI主机超过设置的时间没有收到SPI从机发送的数据帧,则断开连接。
SPI主机周期性地发送时间戳到SPI从机,时间戳封装在心跳帧内。时间戳的主要是对数据产生的时间进行认证,从而验证SPI主机发送的数据在产生后是否经过篡改。
当SPI主机的请求帧发送完成后,在设定的超时时间内,SPI主机始终没有收到SPI从机的响应帧时,请求帧产生超时,从等待响应队列移入发送队列,重新发送该请求帧。当多次重发超时后,SPI主机和SPI从机的链路断开。SPI主机处于空闲状态并且等待响应队列不为空时,SPI主机发送空帧到SPI从机,SPI从机向SPI主机发送非应答帧。
如图2所示,本实施例中,SPI主机和SPI从机通过DMA方式传送数据。DMA(DirectMemory Access,直接存储器访问)将数据从一块区域复制到另一块区域,允许不同速度的硬件直接通讯,不需要依赖CPU的介入。否则,CPU需要从来源把每一块数据复制到内存中,然后把它们再次写回到新的地方,在这期间,CPU对于其他的工作来说就无法使用。DMA的实现依赖于DMA控制器,CPU对DMA控制器进行初始化,指定源地址、目标地址、数据块长度,随后触发DMA控制器启动传输操作,CPU可以继续其他的计算。数据帧使用DMA机制进行传输,可有效避免数据帧因在传输的过程中被打断而导致的数据帧不完整,从而提高数据通信效率。
综上所述,上述SPI主机与SPI从机之间采用数据流的方式进行通迅,设定数据帧的格式以及发送与接收时的相关规则,并规避了意外中断造成的数据传输错误,使通迅更为合理、顺畅。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于此,在所属技术领域的技术人员所具备的知识范围内,在不脱离本发明宗旨的前提下可以作出的各种变化,都处于本发明权利要求的保护范围之内。

Claims (10)

1.一种SPI主从式通迅方法,其特征在于,用于SPI主机和SPI从机之间的数据交换,SPI主机和SPI从机之间采用数据流的方式传输数据,数据流由固定长度的数据帧组成,数据帧包括请求帧、心跳帧、响应帧、非应答帧和空帧;SPI主机向SPI从机发送周期性数据和非周期性数据,发送周期性数据采用请求帧或非应答帧;发送非周期性数据采用请求帧,SPI从机向SPI主机发送数据采用非应答帧。
2.根据权利要求1所述的一种SPI主从式通迅方法,其特征在于,当周期性数据使用非应答帧从SPI主机发往SPI从机时,SPI从机接收到后不需要发送响应到SPI主机;当周期性数据采用请求帧从SPI主机发往SPI从机时,请求帧需要SPI从机收到后发送响应帧到SPI主机。
3.根据权利要求1所述的一种SPI主从式通迅方法,其特征在于,心跳帧用于维持SPI主机和SPI从机之间的连接状态,按以下步骤执行:
起始状态为链路断开状态;
主站周期性发送心跳帧,从站收到心跳帧后,切换链路状态为连接状态,并发送心跳帧到主站;
主站收到从站的心跳帧后,切换链路状态为连接状态。
4.根据权利要求3所述的一种SPI主从式通迅方法,其特征在于,心跳帧包含了本方的链路状态。
5.根据权利要求3所述的一种SPI主从式通迅方法,其特征在于,SPI主机和SPI从机只有在链路为连接状态时才开始传送数据。
6.根据权利要求1所述的一种SPI主从式通迅方法,其特征在于,SPI主机周期性地发送时间戳到SPI从机,时间戳封装在心跳帧内。
7.根据权利要求1所述的一种SPI主从式通迅方法,其特征在于,当SPI主机的请求帧发送完成后,在设定的超时时间内,SPI主机始终没有收到SPI从机的响应帧时,请求帧产生超时,从等待响应队列移入发送队列,重新发送该请求帧。
8.根据权利要求7所述的一种SPI主从式通迅方法,其特征在于,当多次重发超时后,SPI主机和SPI从机的链路断开。
9.根据权利要求1所述的一种SPI主从式通迅方法,其特征在于,SPI主机处于空闲状态并且等待响应队列不为空时,SPI主机发送空帧到SPI从机,SPI从机向SPI主机发送非应答帧。
10.根据权利要求1所述的一种SPI主从式通迅方法,其特征在于,SPI主机和SPI从机通过DMA方式传送数据。
CN202111096468.1A 2021-09-18 2021-09-18 一种spi主从式通讯方法 Pending CN113806265A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111096468.1A CN113806265A (zh) 2021-09-18 2021-09-18 一种spi主从式通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111096468.1A CN113806265A (zh) 2021-09-18 2021-09-18 一种spi主从式通讯方法

Publications (1)

Publication Number Publication Date
CN113806265A true CN113806265A (zh) 2021-12-17

Family

ID=78895868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111096468.1A Pending CN113806265A (zh) 2021-09-18 2021-09-18 一种spi主从式通讯方法

Country Status (1)

Country Link
CN (1) CN113806265A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795744A (zh) * 2023-08-15 2023-09-22 三峡智控科技有限公司 一种ls2k1000la与mcu通讯的控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011004358B3 (de) * 2011-02-18 2012-05-31 Continental Automotive Gmbh Verfahren zum Übertragen von Daten über einen synchronen seriellen Datenbus
CN104965700A (zh) * 2015-06-09 2015-10-07 航天科工深圳(集团)有限公司 VxWorks操作系统下实现驱动SPI设备的方法和系统
WO2018058862A1 (zh) * 2016-09-29 2018-04-05 华为技术有限公司 一种基于spi的数据传输方法及装置
CN110855686A (zh) * 2019-11-18 2020-02-28 深圳开立生物医疗科技股份有限公司 一种spi协议通信方法、系统、设备及计算机存储介质
CN112817886A (zh) * 2021-02-04 2021-05-18 珠海全志科技股份有限公司 基于spi的主从通信方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011004358B3 (de) * 2011-02-18 2012-05-31 Continental Automotive Gmbh Verfahren zum Übertragen von Daten über einen synchronen seriellen Datenbus
CN104965700A (zh) * 2015-06-09 2015-10-07 航天科工深圳(集团)有限公司 VxWorks操作系统下实现驱动SPI设备的方法和系统
WO2018058862A1 (zh) * 2016-09-29 2018-04-05 华为技术有限公司 一种基于spi的数据传输方法及装置
CN110855686A (zh) * 2019-11-18 2020-02-28 深圳开立生物医疗科技股份有限公司 一种spi协议通信方法、系统、设备及计算机存储介质
CN112817886A (zh) * 2021-02-04 2021-05-18 珠海全志科技股份有限公司 基于spi的主从通信方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宋晋峰;杨文焕;邵艳琼;: "嵌入式测控系统中数据存储的一种解决方案", 仪表技术, no. 02, 15 February 2008 (2008-02-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795744A (zh) * 2023-08-15 2023-09-22 三峡智控科技有限公司 一种ls2k1000la与mcu通讯的控制方法
CN116795744B (zh) * 2023-08-15 2023-12-19 三峡智控科技有限公司 一种ls2k1000la与mcu通讯的控制方法

Similar Documents

Publication Publication Date Title
EP2676204B1 (en) Serial interface
EP0244117B1 (en) A method of duplex data transmission using a send-and-wait protocol
CN1821913A (zh) 基于i2c的通信系统及通信方法
US9081905B2 (en) Low latency interconnect bus protocol
CN1897513A (zh) 一种单片机串口通信方法和单片机控制系统
US7117283B2 (en) Multi-master extended I2C protocol
CN114520711A (zh) 数据包的选择性重传
CN114826812B (zh) 一种rs485通信多主站的实现方法及系统
CN113626365A (zh) 一种基于spi总线的通信方法
CN113806265A (zh) 一种spi主从式通讯方法
US7760655B2 (en) Method and device for transfer of data over a data connection from a sender to a receiver by means of packets
JP2000253023A (ja) パケット通信装置
CN102201938A (zh) 基于通道的CanTp层通信管理方法
WO2022124083A1 (ja) 通信装置、通信方法、およびプログラム
US20240143434A1 (en) Flow control between peripheral component interconnect express devices
JP3148733B2 (ja) 信号処理装置及び信号処理システム
JPH11168525A (ja) データ通信方法およびデータ通信装置
KR950010483B1 (ko) 전전자교환기의 신호단말망에 접속된 신호버스정합보드에서의 메시지 송신방법
JPH0263233A (ja) シリアル通信装置
JP2002281034A (ja) 情報転送装置
CN117149678A (zh) 一种多主多从的rs485总线仲裁系统和方法
JP2000244530A (ja) データ通信装置
CN115361252A (zh) 网络接口交换电路与电子系统
JPS58219856A (ja) デ−タ通信方式
JP2004147081A (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