精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【紫光同創國產FPGA教程】【第十四章】SD卡讀取BMP圖片顯示例程

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-20 13:44 ? 次閱讀

原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(alinx.com)。

1. 實驗簡介

在前面的實驗中我們練習了SD卡讀寫,HDMI視頻顯示等例程,本實驗將SD卡里的BMP圖片讀出,寫入到外部存儲器,再通過HDMI、LCD等顯示。

本實驗如果通過液晶屏顯示,需要有液晶屏模塊。

2. 實驗原理

在前面的實驗中我們在HDMI、LCD上顯示的是彩條,是FPGA內部產生的數據,本實驗將彩條替換為SD內的BMP圖片數據,但是SD卡讀取速度遠遠不能滿足顯示速度的要求,只能先寫入外部高速RAM,再讀出后給視頻時序模塊顯示。

BMP圖片格式

本實驗直接在SD卡中搜索BMP文件,假設每個文件都是從SD的某個扇區第一個字節開始,根據BMP文件頭的特征找到BMP。

BMP(全稱Bitmap)是Windows操作系統中的標準圖像文件格式,可以分成兩類:設備相關位圖(DDB)和設備無關位圖(DIB),使用非常廣。它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BMP文件所占用的空間很大。BMP文件的圖像深度可選1bit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。由于BMP文件格式是Windows環境中交換與圖有關的數據的一種標準,因此在Windows環境中運行的圖形圖像軟件都支持BMP圖像格式。

對于程序設計來說最重要的是找到BMP文件頭,BMP圖像文件頭格式如下:

1)1-2:(這里的數字代表的是字節,下同)圖像文件頭。0x4d42=’BM’,表示是Windows支持的BMP格式。(注意:查ascii表B 0x42,M 0x4d,bfType 為兩個字節,B為low字節,M為high字節所以bfType=0x4D42,而不是0x424D,請注意)

2)3-6:整個文件大小。4690 0000,為00009046h=36934。

3)7-8:保留,必須設置為0。

4)9-10:保留,必須設置為0。

5)11-14:從文件開始到位圖數據之間的偏移量(14+40+4*(2^biBitCount))(在有顏色板的情況下)。4600 0000,為00000046h=70,上面的文件頭就是35字=70字節。

位圖信息

6)15-18:位圖圖信息頭長度。

7) 19-22:位圖寬度,以像素為單位。8000 0000,為00000080h=128。

8)23-26:位圖高度,以像素為單位。9000 0000,為00000090h=144。

9)27-28:位圖的位面數,該值總是1。0100,為0001h=1。

10)29-30:每個像素的位數。有1(單色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增強型真彩色)。1000為0010h=16。

11)31-34:壓縮說明:有0(不壓縮),1(RLE 8,8位RLE壓縮),2(RLE 4,4位RLE壓縮,3(Bitfields,位域存放)。

12)35-38:用字節數表示的位圖數據的大小,該數必須是4的倍數,數值上等于:一行所占的字節數×位圖高度。0090 0000為00009000h=80×90×2h=36864。假設位圖是24位,寬為41,高為30,則數值= (biWidth*biBitCount+31)/32*4*biHeight,即=(41*24+31)/32*4*30=3720

13)39-42:用象素/米表示的水平分辨率。A00F 0000為0000 0FA0h=4000。

14)43-46:用象素/米表示的垂直分辨率。A00F 0000為0000 0FA0h=4000。

15)47-50:位圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。

16)51-54:對圖象顯示有重要影響的顏色索引的數目。如果是0,表示都重要。

本實驗使用不壓縮,24(16M色,真彩色)的BMP圖片,文件頭大小是54個字節,前兩個字節為“BM”,緊接著4個字節是文件大小,19-22字節為圖片寬度,這些信息是程序設計中要使用的重要信息。

3. 程序設計

由于SD卡讀寫實驗,HDMI、LCD顯示實驗種我們已經練習過SD卡和視頻相關知識,這里不再講解。

本實驗的重點模塊是BMP圖片讀取模塊bmp_read,bmp_read模塊完成SD卡中讀取一個扇區的數據,然后和BMP的文件頭對比,如果前2個字節等于“BM”,然后再找到19-22字節,對比圖片的寬度和輸入要求的寬度是否一致,如果一致就認為找到一張BMP圖片,讀取出來,去掉前面54字節的文件頭,寫入外部存儲器。

bmp_read狀態機如下所示,有搜索命令以后,進入搜索狀態“S_FIND”,開始不斷地讀取SD卡,找到符合要求的BMP圖片,找到以后進入“S_READ_WAIT”,判斷FIFO空間大小,如果FIFO空間足夠大,進入“S_READ”狀態。

o4YBAGAvUDSAE2fLAAAeEKe9XhQ225.jpg

bmp_read模塊狀態機

信號名稱 方向 說明
clk in 時鐘輸入
rst in 異步復位輸入,高復位
ready out 空閑狀態指示
find in 搜索播放請求
sd_init_done in sd卡初始化完成
state_code out 狀態碼0,表示sd還在初始化1,sd卡初始化完成,等待按鍵按下2,正在搜索BMP文件3,找到BMP文件,正在讀取
bmp_width in 搜索BMP圖片的寬度
write_req out 寫外部存儲器請求
write_req_ack in 寫外部存儲器請求應答
sd_sec_read out sd卡讀請求
sd_sec_read_addr out sd卡讀請求扇區地址
sd_sec_read_data in sd卡讀到的數據
sd_sec_read_data_valid in sd卡讀數據有效
sd_sec_read_end in sd卡讀請求完成
bmp_data_wr_en out bmp文件寫使能
bmp_data out bmp文件的音頻數據

bmp_read模塊端口

