畢業(yè)論文-基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
畢業(yè)論文-基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
畢業(yè)論文-基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
畢業(yè)論文-基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
畢業(yè)論文-基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

1、大連東軟信息學(xué)院本科畢業(yè)設(shè)計(jì)(論文)論文題論文題目:基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)系 所: 電子工程系 專 業(yè):電子信息工程(集成電路設(shè)計(jì)與系統(tǒng)方向) 學(xué)生姓名: 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 導(dǎo)師職稱: 副教授 完成日期: 2014年4月28日 大連東軟信息學(xué)院Dalian Neusoft University of Information大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文) 摘要 IV基于FPGA的數(shù)字相框設(shè)計(jì)與實(shí)現(xiàn)摘要隨著現(xiàn)代科技的飛速發(fā)展,越來(lái)越多的人用數(shù)碼相機(jī)進(jìn)行拍照,而且大容量的存儲(chǔ)器能夠保存很多照片供大家在電腦上或其他電子設(shè)備上瀏覽。在更多的娛樂(lè)需求上,簡(jiǎn)單、方便、快捷的數(shù)字相框從此產(chǎn)生

2、,成為了很多人家中的裝飾品。視頻圖形陣列是一種廣泛應(yīng)用的顯示接口,借助FPGA的芯片和EDA設(shè)計(jì)工具,可以根據(jù)用戶的特定需要,制作出滿足特定功能的VGA顯示控制器,不但成本降低很多很多,而且能夠?qū)崟r(shí)根據(jù)用戶需求的功能去更新升級(jí),制作出更廣泛、更實(shí)用的時(shí)代產(chǎn)物。FPGA器件的應(yīng)用越來(lái)越廣泛,是當(dāng)今在嵌入式系統(tǒng)開(kāi)發(fā)應(yīng)用最廣泛的關(guān)鍵性技術(shù),因?yàn)橹圃旃に囁降牟粩嗵岣撸杀镜闹饾u下降,在以后的趨勢(shì)中,不久的將來(lái)FPGA很有可能會(huì)取代ASIC的應(yīng)用,在FPGA的硬件設(shè)計(jì)過(guò)程中使用Verilog或VHDL等硬件描述語(yǔ)言編程。本文主要研究利用Verilog語(yǔ)言編寫(xiě)數(shù)字相框,根據(jù)需求來(lái)編寫(xiě)實(shí)用的時(shí)代裝飾品,先

3、根據(jù)需求闡釋SD卡的讀取方式入手,通過(guò)SPI模式讀取數(shù)據(jù),然后編寫(xiě)硬件解碼圖片信息,最后通過(guò)液晶顯示器將圖片顯示出來(lái),軟件平臺(tái)使用Quartus II 13.0,完成10幅640*480的BMP圖片循環(huán)顯示。本文將首先敘述數(shù)字相框的背景和意義,然后講解關(guān)鍵性技術(shù)及數(shù)字相框的需求分析,根據(jù)需求設(shè)計(jì)相應(yīng)的功能模塊,本文的主要研究的內(nèi)容是通過(guò)Verilog語(yǔ)言編寫(xiě)實(shí)現(xiàn)數(shù)碼相框功能。關(guān)鍵詞:數(shù)碼相框,視頻圖形陣列,F(xiàn)PGA,Verilog大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文) AbstractThe Design and Implementation of Digital Photo Frame Based

4、 on FPGAAbstractWith the rapid development of science and technology, more and more people are using digital camera to take pictures, and large memory can save a lot of pictures, and we can browse on the computer or other electronic devices. In order to meet more entertainments demand. So, appear th

5、e simple and convenient digital photo frame as a lot of people inside the house decorations. Video graphics array is a widely used in display interface, use of the FPGA chip and EDA design tool, can according to customers specific needs to produce to meet specific functions of VGA display controller

6、, not only low cost, and real time function to upgrade according to user demand can create more widely used and more practical products.The application of FPGA device is more and more widely, and it is now popular used in the embedded system development in technologies. Because manufacturing technol

7、ogy level unceasing enhancement and cost gradually decline, in the future trend of the future application of FPGA is likely to replace an ASIC, in the process of FPGA hardware design were using Verilog or VHDL hardware description language to programming. This article mainly research use Verilog lan

8、guage to finish digital photo frame, and according to the requirements to write practical era of ornaments .First explains the way of reading of the SD card based on the requirements, next to reading data use the SPI mode, and then write hardware decoding image information. Finally use the VGA displ

9、ayer to display images, i will use the Quartus II 13.0 software platform to complete ten 640*480 of BMP image cycle show.This dissertation will first describe the background and meaning of this digital photo frame, next will Interpretation of the key technologies and demand analysis of digital photo

10、 frame. According to demand design the corresponding function module. The main research content is written by Verilog language implementation digital photo frame function.Keywords: Digital photo frames, Video graphics array, FPGA, Verilog大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文) 目錄目 錄 TOC o 1-3 u 摘要 PAGEREF _Toc386006581 h

11、IAbstract PAGEREF _Toc386006582 h II第1章緒 論 PAGEREF _Toc386006583 h 11.1 數(shù)字相框的研究目的和意義 PAGEREF _Toc386006584 h 11.2 背景介紹及研究?jī)?nèi)容 PAGEREF _Toc386006585 h 1第2章關(guān)鍵技術(shù)介紹 PAGEREF _Toc386006586 h 22.1 FPGA簡(jiǎn)介 PAGEREF _Toc386006587 h 22.2 QuartusII軟件 PAGEREF _Toc386006588 h 22.3 VGA轉(zhuǎn)換接口的簡(jiǎn)單描述 PAGEREF _Toc386006589

12、h 4第3章數(shù)字相框功能及設(shè)計(jì)方案 PAGEREF _Toc386006590 h 53.1 數(shù)字相框的功能 PAGEREF _Toc386006591 h 53.2 設(shè)計(jì)方案及各個(gè)模塊功能闡述 PAGEREF _Toc386006592 h 5第4章系統(tǒng)設(shè)計(jì) PAGEREF _Toc386006593 h 74.1 系統(tǒng)設(shè)計(jì)指導(dǎo)原則 PAGEREF _Toc386006594 h 74.2 硬件設(shè)計(jì) PAGEREF _Toc386006595 h 74.2.1 SPI接口控制 PAGEREF _Toc386006596 h 74.2.2 SD卡的處理數(shù)據(jù) PAGEREF _Toc386006

13、597 h 94.2.3 FAT16文件系統(tǒng) PAGEREF _Toc386006598 h 114.2.4 圖片存儲(chǔ)的數(shù)據(jù)位置計(jì)算 PAGEREF _Toc386006599 h 114.2.5 基于Verilog的BMP解碼設(shè)計(jì) PAGEREF _Toc386006600 h 13第5章系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc386006601 h 155.1 環(huán)境配置 PAGEREF _Toc386006602 h 155.2 功能模塊實(shí)現(xiàn) PAGEREF _Toc386006603 h 16第6章系統(tǒng)測(cè)試 PAGEREF _Toc386006604 h 196.1 測(cè)試概述 PAGEREF

14、_Toc386006605 h 196.2 測(cè)試用例 PAGEREF _Toc386006606 h 196.2.1 檢查RTL圖 PAGEREF _Toc386006607 h 196.2.2 波形的顯示以及實(shí)物測(cè)試 PAGEREF _Toc386006608 h 19第7章結(jié)論 PAGEREF _Toc386006609 h 22參考文獻(xiàn) PAGEREF _Toc386006610 h 23致謝 PAGEREF _Toc386006611 h 24大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)- 第1章緒 論1.1 數(shù)字相框的研究目的和意義隨著時(shí)代的不斷進(jìn)步,人們的需求也在增大,數(shù)碼相機(jī)已經(jīng)成為人們生活

