论山寨手机与 Android【7】MTK 手机软件系统

公司

2010-02-19 14:54

MTK feature phone 的基本功能是通话和短信,要了解 MTK 手机软件系统,首先需要简要回顾几个移动网络通讯的基本概念。

Figure 38. GSM-GPRS Architecture
Courtesy http://farm3.static.flickr.com/2694/4239683146_55f0dd7e11_o.png

以 GSM 系统为例,手机以无线方式建立起与基站(BTS)的联系,两者之间通讯接口是 Um。基站与基站控制器(BSC)之间的通讯接口是 Abis,基站控制器与移动交换中心(MSC)之间的通讯接口是 A,参见 Figure 38。

Figure 39. GSM Protocol Layer [1]
Courtesy http://farm3.static.flickr.com/2743/4284005175_06873d175f_o.gif

所谓接口(Interface),是一组协议的代名词,而这些协议可以分成若干层,层层叠叠,所以接口又被称为协议栈(Protocol Stack)。Figure 39 中最左边一列,显示的是手机需要处理的协议栈。从第二列到第四列,分别显示的是基站(BTS),基站控制器(BSC),和移动交换中心(MSC)分别 需要处理的协议栈。相邻两列之间的虚线表示通讯接口,接口两侧的协议栈对称,以保证通讯中传递的信息能够被对方识别。

MTK 手机软件系统,需要处理的是最左边的协议栈 [2]。

1.  该协议栈的底层是物理层(Physical Layer),负责无线射频(GSM RF)和信道管理(Channel Access Method),用来传输原始的比特数据流,例如 GSM 系统中的 TDMA。

2.  第二层是数据链路层(Data Link Layer),LAPDm 是该层使用的协议,负责把数据流分成若干帧,并处理流控制。

3.  第三层是网络层(Network Layer),负责建立手机通讯发起方与接收方之间的连接。手机的连接离不开基站,基站控制器以及移动交换中心。而且当手机的位置不固定时,譬如在运动中 的汽车上打电话,经过的基站,甚至基站控制器都不固定。所以,网络层又细分为三个子层,分别是 RR 层,MM 层,以及 CM 层。

3.1. RR 层负责无线资源管理(Radio Resource Management),负责建立手机与基站之间的联系,尤其是当多个手机同时与同一个基站联系时,如何避免多个信道之间的相互干扰。

3.2. MM 层负责移动的管理(Mobile Management)。运动中的手机由一个基站切换到另一个基站,甚至由一个基站控制中心切换到另一个基站控制中心,切换过程中如何保持通话的连续性,诸如此类的工作由 MM 层负责。

3.3. CM 层,又被称为 CC 层,负责连接和呼叫的管理(Connection Management, or Call Control)。在手机通话发起方拨号是,CM 层负责查询接收方当前所在位置,以及是否在通话中,是否需要转入语音留言箱等等。

简要回顾一下 GSM 的协议栈,有助于理解 MTK 的软件系统。GSM 协议层只规定了 L1 到 L3 三层协议,即物理层,数据链路层和网络层,并没有规定 L4 以上的协议内容。MTK 把 L4 视作应用层,L4 的协议用来让应用程序调用网络层 L3 中的 CM/CC 子层功能模块。

Figure 40. MTK software function modules [3].
Courtesy http://farm5.static.flickr.com/4062/4294578472_bfcf09c6f5_o.png

Figure 40 显示了 MTK 软件平台中包含的基本模块,来自 MTK 工程师的演讲稿 [3]。其中各个模块的名称缩写的含义,可参阅附录(Appendix)。虽然该资料来源可靠,但是 Figure 40 图中存在一些令人疑惑的细节,

1.  物理层(L1),负责无线射频和信道管理。Figure 40 中 L1 模块,如粗边框图所示。它的左边是驱动器(Drivers)模块,右边是 UART 串口。这种绘制方式不太准确,其实 L1 和 UART 都可以看成是硬件加驱动器的一种。

MCU(微处理单元)支持多种外设,例如扬声器/USB/远红外串口等等,参阅前文 Figure 35。每一个外设,不仅需要硬件,也需要驱动软件。MTK 软件平台中包含的驱动软件非常丰富,足以支持所有 MCU 外设。

2.  数据链路层(L2)的模块,包含在 Data 部分,例如 L2R。

