CN105988955A - Sdio设备及其应用的电子装置和数据传输方法 - Google Patents

Sdio设备及其应用的电子装置和数据传输方法 Download PDF

Info

Publication number
CN105988955A
CN105988955A CN201510064370.6A CN201510064370A CN105988955A CN 105988955 A CN105988955 A CN 105988955A CN 201510064370 A CN201510064370 A CN 201510064370A CN 105988955 A CN105988955 A CN 105988955A
Authority
CN
China
Prior art keywords
data
residue
module
hang
dma controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510064370.6A
Other languages
English (en)
Other versions
CN105988955B (zh
Inventor
曾旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Acrospeed Inc
Original Assignee
SUZHOU MONTAGE MICROELECTRONIC TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SUZHOU MONTAGE MICROELECTRONIC TECHNOLOGY Co Ltd filed Critical SUZHOU MONTAGE MICROELECTRONIC TECHNOLOGY Co Ltd
Priority to CN201510064370.6A priority Critical patent/CN105988955B/zh
Priority to TW104111999A priority patent/TWI602063B/zh
Publication of CN105988955A publication Critical patent/CN105988955A/zh
Application granted granted Critical
Publication of CN105988955B publication Critical patent/CN105988955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)

Abstract

本发明提供SDIO设备及其应用的电子装置和数据传输方法,装置包括多个数据模块、一个DMA控制器;当数据模块挂起时,存储DMA控制器在挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息至参数缓存模块,存储剩余未传输数据至剩余数据缓存模块;当挂起的数据模块唤醒时,自参数缓存区读取状态参数、及剩余未传输数据的数据长度信息,以恢复至挂起时的状态并自数据缓存区中读取剩余未传输数据以继续传输;从而使用单个DMA控制器即可控制多个数据模块挂起及唤醒过程的数据断点传输,减少器件而降低芯片中DMA控制器和缓存的面积,降低成本。

Description