15、必需品之一,利用大容量、讀取速度快的存儲(chǔ)器來(lái)存儲(chǔ)數(shù)量龐大的數(shù)碼相片已經(jīng)成為大眾的首選,由于存放數(shù)碼相片的數(shù)量過(guò)于龐大,沖洗出來(lái)將花費(fèi)巨大的金錢(qián),更簡(jiǎn)單方便的時(shí)代產(chǎn)品數(shù)字相框出現(xiàn)了,不但取代了傳統(tǒng)的相框、相冊(cè),更是時(shí)代潮流的家中必需品,不緊省下了沖洗照片的錢(qián),還更容易保存照片,隨時(shí)可以進(jìn)行照片的回放,如此方便瀏覽相片的數(shù)字相框占據(jù)了很大的電子市場(chǎng)。隨著數(shù)字相框的逐漸推廣和發(fā)展,各式各樣的電子設(shè)備競(jìng)爭(zhēng)已經(jīng)日新月異,目前國(guó)內(nèi)的廠商已經(jīng)30余家,競(jìng)爭(zhēng)非常激烈,數(shù)字相框的市場(chǎng)越來(lái)越龐大,銷量大幅度增長(zhǎng),市場(chǎng)需求依舊非常高,在當(dāng)今娛樂(lè)產(chǎn)品的潮流下,數(shù)字相框占據(jù)了很大比重,通過(guò)Verilog語(yǔ)言編寫(xiě)制作的數(shù)

16、字相框,具有處理數(shù)據(jù)速度快等硬件優(yōu)勢(shì)。數(shù)字相框?qū)Υ蟊妬?lái)講還是非常新穎的電子產(chǎn)品,通過(guò)讀取大容量存儲(chǔ)卡中的圖片數(shù)據(jù),在電子顯示屏上瀏覽數(shù)碼照片,不但取代了傳統(tǒng)的紙質(zhì)相框,而且通過(guò)讀取存儲(chǔ)器上的照片數(shù)據(jù),能夠更清晰的回放照片,隨時(shí)可以增添或更改瀏覽新的相片,通過(guò)循環(huán)顯示的方式,更給家中增添了一份色彩,帶來(lái)了大眾娛樂(lè)的時(shí)尚風(fēng)潮,將數(shù)字照片增添了一個(gè)更好的豐富多彩的展示空間,不僅僅替代了傳統(tǒng)相片的沖洗瀏覽過(guò)程,而且也取代了存放傳統(tǒng)的紙質(zhì)照片的相冊(cè)、相框,從此數(shù)字相框已成為時(shí)代的家中必需品。1.2 背景介紹及研究?jī)?nèi)容如今已經(jīng)步入二十一世紀(jì),每家每戶的裝飾品都是多的不可勝數(shù),在數(shù)碼相機(jī)的風(fēng)靡全球的潮流中,

17、數(shù)碼相框也緊逼其后,為照片實(shí)現(xiàn)了更多的展示空間,為此有必要去設(shè)計(jì)一款實(shí)用的數(shù)字相框。所以本課題主要研究?jī)?nèi)容是通過(guò)FPGA開(kāi)發(fā)實(shí)現(xiàn)出來(lái)的數(shù)字相框,利采用SD存儲(chǔ)卡讀取數(shù)據(jù),然后用硬件來(lái)實(shí)現(xiàn)解碼圖片信息并通過(guò)顯示器等其他顯示設(shè)備回放出照片信息供人們觀看。研究?jī)?nèi)容:用Verilog語(yǔ)言編寫(xiě)代碼來(lái)實(shí)現(xiàn)一款實(shí)用性高、可靠性高的數(shù)字相框,本設(shè)計(jì)中包含有SD卡數(shù)據(jù)的讀取,是通過(guò)SPI方式讀取數(shù)據(jù)的,利用SDRAM的讀取和寫(xiě)入數(shù)據(jù)的高速度來(lái)實(shí)現(xiàn)讀取數(shù)據(jù)的實(shí)時(shí)性,不但保證了輸出照片的高速數(shù)據(jù)掃描,而且能夠更穩(wěn)定高速的將照片呈現(xiàn)在顯示輸出設(shè)備上面,本課題將實(shí)現(xiàn)讀取SD卡中的十張圖片循環(huán)播放在VGA顯示器上面。大連

18、東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第2章關(guān)鍵技術(shù)介紹2.1 FPGA簡(jiǎn)介FPGA(Field Programmable Gate Array)是指現(xiàn)場(chǎng)可編程門(mén)陣列,在可編程器件的歷程中,是PAL、GAL、CPLD等其他可編程的器件上進(jìn)化而來(lái)的新一代產(chǎn)物,是專用ASIC的一種半定制電路產(chǎn)生的,不但解決了定制電路中原有可編程器件門(mén)電路數(shù)量有限制的缺點(diǎn),也克服了定制電路的一些不足。FPGA作為數(shù)字電路系統(tǒng)設(shè)計(jì)的主要硬件平臺(tái),功能上面的優(yōu)點(diǎn)能夠由需求通過(guò)編寫(xiě)硬件語(yǔ)言實(shí)現(xiàn)軟件的配置,從而使功能更完善,更容易的讓工程師進(jìn)行修改某些需求的功能,不但能重復(fù)的修改使用,而且在修改和升級(jí)的時(shí)候不需要進(jìn)行PCB板的改變,

19、僅僅需要在電腦上進(jìn)行硬件語(yǔ)言描述的修改和更新,優(yōu)點(diǎn)很多,首先能縮短設(shè)計(jì)系統(tǒng)的時(shí)間周期,而且能夠讓工程師更靈活多變從軟件上完成硬件設(shè)計(jì)開(kāi)發(fā)工作,提高了更多的設(shè)計(jì)效率,降低了硬件設(shè)計(jì)成本,因此被越來(lái)越多的硬件工程所認(rèn)可。現(xiàn)今大多數(shù)的FPGA開(kāi)發(fā)依舊是采用查找表技術(shù)的,在性能方面已經(jīng)遠(yuǎn)遠(yuǎn)高于曾經(jīng)的性能,在功能方面,包含了RAM、時(shí)鐘的管理以及DSP的硬核ASIC模塊,F(xiàn)PGA的優(yōu)點(diǎn)如下:1、性能速度快,硬件并行的優(yōu)勢(shì),在每一個(gè)時(shí)鐘周期都完成了預(yù)期中更多的任務(wù),超過(guò)DSP的運(yùn)算能力。2、開(kāi)發(fā)周期短,上市時(shí)間能夠更早,因?yàn)橛布こ處熢陂_(kāi)發(fā)設(shè)計(jì)的過(guò)程中能省去了自定制ASIC設(shè)計(jì)的時(shí)間。3、成本低,因?yàn)樽远?/p>

