999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的BMP圖片解碼系統

2011-03-14 05:13:06邸興張建花陳貝
電子設計工程 2011年10期
關鍵詞:信息系統

邸興,張建花,陳貝

(中國飛行試驗研究院陜西西安710069)

在現代便攜式設備的應用過程中,常常需要在系統中顯示一些圖片,而在各種圖片格式中,BMP又是最具代表性的一種圖片格式。

BMP是一種與硬件設備無關的圖像文件格式,使用非常廣泛。它采用位映射存儲格式,除了圖像深度可選以外,BMP文件的圖像深度可選l、4、8及24 bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。

典型的BMP圖像文件由3部分組成:位圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;位圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息。

ARM公司作為全球32位低功耗處理器設計領域的領導者,曾經設計過很多高性能低功耗的處理器,廣泛應用于各種便攜式手持系統中,意法半導體公司的STM32[1]處理器采用ARM公司最新的V7體系架構的內核Cortex-M3,它的速度比ARM7快三分之一,功耗低四分之三,同時集成了分支預測,單周期乘法,硬件除法等功能,大大提高了處理器的數據處理能力,同時采用最新的Thumb-2指令集,有效地降低了代碼的密度,提高了程序的執行效率,通過對功耗和性能的分析,本文中采用的處理器為STM32F103RBT6[2],它可以實現最新的在應用中編程,使得系統的軟件更新更加容易實現[3],達到了性能和功耗的平衡,可以應用于很多領域,如工業控制,溫度測量[4]等。

1 系統的工作原理

本系統以STM32F103RBT6為核心,采用晶彩光電的AM240320TFT液晶模塊作為顯示器,完成對解碼后圖片的顯示,需要顯示的圖片存儲在SD卡中,處理器通過SPI方式讀取SD卡里面的圖片信息,由于STM32內部RAM很小,不能作為整幅圖片的緩沖區,所以本系統的設計過程中采用了用時間換空間的方式,即采用了邊解碼邊顯示的方法,省去了外部數據RAM,隨之而來的就是顯示的速度比直接調到內存中要慢一些。

1.1 STM32F系列ARM微控制器簡介

STM32F103RBT6使用高性能的ARM Cortex-M3 32位的RISC內核,工作頻率為72 MHz,內置高速存儲器(高達128 K字節的閃存和20 K字節的SRAM),豐富的增強I/O端口和連接到兩條APB總線的外設。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和一個PWM定時器,還包含標準和先進的通信接口:多達2個I2C和SPI、3個USART、一個USB和一個CAN。供電電壓2.0~3.6 V[2],一系列的省電模式保證低功耗應用的要求。

1.2 TFT液晶顯示模塊簡介

TFT液晶顯示屏是薄膜晶體管型液晶顯示屏。TFT液晶為每個像素都設有一個半導體開關,每個像素都可以通過點脈沖直接控制,因而每個節點都相對獨立,并可以連續控制,不僅提高了顯示屏的反應速度,同時可以精確控制顯示色階,所以TFT液晶的色彩更真。本文中采用的TFT液晶屏分辨率位320×240,采用的控制芯片為ILI9320,自帶總大小為172 820(240×320×18/8)的顯存,模塊的16位數據線與顯寸的對應關系為565方式,它支持多種控制輸入信號。本文中采用的是8080接口,通過IO模擬8080總線協議。

1.3 SD卡的特點

SD卡(Secure Digital Memory Card)中文翻譯為安全數碼卡,是一種基于半導體快閃記憶器的新一代記憶設備,它被廣泛應用于便攜式裝置,例如數碼相機、個人數碼助理(PDA)和多媒體播放器等。SD卡一般支持2種操作模式:SD卡模式和SPI模式,本系統的設計過程中采用SPI模式完成SD卡的讀寫操作。

1.4 FAT文件系統簡介