SDIO设备及其应用的电子装置和数据传输方法
技术领域
本发明涉及SD/SDIO技术领域,特别是涉及一种SDIO设备及其应用的电子装置和数据传输方法。
背景技术
目前,SDIO卡(SecureDigital Input and Output Card,安全数字输入输出卡)在各种设备,尤其是手持设备中的应用很广泛。
一个SDIO(安全数字输入输出卡)设备最多可以支持7个独立功能块(FUNCTION)加上一个存储模块(MEMORY),由于SDIO的功能块需要支持suspend/resume(挂起/唤醒)的操作,当SDIO设备被挂起时处于发送数据的状态(即SDIO主机(SDIO HOST)读取操作)的时候,DMA控制器缓存中也许还有没有发送完成的数据,这些数据也许是不能从DMA控制器的发送缓存中删除的,而是要在SDIO设备被唤醒的时候接着发送这些数据,这种情况下就必须保存DMA发送缓存中的数据。同时,不论SDIO设备挂起时处于发送或者是接收数据的状态,如果当前传输没有完成,SDIO设备都需要保存DMA通道的各种参数,例如DMA当前的读写地址,还需要读取系统(或写入系统)的数据长度等。
传统的做法是给每一个FUNCTION一个独立的DMA通道和独立的缓存,当挂起的时候,DMA通道的各种状态参数和缓存保持不变,在唤醒之后接着当前状态继续运行。但是那样会导致大量逻辑电路和存储器电路的浪费,增大了芯片的面积。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于成本更低且性能良好的SDIO设备及其应用的电子装置和数据传输方法,以克服上述现有技术中的种种缺陷。
为实现上述目标及其他相关目标,本发明提供一种SDIO设备,包括:支持挂起及唤醒功能的多个数据模块;一个DMA控制器,以一对多的方式连接各所述数据模块;参数缓存模块及剩余数据缓存模块,同所述DMA控制器数据交互;其中,当所述DMA控制器接收到挂起使能信号以令对应的数据模块挂起时,所述参数缓存模块用于存储所述DMA控制器在所述挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息,所述剩余数据缓存模块用于存储所述剩余未传输数据;当所述DMA控制器接收到唤醒使能信号将所述挂起的数据模块唤醒时,所述DMA控制器根据读取自所述参数缓存区中的所述状态参数、及剩余未传输数据的数据长度信息,以恢复至挂起时的状态并自所述数据缓存区中读取所述剩余未传输数据以继续传输。
可选的,所述参数缓存模块是通过在所述SDIO设备或其所连接外部设备的内存空间中划分并建立的。
可选的,所述DMA控制器在所述数据模块挂起时检测数据传输是否完成;若否,则通知所述SDIO设备所连接的外部设备将所述DMA控制器的状态参数、及剩余未传输数据的数据长度信息存储至所述参数缓存模块,并将所述剩余未传输数据存储至所述剩余数据缓存模块。
可选的,在挂起的数据模块被唤醒时,所述DMA控制器读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则所述DMA控制器从所述数据缓存区中获取所述剩余未传输数据以继续传输。
可选的,所述参数缓存模块中对应各所述数据模块设有相应数量的参数缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
可选的,所述参数缓存模块通过硬件寄存器实现。
可选的,所述DMA控制器在所述数据模块挂起时检测数据传输是否完成;若否,则所述DMA控制器或SDIO设备所连接的外部设备将所述DMA控制器的状态参数、及剩余未传输数据的数据长度信息存储至所述硬件寄存器,并将所述剩余未传输数据被存储至所述剩余数据缓存模块。
可选的,在挂起的数据模块被唤醒时,所述DMA控制器读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则所述DMA控制器从所述数据缓存区中获取所述剩余未传输数据以继续传输。
可选的,所述参数缓存模块包括:对应各所述数据模块设置的相应数量的硬件寄存器,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
可选的,所述剩余数据缓存模块中对应各所述数据模块设有相应数量的剩余数据缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的剩余未传输数据。
可选的,所述数据模块包括:多个功能模块及一个存储器模块。
为实现上述目标及其他相关目标,本发明提供一种电子装置,应用所述的SDIO设备。
可选的,所述电子装置可以为GPS接收器、Wi-Fi或蓝牙适配器、调制解调器、局域网适配器、条型码读取器、无线电收发器、电视接收器、射频身份认证读取器、指纹扫描仪,SDIO转USB主或从适配器、消磁读取装置、蓝牙/Wi-Fi/GPS无线电收发器、APRS/TNC适配器、笔记本电脑、手机、平板电脑、数码相机、及车载多媒体装置中的任意一种。
为实现上述目标及其他相关目标,本发明提供一种SDIO设备的数据传输方法,所述SDIO设备包括支持挂起及唤醒功能的多个数据模块及与它们相连的一个DMA控制器,所述方法包括:当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据;当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输。
可选的,所述挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息存储在参数缓存模块;所述剩余未传输数据存储在剩余数据缓存模块。
可选的,所述参数缓存模块是通过在所述SDIO设备或其所连接外部设备的内存空间中划分并建立的。
可选的,所述当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据,包括:在所述数据模块挂起时检测数据传输是否完成;若否,则通知所述SDIO设备所连接的外部设备将所述状态参数、及剩余未传输数据的数据长度信息存储至所述参数缓存模块,并将所述剩余未传输数据存储至所述剩余数据缓存模块。
可选的,所述当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输,包括:在挂起的数据模块被唤醒时,读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则从所述数据缓存区中获取所述剩余未传输数据以继续传输。
可选的,所述SDIO设备的数据传输方法包括:在所述参数缓存模块中对应各所述数据模块设置相应数量的参数缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
可选的,所述参数缓存模块通过硬件寄存器实现。
可选的,所述当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据,包括:在所述数据模块挂起时检测数据传输是否完成;若否,则将所述状态参数、及剩余未传输数据的数据长度信息存储至所述硬件寄存器,并将所述剩余未传输数据被存储至所述剩余数据缓存模块。
可选的,所述当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输,包括:在挂起的数据模块被唤醒时,读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则从所述数据缓存区中获取所述剩余未传输数据以继续传输。
可选的,所述SDIO设备的数据传输方法包括:在所述参数缓存模块对应各所述数据模块设置相应数量的硬件寄存器,以分别存储各所述数据模块挂起时所述状态参数、以及剩余未传输数据的数据长度信息。
可选的,所述SDIO设备的数据传输方法包括:在所述剩余数据缓存模块中对应各所述数据模块设置相应数量的剩余数据缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的剩余未传输数据。
可选的,所述数据模块包括:多个功能模块及一个存储器模块。
如上所述,本发明提供SDIO设备及其应用的电子装置和数据传输方法,装置包括多个数据模块、一个DMA控制器;当数据模块挂起时,存储DMA控制器在挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息至参数缓存模块,存储剩余未传输数据至剩余数据缓存模块;当挂起的数据模块唤醒时,自参数缓存区读取状态参数、及剩余未传输数据的数据长度信息,以恢复至挂起时的状态并自数据缓存区中读取剩余未传输数据以继续传输;从而使用单个DMA控制器即可控制多个数据模块挂起及唤醒过程的数据断点传输,减少器件而降低芯片中DMA控制器和缓存的面积,降低成本。
附图说明
图1显示为本发明一实施例中的SDIO设备的结构示意图。
图2显示为本发明一实施例中的SDIO设备的数据传输方法的流程示意图。
元件标号说明
1 SDIO设备
11 DMA控制器
12 参数缓存模块
13 剩余数据缓存模块
2 外部设备
3 SDIO主机
S1~S2 方法步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在现有的SDIO设备中,7个功能模块(Function)及存储模块(Memory)均需对应配置有DMA控制器,如此即会造成占用较多集成芯片的面积,故本发明在结构改进上的思路在于将所述多个功能模块及存储模块共享一个DMA控制器。所述SDIO设备1例如为SDIO存储卡等,兼容于例如如笔记本电脑、手机、平板电脑、及数码相机等上的SD卡槽。
如图1所示,本发明提供一种SDIO设备1,包括:多个数据模块(未图示)、一个DMA控制器11、参数缓存模块12及剩余数据缓存模块13,所述SDIO设备1可连接其他电子装置以实现所需读写需求,所述电子装置可包括:外部设备2及SDIO主机3(SDIO HOST)。
外部设备2是和SDIO设备整合在一起实现某些功能(比如WIFI)的模块,即外部设备和我们的SDIO收发模块是整合在一起实现特定功能的,其可以是:GPS接收器、Wi-Fi或蓝牙适配器、调制解调器、局域网适配器、条型码读取器、无线电收发器、电视接收器、射频身份认证读取器、指纹扫描仪,SDIO转USB主或从适配器、消磁读取装置、蓝牙/Wi-Fi/GPS无线电收发器、APRS/TNC适配器、笔记本电脑、手机、平板电脑、数码相机、及车载多媒体装置等;而SDIO主机3是通过SDIO总线或者SPI总线来读取SDIO设备1的一个远程设备,当SDIO主机2对SDIO设备读操作时所述SDIO设备1处于数据发送(TX)状态,同样对外部设备2也能发送数据。
所述数据模块(未图示)包括:前述之功能模块(Function)及存储模块(Memory),在其它实施例中当然还可以有其它模块,其中,目前的SDIO设备最多允许有7个功能(则对应有7个所述功能模块),这个同其功能号是对应的(1~7),每个功能都对应一个128K字节大小的寄存器;所述功能模块及存储模块均支持挂起及唤醒功能,即当暂时无需使用时令其调离内存,而在需要使用时再调用回来。为方便管理,也可以为Memory模块分配一个功能号,比如8。
所述DMA(Direct Memory Access,直接内存访问)控制器,以一对多的方式连接各所述数据模块,供各功能模块及存储模块共享使用。在一实施例中,所述DMA控制器11可包括:用于控制数据传输DMA控制逻辑(DMA Control Logic)、多个DMA参数寄存器(DMAPara Registers)、及用于在发送或接收数据过程中使用的DMA发送缓存及DMA接收缓存(DMA TX FIFO及DMA RX FIFO),以发送举例,DMA控制器11会将待发送数据读入DMATX FIFO中发送,通过检测DMA缓存中是否还有剩余未传输数据就能判断当前是否完成数据发送,同理可推得数据接收的检测。
在一实施例中,所述DMA参数寄存器至少包括:分别对应各功能模块(Function1~Function7)及存储模块(Memory)的多个状态参数寄存器(DMA Status Registers),以于分别暂存所述DMA控制器11所使用的对应各所述模块的状态参数等。
所述参数缓存模块12及剩余数据缓存模块13,同所述DMA控制器11数据交互;其中,当所述DMA控制器11接收到挂起使能信号以令对应的数据模块挂起时,所述参数缓存模块12用于存储所述DMA控制器11在所述挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息,所述剩余数据缓存模块13用于存储所述剩余未传输数据;当所述DMA控制器11接收到唤醒使能信号将所述挂起的数据模块唤醒时,所述DMA控制器11根据读取自所述参数缓存区中的所述状态参数、及剩余未传输数据的数据长度信息,以恢复至挂起时的状态并自所述数据缓存区中读取所述剩余未传输数据以继续传输。在一实施例中,若检测到挂起时数据已传输完成,则无需再如现有技术所述保存已传输完成的数据,大大提升存储作业的效率,节省空间。
具体来说,所述DMA控制器11可输入及输出多种信号,其输入端可供输入例如:对应各数据模块的挂起使能信号(Suspend Enable)及唤醒使能信号(Resume Enable),用于触发所述保存/读取所述状态参数、数据长度信息、剩余未传输数据的数据保存使能信号(SaveData Enable)及数据载入使能信号(Load Data Enable);其中,所述SDIO设备1同外部设备2连接;所述挂起使能信号(Suspend Enable)及唤醒使能信号(Resume Enable)是由所述SDIO设备1通过SDIO总线或者SPI总线从所述SDIO主机3(SDIO HOST)接收到的相关的命令(Command)来生成的;所述SDIO设备1还可包括控制寄存器(或称一般控制寄存器,Card Common Control Register;CCCR),所述数据保存使能信号(Save Data Enable)及数据载入使能信号(Load Data Enable)来自所述控制寄存器,所述外部设备2或SDIO主机3可运行有系统软件来读写该控制寄存器。
所述DMA控制器11的输出信号包括:DMA工作标识信号(DMA Busy Flag)、用于使能所述将状态参数(DMA parameters)及剩余未传输的数据长度信息(Remain Data Length)写入或读出于所述参数缓存模块12的功能的写参数使能信号(Write Para Enabled)及读参数使能信号(Read Para Enabled)、功能ID(即前述功能模块的Function ID 1~7和存储模块的功能号)、及用于使能将所述剩余未传输数据写入或读出于所述剩余数据缓存模块13的功能的数据保存使能信号(Save Data Enabled)及数据读取使能信号(Load Data Enabled),其中,DMA Busy Flag用来指示当前DMA在工作忙碌状态,当DMA控制器11在数据模块挂起时候进行保存参数和数据的过程中,或者在数据模块唤醒时读取参数和数据的过程中,此信号有效。
承上,所述DMA控制器11对参数缓存模块12读/写的数据内容包括参数数据(ParameterData),其中,Parameter Data包括所述DMA状态参数、及所述剩余未传输数据的数据长度信息(Remain Data Length);而DMA控制器11对剩余数据缓存模块13读/写的数据内容包括所述剩余未传输数据(Remain TX Data);Remain TX Data即SDIO设备1中的功能模块或存储模块在挂起的时候,缓存中尚未发送完的数据,该数据长度信息在所述挂起的时候保存至参数缓存模块12中,该剩余未传输数据在所述挂起的时候被保存至系统内存,在SDIO设备1中的功能模块或存储模块唤醒的时候,再被重新写入缓存中进行继续发送。
所述参数缓存模块12有多种实现方式:例如,可以用系统内存分配存储空间来实现,或者也可以用硬件寄存器实现。优选的,是使用系统内存分配的方式,可以更多地节省芯片面积。下面就这两种方式的行为分别进行描述:
在一实施例中,所述参数缓存模块12是通过在所述SDIO设备1的内存空间中划分并建立的,当然,在其他实施例中,也可在所述SDIO设备1所连接的外部设备2的内存空间中划分并建立,并非以本实施例为限。
具体的,在SDIO设备1或其所连接的外部设备2的内存空间中划分并建立以分配给每个功能模块(Function)和存储模块(Memory)分配一块参数缓存空间(Parameter Buffer),这些参数缓存空间既可以在SDIO设备1初始化的时候固定分配,也可以在需要的时候动态分配,在不需要的时候释放掉。例如图1中的Function1~Function7及Memory等多个参数缓存空间(Parameter Buffer),各个参数缓存空间组成所述参数缓存模块12(ParametersBuffer),当挂起使能信号有效的时候,若检测到当前传输没有完成(即例如前述缓存内有剩余未发送数据),DMA控制器11向SDIO设备1或其所连接的外部设备2产生一个中断信号,SDIO设备1或其所连接的外部设备2响应此中断信号(如果是动态分配参数缓存空间,此时外部设备2动态分配所需的参数缓存空间),SDIO设备1或其所连接的外部设备2读取DMA控制器中的各种状态参数,分别写入各数据模块对应的数据缓存空间(FunctionParameter Buffer);如果挂起时SDIO设备1的当前功能模块(或者存储模块)是进行例如数据发送的状态(即SDIO主机(SDIO HOST)读操作),而且发送缓存中尚有未发送完成的数据,那么把尚未发送完成的数据的长度信息也保存至参数缓存空间;当唤醒使能信号有效的时候(Resume enable asserted),如果当前数据模块处于被挂起的状态,DMA控制器11向SDIO设备1或其所连接的外部设备2产生一个中断,SDIO设备1或其所连接的外部设备2响应该中断,把相应的DMA控制器11的状态参数及剩余未发送数据的数据长度信息从参数缓存空间写回到DMA控制器中相应的寄存器(DMA参数寄存器),如果挂起时候SD设备处于数据发送状态,且挂起前发送缓存中的数据个数不为零(Remain Data Length>0),SDIO设备或其所连接的外部设备2把存储于剩余数据缓存模块13(Remain Data Buffer)中的缓存数据重新写回DMA的缓存,或者也可以通过DMA自动从剩余数据缓存模块13(Remain Data Buffer)中读取挂起时保存的数据,读完缓存数据之后DMA控制器11再接着挂起前的断点继续数据传输。如果参数缓存空间和剩余数据缓存空间是动态分配的,此时外部设备2可以释放参数缓存和剩余数据缓存。
在另一实施例中,所述参数缓存模块亦可通过硬件寄存器实现,其他具体原理同以上实施例相类似,本领域技术人员应当可以参考结合上下文加以实现,故以下仅述大致过程:
举例来说,在SDIO设备初始化的时候,给每个功能模块和存储模块添加相应的参数寄存器(例如Function1~Function7及Memory),在SDIO设备复位的时候,寄存器全部清零。
当挂起使能信号有效的时候,如果当前传输没有完成,DMA控制器将所述状态参数写入DMA参数寄存器;如果挂起的时候处于数据发送状态,把所述剩余未传输数据的数据长度信息也写入相应的参数寄存器;当唤醒使能信号有效的时候(Resume enable asserted),如果当前处于被挂起的状态,DMA控制器从相应的DMA参数寄存器中读取DMA参数。当DMA控制器挂起前缓存中的数据个数不为零(Remain Data Length>0),DMA控制器产生中断,SDIO设备或其所连接的外部设备2响应此中断把存在剩余数据缓存模块(Remain DataBuffer)中的对应数据重新写回DMA的缓存;或者为了提高工作效率,也可以不用产生中断,DMA自动判断是否有剩余数据需要读取,如果需要,DMA控制器自动从剩余数据缓存模块13中读取挂起时保存入系统内存的缓存数据。读完缓存数据之后DMA在接着挂起前的断点继续数据传输。
需说明的是,在上述各实施例中,若挂起时发送缓存中的剩余未传输数据个数为0(Remain Data Length=0),则可例如仅保存状态参数而不必保存所述剩余未传输数据及其数据长度信息;同理,唤醒时也仅需读取状态参数。
还请参阅图1,所述剩余数据缓存模块13(Remain Data Buffer),用于保存挂起时SDIO设备1的当前功能模块或存储模块处于数据发送状态(即SDIO主机(SDIO HOST)读操作时)下的发送缓存中尚未发送的数据、及缓存中DMA TX FIFO中等待传输的数据。所述剩余数据缓存模块13通过SDIO设备1或其所连接的外部设备2的系统内存分配并建立实现,优选的,SDIO设备或其所连接的外部设备2给每个功能模块和存储模块分别分配一块适当大小的数据缓存空间(Data Buffer),这些数据缓存空间既可以在SDIO设备初始化的时候固定分配,也可以在需要的时候动态分配,在不需要的时候释放,即如图1所示,对应Function1~Function7及Memory等多个数据缓存空间(Data Buffer)。
举例来说,当挂起使能信号有效的时候,如果当前SDIO设备1处于发送数据的状态,在DMA TX FIFO中缓存有剩余的等待传输的数据,并且Save Data Enable使能的情况下,DMA控制器产生一个中断信号给外部设备2,外部设备2响应该中断,如果是动态分配数据缓存空间,此时外部设备2分配适当大小的缓存空间,然后读取DMA TX FIFO中剩余的数据并写入相应的系统内存空间(本实施例中即剩余数据缓存模块13中对应的剩余数据缓存空间)。当然也可以通过系统软件把保存剩余未传输数据的系统内存地址写入DMA控制器11,由DMA控制器11自动向系统存储空间中写入DMA TX FIFO剩余的数据。
当唤醒使能信号有效的时候(Resume enable asserted),如果当前数据模块(例如功能模块对应的Function)在挂起是处于数据发送状态(即SDIO主机(SDIO HOST)对其读操作状态),在Load Data Enable信号使能的情况下,当DMA控制器11获取挂起前缓存中的数据个数不为零(Remain Data Length>0),通过外部设备2把存在对应数据模块(对应前述挂起的Function)的剩余数据缓存模块13中的存储空间内的缓存数据重新写回DMA控制器11的发送缓存(DMA TX FIFO),或者也可以通过DMA控制器11自动读取并写入SDIO设备1的发送缓存(DMA TX FIFO)中,读完缓存数据之后DMA控制器11接着挂起前的断点继续数据传输。在DMA读取剩余数据完成之后,如果剩余数据缓存空间是动态分配的,此时可以释放掉剩余数据缓存空间。
如图2所示,结合上述实施例的技术原理,本发明还可提供一种SDIO设备的数据传输方法,本方法实施例同上述装置实施例技术原理大致相同,在不冲突的情况下,各自的技术特征均可相互使用,故不再对相同内容作重复赘述。
所述SDIO设备包括支持挂起及唤醒功能的多个数据模块及与它们相连的一个DMA控制器,所述方法包括:
步骤S1:当接收到挂起使能信号以令对应的数据模块挂起时,存储在所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据;
步骤S2:当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输。
在一实施例中,所述挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息存储在参数缓存模块;所述剩余未传输数据存储在剩余数据缓存模块。
在一实施例中,所述参数缓存模块是通过在所述SDIO设备或其所连接外部设备的内存空间中划分并建立的。
在一实施例中,所述当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据,包括:在所述数据模块挂起时检测数据传输是否完成;若否,则通知所述SDIO设备所连接的外部设备将所述状态参数、及剩余未传输数据的数据长度信息存储至所述参数缓存模块,并将所述剩余未传输数据存储至所述剩余数据缓存模块;若是,则可例如不必存储剩余数据及剩余数据信息而仅存储所述状态参数。
在一实施例中,所述当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输,包括:在挂起的数据模块被唤醒时,读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则从所述数据缓存区中获取所述剩余未传输数据以继续传输;若是,则可例如不必读取剩余数据及剩余数据信息而仅读取所述状态参数。
在一实施例中,所述SDIO设备的数据传输方法包括:在所述参数缓存模块中对应各所述数据模块设置相应数量的参数缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
在一实施例中,所述参数缓存模块通过硬件寄存器实现。
在一实施例中,所述当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据,包括:在所述数据模块挂起时检测数据传输是否完成;若否,则将所述状态参数、及剩余未传输数据的数据长度信息存储至所述硬件寄存器,并将所述剩余未传输数据被存储至所述剩余数据缓存模块;若是,则可例如不必存储剩余数据及剩余数据信息而仅存储所述状态参数。
在一实施例中,所述当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输,包括:在挂起的数据模块被唤醒时,读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则从所述数据缓存区中获取所述剩余未传输数据以继续传输;若是,则可例如不必读取剩余数据及剩余数据信息而仅读取所述状态参数。
在一实施例中,所述SDIO设备的数据传输方法包括:在所述参数缓存模块对应各所述数据模块设置相应数量的硬件寄存器,以分别存储各所述数据模块挂起时所述状态参数、以及剩余未传输数据的数据长度信息。
在一实施例中,所述SDIO设备的数据传输方法包括:在所述剩余数据缓存模块中对应各所述数据模块设置相应数量的剩余数据缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的剩余未传输数据。
在一实施例中,所述数据模块包括:多个功能模块及一个存储器模块。
综上所述,本发明提供SDIO设备及其应用的电子装置和数据传输方法,装置包括多个数据模块、一个DMA控制器;当数据模块挂起时,存储DMA控制器在挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息至参数缓存模块,存储剩余未传输数据至剩余数据缓存模块;当挂起的数据模块唤醒时,自参数缓存区读取状态参数、及剩余未传输数据的数据长度信息,以恢复至挂起时的状态并自数据缓存区中读取剩余未传输数据以继续传输;从而使用单个DMA控制器即可控制多个数据模块挂起及唤醒过程的数据断点传输,减少器件而降低芯片中DMA控制器和缓存的面积,降低成本。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (25)

