欢迎来到天天文库
浏览记录
ID:40846258
大小:249.50 KB
页数:6页
时间:2019-08-08
《智能手机论文》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、I的智能手机通信功能的设计与实现摘要本文介绍以UP-TECHS2410作为核心开发板,UP-GPRS作为无线收发模块,嵌入式Linux作为操作系统,Qt4.5作为编程开发环境的智能手机系统不同的实现方式。结合实践,实现了智能手机语音通话.短信收发等主要功能,分析了作为一个可收发系统,多线程和定时器两种实现方案的不同实现过程,进而总结归纳了两种方案各自的优缺点。关键字智能手机Qt多线程定时器多线程通信DesignandimplementationofsmartphonecommunicationsystemAbstract
2、ThisarticleintroducestheUP-TECHS2410asacoredevelopmentboard,UP-GPRSasthewirelesstransceivermodules,embeddedLinuxastheoperatingsystem,NokiaQt4.5asadevelopmentlanguage,differentsmartphonesystemimplementations.Withpractice,throughtherealizationofintelligentmobilevoi
3、cecalls,textmessagingandotherbasicfunctionsofthesystemasatransceiver,theimplementationprocessofmulti-threadingandtimersandtheirrespectiveadvantagesanddisadvantagesareanalyzed. KeywordssmartphoneQtmulti-threadingtimersMulti-threadcommunication0概述自从上世纪末叶,手机巨头摩托罗拉推出
4、第一款名为天拓A6188的智能手机后,智能手机行业蓬勃发展,时至今日,已是百家争鸣,各有所长。各大厂商针对智能手机的投入也逐步增大,导致在该研究领域,从嵌入式平台的搭建、操作系统和GUI应用程序开发框架的选择,到嵌入式软件的设计与开发,每一个方面都炙手可热。与其它操作系统相比,Linux具有二个其它操作系统无法比拟的优势。其一,Linux具有开放的源代码,能够大大降低成本。其二,既满足了手机制造商根据实际情况有针对性地开发自己的Linux手机操作系统的要求,又吸引了众多软件开发商对内容应用软件的开发,丰富了第三方应用。越
5、来越多的厂商加入了基于Linux操作系统的智能手机的研发中。Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。它具有优良的跨平台性,面向对象,丰富的API,支持2D/3D图像渲染,支持OpenGL等众多优点。图1为智能手机系统的三层结构。底层为操作系统层,中间层为服务程序层,上层为用户界面层。设计智能手机系统的关键在于各项功能的实现即服务程序层的编写,如接/打电话,接/发短信,收发电子邮件,运行
6、游戏等。用户界面层(GUIInteraction)服务程序层(functionServer)嵌入式操作系统(embeddedOS)图1智能手机软件系统结构移植经过裁剪的Linux操作系统,可以方便的构建嵌入式操作系统层。而用户界面层则采用QtDesigner设计应用程序界面并绑定到qtopia下。本文重点阐述了采用多线程和定时器两种方式设计和实现服务程序层的方法。1采用Qt多线程实现服务程序层1.1服务线程的设计与实现手机功能的实现(接/打电话,收/发短信)涉及到对GPRS/GSM模块串口的读/写。通过AT指令,应用程序
7、可以很方便的和GPRS/GSM模块进行交互,如拨打电话:ATD;(为被叫电话号码)。对于手机用户的主动操作(如对手机界面的切换,打电话,发短信等),通过建立一个QAServer线程进行响应。而对于手机的被动操作(如有电话呼入,有短信到来等),通过建立一个QLServer线程,用于对gprs模块的串口进行监听,并根据从串口中读取的不同的信息触发QAServer线程中的相关操作进行响应。二者关系上,QLServer线程辅助QAServer线程,实现各项功能。QLServer线程主要是用于对gprs模块进行监听
8、,并唤醒QAServer线程中的相关响应操作。QLServer线程主要包含以下几个函数(相关的信号函数将在下面讨论):voidreadGprsData(intfd,QStringgprsSC);//读取串口中的字符信息voidencodeGPRS(QstringgprsSC);//解析读出的信息,并唤醒//QLSer
此文档下载收益归作者所有