一种适用于RISC-V架构的基于DMA的SPI通讯方法与流程

文档序号:37823253发布日期:2024-04-30 17:32阅读:12来源:国知局
一种适用于RISC-V架构的基于DMA的SPI通讯方法与流程

本发明涉及集成电路,具体为一种适用于risc-v架构的基于dma的spi通讯方法。


背景技术:

1、在单片机系统中,肯定会遇到单片机与其他外部芯片进行数据传输的情况。如果传输数据量大,传输频繁,我们往往会选择通信速率较高的spi接口,并且配合dma控制器进行使用。

2、现有技术中,数据直接在内存和io设备之间传输,由硬件直接实现,与cpu流水作业相比传输效率更高,而且还可以把cpu从重复的机械性任务中解放出来,去做一些运算类的任务。

3、但是,在目前的risc-v架构中,完成dma传输相关配置后,操作通道使能寄存器开始发送数据,本次发送使能只是单次传输,本次数据发送完成后就会停止,想要再传输的话,必须关断dma使能后重新配置才能进行下一次传输。在传输数据量大、传输频繁的情况下,频繁的申请和释放dma通道的开销就会变得相当可观。spi接收到数据后,只能触发spi中断,并不能触发dma中断,因此不能使用dma进行数据接收。


技术实现思路

1、本发明的目的在于提供一种适用于risc-v架构的基于dma的spi通讯方法,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案:一种适用于risc-v架构的基于dma的spi通讯方法,所述方法包括以下步骤:

3、将dma控制寄存器chn_ctrl_a,保留未使用的第8位chn_ctrl_a[8]设置为循环模式使能,该位为0时为为单次传输模式,该位置1时为循环传输模式;

4、将dma中断状态寄存器chn_int_status的第4位,chn_int_status[0:3]由原来的发送中断标志,改为传输中断标志,即接收和发送共用。

5、优选的,选择一路usi将其设置为spi模式,并设置该路spi的通信速率、主从机模式、极性和相位、数据大小端模式、数据位宽。

6、优选的,申请一路空闲的dma通道,并设置数据源地址、目标地址、数据位宽、单次传输数据长度、数据大小端模式、传输类型、循环模式。

7、优选的,dma通道使能中断,使能通道,开始传输数据,此时cpu去做其他运算类的任务。

8、优选的,dma发送一半中断触发,此后dma将不再访问前半段数据所在存储区域,mcu对该区域内的数据进行更新,而不会与dma发生冲突,适合于cpu其它运算任务轻,spi数据发送任务较重的应用场景。

9、优选的,如果mcu有其它运算类任务处理,在dma发生完成中断触发后,再对全部数据进行更新,适合于cpu其它运算任务重,spi数据发送任务较轻的应用场景。

10、与现有技术相比,本发明的有益效果是:

11、本发明提出的适用于risc-v架构的基于dma的spi通讯方法,将dma控制寄存器chn_ctrl_a,保留未使用的第8位chn_ctrl_a[8]设置为循环模式使能,该位为0时为为单次传输模式,该位置1时为循环传输模式;将dma中断状态寄存器chn_int_status的第4位,chn_int_status[0:3]由原来的发送中断标志,改为传输中断标志,即接收和发送共用;解决了spi接收到数据后,只能触发spi中断,并不能触发dma中断,因此不能使用dma进行数据接收的问题。



技术特征:

1.一种适用于risc-v架构的基于dma的spi通讯方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种适用于risc-v架构的基于dma的spi通讯方法,其特征在于:选择一路usi将其设置为spi模式,并设置该路spi的通信速率、主从机模式、极性和相位、数据大小端模式、数据位宽。

3.根据权利要求1所述的一种适用于risc-v架构的基于dma的spi通讯方法,其特征在于:申请一路空闲的dma通道,并设置数据源地址、目标地址、数据位宽、单次传输数据长度、数据大小端模式、传输类型、循环模式。

4.根据权利要求1所述的一种适用于risc-v架构的基于dma的spi通讯方法,其特征在于:dma通道使能中断,使能通道,开始传输数据,此时cpu去做其他运算类的任务。

5.根据权利要求1所述的一种适用于risc-v架构的基于dma的spi通讯方法,其特征在于:dma发送一半中断触发,此后dma将不再访问前半段数据所在存储区域,mcu对该区域内的数据进行更新,而不会与dma发生冲突,适合于cpu其它运算任务轻,spi数据发送任务较重的应用场景。

6.根据权利要求1所述的一种适用于risc-v架构的基于dma的spi通讯方法,其特征在于:如果mcu有其它运算类任务处理,在dma发生完成中断触发后,再对全部数据进行更新,适合于cpu其它运算任务重,spi数据发送任务较轻的应用场景。


技术总结
本发明涉及集成电路技术领域,具体为一种适用于RISC‑V架构的基于DMA的SPI通讯方法,将DMA控制寄存器CHn_CTRL_A,保留未使用的第8位CHn_CTRL_A[8]设置为循环模式使能,该位为0时为为单次传输模式,该位置1时为循环传输模式;将DMA中断状态寄存器CHn_INT_STATUS的第4位,CHn_INT_STATUS[0:3]由原来的发送中断标志,改为传输中断标志,即接收和发送共用;解决了SPI接收到数据后,只能触发SPI中断,并不能触发DMA中断,因此不能使用DMA进行数据接收的问题。

技术研发人员:赵国峰,赵鑫鑫,姜凯,李锐
受保护的技术使用者:山东浪潮科学研究院有限公司
技术研发日:
技术公布日:2024/4/29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1