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

一种基于DMA的SPI并发通讯SE装置及方法与流程

2022-02-19 05:22:27 来源:中国专利 TAG:

一种基于dma的spi并发通讯se装置及方法
技术领域
1.本发明涉及通信技术技术领域,特别涉及一种基于dma的spi通讯装置及方法。


背景技术:

2.se,secure element的简称,直译为安全单元,又称为安全芯片,随着物联网的飞速发展,物联网的安全问题日益突出,物联网安全已成为物联网产业发展的重要基石,se模块在物联网安全中扮演越来越重要的角色。随着se应用的越来越广与越来越成熟,se作为从机,与主机mcu通讯接口的类型越来越多,常用的有spi、i2c、uart、7816接口。不可避免的在一些应用场景下,会涉及到se芯片多接口并发通讯,如图1所示,即单颗se芯片通过spi接口与一个mcu(简称mcu1)通讯,同时会通过其余接口(i2c、uart、7816)与另一颗mcu(mcu2)通讯。
3.为解决se芯片的spi接口在并发通讯场景下,其余接口对spi接口的通讯影响(如其余接口在执行flash擦写等导致cpu hold的场景等),导致spi接口通讯出错,市面上常用的方案主要有三种:
4.其中第一种方案,扩大fifo或者扩大buffer方案,但是该方案主要有两大缺陷:缺陷一:se应用场景中,由于spi接口只有总线规范,并没有通用的数据链路层规范,因此基于spi接口单帧传输的长度可以达到几kbytes以上(如8kbytes),如果开辟这么大的fifo或者buffer,会导致成本太高;缺陷二:由于fifo或者buffer集成在spi模块,数据接收或者发送时,需要增加从spi模块与系统sram之间的copy动作,影响效率;
5.第二种方案,采用dma的常规传输方式,dma方式虽然可以规避第一种方案中的两种缺陷,但是由于spi接口为同步接口,se作为从机,se无主动控制权,同时spi接口为全双工接口,发送数据的同时会接收数据,这样会导致如从spi收完数据后,需要处理相应命令与任务,而从spi对每个命令的执行时间不同,有可能导致从spi被动的接收不需要的数据,从而干扰当前的数据接收区,导致通讯失败;
6.第二种方案,采用dma的常规传输方式,不能处理数据传输长度不匹配问题,如当mcu端发送数据少于se端期望数据时,dma端由于检测不到spi模块的传输终止信号,会一直等待传输结束,导致cpu死锁。
7.第三种方案,dma结合gpio引脚方案:为解决第二种方案的问题,现有的研究中有的通过增加4条信号握手线或者2条信号握手线,保证主从通讯的同步,但是主从需要增加gpio握手线,需要增加硬件成本,适用性差。


技术实现要素:

