CN105573940B - 一种sdio接口外设的自动探测方法及装置 - Google Patents

一种sdio接口外设的自动探测方法及装置 Download PDF

Info

Publication number
CN105573940B
CN105573940B CN201410535248.8A CN201410535248A CN105573940B CN 105573940 B CN105573940 B CN 105573940B CN 201410535248 A CN201410535248 A CN 201410535248A CN 105573940 B CN105573940 B CN 105573940B
Authority
CN
China
Prior art keywords
sdio
gpio2
peripherals
interface
sdio interface
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.)
Active
Application number
CN201410535248.8A
Other languages
English (en)
Other versions
CN105573940A (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.)
Aisino Corp
Original Assignee
Aisino Corp
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 Aisino Corp filed Critical Aisino Corp
Priority to CN201410535248.8A priority Critical patent/CN105573940B/zh
Publication of CN105573940A publication Critical patent/CN105573940A/zh
Application granted granted Critical
Publication of CN105573940B publication Critical patent/CN105573940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种SDIO接口外设的自动探测方法及装置,属于SDIO接口外设领域,包括嵌入式处理器和SDIO接口外设,嵌入式处理器中的GPIO1和GPIO2短接在一起,分别设置GPIO1和GPIO2为输出和输入,其中GPIO1的初始化状态为高电平;SDIO接口外设注册过程中,在插入和拔出状态探测的驱动接口实现函数中添加读取GPIO2电平状态的操作;通过控制GPIO1电平的高低来影响GPIO2的电平值;通过相应驱动接口探测到GPIO2的电平值;根据GPIO2的电平值控制SDIO接口外设进入相应的状态。这种探测方法简单可靠,方便灵活,即节省了系统软硬件资源,还能实现强大的热插拔功能。

Description

