具体实施方式
本发明实施例提供的方法可以应用于温度检测电路中实现当前温度的精确检测。参见图2,图2是本发明实施例提供的一种温度检测电路的第一结构示意图。
如图2所示,该温度检测电路包括可变电阻R1和NTC电阻R0,其中该R0的一端与R1串联,该R0的另一端接地;该R1的阻值可调节,具体地该R1可以为可调电阻器或阻值可调的电子电位器。
本发明实施例提供的方法还可以应用于如图3所示的另一种温度检测电路,其中图3是本发明实施例提供的另一种温度检测电路的第二结构示意图。
如图3所示,该温度检测电路包括:可变电阻R2、可变电阻R3和NTC电阻R0;R3和R0并联后的一端与R2串联,R3和R0并联后的另一端接地;R2和R3的阻值均可调节,具体地,该R2可以为可调电阻器或电子电位器,R3可以为可调电阻器或电子电位器。
需要说明的是,本发明实施例还可以在该图2或图3所示的温度检测电路的基础上增加其他电子元器件来构成温度检测电路,或者采用其他的电路连接结构来构成包含NTC电阻的温度检测电路,本发明对此不作限制。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参考图4,图4是本发明实施例1提供的一种温度检测方法实施例的流程图,本发明实施例提供的温度检测方法通过温度检测电路实现,所述温度检测电路中包含NTC电阻和可变电阻,所述温度检测方法包括:
S101:为多组NTC电阻的温度特性函数预先设置各自对应的温度区间,其中所述多组NTC电阻的温度特性函数分别对应所述温度检测电路中可变电阻的不同电阻值,所述NTC电阻的温度特性函数包括NTC电阻的特性值与温度值的映射关系。
在本发明实施例中,通过调节温度检测电路中可变电阻的大小,可以获得不同组的NTC电阻的温度特性函数,所述NTC电阻的温度特性函数可以是ADC值-温度函数,还可以是NTC电阻值-温度函数等其他特性函数。以ADC值-温度函数为例,为了方便说明,将所述ADC值-温度函数体现为ADC值-温度曲线。在可变电阻不同时,ADC值-温度曲线的线性区间和斜率各不相同,不同的ADC值-温度曲线在同一线性区间内的斜率不同,对于温度检测来说,当ADC值-温度曲线的横坐标为温度时,ADC值-温度曲线在某一线性区间内的斜率较大更佳,在ADC值-温度曲线的斜率较大时,当温度发生变化,ADC值相应的变化值更大,对温度的感应也更为灵敏,检测的精确度更高。
S102:读取所述NTC电阻的当前特性值,其中当前的可变电阻为第一电阻值,所述第一电阻值对应的温度特性函数为第一温度特性函数。
所述读取所述NTC电阻的当前特性值,具体为读取NTC电阻的当前模数转换器ADC值或当前NTC电阻值;
所述温度特性函数,具体为ADC值-温度函数或NTC电阻值-温度函数。
S103:根据所述第一温度特性函数和所述NTC电阻的当前特性值,获取当前温度值。
S104:若所述当前温度值不在所述第一温度特性函数所对应的第一温度区间内,则获取所述当前温度值所属的第二温度区间所对应的第二电阻值信息。
S105:根据所述第二电阻值信息将所述可变电阻调节为第二电阻值,以根据所述第二电阻值对应的第二温度特性函数检测温度。
可选的,若所述当前温度值在所述第一温度特性函数所对应的第一温度区间内,则不执行调节所述可变电阻的步骤,继续根据所述第一温度特性函数检测温度。
可选的,每组所述温度特性函数的线性段在其对应的温度区间内的斜率大于或等于1。
可选的,所述当前温度值所属的第二温度区间包括:
当所述当前温度值属于多个温度区间时,所述当前温度值所属的第二温度区间为所述多个温度区间中的任一个温度区间;
或者,
当所述当前温度值属于所述多个温度区间时,如果温度变化趋势为上升趋势,所述当前温度值所属的第二温度区间为所述多个温度区间中的温度最高的温度区间;如果温度变化趋势为下降趋势,所述当前温度值所属的第二温度区间为所述多个温度区间中的温度最低的温度区间。
本实施例中,通过读取所述NTC电阻的当前特性值,根据当前的可变电阻对应的第一温度特性函数和所述NTC电阻的当前特性值获取当前温度的粗略值,即当前温度值;若当前温度值不在所述第一温度特性函数所对应的第一温度区间内,则获取所述当前温度值所属的第二温度区间所对应的第二电阻值信息;根据所述第二电阻值信息将所述可变电阻调节为第二电阻值,以根据所述第二电阻值对应的第二温度特性函数检测当前精确的温度;本实施例在温度检测的过程中,根据当前温度的粗略值不断调整可变电阻,选择最佳的温度特性函数来实现温度的精确检测,提高了温度检测的精度。
实施例2
参考图5,图5是本发明实施例2提供的一种温度检测方法实施例的流程图。本实施例以图2的温度检测电路为基础,且以NTC电阻的温度特性函数为ADC值-温度函数为例进行说明,所述NTC电阻的ADC值-温度函数包括NTC电阻的ADC值与温度值的映射关系;为了方便说明,将所述ADC值-温度函数体现为ADC值-温度曲线,相应的,NTC电阻的当前特性值即为NTC电阻的当前ADC值。
该温度检测方法包括:
S501:为多组NTC电阻的ADC值-温度函数预先设置各自对应的温度区间,其中所述多组NTC电阻的ADC值-温度函数分别对应所述温度检测电路中可变电阻的不同电阻值。
此步骤中,将温度检测电路中的R1以固定步长变化,可以得到多组NTC电阻的ADC值-温度函数,其中所述多组NTC电阻的ADC值-温度函数具体体现为多条NTC电阻的ADC值-温度曲线,该ADC值-温度曲线与所述温度检测电路中可变电阻R1的阻值一一对应。
得到所述多组NTC电阻的ADC值-温度函数后,可以为所述多组NTC电阻的ADC值-温度函数预先设置各自对应的温度区间,其中每组所述ADC值-温度函数的线性段在其对应的温度区间内的斜率大于或等于1;具体为,分别在多条ADC值-温度曲线上选取各自对应的线性段,使所述线性段的斜率大于或等于1,所述线性段对应的温度区间即为所述线性段所在ADC值-温度曲线对应的温度区间,从而实现预先设置多组NTC电阻的ADC值-温度函数各自对应的温度区间的过程。其中所述多个温度区间的并集为预设的总温度区间,所述预设的总温度区间与实际应用环境相关,例如该预设的总温度区间可以为(-40摄氏度—120摄氏度);优选的每相邻的两个温度区间之间存在交集。所述线性段的斜率越大,所述线性段对应的温度区间越窄,温度检测的精度越高。
每组所述ADC值-温度函数的线性段在其对应的温度区间内的斜率大于或等于1,即需要满足温度每变化1摄氏度,ADC的变化值大于或等于1比特;体现在图2中的温度检测电路中的话,则需要满足温度每变化1摄氏度,PA_THERM端电压的变化值大于ADC的分辨率对应的电压值,参见下面公式描述,其中以8位ADC为例:
其中R0为温度变化前的NTC电阻值,R0’为温度变化1摄氏度后的NTC电阻,U为电阻R1和NTC电阻上的总电压值,
为PA-THERM端电压的变化值,
为8位ADC的分辨率。
本实施例中设置所述每组所述ADC值-温度函数的线性段在其对应的温度区间内的斜率大于或等于1,可以提高温度检测的精度。
S502:读取所述NTC电阻的当前ADC值,其中当前的可变电阻为第一电阻值,所述第一电阻值对应的ADC值-温度函数为第一ADC值-温度函数。
此步骤中,可以采用读取器读取所述NTC电阻的当前ADC值,此时,温度检测电路中可变电阻的当前值为第一电阻值,且所述第一电阻值对应的ADC值-温度函数为第一ADC值-温度函数。
S503:根据所述第一ADC值-温度函数和所述NTC电阻的当前ADC值,获取当前温度值。
此步骤中,获取所述NTC电阻的当前ADC值后,根据所述第一ADC值-温度函数便可以计算出当前温度值,此处计算出的当前温度值为当前环境温度的粗略值,需要通过本实施例所述方法来获取当前环境的精确温度。
S504:判断所述当前温度值是否在所述第一ADC值-温度函数所对应的第一温度区间内,如果是,执行S505,如果否,执行S506。
每组ADC值-温度函数对应一个温度区间,获取所述第一ADC值-温度函数对应的第一温度区间,再判断所述当前温度值是否在所述第一温度区间内,根据判断结果执行相应处理。
S505:根据所述第一ADC值-温度函数检测温度。
若所述当前温度值在所述第一温度区间内,继续根据所述第一ADC值-温度函数检测当前温度的精确值,具体地,获取所述NTC电阻的ADC值,根据所述ADC值和所述第一ADC值-温度函数获取所述ADC值对应的温度精确值,实现温度的检测。
由于第一温度区间与所述第一ADC值-温度曲线上的线性段相对应,因此根据所述第一ADC值-温度函数检测当前温度的精确值具体为根据所述第一ADC值-温度曲线上的线性段检测当前温度的精确值。
S506:获取所述当前温度值所属的第二温度区间所对应的第二电阻值信息,根据所述第二电阻值信息将所述可变电阻调节为第二电阻值,以根据所述第二电阻值对应的第二ADC值-温度函数检测温度。
此步骤中,若所述当前温度值不在所述第一温度区间内,获取所述当前温度值所属的第二温度区间,根据所述第二温度区间获取第二温度区间对应的第二ADC值-温度函数,根据所述第二ADC值-温度函数获取所述第二ADC值-温度函数对应的第二电阻值信息,其中所述第二电阻信息为可变电阻R1的阻值信息。
所述获取所述当前温度值所述的第二温度区间具体为:
当该当前温度值属于多个温度区间中的一个温度区间,直接获取该当前温度值所在的第二温度区间。
当该当前温度值属于该多个温度区间时,按照指定条件选择该多个温度区间中的一个温度区间作为该当前温度值所属的第二温度区间。其中,该指定条件可以为以下条件中的任一个:
1)选择该多个温度区间中的任一个温度区间。
2)按照室温的变化趋势进行选择;具体地,如果室温的变化趋势为上升趋势,选择该多个温度区间中温度最高的温度区间作为该当前温度值所在的温度区间;如果室温的变化趋势为下降趋势,选择该多个温度区间中温度最低的温度区间作为所述该当前温度值所在的温度区间。
3)按照该多个温度区间对应的温度特性曲线的线性段的斜率大小进行选择;具体地,选择该多个温度区间各自对应的线性段中斜率较大的线性段对应的温度区间作为该当前温度值所在的温度区间;优选的,选择该多个温度区间对应的线性段中斜率最大的线性段对应的温度区间作为该当前温度值所在的温度区间,使得温度检测的精度提高了。
当获取第二电阻值信息后,根据所述第二电阻值信息将所述可变电阻R1调节为第二电阻值;当R1为阻值可调的电子电位器时,基带侧可以采用相关软件程序通过I2C或其他总线来实现R1阻值的调节控制。
获取该调节后温度检测电路中该NTC电阻的ADC值,根据所述第二ADC值-温度函数检测所述ADC值对应的当前的温度精确值,具体地,根据所述第二ADC值-温度曲线上的线性段检测所述ADC值对应的当前的温度精确值。
本实施例所述方法还可以应用于图3所示的温度检测电路,所不同的是可变电阻为R2和R3,则所述第一电阻值为当前可变电阻R2和R3连接后的第一总阻值,所述第二电阻值信息为可变电阻R2和R3的阻值。下面采用图3所示的温度检测电路获取的2条ADC值-温度曲线为例进行描述,具体为:
采用8位的ADC对NTC电阻的电压进行测量,其最大量程为256(即28)比特。
当R2和R3的阻值变化时对应的ADC值-温度曲线如图6所示,图6是本发明实施例2提供的ADC值-温度曲线示意图。图6中横轴为温度,单位为摄氏度,纵轴为ADC的值,单位为比特;曲线1为R2=20,R3=100时的ADC值-温度曲线,曲线2为R2=100,R3=100时的ADC值-温度曲线。
在图6中的3条ADC值-温度曲线中,根据线性段的斜率大于或等于1的条件,在该2条ADC值-温度曲线上获取2个线性段,如图6所示的线性段1和线性段2,线性段1对应着曲线2,线性段1对应的温度区间1为(-40摄氏度—30摄氏度],线性段1对应着R2=20,R3=100的组合;线性段2对应着曲线1,线性段2对应的温度区间2为[30摄氏度—120摄氏度],线性段2对应着R2=100,R3=100的组合。
当检测到的当前温度值属于温度区间1时,直接获取温度区间1对应的线性段1,根据线性段1获取第二电阻信息对应的可变电阻R2和R3的阻值,即R2=20,R3=100,根据该第二电阻信息调节图4中的R2和R3的阻值。再获取调节后的温度检测电路中的NTC电阻的ADC的当前值,根据线性段1获取该ADC的当前值对应的当前的精确温度值。
在低温侧使用线性段1进行精确温度值的检测,在高温侧使用线性段2进行精确温度值的检测,使得在整个预设的总温度区间上ADC都能实现精确检测,且在整个预设的总温度区间上都可以找到符合条件的线性段来获取精确的温度值。
本实施例中,通过读取所述NTC电阻的当前特性值,根据当前的可变电阻对应的第一ADC值-温度函数和所述NTC电阻的当前ADC值获取当前温度的粗略值,即当前温度值;若当前温度值不在所述第一ADC值-温度函数所对应的第一温度区间内,则获取所述当前温度值所属的第二温度区间所对应的第二电阻值信息;根据所述第二电阻值信息将所述可变电阻调节为第二电阻值,以根据所述第二电阻值对应的第二ADC值-温度函数检测当前精确的温度;本实施例在温度检测的过程中,根据当前温度的粗略值不断调整可变电阻,选择最佳的ADC值-温度函数来实现温度的精确检测,提高了温度检测的精度。
此外,本实施例在低温度区间和高温度区间内都对应有满足ADC分辨率的ADC值-温度函数,从而使得在低温和高温下也能通过ADC测出NTC电阻电压,进而实现了温度的精确检测,在提高检测精度的基础上也拓宽了温度的检测范围。
实施例3
参考图7,图7是本发明实施例3提供的一种温度检测器实施例的结构示意图;所述温度检测器包括:温度检测电路701、存储器702、读取器703和处理器704;其中所述温度检测电路701中包含NTC电阻和可变电阻;
所述存储器702,用于存储多组NTC电阻的温度特性函数、预先设置的所述多组NTC电阻的温度特性函数各自对应的温度区间,和,所述多组NTC电阻的温度特性函数分别对应所述温度检测电路中可变电阻的不同电阻值,其中所述NTC电阻的温度特性函数包括NTC电阻的特性值与温度值的映射关系。
本实施例中,通过调节温度检测电路701中可变电阻的大小,可以获得多组的NTC电阻的温度特性函数,所述多组的NTC电阻的温度特性函数分别对应所述温度检测电路中可变电阻的不同电阻值,其中所述NTC电阻的温度特性函数可以是ADC值-温度函数,还可以是NTC电阻值-温度函数等其他特性函数;将所述多组的NTC电阻的温度特性函数和所述多组NTC电阻的温度特性函数分别对应所述温度检测电路中可变电阻的不同电阻值进行存储。
所述预先设置的所述多组NTC电阻的温度特性函数各自对应的温度区间由处理器704的设置单元7041生成。
在可变电阻不同时,ADC值-温度曲线的线性区间和斜率各不相同,不同的ADC值-温度曲线在同一线性区间内的斜率不同,对于温度检测来说,当ADC值-温度曲线的横坐标为温度时,ADC值-温度曲线在某一线性区间内的斜率较大更佳,在ADC值-温度曲线的斜率较大时,当温度发生变化,ADC值相应的变化值更大,对温度的感应也更为灵敏,检测的精确度更高。
所述读取器703,用于读取所述NTC电阻的当前特性值,其中当前的可变电阻为第一电阻值,所述第一电阻值对应的温度特性函数为第一温度特性函数。
所述处理器704,包括:
设置单元7041,用于为多组NTC电阻的温度特性函数预先设置各自对应的温度区间。
设置单元7041完成所述预先设置后,将所述多组NTC电阻的温度特性函数各自对应的温度区间发送至存储器702进行存储。
温度获取单元7042,用于根据所述第一温度特性函数和所述NTC电阻的当前特性值,获取当前温度值,并确定所述当前温度值是否在所述第一温度特性函数所对应的第一温度区间内。
电阻获取单元7043,用于若所述当前温度值不在所述第一温度特性函数所对应的第一温度区间内,则获取所述当前温度值所属的第二温度区间所对应的第二电阻值信息。
调节检测单元7044,用于根据所述第二电阻值信息将所述可变电阻调节为第二电阻值,以根据所述第二电阻值对应的第二温度特性函数检测温度。
在另一实施方式中,若所述当前温度值在所述第一温度特性函数所对应的第一温度区间内,则不执行调节所述可变电阻的步骤,继续根据所述第一温度特性函数检测温度。
其中,每组所述温度特性函数的线性段在其对应的温度区间内的斜率大于或等于1。
在上述实施方式的基础上,所述读取器具体可以用于,读取NTC电阻的当前模数转换器ADC值或当前NTC电阻值;
所述温度特性函数,具体为ADC值-温度函数或NTC电阻值-温度函数。
其中,所述当前温度值所属的第二温度区间包括:
当所述当前温度值属于多个温度区间时,所述当前温度值所属的第二温度区间为所述多个温度区间中的任一个温度区间;
或者,
当所述当前温度值属于所述多个温度区间时,如果温度变化趋势为上升趋势,所述当前温度值所属的第二温度区间为所述多个温度区间中的温度最高的温度区间;如果温度变化趋势为下降趋势,所述当前温度值所属的第二温度区间为所述多个温度区间中的温度最低的温度区间。
本实施例中,通过读取所述NTC电阻的当前特性值,根据当前的可变电阻对应的第一ADC值-温度函数和所述NTC电阻的当前ADC值获取当前温度的粗略值,即当前温度值;若当前温度值不在所述第一ADC值-温度函数所对应的第一温度区间内,则获取所述当前温度值所属的第二温度区间所对应的第二电阻值信息;根据所述第二电阻值信息将所述可变电阻调节为第二电阻值,以根据所述第二电阻值对应的第二ADC值-温度函数检测当前精确的温度;本实施例在温度检测的过程中,根据当前温度的粗略值不断调整可变电阻,选择最佳的ADC值-温度函数来实现温度的精确检测,提高了温度检测的精度。
此外,本实施例在低温度区间和高温度区间内都对应有满足ADC分辨率的ADC值-温度函数,从而使得在低温和高温下也能通过ADC测出NTC电阻电压,进而实现了温度的精确检测,在提高检测精度的基础上也拓宽了温度的检测范围。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。