基于ARM控制器与Qt界面编辑的手机设计
2017-07-10王博曹嘉城孙超屈艺超
王博 曹嘉城 孙超 屈艺超
DOI:10.19392/j.cnki.16717341.201720013
摘要: 针对手机成为众多开发人员设计与创新的焦点。本论文在研究手机硬件和软件结构基础上,提出本课题研究的运用QT图形用户界面程序开发框架组建实现基本的手机功能,具体由三个部分组成。硬件平台:划分为通信模块单元、基于ARM内核的应用处理模块单元以及输入输出模块单元,这三个模块协同工作共同完成手机的功能。这种模块化的设计方法,为整体系统的开放、调试与升级提供了便利;软件平台:分为Bootloader、操作系统、GUI(通过Qt构建);应用软件:这部分是基于通信协议的软件开发与编程实现。
关键词: 手机;ARM;嵌入式系统;Linux;QT
1 系统方案的总体设计
本项目(基于ARM控制器与Qt界面编辑的手机设计)硬件结构分为ARM核心板,电源,外围功能(如触摸屏等)和通过串口连接的GSM模组。通过对触摸屏的操作控制ARM核心板,并通过核心板的串口发送和接受对GSM模组操作的AT指令来实现对拨打电话,收发短信的功能实现,并通过触摸屏的显示功能显示手机的UI界面以实现人机互动,增加手机的可使用性。
本项目的软件结构为在Linux操作平台下移植QT5.4.1到ARM4412嵌入式开发板,通过在PC端进行QT5图形化界面编程,实现手机的界面和相关功能(如拨打电话,发送短信)界面的构建和实现。
2 硬件结构搭建
在实际的手机系统设计中,需要处理的数据有两大类通讯数据以及应用程序的数据。针对处理数据的不同以及设计难度的平衡,在本设计中采用了双CPU的解决方案,按照这个解决方案,可首先把手机终端划分为通讯模块和应用处理模块。
3 交叉编译环境搭建与内核移植
3.1 交叉编译环境搭建
基于Linux操作系统的应用程序开发一般由目标硬件(开发板)和宿主机(PC)构成,交叉编译就是在宿主机平台上使用某特定交叉编译器,编译出能在目标开发板中运行的程序。双方之间可以通过串口、并口或以太网接口建立连接关系。由于嵌入式设备没有足够的内存及存储资源,不能在本地编写、编译和调试自身运行的程序,因而需要借助其他设备(如PC)来完成这些工作。本文建立交叉开发环境的搭建即下载交叉编译器并传送到Ubuntu系统。
3.2 内核移植
内核移植就是根据选择的硬件平台来重新编译内核支持对应的硬件,使之可以在该硬件平台上运行,如果缺少相应的硬件驱动程序或其他内核模块,可以自己进行相应的开发加入到内核中一起编译最终实现对硬件的支持。内核移植大致过程如下:(1)下载内核源码。(2)配置修改Makefile。(3)编译生成镜像。(4)烧写镜像。
4 实现手机功能的软件设计
UI即User Interface(用户界面)的简称。UI设计是指对软件的人机交互、操作逻辑、界面美观的整体设计[4]。好的UI设计不仅是让软件变得有个性有品位,还要让软件的操作变得舒适简单、自由,充分体现软件的定位和特点。Qt界面的设计和功能实现大致分为以下几个部分:
4.1 界面设计
在工程下创建.ui文件后,通过Qt Creator 提供的便捷控件拖拽功能向各个功能界面中加入需要的空间,如LineEdit(行编辑)、pushButton(按钮)、textEdit(文本编辑)等。并进行界面的合理布局。
4.2 控件功能实现
信号和插槽是Qt中一种用于对象间通信的调用机制,和传统的函数回调方式不同。信号和插槽是Qt中很重要的机制,是Qt编程区别于其它编程的标志。应用Qt独有的信号与槽的机制将不同控件连接到相应的程序以实现通过发送AT指令来控制SIM800模块的电话、短息等功能。
4.3 串口编辑与初始化
·串口编辑QtSerialPort模块是Qt5库的附加部分,通过对QtSerialPort模块的使用即可对串口进行编辑。
·串口初始化:
my_serialport>setPortName("COM10");//设置串口
my_serialport>setBaudRate(QSerialPort::Baud9600);//设置波特率
my_serialport>setDataBits(QSerialPort::Data8); //设置数据位
my_serialport>setParity(QSerialPort::NoParity); //设置校验位
my_serialport>setFlowControl(QSerialPort::NoFlowControl);//设置流控
my_serialport>setStopBits(QSerialPort::OneStop);//设置停止位
5 结论
电子技术的飞速发展,手机在人们的生活中扮演一个越来越重要的地位,本文采取了ARM&Linux方案构建手机,在Linux内核中移植进Qt库,使具有极强跨平台的Qt程序可在Linux系统中运行,更是使本课题的产品可移植性大大加强,实现“一次编写,不同编译环境,多种平台应用”的特点,为未来Windows、IOS、Android、Linux等系统的多平台APP、APK提供了参考。
参考文献:
[1]莱文森.手机,挡不住的呼唤[M].北京:中國人民大学出版社,2004:102108.
[2]涂刚,阳富民,胡贯荣.嵌入式操作系统综述[J].计算机应用研究,2000,3(11):2139.
[3]Richard M.Stallman .Using and Porting GUN CC[M].Cambridge: MIT Press,1998:4768.
[4]何剑锋,邬文彪,李宏穆,等.嵌入式Linux系统的Qt\Embedded图形界面开发[J].电子工程师,2007(33):4648.
作者简介:王博,曹嘉诚,孙超,屈艺超,单位:哈尔滨理工大学。