按照图中所示,应用层(L4)可以通过 CSM 模块,直接调用 L2 模块。这与先前介绍的 GSM 协议栈是冲突的,按照协议栈的规定,L4 只能与 L3 中 CM/CC 子层联系。但是 MTK 的做法,允许 L4 越级与 L2 直接联系。也就是说,[3] 隐含的意思是,GSM 协议栈只是一个建议,在具体实现中不需要严格 遵守。

3.  网络层 L3 包含的功能模块很多,可以归纳为 RR, MM/GMM,以及 CC 三个部分,如图中粗边的框图所示。

按照前文所述,GSM 协议栈建议,L3 层中 RR 子层应该只与 L2 模块联系,而不应该直接调用 L1 模块。按图中所示,MTK 没有严格遵守这个规定。更有意思的是,图中把 L2 与 L3 描绘成并列的关系,而且它们之间没有直接联系,这一点也比较费解。

4.  应用层 L4 中的 CSM 模块,既负责与 L3 层的 CM/CC 模块联系,也负责与 L2 层的 L2R 模块联系,这一点似乎不合常规。

L4 是连接应用程序与 GSM 协议栈模块的接口。在 feature phone 的语汇中,应用程序常常被当成是 MMI(Man-Machine-Interface)的同义词,其实细究一下,更准确的说法是,应用程序是 MMI 的一部分 [4]。根据 [3] 的文字叙述,尤其是 pp19 关于 L4A 和 L4C 的介绍,以及 pp38 关于 Keypad 事件触发机制的介绍,似乎 MTK 的 应用程序,对于其它功能模块的调用,有四种机制,如 Figure 41 所示。

Figure 41. MMI Architecture
Courtesy http://farm5.static.flickr.com/4049/4293838733_7f23594f7d_o.png

4.1. 通过 GUI 模块控制 LCD 显示屏。

4.2. 通过 L4 模块,以任务的方式,实现通信及其它附加功能,例如 SIM 卡控制,语音通信,数据通讯,通话历史记录,电话本,照相机等等功能。

4.3. 通过 Framework 中的 API,直接对文件系统进行操作,而无需通过 OS。

4.4. OS 的功能限于多任务的调度,以及内存的管理。

这四种调用机制中,尤其是第三和第四这两种,与 PC 以及 smartphone 的差别非常大。这阻碍了 MTK 软件平台未来顺畅地发展,这个问题留给后续文章,做进一步讨论。

Figure 40 中没有详述 MTK 应用模块调用底层模块的四种机制,而只是简练笼统地描述成 FMI(Feature Rich MMI)。不妨把 Figure 41,视为 Figure 40 中,FMI 模块的局部放大。

虽然 Figure 40 存在一些令人疑惑的细节,但是基于它对于 MTK 各个功能模块的描述,同时参考同一份资料的另一张图 [3],我们不难勾勒出 MTK 软件系统的结构,参见 Figure 42。这张图略去了 Figure 40 中一些细节,例如 RMI(Remote MMI)。RMI 不仅可以支持 PC 操控手机,而且也为 SmartPhone 中,AP(Application Processor)与 BP(Baseband Processor)的分离打下了基础。这些内容留给后续章节。

Figure 42. MTK Software Platform Overview [3].
Courtesy http://farm3.static.flickr.com/2743/4283671101_5a60957fb5_o.png

比较 Figure 40 与 Figure 42,Figure 40 中 OS 的位置,应该理解成原理介绍大于实际结构。而 Figure 42 中描绘的,是系统架构,更符合实际情况。即,OS 负责为整个系统,包括各个协议栈模块,以及应用程序,提供多任务的调度,以及内存的管理。

MTK 使用的 OS 是 Nucleus。Nucleus 原为 Accelerated Technology 公司的产品,开发于 1990 年代。2002 年,被 Mentor Graphics 公司收购。目前 Nucleus 源代码完全开放,无产品版税(Royalty Free),开发和调试工具齐全。Nucleus 系统是模块化结构,可以随意裁剪,支持几乎所有嵌入式微处理器(MCU),可移植性强,无需 BSP(Board Support Package,版级支持包)开发 [5]。

Nucleus 除操作系统内核(Kernel)外,还提供 TCP/IP 协议包(Nucleus Net),图形软件包(Nucleus Grafix)等等辅助工具,被广泛应用与各式嵌入式系统中,包括手机,网络设备,车载电子设备,通讯设备,医疗仪器等等。

MTK 选用 Nucleus 的原因,估计有三条,1. Nucleus 质量可靠,2. 开发容易,3. 成本低。而且 MTK 只用了 Nucleus 的内核部分,这样的做法降低了 MTK 软件系统对于 Nucleus 的依赖性。所谓 Nucleus 内核,主要是多任务 并发的处理机制,以及内存的管理,包括以下几个部分。

