www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]0 引言電子相框作為一種以數(shù)字照片的保存、回放和瀏覽為核心功能的產(chǎn)品,迎合了消費(fèi)者的需求。電子相框結(jié)合液晶顯示技術(shù)、電視技術(shù)、數(shù)字存儲(chǔ)技術(shù),日益成為面向時(shí)尚個(gè)性的數(shù)碼相機(jī)、數(shù)碼攝像的最佳伴侶。隨著核心器

0 引言

電子相框作為一種以數(shù)字照片的保存、回放和瀏覽為核心功能的產(chǎn)品,迎合了消費(fèi)者的需求。電子相框結(jié)合液晶顯示技術(shù)、電視技術(shù)、數(shù)字存儲(chǔ)技術(shù),日益成為面向時(shí)尚個(gè)性的數(shù)碼相機(jī)、數(shù)碼攝像的最佳伴侶。隨著核心器件NandFlash和LCD屏的降價(jià),必將進(jìn)一步刺激電子相框的市場(chǎng)需求。

1 AT76C120處理器簡(jiǎn)介

本設(shè)計(jì)采用Atmel公司的AT76C120體系結(jié)構(gòu)來構(gòu)建應(yīng)用。此架構(gòu)采用ARM7TDMI CPU最大頻率78MHz,支持JPG圖片瀏覽、MP3音頻功能、MPEG視頻功能、可遙控電視功能,USB2.0接口和各類閃存卡的支持等,是一款高性能的數(shù)碼圖像和視頻的處理體系。

2 Atmel-View框架分析

Atmel-View是Atmel公司為AT76C120開發(fā)板定制的應(yīng)用程序,它已提供所有功能的低層次實(shí)現(xiàn),是一套成熟的可擴(kuò)展的Application解決方案。其與Command Shell、底層驅(qū)動(dòng)Lib共同構(gòu)成整個(gè)軟件系統(tǒng)。

Command Shell主要用于動(dòng)態(tài)非編譯功能調(diào)試,在程序運(yùn)行時(shí)直接通過串口進(jìn)行命令操作,這樣大大降低開發(fā)過程的調(diào)試時(shí)間,是便捷有效的輔助開發(fā)手段。

各驅(qū)動(dòng)模塊的API主要由底層驅(qū)動(dòng)Lib 來實(shí)現(xiàn)。Atmel-View的功能實(shí)現(xiàn)主要是基于Lib中API的運(yùn)用和組織。表1列出了Atmel-View中相關(guān)模塊及其功能。

表1 Atmel-View相關(guān)功能模塊

模塊

功能

DCF模塊

提供文件操作相關(guān)功能函數(shù)

Font模塊

作為字庫(kù),以頭文件形式加載

Infrared模塊

提供紅外遙控器控制的相關(guān)功能函數(shù)

Main模塊

系統(tǒng)初始化工作和程序主入口

Menu模塊

菜單系統(tǒng)的實(shí)現(xiàn)

Mp3模塊

提供Mp3播放功能的實(shí)現(xiàn)

Ppt模塊

提供文件夾、文件列表功能的實(shí)現(xiàn)

Setting模塊

對(duì)于各項(xiàng)功能參數(shù)的設(shè)定在此模塊記錄和讀取

Strings模塊

記錄對(duì)應(yīng)于菜單項(xiàng)的各項(xiàng)功能和其他功能的字符串值

View模塊

提供圖片瀏覽、圖片幻燈和視頻播放等功能的實(shí)現(xiàn)

Bmp-icons模塊

以頭文件形式存儲(chǔ)所有圖標(biāo)圖片轉(zhuǎn)換成的對(duì)象

board_sh120ek模塊

卡板初始化驅(qū)動(dòng)相關(guān)

3 功能概述及流程

基于Atmel-View的電子相框應(yīng)用主要提供如下功能:

JPEG圖片瀏覽、JPEG圖片幻燈放映、JPEG縮略圖模式瀏覽、對(duì)各類卡的讀寫支持、MP4視頻放映、MP3背景音樂、MP3播放器、文件和文件夾瀏覽。