一种SDIO接口外设的自动探测方法及装置
技术领域
本发明涉及SDIO接口外设技术领域,具体涉及SDIO接口外设的自动探测方法及装置。
背景技术
Android系统作为一款功能强大的便携式设备操作系统得到了国内外广大厂商和用户的青睐,其使用范围越来越广泛,几乎涉及到了社会的方方面面。在嵌入式系统中,SDIO(Secure Digital Input and Output Card,安全数字输入输出卡)接口外设通常都是六线连接的,包括四条数据线、一条时钟线和一条命令线,由于其驱动程序是基于MMC(Multimedia Card,多媒体卡)驱动实现的,保留了能够探测设备插入拔出功能的驱动接口,但是缺乏具体的实现方法。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的SDIO接口外设的自动探测方法及装置,实现了嵌入式系统中SDIO接口外设的自动探测功能。依据本发明的一个方面,提供了一种SDIO接口外设的自动探测方法,包括嵌入式处理器和SDIO接口外设,其中所述嵌入式处理器中的GPIO(General PurposeInputOutput,通用输入/输出)1和GPIO2短接在一起,包括以下步骤:
分别设置所述GPIO1和GPIO2为输出和输入,其中所述GPIO1的初始化状态为高电平;
所述SDIO接口外设注册过程中,添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述GPIO2电平状态的操作;
通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值;
所述SDIO接口外设驱动加载,通过相应驱动接口探测到所述GPIO2的电平值;
所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态。
进一步地,所述通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值的步骤中,具体包括:所述GPIO1和所述GPIO2是直接连接的,获取的所述GPIO2的电平状态就是所述GPIO1的电平状态,通过操作所述GPIO1电平的高低就实现对所述GPIO2电平状态的控制。
进一步地,所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态的步骤中,具体包括:
系统启动后,所述SDIO接口外设驱动加载并开始工作,通过相应驱动接口探测到所述GPIO2为高电平;
判断出所述SDIO接口外设处于拔出状态;
所述嵌入式处理器的SDIO控制端切断所述SDIO接口外设的电源和时钟;
所述SDIO接口外设进入低功耗状态。
进一步地,所述SDIO接口外设进入低功耗状态步骤后,还包括:
判断用户层是否有应用程序需要使用所述SDIO接口外设;
如果有,则通过系统层的API调用驱动层的接口,在初始调用到的驱动接口实现函数中添加操作,将所述GPIO1置为低电平;
当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为低电平,判断出所述SDIO接口外设已经插入;
所述嵌入式处理器的SDIO控制端对所述SDIO接口外设恢复供电和时钟;
所述SDIO接口外设进入正常工作状态。
更进一步地,所述SDIO接口外设进入正常工作状态步骤后,还包括:
判断用户层的所述应用程序是否退出不再使用所述SDIO接口外设;
如果退出,则通过系统层的API调用所述驱动层的相应接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述GPIO1置为高电平;
当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为高电平,判断出所述SDIO接口外设已经拔出;
所述嵌入式处理器的SDIO控制端对所述SDIO接口外设切断电源和时钟;
所述SDIO接口外设进入低功耗状态。
依据本发明的另一个方面,提供了一种SDIO接口外设的自动探测装置,包括嵌入式处理器和SDIO接口外设,所述嵌入式处理器中的GPIO1和GPIO2短接在一起;还包括初始化模块,适用于分别设置所述GPIO1和GPIO2为输出和输入,其中置所述GPIO1的初始化状态为高电平;
注册模块,适用于在所述SDIO接口外设注册过程中,添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述GPIO2电平状态的操作;
电平控制模块,适用于通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值;
驱动加载模块,适用于所述SDIO接口外设驱动加载,通过相应驱动接口探测到所述GPIO2的电平值;
状态控制模块,适用于所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态。
进一步地,所述嵌入式处理器是Freescale的imx515。
更进一步地,所述电平控制模块通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值,具体包括:所述GPIO1和所述GPIO2是直接连接的,获取的所述GPIO2的电平状态就是所述GPIO1的电平状态,通过操作所述GPIO1电平的高低就实现对所述GPIO2电平状态的控制。
更进一步地,所述状态控制模块中所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态,具体包括:
探测模块,适用于系统启动后,所述SDIO接口外设驱动加载并开始工作,通过相应驱动接口探测到所述GPIO2为高电平;
判断模块,适用于判断出所述SDIO接口外设处于拔出状态;
电源和时钟控制模块,适用于所述嵌入式处理器的SDIO控制端切断所述SDIO接口外设的电源和时钟;
所述SDIO接口外设进入低功耗状态。
更进一步地,所述装置还包括:
所述判断模块还适用于判断用户层是否有应用程序需要使用所述SDIO接口外设;
调用接口模块,适用于如果有,则通过系统层的API调用驱动层的接口,在初始调用到的驱动接口实现函数中添加操作,将所述GPIO1置为低电平;
所述探测模块还适用于当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为低电平,判断出所述SDIO接口外设已经插入;
所述电源和时钟控制模块还适用于通过所述嵌入式处理器的SDIO控制端对所述SDIO接口外设恢复供电和时钟;
所述SDIO接口外设进入正常工作状态;
所述判断模块还用于判断用户层的所述应用程序是否退出不再使用所述SDIO接口外设;
所述调用接口模块,还适用于如果退出,则通过系统层的API调用所述驱动层的相应接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述GPIO1置为高电平;
所述判断模块还用于当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为高电平,判断出所述SDIO接口外设已经拔出;
所述电源和时钟控制模块还适用于通过所述嵌入式处理器的SDIO控制端对所述SDIO接口外设切断电源和时钟;
所述SDIO接口外设进入低功耗状态。
本发明借助这种根据GPIO状态探测SDIO接口外设插入拔出的方法,即完善了SDIO驱动接口,实现了SDIO接口外设插入拔出的自动探测功能,又降低了系统功耗,简单实用,值得推广。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的SDIO接口外设的自动探测方法流程图;
图2示出了根据本发明实施例二的SDIO接口外设的自动探测方法流程图;
图3示出了根据本发明实施例三的SDIO接口外设的自动探测装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
需要说明的是,在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可以理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名词的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故应解释成“包含但不限定于”。说明书及权利要求中提及的“GPIO1”和“GPIO2”中的“1”和“2”只是为了说明的便利,实质上可以是嵌入式处理器中的任意通用GPIO接口,并没有什么不同,也可以用“第一GPIO”“第二GPIO”来称呼。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明书的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
为了解决上述Android系统无法支持北斗卫星模块的问题,本发明提出了一种在Android系统中修改硬件抽象层的方法,来全面支持北斗卫星模块在终端设备上的实现,可以随意运行在支持Android系统的手机、移动终端、或是个人电脑等。该功能的实现主要针对某些行业对北斗卫星导航模块的使用开发。
Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications,背面发明是通过修改Android系统中HAL(Hardware Abstraction Layer,硬件抽象层)的libgps的代码库实现的。所述Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space)。
SDIO协议是基于SD接口的,也可称支持SDIO的SD接口为SDIO接口。SDIO设备像USB设备一样支持即插即用,通信速度高,全速设备可以达到100Mb/second。耗电小,适合于各种移动设备。对比MMC/SDIO与CF(compact flash压缩闪存卡)等早先出现的接口,MMC/SDIO比其他的早期接口更加省电,更加小型化,也就更加成为应用的一个趋势。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个附图并不构成对本发明实施例的限定。
实施例一、一种SDIO接口外设的自动探测方法。
为了实现在嵌入式系统中自动探测SDIO接口外设,本发明实施例利用普嵌入式处理器平台上的两个任意的通用GPIO,提供一种SDIO接口外设的自动探测方案。
下面结合图1对本实施例一的方法进行详细说明。
图1为本发明实施例一的SDIO接口外设的自动探测方法的流程示意图,如图1所示,本发明实施例包括嵌入式处理器和SDIO接口外设,其中所述嵌入式处理器中的GPIO1和GPIO2短接在一起,包括以下步骤:
步骤S101、分别设置所述GPIO1和GPIO2为输出和输入,其中所述GPIO1的初始化状态为高电平。
具体的,本实施例所述SDIO接口外设的自动探测方法软件方面主要是由驱动程序操作GPIO来实现,首先在所述嵌入式系统BSP(Board Support Package,板级支持包)的初始化阶段将所述GPIO1和所述GPIO2设置为输出和输入,确保所述GPIO1初始化状态为高电平。
S102、所述SDIO接口外设注册过程中,添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述GPIO2电平状态的操作。
具体的,本实施例所述SDIO接口外设注册过程中添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述GPIO2电平状态的操作。
S103、通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值。
具体的,本实施例中由于所述GPIO1和所述GPIO2是直连的,所以获取的所述GPIO2的电平状态其实就是所述GPIO1的电平状态,这样通过操作所述GPIO1电平的高低就可以实现对所述GPIO2状态的控制。
S104、所述SDIO接口外设驱动加载,通过相应驱动接口探测到所述GPIO2的电平值。
具体的,在本实施例中,系统启动后,所述SDIO接口外设驱动加载并开始工作,通过相应驱动接口探测到所述GPIO2为高电平,所述SDIO接口外设处于拔出状态。
S105、所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态。
具体的,本实施例中,所述SDIO接口外设拔出后,所述嵌入式处理器SDIO控制端可以切断其电源和时钟,然后进入低功耗状态。如果用户层有应用程序需要使用所述SDIO接口外设,其会通过系统层的API调用驱动层的一系列接口,在初始调用到的驱动接口实现函数中添加操作,将所述GPIO1置为低电平。当探测所述SDIO接口外设状态的驱动接口被调用时,其获取到的所述GPIO2为低电平,这也意味着所述SDIO接口外设已经插入,接下来所述嵌入式处理器端的SDIO控制器会对所述SDIO接口外设恢复供电和时钟,所述SDIO接口外设进入正常工作状态。如果应用程序退出不再使用所述SDIO接口外设时,其会通过系统层的API(Application Programming Interface,应用程序编程接口)调用驱动层相关驱动接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述GPIO1置为高电平,接下来会有一系列的驱动调用,当探测所述SDIO接口外设状态的驱动接口被调用时,其获取到的所述GPIO2为高电平,意味着所述SDIO接口外设已经拔出,所述嵌入式处理器的SDIO控制器端可以切断其电源和时钟,然后进入低功耗状态。
本实施例充分利用嵌入式系统中SDIO驱动程序现有的架构和功能,发掘GPIO方便易用的特点,通过两个GPIO相互连接的方法,结合驱动中具体操作方法,实现了嵌入式系统中SDIO接口外设的自动探测功能。借助这种根据GPIO状态探测SDIO接口外设插入拔出的方法,即完善了SDIO驱动接口,实现了SDIO接口外设插入拔出的自动探测功能,又降低了系统功耗,简单实用。
实施例二、一种SDIO接口外设的自动探测方法。
下面结合图2对本实施例的方法进行详细说明。
图2为本发明实施例二的SDIO接口外设的自动探测方法的流程示意图,如图2所示,本实施例的方法包括:
步骤S201、初始化阶段将GPIO1和GPIO2分别设置为输出和输入,其中GPIO1的初始化状态为高电平。
步骤S202、SDIO设备注册,添加插入和拔出状态探测的驱动接口,在驱动接口实现函数中添加读取GPIO2电平状态的操作。
步骤S203、系统启动。
步骤S204、SDIO接口外设驱动加载,通过相应驱动接口探测到GPIO2为高电平,SDIO接口外设处于拔出状态。
步骤S205、处理器SDIO控制端切断其时钟和电源,进入低功耗状态。
步骤S206、判断用户层是否有应用程序需要使用SDIO接口外设。如果没有,则继续回到上一步骤S205,保持其低功耗状态;反之,进入下一步骤S207。
步骤S207、将GPIO1设置为低电平,SDIO驱动探测接口探测到GPIO2输入为低电平,SDIO接口外设已经插入。
步骤S208、处理器SDIO控制端对SDIO接口外设恢复供电和时钟,SDIO接口外设进入正常工作状态。
步骤S209、判断用户层应用程序是否退出不再使用SDIO接口外设。如果没有退出,则返回到上一步骤S208,所述SDIO接口外设继续保持正常工作状态;反之,进入下一步S210。
步骤S210、将GPIO1设置为高电平,SDIO驱动探测接口探测到GPIO2输入为高电平,SDIO接口外设已经拔出。之后返回到步骤S205,所述SDIO接口外设进入低功耗状态。
所述SDIO接口外设自动探测方法软件方面主要是由驱动程序操作GPIO来实现,首先在所述嵌入式系统BSP(Board Support Package,板级支持包)的初始化阶段将所述GPIO1和所述GPIO2设置为输出和输入,确保所述GPIO1初始化状态为高电平,在所述SDIO设备注册过程中添加插入和拔出状态探测的驱动接口,在驱动接口实现函数中添加读取所述GPIO2电平状态的操作,由于所述GPIO1和所述GPIO2是是直连的,所以获取的所述GPIO2的电平状态其实就是所述GPIO1的电平状态,这样通过操作所述GPIO1电平的高低就可以实现对所述GPIO2状态的控制。系统启动后,所述SDIO接口外设驱动加载并开始工作,通过相应驱动接口探测到所述GPIO2为高电平,所述SDIO接口外设处于拔出状态,外设拔出后,所述嵌入式处理器SDIO控制端可以切断其电源和时钟,然后进入低功耗状态。如果用户层有应用程序需要使用所述SDIO接口外设,其会通过系统层的API调用驱动层的一系列接口,在初始调用到的驱动接口实现函数中添加操作,将所述GPIO1置为低电平,当探测所述SDIO接口外设状态的驱动接口被调用时,其获取到的所述GPIO2为低电平,这也意味着所述SDIO接口外设已经插入,接下来所述处理器端的SDIO控制器会对所述SDIO接口外设恢复供电和时钟,所述SDIO接口外设进入正常工作状态。如果应用程序退出不再使用所述SDIO接口外设时,其会通过系统层的API调用驱动层相关驱动接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述GPIO1置为高电平,接下来会有一系列的驱动调用,当探测所述SDIO接口外设状态的驱动接口被调用时,其获取到的所述GPIO2为高电平,意味着所述SDIO接口外设已经拔出,所述嵌入式处理器SDIO控制器端可以切断其电源和时钟,然后进入低功耗状态。
上述步骤的具体实施方法同上述的实施例一,可以参见实施例一中的描述,具体在此不再赘述。
本实施例借助嵌入式处理器平台上的两个任意的通用GPIO,其中一个设置为输出,另一个设置为输入,将两个GPIO相互连接在一起,在SDIO驱动中添加探测GPIO电平的接口实现,通过控制输出GPIO电平的高低来影响输入GPIO的电平值,SDIO驱动通过驱动接口会自动获取输入GPIO的电平值,如果输入GPIO电平值为高,SDIO外设拔出;如果为低,SDIO外设插入。这种探测方法简单可靠,方便灵活,即节省了系统软硬件资源,还能实现强大的热插拔功能。
实施例三、一种SDIO接口外设的自动探测装置。
硬件上以Freescale的imx515嵌入式处理器和SDIO接口的外设为核心,将嵌入式处理器SOC(System on Chip,芯片级系统)中的两个GPIO短接在一起。
下面结合图3对本实施例的方法进行详细说明。
图3为本发明实施例三的SDIO接口外设的自动探测装置示意图,如图3所示,本实施例的装置包括:SOC主控制器301、SDIO接口外设302,其中所述SOC主控制器301至少有两个通用的GPIO口,分别为303GPIO1和304GPIO2,所述嵌入式处理器中的303GPIO1和304GPIO2短接在一起;还包括:初始化模块,适用于分别设置所述303GPIO1和304GPIO2为输出和输入,其中置所述303GPIO1的初始化状态为高电平;
注册模块,适用于在所述SDIO接口外设302注册过程中,添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述304GPIO2电平状态的操作;
电平控制模块,适用于通过控制所述303GPIO1电平的高低来影响所述304GPIO2的电平值;
驱动加载模块,适用于所述SDIO接口外设302驱动加载,通过相应驱动接口探测到所述GPIO2的电平值;
状态控制模块,适用于所述SOC主控制器301的SDIO控制端根据所述304GPIO2的电平值控制所述SDIO接口外设302进入相应的状态。
在本实施例中优选所述SOC主控制器301是Freescale的imx515。
在本实施例中优选地,所述电平控制模块通过控制所述03GPIO1电平的高低来影响所述304GPIO2的电平值,具体包括:所述303GPIO1和所述304GPIO2是直接连接的,获取的所述304GPIO2的电平状态就是所述303GPIO1的电平状态,通过操作所述303GPIO1电平的高低就实现对所述304GPIO2电平状态的控制。
在本实施例中优选地,所述状态控制模块中所述SOC主控制器301的SDIO控制端根据所述304GPIO2的电平值控制所述SDIO接口外设302进入相应的状态,具体包括:
探测模块,适用于系统启动后,所述SDIO接口外设302驱动加载并开始工作,通过相应驱动接口探测到所述304GPIO2为高电平;
判断模块,适用于判断出所述SDIO接口外设302处于拔出状态;
电源和时钟控制模块,适用于所述SOC主控制器301的SDIO控制端切断所述SDIO接口外设302的电源和时钟;
所述SDIO接口外设302进入低功耗状态。
在本实施例中优选地,所述判断模块还适用于判断用户层是否有应用程序需要使用所述SDIO接口外设302;
调用接口模块,适用于如果有,则通过系统层的API调用驱动层的接口,在初始调用到的驱动接口实现函数中添加操作,将所述303GPIO1置为低电平;
所述探测模块还适用于当探测所述SDIO接口外设302的所述驱动接口被调用时,获取到的所述304GPIO2为低电平,判断出所述SDIO接口外设302已经插入;
所述电源和时钟控制模块还适用于通过所述SOC主控制器301的SDIO控制端对所述SDIO接口外设302恢复供电和时钟;
所述SDIO接口外设302进入正常工作状态;
所述判断模块还用于判断用户层的所述应用程序是否退出不再使用所述SDIO接口外设302;
所述调用接口模块,还适用于如果退出,则通过系统层的API调用所述驱动层的相应接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述303GPIO1置为高电平;
所述判断模块还用于当探测所述SDIO接口外设302的所述驱动接口被调用时,获取到的所述304GPIO2为高电平,判断出所述SDIO接口外设302已经拔出;
所述电源和时钟控制模块还适用于通过所述SOC主控制器301的SDIO控制端对所述SDIO接口外设302切断电源和时钟;
所述SDIO接口外设302进入低功耗状态。
本实施例借助嵌入式处理器平台上的两个任意的通用GPIO,其中一个设置为输出,另一个设置为输入,将两个GPIO相互连接在一起,在SDIO驱动中添加探测GPIO电平的接口实现,通过控制输出GPIO电平的高低来影响输入GPIO的电平值,SDIO驱动通过驱动接口会自动获取输入GPIO的电平值,如果输入GPIO电平值为高,SDIO外设拔出;如果为低,SDIO外设插入。借助这种根据GPIO状态探测SDIO连接口外设插入拔出的方法,即完善了SDIO驱动接口,实现了SDIO接口外设插入拔出的自动探测功能,又降低了系统功耗,简单实用。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求书本身都作为本发明的单独实施例。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种自动探测并控制SDIO接口外设状态的方法,包括嵌入式处理器和SDIO接口外设,其中所述嵌入式处理器中的GPIO1和GPIO2短接在一起,其特征在于,包括以下步骤:
分别设置所述GPIO1和GPIO2为输出和输入,其中所述GPIO1的初始化状态为高电平;
所述SDIO接口外设注册过程中,添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述GPIO2电平状态的操作;
通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值;
所述SDIO接口外设的驱动加载,通过相应驱动接口探测到所述GPIO2的电平值,其中,当GPIO2的电平值为低时,判断所述SDIO接口外设处于接入状态,当GPIO2的电平值为高时,判断所述SDIO接口外设处于拔出状态;
所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态,其中,当GPIO2的电平值为低时,所述嵌入式处理器的SDIO控制端使所述SDIO接口外设进入正常工作状态,当GPIO2的电平值为高时,所述嵌入式处理器的SDIO控制端使所述SDIO接口外设进入低功耗状态。
2.根据权利要求1所述的自动探测并控制SDIO接口外设状态的方法,其特征在于:所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态的步骤中,具体包括:
系统启动后,所述SDIO接口外设驱动加载并开始工作,通过相应驱动接口探测到所述GPIO2为高电平;
判断出所述SDIO接口外设处于拔出状态;
所述嵌入式处理器的SDIO控制端切断所述SDIO接口外设的电源和时钟;
所述SDIO接口外设进入低功耗状态。
3.根据权利要求2所述的自动探测并控制SDIO接口外设状态的方法,其特征在于:所述SDIO接口外设进入低功耗状态步骤后,还包括:
判断用户层是否有应用程序需要使用所述SDIO接口外设;
如果有,则通过系统层的API调用驱动层的接口,在初始调用到的驱动接口实现函数中添加操作,将所述GPIO1置为低电平;
当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为低电平,判断出所述SDIO接口外设已经插入;
所述嵌入式处理器的SDIO控制端对所述SDIO接口外设恢复供电和时钟;
所述SDIO接口外设进入正常工作状态。
4.根据权利要求3所述的自动探测并控制SDIO接口外设状态的方法,其特征在于,所述SDIO接口外设进入正常工作状态步骤后,还包括:
判断用户层的所述应用程序是否退出不再使用所述SDIO接口外设;
如果退出,则通过系统层的API调用所述驱动层的相应接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述GPIO1置为高电平;
当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为高电平,判断出所述SDIO接口外设已经拔出;
所述嵌入式处理器的SDIO控制端对所述SDIO接口外设切断电源和时钟;所述SDIO接口外设进入低功耗状态。
5.一种自动探测并控制SDIO接口外设状态的装置,包括嵌入式处理器和SDIO接口外设,其特征在于:所述嵌入式处理器中的GPIO1和GPIO2短接在一起;还包括:
初始化模块,适用于分别设置所述GPIO1和GPIO2为输出和输入,其中置所述GPIO1的初始化状态为高电平;
注册模块,适用于在所述SDIO接口外设注册过程中,添加插入和拔出状态探测的驱动接口,在所述驱动接口实现函数中添加读取所述GPIO2电平状态的操作;
电平控制模块,适用于通过控制所述GPIO1电平的高低来影响所述GPIO2的电平值;
驱动加载模块,适用于所述SDIO接口外设驱动加载,通过相应驱动接口探测到所述GPIO2的电平值,其中,当GPIO2的电平值为低时,判断所述SDIO接口外设处于接入状态,当GPIO2的电平值为高时,判断所述SDIO接口外设处于拔出状态;
状态控制模块,适用于所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态,其中,当GPIO2的电平值为低时,所述嵌入式处理器的SDIO控制端使所述SDIO接口外设进入正常工作状态,当GPIO2的电平值为高时,所述嵌入式处理器的SDIO控制端使所述SDIO接口外设进入低功耗状态。
6.根据权利要求5所述的自动探测并控制SDIO接口外设状态的装置,其特征在于:所述嵌入式处理器是Freescale的imx515。
7.根据权利要求6所述的自动探测并控制SDIO接口外设状态的装置,其特征在于:
所述状态控制模块中所述嵌入式处理器的SDIO控制端根据所述GPIO2的电平值控制所述SDIO接口外设进入相应的状态,具体包括:
探测模块,适用于系统启动后,所述SDIO接口外设驱动加载并开始工作,通过相应驱动接口探测到所述GPIO2为高电平;
判断模块,适用于判断出所述SDIO接口外设处于拔出状态;
电源和时钟控制模块,适用于所述嵌入式处理器的SDIO控制端切断所述SDIO接口外设的电源和时钟;
所述SDIO接口外设进入低功耗状态。
8.根据权利要求7所述的自动探测并控制SDIO接口外设状态的装置,其特征在于,还包括:
所述判断模块还适用于判断用户层是否有应用程序需要使用所述SDIO接口外设;
调用接口模块,适用于如果有,则通过系统层的API调用驱动层的接口,在初始调用到的驱动接口实现函数中添加操作,将所述GPIO1置为低电平;
所述探测模块还适用于当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为低电平,判断出所述SDIO接口外设已经插入;
所述电源和时钟控制模块还适用于通过所述嵌入式处理器的SDIO控制端对所述SDIO接口外设恢复供电和时钟;
所述SDIO接口外设进入正常工作状态;
所述判断模块还用于判断用户层的所述应用程序是否退出不再使用所述SDIO接口外设;
所述调用接口模块,还适用于如果退出所述应用程序,则通过系统层的API调用所述驱动层的相应接口,在最后需要调用到的驱动接口实现函数中添加操作,将所述GPIO1置为高电平;
所述判断模块还用于当探测所述SDIO接口外设的所述驱动接口被调用时,获取到的所述GPIO2为高电平,判断出所述SDIO接口外设已经拔出;
所述电源和时钟控制模块还适用于通过所述嵌入式处理器的SDIO控制端对所述SDIO接口外设切断电源和时钟;
所述SDIO接口外设进入低功耗状态。
CN201410535248.8A 2014-10-11 2014-10-11 一种sdio接口外设的自动探测方法及装置 Active CN105573940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410535248.8A CN105573940B (zh) 2014-10-11 2014-10-11 一种sdio接口外设的自动探测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410535248.8A CN105573940B (zh) 2014-10-11 2014-10-11 一种sdio接口外设的自动探测方法及装置

