什么是手机CPU


什么是手机CPU

很多安卓开发的文章中都提到了AP、BP、CP概念,一直搞不太懂,直到网上搜到了一篇介绍的文章:
【什么是手机CPU】BP(BasebandProcesser),基带芯片,用来处理手机的射频功能(信号调制、编码、射频位移等),这些都是跟时间高度相关的,所以必须用一个专门的处理器来完成,并且是实时的操作系统 。同时,使用BP的好处是:无论操作系统和应用软件如何变化,都不会影响到基本的通信功能 。
只有BP的手机,我们称之为FeaturePhone 。
CP(CoProcesser),协处理芯片,一般用来增强手机的多媒体处理功能,BP+CP的手机,就是增强了多媒体处理能力的Featurephone 。
从上面的描述可以看出,featurephone就是不断完善应用的移动通信台
AP(ApplicationProcesser),应用处理器,操作系统,应用程序等都在AP上执行,跟我们的PC是一样的,如果我们的PC要上网,会连接一个modem,对于手机来讲,AP+BP就类似一个增加了modem上网功能的PC,这也就是smartphone,智能机 。
所以智能手机处理通信部分的硬件BP部分,我们又称之为modem 。
AP和BP部分的通信(Inter-processercommunication),称为IPC,IPC的实现方式可以是通过传递AT-Command,也可以是利用共享内存来实现数据交换,安卓系统是通过传递AT命令来实现,主要是通过RIL(RadioInterfaceLayer)来实现 。
下面说一下安卓操作系统在AP、BP这块的架构,先来看两个图:
上图是安卓系统的架构图,Application层是第三方的应用;ApplicationFrameWork层支撑应用程序的开发,重点理解HardwardAbstractionLayer,对于其作用有三点:
1.为各种硬件制定标准的驱动器接口;
2.由于Android的内核是开源的,服从GPL许可 。而有些硬件器件厂商不愿意开源他们的驱动器程序,有了HAL这个隔离带,就可以解决开源的内核与不开源的硬件驱动器之间的矛盾 。
3.Android对于硬件驱动器有一定要求 。
这三点说明涉及手机制造产业链上的三个参与者,
1.如果有标准的驱动器接口,最大的受益者是手机生产厂商 。只要硬件外设生产商按照标准接口提供相应的硬件驱动程序,手机生产商就可以自由选择各种配件,大大简化了手机的集成的难度和时间 。
2.不必开源的驱动器程序,受益者是硬件器件生产厂商,而且不给手机生产厂商制造困扰 。
3.比较难以理解的是Android对硬件驱动器会有哪些要求,Android为什么要提出这些要求 。为了理解这个问题,不妨分析一个实例,看看AndroidHAL是如何处理Telephony的 。
我们关心的HAL,在图中以Libraries(UserSpace)命名,TelephonyHAL的内部结构以绿色标注,包含两个构件,RadioDaemon和VendorRIL 。
1.RadioDaemon,它是由Android提供的,不随BP硬件的生产厂家和型号而改变 。在Android启动时,RadioDaemon就被激活,并一直处于运行状态,直到Android关闭 。
2.VendorRIL(RadioInterfaceLayer) 。VendorRIL由BP部分生产厂家提供,不同品牌的BP,以及不同型号的BP,绑定不同的VendorRIL 。VendorRIL的存在形式是一个函数库文件,文件命名必须服从约定的规范,libril-<companyname-<RILversion.so,方便RadioDaemon查找可用的VendorRIL 。
在实时运行时,应用软件调用TelephonyStack,而TelephonyStack指示RadioDaemon去发现当前可用的VendorRIL,并动态载入相应的.so函数库 。也就是说,让RadioDaemon去实现热拔插(Plug-and-Play)的功能 。VendorRIL函数库负责AP与BP之间的IPC 。至此,从应用软件,到TelephonyStack,到HAL中的RadioDaemon和VendorRIL,到BP部分的硬件和驱动器,全线贯通 。全线贯通后,应用软件就可以处理拨打电话,发送短信等等通信业务了 。
再附一张比较新的,比较全的示意图:
一个很靠谱的帖子共享:http://blog.csdn.net/yangwen123/article/details/8914291

    推荐阅读