在上述功能基礎(chǔ)上需要在UI上加以組織、整合,并面向新的需求進(jìn)行實(shí)現(xiàn)。圖2所示為帶有藍(lán)牙模塊支持的UI功能流程圖,分析了基于Atmel-View的UI過程。流程圖1從電子相框啟動(dòng)開始到各個(gè)功能結(jié)點(diǎn)為止把整個(gè)菜單系統(tǒng)的框架和基本內(nèi)容給勾勒了出來。首先進(jìn)行藍(lán)牙模塊的初始化工作,設(shè)置卡上默認(rèn)文件傳輸位置。隨后,搜索存儲(chǔ)卡中Jpeg文件,開始幻燈放映,放映幻燈期間若有藍(lán)牙傳輸請(qǐng)求則在圖片切換間隙掛起Atmel-View進(jìn)程(防止資源重入沖突),傳輸結(jié)束繼續(xù)放映直至用戶退出播放。之后將正式從Main模塊進(jìn)入菜單系統(tǒng)模塊,啟動(dòng)菜單包含了3個(gè)子菜單:選卡菜單、系統(tǒng)設(shè)置菜單和藍(lán)牙設(shè)置菜單。選卡菜單項(xiàng)包括卡板所支持的所有存儲(chǔ)卡項(xiàng),選擇已插的存儲(chǔ)卡項(xiàng)進(jìn)入下級(jí)功能菜單。功能菜單項(xiàng)提供圖片、Mp3、視頻、文件瀏覽這4項(xiàng)功能。系統(tǒng)設(shè)置菜單主要進(jìn)行全局的配置設(shè)定:語言設(shè)定、幻燈效果設(shè)定、背景音樂(開/關(guān))設(shè)定。藍(lán)牙設(shè)置菜單進(jìn)行藍(lán)牙模塊的設(shè)置和啟用?!伴_/關(guān)”項(xiàng)決定是否啟用藍(lán)牙傳輸; “設(shè)用戶名”項(xiàng)利用軟鍵盤設(shè)置本設(shè)備藍(lán)牙名稱。

流程圖2具體就圖片瀏覽功能模塊進(jìn)行了流程刻畫。存儲(chǔ)卡中有Jpeg圖片,則首先進(jìn)入Thumbnail模式,一頁顯示多幅圖片的縮略圖。期間接受藍(lán)牙傳輸請(qǐng)求并進(jìn)行相應(yīng)處理。然后進(jìn)行全屏圖片瀏覽,手動(dòng)切換圖片。在Thumbnail模式及圖片瀏覽過程可調(diào)出設(shè)置菜單,進(jìn)行幻燈效果、文件操作、文件排序等功能,設(shè)置幻燈切圖間隔和啟動(dòng)幻燈放映也在此菜單項(xiàng)中。

流程圖3簡(jiǎn)要描繪了在菜單(菜單都通過MenuMode來調(diào)用)過程中和藍(lán)牙模塊間的交互方式。在進(jìn)行按鍵響應(yīng)操作流程前,先和藍(lán)牙模塊進(jìn)程間通信,監(jiān)聽藍(lán)牙傳輸請(qǐng)求。若有藍(lán)牙傳輸請(qǐng)求,則提示藍(lán)牙傳輸進(jìn)行中并等待藍(lán)牙文件傳輸(藍(lán)牙傳輸受紅外遙控模塊影響,所以傳輸過程關(guān)閉紅外接收不進(jìn)行按鍵響應(yīng),至傳輸完畢開啟紅外接收)。


 

圖3 帶藍(lán)牙模塊UI功能流程

 

4 Nucleus操作系統(tǒng)的嵌入

Nucleus Plus是美國(guó)源代碼操作系統(tǒng)商ATI公司推出的新一代嵌入式操作系統(tǒng),屬于搶先式實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核, 95%的代碼使用ANSI C編寫,非常便于移植于各種處理器家族。在通訊、國(guó)防、工業(yè)控制、航空/航天、鐵路、網(wǎng)絡(luò)、POS、自動(dòng)化控制、智能家電等領(lǐng)域的廣泛應(yīng)用。

Nucleus Plus通常作為一個(gè)C 庫(kù)文件實(shí)現(xiàn)。實(shí)時(shí)的Nucleus Plus應(yīng)用被鏈接到Nucleus Plus庫(kù)。目標(biāo)文件可以下載到目標(biāo)機(jī),或者放到ROM 里。在一個(gè)典型的目標(biāo)環(huán)境,假設(shè)所有服務(wù)被應(yīng)用,Nucleus Plus指令集的二進(jìn)制映象文件需要大概20K 字節(jié)的內(nèi)存。

總的來說,Nucleus Plus極大的提高了實(shí)時(shí)應(yīng)用程序的開發(fā)工作。這些可以轉(zhuǎn)變成更低的開發(fā)投資和更短的開發(fā)周期。自從Nucleus Plus支持應(yīng)用程序移值到新的處理器系列上以來,應(yīng)用的開發(fā)投資已經(jīng)被保障了。

4.1多任務(wù)系統(tǒng)的實(shí)現(xiàn)