20、制的ASIC設(shè)計(jì)費(fèi)用非常高,在解決NRE方案時(shí)將遠(yuǎn)遠(yuǎn)高于FPGA硬件設(shè)計(jì)所需求的經(jīng)費(fèi)。可編程芯片可以節(jié)省更多的成本和交貨組裝的時(shí)間。4、穩(wěn)定性非常好,工程師的編程環(huán)境采用的是軟件編程,F(xiàn)PGA是采用代碼實(shí)現(xiàn)的硬件執(zhí)行過(guò)程,不利用操作系統(tǒng)而通過(guò)真正的并行處理數(shù)據(jù),能減少出現(xiàn)差錯(cuò)的可能性。5、維護(hù)上更容易,F(xiàn)PGA芯片不需要重新去設(shè)計(jì)專用的集成電路,而是能夠現(xiàn)場(chǎng)可升級(jí),所以減少了更多的維護(hù)時(shí)間和費(fèi)用。2.2 QuartusII軟件Altera的QuartusII是一款能夠應(yīng)用多平臺(tái)進(jìn)行FPGA設(shè)計(jì)的軟件開(kāi)發(fā)環(huán)境,能根據(jù)硬件工程師的需求來(lái)完成設(shè)計(jì)過(guò)程中的所有設(shè)計(jì)流程。首先設(shè)計(jì)輸入(DesignEnt

21、ry),其中包括基于模塊的設(shè)計(jì)、系統(tǒng)級(jí)設(shè)計(jì)和軟件開(kāi)發(fā),然后進(jìn)行綜合(Synthesis)和布局布線(Place&Route),在這里主要進(jìn)行功耗分析(PowerAnalysis)、調(diào)試(Debugging)、工程更改管理(EngineeringChangeManagement);在接下來(lái)進(jìn)行時(shí)序分析(TimingAnalysis)和仿真(Simulation),最終進(jìn)行編程和配置(Programming&Configuration)。QuartusII能夠使用Altera的IntellectualPropertycore,其中包含參數(shù)化模塊功能模塊庫(kù),能夠直接使用完善的模塊,能夠更輕松地進(jìn)行硬

22、件設(shè)計(jì),縮短了硬件設(shè)計(jì)的時(shí)間周期,而且能夠?qū)ζ渌鸈DA工具有更好的應(yīng)用鏈接,在設(shè)計(jì)的過(guò)程中都能夠使用其他的熟練EDA工具進(jìn)行硬件設(shè)計(jì);QuartusII通過(guò)與其他軟件的互相合作,可以更方便的進(jìn)行各種DSP的多方面應(yīng)用,支持可編程邏輯器件的開(kāi)發(fā),是一種非常適合硬件工程師設(shè)計(jì)的環(huán)境平臺(tái)。Quartus II是一個(gè)具備多種數(shù)字邏輯設(shè)計(jì)的各種特性且完全集成與電路構(gòu)造無(wú)任何關(guān)系的開(kāi)發(fā)平臺(tái),功能如下所述:1、可以通過(guò)流程圖等多種設(shè)計(jì)框圖和其中的一種或多種硬件描述語(yǔ)言對(duì)硬件的電路進(jìn)行設(shè)計(jì),而且能夠把設(shè)計(jì)的內(nèi)容存儲(chǔ)下來(lái);2、編輯集成電路的布局及芯片的內(nèi)部連線;3、LogicLock的設(shè)計(jì)技術(shù),使用人可以根據(jù)需

23、求進(jìn)行更新升級(jí)系統(tǒng),增添新的后續(xù)模塊并能夠使系統(tǒng)對(duì)性能損失很小或不損失性能;4、多種功能集于一身的邏輯綜合的硬件開(kāi)發(fā)平臺(tái);5、可以在電路的設(shè)計(jì)過(guò)程進(jìn)行仿真驗(yàn)證,不但可以進(jìn)行電路功能的仿真驗(yàn)證,也可以進(jìn)行時(shí)序邏輯的仿真工作,是一款非常適合硬件工程師測(cè)試的仿真工具。6、可以進(jìn)行時(shí)序分析,也能夠在設(shè)計(jì)時(shí)對(duì)關(guān)鍵路徑進(jìn)行分析;7、可使用SignalTapII軟件,這是一款非常實(shí)用的FPGA片上debug工具;8、能夠?qū)刖帉?xiě)的代碼源文件,不但能夠進(jìn)行工程文件的添加創(chuàng)建,也能夠進(jìn)行編譯,鏈接生成所需要的工程文件;9、能夠綜合所有的設(shè)計(jì)流程直接編譯整個(gè)工程文件;10、開(kāi)發(fā)軟件能夠找到工程在編譯時(shí)出錯(cuò)的位置,

24、并且提示出來(lái);11、高效率的硬件編程開(kāi)發(fā)工具與驗(yàn)證工具,很大的縮短開(kāi)發(fā)期間;12、能夠?qū)氩⒆x出EDIF、VHDL和Verilog的網(wǎng)表文件;13、能夠輸出其他EDA工具能夠載入的VHDL或Verilog的網(wǎng)表文件。2.3 VGA轉(zhuǎn)換接口的簡(jiǎn)單描述視頻圖形陣列時(shí)序控制模塊是控制器顯示的重要組成部分,輸出信號(hào)的行同步信號(hào)和場(chǎng)同步信號(hào)需要按照視頻圖形陣列時(shí)序標(biāo)準(zhǔn)生成對(duì)應(yīng)的脈沖信號(hào)。對(duì)于普通的VGA顯示器,其引出線的共含5個(gè)信號(hào):R,G,B(三基色信號(hào)),HS(行同步信號(hào)),VS(場(chǎng)同步信號(hào))。在五個(gè)信號(hào)時(shí)序驅(qū)動(dòng)時(shí),VGA顯示器要嚴(yán)格遵循“VGA工業(yè)標(biāo)準(zhǔn)”,即640Hz480Hz60Hz模式。VGA

25、(Video Graphic Array)接口,即視頻圖形陣列,也叫做D-Sub接口,是15針的梯形插頭,分3排,每排5個(gè),傳輸模擬信號(hào)。VGA接口采用非對(duì)稱分布的15針連接方式,在進(jìn)行輸出的時(shí)候,顯存里面存儲(chǔ)有圖片的信息是通過(guò)數(shù)字格式存儲(chǔ)的,也就是存儲(chǔ)的圖像幀信號(hào)在RAMEAC里面借助模擬調(diào)制后,從數(shù)字信號(hào)模擬成了模擬的高頻信號(hào),然后通過(guò)發(fā)送到顯示器上面就可以顯示出來(lái)圖片。現(xiàn)在很多的家庭PC機(jī)及投影儀的顯示接口都是通過(guò)這個(gè)VGA的視頻接口進(jìn)行連接通信,在圖片的存儲(chǔ)和輸出的時(shí)候,圖像都是以數(shù)字的信號(hào)來(lái)顯示圖片數(shù)據(jù),這些數(shù)據(jù)要通過(guò)顯卡里面的數(shù)字/模擬轉(zhuǎn)換器轉(zhuǎn)換為三種顏色(R、G、B)的信號(hào)和行同

26、步及場(chǎng)同步的信號(hào),這些數(shù)據(jù)信號(hào)將會(huì)傳送到顯示器或其他顯示輸出設(shè)備上把圖片顯示出來(lái)。但是如果是CRT顯示器而言,信號(hào)將會(huì)被傳輸?shù)侥硞€(gè)處理電路進(jìn)行處理,要通過(guò)驅(qū)動(dòng)程序來(lái)控制顯示圖片;而LCD、DLP的數(shù)字顯示器需要調(diào)試模擬/數(shù)字轉(zhuǎn)換器實(shí)現(xiàn)模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換,在數(shù)字和模擬信號(hào)的多次轉(zhuǎn)換的過(guò)程中難免會(huì)有圖像的失真,所以VGA接口在CRT顯示設(shè)備上顯示效果很好,在液晶顯示器上面顯示圖像會(huì)有數(shù)字和模擬信號(hào)轉(zhuǎn)換造成的圖像失真,在顯示的效果上會(huì)差一些。第3章數(shù)字相框功能及設(shè)計(jì)方案3.1 數(shù)字相框的功能本系統(tǒng)設(shè)計(jì)的數(shù)字相框是分別完成以下五個(gè)功能:(1)利用SPI模式讀取SD卡中的圖片數(shù)據(jù),不涉及到文件操作

