基于DMA的SPI设备间通信自动界定可变长帧结束的方法技术

技术编号:23470519 阅读:42 留言:0更新日期:2020-03-06 12:39
本发明专利技术公开了一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法,主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。本发明专利技术采用DMA方式的SPI通信中,SPI主设备可以灵活的发送可变长度的报文帧,从设备可以准确的自动界定主设备一帧变长帧报文的帧尾。

A DMA based method to define the end of variable long frame automatically in SPI communication

【技术实现步骤摘要】
基于DMA的SPI设备间通信自动界定可变长帧结束的方法
:本专利技术涉及一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法。
技术介绍
:随着半导体以及集成电路技术的发展,形式各样、功能丰富的芯片设备进入到生活和工业应用的方方面面,芯片之间的信息交互俨然成为系统运行的关键一环,SPI作为设备间高速串行通信的一种接口,由于其物理接口简单、传输速度快、传输质量稳定等优点,被广泛集成在芯片设备的通讯接口模块中。SPI通讯的实现方式主要有三种:直接无缓冲通讯、带FIFO缓冲通讯以及DMA方式通讯。其中第一种直接无缓冲通讯,每次通讯只能实现最多4字节长度的数据传输,对于一些报文帧较长的传输,需要进行分包多次传输,一方面提升软件复杂度,另一方面抢占硬件资源运行时间,大大降低通讯的质量;第二种带FIFO缓冲的通讯方式,在第一种的基础上添加了FIFO缓冲,有效解决报文帧较长的问题,但是由于FIFO缓冲一般是与SPI模块绑定的,而通讯数据接收完需要拷贝到指定的内存中进行处理,对于时间性能要求过高的应用场合显得力不从心;第三种采用SPI+DMA方式,充分利用DMA的设计初衷,通过DMA的内存搬运一步到位,既解决了缓冲问题,又解决了内存搬运的问题,同时释放了对CPU的占用。虽然基于DMA方式的SPI传输高效、可靠,但是如果通信过程中,报文帧是变长的、DMA目的内存地址无规律变化,那么接收方的DMA在每一次接收完成之后必须在启动下一次接收之前重新设置DMA控制器的长度、目的地址属性。这就需要一种通知机制,发送方在发送前或者发送时能够及时通知接收方此次即将传输的报文帧长度。常见的处理方式主要有两种方法:(1)SPI发送的第一个字节表示此次报文帧的长度,接收方首先通过中断读取并且解析第一字节,然后再设置DMA属性;(2)确定发送方报文帧的最大长度,将其固定为DMA接收的长度,然后利用通讯接口模块的空闲中断来作为一帧结束的标志。上述的方法一较为常见,但是存在的问题也很明显,首先接收方需要能够快速响应,在一个字节的时间内处理好中断,并且设置完成DMA,这对接收设备的处理性能有较高的要求,其次可能产生错误累积,由于需要第一个字节来设置DMA,这就需要通讯质量非常可靠,否则当通讯过程受到干扰,导致第一个字节长度设置有误,那么就会导致DMA的接收有误,并且DMA的后续处理必须满足初始设置才能触发,造成不可恢复的连续性通信错误累积;方法二具有一定的特殊要求,即需要芯片设备具备特殊的空闲中断功能,而这一功能并不是所有芯片设备共有,不具备一般的通用性。
技术实现思路
:本专利技术提供一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法,该方法在保持基于DMA方式的SPI通信通用处理方式的基础上,可实现灵活的可变长度的报文帧传输,规避了因为干扰影响导致的通信不可恢复,解除了对芯片设备性能以及特殊功能要求的限制。本专利技术所采用的技术方案有:基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包括通信模型,所述通信模型以一个SPI设备为主设备,另一个SPI设备为从设备,两个SPI设备均具有集成SPI接口,本专利技术方法为:主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。进一步地,所述主设备的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值分别对应为高电平和低电平,所述高电平值范围为逻辑1电平范围;所述低电平值取值范围为逻辑0电平范围。进一步地,所述主设备的片选输出信号引出的分支信号的信号值与主设备的片选输出信号等效;当主设备的片选输出信号为高电平时,分支信号的信号值与主设备的片选输出信号的高电平值对应;当主设备的片选输出信号为低电平时,分支信号的信号值与主设备的片选输出信号的低电平值对应。进一步地,所述主设备的片选输出信号及所述分支信号变化为低电平到高电平的上升沿跳变。本专利技术具有如下有益效果:1)采用DMA方式的SPI通信中,SPI主设备可以灵活的发送可变长度的报文帧,从设备可以准确的自动界定主设备一帧变长帧报文的帧尾;2)由于干扰的影响,只会影响当前帧的传输,在下一次报文开始时,能够自动恢复通信正常,并不会影响后续的数据传输,避免连续的通信错误累积,通信具有独立性;3)对主、从设备没有特殊要求,只需要具备额外一个输入接口以及通常的SPI接口模块即可,具有一般的普适性。附图说明:图1为本专利技术中模块连接原理示意图。具体实施方式:下面结合附图对本专利技术作进一步的说明。如图1,本专利技术一种基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包含由集成SPI接口的两个设备组成的一般SPI通信模型,以该通信模型中一个SPI设备为主设备,另一个SPI设备为从设备,主设备发起通信,从设备响应的半双工数据传输方向为例。主设备包含接口有:片选输出信号(CSO)、时钟输出信号(SCKO)和数据输出信号接口(MOSI)。从设备包含接口有:片选输入信号(CSI)、时钟输入信号(SCKI)、数据输入信号(MOSI)和片选电平值变化监测接口。本专利技术的方法为:主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。首先明确,高电平值范围为逻辑1电平范围,如典型的TTL为≥2.4V;低电平值取值范围为逻辑0电平范围,如典型的TTL为≤0.4V。通常主设备的片选输出信号在非通信周期为高电平,当有通信需要进行时,主设备会将片选信号拉低,即变为低电平状态,通知从设备有数据需要进行通讯,数据传输过程中,主、从设备在主设备发出的时钟信号下,通过数据信号接口进行数据交互,数据传输完成,主设备会自动或者手动将片选信号的电平值拉高,即片选信号产生由低电平到高电平的电平变化,从设备继而通过电平监测接口检测到一个上升沿的跳变信号,即认为主设备一帧数据的传输完成,此时从设备会进行下一次通信的DMA属性设置的准备,以及接收到的数据处理。本专利技术中主设备发送的报文帧的数据长度灵活可变,并且每一帧的结束判断是以片选信号的电平变化为依据,并不需要依靠事先的数据通信,具有确定性,从而保证前后连续报文通信的独立性,因此通信出错可自动恢复,避免连续的错误累积,并且软硬件实现具有普适性。以上所述仅是本专利技术的优选实施方式,应当指本文档来自技高网
...

【技术保护点】
1.基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包括由两个SPI设备组成的通信模型,所述通信模型以一个SPI设备为主设备,另一个SPI设备为从设备,其特征在于:所述方法为:/n主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。/n

【技术特征摘要】
1.基于DMA的SPI设备间通信自动界定可变长帧结束的方法,包括由两个SPI设备组成的通信模型,所述通信模型以一个SPI设备为主设备,另一个SPI设备为从设备,其特征在于:所述方法为:
主设备中的片选输出信号上引出一个分支信号连接到从设备中的片选电平值变化监测接口上,当主设备的一帧报文发送完成,主设备中的片选输出信号的电平值以及所述片选输出信号的分支信号的电平值均会产生变化,从设备通过片选电平值变化监测接口检测到所述电平值的变化来判断一次通信的结束,并界定主设备一帧报文发送结束,继而进行后续接收报文的处理,以及下一次通信从设备的DMA属性配置。


2.如权利要求1所述的基于DMA的SPI设备间通信自动界定可变长帧结束的方法,其特征在于:所述主设备的片选输出信号...

【专利技术属性】
技术研发人员:芮正新张继淮陈闯陈刚峰
申请(专利权)人:南京科远智慧科技集团股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1