王博 曹嘉城 孫超 屈藝超
DOI:10.19392/j.cnki.16717341.201720013
摘要: 針對手機成為眾多開發(fā)人員設(shè)計與創(chuàng)新的焦點。本論文在研究手機硬件和軟件結(jié)構(gòu)基礎(chǔ)上,提出本課題研究的運用QT圖形用戶界面程序開發(fā)框架組建實現(xiàn)基本的手機功能,具體由三個部分組成。硬件平臺:劃分為通信模塊單元、基于ARM內(nèi)核的應(yīng)用處理模塊單元以及輸入輸出模塊單元,這三個模塊協(xié)同工作共同完成手機的功能。這種模塊化的設(shè)計方法,為整體系統(tǒng)的開放、調(diào)試與升級提供了便利;軟件平臺:分為Bootloader、操作系統(tǒng)、GUI(通過Qt構(gòu)建);應(yīng)用軟件:這部分是基于通信協(xié)議的軟件開發(fā)與編程實現(xiàn)。
關(guān)鍵詞: 手機;ARM;嵌入式系統(tǒng);Linux;QT
1 系統(tǒng)方案的總體設(shè)計
本項目(基于ARM控制器與Qt界面編輯的手機設(shè)計)硬件結(jié)構(gòu)分為ARM核心板,電源,外圍功能(如觸摸屏等)和通過串口連接的GSM模組。通過對觸摸屏的操作控制ARM核心板,并通過核心板的串口發(fā)送和接受對GSM模組操作的AT指令來實現(xiàn)對撥打電話,收發(fā)短信的功能實現(xiàn),并通過觸摸屏的顯示功能顯示手機的UI界面以實現(xiàn)人機互動,增加手機的可使用性。
本項目的軟件結(jié)構(gòu)為在Linux操作平臺下移植QT5.4.1到ARM4412嵌入式開發(fā)板,通過在PC端進行QT5圖形化界面編程,實現(xiàn)手機的界面和相關(guān)功能(如撥打電話,發(fā)送短信)界面的構(gòu)建和實現(xiàn)。
2 硬件結(jié)構(gòu)搭建
在實際的手機系統(tǒng)設(shè)計中,需要處理的數(shù)據(jù)有兩大類通訊數(shù)據(jù)以及應(yīng)用程序的數(shù)據(jù)。針對處理數(shù)據(jù)的不同以及設(shè)計難度的平衡,在本設(shè)計中采用了雙CPU的解決方案,按照這個解決方案,可首先把手機終端劃分為通訊模塊和應(yīng)用處理模塊。
3 交叉編譯環(huán)境搭建與內(nèi)核移植
3.1 交叉編譯環(huán)境搭建
基于Linux操作系統(tǒng)的應(yīng)用程序開發(fā)一般由目標(biāo)硬件(開發(fā)板)和宿主機(PC)構(gòu)成,交叉編譯就是在宿主機平臺上使用某特定交叉編譯器,編譯出能在目標(biāo)開發(fā)板中運行的程序。雙方之間可以通過串口、并口或以太網(wǎng)接口建立連接關(guān)系。由于嵌入式設(shè)備沒有足夠的內(nèi)存及存儲資源,不能在本地編寫、編譯和調(diào)試自身運行的程序,因而需要借助其他設(shè)備(如PC)來完成這些工作。本文建立交叉開發(fā)環(huán)境的搭建即下載交叉編譯器并傳送到Ubuntu系統(tǒng)。
3.2 內(nèi)核移植
內(nèi)核移植就是根據(jù)選擇的硬件平臺來重新編譯內(nèi)核支持對應(yīng)的硬件,使之可以在該硬件平臺上運行,如果缺少相應(yīng)的硬件驅(qū)動程序或其他內(nèi)核模塊,可以自己進行相應(yīng)的開發(fā)加入到內(nèi)核中一起編譯最終實現(xiàn)對硬件的支持。內(nèi)核移植大致過程如下:(1)下載內(nèi)核源碼。(2)配置修改Makefile。(3)編譯生成鏡像。(4)燒寫鏡像。
4 實現(xiàn)手機功能的軟件設(shè)計
UI即User Interface(用戶界面)的簡稱。UI設(shè)計是指對軟件的人機交互、操作邏輯、界面美觀的整體設(shè)計[4]。好的UI設(shè)計不僅是讓軟件變得有個性有品位,還要讓軟件的操作變得舒適簡單、自由,充分體現(xiàn)軟件的定位和特點。Qt界面的設(shè)計和功能實現(xiàn)大致分為以下幾個部分:
4.1 界面設(shè)計
在工程下創(chuàng)建.ui文件后,通過Qt Creator 提供的便捷控件拖拽功能向各個功能界面中加入需要的空間,如LineEdit(行編輯)、pushButton(按鈕)、textEdit(文本編輯)等。并進行界面的合理布局。
4.2 控件功能實現(xiàn)
信號和插槽是Qt中一種用于對象間通信的調(diào)用機制,和傳統(tǒng)的函數(shù)回調(diào)方式不同。信號和插槽是Qt中很重要的機制,是Qt編程區(qū)別于其它編程的標(biāo)志。應(yīng)用Qt獨有的信號與槽的機制將不同控件連接到相應(yīng)的程序以實現(xiàn)通過發(fā)送AT指令來控制SIM800模塊的電話、短息等功能。
4.3 串口編輯與初始化
·串口編輯QtSerialPort模塊是Qt5庫的附加部分,通過對QtSerialPort模塊的使用即可對串口進行編輯。
·串口初始化:
my_serialport>setPortName("COM10");//設(shè)置串口
my_serialport>setBaudRate(QSerialPort::Baud9600);//設(shè)置波特率
my_serialport>setDataBits(QSerialPort::Data8); //設(shè)置數(shù)據(jù)位
my_serialport>setParity(QSerialPort::NoParity); //設(shè)置校驗位
my_serialport>setFlowControl(QSerialPort::NoFlowControl);//設(shè)置流控
my_serialport>setStopBits(QSerialPort::OneStop);//設(shè)置停止位
5 結(jié)論
電子技術(shù)的飛速發(fā)展,手機在人們的生活中扮演一個越來越重要的地位,本文采取了ARM&Linux方案構(gòu)建手機,在Linux內(nèi)核中移植進Qt庫,使具有極強跨平臺的Qt程序可在Linux系統(tǒng)中運行,更是使本課題的產(chǎn)品可移植性大大加強,實現(xiàn)“一次編寫,不同編譯環(huán)境,多種平臺應(yīng)用”的特點,為未來Windows、IOS、Android、Linux等系統(tǒng)的多平臺APP、APK提供了參考。
參考文獻:
[1]萊文森.手機,擋不住的呼喚[M].北京:中國人民大學(xué)出版社,2004:102108.
[2]涂剛,陽富民,胡貫榮.嵌入式操作系統(tǒng)綜述[J].計算機應(yīng)用研究,2000,3(11):2139.
[3]Richard M.Stallman .Using and Porting GUN CC[M].Cambridge: MIT Press,1998:4768.
[4]何劍鋒,鄔文彪,李宏穆,等.嵌入式Linux系統(tǒng)的Qt\Embedded圖形界面開發(fā)[J].電子工程師,2007(33):4648.
作者簡介:王博,曹嘉誠,孫超,屈藝超,單位:哈爾濱理工大學(xué)。