多态识别方法、系统及终端
技术领域
本发明涉及通信技术领域,特别涉及一种多态识别方法、系统及终端。
背景技术
在终端开发过程中,通常需要使用不同供应商提供的各种类型的部件(如显示模组、摄像头模组等),终端需要正确识别出每种部件以实现驱动对应的部件。
每个部件具有自身的部件ID(身份标识号码),并以二进制方式表示,现有技术中通过GPIO(通用输入/输出)接口与部件的部件ID端连接。但是,每个GPIO接口只能识别2家供应商的部件(即通过1和0来区分),当需要识别4家供应商的部件,则需要2个GPIO接口(即通过11、10、01和00来区分);当需要识别8家供应商的部件,则需要3个GPIO接口(即通过111、110、101、011、100、010、001和000来区分),其他依次类推,即当需要识别较多的部件时,就必须适应性增加GPIO接口的数量;因此,现有技术中在利用GPIO接口识别不同供应商的部件时,存在利用率较低的问题。
发明内容
本发明要解决的技术问题是现有技术中在利用GPIO接口识别不同供应商的部件时,存在利用率较低的缺陷,目的在于提供一种多态识别方法、系统及终端。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种多态识别系统,所述多态识别系统包括GPIO接口、充放电设备和检测模块;
所述GPIO接口与所述检测模块电连接;
所述检测模块用于在所述GPIO接口与所述待检测器件电连接时,若所述GPIO接口检测到的电平为高电平,则确定所述待检测器件为上拉状态;若所述GPIO接口检测到的电平为低电平,则确定所述待检测器件为下拉状态;
其中,不同类型的所述待检测器件对应不同的阻值;
所述检测模块还用于当所述待检测器件为上拉状态,且所述充放电设备与所述待检测器件电连接时,检测所述待检测器件对所述充放电设备进行充电所需的充电时间,根据所述充电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型;或,
所述检测模块还用于当所述待检测器件为下拉状态,且所述充放电设备与所述待检测器件电连接时,检测所述充放电设备对所述待检测器件进行放电所需的放电时间,根据所述放电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型。
可选地,所述充放电设备为电容;
所述电容的一端与所述GPIO接口电连接,所述电容的另一端接地;
所述检测模块用于在所述电容的一端与所述待检测器件电连接,且所述GPIO接口的内部电阻为悬空状态时,检测所述电容的电压值是否小于初始电压值,若否,则确定所述待检测器件为上拉状态;若是,确定所述待检测器件为下拉状态。
可选地,当所述待检测器件为上拉状态时,将所述电容的一端与所述待检测器件断开连接,并将所述GPIO接口的内部电阻设置为下拉状态,所述电容进行放电,直至所述电容的电压值为零;
在所述电容放电至所述电容的电压值为零时,将所述GPIO接口的内部电阻设置为悬空状态,并将所述电容的一端与所述待检测器件电连接,所述待检测器件对所述电容进行充电;
所述检测模块还用于检测所述待检测器件对所述电容进行充电,直至所述电容的电压值达到第二电压值时所需的充电时间,根据所述充电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型;
当所述待检测器件为下拉状态时,将所述电容的一端与所述待检测器件电连接,并将所述GPIO接口的内部电阻设置为悬空状态,所述电容对所述待检测器件进行放电;
所述检测模块还用于检测所述电容对所述待检测器件进行放电,直至所述电容的电压值下降至第三电压值时所需的放电时间,根据所述放电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型。
可选地,在所述电容的一端与所述待检测器件断开连接,且所述GPIO接口的内部电阻为上拉状态时,所述电容进行充电,直至所述电容的电压值达到所述初始电压值。
可选地,所述内部电阻包括上拉电阻和下拉电阻;
所述GPIO接口包括开关;
所述开关包括动端和不动端;
其中,所述不动端分别与所述充放电设备和所述检测模块电连接;
当所述GPIO接口的内部电阻为上拉状态时,所述上拉电阻的一端与电源端电连接,所述上拉电阻的另一端与所述动端电连接;
当所述GPIO接口的内部电阻为下拉状态时,所述下拉电阻的一端与所述动端电连接,所述下拉电阻的另一端接地;
当所述GPIO接口的内部电阻为悬空状态时,所述动端处于悬空状态;
或,所述开关包括第一动端、第二动端和不动端;
其中,所述不动端分别与所述充放电设备和所述检测模块电连接;
当所述GPIO接口的内部电阻为上拉状态时,所述上拉电阻的一端与电源端电连接,所述上拉电阻的另一端与所述第一动端电连接;
当所述GPIO接口的内部电阻为下拉状态时,所述下拉电阻的一端与所述第二动端电连接,所述下拉电阻的另一端接地;
当所述GPIO接口的内部电阻为悬空状态时,所述第一动端和所述第二动端均处于悬空状态。
可选地,当所述待检测器件为上拉状态时,所述待检测器件的一端与所述电容的一端电连接,所述待检测器件的另一端与电源端电连接;
当所述待检测器件为下拉状态时,所述待检测器件的一端与所述电容的一端电连接,所述待检测器件的另一端接地。
本发明还提供一种终端,所述终端包括上述的多态识别系统。
本发明还提供一种多态识别方法,所述多态识别方法包括:
将GPIO接口与待检测器件电连接,若所述GPIO接口检测到的电平为高电平,则确定所述待检测器件为上拉状态;若所述GPIO接口检测到的电平为低电平,则确定所述待检测器件为下拉状态;
其中,不同类型的所述待检测器件对应不同的阻值;
当所述待检测器件为上拉状态,将所述充放电设备与所述待检测器件电连接,检测所述待检测器件对所述充放电设备进行充电所需的充电时间,根据所述充电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型;或,
当所述待检测器件为下拉状态,将所述充放电设备与所述待检测器件电连接,检测所述充放电设备对所述待检测器件进行放电所需的放电时间,根据所述放电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型。
可选地,所述充放电设备为电容;
所述电容的一端与所述GPIO接口电连接,所述电容的另一端接地;
所述将所述GPIO接口与所述待检测器件电连接,若所述GPIO接口检测到的电平为高电平,则确定所述待检测器件为上拉状态;若所述GPIO接口检测到的电平为低电平,则确定所述待检测器件为下拉状态的步骤包括:
将所述电容的一端与所述待检测器件电连接,且所述GPIO接口的内部电阻设置为悬空状态,检测所述电容的电压值是否小于初始电压值,若否,则确定所述待检测器件为上拉状态;若是,确定所述待检测器件为下拉状态。
可选地,所述当所述待检测器件为上拉状态,将所述充放电设备与所述待检测器件电连接,检测所述待检测器件对所述充放电设备进行充电所需的充电时间,根据所述充电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型的步骤包括:
当所述待检测器件为上拉状态时,将所述电容的一端与所述待检测器件断开连接,并将所述GPIO接口的内部电阻设置为下拉状态,所述电容进行放电,直至所述电容的电压值为零;
在所述电容放电至所述电容的电压值为零时,将所述GPIO接口的内部电阻设置为悬空状态,并将所述电容的一端与所述待检测器件电连接,所述待检测器件对所述电容进行充电;
检测所述待检测器件对所述电容进行充电,直至所述电容的电压值达到第二电压值时所需的充电时间,根据所述充电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型;
所述当所述待检测器件为下拉状态,将所述充放电设备与所述待检测器件电连接,检测所述充放电设备对所述待检测器件进行放电所需的放电时间,根据所述放电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型的步骤包括:
当所述待检测器件为下拉状态时,将所述电容的一端与所述待检测器件电连接,并将所述GPIO接口的内部电阻设置为悬空状态,所述电容对所述待检测器件进行放电;
检测所述电容对所述待检测器件进行放电,直至所述电容的电压值下降至第三电压值时所需的放电时间,根据所述放电时间获取所述待检测器件的阻值,并根据所述阻值获取所述待检测器件的类型。
可选地,所述将所述GPIO接口与所述待检测器件电连接,若所述GPIO接口检测到的电平为高电平,则确定所述待检测器件为上拉状态;若所述GPIO接口检测到的电平为低电平,则确定所述待检测器件为下拉状态步骤之前还包括:
将所述电容的一端与所述待检测器件断开连接,且所述GPIO接口的内部电阻设置为上拉状态,所述电容进行充电,直至所述电容的电压值达到所述初始电压值。
本发明的积极进步效果在于:
本发明中,首先检测待检测器件为上拉状态或下拉状态,然后在待检测器件为上拉状态时,根据对放电后的电容进行充电的充电时间获取待检测器件的阻值,在待检测器件为下拉状态时,根据电容对待检测器件进行放电的放电时间获取待检测器件的阻值,最终根据不同的阻值识别出不同类型的待检测器件,从而实现一个GPIO接口可以识别不同供应商的不同类型的部件,从而提高了GPIO接口的利用率。
附图说明
图1为本发明实施例1的多态识别系统的模块示意图;
图2为本发明实施例2的多态识别系统的待检测器件为上拉状态时的电路示意图;
图3为本发明实施例2的多态识别系统的待检测器件为下拉状态时的电路示意图;
图4为本发明实施例4的多态识别系统的方法的流程图;
图5为本发明实施例5的多态识别系统的方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例的多态识别系统包括GPIO接口1、充放电设备2和检测模块3。GPIO接口1与检测模块3电连接。
检测模块3用于在GPIO接口1与待检测器件电连接时,若GPIO接口1检测到的电平为高电平,则确定待检测器件为上拉状态;若GPIO接口1检测到的电平为低电平,则确定待检测器件为下拉状态;
其中,待检测器件包括不同供应商提供的各种类型的部件(如显示模组、摄像头模组等),且待检测器件不仅限于上述所包括的几种部件。
不同类型的待检测器件对应不同的阻值,即不同阻值如10KΩ、20KΩ、30KΩ、40KΩ.....分别对应不同供应商提供的不同类型的部件。
检测模块3还用于当待检测器件为上拉状态,且充放电设备与待检测器件电连接时,检测待检测器件对充放电设备进行充电所需的充电时间,根据充电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型;或,
检测模块3还用于当待检测器件为下拉状态,且充放电设备与待检测器件电连接时,检测充放电设备对待检测器件进行放电所需的放电时间,根据放电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型。
本实施例中,首先检测待检测器件为上拉状态或下拉状态,然后在待检测器件为上拉状态时,根据对放电后的电容进行充电的充电时间获取待检测器件的阻值,在待检测器件为下拉状态时,根据电容对待检测器件进行放电的放电时间获取待检测器件的阻值,最终根据不同的阻值识别出不同类型的待检测器件,从而实现一个GPIO接口可以识别不同供应商的不同类型的部件,从而提高了GPIO接口的利用率。
实施例2
如图2和图3所示,本实施例在实施例1的基础上作进一步改进,具体地:
充放电设备2为电容C;电容C的一端与GPIO接口电连接,电容C的另一端接地。
GPIO接口1的内部电阻包括上拉电阻R1和下拉电阻R2。
GPIO接口1包括开关11;开关包括动端a和不动端b;
其中,不动端b分别与充放电设备2和检测模块3电连接。
当GPIO接口1的内部电阻为上拉状态时,上拉电阻R1的一端与电源端电连接,上拉电阻R1的另一端与动端a电连接;
当GPIO接口1的内部电阻为下拉状态时,下拉电阻R2的一端与动端a电连接,下拉电阻R2的另一端接地;
当GPIO接口1的内部电阻为悬空状态时,动端a处于悬空状态。
或,开关11包括两个动端a(第一动端和第二动端)和不动端b;
其中,不动端b分别与充放电设备和检测模块电连接;
当GPIO接口1的内部电阻为上拉状态时,上拉电阻R1的一端与电源端电连接,上拉电阻R1的另一端与第一动端电连接;
当GPIO接口1的内部电阻为下拉状态时,下拉电阻R2的一端与第二动端电连接,下拉电阻R2的另一端接地;
当GPIO接口1的内部电阻为悬空状态时,第一动端和第二动端均处于悬空状态。
在电容C的一端与待检测器件断开连接,且GPIO接口1的内部电阻为上拉状态时,电容进行充电,直至电容C的电压值达到初始电压值(如1.8V),然后将GPIO接口的内部电阻设置为悬空状态。
检测模块3用于在电容C的一端与待检测器件电连接,且GPIO接口1的内部电阻为悬空状态时,检测电容C的电压值是否小于初始电压值,若否,则确定待检测器件为上拉状态;若是,确定待检测器件为下拉状态。
如图2所示,当待检测器件(R3)为上拉状态时,待检测器件的一端与电容C的一端电连接,待检测器件的另一端与电源端电连接。
当待检测器件为上拉状态时,将电容C的一端与待检测器件断开连接,并将GPIO接口1的内部电阻设置为下拉状态,电容C进行放电,直至电容C的电压值为零;
在电容C放电至电容C的电压值为零时,将GPIO接口1的内部电阻设置为悬空状态,并将电容C的一端与待检测器件电连接,待检测器件对电容C进行充电;
检测模块3还用于检测待检测器件对电容C进行充电,直至电容C的电压值达到第二电压值时所需的充电时间,根据充电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型。
具体地,当电压为E的电源端通过待检测器件的阻值R3向电容C充电时,电容C的初始电压值V0为0,电容C充满终止后的电压值Vu为E,电容C对应的电容值为C0,则在任意时刻t时,电容C上的电压值Vt=E*[1-exp(-t/R3C0)];当电容C上的电压值Vt达到第二电压值V2时,根据V2=E*[1-exp(-t/R3C0)]和充电时间,获取待检测器件的阻值R3,进而根据阻值R3获取待检测器件的类型。
如图3所示,当待检测器件(R4)为下拉状态时,待检测器件的一端与电容C的一端电连接,待检测器件的另一端接地。
当待检测器件为下拉状态时,将电容C的一端与待检测器件电连接,并将GPIO接口的内部电阻设置为悬空状态,电容C对待检测器件进行放电;
检测模块3还用于检测电容C对待检测器件进行放电,直至电容C的电压值下降至第三电压值时所需的放电时间,根据放电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型。
具体地,当电容C对待检测器件的阻值R4进行放电时,电容C上的初始电压值V0为E,电容C放电结束后的电压值Vu为0,电容C对应的电容值为C0,则在任意时刻t时,电容C上的电压值Vt=E*exp(-t/R4C0);当电容C上的电压值达到第三电压值V3时,根据V3=E*exp(-t/R4C0)和放电时间,获取待检测器件的阻值R4,进而根据阻值R4获取待检测器件的类型。
本实施例中,首先检测待检测器件为上拉状态或下拉状态,然后在待检测器件为上拉状态时,根据对放电后的电容进行充电的充电时间获取待检测器件的阻值,在待检测器件为下拉状态时,根据电容对待检测器件进行放电的放电时间获取待检测器件的阻值,最终根据不同的阻值识别出不同类型的待检测器件,从而实现一个GPIO接口可以识别不同供应商的不同类型的部件,从而提高了GPIO接口的利用率。
实施例3
本实施例为包括实施例1或2中任意一实施例中的多态识别系统的终端。
其中,终端包括手机、平板电脑、PDA(掌上电脑)等,且终端不仅限于上述所包括的几种设备。
本实施例的终端上的GPIO接口可以根据不同的阻值识别出不同类型的待检测器件,从而实现终端上的一个GPIO接口可以识别不同供应商的不同类型的部件,从而提高了终端上的GPIO接口的利用率。
实施例4
如图4所示,本实施例的多态识别方法包括:
S101、将GPIO接口与待检测器件电连接,若GPIO接口检测到的电平为高电平,则确定待检测器件为上拉状态;若GPIO接口检测到的电平为低电平,则确定待检测器件为下拉状态;
其中,待检测器件包括不同供应商提供的各种类型的部件(如显示模组、摄像头模组等),且待检测器件不仅限于上述所包括的几种部件。
不同类型的待检测器件对应不同的阻值,即不同阻值如10KΩ、20KΩ、30KΩ、40KΩ.....分别对应不同供应商提供的不同类型的部件。
S102、当待检测器件为上拉状态,将充放电设备与待检测器件电连接,检测待检测器件对充放电设备进行充电所需的充电时间,根据充电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型;或,
当待检测器件为下拉状态,将充放电设备与待检测器件电连接,检测充放电设备对待检测器件进行放电所需的放电时间,根据放电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型。
本实施例中,首先检测待检测器件为上拉状态或下拉状态,然后在待检测器件为上拉状态时,根据对放电后的电容进行充电的充电时间获取待检测器件的阻值,在待检测器件为下拉状态时,根据电容对待检测器件进行放电的放电时间获取待检测器件的阻值,最终根据不同的阻值识别出不同类型的待检测器件,从而实现一个GPIO接口可以识别不同供应商的不同类型的部件,从而提高了GPIO接口的利用率。
实施例5
如图5所示,本实施例在实施例4的基础上作进一步改进,具体地:
充放电设备为电容;电容的一端与GPIO接口电连接,电容的另一端接地。
步骤S101之前还包括:
S100、将电容的一端与待检测器件断开连接,且GPIO接口的内部电阻设置为上拉状态,电容进行充电,直至电容的电压值达到初始电压值。
步骤S101具体包括:
S1011、将电容的一端与待检测器件电连接,且GPIO接口的内部电阻设置为悬空状态,判断电容的电压值是否小于初始电压值,若否,则确定待检测器件为上拉状态;若是,确定待检测器件为下拉状态。
步骤S102具体包括:
其中,当待检测器件为上拉状态,将充放电设备与待检测器件电连接,检测待检测器件对充放电设备进行充电所需的充电时间,根据充电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型的步骤包括:
当待检测器件为上拉状态时,将电容的一端与待检测器件断开连接,并将GPIO接口的内部电阻设置为下拉状态,电容进行放电,直至电容的电压值为零;
在电容放电至电容的电压值为零时,将GPIO接口的内部电阻设置为悬空状态,并将电容的一端与待检测器件电连接,待检测器件对电容进行充电;
检测待检测器件对电容进行充电,直至电容的电压值达到第二电压值时所需的充电时间,根据充电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型。
具体地,当电压为E的电源端通过待检测器件的阻值R3向电容C充电时,电容C的初始电压值V0为0,电容C充满终止后的电压值Vu为E,电容C对应的电容值为C0,则在任意时刻t时,电容C上的电压值Vt=E*[1-exp(-t/R3C0)];当电容C上的电压值Vt达到第二电压值V2时,根据V2=E*[1-exp(-t/R3C0)]和充电时间,获取待检测器件的阻值R3,进而根据阻值R3获取待检测器件的类型。
其中,当待检测器件为下拉状态,将充放电设备与待检测器件电连接,检测充放电设备对待检测器件进行放电所需的放电时间,根据放电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型的步骤包括:
当待检测器件为下拉状态时,将电容的一端与待检测器件电连接,并将GPIO接口的内部电阻设置为悬空状态,电容对待检测器件进行放电;
检测电容对待检测器件进行放电,直至电容的电压值下降至第三电压值时所需的放电时间,根据放电时间获取待检测器件的阻值,并根据阻值获取待检测器件的类型。
具体地,当电容C对待检测器件的阻值R4进行放电时,电容C上的初始电压值V0为E,电容C放电结束后的电压值Vu为0,电容C对应的电容值为C0,则在任意时刻t时,电容C上的电压值Vt=E*exp(-t/R4C0);当电容C上的电压值达到第三电压值V3时,根据V3=E*exp(-t/R4C0)和放电时间,获取待检测器件的阻值R4,进而根据阻值R4获取待检测器件的类型。
本实施例中,首先检测待检测器件为上拉状态或下拉状态,然后在待检测器件为上拉状态时,根据对放电后的电容进行充电的充电时间获取待检测器件的阻值,在待检测器件为下拉状态时,根据电容对待检测器件进行放电的放电时间获取待检测器件的阻值,最终根据不同的阻值识别出不同类型的待检测器件,从而实现一个GPIO接口可以识别不同供应商的不同类型的部件,从而提高了GPIO接口的利用率。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式作出多种变更或修改,但这些变更和修改均落入本发明的保护范围。