基于DMA的SPI数据传输方法及装置制造方法及图纸

技术编号:7604212 阅读:896 留言:0更新日期:2012-07-22 07:23
本发明专利技术涉及一种基于DMA的SPI数据传输方法及装置,其中方法包括:为SPI配置DMA控制器;通过DMA控制器在外部存储设备与RAM之间进行SPI数据传输加载/下载启动程序代码。本发明专利技术通过引入DMA机制,并结合采用SPI串行总线的方式,在加载/下载启动程序代码时,由DMA控制器控制数据直接传输,其传输过程释放了MCU控制权,从而保证了启动加载程序准确且连续的读/写,增强了启动加载程序传输的可靠性,提高了系统传输效率,而且本发明专利技术可以DMA的方式灵活支持基于SPI之上的各种通讯协议,兼容不同形式的程序代码构成,使得系统传输数据可配置特性增强。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种应用于加载/或启动程序代码的基于 DMA (Direct Memory Access,直接存储器访问)的 SPI (Serial Peripherallnterface,串行外围设备接口)数据传输方法及装置。
技术介绍
目前,在嵌入式系统中,当系统上电后,需要启动加载程序初始化硬件设备、完成内存空间映射,以使系统进入到合适的软硬件环境。启动加载程序通常写在系统中某些固态存储设备中,例如ROM (Read-Only Memory,只读存储器)或Flash (Flash Memory,闪存) 等。因此,固态存储设备与RAM (random access memory,随机存储器)间需要可靠无差错的数据交换。目前通用方式包括使用NAND FLASH/NOR FLASH加载启动程序,通过加载启动程序的方式,MCU(MicroControllerUnit,微控制器)在控制加载过程中,由于CPU (Central Processing Unit,中央处理器)的大量中断负载以及中断处理而影响了加载效率,进一步降低了系统效率,同时也对数据代码传输的可靠性造成影响。
技术实现思路
本专利技术的主要目的在于提供一种基于DMA的SPI数据传输方法及装置,旨在提高启动加载程序传输的可靠性以及系统效率。为了达到上述目的,本专利技术提出一种基于直接存储器访问DMA的串行外围设备接口 SPI数据传输方法,包括为SPI配置DMA控制器;通过所述DMA控制器在外部存储设备与随机存储器RAM之间进行SPI数据传输加载/下载启动程序代码。优选地,所述通过DMA控制器在外部存储设备与RAM之间进行SPI数据传输加载 /下载启动程序代码的步骤包括当系统上电后需要启动加载程序时,在所述DMA控制器的控制下,将预先固化在该外部存储设备中的启动加载程序代码通过SPI加载到所述RAM中。优选地,所述通过DMA控制器在外部存储设备与RAM之间进行SPI数据传输的步骤加载/下载启动程序代码还包括 当系统需要启动下载程序时,在所述DMA控制器的控制下,将RAM中的启动下载程序代码通过SPI下载到所述外部存储设备中。优选地,该方法还包括对所述加载/下载启动程序代码进行更新。优选地,所述外部存储设备包括只读存储器ROM或闪存Flash。优选地,所述SPI总线支持为standard SPI、dual SPI和quad SPI三种SPI模式;SPI数据总线宽度可配置。本专利技术还提出一种基于DMA的SPI数据传输装置,包括DMA配置模块,用于为SPI配置DMA控制器;数据传输模块,用于通过所述DMA控制器在外部存储设备与RAM之间进行SPI数据传输加载/下载启动程序代码。优选地,所述数据传输模块还用于当系统上电后需要启动加载程序时,在所述DMA 控制器的控制下,将预先固化在该外部存储设备中的启动加载程序代码通过SPI加载到所述RAM中。优选地,所述数据传输模块还用于当系统需要启动下载程序时,在所述DMA控制器的控制下,将RAM中的启动下载程序代码通过SPI下载到所述外部存储设备中。优选地,所述装置还包括代码更新模块,用于对所述加载/下载启动程序代码进行更新。本专利技术提出的一种基于DMA的SPI数据传输方法及装置,通过引入DMA机制,并结合采用SPI串行总线的方式,在加载/下载启动程序代码时,由DMA控制器控制数据直接传输,其传输过程释放了 MCU控制权,从而保证了启动加载程序准确且连续的读/写,增强了启动加载程序传输的可靠性,提高了系统传输效率,而且本专利技术可以DMA的方式灵活支持基于SPI之上的各种通讯协议,兼容不同形式的程序代码构成,使得系统传输数据可配置特性增强。附图说明图1是本专利技术基于DMA的SPI数据传输方法一实施例流程示意图;图2是本专利技术基于DMA的SPI数据传输装置一实施例结构示意图。为了使本专利技术的技术方案更加清楚、明了,下面将结合附图作进一步详述。具体实施例方式本专利技术实施例解决方案主要是通过引入DMA机制,并结合采用SPI串行总线的方式,以增强启动加载程序传输的可靠性,提高系统效率。如图1所示,本专利技术一实施例提出一种基于DMA的SPI数据传输方法,包括步骤SlOl,为SPI配置DMA控制器;如前所述,在嵌入式系统中,当系统上电后,需要通过SPI启动加载程序初始化硬件设备、完成内存空间映射,以使系统进入到合适的软硬件环境。启动加载程序通常写在系统中某些固态存储设备中,例如ROM或Flash等。现有的NAND FLASH/NOR FLASH加载启动加载程序方式,由于大量中断负载以及中断处理而影响了加载效率,影响了数据代码传输的可靠性。在加载/下载启动程序代码时,为了实现固态存储设备与RAM之间数据代码交换的可靠性,本实施例中引入DMA机制,并结合SPI总线的特点,由MCU配置DMA控制器,通过 DMA控制器实现Flash等外部存储设备与RAM之间SPI数据的传输;其中,外部存储设备包括只读存储器ROM或闪存Flash或支持相同传输方法的装置,比如两种支持相同传输方法的相同装置对接,A装置可以读取B装置的RAM数据,同样的B装置也可以读取A装置的RAM 数据,即装置与装置之间可以进行数据交互。标准SPI总线为三线同步接口,其采用同步串行3线方式进行通信一条时钟线 SCK,一条数据输入线M0SI,一条数据输出线MISO ;用于CPU与各种外围器件进行全双工、同步串行通讯;本专利技术在实际应用中,可在标准SPI基础上进行扩展,具体可在dual SPI模式下进行2位数据总线数据通信,在quad SPI模式下进行4位并行数据总线数据通信。SPI的主要特点有可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。DMA允许不同速度的硬件装置来沟通,而不需要依于CPU的大量中断负载。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,在 DMA控制器的控制下,可实现RAM与外部设备之间直接进行数据传送。步骤S102,通过DMA控制器在外部存储设备与RAM之间进行SPI数据传输加载/ 下载启动程序代码。其中,外部存储设备可以为ROM或Flash等。在本实施例中,通过DMA控制器可以实现将SPI数据(code)由RAM写到Flash 等外部存储设备中(下载过程),或者,将SPI数据code从外部Flash等存储设备加载到 RAM (加载过程)。具体地,当系统上电后需要启动加载程序时,在DMA控制器的控制下,将预先固化在该外部存储设备中的启动加载程序代码通过SPI加载到RAM中。或者,当系统需要启动下载程序时,在DMA控制器的控制下,将RAM中的启动下载程序代码通过SPI下载到外部存储设备中。进一步的,对于启动加载程序的加载过程,还可扩展到通过DMA控制器将预先固化在该外部存储设备中的启动加载程序代码通过SPI加载到需要启动加载程序的其他设备中。更进一步的,为了便于软件调试开发,本实施例方法还可对加载启动程序代码或下载启动程序代码进行更新。本实施例中SPI总线支持standard SPI、dual SPI和quad SPI三种SPI模式, 在实际应本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘京芝
申请(专利权)人:深圳市硅格半导体有限公司
类型:发明
国别省市:

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

1
相关领域技术