常用的文件系統有FAT12/16/32等,FAT12是最古老的文件系統,只能管理8 M左右的空間,現在基本淘汰了。FAT16則可以管理2 G的空間(通過特殊處理也能管理2 G以上的空間),而FAT32則能管理到2 TB(2 048 GB)的空間。FAT32較FAT16的優勢還在于FAT32采用了更小的簇,可以更有效的保存信息,而不會造成多的浪費。

本系統設計過程中采用了FAT32文件系統,它的主要組成部分如下:

MBR稱為主引導記錄區,該區存儲了分區表等信息,位于SD卡的扇區0(物理扇區),在其分區信息里面記錄了DBR所在的位置,SD卡一般只會有一個分區,所以也就只要找到分區1的DBR所在位置就可以了。

DBR稱為操作系統引導記錄區,如果沒有MBR,那么DBR就位于0扇區;如果有,則必須通過MBR區得到DBR所在的地址,然后讀出DBR信息。在DBR區,可以知道每個扇區所占用的字節數、每個簇的扇區數、FAT表的份數、每個FAT表的扇區數、跟目錄簇號、FAT表1所在的扇區等一系列非常重要的信息。

FAT稱為文件分配表(FAT表),一個卡上會存在2個FAT表,一個用作備份,一個使用。FAT表一般緊隨DBR,另一個FAT表則緊隨第一個FAT表,這樣只要知道了第一個FAT表的位置及大小,那么第二個FAT表的位置也就確定了。FAT表記錄了每個文件的位置和區域,是一種鏈式結構。

FDT稱為文件根目錄表,這個區域固定為32個扇區,假設每個扇區為512個字節,那么根目錄下最多存放512個文件(假設都用短文件名存儲,每個短文件名占32個字節)。文件目錄表是另一個重要的部分,FAT文件系統中(僅以短文件名介紹),文件目錄項在目錄表下以32個字節的方式記錄。

2 系統硬件設計

2.1 供電部分電路設計

整個系統中的元件均為3.3 V 器件,由于系統供電采用電池或者直流電源供電,通過三端穩壓芯片LM1117-3.3,為主控芯片STM32F103RBT6供電,用二極管IN4007串接在電源正極,為系統提供電源反接保護。供電部分原理如圖1所示。

圖1 系統供電部分原理圖Fig.1Schematic of power section

2.2 液晶顯示部分電路設計[5]

液晶顯示部分主要由微控制器STM32F103RBT6驅動AM240320L8TNQW-00H完成人機界面狀態的顯示,通過發送命令字,完成液晶模塊的初始化,完成對內容的顯示,顯示部分的硬件電路接口圖如圖2所示。

圖2 系統液晶接口原理圖Fig.2Schematic of liquid crystal interface

2.3 SD卡讀寫部分的硬件設計

處理器主機可以選擇SD卡模式和SPI模式中任意一種模式同SD卡通信,SD卡模式允許4線的高速數據傳輸。SPI模式允許簡單的通過SPI接口來和SD卡通信,這種模式同SD卡模式相比就是喪失了速度。通過讀取SD卡中的文件,識別出各個目錄下的圖片數據,然后對數據進行解碼,驅動液晶完成圖片的顯示,SD卡接口部分電路如圖3所示。

圖3 SD卡接口原理圖Fig.3Schematic of SD card interface

3 BMP圖片的解碼算法

3.1 BMP文件組成

BMP文件由文件頭、位圖信息頭、顏色信息和圖形數據4部分組成。BMP文件頭數據結構含有BMP文件的類型、文件大小和位圖起始位置等信息,它占14個字節。BMP位圖信息頭數據用于說明位圖的尺寸等信息,它占40個字節。BMP顏色表用于說明位圖中的顏色,它有若干個表項,每一個表項定義一種顏色。位圖信息頭和顏色表組成位圖信息,位圖數據記錄了位圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上,Windows規定一個掃描行所占的字節數必須是4的倍數(即以long為單位),不足的以0填充。

3.2 BMP圖片的讀取顯示算法