Atmel-View實(shí)質(zhì)上還是一個(gè)單任務(wù)的嵌入式定制系統(tǒng),現(xiàn)有功能的運(yùn)用主要基于串行運(yùn)行。但隨著應(yīng)用的深入功能模塊的擴(kuò)展,單任務(wù)系統(tǒng)逐漸顯得力不從心。

藍(lán)牙模塊的運(yùn)行需要多任務(wù)系統(tǒng)的支持,在藍(lán)牙服務(wù)的開啟狀態(tài)下,需要不斷監(jiān)聽無線請(qǐng)求,在接受到藍(lán)牙傳輸請(qǐng)求后進(jìn)行傳輸處理。使用單任務(wù)方式來支持藍(lán)牙服務(wù)的監(jiān)聽顯然是不合理的,那樣Atmel-View將停止運(yùn)行其功能。

本設(shè)計(jì)使用Nucleus Plus提供系統(tǒng)級(jí)的多任務(wù)調(diào)度,將Atmel-View模塊和藍(lán)牙模塊作為同等的任務(wù)進(jìn)行加載運(yùn)行。選擇Nucleus Plus作為任務(wù)調(diào)度系統(tǒng),在于其易用性、代價(jià)小、嵌入式特性。

4.2 初始化

INT_Initialize 子程序在Nucleus Plus系統(tǒng)中是最先運(yùn)行的。對(duì)大多數(shù)的目標(biāo)環(huán)境,硬件復(fù)位向量必須包含在INT_Initialize 地址中。INT_Initialize 負(fù)責(zé)所有與目標(biāo)硬件相關(guān)的初始化。與目標(biāo)硬件相關(guān)的初始化通常包括設(shè)置不同種類的處理器控制寄存器,中斷向量表,全局的C 數(shù)據(jù)元素,一些Nucleus Plus變量和系統(tǒng)堆棧指針。當(dāng)INT_Initialize 完成,控制轉(zhuǎn)移到高級(jí)Nucleus Plus初始化子程序INC_Initialize上。注意控制不會(huì)返回INT_Initialize。

INC_Initialize 調(diào)用每個(gè)Nucleus Plus組件的初始化子程序。在所有Nucleus Plus初始化完成之后,INC_Initialize 調(diào)用用戶供應(yīng)的初始化子程序Application_Initialize。

Application_Initialize 子程序負(fù)責(zé)定義初始化應(yīng)用環(huán)境。初始化應(yīng)用任務(wù),郵箱,隊(duì)列,管道,信號(hào)量,事件集,內(nèi)存池和其他Nucleus Plus對(duì)象都在子程序中被定義。在Application_Initialize 返回后,INC_Initialize 開始初始化任務(wù)調(diào)度表。

4.3 任務(wù)

任務(wù)就是目的明確的半獨(dú)立程序段。大多數(shù)現(xiàn)代實(shí)時(shí)應(yīng)用都要求多任務(wù)。另外,這些任務(wù)的重要等級(jí)經(jīng)常變化。管理這些競(jìng)爭(zhēng)、實(shí)時(shí)任務(wù)的運(yùn)行是Nucleus Plus的主要目的。每個(gè)任務(wù)都有五種狀態(tài):運(yùn)行、就緒、掛起、中止、完成。

4.4 任務(wù)通信與同步

Nucleus Plus 為通信目的提供郵箱(mailbox),隊(duì)列(queues),管道(pipes)。郵箱,隊(duì)列,管道是獨(dú)立的公共設(shè)備。任務(wù)之間和其他系統(tǒng)設(shè)備之間的聯(lián)系由應(yīng)用程序確定。這些通信設(shè)備之間主要的差別是數(shù)據(jù)通信的類型。在Atmel-View模塊和藍(lán)牙模塊的進(jìn)程間通信方式,這里選擇使用隊(duì)列和信號(hào)量來實(shí)現(xiàn)。

4.4.1 隊(duì)列的應(yīng)用

在菜單系統(tǒng)的應(yīng)用中,需要加入對(duì)藍(lán)牙模塊的支持。除了構(gòu)建藍(lán)牙設(shè)定菜單外,在藍(lán)牙進(jìn)程開啟并實(shí)時(shí)運(yùn)行的狀態(tài)下,需要通過隊(duì)列方式的進(jìn)程間通信來獲取藍(lán)牙進(jìn)程的傳輸請(qǐng)求狀況。當(dāng)傳輸請(qǐng)求發(fā)生后,菜單系統(tǒng)將及時(shí)進(jìn)行反應(yīng),提示用戶當(dāng)前處于藍(lán)牙傳輸過程并且程序阻塞于此。當(dāng)傳輸結(jié)束后,同樣通過隊(duì)列消息來得到通知,繼續(xù)菜單系統(tǒng)的程序邏輯。

       藍(lán)牙進(jìn)程進(jìn)行藍(lán)牙傳輸服務(wù)的監(jiān)控工作,一旦外部傳輸請(qǐng)求發(fā)生,藍(lán)牙進(jìn)程將通過調(diào)用BTUI_UpdateResponse函數(shù)來通知Atmel-View任務(wù),并開始數(shù)據(jù)接收寫入工作。此函數(shù)主要是作為藍(lán)牙任務(wù)端響應(yīng)藍(lán)牙傳輸相關(guān)事件,進(jìn)而與Atmel-View進(jìn)行及時(shí)有效的溝通、協(xié)調(diào)工作。當(dāng)藍(lán)牙任務(wù)端事件響應(yīng)時(shí),就調(diào)用NU_Send_To_Queue函數(shù),將信息傳遞到隊(duì)列Task_bt_queue中。

