点击打开链接

1、概述

1.1、Thermal综述

笼统的讲,thermal是指移动终端电路板上的温度。Thermal的数值应当维持在合理的温度范围之内,过高的温度会影响用户的使用体验,更高的温度甚至会损坏设备。通过实际应用,发现了thermal一些潜在的问题,提高了thermal管理的必要性:

市场对功能丰富的设备的需求提高了对温度的敏感度;

丰富的多媒体功能,例如MiFi、多核GHz的处理器、图形处理器、高清视频等,增加了散热;

更小更薄的PCB设计,集中了功率密度;

小外形设备里面的功率放大器温度容易达到很高;

启用数据传输速率更高的UL,往往会造成较高的发射功率,导致更多的散热;

触摸设备的外壳温度可能会引起客户的关注;

芯片级的温度必须保持低于指定的限制;

印刷电路板上面的嵌入式设备暴露在较高的环境温度和受限制的冷却设施,形成了一个更严重的热环境。

热设计(thermal design)的目标是为了提高产品的可靠性。良好的硬件热设计和基于软件的thermal管理方案可以使手机温度保持在可被用户接受的水平。

1.2、Thermal设计的物理设计和布局

为了限制thermal对设备的不良影响,采用下面的物理设计和布局技术很有必要:

在产品设计和开发阶段进行热分析;

研究设备功率和热预算从而定位发热点;

在设备的机械结构中采用高效的thermal管理方法;

确保功率放大器放在热量容易消散的位置;

随着印刷电路板内的热路径广泛使用热通孔是必要的;

确保在确保在MSM/MDM附近以及电路板的对面没有其他大型电源散热组件。

强烈建议在工业设计中使用散热技术。

1.3、Thermal设计的目标

Thermal设计的目标是:

保护元件免于超过热设计极限,如果超出限制,设备性能将会降低,甚至会损坏器件;

确保体验者在使用或者携带时候触摸温度不会太高;

电源限制约束的风险降到最低;

管理并发操作时候的热风险;

允许有限的客户自定义温度阈值和降低功耗的方法。

1.4、Thermal设计的先决条件

为了妥善管理设备的thermal情景,必须从不同的热活性点测量温度。它是通过已经存在于该芯片组传感器和将热敏电阻放置在热活性点来实现。

首选的传感器位置如下所列。每个传感器可以被高通芯片内的ADC(HKADC)读取。

1、靠近功率放大器的热敏电阻器。功率放大器是导致设备温度上升的主要器件。

2、MSMs/MDMs中的热敏电阻或者内部传感器。较大处理器(AP 或者modem处理器)的使用趋向于增加此类组件产生的热量。

3、独立的第三方组件。如果使用外部的发热元件,比如使用第三方AP的设计,应该放置热敏电阻。

4、TCXO热敏电阻。在极端热环境下,TCXO往往最容易受到加热,这可能会导致丢失呼叫和较差的性能。感知这种情况,将有助于调用thermal算法。

5、其他位置,比如battery、PMIC等。

高通公司建议将热敏电阻放置在温度活跃器件附近。

2、Thermal管理算法

Thermal管理算法(Thermal Management Algorithm)提供一个安全策略,防止用户的移动设备损坏。要做到这一点,有必要降低功耗以使温度保持在可接受的水平。该算法仔细检测设备的关键温度并在modem和AP层设置合适的处理措施。

关键因素

热影响

描述

开发阶段

责任人

研发

QCT

机械散热设计

~70%

散热的机械设计是必需的。

概念/模拟阶段

Yes

No

增加散热材料

~20%

添加散热材料

模拟/验证阶段

Yes

No

软件管理

~10%

需要保持热限制

验证阶段

Yes

No

表格1 Thermal管理的关键因素

Thermal管理算法包括三种状态:

a) 正常状态:被动的温度监控;

b) 缓解状态:降低性能(应用处理器将运行在较低的时钟速率);

c) 应急状态:强制关闭手机,以防止损坏。

该算法根据设备的温度判断设备属于何种状态。Thermal管理算法的工作方式如下:

a) 如果测量温度<阈值温度,在正常状态下运行;

b) 如果测得的温度>阈值温度,进入缓解状态;

c) 如果温度恢复到滞后阈值(threshold-hysteresis)以下,恢复到正常状态;

d) 如果温度>紧急阈值,关闭设备。

设计thermal管理算法需要符合以下条件:

a) 采用温度传感器获取thermal温度数据;

b) 在thermald.conf文件中设置阈值值。

阈值数据应该由手机的温度曲线决定,不同的阈值,系统的动作如下:

正常

较高

严重

危急

CPU频率

整个频率范围

性能最高的频率除外

中高性能的频率除外

最高实用频率上限

显示强度

默认强度

上限为90%

上限为75%

上限为50%

电池充电

完整充电

涓流充电

