一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种SPI主从式通讯方法与流程

2021-12-17 21:45:00 来源:中国专利 TAG:

一种spi主从式通讯方法
技术领域
1.本发明涉及spi通迅总线技术领域,具体涉及一种spi主从式通迅方法。


背景技术:

2.spi,串行外围设备接口,是一种高速的,全双工,同步的通信总线,主要应用于ad转换器、cpu与cpu之间,spi共设置有4根信号线,用于主机与从机之间的连接,其中miso和mosi两根线,可以同时发送和接收数据,其通迅效率较高。不过,spi通讯没有流控机制,发送的数据没有应答,无法确认数据已成功接收,从设备数据准备好时需要通过额外的通道通知主设备,否则容易导致从设备的数据出现断续和误码。


技术实现要素:

3.本发明的目的是提供一种spi主从式通迅方法,对spi存在的问题进行改进,使采用spi通迅的设备之间可以进行高效地数据传输。
4.为实现上述目的,本发明的一种spi主从式通迅方法,一种spi主从式通迅方法,用于spi主机和spi从机之间的数据交换,spi主机和spi从机之间采用数据流的方式传输数据,数据流由固定长度的数据帧组成,数据帧包括请求帧、心跳帧、响应帧、非应答帧和空帧;spi主机向spi从机发送周期性数据和非周期性数据,发送周期性数据采用请求帧或非应答帧;发送非周期性数据采用请求帧,spi从机向spi主机发送数据采用非应答帧。
5.进一步地,当周期性数据使用非应答帧从spi主机发往spi从机时,spi从机接收到后不需要发送响应到spi主机;当周期性数据采用请求帧从spi主机发往spi从机时,请求帧需要spi从机收到后发送响应帧到spi主机。
6.进一步地,心跳帧用于维持spi主机和spi从机之间的连接状态,按以下步骤执行:
7.起始状态为链路断开状态;
8.主站周期性发送心跳帧,从站收到心跳帧后,切换链路状态为连接状态,并发送心跳帧到主站;
9.主站收到从站的心跳帧后,切换链路状态为连接状态。
10.进一步地,心跳帧包含了本方的链路状态。
11.进一步地,spi主机和spi从机只有在链路为连接状态时才开始传送数据。
12.进一步地,spi主机周期性地发送时间戳到spi从机,时间戳封装在心跳帧内。
13.进一步地,当spi主机的请求帧发送完成后,在设定的超时时间内,spi主机始终没有收到spi从机的响应帧时,请求帧产生超时,从等待响应队列移入发送队列,重新发送该请求帧。
14.进一步地,当多次重发超时后,spi主机和spi从机的链路断开。
15.进一步地,spi主机处于空闲状态并且等待响应队列不为空时,spi主机发送空帧到spi从机,spi从机向spi主机发送非应答帧。
16.进一步地,spi主机和spi从机通过dma方式传送数据。
17.本发明的有益效果是:本通迅方法采用数据流的方式进行通迅,数据按照固定的帧大小传输,各种数据混合在一起形成一个数据流,对应用层来说可以提供周期性数据和非周期性数据的有效交换,固定帧大小有效提高了数据交换的效率,链路状态和超时机制提供了数据的可靠交换。
附图说明
18.图1是本发明的结构示意图;
19.图2是dma连接图;
具体实施方式
20.下面通过实施例结合附图对本发明作进一步详细说明。
21.如图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主机。
22.心跳帧用于保持spi主机和spi从机之间的连接状态,按以下步骤执行:
23.起始状态为链路断开状态;spi主机周期性发送心跳帧,spi从机收到心跳帧后,切换链路状态为连接状态,并发送心跳帧到spi主机;spi主机收到从站的心跳帧后,切换链路状态为连接状态;当发送队列中有数据需要发送时,不发送心跳帧。
24.心跳帧包含了本方的链路状态,spi主机和spi从机只有在链路为连接状态时才开始传送数据。
25.上述心跳机制,使spi主机可以知道spi从机始终在线,如果spi主机超过设置的时间没有收到spi从机发送的数据帧,则断开连接。
26.spi主机周期性地发送时间戳到spi从机,时间戳封装在心跳帧内。时间戳的主要是对数据产生的时间进行认证,从而验证spi主机发送的数据在产生后是否经过篡改。
27.当spi主机的请求帧发送完成后,在设定的超时时间内,spi主机始终没有收到spi从机的响应帧时,请求帧产生超时,从等待响应队列移入发送队列,重新发送该请求帧。当多次重发超时后,spi主机和spi从机的链路断开。spi主机处于空闲状态并且等待响应队列
不为空时,spi主机发送空帧到spi从机,spi从机向spi主机发送非应答帧。
28.如图2所示,本实施例中,spi主机和spi从机通过dma方式传送数据。dma(direct memory access,直接存储器访问)将数据从一块区域复制到另一块区域,允许不同速度的硬件直接通讯,不需要依赖cpu的介入。否则,cpu需要从来源把每一块数据复制到内存中,然后把它们再次写回到新的地方,在这期间,cpu对于其他的工作来说就无法使用。dma的实现依赖于dma控制器,cpu对dma控制器进行初始化,指定源地址、目标地址、数据块长度,随后触发dma控制器启动传输操作,cpu可以继续其他的计算。数据帧使用dma机制进行传输,可有效避免数据帧因在传输的过程中被打断而导致的数据帧不完整,从而提高数据通信效率。
29.综上所述,上述spi主机与spi从机之间采用数据流的方式进行通迅,设定数据帧的格式以及发送与接收时的相关规则,并规避了意外中断造成的数据传输错误,使通迅更为合理、顺畅。
30.上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于此,在所属技术领域的技术人员所具备的知识范围内,在不脱离本发明宗旨的前提下可以作出的各种变化,都处于本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献