Publications (2)

Publication Number Publication Date
CN105573940A CN105573940A (zh) 2016-05-11
CN105573940B true CN105573940B (zh) 2019-01-15

Family

ID=55884097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410535248.8A Active CN105573940B (zh) 2014-10-11 2014-10-11 一种sdio接口外设的自动探测方法及装置

Country Status (1)

Country Link
CN (1) CN105573940B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255750B (zh) * 2018-02-01 2021-04-13 超越科技股份有限公司 一种基于国产嵌入式平台的密码模块接口的实现方法
CN109254889A (zh) * 2018-10-22 2019-01-22 河南思维轨道交通技术研究院有限公司 一种采用嵌入式软件进行cpu管脚短路故障的定位方法
CN109739790B (zh) * 2018-12-12 2020-07-14 珠海亿智电子科技有限公司 一种通用输入输出接口模块

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964155A (zh) * 2005-11-08 2007-05-16 联想(北京)有限公司 移动终端电压动态管理系统及方法
US20130117381A1 (en) * 2011-11-04 2013-05-09 David Harry Garcia Controlling Notification Based on Power Expense and Social Factors
CN103761129A (zh) * 2014-01-13 2014-04-30 中南大学 一种在Bootloader层实现SDIO接口驱动的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964155A (zh) * 2005-11-08 2007-05-16 联想(北京)有限公司 移动终端电压动态管理系统及方法
US20130117381A1 (en) * 2011-11-04 2013-05-09 David Harry Garcia Controlling Notification Based on Power Expense and Social Factors
CN103761129A (zh) * 2014-01-13 2014-04-30 中南大学 一种在Bootloader层实现SDIO接口驱动的方法

