发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于成本更低且性能良好的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控制器和缓存的面积,降低成本。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在现有的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控制器和缓存的面积,降低成本。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。