27、系統(tǒng)的方式讀取數(shù)據(jù)。(2)利用FPGA硬件解碼圖片數(shù)據(jù)。(3)利用SDRAM讀取速度快的優(yōu)點(diǎn),作為圖片顯示緩存。(4)通過(guò)顯示器等輸出設(shè)備顯示圖片,驅(qū)動(dòng)程序利用FPGA來(lái)解決。(5)循環(huán)顯示SD卡中的圖片。3.2 設(shè)計(jì)方案及各個(gè)模塊功能闡述本設(shè)計(jì)是通過(guò)Verilog語(yǔ)言實(shí)現(xiàn)制作數(shù)字相框,根據(jù)功能需求畫(huà)出系統(tǒng)功能結(jié)構(gòu)圖,如圖3.1所示:圖3.1 系統(tǒng)功能結(jié)構(gòu)圖從圖中可以看出,數(shù)據(jù)流模塊包括SDRAM和兩個(gè)FIFO,用于鏈接SD卡和VGA的顯示模塊,從SD卡中讀取的圖片數(shù)據(jù),也就是色彩表數(shù)據(jù)將會(huì)被存放在一個(gè)內(nèi)部的RAM里面,用于譯碼,SD卡中的圖片數(shù)據(jù)通過(guò)一個(gè)FIFO送入到SDRAM里面,然后再送

28、到另一個(gè)FIFO用于VGA讀取,共同完成高速數(shù)據(jù)的緩沖,因?yàn)镾D卡的讀取速度很慢,不能滿足VGA實(shí)時(shí)掃描數(shù)據(jù)的需求,所以要用SDRAM作為圖片數(shù)據(jù)的緩存。體系結(jié)構(gòu)設(shè)計(jì)的系統(tǒng)功能如圖3.2所示,利用SD卡等存儲(chǔ)器存儲(chǔ)照片,通過(guò)存儲(chǔ)器的讀取控制模塊載入圖片,通過(guò)SPI模式讀取SD卡中的數(shù)據(jù),在這里不涉及到文件系統(tǒng),然后將圖片數(shù)據(jù)緩存到SDRAM中,通過(guò)FPGA的硬件來(lái)解碼圖片數(shù)據(jù),由液晶顯示器驅(qū)動(dòng)模塊來(lái)驅(qū)動(dòng)顯示器輸出照片。圖3.2 體系結(jié)構(gòu)設(shè)計(jì)的系統(tǒng)功能系統(tǒng)的時(shí)鐘與復(fù)位控制模塊:完成PLL例化,以及復(fù)位控制,這里有三個(gè)輸出,分別是外部和內(nèi)部SDRAM的時(shí)鐘,在外部時(shí)鐘有一定相位偏移,和其他模塊使用

29、的時(shí)鐘;在復(fù)位控制部分,復(fù)位信號(hào)做異步復(fù)位,同步釋放的信號(hào)處理,能夠使系統(tǒng)有一個(gè)更加安全、穩(wěn)定的復(fù)位信號(hào)。SD卡模塊:有兩個(gè)小模塊,其中SD卡控制模塊控制上電復(fù)位、命令的控制信息傳送、圖片數(shù)據(jù)的讀出等,也就是完成對(duì)SD卡中的基本控制;FPGA以及SD卡的數(shù)據(jù)傳送和命令的傳送都設(shè)計(jì)到SD卡的讀取方式,在這里利用SPI模式進(jìn)行讀取,所以通過(guò)SPI模塊產(chǎn)生的時(shí)序來(lái)控制。數(shù)據(jù)流控制模塊:用來(lái)連接SD卡、SDRAM、顯示器的驅(qū)動(dòng)模塊;在讀取存儲(chǔ)卡上的照片的顏色數(shù)據(jù)時(shí),圖片數(shù)據(jù)將被緩存到圖片的顏色表中,用在圖片解碼時(shí)使用;存儲(chǔ)卡的照片數(shù)據(jù)將會(huì)送到SDRAM的FIFO緩存里面;SDRAM的控制器都會(huì)去直接去

30、控制緩存FIFO的讀和寫(xiě),但是存儲(chǔ)卡的讀取速度是有限的,雖然不適合顯示器的實(shí)時(shí)數(shù)據(jù)掃描,但是如果將圖片信息數(shù)據(jù)先存放到緩存SDRAM里面,顯示器就可以實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)讀取,并進(jìn)行數(shù)據(jù)顯示。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第4章系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)指導(dǎo)原則利用優(yōu)秀的FPGA開(kāi)發(fā)軟件,利用Verilog語(yǔ)言編寫(xiě)的數(shù)字相框不但能夠在電腦上進(jìn)行語(yǔ)法校正,也能通過(guò)仿真軟件進(jìn)行功能模塊的模擬,先進(jìn)的技術(shù)以及規(guī)范的編寫(xiě)代碼能夠及時(shí)找到某些功能上面的遺漏,能夠及時(shí)修改,開(kāi)發(fā)軟件能夠第一時(shí)間找到錯(cuò)誤的地方。通過(guò)仿真軟件能夠根據(jù)需求仿真預(yù)期的結(jié)果,通過(guò)檢測(cè)波形的正誤,即可知道程序是否能達(dá)到預(yù)期成果,而且通過(guò)FP

31、GA開(kāi)發(fā)板的實(shí)物演示即可通過(guò)顯示屏顯示數(shù)字相框,所以很簡(jiǎn)單的就能在開(kāi)發(fā)階段進(jìn)行修改測(cè)試,可靠性的軟件開(kāi)發(fā)環(huán)境,在制作出來(lái)后也會(huì)具有非常好的安全性。由于是通過(guò)FPGA制作的數(shù)字相框,具有很多硬件的固有特性的很多優(yōu)點(diǎn),性能上是絕對(duì)的高效率,速度要遠(yuǎn)遠(yuǎn)高于市場(chǎng)上其他內(nèi)核制作的數(shù)字相框。FPGA的硬件開(kāi)發(fā)已經(jīng)非常成熟,硬件工程師基本上能夠做出絕大多數(shù)的電子設(shè)備具有的功能,只是根據(jù)需求的不同,開(kāi)發(fā)方法和開(kāi)發(fā)成本會(huì)根據(jù)實(shí)際需求而改變,沒(méi)有FPGA做不出來(lái)的電子設(shè)備,只有FPGA不適合開(kāi)發(fā)的電子產(chǎn)品。在本設(shè)計(jì)中,材料都是很普遍的電子設(shè)備,存儲(chǔ)器采用的是數(shù)碼相機(jī)應(yīng)用的SD卡,輸出設(shè)備利用顯示器顯示照片,其中通

32、過(guò)FPGA開(kāi)發(fā)板實(shí)現(xiàn)數(shù)字相框的功能,即可進(jìn)行調(diào)試開(kāi)發(fā),開(kāi)發(fā)成本僅僅為存儲(chǔ)器、FPGA開(kāi)發(fā)板、顯示器,成本低廉。4.2 硬件設(shè)計(jì)在硬件設(shè)計(jì)上,采用FPGA開(kāi)發(fā)板的時(shí)鐘,在時(shí)鐘的設(shè)計(jì)上,要分別設(shè)計(jì)以下三個(gè)時(shí)鐘,分別是內(nèi)部和外部的100Mhz時(shí)鐘和具有一定相位偏移的100Mhz時(shí)鐘以及其他模塊要用到的50Mhz時(shí)鐘,SD卡的讀取采用SPI時(shí)序控制,數(shù)據(jù)流的控制要鏈接存儲(chǔ)器和顯示驅(qū)動(dòng)以便完成相應(yīng)的控制。4.2.1 SPI接口控制SPI接口是一種SD卡的讀取方式,SPI就是外圍設(shè)備的串行接口,是一種速度快,全雙工的同步通信總線,需要四個(gè)信號(hào)就可以傳遞數(shù)據(jù),不但節(jié)約資源,也有利于開(kāi)發(fā)板的布局布線,而且在讀

