一种设备端SD控制器、控制方法及电子设备技术

技术编号:23764151 阅读:23 留言:0更新日期:2020-04-11 18:57
本公开提供了一种设备端SD控制器、控制方法及电子设备,将设备端SD控制器内部各主要模块功能细分,通过定义的方式来确定模块内SD或SDIO相关部分是否实现,可以在面对不同的应用场景时采用不同的实现方式;将DMA控制模块进行改进,并添加了中断及地址控制模块,将部分驱动的功能用硬件来实现,这大大减轻了CPU的负担;本公开对DMA数据控制部分功能的改进和软件功能用硬件实现的思路可以广泛应用于使用DMA控制数据传输的各种控制器中,具有很好的指导意义;同时本公开给出了完整的设备端SD控制器的实现架构和方法,对于使用SD协议的外部存储卡和SDIO协议的外部设备控制器的设计实现具有很好的指导借鉴意义。

A device end SD controller, control method and electronic equipment

【技术实现步骤摘要】
一种设备端SD控制器、控制方法及电子设备
本公开涉及SD控制
,特别涉及一种设备端SD控制器、控制方法及电子设备。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
,并不必然构成现有技术。SDIO协议是在SD协议的基础上发展起来的接口,本专利技术所指的设备端SD控制器既支持SD接口协议也支持SDIO接口协议。SD协议主要用于芯片系统和存储设备之间的数据传输控制,而SDIO协议主要用于芯片系统与外围芯片设备之间的数据传输控制。像生活中我们常见的SD卡都属于符合SD接口协议的外部设备,而SDIO接口支持的设备有蓝牙,wifi,GPS等设备。如图1所示,主机端SD控制器是芯片系统与SD卡或SDIO设备(此后简称外部设备)通过SD总线协议进行数据传输的控制模块,设备端SD控制器是外部设备端的控制器。当芯片系统需要通过SD接口将数据发送到外部设备时,CPU先通过系统总线(以AHB为例)对主机端SD控制器进行正确的初始化配置,然后再通过主机端SD控制器发送符合SD协议的初始化命令经过SD总线对设备端SD控制器进行初始化配置。初始化完成后,芯片系统的CPU通过AHB总线对主机端SD控制器相应控制寄存器进行配置,发送符合SD协议的写数据命令,同时将数据通过AHB或AXI总线发送给主机端SD控制器,当主机端SD控制器接收到设备端SD控制器关于之前的写数据命令的正确的响应后,设备端SD控制将系统总线上接收到的数据以符合SD协议的形式发送给设备端SD控制器,设备端SD控制器将数据存储下来或发送设备端的系统。芯片系统的读数据流程类似,只不过数据是由设备端SD控制器根据接收到的读命令准备好,通过SD总线发送给主机端SD控制器,主机端SD控制器读回数据后通知芯片系统将数据取走。如图2所示,传统的设备端SD控制器(后面简称SD控制器)包含命令和数据两个通道。首先SD控制器会从命令通道上接收主机端SD控制器发过来的命令,给到命令控制模块中。命令控制模块产生相应的命令响应返回给主机端SD控制器,同时对命令进行解析产生相应的控制信号给到控制状态机和同步控制模块,命令状态机根据对于的信号进行跳转。同步控制信号负责将SD时钟域的信号同步到系统时钟域里。DMA控制模块则根据同步模块给的是否有数据传输的信号以及系统从接口给出的配置信号来决定DMA的启动和状态跳转。对于数据通路,若当前数据传输为主机端SD控制器的写数据操作时,数据控制模块负责接收SD接口数据通道的数据,然后将数据给到数据FIFO控制模块,然后由DMA控制模块将数据读出给到系统主接口,系统主接口发出相应的系统数据传输命令,将数据发送出去;若当前数据传输为主机端SD控制器的读数据操作时,先由命令通道接收到相关读命令,然后CPU通过系统从接口进行配置,由DMA控制系统主接口发出读数据命令,将数据读入数据FIFO控制模块,再由数据控制模块将数据从FIFO中读出,最后通过SD接口数据通道发送给主机端SD控制器。本公开专利技术人发现,传统的设备端SD控制器存在两个比较大的缺点,一是控制器的内部模块基本都同时支持SD协议和SDIO协议,模块内部功能混合在一起,而实际的应用中,特别是对于SDIO设备来说,我们经常只需要支持SD和SDIO协议中的一种,那么这种情况下SD控制器的内部逻辑就会有很大冗余,会影响到设备端芯片的面积和成本;二是对于每一次的数据传输,DMA控制器都是需要经过CPU的配置,数据的传输过程也都需要CPU的参与,这对于设备端的系统资源是很大的占用,会极大的影响设备端其他功能的实现。
技术实现思路
为了解决现有技术的不足,本公开提供了一种设备端SD控制器、控制方法及电子设备,很好的解决了传统的设备端SD控制器内部功能模块划分不合理以及针对不同应用的模块可定制性不强的问题;并通过对内部功能的改进实现部分软件功能硬件化,大大降低了设备端SD控制器对于CPU资源的占用,从而使得采用SD总线协议的芯片系统之间数据传输的更加快速和高效。为了实现上述目的,本公开采用如下技术方案:本公开第一方面提供了一种设备端SD控制器。一种设备端SD控制器,包括命令控制模块、数据控制模块、同步控制模块、中断及地址控制模块、数据FIFO控制模块和DMA控制模块;中断及地址控制模块接收到系统从接口发过来的配置信息后进入等待状态,等待同步模块传来相关数据传输的信号,中断及地址控制模块根据两端给的信息并根据DMA模块给出的传输完成中断,更新当前传输地址,并将更新后的地址发送给系统从接口,同时产生中断,通过系统从接口通知设备端系统;若当前数据传输为主机端SD控制器的写数据操作时,数据控制模块用于接收SD接口数据通道的数据,然后将数据给到数据FIFO控制模块,所述DMA控制模块根据接收到的中断及地址控制模块发来的DMA使能信号、更新后的地址和中断应答信号以及同步控制模块发来的数据块数、块长度和写数据信号,将数据读出给到系统主接口,系统主接口发出相应的系统数据传输命令,将数据发送出到设备端系统中;若当前数据传输为主机端SD控制器的读数据操作时,先由命令通道接收到抹零控制模块的相关读命令,所述DMA控制模块根据接收到的中断及地址控制模块发来的DMA使能信号、更新后的地址和中断应答信号以及同步控制模块发来的数据块数、块长度和读数据信号,发出读数据命令,将数据读入数据FIFO控制模块,再由数据控制模块将数据从数据FIFO控制模块中读出,最后通过SD接口数据通道发送给主机端SD控制器。作为可能的一些实现方式,所述命令控制模块包括SD命令控制模块和SDIO命令控制模块,所述设备端SD控制器从命令通道上接收主机端SD控制器发过来的命令,给到命令控制模块中,命令控制模块根据协议设计选择SD命令控制模块和SDIO命令控制模块。作为可能的一些实现方式,所述控制状态机包括SD控制状态机和SDIO控制状态机,命令控制模块产生相应的命令响应返回给主机端SD控制器,同时对命令进行解析产生相应的控制信号给到对应的控制状态机和同步控制模块,命令状态机根据对应的信号进行跳转。作为可能的一些实现方式,SD相关的寄存器继续放到寄存器RAM中,SDIO相关的寄存器设置在单独的SDIO寄存器中,所述SDIO寄存器分别与同步控制模块和系统从接口连接。本公开第二方面提供了一种设备端SD控制方法。一种设备端SD控制方法,包括以下步骤:在主机端SD控制器对设备端SD控制器进行初始化之后,设备端的系统根据初始化的相关信息和设备端内部的资源情况,通过系统从接口对设备端SD控制器进行配置;系统从接口将接收到的初始地址、传输模式和设备端存储单元的空间大小发送给中断/地址控制模块;中断及地址控制模块接收到系统从接口发过来的配置信息后进入等待状态,等待同步模块传来相关数据传输的信号,中断及地址控制模块根据两端给的信息并根据DMA模块给出的传输完成中断,更新当前传输地址,并将地址发送给系统从接口,同时产生中断,通过系统从接口通知设备端系统。作为可能的一些实本文档来自技高网
...

