一种台区智能融合终端SPI通信中不定长数据帧的接收方法技术

技术编号:36934978 阅读:19 留言:0更新日期:2023-03-22 18:56
本申请适用于通信技术领域,提供了一种台区智能融合终端SPI通信中不定长数据帧的接收方法,包括:初始化从机的SPI接口,对从机的MCU的SPI寄存器进行初始配置,并初始化SPI寄存器的接收中断程序;建立SPI寄存器的接收缓冲区;对MCU的外部中断寄存器进行初始配置,将CS片选信号复用为外部中断的触发管脚,并配置为在CS片选信号上升沿触发CS外部中断程序;基于CS片选信号和接收中断程序将接收到的单字节数据放入接收缓冲区;基于CS片选信号和CS外部中断信号从接收缓冲区中取出收到的一帧完整的数据。本申请能够在处理器资源有限,且通信帧协议中存在长度字段不固定时,实现SPI不定长协议帧的接收功能。协议帧的接收功能。协议帧的接收功能。

【技术实现步骤摘要】
一种台区智能融合终端SPI通信中不定长数据帧的接收方法


[0001]本申请属于通信
,尤其涉及一种台区智能融合终端SPI通信中不定长数据帧的接收方法。

技术介绍

[0002]在台区智能融合终端SPI(Serial Peripheralinterface,串行外围设备接口)通信的实际应用中,多数为不定长的通信帧协议,接收方需要在接收时辨识出每一个完整的帧,便于进行后续从完整帧中获取有效数据。
[0003]现有SPI不定长接收技术有两种:一种是MCU(Microcontroller Unit,微控制单元))软件采用在SPI中断接收程序中根据通信协议帧格式,解析出长度字段,再根据该长度继续在SPI中断服务函数中进行数据接收。这种方法需要MCU软件在SPI中断接收程序中对每个接收到的字节都进行帧格式解析,解析过程繁琐,对于部分帧格式中长度字段不固定的情况,该方法无法实现接收完整帧。
[0004]另一种是MCU软件采用DMA(Direct Memory Access,直接存储器访问)技术以固定长度持续接收,该方法虽然不会造成数据丢失,但由于无法得知SPI总线的空闲状态,造成多帧堆叠在DMA缓冲区中,需要对缓冲区中的数据进行摘取辨识,且需要半帧拼叠,过程繁琐,在遇到MCU处理器DMA资源有限的情况时,MCU无法采用DMA方法进行数据接收。

技术实现思路