33、取數(shù)據(jù)上更加的簡(jiǎn)單易用,如今越來(lái)越多的SD卡讀取數(shù)據(jù)設(shè)計(jì)都是采用這個(gè)方法來(lái)讀取數(shù)據(jù),所以大多數(shù)的芯片上都是集成了這種通信協(xié)議。在本設(shè)計(jì)中,工程里面定義的四個(gè)線分別是pi_cs_n、spi_clk、spi_miso和spi_mosi。cs_n信號(hào)代表了被選中后有效還是無(wú)效的控制芯片,只有片選的信號(hào)置為有效的時(shí)候(在這里通常是低電平的時(shí)候設(shè)置為有效),對(duì)芯片的讀取或其他的一些控制才會(huì)生效;這樣就能夠?qū)崿F(xiàn)在一條信號(hào)線上面能夠控制多個(gè)SPI的控制設(shè)備,clk是在此接口控制上的同步的時(shí)鐘信號(hào),并且能夠在一個(gè)時(shí)鐘的時(shí)候一次進(jìn)行數(shù)據(jù)信號(hào)的傳輸,miso和mosi是主從機(jī)器進(jìn)行互相收發(fā)信息時(shí)候的數(shù)據(jù)通信信號(hào),

34、miso是從機(jī)的輸出信號(hào),也是主機(jī)的輸入信號(hào),相反,mosi就是從機(jī)的輸入信號(hào),也是主機(jī)的輸出信號(hào)。SPI有主模式和從模式的這兩種的操作模式;本次FPGA的設(shè)計(jì)中利用的是SD卡從機(jī),SPI是本設(shè)計(jì)的主機(jī),利用單主單從的設(shè)計(jì)方法能夠產(chǎn)生cs_n和clk的兩個(gè)spi時(shí)序信號(hào)。通常情況下來(lái)講,SPI能夠使用4個(gè)傳輸方法來(lái)傳輸數(shù)據(jù),其中包含有兩個(gè)參數(shù),分別是CPOL和CPHA。如圖4.1 CPOL配置SPI時(shí)鐘所示,能夠看出來(lái)當(dāng)CPOL是1的時(shí)候,SP的信號(hào)clk在閑置的時(shí)候都是置1的情況,在進(jìn)行信息通訊之后,第一次的時(shí)鐘沿來(lái)之后,都會(huì)呈現(xiàn)出下降沿;CPOL是0的時(shí)候,則相反,clk在閑置的時(shí)候都是置

35、0的情況,而且在進(jìn)行信息的通訊之后,第一次的時(shí)鐘沿來(lái)后,都會(huì)呈現(xiàn)出上升沿;然后對(duì)CPHA進(jìn)行研究發(fā)現(xiàn),是用來(lái)控制數(shù)據(jù)和時(shí)鐘的對(duì)齊方式,時(shí)鐘的改變將會(huì)是一個(gè)時(shí)鐘的變換上升沿或者是一個(gè)下降沿的變換,也能夠決定出來(lái)下一次的時(shí)鐘改變的是上升還是下降沿,當(dāng)CPHA是1的情況下,能夠說(shuō)明兩次沿的方向相反,但是CPHA是0的情況下,兩次的沿是相同的,也就代表時(shí)鐘的第一個(gè)沿沒(méi)有鎖存數(shù)據(jù)。圖4.1 CPOL配置SPI時(shí)鐘在本次數(shù)字相框的設(shè)計(jì)中,SD卡的讀取方式就是利用SPI的讀取方式,但是SD卡在接受復(fù)位的命令時(shí)候,需要CS這個(gè)信號(hào)能夠有效的時(shí)候才能進(jìn)入這個(gè)模式,所以在SD卡需要使用這個(gè)模式讀取的時(shí)候,就是需要

36、SD的總線的模式時(shí)候,就能夠?qū)D卡讀取采用SPI模式,而且能夠保證不會(huì)對(duì)其他的SD讀取模式進(jìn)行信號(hào)的處理,并且能夠一直保持SD總線的讀取模式。因?yàn)樾枰木褪沁@個(gè)讀取模式,所以應(yīng)該發(fā)出R1的信號(hào)告訴SD控制模塊利用SPI來(lái)讀取數(shù)據(jù),所以返回SD總線的時(shí)候只有一個(gè)辦法,那就是將SD卡重新復(fù)位商店,然后在本模式下SD卡的狀態(tài)機(jī)將能夠不被檢查出來(lái),而且這個(gè)時(shí)候的任何SD總線模式的所有信號(hào)數(shù)據(jù)命令都能夠在這個(gè)讀取模式下應(yīng)用;SPI模式通常是在SD總線模式上電讀取SD數(shù)據(jù)的時(shí)候,會(huì)以缺省的命令利用CRC校驗(yàn)的方式來(lái)檢查是否關(guān)閉,CMDO必須在后面有1位可靠地CRC校驗(yàn)數(shù)據(jù),如果在這個(gè)讀取方式下,通常情況

37、下將會(huì)關(guān)閉CRC校驗(yàn)。所以本設(shè)計(jì)采取的方式是CPOL和CPHA都置一,速度大約是3MB/s的速度,控制信號(hào)分別有時(shí)鐘信號(hào)的50MHz信號(hào)(PLL產(chǎn)生)、系統(tǒng)的復(fù)位信號(hào)(低電平的時(shí)候有效)、主機(jī)和從機(jī)的輸入信號(hào)和輸出信號(hào)、SPI的時(shí)序時(shí)鐘信號(hào)(主機(jī)產(chǎn)生的時(shí)鐘信號(hào))、發(fā)送和接受的使能信號(hào)(高電平有效)、接受和發(fā)送的標(biāo)志位(高電平有效)以及發(fā)送接受數(shù)據(jù)的寄存器。4.2.2 SD卡的處理數(shù)據(jù)在SD卡的分類中有SD和SDHC兩種存儲(chǔ)卡,SD卡的容量較小,SDHC的容量大,通常情況下SD卡的容量會(huì)低于2GB的存儲(chǔ)容量,使用的是FAT16的存儲(chǔ)文件方式,而SDHC都是大于4GB的容量,采用的是FAT32的存

38、儲(chǔ)文件方式。在SD卡的硬件設(shè)計(jì)上,采用的是SD存儲(chǔ)卡,應(yīng)用的是微軟成熟的文件系統(tǒng),具有非常非常高的可靠性和兼容性,在這個(gè)文件系統(tǒng)中包含有6個(gè)部分,第一個(gè)就是是引導(dǎo)的扇區(qū),然后就是FAT1和FAT2,這個(gè)FAT表表示磁盤(pán)的數(shù)據(jù)存儲(chǔ)時(shí)候的區(qū)域,用通過(guò)存儲(chǔ)數(shù)據(jù)區(qū)簇鏈結(jié)構(gòu)來(lái)記錄磁盤(pán)數(shù)據(jù),通過(guò)劃分一些扇區(qū)來(lái)決定存儲(chǔ)的扇區(qū)大小,在這里是一個(gè)扇區(qū)0.5Kb,簇的大小通常是2的n次冪來(lái)劃分大小,從512B開(kāi)始,一直到32K,在這里采取的是簇的分配方式,能夠更好更快的處理大文件的存取,簇的大小能夠決定讀取數(shù)據(jù)的快慢。通過(guò)簇的計(jì)算能夠算出圖片數(shù)據(jù)在SD卡中的存放位置,只有找到圖片的占用空間的大小才能準(zhǔn)確的讀出圖片