【技术保护点】
1.一种设备端SD控制器,其特征在于,包括命令控制模块、数据控制模块、同步控制模块、中断及地址控制模块、数据FIFO控制模块和DMA控制模块;/n中断及地址控制模块接收到系统从接口发过来的配置信息后进入等待状态,等待同步模块传来相关数据传输的信号,中断及地址控制模块根据两端给的信息并根据DMA模块给出的传输完成中断,更新当前传输地址,并将更新后的地址发送给系统从接口,同时产生中断,通过系统从接口通知设备端系统;/n若当前数据传输为主机端SD控制器的写数据操作时,数据控制模块用于接收SD接口数据通道的数据,然后将数据给到数据FIFO控制模块,所述DMA控制模块根据接收到的中断及地址控制模块发来的DMA使能信号、更新后的地址和中断应答信号以及同步控制模块发来的数据块数、块长度和写数据信号,将数据读出给到系统主接口,系统主接口发出相应的系统数据传输命令,将数据发送出到设备端系统中;/n若当前数据传输为主机端SD控制器的读数据操作时,先由命令通道接收到抹零控制模块的相关读命令,所述DMA控制模块根据接收到的中断及地址控制模块发来的DMA使能信号、更新后的地址和中断应答信号以及同步控制模块发来的数据块数、块长度和读数据信号,发出读数据命令,将数据读入数据FIFO控制模块,再由数据控制模块将数据从数据FIFO控制模块中读出,最后通过SD接口数据通道发送给主机端SD控制器。/n...

