亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32數(shù)碼相框的設(shè)計與實現(xiàn)

        2016-12-26 09:47:03北方工業(yè)大學(xué)電子信息工程學(xué)院通信工程系崔曉康范馨予
        電子世界 2016年21期
        關(guān)鍵詞:嵌入式系統(tǒng)

        北方工業(yè)大學(xué)電子信息工程學(xué)院通信工程系 崔曉康 范馨予

        基于STM32數(shù)碼相框的設(shè)計與實現(xiàn)

        北方工業(yè)大學(xué)電子信息工程學(xué)院通信工程系 崔曉康 范馨予

        數(shù)碼相框作為嵌入式設(shè)計的典型應(yīng)用,相對于普通相框來說更加靈活多變?;赟TM32系列嵌入式開發(fā)板豐富的外圍設(shè)備,使得數(shù)碼相框的到了進一步的發(fā)展。本系統(tǒng)采用STM32作為控制核心,添加了多種格式漢字顯示、并移植了FATFS去讀取相關(guān)文件信息的功能,研究實現(xiàn)了對SD卡里多幅圖片多種格式(如bmp、jpg/jpeg、gif)以幻燈片形式在TFT屏上動態(tài)顯示的效果,同時連接顯示了相應(yīng)圖片內(nèi)容的文字信息,并且增加了按鍵控制,使得數(shù)碼相框的設(shè)計更加人性化。

        嵌入式;STM32微處理器;數(shù)碼相框;圖片解碼

        1.引言

        近年來,隨著數(shù)字技術(shù)的快速發(fā)展,各種數(shù)字類產(chǎn)品遍布全球,數(shù)字圖像的數(shù)量也正以驚人的速度增長,為了更加方便快捷的查看圖像,高速瀏覽圖片的設(shè)備應(yīng)運而生,數(shù)碼相框采用傳統(tǒng)的外觀造型,只是把傳統(tǒng)外觀部分換成了液晶顯示屏,加上外圍設(shè)備以及供電模塊等,就可以實現(xiàn)數(shù)碼照片的直接顯示,與此同時還可以循環(huán)顯示照片,實現(xiàn)幻燈片的效果。這給日益增多的數(shù)字照片和攝影愛好者們提供了一個很好的照片展示平臺和空間。數(shù)碼相框擁有相當(dāng)大的優(yōu)勢,使用簡單,直接從數(shù)碼相機中取出記憶卡插入到數(shù)碼相框卡槽中即可瀏覽;無需像之前那樣繁瑣,無需電腦,更不需要沖洗打印,各種格式的數(shù)字圖片均能夠快速顯示。

        嵌入式是當(dāng)今最熱門的概念之一,它具有體積小、性能強、功耗低、可靠性高以及面向行業(yè)應(yīng)用等突出特征。嵌入式系統(tǒng)將先進的半導(dǎo)體技術(shù)、計算機技術(shù)和電子技術(shù),以及各個行業(yè)的具體應(yīng)用相結(jié)合,是一個技術(shù)密集、資金密集、學(xué)科交叉和不斷創(chuàng)新的知識集成系統(tǒng)。因此基于嵌入式的各種數(shù)碼相框的設(shè)計已經(jīng)成為目前研究的熱點。通常來說,嵌入式系統(tǒng)可以劃分為硬件和軟件兩部分。嵌入式硬件由嵌入式微處理器、片內(nèi)周邊電路和外圍設(shè)備三部分組成。其中嵌入式微處理器是嵌入式硬件系統(tǒng)的核心,直接影響嵌入式產(chǎn)品的應(yīng)用范圍和開發(fā)復(fù)雜度。典型的嵌入式微處理器有Motorola公司。

        本課題所研究的數(shù)碼相框主要實現(xiàn)以下功能:插入SD卡后對指定文件夾中的圖片進行尋址與讀取,即通過SD卡進入SPI模式對數(shù)據(jù)進行讀寫。通過系統(tǒng)讀取以及解碼SD卡內(nèi)存儲的BMP、JPEG、JPG以及GIF格式圖片,把多幅圖片以幻燈片的形式在TFTLCD屏幕上顯示出來,并且通過按鍵控制實現(xiàn)對屏幕顯示圖片的控制包括開啟/暫?;脽羝@示、上一張/下一張顯示等功能,并且顯示圖片的同時在圖片下方會同時顯示基于MATLAB自動標(biāo)注的結(jié)果內(nèi)容。

        2.系統(tǒng)硬件設(shè)計

        2.1 系統(tǒng)結(jié)構(gòu)

        基于STM32的數(shù)碼相框的系統(tǒng)設(shè)計如圖1所示,由圖中可知,本系統(tǒng)設(shè)計由SD_CARD模塊(SD卡通常支持兩種操作模式:SD卡模式與SPI模式。本設(shè)計采用SPI模式)、SPI模塊、FLASH緩存模塊、MCU主控模塊、按鍵(Key)模塊、LCD顯示模塊、LED狀態(tài)顯示模塊共七個模塊組成。下面依據(jù)順序說明各個模塊以及連接方法。

        第一個SD_CARD模塊,SD卡通過SDIO接口進行通訊,所有的通信都要遵從SD卡通信協(xié)議(SD卡協(xié)議相對復(fù)雜,這里只說明有關(guān)應(yīng)用的部分,具體講解可查看具體的協(xié)議手冊),首先,可以使用SDIO接口通訊的不只是常見的單純用于儲存數(shù)據(jù)的SD儲存卡,還有SD I/O卡,MMC卡。這幾種卡的類型是有區(qū)別的,其中,SD I/O卡就是利用SDIO接口的一些模塊,通過插入特定的SD卡槽中由SD卡槽中,使設(shè)備的功能得到擴展。SDIO的基本構(gòu)架如圖1所示。從圖中可以看出,SDIO接口包含了CMD(命令信號線,由主時鐘產(chǎn)生時鐘信號)、CLK及DAT[7 :0]信號線(主機和從機之間的數(shù)據(jù)信號在這八條線上傳輸)。圖中這三條信號線都是在通信中共用的總線,SDIO主機是通過命令來和SD從設(shè)備的相應(yīng)來尋址的。 SDIO的所有命令以及命令相應(yīng)都是通過SDIO-CMD引腳來進行傳輸?shù)?。并且命令只能是由主機的SDIO控制器發(fā)出。

        圖1 STM32的SDIO接口

        SPI模塊,是一種串行外圍設(shè)備接口,是作為一種高速全雙工的通信總線,如圖2所示,共包含了四條總線,分別為SS、SCK、MOSI、MISO。其中SS(Slave Select)為片選信號線,每個設(shè)備的的片選信號線都是與MCU單獨的引腳相連,其他幾個引腳則以并聯(lián)的方式連接到相同的SPI總線上,當(dāng)片選引腳有效時開始通信。

        圖2 SPI接口模塊原理圖

        MCU主控模塊(見圖3),本系統(tǒng)設(shè)計采用的CPU是STM-32F103RBT6,具備有內(nèi)置的128KB的Flash、20K的RAM、12位的AD、4個16位定時器以及三路UART通訊接口等多種資源,其時鐘頻率最高可達到72MHZ。

        按鍵(Key)模塊,按鍵模塊主要借助系統(tǒng)時鐘進行定時掃描完成,采取非CPU阻塞方法,提高了系統(tǒng)執(zhí)行效率以及響應(yīng)靈敏度等。通過按鍵識別來進行相應(yīng)的系統(tǒng)響應(yīng)。

        LCD顯示模塊,此模塊主要對解碼得到的最直接的圖像數(shù)據(jù)進行處理顯示。

        整個系統(tǒng)實現(xiàn)了經(jīng)過軟件解碼圖片相關(guān)數(shù)據(jù),解碼后再將數(shù)據(jù)傳輸?shù)絃CD模塊進行顯示得到數(shù)碼相框顯示圖片的效果。在進行圖片顯示的同時,有LED模塊進行LED燈閃爍,同時增加按鍵中斷控制,通過按鍵可以控制LCD的顯示模式,控制循環(huán)顯示文件夾數(shù)據(jù)還是單一顯示、上一張和下一張等。與此同時在LCD屏幕上還留有一段文字顯示區(qū),在圖片顯示的同時進行相應(yīng)內(nèi)容的說明展示等。

        2.2 系統(tǒng)硬件設(shè)計

        系統(tǒng)硬件分為數(shù)據(jù)儲存端、數(shù)據(jù)處理端、數(shù)據(jù)顯示端三大部分電路組成。數(shù)據(jù)儲存端主要包括SD卡儲存設(shè)備以及相應(yīng)的數(shù)據(jù)傳輸電路等組成。數(shù)據(jù)處理端主要有STM32開發(fā)板的MCU主控模塊(見圖4)處理完成,主要對數(shù)據(jù)進行處理,通過讀取文件頭信息對圖片類型進行判別,然后依據(jù)不同類型文件進行相應(yīng)解碼流程,最終將處理后的數(shù)據(jù)送到下一端數(shù)據(jù)顯示端(圖5)進行顯示。數(shù)據(jù)顯示端接收固定模式的數(shù)據(jù)格式通過LCD驅(qū)動電路對數(shù)據(jù)進行輸出顯示。

        圖3 系統(tǒng)硬件方框圖

        圖4 STM32開發(fā)板的MCU主控模塊原理圖

        圖5 LCD顯示模塊原理圖

        3.系統(tǒng)軟件設(shè)計

        3.1 數(shù)據(jù)讀入模塊

        本模塊包含F(xiàn)ATFS文件系統(tǒng)MALLOC內(nèi)存分配單元,USMART終端操作等。

        首先,需要用MALLOC內(nèi)存分配單元的函數(shù)申請一定格式的內(nèi)存空間,為FATES文件系統(tǒng)進行文件打開以及文件讀寫做準(zhǔn)備。在申請完內(nèi)存空間并判定申請成功后(某一步申請不成功就釋放所有已申請空間,并返回相應(yīng)錯誤參數(shù))進入文件打開以及讀寫階段。首先通過FATFS文件系統(tǒng)的f_opendir()函數(shù)打開相應(yīng)文件夾目錄,然后通過返回參數(shù)判定是否打開成功,如果打開成功,則通過f_readdir()讀取目錄下的一個文件,并通過while(1)循環(huán)全部查詢確定文件數(shù)目。

        3.1.1 FATFS文件系統(tǒng)

        FATFS是一個為小型嵌入式系統(tǒng)設(shè)計的通用FAT(File Allocation Table)文件系統(tǒng)模塊。具有Windows兼容的FAT文件系統(tǒng);不依賴于平臺,易于移植;代碼和工作區(qū)占用空間非常小;多種配置選項等優(yōu)點。FATFS 的編寫遵循ANSI C,并且完全與磁盤I/O層分開。因此,它獨立(不依賴)于硬件架構(gòu)。它可以被嵌入到低成本的微控制器中,而不需要做任何修改。FAT文件系統(tǒng)用"簇"作為數(shù)據(jù)單元。每一個"簇"都有一組連續(xù)的刪去組成,并且其所含的扇區(qū)數(shù)必須是2的整倍數(shù)。簇的最大值是32KB。在使用FATFS文件系統(tǒng)的時候,首先需要將其移植到開發(fā)平臺,移植主要分為三步,依次是數(shù)據(jù)類型定義(在interger。h內(nèi)部定義)、配置(在ffconf。h)、和函數(shù)編寫(6個接口函數(shù))。有關(guān)詳細的移植步驟請參見參考文獻[5]和[6]。

        3.1.2 MALLOC內(nèi)存分配單元

        該單元主要用于進行內(nèi)存的分配和釋放,下面介紹一下主要函數(shù)的基本用法:

        內(nèi)存分配函數(shù):malloc()

        函數(shù)原型:(類型說明符 *)malloc (unsigned size);

        參數(shù)說明:"類型說明符"用于表示此內(nèi)存區(qū)域用于何種數(shù)據(jù)類型。

        "類型說明符 *"用于表明返回值類型強制類型轉(zhuǎn)換為該類型指針。

        "size"要求是一個無符號數(shù),用以表示申請內(nèi)存的長度。使用舉例:cxk=(char *)malloc(1000);

        作用:在內(nèi)存的動態(tài)儲存區(qū)中分配申請一塊數(shù)據(jù)長度為"size"字節(jié)的連續(xù)內(nèi)存區(qū)域,該函數(shù)的返回值是該區(qū)域的首地址。

        內(nèi)存空間釋放函數(shù):free()

        函數(shù)原型:free(void *ptr)

        參數(shù)說明:*ptr ptr是一指針變量,指向一塊需要被釋放內(nèi)存空間的首地址(該區(qū)域是被malloc函數(shù)或其他內(nèi)存分配函數(shù)所分配的)。

        使用舉例:

        cxk=(char *)malloc(1000);

        free(ps);

        3.1.3 USMART終端操作單元

        USMART組件是由廣州市星翼電子科技公司開發(fā)的,是一個串口調(diào)試交互組件,主要有可以調(diào)用百分之九十以上的用戶直接編寫的函數(shù),并且占用的資源極少支持?jǐn)?shù)據(jù)類型多、支持函數(shù)返回顯示,使用方便,具有很好的移植性等優(yōu)點。USMART組件包含有六個文件: usmart。c、usmart。h、readme。txt、usmart_conFig.c、usmart_str。c、smart_ str。h。其中readme。txt是說明文檔,是對組件使用的具體說明,usmart。c是負責(zé)與外部實時交互等,usmat_str。c 內(nèi)部主要負責(zé)命令和參數(shù)的解析等,usmart_conFig.c主要由用戶添加,添加需要由usma進行調(diào)試的函數(shù)。通過 USMART 和串口助手可以任意調(diào)用源程序中的任何函數(shù)并執(zhí)行,進行調(diào)試。詳細內(nèi)容請參考參考文獻[9]。

        3.2 圖片格式識別以及解碼模塊

        本系統(tǒng)設(shè)計可以識別解碼出如bmp、jpg/jpeg、gif等多種格式的圖片,首先從格式識別來說,主要是通過代碼實現(xiàn)文件名的讀取,然后進行其后綴部分的截取,通過后綴識別得到圖片文件類型,在得到圖片類型后并不能直接對其進行顯示,因為同一種圖片格式也有不同的類型,例如16位顏色圖、24位顏色圖、32位顏色圖、RGB(5.5.5)、RGB(5.6.5)等。進而針對不同的文件類型采用對應(yīng)的解碼方式進行解碼,最終解析出圖片數(shù)據(jù),再以LCD所需的數(shù)據(jù)格式把數(shù)據(jù)傳送到LCD硬件模塊開始顯示。對應(yīng)的流程圖如圖6所示。

        圖6 圖片解碼流程

        3.3 TFT-LCD顯示模塊

        本模塊主要通過畫點函數(shù)實現(xiàn)數(shù)據(jù)的寫入,關(guān)鍵代碼如下:

        pic_phy。draw_point函數(shù)原型以及參數(shù)介紹

        函數(shù)原型:pic_phy。draw_point(int a,int b,int color);

        參數(shù)說明:a表示在顯示屏上的x坐標(biāo),b表示顯示屏上的y坐標(biāo),color為要顯示的像素值,其中color的計算需要對取出的像素點數(shù)據(jù)進行相應(yīng)移位轉(zhuǎn)換操作才能轉(zhuǎn)換成正確的顯示數(shù)據(jù)。

        圖7 LCD顯示

        4.測試結(jié)果

        本實驗對BMP、JPEG、JPG以及GIF等多種格式圖片進行按鍵控制播放以及幻燈片播放測試,均得到了正確快速地顯示,并通過按鍵控制檢測實現(xiàn)了顯示模式的轉(zhuǎn)換等功能。如圖8(a)(b)給出了顯示結(jié)果示例。

        圖8 (a) 通過按鍵控制播放

        圖8 (b) 自動幻燈片播放

        5.結(jié)論

        整個系統(tǒng)實現(xiàn)了經(jīng)過軟件解碼圖片相關(guān)數(shù)據(jù),解碼后再將數(shù)據(jù)傳輸?shù)絃CD模塊進行顯示得到數(shù)碼相框顯示圖片的效果。在進行圖片顯示的同時,有LED模塊進行LED燈閃爍,同時增加按鍵中斷控制,通過按鍵可以控制LCD的顯示模式,控制循環(huán)顯示文件夾數(shù)據(jù)還是單一顯示、上一張和下一張等。與此同時在LCD屏幕上還留有一段文字顯示區(qū),在圖片顯示的同時進行相應(yīng)內(nèi)容的說明展示等功能。本系統(tǒng)顯示效果良好,系統(tǒng)的功能有待進一步研究與發(fā)展,下一步的研究方向是實現(xiàn)更智能化的顯示,例如連接MABLAB自動標(biāo)注圖像特征的結(jié)果數(shù)據(jù)實現(xiàn)跨平臺顯示等。

        致謝:

        在此感謝北京市教委面上項目(KM201510009008)支持。

        [1]吳嘉慧。JPEG圖像解碼方案[J]?,F(xiàn)代計算機,2007,03:49-53.

        [2]徐壽芳。BMP圖像的文件格式及顯示方法探究[J]。湖州職業(yè)技術(shù)學(xué)院學(xué)報,2005,02:80-82.

        [3]李世清,陳春光,鞠曉光,潘照新。GIF圖像格式及壓縮方法的分析[J]。微型機與應(yīng)用,1994,09:13-14.

        [4]陳雪芳。基于STM32F103的電子相框的設(shè)計[J]。東莞理工學(xué)院學(xué)報,2012,01:49-52.

        [5]顧春洋,李鑫,張強?;赟D卡的FAT32文件系統(tǒng)的設(shè)計與實現(xiàn)[J]。產(chǎn)業(yè)與科技論壇,2013,02:96-98.

        [6]史勝偉,潘冀寧,孫慧洋?;赟TM32的MicroSD卡Fat文件系統(tǒng)快速實現(xiàn)[J]。通訊世界,2016,17:81-83.

        [7]戴春燕,徐智文。對c++中malloc/free和new/delete的探討[J]。包鋼科技,2009,01:59-60+66.

        [8]陸金江。深入探究C中的malloc()和free()函數(shù)[J]。計算機光盤軟件與應(yīng)用,2013,21:120+122.

        [9]胡仕剛,曹會祎,吳笑峰,席在芳,唐志軍。USMART調(diào)試方法在嵌入式系統(tǒng)教學(xué)中的應(yīng)用[J]。信息通信,2016,05:130-131.

        [10]劉軍。精通STM32F4[M]。北京:北京航空航天大學(xué)出版社,2015.

        猜你喜歡
        嵌入式系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開發(fā)平臺
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        国产偷国产偷亚洲高清视频| 国产精品日本天堂| 国产精品av免费网站| 国产av久久在线观看| 欧美性色黄大片手机版| 激情综合欧美| 日韩精品一二区在线视频| 在线播放亚洲丝袜美腿| 我爱我色成人网| 欧美成人专区| 国产成人综合亚洲国产| 午夜免费观看日韩一级视频| 东北女人毛多水多牲交视频| 福利一区视频| 色婷婷综合一区二区精品久久| 麻豆精品一区二区综合av| 伊人激情av一区二区三区| 亚洲高清无码第一| 国产精品美女自在线观看| 人人妻人人澡人人爽欧美一区| 亚洲男人的天堂网站| AV无码免费不卡在线观看| 亚洲一区二区自偷自拍另类| 中文无码成人免费视频在线观看 | 欧美z0zo人禽交欧美人禽交| 亚洲啊啊啊一区二区三区| 一区二区三区中文字幕脱狱者| 巨茎中出肉欲人妻在线视频| 日韩一区二区肥| 黄页免费人成网址大全| 一本久道综合色婷婷五月| 男女性高爱潮免费观看| 久久无码高潮喷水抽搐| 久久夜色国产精品噜噜亚洲av| 精品三级av无码一区| 免费av在线国模| 日本免费三片在线视频| 激情综合色五月丁香六月欧美| 最近中文av字幕在线中文| 久久爱91精品国产一区| 亚洲av无码国产精品色|