39、,對(duì)圖片數(shù)據(jù)進(jìn)行相應(yīng)處理。系統(tǒng)引導(dǎo)記錄區(qū)在通常情況下需要使用第零區(qū)的分區(qū),共0.5KB(也有其他的時(shí)候使用別的分區(qū))。在這0.5KB的分區(qū)中,包含有跳轉(zhuǎn)的命令,制作工廠信息及使用系統(tǒng)的版本信息,BIOS Parameter Block和擴(kuò)展的BPB,引導(dǎo)程序和結(jié)束標(biāo)志幾個(gè)部分組成。圖4.2 Winhex軟件查看到的DBR區(qū)數(shù)據(jù)在進(jìn)行SD卡讀取數(shù)據(jù)的過(guò)程中使用Winhex軟件查看到的DBR區(qū)數(shù)據(jù),如圖4.2所示為查看到的圖片在SD卡中存儲(chǔ)的詳細(xì)記錄信息的其中一部分?jǐn)?shù)據(jù)。其中偏移地址如下所述:偏移地址00H長(zhǎng)度3,所以如圖所示的EB 3C 90代表的是跳轉(zhuǎn)信息。偏移地址03H長(zhǎng)度8,所以4D 53

40、 44 4F 53 35 2E 30為制作工廠的信息和操作系統(tǒng)的版本信息號(hào),這里是MSDOS5。偏移地址0BH長(zhǎng)度2,在這里的00 02是有位置順序的,因?yàn)檫@里的高地址和低地址分別存放高字節(jié)和低字節(jié),所以實(shí)際的數(shù)據(jù)應(yīng)該是02 00,也就是十進(jìn)制數(shù)512,在這里說(shuō)的是一個(gè)扇區(qū)的容量是0.5KB。也或許是1024、2048、4096。偏移地址0DH長(zhǎng)度1,這里的數(shù)據(jù)為一,證明一個(gè)簇有一個(gè)扇區(qū),這里的數(shù)值絕對(duì)不可能是零,而且必須是偶數(shù)2的整數(shù)次方,例如:1、2、4、8、16、32、64、128。可是不會(huì)出現(xiàn)一個(gè)簇能夠大于32KB。偏移地址0EH長(zhǎng)度2,這里是08 00。所以在改變順序后就是00 08

41、,這里是說(shuō)保留區(qū)域中的保留扇區(qū)數(shù)為有8個(gè)。那么就可以知道下面的FAT1區(qū)的開(kāi)始的地址就是:0 x08乘以0 x200(每個(gè)扇區(qū)的字節(jié)數(shù))等于0 x1000。偏移地址10H長(zhǎng)度1,內(nèi)容:02。表示此卷中的FAT結(jié)構(gòu)的份數(shù)為2,另外一個(gè)是備份的。偏移地址11H長(zhǎng)度2,內(nèi)容:0002。轉(zhuǎn)換一下,就是0200H,表示根目錄項(xiàng)數(shù)(RootEntries)能夠保存在該分區(qū)的根目錄文件夾中的32個(gè)字節(jié)長(zhǎng)的文件和文件夾名稱項(xiàng)的總數(shù)。在一個(gè)典型的硬盤(pán)上,本字段的值為512。通過(guò)該數(shù)據(jù)也可以算出根目錄后的用戶數(shù)據(jù)區(qū)的偏移量地址,即用戶數(shù)據(jù)區(qū)首地址就等于根目錄地址加上512乘以32。偏移量地址13H,長(zhǎng)度2,內(nèi)容:

42、4DED。轉(zhuǎn)換一下就是ED4DH,即大約32MB的SD卡存儲(chǔ)量。表示小扇區(qū)數(shù)(SmallSector)。這個(gè)分區(qū)的扇區(qū)數(shù)表示為16位(65536)。對(duì)大于65536個(gè)扇區(qū)的分區(qū)來(lái)說(shuō),本字段的值為0,而使用大扇區(qū)數(shù)來(lái)取代它。偏移地址16H,長(zhǎng)度2,內(nèi)容:EC00。轉(zhuǎn)換一下為00EC,這個(gè)數(shù)值表示的是每個(gè)文件配置表占用的扇區(qū)數(shù)。所以一個(gè)扇區(qū)的Byte數(shù)就是0 x00EC乘以0 x200,在這里是0 x1D800。然后按照數(shù)據(jù)的存放順序,可以依次計(jì)算出啟動(dòng)區(qū)、FAT1、FAT2、根目錄、數(shù)據(jù)區(qū)的相應(yīng)的位置。偏移量地址20H,長(zhǎng)度2,內(nèi)容:0000。表示大扇區(qū)數(shù)(LargeSector)。如果小扇區(qū)數(shù)

43、字段的值為0,本字段就包含該FAT16分區(qū)中的總扇區(qū)數(shù)。如果小扇區(qū)數(shù)字段的值不為0,那么本字段的值為0。偏移量地址36H,長(zhǎng)度為8,內(nèi)容:46 41 54 31 36 20 20 20,對(duì)于ASCII碼為“FAT16”,表示文件系統(tǒng)類型(FileSystemType)根據(jù)該磁盤(pán)格式,該字段的值可以為FAT、FAT12或FAT16。根據(jù)上面得到的信息可以進(jìn)行以下的地址推導(dǎo):?jiǎn)?dòng)區(qū)地址理所當(dāng)然是0 x00,F(xiàn)AT1地址是0 x1000,F(xiàn)AT2地址是0 x1000+0 x1D800=0 x1E800。根目錄區(qū)地址是0 x1E800+0 x1D800=0 x3C000。經(jīng)過(guò)實(shí)際測(cè)試后發(fā)現(xiàn)和前面計(jì)算的

44、結(jié)果是一致的。SD卡數(shù)據(jù)每次讀取都是以一整個(gè)扇區(qū),也就是每次以0.5KB的大小來(lái)讀取數(shù)據(jù)的。同理,其他圖片也是這樣在SD卡中處理數(shù)據(jù)的。4.2.3 FAT16文件系統(tǒng)的數(shù)據(jù)處理在FAT16文件系統(tǒng)里,根目錄占用了32個(gè)扇區(qū),在33個(gè)扇區(qū)的時(shí)候才利用簇的計(jì)算方式開(kāi)始數(shù)據(jù)的信息處理,通常在這個(gè)簇的前面都會(huì)繼續(xù)應(yīng)用扇區(qū)作為單位。在這個(gè)第33簇,系統(tǒng)不會(huì)給零簇或是第一個(gè)簇這樣說(shuō),在這里標(biāo)號(hào)是第二簇,代表存放數(shù)據(jù)的順序的第一個(gè)簇存放數(shù)據(jù),但是在標(biāo)號(hào)上面,這是第二個(gè)簇,F(xiàn)AT有很多版本,例如有FAT12、FAT16和FAT32的區(qū)別,這里的主要區(qū)別是FAT表表示的是保存其中的簇的位置信息不一樣,例如FAT

45、16的簇在FAT表里面通常會(huì)有2Byte來(lái)保存數(shù)據(jù),2Byte是二進(jìn)制中的十六位,在這里只能標(biāo)有最大的簇號(hào)是65535,所以每個(gè)0 xFFFF是32K的時(shí)候,F(xiàn)AT32能夠使用的容量是32個(gè)65535的容量,也就是2GB的容量,所以FAT16不能夠讀取2GB以上的數(shù)據(jù),F(xiàn)AT表就是一個(gè)存儲(chǔ)的地方,在這里的這個(gè)表格是每?jī)蓚€(gè)Byte進(jìn)行保存,在遇到較短的文件名的時(shí)候,系統(tǒng)將會(huì)拆分成兩個(gè)組成部分,然后分別進(jìn)行存儲(chǔ),在這里有主文件名,還有一個(gè)是擴(kuò)展名,0 x00 x7表示的是存儲(chǔ)的主文件名,0 x80 xA表示的是存儲(chǔ)的擴(kuò)展名。這里不會(huì)保存在兩個(gè)名稱中間的點(diǎn)。主文件名稱如果少于8Byte的時(shí)候或者擴(kuò)展

