版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1頁共33頁基于LINUX系統(tǒng)的視頻點(diǎn)播系統(tǒng)設(shè)計目錄TOC\o"1-3"\h\u130461緒論 2122821.1研究背景及意義 2112421.2國內(nèi)外發(fā)展及研究現(xiàn)狀 2276071.3本文主要內(nèi)容 4109492整體方案設(shè)計 5256082.1系統(tǒng)概述 5162682.2方案設(shè)計 668582.3方案論證 7298623硬件電路設(shè)計 7177893.1硬件概述 751563.2控制系統(tǒng) 939343.3耳機(jī)麥克風(fēng)電路設(shè)計 10102594軟件程序設(shè)計 12161254.1系統(tǒng)基本框架 1257804.2系統(tǒng)開發(fā)工具 13154884.3圖片查看模塊 17326614.4音樂播放模塊 1799774.5視頻播放模塊 20290154.6服務(wù)器圖片播放模塊 21228604.7SD卡數(shù)據(jù)獲取 22292284.8主界面程序模塊 238995系統(tǒng)整機(jī)調(diào)試 244363結(jié)論 31摘要Linux系統(tǒng)具備穩(wěn)定性和高效性、低配置要求、高安全性、支持多線程和多CPU操作等優(yōu)點(diǎn)。計算機(jī)科學(xué)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展,視頻點(diǎn)播技術(shù)以其良好的人機(jī)交互和傳輸技術(shù),在教育、娛樂等行業(yè)具有廣闊的應(yīng)用前景。本視頻點(diǎn)播系統(tǒng)基于LINUX系統(tǒng)、Mplayer軟件,QT操作框架,Apache服務(wù)器,CRT工具構(gòu)成,硬件方面使用GEC6818開發(fā)板,通過開發(fā)板的AT070TN92觸摸屏實現(xiàn)本地視頻的播放和切換、圖片的切換,音樂的播放,連接服務(wù)器播放視頻,使用系統(tǒng)函數(shù)將播放界面進(jìn)行優(yōu)化,以實現(xiàn)界面美觀,操作簡單。視頻點(diǎn)播系統(tǒng)的出現(xiàn)來自于人們生活水平的提高以及科技的進(jìn)步,在這個節(jié)奏快的現(xiàn)代生活中,更多人都喜歡自由播放適合自己需求的節(jié)目。視頻點(diǎn)播系統(tǒng)符合現(xiàn)代人的生活需求。關(guān)鍵詞:QT操作框架;Linux系統(tǒng);Apache服務(wù)器;GEC6818開發(fā)板1緒論1.1研究背景及意義隨著時代進(jìn)步,人類對于精神生活的要求日益提高,從最初通過報紙和書籍記錄了過去主要事件的歷史;再到后來收音機(jī)的廣泛應(yīng)用,使得人們通過收聽便可了解國際時事;1939年美國推出第一臺黑白電視,就此人們既能在收聽的同時也了解現(xiàn)場畫面,1946年第一部計算機(jī)位于美國誕生,它的存在促進(jìn)了人類信息的保存和傳輸走向繁榮階段。到目前為止,隨著計算機(jī)和互聯(lián)網(wǎng)的不斷更新和進(jìn)一步發(fā)展?;ヂ?lián)網(wǎng)幾乎每一時刻上都有著大量信息再進(jìn)行傳輸,人們將需要的信息存儲或記錄到內(nèi)存中,而記錄信息的方式發(fā)生了改變,在記錄某些歷史時刻的新聞和一些具有紀(jì)念意義的信息時,相較于文字或者圖片來說,是視頻的形式來表達(dá)更具體。隨著科學(xué)技術(shù)的進(jìn)步,在進(jìn)行重要儀式和經(jīng)歷重要時刻時,很少會在記錄和保存時使用照片作為紀(jì)念品。取而代之的是使用手機(jī)或者錄像機(jī)進(jìn)行視頻錄制。隨著生活水平的提高,人們的精神生活也在提高。為此,人們也開始制作視頻來滿足自己的精神生活,比如拍下身邊一些有趣的事、用于交流的短片、學(xué)習(xí)的視頻教程、玩家們制作的游戲、電視、電影精彩片段剪輯等,將這些視頻上傳到互聯(lián)網(wǎng)網(wǎng)站上,提供給不同年齡段的人觀看。眾所周知,現(xiàn)在當(dāng)人們想查找自己想要觀看的視頻,只需要登錄視頻上傳網(wǎng)站,就能根據(jù)自己的需求對視頻進(jìn)行檢索,也可以上傳自己制作的視頻,對視頻進(jìn)行管理。當(dāng)視頻不方便與別人共享,還可以對視頻進(jìn)行加密或刪除。而本課題所作的視頻點(diǎn)播則是基于Linux系統(tǒng),通過Apache服務(wù)器進(jìn)行的視頻點(diǎn)播。1.2國內(nèi)外發(fā)展及研究現(xiàn)狀在2006年,新媒體就是最熱門的詞匯之一。應(yīng)用高新科學(xué)技術(shù)、數(shù)字技術(shù),對傳統(tǒng)媒體的基礎(chǔ)進(jìn)行更新和改造,誕生出新媒體。新媒體和傳統(tǒng)媒體之間,概念和應(yīng)用上沒有本質(zhì)的區(qū)別。新媒體是擁有以概念、技術(shù)、模式以及消費(fèi)上實現(xiàn)質(zhì)的飛躍的媒體,而且它是一種前所未有的媒體形式,也是一種在理念上新穎的媒體。新媒體的視頻點(diǎn)播是其具體實現(xiàn)方式之一,2005年,世界影響力最高的YouTube早就開始正式運(yùn)營,而隨后幾年國內(nèi)的優(yōu)酷網(wǎng),土豆網(wǎng),酷6網(wǎng),56網(wǎng)等在線視頻上傳網(wǎng)站,如同雨后春筍般的出現(xiàn),隨著在線視頻上傳網(wǎng)站這類媒體形式不斷流行于世界各地,對應(yīng)的用戶也越來越多,新媒體發(fā)展至今已經(jīng)日漸成熟,國外的Facebook、ins、twitter、YouTube已經(jīng)發(fā)展成熟,不僅能夠點(diǎn)播視頻,還能觀看直播,成為了國外新媒體的支柱;而國內(nèi)新媒體發(fā)展則是由優(yōu)酷、愛奇藝、騰訊、BiliBili等幾家公司成為了人們觀看視頻的大多選擇,而視頻直播則有斗魚、虎牙兩大上市公司巨頭霸榜,可見視頻上傳播放這種媒體服務(wù)是具有很好的未來,也將成為日后媒體向互聯(lián)網(wǎng)發(fā)展的趨勢。第2頁共33頁新媒體的媒體形式是在新技術(shù)支持系統(tǒng)下呈現(xiàn),例如,數(shù)字報紙、數(shù)字雜志、數(shù)字廣播、移動電視、移動SMS、在線視頻、桌面窗口、數(shù)字電影、數(shù)字電視、移動網(wǎng)絡(luò)、觸摸媒體等。與戶外、報紙、電視、廣播這四種傳統(tǒng)媒體相比,新媒體被形象的稱為“第五種媒體”,由戈爾德馬克率先提出。時代潮流將新媒體產(chǎn)業(yè)引領(lǐng),新媒體產(chǎn)業(yè)在媒體產(chǎn)業(yè)中的比重越來越大,在美國、、日本、韓國等發(fā)達(dá)國家,新媒體產(chǎn)業(yè)收益遠(yuǎn)高于傳統(tǒng)媒體產(chǎn)業(yè)收益。美國在文化和娛樂產(chǎn)業(yè)中應(yīng)用到許多高新技術(shù)。2004年,在美國佛羅里達(dá)州,迪斯尼關(guān)閉了最后一家傳統(tǒng)的手工動畫工作室。2003年,美國的時代雜志認(rèn)為數(shù)字娛樂的信息時代將在2015年進(jìn)入世界。美國的數(shù)字娛樂收入占GDP的一半。數(shù)字技術(shù)的產(chǎn)品將完全凌駕于傳統(tǒng)的娛樂模式之上。在日本,擁有高數(shù)字信息技術(shù)的媒體產(chǎn)業(yè)實現(xiàn)了從傳統(tǒng)媒體產(chǎn)業(yè)向現(xiàn)代媒體產(chǎn)業(yè)的轉(zhuǎn)換。傳統(tǒng)媒體因為新媒體的到來產(chǎn)生了巨大沖擊。自二十世紀(jì)九十年代中期以來,國際新聞業(yè)呈現(xiàn)出明顯的下降趨勢。例如在1990年,英國的《獨(dú)立報》發(fā)行量超過四十萬份,1995年以來,銷售量開始減少,到2003年發(fā)行量只剩下二十萬份報刊。在北美,世界報刊業(yè)最發(fā)達(dá)的地區(qū)也面臨這發(fā)行量也出現(xiàn)不同程度的阻滯或縮水,自2005年以來,北美經(jīng)歷了過去十年中最大的銷售額下降。據(jù)數(shù)據(jù)統(tǒng)計,2001年后,世界新聞業(yè)的網(wǎng)絡(luò)媒體取代了各國報紙百分之十的廣告收入(約十五億美元)。隨著數(shù)字化、互聯(lián)網(wǎng)的迅猛發(fā)展,圖書出版業(yè)也面臨市場縮減的困境。例如日本出版社,在1996年后,日本報刊業(yè)的發(fā)行量持續(xù)下降,到2003年減少了百分之十七。報刊于1999年至2003年間,廣告收入下降了百分之八。1996年,據(jù)日本《出版指標(biāo)年報》的統(tǒng)計,新聞報刊和圖書發(fā)行量最高,為2兆6563億日元,隨后逐年下滑,到2003年跌至2兆2278億日元。媒體產(chǎn)業(yè)的核心競爭力將會是文化內(nèi)容,相對于傳統(tǒng)媒體,新媒體的視頻點(diǎn)播擁有更好的及時性與交互性,在信息共享方面也有著傳統(tǒng)媒體達(dá)不到的海量,在面對不同年齡段的人視頻點(diǎn)播系統(tǒng)還可根據(jù)人們自己的喜好對播放界面進(jìn)行個性化,時播放系統(tǒng)更讓符合自己的要求。隨著科技的發(fā)展,新媒體的視頻點(diǎn)播正隨著互聯(lián)網(wǎng)的發(fā)展而流行起來,自己剪輯視頻也是當(dāng)今互聯(lián)網(wǎng)流行之一,因此,作為新媒體的技術(shù)實現(xiàn)之一,視頻點(diǎn)播系統(tǒng)服務(wù)更接近人們的生活,將會取代傳統(tǒng)媒體成為未來媒體交流的中流砥柱。1.3本文主要內(nèi)容本課題研究基于嵌入式Linux的工作原理,設(shè)計基于GEC6818為內(nèi)核的開發(fā)板。GEC6818開發(fā)板的核心板S5P6818采用28nm制作工藝,內(nèi)置高性能八核ARMCortex-A53處理架構(gòu),在多媒體性能上,它幾乎支持全格式視頻解析,以及采用七寸800x400分辨率、LCD型號為AT070TN92D的觸摸顯示屏,通過觸摸屏控制可實現(xiàn)圖片切換、音樂播放、視頻的播放、連接服務(wù)器播放功能。本論文主要研究工作如下: 第3頁共33頁第4頁共33頁1.通過使用Linux的系統(tǒng)函數(shù)來設(shè)計播放界面,在使用系統(tǒng)函數(shù)將圖片放在固定坐標(biāo)軸,并設(shè)置好分辨率,背景圖片與顯示屏大小一致。本地視頻播放、圖片切換、音樂播放的功能則需先使用CRT工具或SD卡預(yù)先下載,在通過系統(tǒng)函數(shù)獲取觸摸屏位置進(jìn)行相應(yīng)功能的展示。2.在構(gòu)建服務(wù)器時,QT跨平臺C++應(yīng)用開發(fā)框架,不僅可以開發(fā)GUI程序,還可以用于開發(fā)非GUI程序,比如服務(wù)器等。Qt具有優(yōu)秀的跨平臺特性,而且還是面向?qū)ο?。QT不僅具有良好的封裝機(jī)制、而且還具有優(yōu)秀的模塊化程度,并且不無任何費(fèi)用,使得開發(fā)服務(wù)器簡單方便。3.Apache服務(wù)器相對于其他服務(wù)器而言,有著優(yōu)秀的跨平臺、可靠的安全性被廣泛使用,因此Apache服務(wù)器是最熱門的服務(wù)軟件之一,它可以迅速、可靠的其編譯到服務(wù)器中,它的跨平臺性與QT框架相符合,并且Apache服務(wù)器,其網(wǎng)頁服務(wù)器的所有代碼均為開放碼,在許多計算機(jī)操縱系統(tǒng)中均能實現(xiàn)操作,因此本系統(tǒng)使用QT框架來對Apache服務(wù)器進(jìn)行編程,設(shè)計一個能進(jìn)行視頻播放,音樂播放的視頻點(diǎn)播服務(wù)器,最后通過實驗進(jìn)行驗證。
2整體方案設(shè)計2.1系統(tǒng)概述目前嵌入式和互聯(lián)網(wǎng)正在飛速發(fā)展,在21世紀(jì)這個信息時代、計算機(jī)時代和網(wǎng)絡(luò)的時代。計算機(jī)和互聯(lián)網(wǎng)的應(yīng)用程序可以快速擴(kuò)展到所有產(chǎn)業(yè)??梢哉f在數(shù)字時代,所有種類的新技術(shù)、新概念、新的消費(fèi)模式都對企業(yè)的經(jīng)營與發(fā)展產(chǎn)生了很大的影響,嵌入式多媒體也在隨著科技水平的不斷提高而改變。原先的多媒體大多都是UI操作設(shè)置到程序內(nèi)部。高度和程序合在一起,一但需要修改相關(guān)的功能,則需要牽扯到需要代碼的修改,并且如此設(shè)計的嵌入式多媒體,也存在著眾多的問題,如運(yùn)行效率不高,界面對應(yīng)的問題眾多。因此本系統(tǒng)選用了linux開源系統(tǒng)設(shè)計了一個多媒體。并通過QT進(jìn)行程序的編寫,用于方便在各大平臺的移植。嵌入式多媒體應(yīng)用非常廣泛,常出現(xiàn)在車載,MP5,影視,商場,廣告站臺等地方。不同應(yīng)用使用的技術(shù)不盡相同,如有使用WINCE,EMWIN,LABVIEW,MFC,QT等。使用的操作系統(tǒng)也有多種,如windows,Linux,mac,安卓等。本系統(tǒng)需要完成播放視頻功能,圖片播放功能,SD卡數(shù)據(jù)讀取,音頻播放,服務(wù)器圖片播放等。因此需要設(shè)備具有顯示模塊,SD卡讀取模塊,耳麥模塊,以及網(wǎng)絡(luò)模塊等。具體的功能點(diǎn)如圖2-1所示:1.尋找SD卡中固定位置相關(guān)的視頻,圖片,音頻等。2.程序運(yùn)行后可以播放視頻,圖片,音頻等功能的隨意切換。3.實現(xiàn)觸屏功能。4.實現(xiàn)網(wǎng)絡(luò)播放服務(wù)器圖片。具體實現(xiàn)功能如下圖2-1所示: 第5頁共33頁圖2-1整體系統(tǒng)概述 第5頁共33頁 第5頁共32頁第6頁共33頁特色:本課題采用相對高端的處理器(GEC6818)作為系統(tǒng)的主控芯片,使用國外開源的Linux操作系統(tǒng),使用主流的操作系統(tǒng)作為整個系統(tǒng)的控制系統(tǒng),使用QT作為系統(tǒng)的控制主界面,用于實現(xiàn)多功能并發(fā)運(yùn)行。2.2方案設(shè)計為了實現(xiàn)相應(yīng)的功能,需要從硬件選型和軟件設(shè)計兩方面考慮。首先需要支持觸摸和LCD顯示,需要使用的LCD觸摸屏幕,為了能夠滿足視頻播放將要選用800*480規(guī)格的LCD屏幕,方便視頻的顯示。要想驅(qū)動這一類的設(shè)備,芯片主頻要相對較高,如此響應(yīng)速度更快。本系統(tǒng)選用了三星研發(fā)的S5P6818芯片作為主控芯片。如此可以完全驅(qū)動800*480規(guī)格的LCD。為了實現(xiàn)網(wǎng)絡(luò)連接需要使用網(wǎng)卡用于網(wǎng)絡(luò)通信,本系統(tǒng)將使用DM9000芯片作為網(wǎng)卡,該芯片目前在市場上使用較多,因此比較穩(wěn)定。由于數(shù)據(jù)存儲在SD中,因此需要使用更好的SD卡,避免SD影響程序運(yùn)行卡頓。硬件選型具體如下表所示:表2-1硬件型號序號硬件型號1主控:SVP68182LCD:AT070TN923網(wǎng)卡:DM90004SD卡閃迪5聲卡:ALC5621軟件部分,為了實現(xiàn)程序的高度移植性,便于移植到各個類平臺運(yùn)行,本系統(tǒng)使用QT作為開發(fā)軟件,在Linux下進(jìn)行運(yùn)行測試。使用Mplayer作為音視頻播放程序,并通過QT自帶的QProcess進(jìn)行調(diào)用。2.3方案論證為了確定方案的可行性,以及開發(fā)周期的評估,本系統(tǒng)在開發(fā)前將對硬件和軟件進(jìn)行技術(shù)評估,目前硬件選型較為接近的是GEC6818開發(fā)板,上述需要的硬件在該設(shè)備中都能找到。而在實現(xiàn)的技術(shù)難點(diǎn)上,經(jīng)過對資料的查閱,目前羅列的技術(shù)難點(diǎn)如下:1.使用GEC6818的嵌入式開發(fā)板,通過獲取觸摸屏的位置,進(jìn)行相應(yīng)的功能切換,實現(xiàn)SD卡讀取、視頻播放、連接服務(wù)器、播放網(wǎng)絡(luò)圖片。軟件部分:2.通過開源的圖片實現(xiàn)播放界面的設(shè)計。3.通過RET工具實現(xiàn)SD卡的掛載。4.通過獲取觸摸屏位置實現(xiàn)播放功能。針對上述的問題選取方案處理,具體如下:(1)觸摸屏觸摸對應(yīng)的位置實現(xiàn)相應(yīng)的功能,這一問題可以使用QT的按鈕功能完成。(2)SD卡讀取,可以通過linux驅(qū)動掛在進(jìn)行SD卡掛載。進(jìn)而訪問SD卡內(nèi)部的資源。Linux命令如下:mount/dev/mmcblk0p1/mnt/sd。 第7頁共33頁第6頁共32頁(3)視頻播放,為了能夠正常的播放MP4視頻,本系統(tǒng)使用mplayer工具進(jìn)行播放。(4)網(wǎng)絡(luò)圖片的播放則可以在Ubuntu系統(tǒng)下安裝Apache服務(wù)器,在服務(wù)器對應(yīng)的文件位置存放圖片,通過開發(fā)板進(jìn)行訪問。(5)播放界面的設(shè)計則可以通過QT的UI設(shè)計者界面進(jìn)行設(shè)計。3硬件電路設(shè)計3.1硬件概述為了能夠支持Linux系統(tǒng)的運(yùn)行,對CPU的要求較高,使用普通的STM32等相關(guān)的MUC不適合跑Linux系統(tǒng)。因此CPU最好較高于ARM9架構(gòu)。并且QT的版本不應(yīng)過低,使用QT4雖然能夠完成開發(fā),但是由于技術(shù)較為舊,離目前主流的QT版本開發(fā)有著較遠(yuǎn)的差距,因此開發(fā)的程序并不能保存太長的時間。因此本系統(tǒng)需要能夠運(yùn)行QT5。本系統(tǒng)為了實現(xiàn)視頻顯示,音頻播放,觸摸功能,以及網(wǎng)絡(luò)功能,因此需要一個支持這些功能的開發(fā)板,具體使用的GEC6818開發(fā)板。GEC6818開發(fā)平臺,不僅支持三大操作系統(tǒng),而且具備完整的教學(xué)資源和優(yōu)秀的教學(xué)內(nèi)容,包括:ARM微處理器系統(tǒng)驅(qū)動的實驗、嵌入式實時操作系統(tǒng)Linux開發(fā)、嵌入式Android系統(tǒng)開發(fā)、嵌入式Android應(yīng)用開發(fā)、嵌入式系統(tǒng)項目實戰(zhàn)開發(fā)等內(nèi)容。具體如下3-1所示:。圖3-1硬件整體板塊該開發(fā)板由6818核心板作為主控,搭載了512Mbyte的RAM,而對應(yīng)的底板將相關(guān)的串口引出來了,方便使用超級終端等軟件進(jìn)行指令控制,以及軟件調(diào)試等。并且將SD卡也通過SD卡槽引出,方便保存待播放的視頻,音頻,圖片等,除此之外還有網(wǎng)絡(luò)水晶頭接口,耳機(jī)接口,以及LCD接口等。足于滿足本系統(tǒng)的功能需求。其具體參數(shù)如下表所示:表3-1開發(fā)板相關(guān)參數(shù)參數(shù)詳細(xì)介紹上市時間2014制作工藝28nmCPU主頻1.4G+封裝尺寸0.65mm引腳間距,17*17mm2513-FCBGA封裝CPU架構(gòu)CPU架構(gòu)緩存容量32KB*4I/D緩存,1MB二級緩存DDR3接口單通道32位數(shù)據(jù)總線,高達(dá)800MHz工作頻率多媒體解碼H.263,H.264,MPEG1,MPEG2,MPEG4,VC1,VP8,Theora,AVS,RV8/9/10,MJPEG多媒體編碼H.263,H.264,MPEG4,MJPEG顯示接口RGB,MIPI,LVDS第8頁共33頁3.2控制系統(tǒng)(1)主控選型系統(tǒng)通過S5P6818作為主控芯片,本芯片采用的是Cortex-A53(8核)的CPU架構(gòu)。采用的28nm工藝制程。擁有者最高主頻超1.4GHZ。管腳電平為3.3V。它可以滿足大部分嵌入式產(chǎn)品的需求。與其他芯片相比,它具有更強(qiáng)的處理能力。S5P6818核心板PCB板,其采用10-層金沉積工藝設(shè)計,不僅具有良好電氣特性、抗干擾特性的,工作時還有優(yōu)秀的穩(wěn)定性。核心板板載,有著足以勝任S5P6818的PMUAXP228,帶庫侖計的充電管理,集成千兆以太網(wǎng)的同時支持S5P4418和S5P6818正常工作,可以廣泛應(yīng)用于MID,POS,PDA,PND,智能家居,手機(jī),車機(jī),學(xué)習(xí)機(jī),游戲機(jī)以及其他各種工控領(lǐng)域。S5P6818主控芯片,內(nèi)置高性能八核ARMCortex-A53處理器架構(gòu)的同時采用28nm制作工藝,并且多媒體性能上,它支持幾乎所有格式視頻解碼,在LCD控制器上,芯片板載LVDS、RGB、MIPI三路顯示控制接口,顯示分辨率可以高達(dá)2048*1280@60Hz。同時,并且內(nèi)部集成千兆以太網(wǎng)控制器。具體如下圖3-3所示紅色框圖就是S5P6818:第8頁共32頁圖3-2主控芯片S5P6818 第9頁共33頁第8頁共32頁 第9頁共33頁(2)LCD顯示屏部分本系統(tǒng)選用的屏幕為7寸的LCD屏幕,型號為AT070TN92,LCD本身接收的信號是TTL信號,即相關(guān)的管腳與CPU管腳相連直接通信,LCD內(nèi)部會進(jìn)行ADC轉(zhuǎn)化,將CPU發(fā)送的數(shù)字信號轉(zhuǎn)換為模擬信號,進(jìn)而實現(xiàn)圖像的顯示。由于LCD屏幕為開發(fā)板自帶,所以無需調(diào)試即可使用。不僅如此,觸摸屏與LCD是合并在一起的,分布在LCD屏幕上面,通過IIC接口與CPU進(jìn)行通信。這種接口有多種工作方式如主機(jī)發(fā)送器,主機(jī)接收器,從機(jī)發(fā)送器等。為了能過保證設(shè)備之間的通信正常,一邊會加上上拉電阻,保證數(shù)據(jù)的穩(wěn)定性。具體如下圖3-3所示:圖3-3LCD顯示屏 第9頁共32頁第10頁共33頁 第9頁共33頁第10頁共33頁3.3耳機(jī)麥克風(fēng)電路設(shè)計聲卡選用的是ALC5621,該芯片通過IIC進(jìn)行指令設(shè)計,使用IIS進(jìn)行音頻傳輸。在設(shè)備上電后會通過IIC發(fā)送相關(guān)寄存器設(shè)置,從而達(dá)到滿足應(yīng)用需求的聲卡工作方式,在播放聲音的時候,CPU將對應(yīng)的音頻數(shù)據(jù)通過IIS協(xié)議傳輸給該聲卡芯片,聲卡芯片接收到對應(yīng)的數(shù)字信息后,再進(jìn)行AD轉(zhuǎn)換,進(jìn)而轉(zhuǎn)換為模擬信號從喇叭管腳接入的喇叭發(fā)出。在IIC數(shù)據(jù)調(diào)試的時候可以通過邏輯分析儀進(jìn)行電平信號的抓取,用于確定IIC功能正常。I2C協(xié)議最早是由飛利浦公司開發(fā)的一種簡單,雙向二線制同步串行總線,其通信協(xié)議如下:圖3-4IIC時序圖I2C協(xié)議主要由開始信號,停止信號,應(yīng)答信號,讀寫信號等四個操作構(gòu)成,其開始信號如上圖START,在SCL為高電平期間將SDA拉為低電平,這樣則相當(dāng)于在總線上發(fā)送了一個開始信號;其停止信號如上圖STOP,當(dāng)時鐘線SCL保持高電平期間將數(shù)據(jù)線SDA由低電平拉為高電平,這樣則相當(dāng)于在I2C總線上發(fā)送了一個停止信號;應(yīng)答信號如上圖ACK,當(dāng)主機(jī)發(fā)送開始信號后,第9個時鐘周期則為ACK信號的時鐘周期,此時從機(jī)將SDA設(shè)置為高或者低電平,就相當(dāng)于發(fā)送了一個ACK應(yīng)答信號,一般回復(fù)低電平則代表接受正確,回應(yīng)高電平則代表從機(jī)無響應(yīng),也可以看出,I2C總線上每傳輸一個字節(jié),即8個Bit數(shù)據(jù),就會產(chǎn)生一個應(yīng)答信號;讀寫信號如上圖R/W,當(dāng)主機(jī)發(fā)送開始信號時,第一個字節(jié)數(shù)據(jù)必須是從7比特的地址比特再加一位讀寫位,總共八個Bit,一個字節(jié),當(dāng)讀寫位讀取為高電平時,主機(jī)表示讀取操作,當(dāng)讀寫位讀取為低電平時,主機(jī)表示寫入操作。經(jīng)過以上幾個步驟,主機(jī)與從機(jī)之間就能進(jìn)行通信,一般一次通信為一個字節(jié),有些I2C設(shè)備支持PAGE通信,這就要看具體的數(shù)據(jù)手冊了。理解了I2C協(xié)議,就可以很方便的操作該三軸加速度傳感器,該傳感器的初始化步驟為: 第11頁共33頁第10頁共32頁第一步:上電;第二步:等待一到兩毫秒。第三步:初始化命令序列。第四部:主機(jī)開始讀取數(shù)據(jù),寫入命令。具體電路圖如下圖3-5所示:圖3-5傳感器電路圖第12頁共33頁4軟件程序設(shè)計4.1系統(tǒng)基本框架硬件平臺完善后,便需要進(jìn)行軟件的開發(fā),為了能夠更好地設(shè)計軟件,需要在軟件設(shè)計之前,搭建軟件開發(fā)平臺。如需要使用的QT開發(fā)IDE,開發(fā)板相關(guān)的交叉編譯工具鏈,Ubuntu操作系統(tǒng)。以及網(wǎng)絡(luò)配置,至少需要網(wǎng)絡(luò)能夠ping通虛擬機(jī)。還需要想好軟件架構(gòu),以及開發(fā)軟件的風(fēng)險點(diǎn)等。本系統(tǒng)是運(yùn)行于Linux系統(tǒng)上的一個應(yīng)用程序,通過QT5進(jìn)行開發(fā)的,具體包含四個子功能,分別是視頻播放,圖片播放,音頻播放,網(wǎng)絡(luò)圖片播放等功能。具體框架為,通過Linux系統(tǒng)實現(xiàn)的調(diào)度系統(tǒng),線程和硬件驅(qū)動,用于控制硬件,在Linux系統(tǒng)上面開發(fā)QT程序,分為四個子功能,每個子功能都設(shè)計成一個類。用于區(qū)分功對應(yīng)的子功能,再由不同的Widget界面上設(shè)置不同的控件,其中,視頻播放程序和音頻播放程序擁有快進(jìn)、后退、暫停、進(jìn)度槽、播放視頻選擇五個控件;服務(wù)器程序擁有訪問服務(wù)器圖片一個控件、圖片查看程序擁有上一張、下一張和回到主菜單三個控件。具體程序基本框架如下圖4-1所示: 第11頁共32頁第12頁共33頁圖4-1系統(tǒng)基本框圖 第13頁共33頁第12頁共32頁4.2系統(tǒng)開發(fā)工具本系統(tǒng)采用QT進(jìn)行播放界面設(shè)計,因為Qt常常被用作GUI庫來開發(fā)圖形界面應(yīng)用,但它不僅能設(shè)計一個美觀的界面(包括控制、布局、交互),而且還有很多其他功能,包括多線程、數(shù)據(jù)庫、圖像處理、音頻、視頻處理、網(wǎng)絡(luò)通信、文件操作等許多其他功能。Qt是應(yīng)用開發(fā)的一站式解決方案。使用Qt,就可以無需擔(dān)心其他事項,Qt本身包括更多模塊,并且添加了新模塊和第三方模塊。大多數(shù)應(yīng)用程序都可以使用Qt來實現(xiàn),除了與電腦底部密切結(jié)合的驅(qū)動程序開發(fā)之外。那個不是直接操作系統(tǒng)的功能庫,而是使用硬件提供的編程接口。1997年,QT被用于開發(fā)Linux桌面環(huán)境KDE。取得不錯的成績。并且,為了在Linux環(huán)境中開發(fā)C++GUI程序,把Qt作為了事實上的標(biāo)準(zhǔn)。以下項目是利用QT進(jìn)行開發(fā):WPS、YY語音、Skype、豆瓣、蝦音、淘寶助理、千牛、暴雪,VirtualBox,Opera,咪咕音樂,Google地圖,AdobePhotoshop等。Linux還被廣泛用 第13頁共33頁于家電、工業(yè)管理、軍事電子設(shè)備、通信/網(wǎng)絡(luò)/通信、航空宇宙、汽車電子、醫(yī)療設(shè)備等領(lǐng)域,是嵌入式的主要力量。機(jī)器及其他相關(guān)產(chǎn)業(yè)。Qt支持移動操作系統(tǒng),但由于Android帶有Java和Kotlin。而IOS帶有Objective-C和Swift。所以移動終端QT的市場份額幾乎可以無視??傮w來說,Qt主要用于桌面程序開發(fā)和嵌入式開發(fā)。系統(tǒng)使用的操作系統(tǒng)平臺為Linux開源操作系統(tǒng),為了能夠編譯在開發(fā)板中能夠正常運(yùn)行的QT程序,需要搭建開發(fā)環(huán)境,首先需要搭建ubuntu系統(tǒng),用于安裝Apache服務(wù)器,以及搭建交叉編譯工具鏈,用于編譯可以在開發(fā)板中運(yùn)行的程序。而為了能夠更好地開發(fā),需要使用到VMWARE虛擬機(jī),用于運(yùn)行Ubuntu系統(tǒng)。本系統(tǒng)選用了VMware12版本虛擬機(jī)和16.04版本的Ubuntu系統(tǒng),具體如下所示: 第13頁共32頁第14頁共33頁圖4-2虛擬機(jī)系統(tǒng)QT程序?qū)⒃赨buntu系統(tǒng)中進(jìn)行編譯,需要使用到對應(yīng)的交叉編譯工具鏈。尋找更合適的交叉編譯工具鏈對程序編譯有著重大影響,因為編寫的QT程序需要進(jìn)行編譯生產(chǎn)最終的執(zhí)行文件,所以本系統(tǒng)選用了三星官方推薦的交叉編譯工具鏈arm-2009q3。最終得到的交叉編譯工具鏈如下:圖4-3交叉編譯工具在程序開發(fā)時,開發(fā)板啟動后需要通過輸入命令行命令來與開發(fā)板交互,而默認(rèn)Linux系統(tǒng)支持串口作為交互的通信方式,本系統(tǒng)使用SecureCRT串口終端程序來與開發(fā)板交互,SecureCRT是一款支持SSH(SSH1和SSH2)的終端仿真程序,簡單地說是Windows下登錄UNIX或Linux服務(wù)器主機(jī)的軟件。SecureCRT支持SSH,同時支持Telnet和rlogin協(xié)議,還支持串口連接。SecureCRT的SSH協(xié)議支持DES,3DES和RC4密碼和密碼與RSA鑒別??梢杂胹sh來連接linux服務(wù)器和使用串口功能打印一些信息。而在通信之前需要對其做一番連接配置。點(diǎn)擊快速連接按鈕,協(xié)議選擇Serial,端口選擇對應(yīng)的USB端口號,而波特率、數(shù)據(jù)位、奇偶校驗位、停止位要和開發(fā)板串口波特率一致。由于使用數(shù)據(jù)流,因此右邊數(shù)據(jù)流全部不能選擇,否則會出現(xiàn)終端無數(shù)據(jù)現(xiàn)象。如REF_Ref21801\h圖4-4所示:圖4-4串口參數(shù)該軟件默認(rèn)背景是白色,可以通過點(diǎn)擊菜單欄中會話選項,選擇其中的外觀便可對字體大小和字體顏色和背景顏色進(jìn)行修改。 第15頁共3頁 第15頁共33頁圖4-5軟件字體顏色修改 第15頁共32頁環(huán)境搭建好之后,便可以開始進(jìn)行QT開發(fā),在GEC6818開發(fā)板上實現(xiàn)對應(yīng)的系統(tǒng)設(shè)計。QTcreator有著詳細(xì)的幫助文檔,同時有著豐富的例程,相較于VS來說,可以運(yùn)行在Linux系統(tǒng)上,完成多個不同操作系統(tǒng)下的QT程序,軟件界面圖如下所示:圖4-6QT框架搭建第16頁共33頁4.3圖片查看模塊該模塊中有三個按鈕控件,分別用來控制播放上一張圖片,下一張圖片,和回到主菜單。每個控件都綁定了被點(diǎn)擊信號的處理槽函數(shù)。用于處理不同的事件。該部分子功能的處理流程為:使用DRI函數(shù)對硬件直接進(jìn)行讀取,它讓應(yīng)用程序快速而有效的訪問圖形函數(shù),再通過設(shè)置文件過濾選擇圖片,獲取圖片名稱,最后將過濾得到的文件保存到列表中。具體操作如下程序所示:
//獲取文件夾中所有的jpeg,png的圖片//設(shè)置文件路徑
//設(shè)置要遍歷的目錄QDirdir(picture_dirpath);
//設(shè)置文件過濾器
QStringListfile_name;
//設(shè)置圖片文件過濾格式
file_name<<"*.png"<<"*.jpg";
//將過濾后的文件名稱存入到all_picture_list;列表中all_picture_list=dir.entryList(file_name,QDir::Files|QDir::Readable,QDir::Name);如此相關(guān)的.png和.jpg便全部存放到all_picture_list中。當(dāng)需要播放某一張的圖片的時候,只需要通過下標(biāo)索引,便能找到對應(yīng)位置的圖片。因此定義變量cnt,通過變量的增減實現(xiàn)圖片的上下翻閱。程序如下:staticintcnt=0;QStringpicture_path=picture_dirpath;picture_path+=all_picture_list[cnt];pic=QPixmap(picture_path);ui->label->setPixmap((pic)); 第17頁共33頁第16頁共32頁4.4音樂播放模塊音頻播放需要使用到mplayer,它相當(dāng)于是一個MP3播放器,將MP3的三種功能:MP3播放,AB復(fù)讀、歌詞同步和編輯全部整合,雖然不是專業(yè)MP3播放軟件,但是其音質(zhì)卻遠(yuǎn)超部分專業(yè)MP3播放軟件,將對應(yīng)文件夾中的所有mp3文件全部保存進(jìn)comboBox中。如此便能實現(xiàn)可視化的音頻選擇。在該部分中一共存在九個控件,分別用于音頻選擇,播放,上一首,下一首,暫停,快進(jìn),后退。為了實現(xiàn)錄音文件的正常播放,還需要使用QT調(diào)用進(jìn)程,具體如下程序所示:current_choose_music=music_ui->music_comboBox->currentText();music_play_path+=current_choose_music;QStringListmyMusic;myMusic<<"-slave"<<"-quiet"<<music_play_path;
music_play->start("D:/linux_share/6818player/mplayer-svn-38109/mplayer.exe",myMusic);通過將選中的combobox中的音頻文件讀出來,拼接成完整的路徑,再調(diào)用mplayer進(jìn)行播放。為了能夠讓進(jìn)度條跟著歌曲的時長進(jìn)行移動。首先需要readyReadStandardOutput信號綁定相應(yīng)的槽函數(shù)。disconnect(music_play,SIGNAL(readyReadStandardOutput()),this,SLOT(dataReceive()));通過mplayer自帶的指令“get_time_length”獲取音頻文件的時長,再轉(zhuǎn)換成對應(yīng)的進(jìn)度條。最終實現(xiàn)音樂播放,進(jìn)度條跟著走。而在實現(xiàn)音頻播放時,為了不讓進(jìn)度條移動,要先停止對readyReadStandardOutput信號的處理。并且需要發(fā)送pause指令暫停音樂播放,具體如下程序:disconnect(music_play,SIGNAL(readyReadStandardOutput()),this,SLOT(dataReceive()));QString
music_pause_cmd="pause\n";
//暫停music_play->write(music_pause_cmd.toUtf8());該部分的程序邏輯如下圖4-7所示: 第17頁共32頁第18頁共33頁圖4-7程序邏輯圖 第19頁共33頁第20頁共33頁4.5視頻播放模塊視頻播放也需要使用到myplayer軟件,為了能夠完成視頻的播放,本系統(tǒng)使用到了多個按鈕控件來完成各種播放功能,使用slider來完成視頻播放的進(jìn)度顯示。為了能夠?qū)⒁曨l運(yùn)行在程序內(nèi)部,而不是獨(dú)立出去的一條進(jìn)程。需要獲取到窗口空間的程序,具體如下程序:audio<<"-slave"<<"-quiet"<<"-wid"<<QString::number(ui->label_2->winId())<<play_command;如此程序會運(yùn)行在具體窗口空間中。本系統(tǒng)支持avi格式的視頻播放,具體信號與槽函數(shù)的處理綁定如下表表4-1槽函數(shù)綁定表信號槽函數(shù)控件控件類型clicked()start_play_clicked()ui->start_playQPushButtonclicked()exitToMain_clicked()ui->exitToMainQPushButtonclicked()go_ahead_clicked()ui->go_aheadQPushButtonclicked()go_back_clicked()ui->go_backQPushButtonclicked()pause_play_clicked()ui->pause_playQPushButtonclicked()over_play_clicked()ui->over_playQPushButtonclicked()video_mute_clicked()ui->video_muteQPushButton具體前進(jìn),后退,暫停,繼續(xù)等mplayer指令表如下:表4-2mplayer指令表指令功能"-wid"控件ID"seek50"快進(jìn),間距為5秒"seek-50"后退,間距為5秒"Pause"暫停/繼續(xù)該部分程序的流程為,在主界面中點(diǎn)擊視頻播放按鍵后,創(chuàng)建對應(yīng)的視頻播放類。該類的構(gòu)造函數(shù)中,會先將對應(yīng)目錄中的文件存儲到QStrintList中,再通過addItems方法將該列表中的文件存入到video_combobox中。當(dāng)用戶選擇對應(yīng)的視頻播放后,便會啟動播放指令,將視頻播放出來。在播放期間控制視頻進(jìn)度條與視頻播放一致。再檢測暫定,繼續(xù),上/下一個視頻播放。4.6服務(wù)器圖片播放模塊服務(wù)器圖片播放,首先需要在Ubuntu中配置Apache服務(wù)器。具體操作步驟如下:Qt訪問Apache服務(wù)器執(zhí)行服務(wù)器上的c/c++程序 第19頁共32頁1.安裝Apache服務(wù)器在ubuntu系統(tǒng)(16.04)安裝apache2服務(wù)器sudoaptinstallapache2查詢服務(wù)器跟目錄gec@ubuntu:/var/www/html$pwd/var/www/html服務(wù)器地址為:8(自己服務(wù)器地址)2.測試在瀏覽器輸入服務(wù)器ip地址圖4-8服務(wù)器IP地址用qt訪問Apache服務(wù)器下載圖把準(zhǔn)備好的圖片拷貝到Apache跟目錄圖4-9圖片拷貝2.為測試服務(wù)器是否可以被訪問,可以在瀏覽器中輸入圖片的地址,圖片地址是和正常的目錄是相似的,只不過是前面的根路徑換成了地址。如下圖IP地址8為具體網(wǎng)絡(luò)地址,在根據(jù)其子目錄下的image中的具體文件名來訪問。這種訪問方式和正常的路徑訪問是一致的。將圖片放置好根目錄后,通過瀏覽器輸入IP地址:8進(jìn)行測試,如圖4-10所示,IP地址后的灰色圖片地址和文件名稱出現(xiàn)后,圖片處于加載狀態(tài),當(dāng)測試成功時圖片名稱會如同圖4-11所示,圖片地址和名稱亮起時,圖片配置成功,如果測試失敗則會進(jìn)入如圖4-8所示: 第21頁共33頁圖4-10瀏覽器測試 第21頁共32頁第20頁共32頁圖4-11服務(wù)器配置成功如此Apache服務(wù)器配置成功。4.7SD卡數(shù)據(jù)獲取GEC6818開發(fā)板SD與設(shè)備通信有兩種方式,分別是SPI方式,以及SDIO方式,其中SDIO方式通信速率更高。本系統(tǒng)使用的就是SDIO通信方式,擁有這兩種通信速率,分別是100Mbps和400KHZ,由于開發(fā)板內(nèi)部已配置好參數(shù),所以在讀取SD卡時只需插入SD卡,在使用Linux系統(tǒng)命令進(jìn)行掛載即可。第22頁共32頁本系統(tǒng)程序運(yùn)行是所需加載的圖片以及視頻,音頻,圖片均是放在SD中目前SD卡的具體結(jié)構(gòu)如下:圖4-12SD卡目錄為了實現(xiàn)SD卡的掛載,在linux系統(tǒng)命令中,對SD卡進(jìn)行掛載。具體掛在命令如下:mount/dev/mmcblk0p1/mnt/sd 第23頁共33頁第22頁共32頁4.8主界面程序模塊該界面主要有五個按鈕和一個label構(gòu)成,其中四個按鈕用于選擇四個子功能界面,另外一個按鈕用于控制程序的關(guān)閉,而label用于顯示是系統(tǒng)時鐘。在構(gòu)造函數(shù)里面先定義一個定時器,用于實現(xiàn)時鐘的改變,通過一秒鐘調(diào)用一次timerUpdate()槽函數(shù),進(jìn)而實現(xiàn)是時間的變化。具體程序如下:QDateTimetime=QDateTime::currentDateTime();
QStringstr=time.toString("yyyy-MM-ddhh:mm:ssdddd");
ui->label->setText(str);而子功能的選擇,則使用的是hide函數(shù)隱藏主功能界面,再通過show函數(shù)顯示其他子功能界面,當(dāng)需要回到主界面時,再使用hide函數(shù)隱藏子功能界面,使用show顯示主功能界面,進(jìn)而實現(xiàn)程序界面的切換。程序退出則可以使用exit完成具體邏輯框圖如下:圖4-13主界面邏輯框圖 第23頁共32頁第24頁共32頁為了使主界面更加有美感,使用QSS進(jìn)行對界面進(jìn)行控制,如四個子界面的按鈕添加北京顏色,主界面改為黑色背景。在程序運(yùn)行時,讀取特定的QSS文件,將文件中的指令設(shè)置與主界面UI對應(yīng)。操作步驟為首先使用QFlefile函數(shù)進(jìn)行文件地址的指定,再通過判斷函數(shù)if對文件是否存在進(jìn)行判斷,如果存在,在以只讀方式和字符串方式進(jìn)行保存先判斷文件是否存在,讀取file數(shù)據(jù),使用setStyleSheet方法進(jìn)行設(shè)置。 第23頁共32頁第24頁共33頁5系統(tǒng)整機(jī)調(diào)試(1)主界面程序調(diào)試程序開發(fā)完后,可能還存在許多的問題,因此,需要多做測試,在每步
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成語考試真題及答案
- bim應(yīng)用案例分析考試題庫及答案
- 疑難病例討論制度題庫(含答案)
- 技術(shù)研發(fā)經(jīng)理招聘筆試題及解答(某世界500強(qiáng)集團(tuán))附答案
- 人文考試試題附答案詳解
- 醫(yī)院感染知識競賽試題(附答案)
- 裝配鉗工高級模擬試題含參考答案
- 2025年主管護(hù)師考試試題與答案
- 保險公估人考試真題題庫及答案
- 廣東初中升學(xué)試題及答案
- 碧桂園資金池管理制度
- 小學(xué)文言文重點(diǎn)字詞解釋梳理
- 交通船閘大修工程質(zhì)量檢驗規(guī)范
- GB/T 2879-2024液壓傳動液壓缸往復(fù)運(yùn)動活塞和活塞桿單向密封圈溝槽的尺寸和公差
- 福建省廈門市2023-2024學(xué)年高二上學(xué)期期末考試英語試題(解析版)
- 高脂血癥性急性胰腺炎教學(xué)查房課件
- 廈門高容納米新材料科技有限公司高容量電池負(fù)極材料項目環(huán)境影響報告
- 部編版語文八年級下冊第6課《被壓扁的沙子》一等獎創(chuàng)新教案
- 當(dāng)代藝術(shù)賞析課件
- GB/T 12789.1-1991核反應(yīng)堆儀表準(zhǔn)則第一部分:一般原則
- GB/T 12719-2021礦區(qū)水文地質(zhì)工程地質(zhì)勘查規(guī)范
評論
0/150
提交評論