1.一种SDIO设备,其特征在于,包括:
支持挂起及唤醒功能的多个数据模块;
一个DMA控制器,以一对多的方式连接各所述数据模块;
参数缓存模块及剩余数据缓存模块,同所述DMA控制器数据交互;
其中,当所述DMA控制器接收到挂起使能信号以令对应的数据模块挂起时,所述参数缓存模块用于存储所述DMA控制器在所述挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息,所述剩余数据缓存模块用于存储所述剩余未传输数据;当所述DMA控制器接收到唤醒使能信号将所述挂起的数据模块唤醒时,所述DMA控制器根据读取自所述参数缓存区中的所述状态参数、及剩余未传输数据的数据长度信息,以恢复至挂起时的状态并自所述数据缓存区中读取所述剩余未传输数据以继续传输。
2.根据权利要求1所述的SDIO设备,其特征在于,所述参数缓存模块是通过在所述SDIO设备或其所连接外部设备的内存空间中划分并建立的。
3.根据权利要求2所述的SDIO设备,其特征在于,所述DMA控制器在所述数据模块挂起时检测数据传输是否完成;若否,则通知所述SDIO设备所连接的外部设备将所述DMA控制器的状态参数、及剩余未传输数据的数据长度信息存储至所述参数缓存模块,并将所述剩余未传输数据存储至所述剩余数据缓存模块。
4.根据权利要求2所述的SDIO设备,其特征在于,在挂起的数据模块被唤醒时,所述DMA控制器读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则所述DMA控制器从所述数据缓存区中获取所述剩余未传输数据以继续传输。
5.根据权利要求2所述的SDIO设备,其特征在于,所述参数缓存模块中对应各所述数据模块设有相应数量的参数缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
6.根据权利要求1所述的SDIO设备,其特征在于,所述参数缓存模块通过硬件寄存器实现。
7.根据权利要求6所述的SDIO设备,其特征在于,所述DMA控制器在所述数据模块挂起时检测数据传输是否完成;若否,则所述DMA控制器或SDIO设备所连接的外部设备将所述DMA控制器的状态参数、及剩余未传输数据的数据长度信息存储至所述硬件寄存器,并将所述剩余未传输数据被存储至所述剩余数据缓存模块。
8.根据权利要求6所述的SDIO设备,其特征在于,在挂起的数据模块被唤醒时,所述DMA控制器读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则所述DMA控制器从所述数据缓存区中获取所述剩余未传输数据以继续传输。
9.根据权利要求6所述的SDIO设备,其特征在于,所述参数缓存模块包括:对应各所述数据模块设置的相应数量的硬件寄存器,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
10.根据权利要求1所述的SDIO设备,其特征在于,所述剩余数据缓存模块中对应各所述数据模块设有相应数量的剩余数据缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的剩余未传输数据。
11.根据权利要求1所述的SDIO设备,其特征在于,所述数据模块包括:多个功能模块及一个存储器模块。
12.一种电子装置,其特征在于,应用如权利要求1所述的SDIO设备。
13.如权利要求12所述的电子装置,其特征在于,所述电子装置为GPS接收器、Wi-Fi或蓝牙适配器、调制解调器、局域网适配器、条型码读取器、无线电收发器、电视接收器、射频身份认证读取器、指纹扫描仪,SDIO转USB主或从适配器、消磁读取装置、蓝牙/Wi-Fi/GPS无线电收发器、APRS/TNC适配器、笔记本电脑、手机、平板电脑、数码相机、及车载多媒体装置中的任意一种。
14.一种SDIO设备的数据传输方法,其特征在于,所述SDIO设备包括支持挂起及唤醒功能的多个数据模块及与它们相连的一个DMA控制器,所述方法包括:
当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据;
当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输。
15.根据权利要求14所述的SDIO设备的数据传输方法,其特征在于,所述挂起时的状态参数、及挂起时的剩余未传输数据的数据长度信息存储在参数缓存模块;所述剩余未传输数据存储在剩余数据缓存模块。
16.根据权利要求15所述的SDIO设备的数据传输方法,其特征在于,所述参数缓存模块是通过在所述SDIO设备或其所连接外部设备的内存空间中划分并建立的。
17.根据权利要求16所述的SDIO设备的数据传输方法,其特征在于,所述当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据,包括:
在所述数据模块挂起时检测数据传输是否完成;
若否,则通知所述SDIO设备所连接的外部设备将所述状态参数、及剩余未传输数据的数据长度信息存储至所述参数缓存模块,并将所述剩余未传输数据存储至所述剩余数据缓存模块。
18.根据权利要求16所述的SDIO设备的数据传输方法,其特征在于,所述当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输,包括:
在挂起的数据模块被唤醒时,读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;
若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则从所述数据缓存区中获取所述剩余未传输数据以继续传输。
19.根据权利要求16所述的SDIO设备的数据传输方法,其特征在于,包括:在所述参数缓存模块中对应各所述数据模块设置相应数量的参数缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的状态参数、以及剩余未传输数据的数据长度信息。
20.根据权利要求15所述的SDIO设备的数据传输方法,其特征在于,所述参数缓存模块通过硬件寄存器实现。
21.根据权利要求20所述的SDIO设备的数据传输方法,其特征在于,所述当接收到挂起使能信号以令对应的数据模块挂起时,存储所述挂起时的所述DMA控制器的状态参数、及挂起时的剩余未传输数据的数据长度信息,并存储所述剩余未传输数据,包括:
在所述数据模块挂起时检测数据传输是否完成;若否,则将所述状态参数、及剩余未传输数据的数据长度信息存储至所述硬件寄存器,并将所述剩余未传输数据被存储至所述剩余数据缓存模块。
22.根据权利要求20所述的SDIO设备的数据传输方法,其特征在于,所述当接收到唤醒使能信号将所述挂起的数据模块唤醒时,读取所述存储的状态参数、及剩余未传输数据的数据长度信息以恢复至挂起时的状态并读取所述剩余未传输数据以继续传输,包括:
在挂起的数据模块被唤醒时,读取所述参数缓存模块中的状态参数、及剩余未传输数据的数据长度信息并据以检测至少以下信息:所述DMA控制器在所述挂起时是否处于数据传输状态且是否有剩余未传输数据;
若所述DMA控制器在所述挂起时处于数据传输状态且有剩余未传输数据,则从所述数据缓存区中获取所述剩余未传输数据以继续传输。
23.根据权利要求20所述的SDIO设备的数据传输方法,其特征在于,包括:在所述参数缓存模块对应各所述数据模块设置相应数量的硬件寄存器,以分别存储各所述数据模块挂起时所述状态参数、以及剩余未传输数据的数据长度信息。
24.根据权利要求15所述的SDIO设备的数据传输方法,其特征在于,包括:在所述剩余数据缓存模块中对应各所述数据模块设置相应数量的剩余数据缓存空间,以分别存储各所述数据模块挂起时所述DMA控制器的剩余未传输数据。
25.根据权利要求14所述的SDIO设备的数据传输方法,其特征在于,所述数据模块包括:多个功能模块及一个存储器模块。
CN201510064370.6A 2015-02-06 2015-02-06 Sdio设备及其应用的电子装置和数据传输方法 Active CN105988955B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510064370.6A CN105988955B (zh) 2015-02-06 2015-02-06 Sdio设备及其应用的电子装置和数据传输方法
TW104111999A TWI602063B (zh) 2015-02-06 2015-04-14 Sdio設備及其應用之電子裝置和資料傳輸方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510064370.6A CN105988955B (zh) 2015-02-06 2015-02-06 Sdio设备及其应用的电子装置和数据传输方法