Also Published As

Publication number Publication date
CN105573940A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN107608693B (zh) 版本升级方法及终端设备
CN107526593B (zh) 基于动态链接库的bmc功能定制方法
CN103412769A (zh) 外接卡参数配置方法、设备以及系统
CN101650660A (zh) 从中央存储装置引导计算机系统
CN105573940B (zh) 一种sdio接口外设的自动探测方法及装置
AU2010208065A1 (en) System and method for multifunction device enumeration
CN105824678A (zh) 一种操作系统安装方法及装置
CN103729210A (zh) 一种实现一个刷机包支持多种制式智能终端的方法及装置
KR20160108499A (ko) 플랫폼-특유의 피쳐들을 선택적으로 인에이블하기
CN103853586A (zh) 一种在uefi层实现无线网卡驱动的方法
CN103761129B (zh) 一种在Bootloader层实现SDIO接口驱动的方法
US9672047B1 (en) Systems and methods for accessing a bootable partition on a serial peripheral interface device
CN102646044A (zh) 一种多触摸屏加载程序的系统和方法
CN109213530A (zh) 一种基于usb的通信连接方法、移动终端及存储介质
CN109150956A (zh) 一种推送sdk的实现方法、装置、设备和计算机存储介质
CN107111568A (zh) 用于在启用usb 设备时呈现驱动器安装文件的系统和方法
US9465597B2 (en) System for operating a device as a storage device and a modem device
CN101853142B (zh) 一种带虚拟光驱的usb设备的识别方法
CN102880479A (zh) 一种远程修改bios属性参数的方法及装置
CN114579495B (zh) 基于飞腾处理器的通用计算机固件的实现方法
WO2019201053A1 (zh) Java卡多应用管理方法及Java卡
CN103455342B (zh) 一种主题调用的方法及装置
CN104021006A (zh) 可延伸韧体接口外接显示卡、主机系统、及相关开机方法
CN201897784U (zh) 一种电子设备的升级控制装置
WO2014183686A1 (zh) 一种智能终端及虚拟存储卡与真实存储卡同步的方法与装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant