资源描述
智能手机通信模块设计与实现
参考网址: :
伴随嵌入式技术和通信技术发展, 在手机领域, 智能手机已成为手机发展主流趋势。现在在智能手机领域, 从处理器选型、 操作系统选择以及应用程序开发都是研究热点。在高校计算机相关专业课程中也越来越多地包含到智能手机相关内容, 越来越多学生也都投入到智能手机学习和开发阵营中来。所以, 为这些学生提供相关试验设备显得很必需。本文提出基于三星S3C2410芯片为关键构建智能手机硬件试验平台, 并结合无线通信模块实现智能手机电话短消息功效。为学生进行智能手机相关试验提供了平台, 经过本平台, 学生能够自己动手完成智能手机设计时多种软件开发, 改变了传统验证式试验平台模式, 有利于学生创新能力培养。
1 智能手机软硬件试验平台设计
手机硬件实现方法关键有3种:
(1)只用基带芯片, 通常称作功效手机;
(2)基带芯片加协处理器, 这类产品是在功效手机基础上增强了多媒体处理功效;
(3)基带处理器加应用处理器。这是智能手机所采取设计, 基带处理器用于通信, 应用处理器用于多媒体和其她应用。
在设计智能手机硬件平台时, 需要注意以下多个方面:
(1)应用处理器应含有足够高主频用以确保系统运行速度, 使多种应用能够运行通畅;
(2)系统应有足够内存空间用以保留应用程序和用户数据;
(3)含有良好人机交互界面, 用户能够方便地进行操作。基带处理器性能稳定, 确保用户实时通信。
1.1 硬件平台设计
硬件关键包含调试接口、 存放系统、 GSM/GPRS通信模块、 人机交互模块。关键控制器芯片采取三星企业S3C2410处理器, 频率稳定运行在203 MHz。作为试验平台, 完成智能手机基础功效, 不要求大量数据处理, 所以203 MHz主频能够确保系统运行速度。系统采取64 MB SDRAM和64 MB NANDFLASH作为存放系统, 从而确保系统和用户存放空间。通信上, 应用处理器经过UART2连接基带处理器即GSM/GPRS通信模块, GSM/GPRS模块采取SIMCOM企业SIM300模块, 该模块含有完善GSM/GPRS三频/四频处理方案, 支持GSM通话及短消息收发和 GPRS数据传输, 能够方便地经过AT命令进行控制。系统经过LCD显示图形操作界面, 采取触摸屏替换传统键盘操作, 界面更友好, 操作更方便。同时提供扩展接口用于学生扩展智能手机其她功效, 如利用以太网接口实现网页浏览等。整个系统硬件框图如图1所表示。
1.2 系统软件平台设计
系统软件平台功效是为应用程序开发提供平台。系统软件以嵌入式Linux操作系统和嵌入式GUI Qtopia为基础来设计, 整个软件平台架构如图2所表示。
1.2.1 Bootloader
Bootloader是系统上电后运行第一段代码, 关键工作是完成硬件初始化和为加载操作系统准备好条件。它实现是依靠于硬件, 不一样体系结构开发板Bootloader改变很大。为了愈加好地支持目标板硬件设备, 该系统选择在ADS1.2集成开发环境下开发自己Bootloa-der。 Bootloader实现过程关键分为以下2个阶段:
(1)关键进行与CPU内核以及存放设备亲密相关初始化处理工作, 这部分代码通常见ARM汇编指令编写, 包含在start.S文件中。通常包含部分步骤:
①硬件初始化工作。包含关闭看门狗; 屏蔽全部中止; 设置处理器时钟和工作频率; 初始化外部寄存器; 初始化堆栈指针。
②为阶段(2)准备RAM空间, 并把阶段(2)代码拷贝倒RAM, 跳转倒阶段(2)入口点。
(2)完成通常开启步骤以及提供目标板设备驱动支持, 这部分会被拷贝倒RAM中实施, 这段代码通常由C语言来实现, 含有较强可读性和移植性。
通常包含一下步骤:
①经过set_gpios()函数完成通用I/0设置;
②经过mere_map_init(), mmu_init()函数完成内存映射和内存管理单元初始化;
③初始化MTD设备, 使用mtd_dev_init()函数;
④拷贝NAND FLASH中Kernel映像文件和根文件系统映像到RAM空间中;
⑤跳转到内核第一条指令处。
至此, Bootloader任务结束, 接下来任务由操作系统完成。
1.2.2 操作系统剪裁、 移植
操作系统负责对整个外围设备进行管理和对各个软件任务进行调度。这对于智能手机而言是非常关键。操作系统采取开源、 无偿Linux, 基于嵌入式Linux 2.6版本进行移植, 关键移植过程包含建立开发环境、 下载内核源码、 修改配置文件、 配置内核、 编译内核、 编译模块多个步骤, 因为移植过程大致相同, 这里只做简单介绍:
(1)宿主机上交叉编译工具采取arm-linux-gcc-3.4.1 ;
(2)修改commom-smdk.c文件, 为NANDFLASH设置分区;
(3)修改配置文件fs/Kconfig, 使内核支持开启时挂载devfs;
(4)配置内核;
(5)编译内核与模块, 用Busy-box工具制作yaffs文件系统。
1.2.3 嵌入武GUI Qtopia移植
嵌入式GUI用于开发短信、 电话应用程序图形界面, 本文采取Trolltech企业Qtopia作为图形界面库, 采取版本是Qtopia-core-opensou rce-src-4.4.3。移植关键工作有:
(1)修改qmouselinuxtp_qws.h文件, 使Qtopia支持触摸屏;
(2)配置、 编译、 安装;
(3)拷贝相关库文件到开发板, 并设置环境变量。
2 应用程序设计
电话和短信应用程序是智能手机最基础也是最关键应用。电话短信应用程序设计关键工作包含: 电话短信应用程序步骤设计、 通信模块和应用处理器串口通信以及电话和短消息应用程序界面开发。
2.1 电话/短信应用程序步骤
应用程序采取定时器函数来控制整个程序步骤。定时器每200 ms触发1次。
新电话、 新短信检测步骤如图3所表示, 应用程序初始化需要对GSM/GPRS通信模块与应用处理器之间接口进行初始化, 另外还要定义1个200 ms触发定时器。系统初始化完成以后, 定时器触发开始读串口数据进行判定。当串口无数据时, 等候下一次定时器出发; 当串口有数据时, 将串口数据进行判定; 当数据中有新短信提醒符时, 根据PDU短信解码格式对该短信进行解码, 并调用UI界面提醒用户新短信抵达, 问询用户是否阅读; 当数据中有新电话提醒符时, 调用UI界面, 问询用户是否接听。
当需要发送短信或拨号时, 应用程序步骤如图4所表示。当用户调用发信界面编辑好短信, 并输入完收信方, 点击发送钮时, 应用程序首先判定短信中心号码和接收信息号码是否正确, 若不正确, 提醒用户错误; 若号码和号码格式均正确, 便对要发送短信内容根据进行PDU短信格式进行编码, 并向串口写AT命令方便将该短信发送出去。拨号和挂断电话步骤很简单, 只需要向串口写入ATD+所拨号码以及ATH就可, 当拨号错误时, 提醒用户拨号错误。
2.2 通信模块串口通信实现
串口是连接智能手机应用处理器和GSM/GPRS通信模块接口, 串口通信步骤是打开串口、 串口初始化设置、 读/写串口、 关闭串口, 如图5所表示。
在应用程序初始化时初始化时需要对串口进行初始化, 对串口初始化关键是设置串口部分参数, 包含以下多个部分: 保留以前串口设置、 建立新配置、 设置波特率、 设置数据位、 设置奇偶位、 激活目前配置、 处理要写入引用对象、 设置最少字符和等候时间、 设置停止位。只有串口初始化完成以后, 应用程序才能对串口进行对应操作。
2.3 用程序用户界面设计
用户界面是人机交互接口。本文采取Linux下常见界面设计工具Qt来设计应用程序所需多种UI界面。
当点击界面上按钮如拨号、 发送时, 利用其信号和槽机制, 将其和底层对应函数如拨号函数、 发信函数相关联就能够实现拨号和发送信息功效。用户就能够利用该界面进行拨打电话和发送短信了。
3 结语
本文设计了一个基于嵌入式Linux智能手机电话短信试验模块。构建了智能手机软、 硬件平台, 并完成了电话短信应用程序设计。为学生进行智能手机开发相关试验提供了平台。现在, 本平台已应用于北京化工大学通信试验室创新型试验平台中, 并为学生进行智能手机试验进行服务。在后续设计中, 考虑将嵌入式数据库移植到应用程序中以实现电话短信中名片夹以及收件箱等功效, 并开发基于该硬件平台下其她应用程序如MP3播放等模块以提供给学生进行试试验和学习。
:
展开阅读全文