1.  任务的调度,包括优先级(Priority),时间片(Time Slice),和抢占性(Preemptive)控制机制。

2.  任务间的通信,包括信箱(Mailbox),队列(Queue),和管道(Pipe)通讯机制。

3.  任务间的同步,包括旗语(Semaphore),事件(Event),和信号(Signal)同步机制。

4.  内存的管理,包括分区与动态两种方式,即定长的与不定长的内存分配与释放。

Nucleus 内核,与 Linux 等等其它内核并无重大区别。MTK 在 Nucleus 与其它系统模块之间,设置了一个适配层(KAL OS Adaptation)。这个适配层的意义,在于把 OS 内核的具体实现封装起来,方便系统调用(System Call)。另外,MTK 并没有用到 Nucleus 对外设管理的支持,以及 Nucleus 应用程序图形界面库等等。

关于 MTK 系统的硬件与软件,就介绍到这里。理解了 MTK 的系统,或者更确切地说,针对 FeaturePhone 的软硬件系统,我们就不难理解 SmartPhone 的出现,是 FeaturePhone 的进化产物。而 Figure 40 中提到的 RMI(Remote MMI),可以视为进入 SmartPhone 新世界的入口,且听下回分解。

Appendix,

MTK 软件系统中,各个功能模块名称缩写的全称和简介,参阅 Figure 40。

1.  RMI: Remote MMI,例如 PC 可以通过 UART 口与协议栈进行通讯。
2.  FMI: Feature rich MMI
3.  L4: MMI 通过 L4 与 gsm/gprs 协议栈进行通讯,包括以下子模块,
3.1.  ATCI: AT Command Interpreter, 解释来自 PC 端的命令并命令 L4 做相应的动作
3.2. L4A: L4 adaptation Layer, MMI 与 L4A 通过消息通信
3.3. L4C: L4 Control entity, 处理所有的应用程序请求和响应
3.4. UEM: User equipments adaptation, 驱动相关的适配层
3.5. PHB: Phone book management, 电话簿相关的处理,如分类等
3.6. SMU: SIM management Unit, 安全性管理以及 STK
3.7. CSM: Circuit switching protocol stack management 电路交换协议栈管理
3.8. RAC: Registration access control
3.9. SMSAL: Short message service application layer
3.10. TCM: Terminal context management
4.  NVRAM: Nor-volatile RAM, 是 MMI 到 Flash 的一个适配层, 保存一些默认设置
5.  SIM: Subscriber identity module. Handle SIM behavior as ETSI 11.11 description
6.  DATA: 电路交换数据服务,包括以下子模块
6.1. FAX: Group 3 Facsimile
6.2. TDT: Transparent circuit switching data
6.3. L2R: Layer 2 relay protocol for non-transparent circuit switching data
6.4. RLP: Radio link protocol for non-transparent circuit switching data
7.  CC: Circuit-switched call control 电路交换呼叫控制
8.  SS: Supplementary service 附加服务
9.  SMS: Short message service 短消息服务
10.  SM:  Session management 会话管理
11.  MM/GMM: Mobility management 移动性能管理
12.  SNDCP: Sub-network  dependent convergence protocol
13.  LLC: Logical link control 逻辑连接控制
14.  RR: Radio resource management, 包括以下子模块
14.1. RRM: Handles cell selection and PLMN selection
14.2. RMPC: Handles the procedures in Idle/Dedicated state including the surrounding cell scheme and measurement reporting
14.3. LAPDM: Handles the procedure defined in GSM layer 2
14.4. RLC: Radio link control protocol
14.5. MAC: Medium access control protocol
14.6. MPAL: Adaptation layer for RR and L1A
15.  PPP  Point to Point protocol layer, 客户端点对点协议

Reference,

[1] GSM Protocol Stack. (http://www.tutorialspoint.com/gsm/gsm_protocol_stack.htm)
[2] GSM Um Interface. (http://en.wikipedia.org/wiki/Um_Interface)
[3] MTK Software Platform. (http://www.docin.com/p-6004509.html)
[4] 浅谈 GSM 手机的 MMI 软件开发. (http://www.ergocn.com/wenzhai35.htm)
[5] Introduction to Nucleus OS. (http://www.docin.com/p-7535534.html)

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

移动互联网的围观者、起哄者、以及肇事者。

本篇来自栏目

解锁订阅模式,获得更多专属优质内容