基于ARM CONTEX A8的智能家居系統(tǒng)設計_第1頁
基于ARM CONTEX A8的智能家居系統(tǒng)設計_第2頁
基于ARM CONTEX A8的智能家居系統(tǒng)設計_第3頁
基于ARM CONTEX A8的智能家居系統(tǒng)設計_第4頁
基于ARM CONTEX A8的智能家居系統(tǒng)設計_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

濟南大學畢業(yè)設計濟南大學泉城學院畢業(yè)設計2-2-濟南大學畢業(yè)設計題目基于ARMContexA8智能家居系統(tǒng)設計學院工學院專業(yè)電氣工程及其自動化班級學生學號指導教師二〇一六年五月二十日濟南大學畢業(yè)設計PAGE44-摘要隨著“物聯(lián)網(wǎng)”的發(fā)展,智能家居近年來成為家電企業(yè)研究和轉(zhuǎn)型的熱點。智能家居對當前的發(fā)展形式難以適應,同時智能家居技術在我國處于起步階段,許多技術標準都未標準化,因此加強智能家居應用層方面的研究,通過選取合適的芯片和技術,提出合理的設計方案,組建一種符合我國市場的、具有自主知識產(chǎn)權(quán)的智能家居系統(tǒng)己成為當前智能家居研究領域中極富經(jīng)濟價值和科技價值的課題。該項目使用ARMcortex-A8芯片是三星一款精典的處理器,它內(nèi)核運算速度快,體積小,功耗低,可以夠兼容各種復雜的外設,可擴展性高。初步的構(gòu)建功能,功能人機交互界面。實現(xiàn)了檢測用并顯示浮點的格式當前的室內(nèi)溫度并用曲線顯示溫度隨時間的變化,還可以查看升級進度實現(xiàn)軟件在線升級,實現(xiàn)音樂播放器,蜂鳴器,開關LED燈和實現(xiàn)動態(tài)界面的顯示和攝像頭采集視頻的顯示,移植了游戲和計算器供用戶娛樂。本設計基于S5PV210芯片,采用嵌入式linux系統(tǒng)開發(fā),模擬了一套功能齊全,用戶體驗度高的智能家居系統(tǒng)。關鍵詞:智能家居;嵌入式開發(fā);S5PV210ABSTRACTWith

the

development

of

Internet

of

things,

smart

home

has

become

a

hot

research

and

transformation

of

household

electrical

appliance

enterprises

in

recent

years.

Intelligent

home

of

the

current

form

of

development

difficult

to

adapt

to,and

smart

home

technology

in

our

country

in

the

initial

stage,

many

of

the

technical

standards

are

not

standardized.

Therefore,

strengthening

the

study

of

intelligent

home

application

layer,

by

selecting

the

appropriate

chip

and

technology,put

forward

the

reasonable

design,

established

one

kind

to

conform

to

our

country

market,

with

independent

intellectual

property

rights

of

the

smart

home

system

has

become

the

current

topic

of

smart

home

in

the

research

field

of

highly

economic

value

and

the

value

of

technology.The

project

use

the

ARM

cortex-A8

chip

processor

is

a

classic

of

Samsung,

its

kernel

computing

speed,

small

volume,low

power

consumption,

can

enough

compatible

peripherals

of

avariety

of

complex,

high

scalability.

Preliminary

build

function,

function

man-machine

interaction

interface.

The

detection

and

display

the

current

the

floating-point

format,

the

indoortemperature

and

curvedisplay

temperature

changes

with

time,

youcan

also

check

the

progress

of

your

upgrade

the

software

online

upgrade,

realizing

that

the

music

player,

buzzer,

switchLED

lights

andrealize

dynamic

interface

display

and

camera

production

video

display,

Transplant

Games

and

calculator

for

recreational

users.This

design

based

on

S5PV210

chip,

using

embedded

Linux

system

development,

simulation

of

a

set

of

complete

functions,

the

user

experience

a

high

degree

of

intelligent

home

system.Keywords:intelligent

home;

embeddeddevelopmentsensor;