46、名少于3Byte,都會(huì)用20H來(lái)表示。0 x0地址的地方如果存儲(chǔ)著的數(shù)據(jù)是00H,那么就代表這個(gè)目錄項(xiàng)是NULL;如果這里存儲(chǔ)的數(shù)據(jù)是E5H,說(shuō)明目錄項(xiàng)已經(jīng)在某個(gè)地方應(yīng)用過(guò),可是相應(yīng)的文件或者文件夾已經(jīng)被刪掉了。在文件的文件名中如果是起始字符是點(diǎn)或者兩個(gè)點(diǎn)的符號(hào)作為起始字符,就說(shuō)明在這里存儲(chǔ)的數(shù)據(jù)是一個(gè)子目錄的目錄項(xiàng)。一個(gè)點(diǎn)表示的是當(dāng)前的所在目錄,但是兩個(gè)點(diǎn)表示的是在這個(gè)目錄之前的前一級(jí)目錄。0 xB這里是說(shuō)每個(gè)比特分成了八位數(shù)據(jù),每一位都代表某個(gè)屬性的狀態(tài),例如只有后三位是101,其余位數(shù)是0的時(shí)候,說(shuō)明這個(gè)文件是只讀的系統(tǒng)文件,最后面的0 xC0 x15是FAT保存時(shí)間用的。4.2.4 圖

47、片存儲(chǔ)的數(shù)據(jù)位置計(jì)算由于本設(shè)計(jì)中的圖片將會(huì)存儲(chǔ)在SD卡的根目錄下,所以數(shù)據(jù)在讀取將會(huì)直接對(duì)根目錄的數(shù)據(jù)進(jìn)行計(jì)算,在本次的設(shè)計(jì)中,第一個(gè)偏移地址是00H,長(zhǎng)度8,內(nèi)容:驅(qū)動(dòng)器的名稱,8個(gè)字節(jié)。偏移地址20H,長(zhǎng)度8,內(nèi)容:5445535420202020。表示第一個(gè)文件的文件名;偏移地址80H,長(zhǎng)度8,內(nèi)容:4E45585420202020。表示第二個(gè)文件名;偏移地址28H,長(zhǎng)度3,內(nèi)容:545854。表示文件類型,為ASCII字符表示;偏移地址2BH,長(zhǎng)度1,內(nèi)容:20。表示文件屬性,00000000(讀寫(xiě));00000001(只讀);00000010(隱藏);00000100(系統(tǒng));000

48、01000(卷標(biāo));00010000(子目錄);00100000(歸檔);偏移地址36H,長(zhǎng)度2,內(nèi)容為BA49。表示時(shí)間=小時(shí)*2048+分鐘*32+秒/2。得出的結(jié)果換算成16進(jìn)制填入即可。根據(jù)這個(gè)就可以找到文件的下一個(gè)簇號(hào)在FAT1中的位置了。1000H+02H*02H(因?yàn)?個(gè)字節(jié)存一個(gè)簇號(hào))=1004H;偏移地址3AH,長(zhǎng)度2,為該文件開(kāi)始簇號(hào),這里也是套用了格式。轉(zhuǎn)換下為0062,根據(jù)這個(gè)就可以找到文件2.bmp下一個(gè)簇號(hào)在FAT1中的位置了;1000H+62H*02H(因?yàn)?個(gè)字節(jié)存一個(gè)簇號(hào))=10C4H;偏移地址3CH,長(zhǎng)度4,內(nèi)容:59BE0000。表示文件長(zhǎng)度,轉(zhuǎn)換后為00

49、00BE59就是48729字節(jié);偏移地址9CH,長(zhǎng)度4,內(nèi)容:32000000。表示文件長(zhǎng)度,轉(zhuǎn)換后為00000032就是50字節(jié)。從文件的大小可以計(jì)算出,需要占用多少個(gè)簇。根據(jù)前面的數(shù)據(jù),每個(gè)簇放1個(gè)扇區(qū),每個(gè)扇區(qū)512個(gè)字節(jié),那么一個(gè)簇的空間就是512字節(jié)了。那么48729字節(jié)需要96個(gè)簇,這96個(gè)簇的開(kāi)始的地址就可以計(jì)算出來(lái)了。其中一個(gè)圖片1.bmp占用了48KB的空間,另一個(gè)圖片2.bmp占用了512B的空間。文件是按照整簇來(lái)存放的,不夠一個(gè)簇的大小(由上面算得,一個(gè)簇為一個(gè)扇區(qū)即512B),也要給一個(gè)簇的空間。1.bmp開(kāi)始簇地址存放在FAT1中的偏移量了:02H,由此可以先計(jì)算出1

50、.bmp的第一簇?cái)?shù)據(jù)存放地址為:3C000H(根目錄地址)+20H*200H(前面提到的用戶數(shù)據(jù)偏移量)+(02H-02H)*01H(1個(gè)簇有1個(gè)扇區(qū))*200H=40000H。偏移量02H意思是簇號(hào)在FAT1中存儲(chǔ)都是從02H開(kāi)始的。1.bmp的第一個(gè)簇?cái)?shù)據(jù)所在的地址指針的地址存放在FAT1中的:1000H(FAT1起始地址)+02H*02H=1004H。而1004H地址上的數(shù)據(jù)為:0300,轉(zhuǎn)換后為0003H,那么由此可以計(jì)算出1.bmp的第二個(gè)簇?cái)?shù)據(jù)所在地址為:3C000H(根目錄區(qū)地址)+20H*200H(前面提到的用戶數(shù)據(jù)偏移量)+(03H-02H)*01H(1個(gè)簇有1個(gè)扇區(qū))*20

51、0H=40200H(緊接著第一個(gè)簇)。依此類推,一直到FAT1中偏移量為C2H處出現(xiàn)了數(shù)據(jù)FFFF,這表示1.bmp文件存儲(chǔ)結(jié)束,那么前面的0061H就是文件最后一個(gè)簇偏移量。可以由此算一下文件大小為:0061H減去0002H加上0001H(補(bǔ)償),所以是96個(gè)簇,和實(shí)際相符。同樣的道理可以算出2.bmp文件的存放地址。首地址偏移量為62H,由此可以先計(jì)算出2.bmp的第一簇?cái)?shù)據(jù)存放地址為:3C000H(根目錄地址)+20H*200H(前面提到的用戶數(shù)據(jù)偏移量)加上(62H減去02H)乘以01H(1個(gè)簇有1個(gè)扇區(qū))*200H=4C000H。而第一個(gè)簇?cái)?shù)據(jù)所在的地址指針的地址存放在FAT1中的:

52、1000H(FAT1起始地址)加上62H乘以02H等于10C4H。而10C4H地址上的數(shù)據(jù)為:FFFF,即結(jié)束了,也就是說(shuō)由于2.bmp不滿一個(gè)簇,那么只能分配到一個(gè)簇的地址空間。對(duì)于本設(shè)計(jì)中讀取圖片數(shù)據(jù)的方法就是利用這個(gè)方式來(lái)實(shí)現(xiàn)的。4.2.5 基于Verilog的BMP解碼設(shè)計(jì)存儲(chǔ)在SD卡中的圖片數(shù)據(jù)雖然是RGB的格式,是從左下到右上的順序來(lái)保存圖片,在8比特的圖片信息中也有色彩表的格式順序,輸出給顯示器的時(shí)候,通常是傳送的數(shù)據(jù)從左到右傳送,自上而下的順序依次逐漸掃描輸出圖片信息;SD卡的控制模塊將會(huì)找到一個(gè)照片的數(shù)據(jù),然后發(fā)送到數(shù)據(jù)流的控制模塊,而且將照片的信息設(shè)置一個(gè)標(biāo)志位,這個(gè)標(biāo)志位

