引 言
随着移动通信技术的飞速发展,手机已经从单一的电话通信设备转变为信息网络终端,因此,近年来手机编程已经成为一项重要的技术。手机是一个高新技术的集合体,包含了移动终端、嵌入式系统、数字信号处理以及通信协议设置等多项技术。手机编程开发平台是集合了通信技术、嵌入式技术、电子技术、软件工程、操作系统等理论的软硬件的教学与研究开发平台。在这个开发平台上开发相应的程序,可以掌握嵌入式系统设计的流程与方法;可以根据使用者的需求,设计并实现手机的基本功能和扩展功能。
1 手机编程开发平台总体结构
作为专业技术课程,手机编程技术的教学内容包括系统设置、操作系统使用以及应用软件开发,因此,手机编程平台必须支持各项教学内容。另外,作为教学仪器,不仅需要满足全部工程编程测试等技术环节的学习要求,同时,还必须具有系统灵活、调试方便等特点。因此,手机编程开发平台硬件的设计应满足以下要求:支持移动公网通信功能,支持嵌入式设计基本功能,支持扩展操作功能,支持结构调整,支持数字测试。
根据上述要求,把手机编程系统设计划分为硬件平台和软件平台:硬件平台采用了功能模块化设计思想,有利于系统硬件的扩充与更改。基于模块化的设计中,把手机的硬件部分划分为通信单元模块、嵌入式系统模块、音频输入/输出模块和电源模块。各模块在结构与功能上完全独立,且采用统一的接口规范,使各模块能简单方便地连接到一起,构成完整的手机编程硬件平台。
考虑到降低开发成本以及移植与编程难度等因素,软件开发平台用嵌入式Linux操作系统作为开发平台,包括Bootloader的设计、Linux操作系统移植、相关的驱动程序编写、GUI移植等。
软件和硬件平台相结合,形成了硬件开放、源码公开、满足手机编程开发需要的系统。这个系统是嵌入式系统、GSM/CDMA、操作系统、GUI等技术的综合技术体,构建了一个完整的、开放的手机编程平台。
2 手机编程开发平台硬件结构
手机编程平台系统中,需要处理的数据有两大类:通信数据以及应用程序的数据。这里采用了双处理器的解决方案,如图1所示。
①公网通信模块。利用一个微处理器(专用单片机)系统构成通信电路模块,专门处理与GSM/CDMA通信相关的任务。
②应用程序处理模块。利用嵌入式系统构成本地任务处理模块,用来运行操作系统及其他应用程序。
2.1 公网通信模块
公网通信模块如图2所示,采用市场上可购买到的手机模块实现。以GSM公网通信模块为例,手机模块中包括天线、内部Flash、SDRAM、GSM基带处理器、电源等。GSM基带处理器是手机模块的核心部件,其作用相当于一个协议处理器,用来处理外部系统通过串口发送过来的AT指令。天线部分用来实现射频信号发射一接收、调制一解调,以及射频信号与基带处理器之间的信号转换。匹配电源为处理器及射频部分提供所需的电源。
2.2 应用程序处理模块
应用程序处理模块用来实现手机控制和操作的全部功能。本应用处理器模块以S3C2410构成的ARM9嵌入式微处理器系统为核心。应用程序处理模块包括嵌入式微处理器单元、音频输入输出电路单元和电源单元,如图3所示。
图3中,嵌入式微处理器系统模块具有如下技术特点:CPU为Samsung S3C2410X,200 MHz主频;2 MBNOR Flash,64 MB NAND Flash;64 MB SDRAM,由2片K4S561632组成,工作在32位模式下;3.5 in的TFT显示屏,320×240像素;USB1.1标准Client接口,10M以太网网络接口,20针JTAG调试接口。
2.3 手机开发硬件系统
在手机编程开发系统中,硬件系统平台与PC机相连接,把PC机作为程序开发平台,手机硬件系统平台作为嵌入式目标系统。作为开发系统,手机开发硬件平台的安装比较简单,如图4所示。将JTAG电缆插入嵌入式系统单元的JTAG接口,另一端连接PC机并口,就完成了手机编程系统的硬件平台连接。根据开发的需要,可用串口线连接PC机串口与手机编程系统的硬件平台串口。所开发的手机应用程序可以在手机硬件平台系统的嵌入式系统上独立运行,同时程序处理模块还可以通过网络接口直接用于网络通信。
3 手机编程实验台软件平台的构建
手机编程实验台软件平台包括Bootloader、嵌入式 Linuxkernel、GUI QT和用户驱动程序4个部分,Bootloader如图5所示。代码(即启动代码)是处理器复位后进入操作系统之前执行的一段代码,主要是为运行操作系统提供基本的运行环境,如初始化CPU和堆栈、初始化存储器系统等。
软件平台的逻辑操作如图6所示。
4 手机编程开发平台应用程序设计
作为基本技术学习的内容,该基本的手机编程应用程序主要是基于ARM的应用处理模块与GSM模块,来实现相互通信的无线数据传输,包括应用AT指令集的 GSM模块数据读写子程序、键盘控制处理子程序、LCD显示子程序等。此外,还提供了一个手机拨号及收发短信的程序。
(1)主程序流程主程序的流程如图7所示。首先对输入参数进行检查,完成对手机通信模块的串口波特率的设置,同时对串口通信其他的一些属性进行设置,从而保证手机通信模块与GSM模块的正确通信。初始化结束后,就可以建立键盘控制与读GSM模块子函数,此过程需要嵌入式Linux操作系统库函数的支持。最后,主函数处于等待外部中断请求的状态中。外部中断请求分别来自键盘输入和外部呼叫。
(2)键盘控制流程
键盘控制流程如图8所示。键盘操作是用户与无线通信系统的交互接口,用户首先对系统所提供的各种服务菜单进行选择,然后系统根据用户的选择对GSM模块进行设置。之后进行键盘的初始化,显示系统向用户提供的各种服务菜单,并等待用户选择。最后对用户的选择进行判断,并跳入相应的服务程序中。
结 语
手机编程技术是通信工程专业应当学习的一项重要工程技术。本手机编程实验平台就是为了满足手机编程技术的学习而设计的。构建了基于嵌入式系统的手机编程硬件平台和软件平台,不仅可以提供完整的编程系统,还提供了重要的手机程序验证系统,对手机编程的教学和手机功能应用的扩展开发具有很高的实用价值。