一种基于AHB总线SD卡数据自搬运方法及装置与流程

文档序号:17474391发布日期:2019-04-20 06:01阅读:292来源:国知局
一种基于AHB总线SD卡数据自搬运方法及装置与流程

本发明属于集成电路设计技术领域,提供一种基于ahb总线sd卡数据自搬运方法及装置。



背景技术:

传统的芯片自启动功能,是将固化在芯片内部低速rom中的启动软件的代码和数据加载到高速的ram中,再由处理器加载实现自启动。启动软件的代码和数据无法更改,缺乏灵活性;且启动软件的代码和数据较多时,rom面积会很大,占用了芯片内部面积。



技术实现要素:

本发明提供一种基于ahb总线sd卡数据自搬运方法及装置,通过自启动电路从片外sd卡加载自启动代码,达到减少rom硬件开销的效果。

第一发明,本发明实施例提供了一种基于高级高性能总线ahb总线安全数码sd卡数据自搬运方法,所述方法应用于sd卡数据自搬运电路,所述电路包括时钟使能模块1、sd卡初始化模块2、直接存储器访问dma使能模块3、仲裁模块4,所述方法包括:

所述时钟使能模块1收到启动信号;

所述仲裁模块4依据所述sd卡的控制器的状态,使时钟使能模块1工作;

所述时钟使能模块1完成sd卡控制器的初始化;

所述仲裁模块4依据所述sd卡控制器的状态,使sd卡初始化模块2工作;

sd卡初始化模块2完成所述sd卡的初始化操作;

仲裁模块4依据所述sd卡控制器的状态,使dma使能模块3开始工作;

dma使能模块3完成dma使能,从而完成数据搬运。

可选的,所述时钟使能模块1电路由第一状态机实现,第一状态机包括空闲状态、写操作控制信号发送状态、写操作数据信号发送状态、写操作完成状态、读控制信号发送状态、读空闲状态、读操作检测状态、时钟使能完成状态,其中:

在空闲状态下,当时钟使能信号为高时,进入写操作控制信号发送状态;当时钟使能信号为低时,保持空闲状态;

在写操作控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向所述sd卡的控制器发送写控制信号,并且根据不同的写计数值发送不同的控制命令;

在写操作数据信号发送状态下,sd卡数据自搬运电路通过ahb数据总线向控制器发送数据信号;

在写操作完成状态下,完成从设备读信号的检测,若从设备读信号为高,则根据不同的写计数值分别进入不同的状态;若从设备读信号为低,继续保持写操作完成状态直到从设备读信号为高;

在读控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送读控制信号;

在读空闲状态下,不进行任何操作;

在读操作检测状态下,完成从设备读信号的检测,当从设备读信号为高时,对读到的数据进行检测,如果读到的sd卡控制器匹配信息成立,接下来状态机跳转到写操作控制信号发送状态,如果读到的sd卡控制器匹配信息不成立,则进入读控制信号发送状态继续读该寄存器;当从设备读信号为低时,继续保持读操作检测状态直到从设备读信号为高。

在时钟使能完成状态下,控制器完成内部与外部时钟使能。

可选的,sd卡初始化模块2电路由第二状态机实现,第二状态机包括空闲状态、写操作控制信号发送状态、写操作数据信号发送状态、写操作完成状态、读控制信号发送状态、读空闲状态、读操作检测状态、卡的初始化完成状态,其中:

在空闲状态下,当sd卡初始化信号为高时,进入空闲状态;当sd卡初始化信号为低时,保持空闲状态;

在写操作控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送写控制信号,并且根据不同的写计数值发送不同的控制命令;

在写操作数据信号发送状态下,sd卡数据自搬运电路通过ahb数据总线向控制器发送数据信号;

在写操作完成状态下,完成从设备读信号的检测,如果从设备读信号为高,则根据不同的写计数值分别进入不同的状态;如果从设备读信号为低,继续保持写操作完成状态直到从设备读信号为高;

在读控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送读控制信号。并且根据不同的读计数值发送不同的读控制命令;

在读空闲状态下,不进行任何操作;

在读操作检测状态下,完成从设备读信号的检测,当从设备读信号为高时,对读到的数据进行检测,如果读到的sd卡控制器匹配信息成立,根据此时的读计数值跳转到对应的状态,如果读到的sd卡控制器匹配信息不成立,则进入读控制信号发送状态继续读该寄存器;当从设备读信号为低时,继续保持读操作检测状态直到从设备读信号为高;

在卡的初始化完成状态下,控制器完成卡的初始化与选定操作。

可选的,dma使能模块3电路由第三状态机实现,所述第三状态机包括空闲状态、写操作控制信号发送状态、写操作数据信号发送状态、写操作完成状态、读控制信号发送状态、读空闲状态、读操作检测状态、dma初始化完成状态,其中:

在空闲状态下,当dma初始化信号为高时,进入写操作控制信号发送状态,当dma初始化信号为低时,保持空闲状态;

在写操作控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送写控制信号,并且根据不同的写计数值发送相应的控制命令;

在写操作数据信号发送状态下,sd卡数据自搬运电路通过ahb数据总线向控制器发送数据信号;

在写操作完成状态下,完成从设备读信号的检测,如果从设备读信号为高,则根据不同的写计数值分别进入对应的状态;如果从设备读信号为低,继续保持写操作完成状态直到从设备读信号为高;

在读控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送读控制信号,根据不同的读计数值发送对应的读控制命令;

在读空闲状态下,不进行任何操作;

在读操作检测状态下,完成从设备读信号的检测,当从设备读信号为高时,对读到的数据进行检测,如果读到的sd卡控制器匹配信息成立,根据此时的读计数值跳转到对应的状态,如果读到的sd卡控制器匹配信息不成立,则进入读控制信号发送状态继续读该寄存器,当从设备读信号为低时,继续保持读操作检测状态直到从设备读信号为高;

在dma初始化完成状态下,控制器完成dma初始化与搬数操作。

第二发明,本发明实施例提供了一种基于ahb总线sd卡数据自搬运装置,所述装置包括时钟使能模块1、sd卡初始化模块2、dma使能模块3、仲裁模块4四个模块,其中,仲裁模块4分别与时钟使能模块1、sd卡初始化模块2、dma使能模块3相连,时钟使能模块1与sd卡初始化模块2相连,sd卡初始化模块2与dma使能模块3相连。

本发明的主要目的是提供于ahb总线sd卡数据自搬运方法及装置,通过设计一种实现片上处理器芯片从片外加载启动代码进行自启动的电路和方法,减少了rom硬件开销。

附图说明

图1是本发明实施例提供的一种基于ahb总线sd卡数据自搬运方法的流程示意图;

图2是本发明实施例提供的一种基于ahb总线sd卡数据自搬运装置的结构示意图。

具体实施方式

下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。

实施例一

本发明实施例提供了一种基于高级高性能总线ahb总线安全数码sd卡数据自搬运方法,所述方法应用于sd卡数据自搬运电路,所述电路包括时钟使能模块(1)、sd卡初始化模块(2)、直接存储器访问dma使能模块(3)、仲裁模块(4)。如图1所示,所述方法包括:

步骤101:所述时钟使能模块(1)收到启动信号;

步骤102:所述仲裁模块(4)依据所述sd卡的控制器的状态,使时钟使能模块(1)工作;

步骤103:所述时钟使能模块(1)完成sd卡控制器的初始化;

步骤104:所述仲裁模块(4)依据所述sd卡控制器的状态,使sd卡初始化模块(2)工作;

步骤105:sd卡初始化模块(2)完成所述sd卡的初始化操作;

步骤106:仲裁模块(4)依据所述sd卡控制器的状态,使dma使能模块(3)开始工作;

步骤107:dma使能模块(3)完成dma使能,从而完成数据搬运。

可选的,所述时钟使能模块(1)电路由第一状态机实现,第一状态机包括空闲状态、写操作控制信号发送状态、写操作数据信号发送状态、写操作完成状态、读控制信号发送状态、读空闲状态、读操作检测状态、时钟使能完成状态,其中:

在空闲状态下,当时钟使能信号为高时,进入写操作控制信号发送状态;当时钟使能信号为低时,保持空闲状态;

在写操作控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向所述sd卡的控制器发送写控制信号,并且根据不同的写计数值发送不同的控制命令;

在写操作数据信号发送状态下,sd卡数据自搬运电路通过ahb数据总线向控制器发送数据信号;

在写操作完成状态下,完成从设备读信号的检测,若从设备读信号为高,则根据不同的写计数值分别进入不同的状态;若从设备读信号为低,继续保持写操作完成状态直到从设备读信号为高;

在读控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送读控制信号;

在读空闲状态下,不进行任何操作;

在读操作检测状态下,完成从设备读信号的检测,当从设备读信号为高时,对读到的数据进行检测,如果读到的sd卡控制器匹配信息成立,接下来状态机跳转到写操作控制信号发送状态,如果读到的sd卡控制器匹配信息不成立,则进入读控制信号发送状态继续读该寄存器;当从设备读信号为低时,继续保持读操作检测状态直到从设备读信号为高。

在时钟使能完成状态下,控制器完成内部与外部时钟使能。