【技术特征摘要】
1.一种设备端SD控制器,其特征在于,包括命令控制模块、数据控制模块、同步控制模块、中断及地址控制模块、数据FIFO控制模块和DMA控制模块;
中断及地址控制模块接收到系统从接口发过来的配置信息后进入等待状态,等待同步模块传来相关数据传输的信号,中断及地址控制模块根据两端给的信息并根据DMA模块给出的传输完成中断,更新当前传输地址,并将更新后的地址发送给系统从接口,同时产生中断,通过系统从接口通知设备端系统;
若当前数据传输为主机端SD控制器的写数据操作时,数据控制模块用于接收SD接口数据通道的数据,然后将数据给到数据FIFO控制模块,所述DMA控制模块根据接收到的中断及地址控制模块发来的DMA使能信号、更新后的地址和中断应答信号以及同步控制模块发来的数据块数、块长度和写数据信号,将数据读出给到系统主接口,系统主接口发出相应的系统数据传输命令,将数据发送出到设备端系统中;
若当前数据传输为主机端SD控制器的读数据操作时,先由命令通道接收到抹零控制模块的相关读命令,所述DMA控制模块根据接收到的中断及地址控制模块发来的DMA使能信号、更新后的地址和中断应答信号以及同步控制模块发来的数据块数、块长度和读数据信号,发出读数据命令,将数据读入数据FIFO控制模块,再由数据控制模块将数据从数据FIFO控制模块中读出,最后通过SD接口数据通道发送给主机端SD控制器。


2.如权利要求1所述的设备端SD控制器,其特征在于,所述命令控制模块包括SD命令控制模块和SDIO命令控制模块,所述设备端SD控制器从命令通道上接收主机端SD控制器发过来的命令,给到命令控制模块中,命令控制模块根据协议设计选择SD命令控制模块和SDIO命令控制模块。


3.如权利要求1所述的设备端SD控制器,其特征在于,所述控制状态机包括SD控制状态机和SDIO控制状态机,命令控制模块产生相应的命令响应返回给主机端SD控制器,同时对命令进行解析产生相应的控制信号给到对应的控制状态机和同步控制模块,命令状态机根据对应的信号进行跳转。


4.如权利要求1所述的设备端SD控制器,其特征在于,SD相关的寄存器继续放到寄存器RAM中,SDIO相关的寄存器设置在单独的SDIO寄存器中,所述SDIO寄存器分别与同步控制模块和系统从接口连接。


5.一种设备端SD控制方法,其特征在于,包括以下步骤:
在主机端SD控制器对设备端SD控制器进行初始化之后,设备端的系统根据初始化的相关信息和设备端内部的资源情况,通过系...

【专利技术属性】
技术研发人员:于秀龙张洪柳刘超
申请(专利权)人:山东方寸微电子科技有限公司青岛方寸微电子科技有限公司
类型:发明
国别省市:山东;37

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

1