首先根據讀取到的BMP圖片數據得到BMP的頭部信息,得到文件類型,大小和文件的起始位置,然后讀取BMP位圖信息頭,這里面記錄了圖片的格式的信息,如BMP圖片的寬度和高度,以及每個像素所占的位數,下面舉例來說明BMP圖片的解碼過程。

常用的BMP圖片格式有24位真彩圖,16位圖,和32位圖,解碼過程略有不同,下面分別介紹,首先是24位圖,當根據BMP的頭文件信息得到數據的起始地址之后,從起始地址開始讀數據,假設每次讀入512字節,由于AM240320TFT采用16位的565方式顯示,即就是說需要把每個像素所占的24位數據,也就是3個字節,轉換為16位的數據,即2個字節,這里以前3個字節為例來說明解碼算法:

tmp_color=temp[1]>>3;

color|=tmp_color;

tmp_color=temp[2]>>2;

tmp_color<<=5;

color|=tmp_color;

tmp_color=temp[3]>>3;

tmp_color<<=11;

color|=tmp_color;

其中color為需要提供給液晶顯示器每個像素點的顏色值,tmp_color為解碼過程中的臨時變量,數組temp存儲24位格式的像素值。同樣也可以解碼16位顏色圖和32位顏色圖,解碼16位顏色圖的算法比較簡單,只需要解出連續的兩個值然后組合成16位的565格式的顏色值送到液晶顯示,其解碼算法如下:

tmp_color=temp[1];

color=temp[2];

color<<=8;

color|=tmp_color;

在32位圖的解碼過程中需要注意一個問題,就是32位圖中實際上只使用了24位存儲像素值,也就是32位中的前3位,最后一位沒有存儲像素值信息,所以在解碼的過程中只需要解碼前3位,將第4位跳過,具體解碼算法如下:

tmp_color=temp[i];

color|=tmp_color>>3;

i++;

tmp_color=temp[i];

tmp_color>>=2;

color|=tmp_color<<5;

i++;

tmp_color=temp[i];

tmp_color>>=3;

color|=tmp_color<<11;

i=i+2;

3.3 STM32解碼并顯示BMP圖片程序[6]

在BMP圖片解碼過程中,有兩種方式:一種是將BMP圖片數據從外部SD卡中調入內存中,從內存中解碼,解碼后將圖片數據顯示在TFT屏上;第二種方式是一邊從SD卡中讀數據一邊解碼顯示,兩種方式各有優缺點。第一種方式的優點是由于整個解碼過程全部在內存中進行,所以解碼的速度比較快,顯示圖片的速度快。由于一般處理器內部RAM都是有限的,而這種方式對RAM的消耗特別大,所以采用這種方式需要外擴SRAM。第二種方式是從SD卡總邊讀取邊解碼,例如一般FAT32文件簇的大小都是512字節,所以可以以簇為單位來讀取圖片信息,然后顯示接著讀取下一簇,這種方式的缺點是,由于SD卡的SPI方式速度較慢,解碼一張320×240的圖片大概需要1 s,但是這種方式對系統的內存消耗比較低,比較適合于沒有外部RAM的系統。本系統中,采用第二種方式進行解碼顯示,STM32采用外部8 MHz的晶振作為輸入時鐘,內部鎖相環將時鐘倍頻到72 MHz作為系統時鐘,采用GPIO口模擬8080時序并行驅動2.8寸TFT屏,屏幕分辨率為320×240,處理器首先完成各種外設初始化,接著初始化FAT文件系統,然后從SD卡中讀取一簇的數據,解碼顯示,接著讀取下一簇。整個程序的流程圖如圖4所示。

4 結論

本文采用了基于ARM的Cortex-M3內核的STM32,它基于最新ARMv7架構,設計了一個BMP圖片解碼系統,完成了在2.8寸TFT屏上解碼并顯示BMP圖片,通過讀取SD卡中的圖片數據,邊讀取邊解碼顯示,實現了在內存有限的處理器中的BMP圖片的解碼算法。