Publications (2)

Publication Number Publication Date
CN105988955A true CN105988955A (zh) 2016-10-05
CN105988955B CN105988955B (zh) 2019-11-01

Family

ID=57036207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510064370.6A Active CN105988955B (zh) 2015-02-06 2015-02-06 Sdio设备及其应用的电子装置和数据传输方法

Country Status (2)

Country Link
CN (1) CN105988955B (zh)
TW (1) TWI602063B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106937399A (zh) * 2017-03-15 2017-07-07 上海交通大学 全双工缓存中继系统多用户调度方法及系统
CN110727619A (zh) * 2019-10-16 2020-01-24 中科睿微(宁波)电子技术有限公司 基于sdio接口的通信系统及数据传输方法
CN114338567A (zh) * 2021-12-27 2022-04-12 锐迪科创微电子(北京)有限公司 Sdio接口数据传输方法及装置、sdio接口设备
CN114389746A (zh) * 2020-10-21 2022-04-22 航天科工惯性技术有限公司 一种可变长度数据处理与传输方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916237A (zh) * 2010-06-29 2010-12-15 航天恒星科技有限公司 一种pci总线dma高速数据传输方法
CN102112971A (zh) * 2008-08-06 2011-06-29 阿斯奔收购公司 可暂停且可重新开始的dma引擎

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197583B2 (en) * 2003-01-21 2007-03-27 Zentek Technology Japan, Inc. SDIO controller
KR100725271B1 (ko) * 2005-05-20 2007-06-04 주식회사 엠피오 복수개의 dma 채널을 갖는 usb-sd 저장 장치 및 그저장 방법
TWI423032B (zh) * 2009-04-30 2014-01-11 Ralink Technology Corp 提升資料傳輸效能的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102112971A (zh) * 2008-08-06 2011-06-29 阿斯奔收购公司 可暂停且可重新开始的dma引擎
CN101916237A (zh) * 2010-06-29 2010-12-15 航天恒星科技有限公司 一种pci总线dma高速数据传输方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106937399A (zh) * 2017-03-15 2017-07-07 上海交通大学 全双工缓存中继系统多用户调度方法及系统
CN106937399B (zh) * 2017-03-15 2020-11-06 上海交通大学 全双工缓存中继系统多用户调度方法及系统
CN110727619A (zh) * 2019-10-16 2020-01-24 中科睿微(宁波)电子技术有限公司 基于sdio接口的通信系统及数据传输方法
CN110727619B (zh) * 2019-10-16 2021-05-18 中科睿微(宁波)电子技术有限公司 基于sdio接口的通信系统及数据传输方法
CN114389746A (zh) * 2020-10-21 2022-04-22 航天科工惯性技术有限公司 一种可变长度数据处理与传输方法
CN114389746B (zh) * 2020-10-21 2023-07-14 航天科工惯性技术有限公司 一种可变长度数据处理与传输方法
CN114338567A (zh) * 2021-12-27 2022-04-12 锐迪科创微电子(北京)有限公司 Sdio接口数据传输方法及装置、sdio接口设备
CN114338567B (zh) * 2021-12-27 2023-09-05 锐迪科创微电子(北京)有限公司 Sdio接口数据传输方法及装置、sdio接口设备