不充电

不充电

表格 2系统的动作

3、电路设计

MSM8x25采用如图1所示硬件设计。MSM8x25添加了一个板上热敏电阻,通过ADC驱动从该热敏电阻读取电路板温度数据,然后传递给thermal算法(thermal algorithm)。

图表 1 MSM_THERM schematic

图表 2 I380W MSM_THERM schematic

4、Thermal软件设计

如图3所示,Thermal管理软件包括3个主要模块:thermal daemon、传感器输入(sensor inputs)以及thermal管理设备(thermal management devices)。此外,在boot和kernel初始化中采用算法管理thermal性能。

图表 3 LA thermal software architecture

Thermal daemon是一个运行在Linux Android用户层的超级用户程序,是thermal软件的控制核心。传感器输入(Sensor input)用来作为读取的温度,数据来自PMIC_THERM或者MSM_THERM,这些数据从DALRPC或者从ONCRPC接口读取,ONCRPC接口与ADC驱动通信。Thermal管理设备(thermal management devices)是监听thermal daemon的软件组件。当系统过热时,thermal daemon发送event到thermal管理设备以设置设备性能到一个预先设定的水平。

4.1 ThermalD

Thermal Daemon (ThermalD)主要用来完成两项功能:监测温度和管理控制设备。

该daemon监测thermal/temperature的传感器数据,并根据thermald.conf配置文件(默认是 /etc/thermald.conf)执行动作。在初始化阶段,ThermalD读取一个包含所有传感器和阈值数据的配置文件。如果超过温度阈值,ThermalD发送event到thermal管理设备。总体而言,设备管理接口划分为几个管理等级。典型地,将设备设置为4级,比如Level 0是正常操作;Level 1是管理的第一级。

(1)ThermalD生成

ThermalD 对应的可执行文件是thermald,由vendor/qcom/proprietary/thermal/下的代码编译生成,存放在设备路径system/bin/thermald。

(2)ThermalD执行过程

图表 4定义ThermalD service

图表 5启动ThermalD程序

图表 6 ThermalD处理流程

4.2 Thermal sensors

MSM8x25提供两种读取温度数据的方法供选择:HKADC从PMIC片上热敏电阻读取和通过ADC读取外部热敏电阻来检测MSM的运行温度。HKADC是PM8029芯片内部的一个硬件模块,提供读到的模拟数据。

软件设计上,MSM8x25相应有两个thermal缓解解决方案,这两种解决方案是互斥的:

a) PMIC热敏电阻:使用DALRPC。

b) MSM热敏电阻:外部热敏电阻,使用ONCRPC。

可以通过检查adc_null来查看ONCRPC是否可用,如果ONCRPC可用,则检查MSM热敏电阻是否工作,并最终从ONCRPC读取thermal温度;如果ONCRPC不可用,则从PMIC获取thermal温度数据。

4.2.1 HKADC

HKADC是PM8029芯片内部的一个硬件模块,用来读取PMIC模拟输入。如图所示,在MSM8x25参考设计中有一个片上PMIC热敏电阻。从该热敏电阻读取的数据通过HKADC驱动传递到thermal算法(thermal algorithm),HKADC驱动采用PMIC_THERM DALRPC。

图表 7 MSM8x25 PMIC_THERM schematic

4.2.2 MSM_THERM

如图所示的逻辑电路必须添加一个板上热敏电阻(on-board thermistor)来实现。从该热敏电阻读取的数据通过ADC驱动传递给thermal算法(thermal algorithm),ADC驱动采用PMIC_THERM ONCRPC。

图表 8 MSM_THERM schematic

4.3 TMD

Thermal管理设备(Thermal Management Devices,TMD)是软件实体,用来降低系统硬件模块的整体功耗,从而降低热负荷。

4.4 Thermal配置文件

Thermal配置文件配置了thermal管理软件的操作参数。每一部分作为一个thermal域定义(thermal zone definition),与一个温度传感器关联。在第一个thermal域定义的前面,thermal配置文件有一行默认采样率。该默认值用于为thermal域定义里面没有指定采样率的传感器配置采样率。此外,在默认采样率之前,如果插入单词debug将使能ThermalD的debug信息输出。

4.4.1 Thermal域定义

如表所示,一个thermal域的配置包括以下参数:

表格 3 Thermal域

Field name

Values

Units

Notes

temp sensor name

See Table 4

sampling

1000 to 65535

ms

sampling rate in ms

thresholds

-273 to 273

°C

Threshold to activate

thresholds_clr

-273 to 273

°C

Threshold to clear

actions

See Table 5

Action to act upon at thresholds; multiple entries allowed are separated by + with no spaces; this should be same for all threshold levels

action_info

See Table 6

Information used by action; multiple entries allowed are separated by + with no spaces

