温馨提示:这篇文章已超过474天没有更新,请注意相关的内容是否还可用!
摘要:针对Android设备的辐射值回退需求,在MTK(联发科)平台上实现Telephony功能的过程中,需要关注SAR(Specific Absorption Rate,比吸收率)值的管理与调整。这一需求的实现旨在降低设备辐射对用户的影响,确保设备符合相关辐射标准。通过优化Telephony功能中的SAR值管理策略,实现Android设备辐射值的回退,以保障用户健康并提升设备性能。
小孤蓝课堂开课啦,现在是实践时间!
今天是开发课!包含实践需求分析、开发过程!由于比较冷门,所以简介比较长。
SAR简介
SAR,即Specific Absorption Rate,简称SAR,是指生物体或物质每单位质量、单位时间内所吸收的电磁能量,其单位通常为W/kg或mW/g,在电子产品领域,如手机和无线网络设备在工作时会产生电磁辐射,SAR值用来评估这些设备对人体健康的影响,数值越大,表示对人体的影响越大;反之则影响较小,SAR的意义在于衡量单位质量的人体组织所吸收或消耗的电磁功率,从而评估电磁辐射可能给身体带来的潜在危害。
简单地说,就是设备电磁辐射的评估,在国际市场上,部分国家对辐射强度都有严格的标准,项目想要出货必须完成认证,常见的标准是FCC(美国联邦通信委员会)和CE(欧洲共同体),不同国家和地区可能还有自己的SAR标准或规定,印度要求能用拨号暗码(*#07#)把当前设备的SAR认证值弹出,这些标准可能因地区、文化背景、技术水平等因素而有所不同,需要注意的是,SAR标准的具体内容和限值可能会随着技术的发展和研究的深入而有所调整。
在软件实现上,SAR涉及到Cellular SAR、WiFi SAR等区分,因为涉及到的电子器件不同,所以软件需要监听的事件也不同,我们Telephony一般负责Cellular SAR、Sensor SAR等,和Wifi RD配合完成,要想实现设备降Sar需要从硬件到软件实现一整套完整流程,本文关注AP侧(Telephony)的相关实现。
降Sar职能划分
在大规模的企业中,SAR认证需求一般是多个职能部门联合完成的,这个需求涉及到硬件、软件、认证职能部门,在需求基本实现后,会在自研实验室验证通过后再送检。
硬件射频、天线
软件Telephony、WIFI、BSP、Modem
以下是各部分的职能:
Telephony根据场景流程图、功率表在framework实现场景事件监听和发送指令给底层执行Cellular SAR回退。
WIFI根据场景流程图、功率表在framework实现场景事件监听和发送指令给底层执行WIFI SAR回退。
BSP确认SWTP/SAR GPIO口,同步配置软件接口。
Modem修改SWTP AP侧参数,合入SWTP和SAR的patch。
射频确认SWTP/SAR GPIO口,同步配置软件接口;确认SWTP/SAR对应的GPIO口给到BSP;根据天线需求配置modem主频回退NV。
天线提供SAR场景流程图、功率Table表给到软件;提供SAR功能实现方案以及硬件版本汇总。
Telephony实现降Sar
Telephony通过监听不同的场景,触发不同的table表,通过AT命令与modem交互,最终完成射频天线的降Sar功能,这里重点实现两个功能:
1、根据天线团队提供的场景流程图,Telephony进行服务监听,触发不同table表。
2、通过table表,下发AT命令操纵降Sar。
整个SAR的核心类是SarControl.java,包含1个Handler发送AT命令、1个BroadcastReceiver监听状态,这个类负责场景触发table及AT下发,我们只需要将他放在framework层,根据不同需求,可以在AudioService或PhoneWindowManager或TeleCom将他初始化,接下来以一个实际的项目需求来讲解SarControl.java的具体应用。
需求:根据连接状态、空口检测、听筒、热点等简单场景的SAR值回退,项目不带sensor。
主要流程如下:
1、根据天线提供的场景流程图,Telephony进行服务监听,触发不同table表,我们分析流程图,需要在AudioService启动SarControl.java监听手机状态变化,然后开始执行SAR判定,这里的手机状态包含: 意图包含手机的各种状态变化,如开机、关机、通话状态变化等。
2、SarControl.java创建一个广播,在广播过滤器中加上这些事件,当发生这些事件时,就需要进行SAR回退判定,至于判定逻辑比较简单,主要是根据是否建立连接(包括电话连接和数据连接)、是否空口检测以及听筒和热点是否打开来进行判断,每个条件的判定都有相应的代码实现和逻辑处理。
3、通过table表下发AT命令操纵降Sar,发送AT命令需要用Handler发送因为广播数量不好把控需要创建消息队列来发送否则有概率会阻塞Main线程这在安卓是不允许的,目前有两种方式来发送AT命令:
(1)使用AT+ERFTX命令这种方式只需要配置一个供AP调用的ATCMD文件即可所有场景的定义及降幅均在此文件中配置简单易配置不需要在射频modem中配置sar相关NV不需开path和宏但只支持两天线且MTK回复后续不会再维护此方法因此只适合TAS1.0
(2)使用AT+ERFIDX
还没有评论,来说两句吧...