8.本发明为了解决spi接口并发通讯时的缺陷,以及克服现有技术中存在的不足,本发明是通过以下技术方案实现的:
9.本发明一方面提供一种基于dma的spi并发通讯se装置:包括spi接口模块,其余接口模块,dma模块,cpu模块,存储器模块,算法模块,时钟模块,复位模块,其中:
10.其余接口模块(i2c、uart、7816),本领域技术人员都可以理解该类接口定义;spi接口模块支持接收数据或发送数据完成后,会设置spi模块中断标志,产生中断请求,同时会产生高电平请求信号到dma模块,并停止dma spi通道搬移数据;spi接口模块分为接收数据通道spi rx channel与发送数据通道spi tx channel,两个通道均可以单独关闭或者打开;spi接口模块支持自动发送转接收功能,即在发送数据通道完成数据发送后,可以关闭发送数据完成中断,同时自动开启接收数据通道,启动dma接收通道搬移数据。
11.dma模块实现接口模块与指定系统sram之间的数据搬移,dma支持8个通讯通道,spi接收数据时对应的dma通道为dma channel0,spi发送数据时对应的dma通道为dma channel1;可以配置每个通讯通道优先级,每个通道都有外设请求传输停止信号,dma模块停止传输除了由常规的dma传输长度控制外,可以由外设请求传输停止信号控制,支持spi模块接收或者发送数据完成后,触发外设请求传输停止信号,请求dma通道传输终止功能。
12.cpu模块为se芯片的运算控制核心,是信息处理、程序运行的最终执行单元。
13.存储器模块负责数据存储;
14.算法模块,负责对接口模块中接收或者发送的数据进行加解密。
15.时钟模块是为各个模块提供时钟,为各个模块协调工作提供控制信号。
16.复位模块,支持mcu通过gpio引脚对se芯片进行复位。
17.本发明另一方面提供了一种基于dma的spi并发通讯方法,包括如下步骤:
18.1)、se芯片上电后,初始化应用程序变量、spi接口模块与dma模块:打开spi接收数据通道spi rx channel,关闭spi发送数据通道spi tx channel,配置spi模块接收数据完成中断使能,使能dma模块对应的spi接收通道dma channel0,并使能spi数据接收或者发送完成后,禁止dma搬移数据功能;
19.2)、spi模块产生接收完成中断产生后,根据上层协议对接收数据进行完整性校验与协议合法性;校验成功后,关闭spi模块接收通道;否则将错误上报应用层;
20.3)、接收数据完成后,对spi接口应用层与其余接口应用层处理模块进行任务调度,并根据各接口对应的应用层协议进行处理;
21.4)、打开spi模块发送通道spi tx channel,等待spi总线由忙转空闲后,发送起始域(包括长度字节)给主端mcu;
22.5)、mcu解析完成起始域(包括长度字节)后,必须等待一段时间,保证se芯片通过dma通道准备好发送数据;
23.6)、使能dma对应的spi发送通道dma channel1,开启spi接口模块的自动发送转接收功能,通过dma通道发送剩余数据;
24.循环执行步骤2)~6),直到应用层结束通讯。
25.与现有技术相比,本发明带来的有益效果为:
26.本发明针对市面上se芯片中spi接口的并发需求,提出了一种基于dma的spi并发通讯se装置及方法:1)spi接口模块增加接收通道spi rx channel与发送通道spi tx channel可开关机制,以及spi接口模块引入自动发送转接收功能,以较小的设计成本,解决市面上常规dma传输方法不能适应spi总线特性(全双工与同步机制)的问题,同时很好的适应了spi与其余接口并发通讯场景下的互相干扰问题;2)dma模块增加外设请求传输停止信号,spi接口模块增加接收或发送完成中断,同时给dma模块发送高电平请求,强制dma传输
停止,解决了通过spi接口传输时,主机mcu端与从机se端收发数据长度不匹配问题,提高了spi与其余接口并发通讯场景下的传输可靠性。
附图说明
27.图1是se与多个mcu并发通讯应用场景图
28.图2是基于dma的spi并发通讯se装置图
29.图3是基于dma的spi并发通讯流程图
具体实施方式
30.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
31.图1为本发明的se装置与多个mcu并发通讯应用场景,即单颗se芯片通过spi接口与一个mcu(简称mcu1)通讯,同时会通过其余接口(i2c、uart、7816)与另一颗mcu(mcu2)通讯。
32.本发明一方面提供一种基于dma的spi并发通讯se装置,如图2所示,包括spi接口模块,其余接口模块,dma模块,cpu模块,存储器模块,算法模块,时钟模块,复位模块。
33.spi接口模块兼容摩托罗拉公司定义的spi总线接口规范,并扩展功能。
34.spi接口模块内部分为接收数据通道(spi rx channel)与发送数据通道(spi tx channel),两个通道均可以通过软件单独关闭或者打开;spi接口模块在接收或者发送数据时,必须使能spi rx channel或者使能spi tx channel,spi接口模块只有使能该功能时,才能通过spi接口与mcu进行数据交互。
35.spi接口模块支持自动发送转接收功能:即在发送数据通道完成数据发送后,可以关闭发送数据完成中断,同时自动开启接收数据通道,并启动dma接收通道搬移数据。
36.spi接口模块可以控制接收数据或者发送数据时,是否通过dma模块对应的通道进行搬移,dma搬移功能使能后,接收数据阶段,spi接口模块每接收到一个字节数据,会触发高电平请求,请求dma通道将数据从spi fifo搬移到sram;spi接口发送数据阶段,当fifo有一字节空闲时,会触发高电平请求,请求dma通道将数据从sram搬移到spi fifo。
37.其余接口模块可以包括i2c、uart、7816接口模块,本领域技术人员都可以理解该类接口定义,都可以集成到se芯片中。
38.dma模块实现spi接口模块与指定系统sram之间的数据搬移,dma支持搬移数据支持8位,16位,32位传输位宽,支持8个通讯通道,spi接收数据对应的通道为dma channel0,spi接口发送数据对应的通道为dma channel1。
39.dma模块搬移数据时,可以配置每个通讯通道优先级,每个通道都有外设请求传输停止信号,dma模块停止传输除了由常规的dma传输长度控制外,可以由外设请求传输停止信号控制,支持spi模块接收或者发送数据完成后,触发外设请求传输停止信号,请求dma通道传输终止功能。
40.cpu模块为se芯片的运算控制核心,是信息处理、程序运行的最终执行单元。
41.存储器模块存储介质为flash,负责程序存储与数据存储;
42.算法模块,包括rsa,des、aes国际算法,负责对接口模块中接收或者发送的数据进
行加解密。
43.时钟模块是se芯片的心脏,最高运行频率为72mhz,为各个模块提供时钟,为各个模块协调工作提供控制信号。
44.复位模块,支持mcu端通过gpio引脚对se芯片进行复位,也支持通过watchdog对se芯片进行复位。
45.本发明另一方面提供了一种基于dma的spi并发通讯方法,如图3所示,包括如下步骤:
46.1)、se芯片上电后,初始化应用程序变量、spi接口模块与dma模块:打开spi接收数据通道spi rx channel,关闭spi发送数据通道spi tx channel,配置spi模块接收数据完成中断使能,使能dma模块对应的spi接收通道dma channel 0,配置sram搬移目的地址,使能spi数据接收或者发送完成后,禁止dma搬移数据功能;
47.2)、spi模块产生接收完成中断产生后,在中断服务处理程序中判断spi rx channel是否打开,否则为异常中断;在spi帧接收处理函数中,根据上层协议对接收数据进行crc完整性校验与数据链路层协议合法性;校验成功后,关闭spi模块接收通道;否则将错误上报应用层;
48.3)、spi接口模块接收数据完成后,进入应用处理调度模块:即对spi接口应用层与其余接口应用层处理模块进行任务调度,并根据各接口对应的应用层协议进行处理;
49.4)、应用层处理完成后,打开spi模块发送通道spi tx channel,等待spi总线由忙转空闲后,发送起始域(包括长度字节与协议控制字节)给主端mcu;
50.5)、mcu解析完成起始域(包括长度字节)后,如果非期望起始域,需要循环读取起始域,读到期望起始域后,必须等待一段时间,保证se芯片通过dma通道准备好发送数据;
51.6)、se使能dma对应的spi发送通道dma channel 1,配置dma搬移源sram地址,并开启spi接口模块的自动发送转接收功能,通过dma通道发送剩余数据;
52.循环执行步骤2)~6),直到应用层结束通讯。
53.以上所述仅为本发明较佳可行的实施例,非因此局限本发明保护范围,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的修改或者替换,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献