Sampling是ThermalD与配置阈值比对温度的速度。Thresholds、thresholds_clr、actions和actions_info构成阈值组合。在一个区可能有多个阈值组合。每个阈值组合分别定义thresholds、thresholds_clr、actions和actions_info。

表格 4 Sensor names

Name

Notes

pmic_therm

Remote HKADC driver using DALRPC

msm_therm

Remote ADC driver using remote ONCRPC

表格 5 Sensor actions and action information

Item

Action

Action Info

Notes

none

Do nothing

Set to 0; not used but needed for parser to work properly

Do nothing. This mitigation step is disabled. If a threshold is crossed, no action is taken.

report

Report threshold crossing to UI

Set to 0; not used but needed for parser to work properly

The threshold crossing information is sent across an abstract local socket THERMALD_UI in a new line-separated string format. Parameters are sent in the following order:

§ sensorname – Name of sensor reporting

§ temperature – Current temperature

§ current_threshold_level – Current threshold level triggered or cleared

§ is_trigger – TRUE on level trigger, FALSE on level clearing

cpu

CPU frequency scaling

Max CPU frequency in KHz

Sets the max allowable frequency for CPUs, 0 to 1200000 kHz

lcd

LCD brightness throttling

0-255 value for max LCD brightness

Sets the backlight intensity; will not adjust the max value over the currently configured brightness set by the user.

0 to 255

§ 0 – Backlight off

§ 255 – Maximum brightness

modem

Request throttling of modem functionality

0-3 throttling level for modem mitigation

MSM8x25不支持。

fusion

Request throttling of fusion modem functionality

0-3 throttling level for fusion modem mitigation

MSM8x25不支持。

battery

Battery charging current throttling

0-3 throttling level for battery charging current

MSM8x25不支持。仅MSM8960支持

gpu

GPU frequency scaling

Max GPU frequency in Hz

wlan

WLAN throttling

0-3 throttling level for WLAN mitigation

MSM8x25不支持。仅MSM8960支持

shutdown

Shutdown target

Shutdown delay in ms

Sends a shutdown request to the kernel with a delay to power down the phone

4.4.2 配置文件的要求

配置文件必须有一个pmic_therm或msm_therm thermal域定义以用作第一个入口。

注意,在thermald.conf文件的结尾应该有一个返回字符。

Actions参数标明了每个阈值对应的动作。在一个阈值组合里面的actions和actions_info必须用“+”隔开,并且不允许出现空格。

每个阈值必须对应一个明确的action。

每个action必须有一个对应的action_info。

4.4.3 配置文件举例

The example configuration file below turns on verbose debug output (line 1) and default polling rate to 5 sec (line 2).The thermal zone definition is named pmic_therm or msm_therm based on the hardware configuration. The thermal zone definition sets a sampling rate for this sensor at 1 sec, which overrides the default 5 sec rate. The first threshold group in the pmic_therm/msm_therm thermal zone definition configures an activation threshold at 65°C, an action for the CPU to mitigate to a maximum frequency of 756 MHz, a second action for the LCD to mitigate to brightness level 200 out of 255; the threshold will clear at 60°C. The second threshold group configures an activation threshold at 75°C, an action for the CPU to mitigate to a max frequency of 540 MHz, a second action for the LCD to mitigate to brightness level 100 out of 255; the threshold will clear at 70°C.  CPU and LCD management devices are reset to their default setting upon clearing the lowest threshold at 60ºC.

debug

sampling 5000

[pmic_therm]

sampling 1000

thresholds 65 75

thresholds_clr 60 70

actions cpu+lcd cpu+lcd

action_info 756000+200 540000+100

4.4.4 编辑配置文件

当通过USB将手机连接到电脑后,执行下面的命令可以编辑配置文件:

adb pull /etc/thermald.conf

adb remount

<edit>

adb push thermald.conf /etc/

4.4.5 编译配置文件

Thermal配置文件的存放路径是/system/etc/thermald.conf。在源代码中的存放路径是vendor/qcom/proprietary/thermal/,使用ls -l命令查看,显示信息如下:

可见,在源代码中是没有命名为/thermald.conf的文件的。

之所以能够在/system/etc/下看到thermald.conf,是因为在文件device/qcom/msm7627a/init.qcom.thermald_conf.sh中,做了链接:

所以,使用adb命令可以查询到如下信息:

4.4.6 ThermalD logging

在配置文件第一行加入“debug“可以使ThermalD工作在Debug mode,否则ThermalD的log会非常少。

adb shell stop thermald

adb shell

# thermald --debug &

下面的命令将会使ThermalD log信息显示在命令行窗口。

adb logcat -s ThermalDaemon

显示时间:

adb logcat -v time -s ThermalDaemon

4.5 Modem thermal mitigation

MSM8x25在modem没有热缓解(thermal mitigation)设计。

5、References

1、80-NA385-1_B_MSM8x25_Android_Pwr_Mgmt_Overview.pdf