可选的,sd卡初始化模块(2)电路由第二状态机实现,第二状态机包括空闲状态、写操作控制信号发送状态、写操作数据信号发送状态、写操作完成状态、读控制信号发送状态、读空闲状态、读操作检测状态、卡的初始化完成状态,其中:

在空闲状态下,当sd卡初始化信号为高时,进入空闲状态;当sd卡初始化信号为低时,保持空闲状态;

在写操作控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送写控制信号,并且根据不同的写计数值发送不同的控制命令;

在写操作数据信号发送状态下,sd卡数据自搬运电路通过ahb数据总线向控制器发送数据信号;

在写操作完成状态下,完成从设备读信号的检测,如果从设备读信号为高,则根据不同的写计数值分别进入不同的状态;如果从设备读信号为低,继续保持写操作完成状态直到从设备读信号为高;

在读控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送读控制信号。并且根据不同的读计数值发送不同的读控制命令;

在读空闲状态下,不进行任何操作;

在读操作检测状态下,完成从设备读信号的检测,当从设备读信号为高时,对读到的数据进行检测,如果读到的sd卡控制器匹配信息成立,根据此时的读计数值跳转到对应的状态,如果读到的sd卡控制器匹配信息不成立,则进入读控制信号发送状态继续读该寄存器;当从设备读信号为低时,继续保持读操作检测状态直到从设备读信号为高;

在卡的初始化完成状态下,控制器完成卡的初始化与选定操作。

可选的,dma使能模块(3)电路由第三状态机实现,所述第三状态机包括空闲状态、写操作控制信号发送状态、写操作数据信号发送状态、写操作完成状态、读控制信号发送状态、读空闲状态、读操作检测状态、dma初始化完成状态,其中:

在空闲状态下,当dma初始化信号为高时,进入写操作控制信号发送状态,当dma初始化信号为低时,保持空闲状态;

在写操作控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送写控制信号,并且根据不同的写计数值发送相应的控制命令;

在写操作数据信号发送状态下,sd卡数据自搬运电路通过ahb数据总线向控制器发送数据信号;

在写操作完成状态下,完成从设备读信号的检测,如果从设备读信号为高,则根据不同的写计数值分别进入对应的状态;如果从设备读信号为低,继续保持写操作完成状态直到从设备读信号为高;

在读控制信号发送状态下,sd卡数据自搬运电路通过ahb总线向控制器发送读控制信号,根据不同的读计数值发送对应的读控制命令;

在读空闲状态下,不进行任何操作;

在读操作检测状态下,完成从设备读信号的检测,当从设备读信号为高时,对读到的数据进行检测,如果读到的sd卡控制器匹配信息成立,根据此时的读计数值跳转到对应的状态,如果读到的sd卡控制器匹配信息不成立,则进入读控制信号发送状态继续读该寄存器,当从设备读信号为低时,继续保持读操作检测状态直到从设备读信号为高;

在dma初始化完成状态下,控制器完成dma初始化与搬数操作。

实施例二

本发明实施例提供了一种基于ahb总线sd卡数据自搬运装置,如图2所示,所述装置包括时钟使能模块(1)、sd卡初始化模块(2)、dma使能模块(3)、仲裁模块(4)四个模块,其中,仲裁模块(4)分别与时钟使能模块(1)、sd卡初始化模块(2)、dma使能模块(3)相连,时钟使能模块(1)与sd卡初始化模块(2)相连,sd卡初始化模块(2)与dma使能模块(3)相连。

具体来说,使能信号有效时,首先时钟使能模块(1)最先开始工作,其次仲裁模块(4)依据sd卡控制器的状态,使时钟使能模块(1)获得电路控制权。时钟使能模块(1)获得电路控制权后,经由仲裁模块(4)首先使能sd卡控制器主设备时钟,直到控制器内部时钟稳定。然后对主设备时钟分频产生sd卡时钟,选择匹配电压。然后向卡供电,使能sd时钟。之后仲裁模块(4)继续依据sd卡控制器的状态,使sd卡初始化模块(2)获得电路控制权。sd卡初始化模块(2)获得电路控制权后,经由仲裁模块(4)首先向控制器发送命令使卡处于空状态。然后确定卡类型,配置工作电压。最后获取cid(卡识别号),获取rca(相对地址),选定卡。之后仲裁模块(4)继续依据sd卡控制器的状态,使dma使能模块(3)获得电路控制权。dma使能模块(3)获得电路控制权后,经由仲裁模块(4)首先配置控制器的使能寄存器,数据量寄存器,状态寄存器。然后设置块大小,发送读命令。最后由自启动电路通过ahb总线读取sd卡内的数据到芯片内部。

另外,当使能信号无效时,由cpu通过ahb总线正常读取sd卡内部数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1