S5PV210目錄TOC\o"1-3"\h\u12940摘要 I32326ABSTRACT II246351前言 1240981.1智能家居研究背景及意義 1244561.2國內(nèi)外發(fā)展現(xiàn)狀 1303891.3課題研究的內(nèi)容 232691.4嵌入式系統(tǒng)的特點 333312系統(tǒng)的總體方案設計 488732.1系統(tǒng)設計思路 4313312.2系統(tǒng)方案設計 4248252.3項目實現(xiàn)功能 5183133基于S5PV210的智能家居系統(tǒng)硬件設計 6327233.1芯片的選型 687573.1.1SPV210的功能特點 7275793.1.2ARMCONTEXA8開發(fā)板的配置 714973.1.3智能家居項目硬件配置 8310683.2DS18B20溫度傳感器的工作原理及結(jié)構(gòu)圖 8100913.3LED原理和電路圖 9227633.4TFT觸摸屏原理和電路 9207593.5報警電路 10172803.5.1蜂鳴器報警的原理 1063143.5.2蜂鳴器報警電路圖 1172713.5.3開發(fā)板音頻部分原理圖 11118274系統(tǒng)環(huán)境搭建 12280874.1搭建嵌入式linux系統(tǒng)環(huán)境 1262984.2編譯器 1278164.3嵌入式linux軟件組成部分及其功能 13269394.3.1bootloader作用 13136464.3.2UBOOT移植 13265594.3.3linux內(nèi)核組成 14132654.3.4內(nèi)核移植 1494514.3.5根文件系統(tǒng)rootfs作用 14243424.3.6根文件系統(tǒng)制作 14293434.4.Tslib移植 16293374.4.1.tslib作用 162174.4.2.tslib移植 16127404.5QT移植 17147004.5.1QT介紹 1727904.5.2安裝中文字體庫 17302304.5.3QT界面制作 1727875基于CONTEXA8智能家居軟件設計 19107065.1通過界面實現(xiàn)開關燈 19214225.2實現(xiàn)DS18B20的溫度顯示 1997455.2.1編寫DS18B20設備驅(qū)動程序 19212985.2.2編寫硬件操作庫函數(shù) 20251845.2.3編寫ehome圖形界面軟件,添加溫度顯示 2099375.3在線升級 2088295.3.1升級方案 21142545.3.2TPAD的linux系統(tǒng)識別U盤 21301955.3.3TPAD在linux系統(tǒng)擦和寫Nand 21159505.3.4升級zImage 2196475.4.ehome添加MP3播放器功能 2241945.5附加功能 2218446系統(tǒng)的調(diào)試與測試 23291066.1集成測試簡介 23108246.2硬件和軟件測試 24106236.2.1環(huán)境搭建測試 24157136.2.2tslib測試 24265836.2.3QT測試 2497496.2.4測試LED燈驅(qū)動和硬件操作庫 2488796.2.5溫度傳感器測試 25302896.2.6在線升級功能測試 2542986.3智能家居文件的編譯 26276997總結(jié)與展望 2722695參考文獻 2822962致謝 2931351附錄一主界面程序 303323附錄二在線升級代碼 3212694附錄三音樂播放器程序 3324319附錄四溫度曲線和顯示程序 3513836附錄五主控制芯片S5PV210的外接方式電路圖 4416439附錄六主控芯片S5PV210硬件電路圖 451前言1.1智能家居研究背景及意義21世紀經(jīng)濟快速發(fā)展,計算機技術更是取得了驚人的發(fā)展速度,科學技術也越來越多地影響著人們的生活,人們對自己的衣、食、住、行,提出了更高的要求[6]。智能化于是就成了出現(xiàn)頻率最高的詞匯,像智慧城市、智能汽車、智能景區(qū),智能控制,智能交通等等,都體現(xiàn)出人類對智能化生活的迫切追求。家庭是社會的細胞,唯有家庭實現(xiàn)了信息化,才能真正實現(xiàn)社會的信息化,研究開發(fā)智能家居系統(tǒng)是實現(xiàn)室內(nèi)信息化的必要過程[6]。“智能家居”這樣一個更加貼切人們生活的詞匯最早的時候是在西方康捏狄克州被提出來,隨后對智能家居項目投入拉開了序幕,智能家居系統(tǒng)成了科技進步的最大受益者之一[1]。現(xiàn)在特別是消費電子類產(chǎn)品智能化發(fā)展,嵌入式控制器件基本上應用于了生活的方方面面,比如收音機、智能手機、小區(qū)電梯、汽車電子、數(shù)字電視、工業(yè)控制、數(shù)碼相機、空調(diào)、交換機、路由器、衛(wèi)星、航空航天、月球探測儀、智能監(jiān)控、醫(yī)療器械,嵌入式的重要作用越突顯出來。近年來隨著“物聯(lián)網(wǎng)”的發(fā)展,物聯(lián)網(wǎng)技術的成熟和智能移動人機交互終端的普及,使得智能家居行業(yè)獲得了長足的發(fā)展,達到了前所未有的程度[12]。隨著智能家居技術的日益成熟、制造成本逐漸降低、用戶功能的人性化,使得智能家居“飛入尋常百姓家”,而不再是原來的高處不勝寒。最近幾年,隨著信息通信和計算機的發(fā)展,智能家居控制系統(tǒng)在房地產(chǎn)領域得到了一定程度的推廣,智能家居作為一個智能化和物聯(lián)化的新型領域,對現(xiàn)在家居安防和家居智能化的管理具有很重要的價值[16]。1.2國內(nèi)外發(fā)展現(xiàn)狀由于芯片朝著體積更小、運算更快、功耗更低的方向發(fā)展,所以越來越多的智能化芯片被運用到日常電子商品里,而且可以添加更多的外設和更好的功能。比如,諾基亞1050手機只能打電話,發(fā)個信息,而iphone手機可以打電話,發(fā)信息,WIFI,BT,TP等,軟件隨著硬件的改變而改變。不同的產(chǎn)品,它們的功能不一樣,可靠性也不一樣,成本不一樣,體積和功耗都,有可能不一樣,但是本質(zhì)同樣的東西都會滿足。根據(jù)不同用戶的需求,諾基亞1050:功能單一,可靠性高,成本低,體積小,功耗小,而iphone手機功能強大,可靠性差,成本高,體積大,功耗高。可以得出結(jié)論,將來做產(chǎn)品可以做低端和高端,像智能家居就屬于滿足用戶需求的高端產(chǎn)品,然而高端行業(yè)會出現(xiàn)后勁不足。同時,盡管大量與智能家居有關的技術逐漸興起,而當前智能家居系統(tǒng)還并未發(fā)展成熟,存在諸多問題,如布線繁雜、不美觀、功耗大、對互聯(lián)網(wǎng)的依賴性強。到目前國內(nèi)的研究還沒有建立一個完整的智能家居理論體系,對智能家居的理解也存在著各種的差異;當前國內(nèi)的智能家居產(chǎn)品大都功能貧乏,系統(tǒng)設計不規(guī)范、可擴展性差,對當前的發(fā)展形式難以適應,同時智能家居技術在我國處于起步階段,許多技術標準都未標準化,還有很多工作需要做。因此加強智能家居應用層方面的研究,通過選取合適的芯片和技術,提出合理的設計方案,組建一種符合我國市場的、具有自主知識產(chǎn)權(quán)的智能家居系統(tǒng)己成為當前智能家居研究領域中極富經(jīng)濟價值和科技價值的課題[5]。如果對國內(nèi)外智能家居系統(tǒng)的深入研究,針對國內(nèi)現(xiàn)狀,本系統(tǒng)的設計和使用,如果得到廣泛的應用,可以極大地提高人們的生活質(zhì)量,真正的實現(xiàn)住宅智能化,這也為將為推動中國物聯(lián)網(wǎng)的發(fā)展起到一定推動作用。如圖1.1所示,物聯(lián)網(wǎng)智能家居的體現(xiàn),體現(xiàn)了萬物互聯(lián)的主題。圖1.1物聯(lián)網(wǎng)的智能家居1.3課題研究的內(nèi)容本次智能家居項目使用了韓國三星公司研發(fā)的S5PV210芯片,它的內(nèi)核cortex-A8是ARM處理器最高級系列中的芯片,而且開發(fā)板接口資源豐富,搭載了相當豐富的外設串口供開發(fā)者使用。雖然離現(xiàn)實的成熟的智能家居系統(tǒng)無論是功能上,還是制作上都存在一定差距,但是初步體現(xiàn)出智能家居的思想,達到展示的效果,并且體現(xiàn)一定的實用價值[7]。結(jié)合國內(nèi)外現(xiàn)有的相關研究成果及現(xiàn)有的成熟技術,項目安排的主要內(nèi)容有:一、前言。簡要介紹了智能家居課題的研究背景及意義、研究內(nèi)容、國內(nèi)外發(fā)展和現(xiàn)狀、嵌入式系統(tǒng)的特點和課題所要達到技術要求以及功能的實現(xiàn)方法。二、系統(tǒng)整體方案設計及相關技術。主要包括智能家居系統(tǒng)的設計思路,設計方案和系統(tǒng)實現(xiàn)功能。三、智能家居系統(tǒng)硬件設計。這部分內(nèi)容主要包括系統(tǒng)主要芯片結(jié)構(gòu)、各模塊的功能介紹和各模塊硬件電路圖等。系統(tǒng)環(huán)境搭建。主要包括系統(tǒng)的UBOOT燒寫,內(nèi)核移植,根文件系統(tǒng)制作,tslib移植,QT移植和校正。智能家居系統(tǒng)軟件設計。軟件設計部分包括系統(tǒng)13238通過界面實現(xiàn)開關燈,13238實現(xiàn)溫度顯示,在線升級,音樂播放器。系統(tǒng)的調(diào)試與測試。這部分內(nèi)容主要包括測試簡介,軟件測試和硬件測試。1.4嵌入式系統(tǒng)的特點嵌入式系統(tǒng)的核心是嵌入式計算機系統(tǒng),它分為系統(tǒng)硬件層、系統(tǒng)軟件層,應用軟件層和中間層。嵌入式系統(tǒng)是以用戶需求為中心,并且軟、硬件均可裁剪的但必須具備最小系統(tǒng)要求,軟硬件為可以根據(jù)用戶的需求而裁剪[8]。可以接受嵌入式計算機系統(tǒng)發(fā)出的控制命令的可以執(zhí)行裝置又被叫做被控對象,由它來它執(zhí)行所規(guī)定的操作或任務。執(zhí)行裝置功能可以很簡單,如MP3上的按鈕鍵,可以上下左右切換歌曲;也可以功能很復雜,如谷歌眼鏡,上面集成了多種傳感器和各種微型機器,從而可以執(zhí)行各種復雜的機器動作并感受各種外界的狀態(tài)信息。具有極佳的運算處理性能、極低的功耗、極其豐富的外設接口,并且具有防復制保護,使得智能家居可以應用到很多場合。可裁剪性強。可以根據(jù)功能要求,裁剪設備功能。實時性好。實時性一般較好,在各種設備控制中可以應用。接口統(tǒng)一。提供統(tǒng)一的設備驅(qū)動接口。操作方便、提供良好人機交互界面,容易學會。提供強大的網(wǎng)絡功能,支持TCP/IP等各種協(xié)議,提供各種協(xié)議支持及統(tǒng)一的MAC訪問層的訪問接口,為各種計算設備預留接口。強穩(wěn)定性,弱交互性。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務。固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應用軟件被固化在嵌入式系統(tǒng)計算機的NAND上。很好的硬件適應性,具有良好的移植功能。嵌入式系統(tǒng)會和具體需求有機地結(jié)合在一起,嵌入式的升級更新也是和具體產(chǎn)品同步進行,具有較長的生命周期。60542系統(tǒng)的總體方案設計317322.1系統(tǒng)設計思路基于contexA8的智能家居系統(tǒng)設計思路是:當人在室內(nèi)時,增加用戶體驗,可以操作一塊室內(nèi)控制器的觸屏來控制室內(nèi)的器件,進行人機交互的控制。實現(xiàn)了檢測用并顯示浮點的格式當前的室內(nèi)溫度并用曲線顯示溫度隨時間的變化,還可以查看升級進度實現(xiàn)新版本軟件的在線升級,實現(xiàn)音樂播放器,蜂鳴器,開關LED燈,視屏監(jiān)控和實現(xiàn)動態(tài)界面的顯示和攝像頭采集視頻的顯示,移植了游戲和輔助功能的計算器,供用戶娛樂這樣一來,用戶可以實現(xiàn)操作觸摸屏,就能做自己想做的事。本設計基于S5PV210芯片,采用嵌入式linux系統(tǒng)開發(fā),模擬了一套功能齊全,用戶體驗度高和可擴展性強的智能家居系統(tǒng)[9]。如圖2.1所示,本次采用的開發(fā)板全景圖,中間內(nèi)含有處理器S5PV210芯片。 圖2.1ARMCONTEXA8開發(fā)板292432.2系統(tǒng)方案設計基于contexA8的智能家居系統(tǒng)設計目的是設計出一種用戶體驗良好,功能齊全,實現(xiàn)人與室內(nèi)和諧的氛圍。要求設計的操作QT界面進行操作實現(xiàn)觸屏式操作。綜合電路各模塊設計、環(huán)境搭建,軟件設計、系統(tǒng)的可靠性以及可擴展性等各方面的考慮與分析,最終決定該系統(tǒng)將選用三星S5PV210熱釋電紅外傳感器進行人體紅外信號采集,然后通過S5PV210芯片處理之后傳給外設作出一系列相應的操作,例如控制mp3和蜂鳴器的開與關,并且采用LCD液晶顯示屏將時間顯示出來。經(jīng)過資料的查詢以及各方面的綜合考慮、分析、研究和比較,認為該方案的設計能夠很好得完成該系統(tǒng)所要實現(xiàn)的一系列功能,該系統(tǒng)的總體方案設計框圖如圖2.2所示。圖2.2系統(tǒng)的設計框圖2.3項目實現(xiàn)功能結(jié)合最初設定的基本功能,以及現(xiàn)在所掌握的知識能力,初步的構(gòu)建功能。功能人機交互界面如圖2.3所示。(1)實時檢測當前的室內(nèi)溫度,并用曲線顯示溫度隨時間的變化,每隔1s刷新一次,同時用浮點的格式顯示出來溫度的值,單位攝氏度。(2)實現(xiàn)軟件在線升級,也能查看升級進度。(3)實現(xiàn)音樂播放器功能,上一首,下一首,暫停和播放音樂。(4)可以通過操作界面點響蜂鳴器,或者用蜂鳴器作為報警聲。(5)可以開關LED燈和切換界面,模擬室內(nèi)控制電燈。(6)實現(xiàn)動態(tài)界面的顯示和攝像頭采集視頻的顯示。(7)能夠在業(yè)余時間玩一些游戲(2048和貪吃蛇),還有一些輔助功能,如計算器,登陸界面,日歷,圖片查看器等。圖2.3智能家居功能人機交互界面118823基于S5PV210的智能家居系統(tǒng)硬件設計62003.1芯片的選型結(jié)合現(xiàn)實生活中的實際需要,以及現(xiàn)在人們對嵌入式的理解,最終定下功能目標主要分為四大部分:嵌入式以用戶需求為中心(產(chǎn)品要滿足和符合用戶的需求),用戶需求不同,最終造成產(chǎn)品硬件不同,產(chǎn)品的硬件不同,硬件可裁剪,本質(zhì)還是用戶需求。三星S5PV210核心板的三大件:CPU,閃存K9K8G08U0B(8G小b),內(nèi)存K4T1G084QF(1G大B)。三星S5PV210具有可擴展性能強,可以為將來軟件升級提供充分的資源,而STC89C52等單片機就不能提供高清視頻輸出,視頻播放,視頻采集等功能[4]。如圖3.1所示,S5PV210處理器芯片。圖3.1S5PV210處理器芯片179663.1.1SPV210的功能特點S5PV210包含很多強大的硬件編解碼功能,內(nèi)建MFC(MultiFormatCodec),支持MPEG-1/2/4,H.263,H.264等格式視頻的編解碼,支持模擬/數(shù)字TV輸出。JPEG硬件編解碼,最大支持8000x8000分辨率,支持2D/3D圖形加速,其多邊生成率為2800萬多邊形/秒,像素填充率可達2.5億/秒,可支持DX9,OpenGL2.0等PC級別的顯示技術,在3D和多媒體方面比以往大幅提升。可以錄制高質(zhì)量的視頻文件,支持30幀每秒的19201080像素的視屏文件,支持HDMIv1.3高清顯示。具有總共五種定時器功能:接通延時型定時器,保持型接通延時定時器,脈沖型定時器,斷開延時型定時器和擴張型脈沖定時器。系統(tǒng)構(gòu)架:圖3.2系統(tǒng)構(gòu)架圖179663.1.2ARMCONTEXA8開發(fā)板的配置核心板的底板:外圍接口;網(wǎng)卡;USB口(4大1小):連接USB設備;串口(2個,9針串口座);音頻輸入和輸出;視頻輸出口(三個);HDMI(1個);按鍵(8個):人機交互;蜂鳴器(1個):報警;LCD屏接口(LCD屏分辨率800*480);JTAG口;SD卡;撥碼開關;TF卡;SPI接口;攝像頭接口;485接口。 3.1.3智能家居項目硬件配置CPU:S5PV210;內(nèi)存:1G;閃存:SLC1GNand;網(wǎng)卡:DM9000,100M;串口:2個,調(diào)試和數(shù)據(jù)通信;USB:4個,外接U盤和移動硬盤;DS18B20:溫度傳感器(單總線接口1-Wire);HIMD:攝像頭(一個);ADC:模數(shù)轉(zhuǎn)換器,分辨率10位或者12位;獨立式按鍵:8個;LED燈:2個;蜂鳴器:1個;AT24C02:EEPROM存儲器,容量256字節(jié);LCD顯示屏:分辨率800*480;電容觸摸屏:GT811。152573.2DS18B20溫度傳感器的工作原理及結(jié)構(gòu)圖DS18B20的讀寫時序和煙霧傳感器相同,只是得到的溫度值的位數(shù)因分辨率不同。金屬在環(huán)境溫度變化時會產(chǎn)生相應的延伸。它的工作流程首先初始化時序,然后寫時序,讀時序,然后將高低位字節(jié)傳到寄存器并乘以位轉(zhuǎn)換精度,得到溫度值,溫度傳感器可以用不同的方式來對這種情況進行轉(zhuǎn)換。以讀取DS18B20檢測的溫度值為例,它的具體具體的操作流程:(1)CPU發(fā)送初始化信號(2)CPU發(fā)送SKIPROM命令0xCC(3)CPU發(fā)送CONVERTT溫度轉(zhuǎn)換命令0x44,溫度轉(zhuǎn)換以后,二進制溫度值保存 在byte0和byte1中(4)CPU發(fā)送初始化信號(5)CPU發(fā)送SKIPROM命令0xCC(6)CPU發(fā)送READRAM命令0xBE(7)CPU讀取byte0和CPU讀取byte1(8)CPU發(fā)送初始化信號(9)實際溫度值=(byte1<<8|byte0)*625(10)應用程序要將實際溫度值/10000DS18B20測溫傳感器電路如圖3.3所示,讀寫時序圖如圖3.4所示。圖3.3傳感器電路圖圖3.4讀寫時序圖168973.3LED原理和電路圖LED發(fā)光二極管是利用通電時正向?qū)ǚ聪蚪刂沟霓k法來實現(xiàn)燈的開與關。用LED來模擬智能家居中室內(nèi)電燈,通過觸摸屏幕上面的開關按鍵可以實現(xiàn)開關燈。開發(fā)板LED的原理圖如圖3.5所示。圖3.5LED電路圖168973.4TFT觸摸屏原理和電路我們來探討LCD運作原理。LCD本身是不發(fā)光的,顯示屏兩邊沒有作為發(fā)光的燈管,同時在顯示屏背面有一塊由熒光物質(zhì)組成的背光板和反光膜,其主要作用是提供背景光源,液晶層中的細小水晶被包含在細小的單元格中;然后用電路控制哪些地方亮與不亮,液晶材料相當于一個小小的光閥,控制光的通過與不通過。液晶顯示屏通過DVI接口來接受數(shù)字信號,這些信號通過數(shù)據(jù)線來控制電路,由電路來調(diào)節(jié)顯示器的晶體管和透明電板,從而控制液晶的通光與否,這就是論文里使用的TFT屏幕的原理,如圖3.6是TFT屏幕的電路圖和圖3.7視頻模塊。圖3.6TFT觸屏模塊圖3.7視屏播放器電路模塊7313.5報警電路3.5.1蜂鳴器報警的原理蜂鳴器為發(fā)生元件,可分為有源蜂鳴器和無源蜂鳴器,這里所說的“源”是震蕩源,無源蜂鳴器的內(nèi)部是沒有震蕩源的,有源蜂鳴器其內(nèi)部帶有震蕩源,它的程序控制時比較的方便,只要通電蜂鳴器就會鳴叫。如果使用時直流信號無法使蜂鳴器鳴叫,那么就要用2-5K的方波來驅(qū)動。鑒于蜂鳴器工作電流較大,在一般情況下使用三極管就可以來放大電流,使得嵌入式的I/O口無法直接驅(qū)動蜂鳴器,此時便要使用放大電路來驅(qū)動。蜂鳴器的驅(qū)動電路一般情況下包含有一個三極管,一個電源濾波電容,一個蜂鳴器和一個續(xù)流二極管。3.5.2蜂鳴器報警電路圖該系統(tǒng)采用蜂鳴器作為該系統(tǒng)的報警模塊,在淋浴時當溫度高于溫度閥值應范圍30攝氏度時,此時蜂鳴器響應單片機進行報警,低于這個溫度值蜂鳴器也將停止報警。蜂鳴器的報警原理是比較簡單,實現(xiàn)了報警的功能,蜂鳴器的電路如圖3.8所示。圖3.8蜂鳴器電路圖3.5.3開發(fā)板音頻部分原理圖在點擊一首歌曲時,CPU就會發(fā)送一個信號給存儲器,然后磁頭受到信號就搜索磁道上的信息,然后把音樂的文件數(shù)據(jù)從磁信號變成電信號在傳送到內(nèi)存條再傳送到CPU上,經(jīng)過處理器的計算,再分配到喇叭輸出接口,音頻部分電路圖如圖3.9所示,實現(xiàn)音樂播放器的上下音量控制,左右曲目控制。圖3.9開發(fā)板音頻電路4系統(tǒng)環(huán)境搭建4.1搭建嵌入式linux系統(tǒng)環(huán)境安裝純linux系統(tǒng),然后給linux系統(tǒng)安裝,使用本地安裝或網(wǎng)絡安裝純linux軟件,安裝包名為sudoapt-getinstall。安裝和配置vim:sudoapt-getinstallvim,拷貝目錄和配置插件 /home/tarena/.vimrc安裝串口終端工具:sudoapt-getinstallkermit遠程登錄軟件:sudoapt-getinstallopenssh-server,并重啟 sudo/etc/init.d/sshrestartTftp網(wǎng)絡服務安裝:sudoapt-getinstalltftpd-hpa,配置tftpd-hpa時關閉WIFI,并且sudo/etc/init.d/nfs-kernel-servicerestart配置nfs相關服務:sudoapt-getinstallnfs-kernel-server//nfs配置網(wǎng)絡服務sudo/etc/init.d/nfs-kernel-serverrestart源碼閱讀工具安裝:sudoapt-getinstallctags/cscopewindows:源碼閱讀工具sourceinsight,linux編輯查看源碼工具ctags的使用進入要查看的源碼根目錄,cd/opt/arm/文件夾名,將所有源碼生成數(shù)據(jù)庫文件tags:ctags-R*,lstags-lh,所在目錄不能改變,找不到tags數(shù)據(jù)庫:vimmain.c,將光標移動到對應的位置uart_init,夠?qū)崿F(xiàn)函數(shù)或者變量的自動補全:ctrl+nubuntu編譯軟件的安裝搜索“ubuntu編譯軟件”,gcc編譯器軟件安裝:sudoapt-getinstallgcc,C++編譯軟件安裝:sudoapt-getinstallg++,自動換行軟件的安裝:sudoapt-getinstallautomake(9)安裝QT圖形界面開發(fā)軟件:sudoapt-getinstallqt相關的安裝包。(10)掌握sourceinsight軟件操作使用,下載sourceinsight軟件并安裝,啟動sourceinsight軟件,將來拿到代碼,立即用SI創(chuàng)建源碼功能。4.2編譯器采用官方交叉編譯器:編譯器版本:4.4.6,編譯器路徑:/home/tarena/workdir/toolchain/opt/S5PV210-crosstools/4.4.6,設置交叉編譯器環(huán)境變量:sudovim/etc/environment,在“PATH”中添加如下信息:添加之前:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games添加之后:/home/tarena/workdir/toolchains/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games啟動交叉編譯器環(huán)境變量source/etc/environment,查看是否是4.4.6版本編譯器驗證:arm-linux-gcc–v4.3嵌入式linux軟件組成部分及其功能嵌入式linux系統(tǒng)是由Bootloader,linux內(nèi)核(kernel),根文件系統(tǒng)(rootfs)組成,uboot啟動加載內(nèi)核到內(nèi)存,然后由zImage掛接根文件系統(tǒng),最后由根文件系統(tǒng)掛用戶可以使用的文件,它的它的啟動過程如圖4.1所示。圖4.1嵌入式linux系統(tǒng)啟動過程4.3.1bootloader作用Bootloader的作用是初始化硬件(CPU,DDR,Nand,UART等),將內(nèi)核加載到內(nèi)存,給內(nèi)核傳遞啟動參數(shù)和啟動內(nèi)核[6]。4.3.2UBOOT移植采用官方UBOOT源碼,源碼包u-boot_CW210_1.3.4.tar.bz2,源碼存放路徑:/opt/uboot/,源碼操作:解壓源碼:tar–xvfu-boot_CW210_1.3.4.tar.bz2。清除源碼配置文件和目標文件:makedistclean,配置源碼:makecw210_configmakeall,USB燒寫固化u-boot.bin,Linux內(nèi)核移植[17]。4.3.3linux內(nèi)核組成包括7大子系統(tǒng)(1)進程管理:負責進程的創(chuàng)建,切換,調(diào)度,銷毀(2)內(nèi)存管理:負責內(nèi)存的分配,銷毀,映射(3)系統(tǒng)調(diào)用:open/read/write/close/fork/sbrk/等(4)網(wǎng)絡協(xié)議棧:TCP/IP協(xié)議(5)驅(qū)動程序:外設的驅(qū)動程序(6)文件系統(tǒng):NTFS,FAT32,EXT4,cramfs,ramdisk,nfs...(7)平臺相關:linux內(nèi)核支持ARM,POWERPC,MIPS,X86異常向量表的代碼。4.3.4內(nèi)核移植源碼包采用官方源碼:Kernel__CW210_for_Linux_v1.0.tar.gz,源碼存放路徑:/opt/kernel,然后Kernel__CW210_for_Linux_v1.0.tar.gz解壓源碼。清除源碼配置文件和目標文件:cd/opt/kernel&&makedistclean,配置源碼:cpconfig_CW210_linux_V1.0.config,保存退出:makemenuconfig并編譯makezImage最后拷貝到tftpboot中:cparch/arm/boot/zImage/tftpboot/。4.3.5根文件系統(tǒng)rootfs作用rootfs作用是給給用戶提供基本的命令和程序使用的動態(tài)庫,常見的動態(tài)庫例如:ls/cd/mkdir/cp/...libc.so/libm.so/libstdc++.so/libpthread.so等4.3.6根文件系統(tǒng)制作采用busybox開源軟件制作busybox,源碼包:busybox-1.21.1.tar.bz2,源碼存放目錄:/opt/busybox/,進行解壓源碼:tar–jxvfbusybox-1.21.1.tar.bz2,進入cdbusybox-1.21.1并配置源碼:makemenuconfig,重新定制模塊操作命令:LinuxModuleUtilities,去掉Simplifiedmodutils(NEW),同時添加insmod,rmmod,lsmod,modprobe,Blacklistsupport,depmod命令。取出閃存flash操作命令,去掉nandwrite(NEW)和nanddump(NEW),然后保存退出[9]。修改Makefile文件,vimMakefile:將CROSS_COMPILE=修改為CROSS_COMPILE=arm-linux-,將ARCH=$(SUBARCH)修改為ARCH=arm,最后編譯和安裝make&&makeinstall,默認安裝當前目錄的_install目錄:ls_install用file命令檢查編譯結(jié)果busybox可執(zhí)行文件的屬性:file_install/bin/busybox,打印信息如下:ELF32-bitLSBexecutable,ARM,version1(SYSV),dynamicallylinked(usessharedlibs),stripped//紅色字體的內(nèi)容必須為ARM,進入安裝目錄:cd_install。創(chuàng)建目錄:mkdirdevlibetc/init.dprocsyshomemntvartmproot-p(1)添加系統(tǒng)啟動配置文件,vimetc/inittab時添加如下內(nèi)容后保存退出。::sysinit:/etc/init.d/rcS::respawn:-/bin/sh::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount-a–r(2)添加文件系統(tǒng)配置文件vimetc/fstab然后添加如下內(nèi)容后保存退出。proc/procprocdefaults00tmpfs/tmptmpfsdefaults00sysfs/syssysfsdefaults00tmpfs/devtmpfsdefaults00添加系統(tǒng)啟動服務配置腳本,vimetc/init.d/rcS后添加內(nèi)容如下保存退出。/bin/mount-a,mkdir/dev/pts,mount-tdevptsdevpts/dev/pts,echo/sbin/mdev>/proc/sys/kernel/hotplug,mdev–s。添加完成后,修改rcS文件權(quán)限:chmod777etc/init.d/rcS并添加busybox運行時所需動態(tài)庫,動態(tài)庫添加原則:應用軟件需要哪些動態(tài)庫,就添加,不相關不做添加,以便節(jié)省閃存空間。應用軟件編譯連接需要的動態(tài)庫在交叉編譯器中獲取,動態(tài)庫路徑如下:/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/拷貝所需動態(tài)庫到根文件系統(tǒng)lib目錄。拷貝標準C庫find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"libc-*"-o-name"libc.so*"\)-execcp-frd{}lib/\;拷貝數(shù)學運算庫findhome/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"libm-*"-o-name"libm.so*"\)-execcp-frd{}lib/\;拷貝動態(tài)鏈接庫find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"ld-*"\)-execcp-frd{}lib/\;測試制作好的根文件系統(tǒng)備份原有的根文件系統(tǒng)rootf:mv/opt/rootfs/opt/rootfs_bak,cp_install/opt/rootfs–frd將安裝制作好的根文件系統(tǒng)_install拷貝為/opt/rootfs,注意添加NFS網(wǎng)絡服務的支持:sudovim/etc/exports添加如下語句:/opt/rootfs*(rw,sync,no_root_squash),保存退出,這時候重啟網(wǎng)絡服務sudo/etc/init.d/nfs-kernel-serverrestart.uboot中設置NFS網(wǎng)絡啟動參數(shù):setenvbootargsroot=/dev/nfsnfsroot=:/opt/rootfsip=10:::::eth0:oninit=/linuxrcconsole=ttySAC0,115200,保存saveenv。4.4.Tslib移植4.4.1.tslib作用在采用觸摸屏的移動終端中,觸摸屏性能的調(diào)試是個重要問題之一,因為電磁噪聲的緣故,觸摸屏容易存在點擊不準確、有抖動等問題。tslib是一個開源的程序,能夠為觸摸屏驅(qū)動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅(qū)動的適配層,為上層的應用(例如QT)提供了一個統(tǒng)一的接口[3]。4.4.2.tslib移植源碼存放目錄:/opt/project/source/,進入源碼目錄:cd/opt/project/source,解壓源碼:tar–xvftslib.tar.gz,cdtslib后執(zhí)行./autogen.sh生成配置文件configure執(zhí)行echo"ac_cv_func_malloc_0_nonnull=yes">tmp.cache。指定安裝的目錄為/opt/project/tslib目錄執(zhí)行./configure--host=arm-linux--cache-file=tmp.cache--prefix=/opt/project/tslib執(zhí)行make&&makeinstall,編譯安裝后修改tslib的配置文件ts.conf。打開配置文件vimetc/ts.conf,進行如下操作:在“modulepthrespmin=1”前一行添加“module_rawinput”語句。開發(fā)板測試tslib:編譯tslib生成目標文件存放目錄:/opt/rootfs/home/tslib/,mkdir/opt/rootfs/home/tslib/拷貝運行時配置文件cpetc/opt/rootfs/home/tslib/-frd,拷貝觸摸屏測試軟件cpbin/opt/rootfs/home/tslib/-frd,拷貝tslib動態(tài)庫文件cplib/opt/rootfs/home/tslib/-frd。連接觸摸屏和開發(fā)板,獲取觸摸屏設備文件開發(fā)板上執(zhí)行hexdump/dev/input/event0,然后用手指點擊觸摸屏,看串口終端是否有打印信息,如果沒有,event0不是觸摸屏的設備文件,再執(zhí)行:hexdump/dev/input/event1,同樣點擊屏幕看是否有打印信息,如果沒有,再次更換設備文件為event2,直到找到觸摸屏的設備文件,例如:hexdump/dev/input/event3,有打印信息,至此觸摸屏的設備文件為/dev/input/event3。添加使用tslib時的環(huán)境變量后保存退出:打開后vim/opt/rootfs/etc/profile添加如下內(nèi)容:exportTSLIBDIR=/home/tslibexportTSLIB_CONSOLEDEVICE=noneexportTSLIB_FBDEVICE=/dev/fb0exportTSLIB_TSDEVICE=/dev/input/event3exportTSLIB_CALIBFILE=$TSLIBDIR/etc/pointercalexportTSLIB_CONFFILE=$TSLIBDIR/etc/ts.confexportTSLIB_PLUGINDIR=$TSLIBDIR/lib/tsexportPATH=/home/tslib/bin:$PATHexportLD_LIBRARY_PATH=/home/tslib/lib:$LD_LIBRARY_PATH4.5QT移植4.5.1QT介紹QT是對底層圖形界面的應用編程接口,面向?qū)ο蠡姆庋b,一套基于C++語言的類庫,堪稱藝術級別的開發(fā)工具,同時為用戶和團隊帶來高品質(zhì)的使用體驗[11]。QT不局限于用戶圖形界面的開發(fā),系統(tǒng)調(diào)用,網(wǎng)絡編程,數(shù)據(jù)庫編程,2D、3D處理,而且是跨平臺的應用編程框架,支持多中操作系統(tǒng)linux,windows,ios,安卓,MAXOSX等,是人機交互必不可少的開發(fā)工具。4.5.2安裝中文字體庫字體庫文件:wqy-zenhei.ttc,刪除QT自帶字體庫:rm/opt/project/qt/lib/fonts/*-fr,安裝中文字體庫:cpwqy-zenhei.ttc/opt/project/qt/lib/fonts/,安裝編譯出來的QT庫到跟文件系統(tǒng)/opt/rootfs中,拷貝QT庫cp/opt/project/qt/lib/opt/rootfs/home/qt–frd和cp/opt/project/qt/plugins/opt/rootfs/home/qt-frd,最后添加QT運行時的環(huán)境變量,打開vim/opt/rootfs/etc/profile,添加如下內(nèi)容exportQTDIR=/home/qt,ExportQWS_MOUSE_PROTO=“Tslib:/dev/input/event3”,exportQWS_SIZE=800X480,exportQT_QWS_FONTDIR=$QTDIR/lib/fonts,exportQT_PLUGIN_PATH=$QTDIR/pluginsexportQWS_DISPLAY="LinuxFB:mmWidth180:0"exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH保存退出,重啟開發(fā)板,執(zhí)行env命令,查看環(huán)境變量是否生效。添加QT運行時的系統(tǒng)庫find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"libpthread-*"-o-name"libpthread.so*"\)-execcp-frd{}/opt/rootfs/lib/\;find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"libstdc++-*"-o-name"libstdc++.so*"\)-execcp-frd{}/opt/rootfs/lib/\;find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"librt-*"-o-name"librt.so*"\)-execcp-frd{}/opt/rootfs/lib/\;find/home/tarena/workdir/toolchains/opt/S5PV210-crosstools/4.4.6/arm-concenwit-linux-gnueabi/lib/\(-name"libgcc_s-*"-o-name"libgcc_s.so*"\)-execcp-frd{}/opt/rootfs/lib/\;4.5.3QT界面制作準備工作:在項目根目錄下的rootfs/home/etc下新建passwd文件,用來保存初始密碼。使用Qt制作登陸界面ui繼承的類,繼承QDialog類。包含一個ip地址輸入框,一個確定按鈕,一個取消的按鈕和一個密碼輸入框[16]。我們對確認按鈕編寫槽函數(shù),而且從密碼的輸入框收集使用者輸入的密碼,從ip地址輸入框收集用戶輸入的IP地址,將IP地址保存為全局量,其它的消息都使用這個IP通信,同時給開發(fā)板發(fā)送登陸信息,并將密碼發(fā)送給開發(fā)板[11]。編寫開發(fā)板插件程序,等待開發(fā)板比對后的認證結(jié)果。開發(fā)板接收到Qt傳來的密碼,與預先保存在本地文件中的密碼相比較,一致的話就說明認證成功并成功結(jié)果返回給Qt程序,反之認證失敗。QT程序如果收到了認證成功,調(diào)用QDialog::accept()函數(shù)返回。如圖4.2正在制作QT界面[8]。圖4.2QT界面制作5基于CONTEXA8智能家居軟件設計5.1通過界面實現(xiàn)開關燈創(chuàng)建驅(qū)動源碼目錄mkdir/opt/project/drivers/led-p,cd/opt/project/drivers/led,vimled_drv.c,vimMakefile,make。創(chuàng)建驅(qū)動目標文件的存放目錄mkdir/opt/rootfs/home/drivers,cpled_drv.ko/opt/rootfs/home/drivers/。編寫LED硬件操作庫函數(shù),目的是讓應用開發(fā)者無需關注底層的硬件操作細節(jié),便于軟件維護。編寫申明文件led.h和led.c,ledlib_test.c硬件操作庫的測試用例,創(chuàng)建硬件操作庫源碼存放目錄。編譯燈arm-linux-gcc-shared-fpic-olibled.soled.c,arm-linux-gcc-oledlib_testledlib_test.c-L.-lled。創(chuàng)建動態(tài)庫和測試用例的存放目錄,添加硬件操作庫和測試用例的環(huán)境變量,打開vim/opt/rootfs/etc/profile文件最后添加:路徑一exportLD_LIBRARY_PATH=/home/applib:$LD_LIBRARY_PATH和路徑二exportPATH=/home/apptest:$PATH,保存退出并重啟開發(fā)板。編寫QT圖形界面,調(diào)用封裝的硬件操作庫來實現(xiàn)開關燈,虛擬機打開qtcreator軟件,搭建qt圖形界面程序的可執(zhí)行文件ehome,在ehome圖形界面添加操作元素,在界面源碼中調(diào)用LED的硬件操作庫實現(xiàn)開燈和關燈,打開mainwindow.h文件,添加LED的頭文件,在開燈和關燈按鈕對應的槽函數(shù)中調(diào)用硬件操作庫實現(xiàn)LED的開和關,ehome圖形界面軟件的編譯,創(chuàng)建ehome可執(zhí)行文件的存放目錄,最后在開發(fā)板測試/home/appbin/ehome-qws。5.2實現(xiàn)DS18B20的溫度顯示監(jiān)測室內(nèi)溫度:溫度傳感器,也同樣需要進行選型。從硬件接口,通信方式:UART接口,1-wire接口,I2C接口等,TPAD選擇的1-wire(一線式)接口,芯片型號DS18B20。掌控一線式串行總線(1-wire)特性,DS18B20采用的就是一線式串行總線,這根數(shù)據(jù)線上可以掛接多個外設[13]。閱讀DS18B20的芯片手冊,掌控基本特性,DS18B20訪問三步驟:初始化,CPU發(fā)送ROM命令,CPU發(fā)送功能性命令,DS18B20內(nèi)部基本了一個64bit的ROM(只讀存儲器),存儲每一個DS18B20芯片對應的唯一的序列碼,類似I2C外設的設備地址。DS18B20內(nèi)部集成了9字節(jié)的SRAM(片內(nèi)寄存器):byte0:保存溫度值的低位,byte1:保存溫度值的高位,溫度值(二進制)=byte1<<8|byte0。如果僅僅是獲取溫度值(二進制),只需關注byte0和byte1對應的內(nèi)存,實際溫度值=溫度值(二進制)*0.0625=(byte1<<8|byte0)*0.0625。5.2.1編寫DS18B20設備驅(qū)動程序創(chuàng)建驅(qū)動源碼存放目錄,ds18b20_drv.c驅(qū)動和ds18b20_test.c測試程序閱讀和運行參考驅(qū)動:make,arm-linux-gcc-ods18b20_testds18b20_test.c.拷貝cp*.kods18b20_test/opt/rootfs/home/drivers;創(chuàng)建驅(qū)動文件:mkdir/opt/project/drivers/ds18b20,進入cd/opt/project/drivers/ds18b20/,vimds18b20_drv.c,vimMakefile,寫完驅(qū)動和腳本之后編譯make,拷貝到根文件cpds18b20_drv.ko/opt/rootfs/home/。5.2.2編寫硬件操作庫函數(shù)mkdir/opt/project/hwlib/ds18b20,cd/opt/project/hwlib/ds18b20,vimds18b20.h,vimds18b20.c,vimds18b20lib_test.c,編譯溫度函數(shù)的方式arm-linux-gcc-shared-fpic-olibds18b20.sods18b20.c和arm-linux-gcc-ods18b20lib_testds18b20lib_test.c-L.-lds18b編寫ehome圖形界面軟件,添加溫度顯示利用qtcreator打開ehome工程,打開mainwindow.ui文件,添加溫度顯示元素,當前室內(nèi)溫度:25攝氏度。打開mainwindow.h文件添加#include"ds18b20.h"在類中添加成員:intds18b20_fd,利用定時器每隔1秒讀取溫度:QTimer*timer,在類中添加定時器超時對應的槽函數(shù)。打開mainwindow.cpp文件,構(gòu)造函數(shù)中添加:ds18b20_fd=ds18b20_open();在定時器的超時以后對應的槽函數(shù)中調(diào)用庫函數(shù)讀溫度并顯示structds18b20_cmddata,ds18b20_read(ds18b20_fd,&data);data.temp就是讀取的溫度值,數(shù)據(jù)類型為float需要將float轉(zhuǎn)換QString在QLabel形式,用QString::number,將光標移動到QString上,qtcreator按F1能夠查看類的幫助。修改工程文件添加后保存退出INCLUDEPATH+=/opt/project/hwlib/ds18b20,LIBS+=-L/opt/project/hwlib/ds18b20-lds18b20,根據(jù)工程文件重新生成Makefile,/opt/project/qt/bin/qmake,編譯Make,cpehome/opt/rootfs/home/appbin。如圖5.1所示,為用浮點數(shù)顯示溫度并用曲線表示溫度隨曲線變化的界面。圖5.1溫度顯示界面5.3在線升級通過ehome圖形界面實現(xiàn)軟件的在線升級,以升級zImage為例,利用U盤,將新的zImage放到U盤上,將U盤插入開發(fā)板,點擊ehome升級按鈕,即可完成對zImage升級工作。TPAD的linux系統(tǒng)如何識別U盤,TPAD的linux系統(tǒng)在運行的情況下(不是在uboot),如何去對Nand進行擦除和寫入數(shù)據(jù)和ehome圖形界面只需要對Nand進行擦和寫入數(shù)據(jù)即可。5.3.1升級方案(1)網(wǎng)絡升級:將升級的軟件包放在某個服務器上,客戶端(下位機)在升級時只需連接服務器,從服務器上下載要升級的軟件包,最后將軟件包重新燒寫到NandFlash上,最后重啟即可。(2)U盤升級:將升級的軟件包從某個服務器上下載到U盤上,將U盤插入到TPAD,TPAD對U盤進行識別,一旦識別成功,U盤中的文件即可訪問,最后對Nand進行擦和寫入即可,這里采用U盤升級這種方案。5.3.2TPAD的linux系統(tǒng)識別U盤TPAD的linux系統(tǒng)識別U盤的過程,TPAD上手動玩U盤。方案一:插入U盤到TPAD,觀察U盤的設備文件sda1/sdb1/sdc1。方案二:手動掛接U盤到某個目錄下mount-tvfat/dev/sda1/mnt,掛接U盤sda1到/mnt目錄,并且訪問U盤文件指定的文件統(tǒng)類型為fat32,結(jié)果:將來訪問mnt目錄即使在訪問U盤,進去后cd/mnt,U盤不再使用時,要卸載:cd/退出U盤目錄umount/mnt。只需在根文件系統(tǒng)rootfs添加相應的配置文件即可,插入U盤如何自動掛接U盤和拔出U盤自動卸載,從ftp下載U盤自動掛接和卸載的配置文件。U盤插入執(zhí)行:sd[a-z][0-9]0:0666@/home/usb/usb_insert.sh/dev/$MDEVU盤拔出執(zhí)行:sd[a-z]0:0666$/home/usb/usb_remove.sh。給根文件系統(tǒng)添加腳本mkdir/opt/rootfs/home/usb和mkdir/opt/rootfs/mnt/usb,最后拷貝cp*.sh/opt/rootfs/home/usb并重啟開發(fā)板。插入U盤以后,驗證:執(zhí)行mount即可,查看一下信息:"/dev/sda1on/mnt/usbtypevfat"如果有以上信息,表明掛接成功,拔出U盤,驗證。繼續(xù)執(zhí)行mount,查看,"/dev/sda1on/mnt/usbtypevfat",如果沒有以上信息,說明卸載成功。5.3.3TPAD在linux系統(tǒng)擦和寫Nand 利用Nand相應的工具(flash_erase:擦flash,nandwrite:寫flash,nanddump:讀flash),獲取工具對應的源碼(開源軟件)并對源碼進行交叉編譯mkdir/opt/project/mtd,cpmtd-utils-mtd-utils.tar.bz2/opt/project/mtdcd/opt/project/mtd,tar-xvfmtd-utils-mtd-utils.tar.bz2,cdmtd-utils-mtd-utils。編譯make,已經(jīng)指定了交叉編譯器arm-linux-,結(jié)果生成arm-linux目錄,這時候?qū)lash_erase,nandwrite和nanddump拷貝到/opt/rootfs/sbin/,至此開發(fā)板的rootfs已經(jīng)部署了nand相應的操作命令。5.3.4升級zImage ehome圖形界面添加升級按鈕,用戶通過點擊升級按鈕來升級zImage。首先打開mainwindow.ui文件添加一個QPushButton升級按鈕,點擊右鍵,"轉(zhuǎn)到槽",自動添加一個槽函數(shù);然后打開mainwindow.h文件添加#include"update.h"。打開mainwindow.cpp文件在按鈕的槽函數(shù)中調(diào)用庫函數(shù),完成升級并修改工程文件,重新生成Makefile,/opt/project/qt/bin/qmake,make編譯后拷貝cpehome/opt/rootfs/home/appbin/;最后將U盤插入TPAD,/home/appbin/ehome-qws執(zhí)行程序,點開二級界面進行升級。5.4.ehome添加MP3播放器功能madplay是一款MP3播放器開源軟件,但是僅僅通過命令行去啟動和控制,不帶圖形界面進行控制,ehome主要是給madplay添加圖形界面(前段控制),移植源碼包:project.rar/madplay.rar。madplay和ehome通信采用UDP,madplay作為服務器端,ehome作為客戶端。給madplay添加前段圖形界面操作,明確tpad將來運行兩個進程madplay播放器(無操作界面)和ehome(有操作界面),明確madplay之前采用鍵盤控制改造到成通過ehome圖形界面控制,然后改造madplay源碼,添加服務器相關的實現(xiàn)代碼。如圖5.2所示,音樂播放器二級界面。圖5.2音樂播放器界面5.5附加功能(1)計算器(2)貪吃蛇游戲和2048游戲移植(3)登陸界面和動畫界面如圖5.3所示,智能家居所有軟件文件。圖5.3智能家居軟件文件6系統(tǒng)的調(diào)試與測試6.1集成測試簡介集成測試環(huán)境系統(tǒng)是一個面向嵌入式軟件的新一代測試工具,具有完全面向測試過程,重在觀察測試過程中的數(shù)據(jù)變化情況;帶有一定的調(diào)試和診斷功能;保存海量過程數(shù)據(jù),能夠為事故分析提供數(shù)據(jù)依據(jù)。集成測試環(huán)境系統(tǒng)在繼承了傳統(tǒng)白盒測試工具的特點,而且具備更有效的新一代測試工具的特點;加強測試主要過程為主,將測試過程所得到的數(shù)據(jù)作為使用者進行測試分析的核心依據(jù),回放的數(shù)據(jù)采用海量的數(shù)據(jù)存儲技術,為用戶提供強大的、直觀的程序運行回放工具,從而能夠全程記錄整個程序運行全過程。同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論