2、80-N8633-5_A_MSM8x25_Thermal_Mgmt_Algorithm

文中图片、表格数据可联系本人索取。

MSM8225 thermal设计相关推荐

  1. 最小长度电路板排列问题_射频电路板设计,这篇文章五大总结不可忽视!

    射频电路板设计由于在理论上还有很多不确定性,因此常被形容为一种"黑色艺术",但这个观点只有部分正确,RF电路板设计也有许多可以遵循的准则和不应该被忽视的法则. 不过,在实际设计时, ...

  2. MSM8994 thermal管理

    点击打开链接 1.MSM8994 Power Thermal Management Overview文档摘要 本文档为80-NM328-12_A_MSM8994_LA_Power_Thermal_Mg ...

  3. 什么是硬件设计?——成功的硬件设计需要什么?

    硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的 芯片方案或者 ...

  4. mentor公司的PCB设计软件:PADs, Expedition,BoardStation

    mentor公司算是生产PCB设计软件在 种类上最多的一家公司了吧,而且名目多,叫法也很复杂.以前用过protel.cadence.pads,现在想研究一下其他的pcb设计的东东,发现 mentor产 ...

  5. 【转载】印制板设计的流程及注意事项

    等待摆渡人于2010-12-21 整理!希望能帮助大家 一.概 述 本文档的目的在于说明使用PADS的印制板设计软件PowerPCB进行印制板设计的流程和一些注意事项,为一个工作组的设计人员提供设计规 ...

  6. altium pcb 信号高亮_作为PCB工程师,你需要了解这几个设计指南

    在开始新设计时,因为将大部分时间都花在了电路设计和元件的选择上,在PCB布局布线阶段往往会因为经验不足,考虑不够周全. 如果没有为PCB布局布线阶段的设计提供充足的时间和精力,可能会导致设计从数字领域 ...

  7. 这是我见过最接地气的PCB设计指南了!

    大家好,我是张巧龙,我们开始新设计时,因为将大部分时间都花在了电路设计和元件的选择上,在 PCB 布局布线阶段往往会因为经验不足,考虑不够周全. 如果没有为 PCB 布局布线阶段的设计提供充足的时间和 ...

  8. xilinx platform cable usb驱动_小白入门多路高速(8 x 8bits x 100Msps)AD驱动设计专栏启动预告...

    如果部分图片消失,请移步小白仓库微信公众号查阅. 原文链接: 小白入门多路高速(8 x 8bits x 100Msps)AD驱动设计专栏启动预告​blog.csdn.net 小白随笔,大佬左上角走起, ...

  9. 射频电路板设计常见的问题分析和解决办法

    射频电路板设计由于在理论上还有很多不确定性,因此常被形容为一种"黑色艺术",但这个观点只有部分正确,RF电路板设计也有许多可以遵循的准则和不应该被忽视的法则.     不过,在实际 ...

最新文章

  1. mysql 导入8msql文件_MySQL导入大容量SQL文件数据问题
  2. Nandflash K9F1208U0B学习
  3. idea terminal中文乱码_Terminal优雅的办公带来超高的效率
  4. php破坏代码,php不破坏单词截取子字符串
  5. Android驱动开发第三章随想
  6. springboot拦截异常信息发送邮件提醒
  7. 随机显示个性签名代码
  8. 计算机应用基础word的课件,计算机应用基础之word2010课件
  9. 吃惊!难道Java也受美国出口管制?
  10. .Net -- EF Core详解
  11. DP(Nietzsche)的hu测 T1(状压dp)
  12. 邓俊辉 数据结构 图
  13. 百度网盘下载速度慢的解决方式
  14. PlatformIO使用Arduino[Ticker]库(ESP8266)
  15. 什么是lora无线通讯
  16. css之-单行文本溢出显示省略号,多行文本溢出显示省略号
  17. c语言的源程序的后缀名是,C语言源程序文件的后缀名是()。
  18. Charles联动Burp-新世界的大门
  19. Unity中用Shader实现镜子效果
  20. IIS 超简单部署免费https Let's Encrypt

热门文章

  1. synchronized锁升级
  2. 028_jQuery数据
  3. 010_html事件属性
  4. python百鸡百钱递归_百钱百鸡,一百块钱买一百只鸡的递归算法 javascript实现
  5. Google Guava官方教程(中文版)
  6. oracle 数据库日常巡检:数据库基本状况、oracle资源使用、数据备份结果、性能、cpu等、数据安全、归档日志、会话、SGA/PGA使用情况
  7. 第三章 PLSQL Developer 安装前oracleclient客户端的配置,在用plsql 连接oracle服务器
  8. 通过http协议访问FTP服务器的搭建,ftp+nginx 图片服务器搭建之后使用http访问进行配置文件的修改
  9. java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)
  10. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池