在MenuMode進(jìn)行完初始界面繪制后,即刻開始不斷監(jiān)聽與藍(lán)牙模塊共享的隊(duì)列Task_bt_queue,在調(diào)用函數(shù)NU_Receive_From_Queue接收到藍(lán)牙傳輸請(qǐng)求后,即彈出信息框通知用戶藍(lán)牙傳輸進(jìn)行中,同時(shí)關(guān)閉影響藍(lán)牙傳輸?shù)募t外接收并設(shè)置藍(lán)牙傳輸狀態(tài)為TRUE,以避免按鍵處理模塊的進(jìn)行。如此,程序?qū)⒃谒{(lán)牙傳輸期間不斷進(jìn)行while循環(huán)隨時(shí)監(jiān)聽Task_bt_queue的新信息情況。直至接收到來自藍(lán)牙模塊的傳輸完畢信息,標(biāo)識(shí)著藍(lán)牙傳輸工作的完畢,則更新顯示區(qū),重開啟紅外接收并將藍(lán)牙傳輸狀態(tài)設(shè)為FALSE以讓按鍵處理模塊重新進(jìn)行。

4.4.2 Semaphore的應(yīng)用

Nucleus Plus 提供信號(hào)量(semaphores),事件集(event groups)和信號(hào)(signals)解決信號(hào)同步問題。信號(hào)量和事件集都是獨(dú)立的,公用的設(shè)備。任務(wù)和其他系統(tǒng)設(shè)備的聯(lián)系由應(yīng)用程序決定。在Atmel-View模塊和藍(lán)牙模塊的進(jìn)程間同步方式,這里選擇使用信號(hào)量來實(shí)現(xiàn)。

在Atmel-View的UI應(yīng)用中,加載媒體文件訪問存儲(chǔ)卡在所難免,而藍(lán)牙模塊的傳輸工作也將把接收到的文件寫入存儲(chǔ)卡中。在藍(lán)牙進(jìn)程和Atmel-View進(jìn)程同時(shí)訪問存儲(chǔ)卡設(shè)備時(shí),由于資源重入的不支持將導(dǎo)致資源沖突程序癱瘓的發(fā)生。因而,這里使用Nucleus的Semaphore來解決資源競(jìng)爭(zhēng)問題。

聲明了NU_SEMAPHORE變量后,此變量將在Atmel-View進(jìn)程和藍(lán)牙進(jìn)程間共享,在訪問沖突資源的時(shí)候,調(diào)用NU_Obtain_Semaphore和NU_Release_Semaphore函數(shù)來將資源訪問模塊包住,從而保證在得到Semaphore后,直至釋放Semaphore前,資源訪問都是安全的,因?yàn)榱硪徽L問此資源的進(jìn)程將由于得不到唯一的Semaphore而暫時(shí)被自動(dòng)懸掛起來。

5總結(jié)展望

隨著電子相框市場(chǎng)的日趨成熟,技術(shù)的不斷發(fā)展,功能模塊日益增多,系統(tǒng)架構(gòu)也變得越發(fā)復(fù)雜。這使得軟件產(chǎn)品的可用性、易用性、友好性顯得更為重要起來,UI的設(shè)計(jì)實(shí)現(xiàn)是否合理將直接影響這些因素。

市面上流行的不少電子相框的UI設(shè)計(jì)存在著架構(gòu)簡(jiǎn)陋、復(fù)用性差、可擴(kuò)展性差的問題。本論文的方案主要基于Atmel-View,完成了一套層次化、結(jié)構(gòu)化、易擴(kuò)展的菜單系統(tǒng),實(shí)現(xiàn)效果良好。并嵌入Nucleus Plus操作系統(tǒng),實(shí)現(xiàn)了菜單系統(tǒng)和藍(lán)牙模塊間的進(jìn)程通信和同步,有效得支持了藍(lán)牙模塊。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