53、在每次發(fā)送的數(shù)據(jù)有效的時(shí)候,保證一個(gè)高脈沖的時(shí)間周期,然后數(shù)據(jù)流控制模塊將會(huì)分別對(duì)數(shù)據(jù)進(jìn)行多種處理,所以8比特的圖片,800*600的像素下,將會(huì)有四十八萬(wàn)字節(jié)的圖像數(shù)據(jù),五十四個(gè)文件信息頭的數(shù)據(jù),還有210字節(jié)的色彩表數(shù)據(jù);在從內(nèi)存卡里面讀取圖片的時(shí)候,標(biāo)志位將會(huì)產(chǎn)生481078次高脈沖的周期時(shí)鐘。圖4.3圖片數(shù)據(jù)流示意圖圖片數(shù)據(jù)處理的大體流向如圖4.3所示。因?yàn)楸敬蔚膬?nèi)存卡數(shù)據(jù)位BMP的圖片數(shù)據(jù)讀取,所以在文件信息頭中的數(shù)據(jù)都是一樣的,不用去判斷文件的格式是不是BMP圖片數(shù)據(jù),所以,色彩表存到IP核的時(shí)候,將會(huì)實(shí)例化一個(gè)色彩保存的RAM里面去,在這里用rgb_ram來(lái)表示,210個(gè)色彩表數(shù)

54、據(jù)翻譯成28字節(jié)的各種顏色的存儲(chǔ)數(shù);在SDRAM控制模塊里面,將會(huì)有兩個(gè)輸如輸出接口,分別定義為wrfifo和rdfifo,照片的信息數(shù)據(jù)將會(huì)存儲(chǔ)在wrfifo里面進(jìn)行緩存,然后根據(jù)需求,發(fā)放到顯示器需要輸出照片的時(shí)候,能夠依次從rdfifo信號(hào)輸出,從這里輸出的數(shù)據(jù)通過(guò)譯碼翻譯出來(lái),最后將會(huì)發(fā)放到顯示器的驅(qū)動(dòng)程序從屏幕上顯示出來(lái)預(yù)期的照片圖像。在本次實(shí)現(xiàn)過(guò)程中需要用到軟件來(lái)實(shí)現(xiàn)BMP圖片的取模操作,如圖4.4所示,首先需要將BMP格式的圖片進(jìn)行取模操作,然后將處理好的圖片數(shù)據(jù)存入SD卡中,本課題的存儲(chǔ)位置將會(huì)放在SD卡的根目錄下面。圖4.4 BMP轉(zhuǎn)換RGB565的取模軟件第5章系統(tǒng)實(shí)現(xiàn)5.

55、1 環(huán)境配置能夠應(yīng)用SPI模式讀取SD卡開(kāi)發(fā)板,Altera的QuartusII軟件,以及存有照片的SD卡和一個(gè)液晶顯示器。通過(guò)QuartusII建立工程,借助軟件編譯修改編寫(xiě)過(guò)程中的語(yǔ)法錯(cuò)誤,分別對(duì)每個(gè)模塊進(jìn)行編譯,最后執(zhí)行RTL綜合。圖5.1 VGA模塊如圖5.1 VGA模塊所示,在實(shí)現(xiàn)數(shù)字相框的過(guò)程中需要利用這個(gè)模塊連接顯示器。根據(jù)所提供的RGB信息,將圖片輸出到顯示器上面,在這里的VGA驅(qū)動(dòng)也是由Verilog語(yǔ)言編寫(xiě)來(lái)實(shí)現(xiàn)相應(yīng)功能的。圖5.2 FPGA開(kāi)發(fā)板如圖5.2 FPGA開(kāi)發(fā)板所示,本次設(shè)計(jì)基于FPGA開(kāi)發(fā)實(shí)現(xiàn),本課題采用的芯片為Altera的Cyclone III開(kāi)發(fā)板。圖5

56、.3 SD卡讀取模塊如圖5.3 SD卡讀取模塊,這個(gè)模塊將通過(guò)編寫(xiě)的Verilog代碼來(lái)實(shí)現(xiàn)SPI模式讀取SD卡中數(shù)據(jù),作為圖片信息的輸入模塊是數(shù)字相框不可缺少的。5.2 功能模塊實(shí)現(xiàn)(1)系統(tǒng)的時(shí)鐘與復(fù)位控制模塊實(shí)現(xiàn)主要完成PLL例化和復(fù)位控制的這里有三個(gè)輸出(外部和內(nèi)部SDRAM的時(shí)鐘、其他模塊使用的時(shí)鐘),主要代碼如下實(shí)現(xiàn):always(posedgeclkornegedgerst_n)if(!rst_n)rst_r1=1b1;elserst_r1=1b0;always(posedgeclkornegedgerst_n)/例化PLL產(chǎn)生模塊PLL_ctrluut_PLL_ctrl(.ar

57、eset(pll_rst),/PLL復(fù)位信號(hào),高電平復(fù)位.inclk0(clk),/PLL輸入時(shí)鐘,25MHz);/SPI主機(jī)輸出數(shù)據(jù)控制reg spi_mosir;/SPI主機(jī)輸出從機(jī)輸入數(shù)據(jù)信號(hào)always (posedge clk or negedge rst_n)if(!rst_n) spi_mosir = 1b1;else if(spi_tx_en) begincase(cnt84:1)/主機(jī)發(fā)送8bit數(shù)據(jù)4d1: spi_mosir = spi_tx_db7;/發(fā)送bit74d8: spi_mosir = spi_tx_db0;/發(fā)送bit0default: spi_mosir

58、= 1b1;/spi_mosi沒(méi)有輸出時(shí)應(yīng)保持高電平endcaseendelse spi_mosir = 1b1;/spi_mosi沒(méi)有輸出時(shí)應(yīng)保持高電平assign spi_mosi = spi_mosir;/SPI主機(jī)輸入數(shù)據(jù)控制reg7:0 spi_rx_dbr;/SPI主機(jī)輸入從機(jī)輸出數(shù)據(jù)總線寄存器always (posedge clk or negedge rst_n)if(!rst_n) spi_rx_dbr = 8hff;else if(spi_rx_en) begincase(cnt8)/主機(jī)接收并鎖存8bit數(shù)據(jù)5d3: spi_rx_dbr7 = spi_miso;/接收b

59、it75d5: spi_rx_dbr6 = spi_miso;/接收bit65d17: spi_rx_dbr0 = spi_miso;/接收bit0default: ;endcase(2)SD卡模塊實(shí)現(xiàn)這個(gè)模塊是SD卡控制模塊控制上電復(fù)位、命令的控制信息傳送、圖片數(shù)據(jù)的讀出等,也就是完成對(duì)SD卡中的基本控制。主要代碼如下實(shí)現(xiàn)modulesdcard_ctrl(clk,rst_n,spi_miso,spi_mosi,spi_clk,spi_cs_n,sd_dout,sd_fifowr,sdwrad_clr);/例化SPI傳輸控制模塊spi_ctrluut_spictrl();/例化SD命令控制模

60、塊sd_ctrluut_sdctrl();Endmodule/狀態(tài)控制always (sdinit_cstate or retry_rep or delay_done or nclk_cnt or cmd_rdy or spi_rx_dbr or arg or arg_r or done_5s) begincase(sdinit_cstate)SDINIT_RST: beginif(delay_done) sdinit_nstate = SDINIT_CLK;/上電后40us延時(shí)完成,進(jìn)入74+CLK狀態(tài)else sdinit_nstate = SDINIT_RST;/等待上電后40us延時(shí)完

溫馨提示

  • 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)論