圖4 BMP解碼流程圖Fig.4Flow chart of BMP decode system

[1]李寧.基于MDK的STM32處理器開發應用[M].北京:北京航空航天大學出版社,2008.

[2]王永虹,徐煒,郝立平.STM32系列ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.

[3]陳峰峰.STM32F10x在應用中編程的實現方法[J].單片機與嵌入式系統應用,2009(9):25-28.CHEN Feng-feng.The realization method of STM32F10x in application programming[J].Microcontrollers&Embedded Systems,2009(9):25-28.

[4]曹圓圓.基于STM32的溫度測量系統[J].儀器儀表與分析監測,2010(1):16-19.CAO Yuan-yuan.Temperature measurement system based on the STM32[J].Instrumentation Analysis Monitoring.2010(1):16-19.

[5]STMicroelectronics.STM32 Reference manual RM0008.[EB/OL].(2010-04-05)[2010-8-21].http://www.st.com/stonline/products/literature/rm/13902.pdf

[6]STMicroelectronics.STM32F10x_StdPeriph_Driver V3.3.0.[EB/OL].(2010-04-05)[2010-8-21].http://www.st.com/stonline/products/support/micro/files/um0427.zip.

猜你喜歡
信息系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲最大情网站在线观看| 久久99精品久久久大学生| 日韩精品免费一线在线观看| 国产在线无码一区二区三区| 精品无码一区二区在线观看| 人妻中文久热无码丝袜| 国产综合精品一区二区| 99er精品视频| 欧美在线视频a| 亚洲人人视频| 亚洲香蕉伊综合在人在线| 婷婷久久综合九色综合88| 婷婷午夜天| 日韩二区三区| 99尹人香蕉国产免费天天拍| 亚洲欧洲日韩国产综合在线二区| 日本高清有码人妻| 国内精品久久久久鸭| 国产aⅴ无码专区亚洲av综合网| 亚洲无码日韩一区| 谁有在线观看日韩亚洲最新视频| 亚洲人成网7777777国产| 在线视频精品一区| 日韩国产欧美精品在线| 午夜激情婷婷| 麻豆精品在线| 欧美成人午夜在线全部免费| 亚洲熟妇AV日韩熟妇在线| 久久国产亚洲偷自| 久久一本精品久久久ー99| 国产精品手机在线播放| 国产成人精品视频一区二区电影 | 中文字幕人成人乱码亚洲电影| 日本免费高清一区| 久久人妻xunleige无码| 五月六月伊人狠狠丁香网| 幺女国产一级毛片| 亚洲人成色在线观看| 真实国产乱子伦视频| 亚洲成网777777国产精品| 国产欧美日韩另类| 97久久超碰极品视觉盛宴| 久久一级电影| 国产微拍精品| 亚洲日韩精品无码专区97| 久久久精品无码一区二区三区| 色噜噜综合网| 国产一级毛片yw| 欧美三级自拍| 色老头综合网| 国内精品视频区在线2021| 凹凸国产分类在线观看| 无套av在线| 国产精品妖精视频| av无码一区二区三区在线| 国产视频久久久久| 大乳丰满人妻中文字幕日本| 欧美不卡视频在线观看| 高清视频一区| 无码粉嫩虎白一线天在线观看| 91精品免费久久久| 成人噜噜噜视频在线观看| 日韩a级毛片| 潮喷在线无码白浆| vvvv98国产成人综合青青| 国产精品主播| 国产十八禁在线观看免费| 激情午夜婷婷| 四虎永久在线精品国产免费| 欧美成一级| 中文字幕av无码不卡免费| 国产91九色在线播放| 国产特一级毛片| 亚洲二区视频| 中文字幕无线码一区| 国产欧美日韩91| 免费一级毛片在线播放傲雪网| 国产成人精品一区二区不卡| 97青草最新免费精品视频| 日韩一区二区三免费高清| 日韩欧美中文字幕一本| 高清无码手机在线观看|