手机的ap和modem是什么意思(手机术语APBP)
手机的ap和modem是什么意思(手机术语APBP)下面说一下安卓操作系统在AP、BP这块的架构,先来看两个图:AP和BP部分的通信(Inter-processer communication),称为IPC,IPC的实现方式可以是通过传递AT-Command,也可以是利用共享内存来实现数据交换,安卓系统是通过传递AT命令来实现,主要是通过RIL(Radio Interface Layer)来实现。从上面的描述可以看出,feature phone就是不断完善应用的 移动通信台AP(Application Processer),应用处理器,操作系统,应用程序等都在AP 上执行,跟我们的PC是一样的,如果我们的PC要上网,会连接一个 modem,对于手机来讲,AP BP就类似一个增加了modem上网功能的PC,这也就是 smart phone,智能机。所以智能手机处理通信部分的硬件BP部分,我们又称之为 modem。
很多安卓开发的文章中都提到了AP、BP、CP概念,一直搞不太懂,直到网上搜到了一篇介绍的文章:
BP(Baseband Processer),基带芯片,用来处理手机的射频功能(信号调制、编码、射频位移等),这些都是跟时间高度相关的,所以必须用一个专门的处理器来完成,并且是实时的操作系统。同时,使用BP的好处是:无论操作系统和应用软件如何变化,都不会影响到基本的通信功能。
只有BP的手机,我们称之为 feature phone。
CP(CoProcesser),协处理芯片,一般用来增强手机的多媒体处理功能,BP CP的手机,就是增强了多媒体处理能力的 Feature phone。
从上面的描述可以看出,feature phone就是不断完善应用的 移动通信台
AP(Application Processer),应用处理器,操作系统,应用程序等都在AP 上执行,跟我们的PC是一样的,如果我们的PC要上网,会连接一个 modem,对于手机来讲,AP BP就类似一个增加了modem上网功能的PC,这也就是 smart phone,智能机。
所以智能手机处理通信部分的硬件BP部分,我们又称之为 modem。
AP和BP部分的通信(Inter-processer communication),称为IPC,IPC的实现方式可以是通过传递AT-Command,也可以是利用共享内存来实现数据交换,安卓系统是通过传递AT命令来实现,主要是通过RIL(Radio Interface Layer)来实现。
下面说一下安卓操作系统在AP、BP这块的架构,先来看两个图:
上图是安卓系统的架构图,Application层是第三方的应用;Application FrameWork层支撑应用程序的开发,重点理解Hardward Abstraction Layer,对于其作用有三点:
1. 为各种硬件制定标准的驱动器接口;
2. 由于Android的内核是开源的,服从GPL许可。而有些硬件器件厂商不愿意开源他们的驱动器程序,有了HAL这个隔离带,就可以解决开源的内核与不开源的硬件驱动器之间的矛盾。
3. Android对于硬件驱动器有一定要求。
这三点说明涉及手机制造产业链上的三个参与者,
1. 如果有标准的驱动器接口,最大的受益者是手机生产厂商。只要硬件外设生产商按照标准接口提供相应的硬件驱动程序,手机生产商就可以自由选择各种配件,大大简化了手机的集成的难度和时间。
2. 不必开源的驱动器程序,受益者是硬件器件生产厂商,而且不给手机生产厂商制造困扰。
3. 比较难以理解的是Android对硬件驱动器会有哪些要求,Android为什么要提出这些要求。为了理解这个问题,不妨分析一个实例,看看Android HAL是如何处理Telephony的。
我们关心的HAL,在图中以Libraries(User Space)命名,Telephony HAL的内部结构以绿色标注,包含两个构件,Radio Daemon和Vendor RIL。
1. Radio Daemon,它是由Android提供的,不随BP硬件的生产厂家和型号而改变。在Android启动时,Radio Daemon就被激活,并一直处于运行状态,直到Android关闭。
2. Vendor RIL(Radio Interface Layer)。Vendor RIL由BP部分生产厂家提供,不同品牌的BP,以及不同型号的BP,绑定不同的Vendor RIL。Vendor RIL的存在形式是一个函数库文件,文件命名必须服从约定的规范,libril-<companyname>-<RIL version>.so,方便Radio Daemon查找可用的Vendor RIL。
在实时运行时,应用软件调用Telephony Stack,而Telephony Stack指示Radio Daemon去发现当前可用的Vendor RIL,并动态载入相应的.so函数库。也就是说,让Radio Daemon去实现热拔插(Plug-and-Play)的功能。Vendor RIL函数库负责AP与BP之间的IPC。至此,从应用软件,到Telephony Stack,到HAL中的Radio Daemon和Vendor RIL,到BP部分的硬件和驱动器,全线贯通。全线贯通后,应用软件就可以处理拨打电话,发送短信等等通信业务了。
总结一下,智能手机的BP部分提供基础的通话,数据通信,和SIM卡功能。而AP部分围绕这些基础功能,提供丰富的服务,例如通话记录,短信的编辑回复和转发等等。这些服务,囊括在Telephony Stack函数库中。
为了方便第三方软件的安装和运行,Android提供了Application Framework,它以Java Object的形式,封装了Telephony Stack函数库的功能,GUI功能,和其它外设硬件设备的功能。Application Framework不仅降低了第三方应用软件的开发难度,而且降低了第三方应用软件出错的可能性,另外还降低了万一第三方应用软件出错,所造成的对整个系统的破坏。
为了方便集成来源广泛的硬件设备,Android提供了Hardware Abstraction Layer。与文件系统中VFS与Storage Device的协作方式类似,一方面,HAL提炼出不同硬件厂商都必须提供的共同的功能,把它们囊括进通用的模块,例如Radio Daemon,通用的模块与硬件的品牌和型号无关。另一方面,HAL要求硬件厂商提供符合Android规范的IPC函数库,例如Vendor RIL,以便建立起通用的模块与不同品牌和型号的硬件设备之间的通讯渠道。
再附一张比较新的,比较全的示意图:
一个很靠谱的帖子共享:http://blog.csdn.net/yangwen123/article/details/8914291