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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論