[0005]为克服相关技术中存在的问题,本申请实施例提供了一种台区智能融合终端SPI通信中不定长数据帧的接收方法,以解决在从板MCU处理器DMA资源有限且通信帧协议中存在长度字段不固定的情况下,无法实现接收完整帧的问题。
[0006]本申请是通过如下技术方案实现的:第一方面,本申请实施例提供了台区智能融合终端SPI通信中不定长数据帧的接收方法,包括:初始化从机的SPI接口,对从机的MCU的SPI寄存器进行初始配置,并初始化SPI寄存器的接收中断程序SPI_IRQ;建立SPI寄存器的接收缓冲区;对MCU的外部中断寄存器进行初始配置,将CS片选信号复用为外部中断的触发管脚,并将触发管脚配置为在CS片选信号上升沿触发CS外部中断信号;基于CS片选信号和接收中断程序SPI_IRQ将接收到的单字节数据放入接收缓冲区;基于CS片选信号和CS外部中断信号从接收缓冲区中取出收到的一帧完整的数据;一帧完整的数据包括具有字节累计长度的单字节数据。
[0007]在第一方面的一种可能的实施方式中,初始化MCU的SPI接口,对MCU的从机的配置
寄存器进行初始配置,包括:配置SPI接口的通信模式;配置SPI寄存器的CS片选信号控制方式为硬件片选信号NSS_Hard;硬件片选信号NSS_Hard用于使从机根据主机的SPI 接口的CS片选信号电平自动开启接收状态。
[0008]在第一方面的一种可能的实施方式中,配置SPI接口的通信模式,包括:将MCU的 SPI接口设置为主机发送,从机接收模式,并配置SPI接口的时钟的极性和相位与主机的时钟的极性和相位一致。
[0009]在第一方面的一种可能的实施方式中,初始化SPI寄存器的接收中断程序SPI_IRQ,包括:配置中断事件接收非空标志RXNE;非空标志RXNE用于当MCU内部SPI接收数据非空时,触发接收中断程序SPI_IRQ。
[0010]在第一方面的一种可能的实施方式中,对MCU的外部中断寄存器进行初始配置,包括:利用MCU事件线边沿检测器,设置CS外部中断处理程序,并开启IO复用外设时钟APB_AFIO,开启CS片选信号的复用功能;复用功能用于将CS片选信号复用为外部中断的触发管脚,并将触发管脚配置为在CS片选信号上升沿触发CS外部中断处理程序。
[0011]在第一方面的一种可能的实施方式中,基于CS片选信号和接收中断程序SPI_IRQ将接收到的单字节数据放入接收缓冲区,包括:当主机拉低CS片选信号,开始发送数据时,触发从机的接收中断程序SPI_IRQ,将接收到的单字节数据放入接收缓冲区,并保存接收到的单字节数据的字节累计长度。
[0012]在第一方面的一种可能的实施方式中,基于CS片选信号和CS外部中断处理程序从接收缓冲区中取出收到的一帧完整的数据,包括:当主机拉高CS片选信号时, CS片选信号上升沿触发从机的CS外部中断信号EXTI;CS外部中断信号EXTI由CS外部中断处理程序控制;在外部中断处理程序中,从接收缓冲区中按照字节累计长度取出收到的一帧完整的数据。
[0013]在第一方面的一种可能的实施方式中,从接收缓冲区中按照字节累计长度取出收到的一帧完整的数据之后,将本次的字节累计长度清零,准备下一帧数据的接收;下一帧的数据长度不固定。
[0014]在第一方面的一种可能的实施方式中,接收缓冲区具有预设字节长度;预设字节长度大于字节累计长度。
[0015]在第一方面的一种可能的实施方式中,触发从机的接收中断程序SPI_IRQ,将接收到的单字节数据放入接收缓冲区,包括:触发从机的接收中断程序SPI_IRQ;接收中断程序SPI_IRQ发出中断信号,信号每中断一次取一个单字节数据放入接收缓冲区,字节累计长度加1,直到将主机发送的一帧数据取完。
[0016]本申请实施例与现有技术相比存在的有益效果是:本申请实施例,通过将CS片选信号复用为外部中断的触发管脚,并将触发管脚配置为在CS片选信号上升沿触发CS外部中断,能够应用于产品主板与从板间的SPI通信,在从
板MCU处理器DMA资源有限,且通信帧协议中存在长度字段不固定的情况下,实现了SPI不定长协议帧的接收功能。
[0017]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0018]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019]图1是本申请一实施例提供的台区智能融合终端SPI通信中不定长数据帧的接收方法的流程示意图;图2是本申请一实施例提供的在CS片选信号上升沿时触发CS外部中断程序的示意图;图3是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
[0020]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0021]应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0022]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种台区智能融合终端SPI通信中不定长数据帧的接收方法,其特征在于,包括:初始化从机的SPI接口,对所述从机的MCU的SPI寄存器进行初始配置,并初始化SPI寄存器的接收中断程序SPI_IRQ;建立所述SPI寄存器的接收缓冲区;对所述MCU的外部中断寄存器进行初始配置,将CS片选信号复用为外部中断的触发管脚,并将所述触发管脚配置为在所述CS片选信号上升沿触发CS外部中断信号;基于所述CS片选信号和所述接收中断程序SPI_IRQ将接收到的单字节数据放入所述接收缓冲区;基于所述CS片选信号和所述CS外部中断信号从所述接收缓冲区中取出收到的一帧完整的数据;所述一帧完整的数据包括具有字节累计长度的所述单字节数据。2.如权利要求1所述的台区智能融合终端SPI通信中不定长数据帧的接收方法,其特征在于,所述初始化MCU的SPI接口,对所述MCU的从机的配置寄存器进行初始配置,包括:配置所述SPI接口的通信模式;配置SPI寄存器的CS片选信号控制方式为硬件片选信号NSS_Hard;所述硬件片选信号NSS_Hard用于使所述从机根据主机的SPI 接口的CS片选信号电平自动开启接收状态。3.如权利要求2所述的台区智能融合终端SPI通信中不定长数据帧的接收方法,其特征在于,所述配置所述SPI接口的通信模式,包括:将所述MCU的SPI接口设置为主机发送,从机接收模式,并配置所述SPI接口的时钟的极性和相位与主机的时钟的极性和相位一致。4.如权利要求1所述的台区智能融合终端SPI通信中不定长数据帧的接收方法,其特征在于,所述初始化SPI寄存器的接收中断程序SPI_IRQ,包括:配置中断事件接收非空标志RXNE;所述非空标志RXNE用于当MCU内部SPI接收数据非空时,触发所述接收中断程序SPI_IRQ。5.如权利要求1所述的台区智能融合终端SPI通信中不定长数据帧的接收方法,其特征在于,所述对所述MCU的外部中断寄存器进行初始配置,包括:利用MCU事件线边沿检测器,设置CS外部中断处理程序,并开启IO复用外设时钟APB_AFIO...

【专利技术属性】
技术研发人员:刘巍翟志国陆志远雷轩田轶崔振伟杜瑞冰芦斌白明刘庆亮
申请(专利权)人:石家庄科林物联网科技有限公司
类型:发明
国别省市:

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

1