video_timing_data模塊完成視頻時序到FIFO讀取的信號的轉換,主要原理就是把視頻時序中的“DE”做為FIFO的讀信號,但是讀出的數據會有延時,所以做了相應的對齊處理。

4. 實驗現象

1)格式化sd卡(fat32格式),sd卡必須是2.0以上的版本(容量大于4G

pIYBAGAvUDSAEzAVAABd35d-dXU597.jpg

2)把BMP格式文件放到sd卡中,需要注意,BMP圖片數據存儲是倒序,所以先用圖片處理工具上下顛倒一下。根據顯示輸出不同的分辨率,放置不同分辨率的圖片,HDMI輸出采用1024x768分辨率,7寸液晶屏模塊AN070分辨率是800x480,4.3寸液晶屏模塊AN430分辨率是480x272。

o4YBAGAvUDSAfEH0AACTxYUWpJc037.jpg

3)將準備好的sd卡注入開發板的sd卡槽(sd卡不能帶電插拔),上電,下載實驗程序,等待LED1變亮時,按下KEY2,這個時候LED2會變亮,表示正在搜索BMP文件,如果找到BMP圖片LED1、LED2會顯示會同時亮,這時候顯示器(或者液晶屏模塊,根據實驗工程選擇,連接方法在《HDMI測試實驗教程》中已講述)就會顯示相應的圖片。如果sd卡內有多張BMP,可以再次按按鍵KEY2,會顯示下一張圖片。


開發板

顯示效果

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21678

    瀏覽量

    602037
  • HDMI
    +關注

    關注

    32

    文章

    1676

    瀏覽量

    151683
  • SD卡
    +關注

    關注

    2

    文章

    560

    瀏覽量

    63813
  • BMP
    BMP
    +關注

    關注

    0

    文章

    48

    瀏覽量

    17044
  • 紫光同創
    +關注

    關注

    5

    文章

    82

    瀏覽量

    27490
收藏 人收藏

    評論

    相關推薦

    紫光同創國產FPGA教程】【第八章】SD讀寫實驗

    文件系統非常復雜,本實驗不做講解,在后續的實驗中我們通過搜索特定的文件頭來讀特殊的文件,完成音頻播放、圖片讀取顯示等。
    的頭像 發表于 02-05 11:35 ?8295次閱讀
    【<b class='flag-5'>紫光</b><b class='flag-5'>同創</b><b class='flag-5'>國產</b><b class='flag-5'>FPGA</b>教程】【第八章】<b class='flag-5'>SD</b><b class='flag-5'>卡</b>讀寫實驗

    國產FPGA介紹-紫光同創

    紫光同創紫光集團旗下紫光國微的子公司,成立于2013年,有十余年可編程邏輯器件研發經歷,布局覆蓋高中低端FPGA產品。 早在2015年,
    發表于 01-24 10:45

    紫光同創FPGA有哪些型號

    請問紫光同創FPGA有哪些型號?分別用于什么場景?
    發表于 01-24 10:48

    使用iconview控件時,能否直接從sd讀取bmp格式的圖片進行顯示啊 ?

    請教下,使用 iconview 控件時,能否直接從sd讀取bmp格式的圖片進行顯示啊 ?
    發表于 04-28 08:11

    至芯科技之altera 系列FPGA教程 第十四篇 分配管腳

    至芯科技之altera 系列FPGA教程 第十四篇 分配管腳
    發表于 08-11 03:33

    【小梅哥FPGA進階教程】第十四章 TFT屏顯示圖片

    十四、TFT屏顯示圖片本文由杭電網友曾凱峰貢獻,特此感謝學習了小梅哥的TFT顯示屏驅動設計后,想著在此基礎上通過TFT屏顯示一張
    發表于 02-26 16:44

    FPGA實現對SD圖片讀取

    怎么用fpga實現對sd中的圖片進行讀取,送到SDRAM中。求大神指教
    發表于 04-11 10:39

    請教下,讀取sd,u盤里面的bmp圖片解碼顯示 ?

    本帖最后由 hpdell 于 2016-1-12 15:12 編輯 請教下,讀取sd、u盤里面的bmp圖片解碼
    發表于 10-24 08:10

    請問如何顯示一張BMP圖片

    原子大哥,請問怎么顯示一張BMP圖片,你的那個STMf103RBT6的開發板的例程中,ILI93XX.c中好像沒有這個函數,而那個圖片
    發表于 02-19 22:10

    軟件定義無線電手冊,第十四

    軟件定義無線電手冊,第十四版。pentek公司出的資料。
    發表于 02-18 09:52

    請問使用iconview控件時可以直接從sd讀取bmp格式的圖片進行顯示嗎 ?

    請教下,使用 iconview 控件時,能否直接從sd讀取bmp格式的圖片進行顯示啊 ?我看
    發表于 04-07 04:36

    【正點原子FPGA連載】第十九章SDBMP圖片LCD顯示實驗-領航者ZYNQ之嵌入式開發教程

    原子公眾號,獲取最新資料第十九章SDBMP圖片LCD顯示實驗在“
    發表于 09-05 15:39

    【正點原子FPGA連載】第二十章SDBMP圖片HDMI顯示實驗-領航者ZYNQ之嵌入式開發教程

    。20.2實驗任務本章的實驗任務是使用領航者ZYNQ開發板讀取SD中存放的BMP格式圖片,分辨率為1920*1080,并將其
    發表于 09-05 15:40

    紫光同創FPGA開發套件,高性能國產FPGA方案

    紫光同創FPGA開發套件,高性能國產FPGA方案,100%國產化,全系列產品,方案可定制,滿足多
    發表于 11-16 17:25

    視頻_高速放大器設計指南 第十四

    視頻_高速放大器設計指南 第十四
    發表于 03-05 15:34 ?0次下載