Also Published As

Publication number Publication date
CN105988955B (zh) 2019-11-01
TW201638792A (zh) 2016-11-01
TWI602063B (zh) 2017-10-11

Similar Documents

Publication Publication Date Title
US8914551B2 (en) Sensor polling unit for microprocessor integration
EP1691288B1 (en) Memory management for a mobile multimedia processor
US7457892B2 (en) Data communication flow control device and methods thereof
CN100440184C (zh) 一种能同时进行读写操作的dma控制器及传输方法
US10055807B2 (en) Hardware architecture for acceleration of computer vision and imaging processing
JP7053713B2 (ja) 低電力コンピュータイメージング
US20090177816A1 (en) Method and system for communication with sd memory and sdio devices
CN105988955A (zh) Sdio设备及其应用的电子装置和数据传输方法
CN103077123A (zh) 一种数据写入和读取方法及装置
CN104506379A (zh) 网络数据捕获方法和系统
CN102841869A (zh) 一种基于fpga的多通道i2c控制器
US20220114120A1 (en) Image processing accelerator
CN103019645B (zh) Ccd信号处理电路高速数据流仲裁控制方法
CN103106164A (zh) 一种高效dma控制器
US20160371203A1 (en) Multiple Access Single SDIO Interface with Multiple SDIO Units
WO2014092551A1 (en) System and method for optimal memory management between cpu and fpga unit
CN100579125C (zh) 一种pci以太网媒体访问控制器传输数据的方法
CN102291298A (zh) 一种高效的面向长消息的计算机网络通信方法
CN107066413A (zh) 一种用于处理多个总线设备数据的方法、及其总线系统
CN103838694B (zh) 一种fpga高速读取usb接口数据的方法
CN109521970A (zh) 一种数据处理方法及相关设备
US8886844B2 (en) Efficient scheduling of read and write transactions in dynamic memory controllers
US20170212689A1 (en) Packet processing system, method and device utilizing memory sharing
CN105224258B (zh) 一种数据缓冲区的复用方法与系统
CN103268278B (zh) 支持多核处理器的sram控制器及其跟踪信息处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171026

Address after: 200233 room A1601, No. 900, Xuhui District, Shanghai, Yishan Road

Applicant after: Acrospeed, Inc.

Address before: Suzhou City, Jiangsu Province, Suzhou Industrial Park 215123 Xinghu Street No. 328 Creative Industry Park 6-1002

Applicant before: Suzhou Montage Microelectronic Technology Co., Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: A6, No. 900 Yishan Road, Xuhui District, Shanghai, 2003

Applicant after: Lanqi Technology Co., Ltd.

Address before: Room A1601, 900 Yishan Road, Xuhui District, Shanghai, 2003

Applicant before: Acrospeed, Inc.

GR01 Patent grant
GR01 Patent grant