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

一種簡易數碼相框的設計

2011-01-22 03:35:48丁鑫蕾劉一清
網絡安全與數據管理 2011年3期
關鍵詞:嵌入式設計

丁鑫蕾,劉一清,余 奔

(華東師范大學,上海 200241)

一種簡易數碼相框的設計

丁鑫蕾,劉一清,余 奔

(華東師范大學,上海 200241)

為應對數碼相框成本較高的問題,介紹了一種簡易數碼相框的設計,實現從SD卡讀取bmp圖片文件并在TFT液晶屏上顯示的功能。本設計成本低,具有很高的實用價值。

數碼相框;SD 卡;STM32;μCOS-II;FATFS

本文介紹一種簡單、低成本的數碼相框的設計,它可以幻燈片式地瀏覽SD卡中的bmp格式的照片。

1 硬件電路

該數碼相框的硬件平臺以32 bit STM32系列的處理器STM32F103ZET6為核心,外圍電路主要包括一個2.8英寸的TFT液晶模塊、1個SD卡插座、5個LED燈和2個按鍵。硬件系統如圖1所示。

系統關鍵器件的電路原理圖如圖2所示。STM32系列MCU基于專為要求高性能、低成本、低功耗的嵌入式應用而設計的ARM Cortex-M3內核,包括了STM32F103增強型系列和STM32F101基本型系列。本設計使用的是增強型系列的高端型號STM32F103ZET6,其最高主頻可以達到72 MHz,內置512 KB的閃存以及64 KB的SRAM。同時其外設資源豐富,包括并行LCD接口(FSMC)、12 通道DMA 控制器、定時器、ADC、DAC、SDIO、I2C、SPI、USB、UART 等[1]。可以說,它完全超越了同價位的8 bit或者16 bit單片機的性能,而又不像一般32 bit處理器那樣價格昂貴。

本設計使用了一個帶有通用并行接口(FSMC)的2.8英寸TFT液晶模塊,這種液晶模塊很常見,而且價格便宜,另外還有3.2英寸甚至更大的尺寸可供選擇。STM32F103ZET6通過一個SPI接口與SD卡座連接,以便于控制和簡化程序,而且對于靜態圖片,SPI的傳輸速度已足夠。另外,還有用于調試的2個按鍵和5個LED。

2 軟件設計

2.1 移植FATFS文件系統

FATFS文件系統是一種完全免費開源的FAT文件系統模塊,專為小型嵌入式系統而設計,用標準C語言編寫,很方便移植[2]。本設計移植的FATFS版本為R0.07e,它支持 FAT12、FAT16和 FAT32,由于不涉及多個存儲介質,因此,本設計僅移植了其簡化版本Tiny-FATFS,其占用內存更少,只需要大約1 KB RAM。FATFS具有三層結構,如圖3所示。

應用層為用戶提供了一系列接口函數,只需要簡單的調用即可,而無需理會復雜的FAT協議。移植過程中,需要使用者修改的是底層接口(包括存儲介質讀寫接口和供給文件創建修改時間的實時時鐘)。

Tiny-FATFS 包含 5 個文件,分別是 tff.c、tff.h、diskio.c、diskio.h和integer.h,移植之前首先要編寫初始化和讀寫SD卡的SPI接口代碼。代碼主要包括SD_Init()、SD_ReadSingleBlock()、SD_ReadMultiBlock()、SD_WriteSingle Block()、SD_WriteMultiBlock()函數,而這些代碼將在diskio.c中被調用。移植FATFS文件過程:

(1)準備好SPI讀寫SD卡的代碼后就可以修改diskio.c了,實際上只需要編寫6個接口函數:

①存儲媒介初始化函數:DSTATUS disk_initialize(BYTE drv)。由于存儲媒介是SD卡,所以實際上是對SD卡的初始化。drv是存儲媒介號碼,由于Tiny-FATFS只支持一個存儲媒介,所以drv應恒為0。執行無誤返回0,錯誤返回非 0。

②狀態檢測函數:DSTATUS disk_status(BYTE drV)。檢測是否支持當前的存儲媒介,對Tiny-FATFS來說,只要drv為 0,就認為支持,然后返回 0。

③讀扇區函數:DRESULT disk_read(BYTE drv,BYTE*buff,DWORD sector,BYTE.count)。在 SD 卡讀接口函數的基礎上編寫,*buff存儲已經讀取的數據,sector是開始讀的起始扇區,count是需要讀的扇區數。1個扇區為512 B。執行無誤返回0,錯誤返回非0。

④寫扇區函數:DRESULT disk_write(BYTE drv,const BYTE*buff,DWORD sector,BYTE count)。 在 SD 卡 寫 接口函數的基礎上編寫,*buff存儲要寫入的數據,sector是開始寫的起始扇區,count是需要寫的扇區數。1個扇區為512 B。執行無誤返回0,錯誤返回非0。

⑤存儲媒介控制函數:DRESULT disk_ioctl(BYTE drv,BYTE ctrl,VoiI*buff)。 ctrl是控制代碼,*buff存儲或接收控制數據。可以在此函數里編寫自己需要的功能代碼,如獲得存儲媒介的大小、檢測存儲媒介的上電與否,存儲媒介的扇區數等。如果是簡單的應用,也可以不用編寫,返回0即可。

⑥DWORD get_fattime(Void)。本設計未涉及到文件的創建和修改,因此實時時鐘部分未編寫,直接返回一個32 bit無符號整數即可。

(2)對Tiny-FATFS進行配置,主要是修改tff.h和diskio.h。在diskio.h中,只需要配置一項:使能或者使能只讀屬性。由于本設計只涉及到SD卡的讀操作,因此定義使能只讀屬性:#define_READONLY1。這樣可以裁減掉關于寫SD卡的那部分代碼,從而使文件系統更精簡。

在tff.h中,需要對整個文件系統做全面的配置,包括:

①#define_MCU_ENDIAN 1。STM32是小端模式,選擇1。

②#define_FS_READONLY 1。使能只讀操作,去掉寫操作,節省空間。

③#define_FS_MINIMIZE 3。設為3表示使用最基本的FATFS函數,最大限度節省空間。

④#define_USE_STRFUNC 0。禁用字符串函數功能。

⑤#define_USE_FORWARD 0。禁用forward功能。

⑥#define_FAT321。支持FAT32文件系統。

⑦#define_USE_FSINFO 1。支持FAT32磁盤信息獲取。

⑧#define_USE_SJIS 0。禁用shift-JIS碼。

⑨#define_USE_NTFLAG 1。對文件名大小寫敏感。

到此為止,FATFS的移植就全部完成了。

編寫一段程序測試FATFS是否移植成功。以1 s的間隔循環讀取SD卡中的bmp格式圖片并顯示,main函數的流程如圖4所示。

需要說明的是,為了便于循環讀圖,SD卡中存儲的bmp格式圖片被刻意用數字編號來命名(如:1.bmp~n.bmp),這樣,在程序中只需要簡單處理文件名就可以按順序讀取圖片了。

通常 bmp圖片都是 24位顏色深度的(即 RGB=8:8:8),而本設計使用的TFT液晶是16位顏色深度的(即RGB=5:6:5),因此在程序中需要作轉換處理才能正常顯示。轉換程序代碼如下:

由于bmp圖片是最簡單的圖片格式,不涉及解碼處理,因此大大簡化了程序設計。

2.2 在μCOS-II平臺上加載FATFS文件系統

FATFS的加載比其他一些嵌入式文件系統要簡單[4],只需要在工程中加入tff.c和diskio.c這兩個文件即可。需要注意的是,在tff.h中有以下4個函數:

專家共識推薦:原位癌的存在與否對疾病的預后及后續治療有直接影響,同時基于膀胱腫瘤的多中心性及易復發性,建議電切時對符合條件的患者行膀胱或前列腺部尿道多點活檢。

這4個函數與stdio.h中定義的函數有沖突,需要將其刪除。

此外,tff.h中還定義了一個EOF,也與stdio.h中的定義有沖突,只需把它重命名即可(如EOFF)。

2.3 在μCOS-II平臺上編寫任務函數

定義三個任務以實現數碼相框功能:

其中,TaskStart的優先級最高,在main函數中,初始化μCOS-II后即被創建:

負責初始化目標板、SD卡和LCD,并創建任務Task1,同時處理按鍵USER_BUTTON_1。當按下USER_BUTTON_1時,刪除任務Task2,其流程如圖5所示。

Task2任務則只負責執行流水燈程序,即循環依次點亮5個LED,其優先級最低。

3 測試結果

本設計的實驗平臺是STM32紅牛開發板,實物效果圖如圖6所示。

實驗結果表明,μCOS-II+FATFS方案實現的數碼相框工作穩定,開機后μCOS-II加載成功即開始循環讀取SD卡中的bmp圖片并在TFT屏上顯示。圖片間的切換是簡單的拉幕式切換,間隔為5 s(可調),經長時間觀察,無讀取失敗、掉幀、花屏等問題,每張圖片都是完美展示。根據測試程序的設計,按下USER_BUTTON_2按鍵則流水燈任務被創建,5個LED燈開始以走馬燈的形式循環點亮;與此同時,圖片讀取和顯示未受到任何影響,證明μCOS-II的任務調度機制穩定可靠。再按下USER_BUTTON_1,則流水燈任務被刪除,LED停止動作。

本設計基本實現了數碼相框的功能,其設計的硬件極其簡單,相比于一些基于高端32 bit MCU(如 ARM)的方案[5],成本要低得多。相比于一些簡單的讀圖顯示程序,本設計基于嵌入式實時操作系統μCOS-II,在穩定性和可擴展性上都具有優勢。另外,STM32性能優越,可以很流暢地運行μCOS-II和FATFS系統,也能夠驅動QVGA甚至更高分辨率的TFT液晶屏,這是同價位8 bit或16 bit單片機所不能比擬的[6]。本設計還有需要改進的地方,如增加JPEG解碼、增強文件名支持、改進幻燈切換方式以及添加其他功能等。

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

[2]洪岳煒,王百鳴,謝超英.一種易于移植和使用的文件系統FATFS Module[J].單片機與嵌入式系統應用,2008(1):29-31.

[3]任哲.嵌入式實時操作系統μC/OS-II原理與應用[M].北京:北京航空航天大學出版社,2005.

[4]王命延,余愛軍.一種加載在 μCOS-II內核上的嵌入式文件系統[J].南昌大學學報,2005,29(2):197-199.

[5]王偉能,吳爍宇,陳弟虎,等.基于S3C2410和Qt/Embedded的數碼相框設計[J].微計算機信息,2009,25(6-2):81-83.

[6]鄭友勝.μCOS-II在 C51中的應用設計[J].中小企業科技,2007(1):126-127.

Design of a simple digital photo frame

Ding Xinlei,Liu Yiqing,Yu Ben

(East China Normal University,Shanghai 200241,China)

To deal with the high cost of the digital photo frame,this article introduccd a design of a simple digital photo frame which can read a bmp picture file from SD card and display it on the TFT LCD screen.The low-cost program has a very high practical value.

digital photo frame;SD card;STM32;μCOS-II;FATFS

TP368

A

1674-7720(2011)03-0015-03

2010-09-07)

丁鑫蕾,女,1986年生,碩士研究生,主要研究方向:高速電路設計與視頻圖像處理。

猜你喜歡
嵌入式設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
搭建基于Qt的嵌入式開發平臺
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 自拍偷拍欧美日韩| 亚洲三级a| 91久久大香线蕉| 全部免费特黄特色大片视频| 久久中文字幕2021精品| 福利在线一区| 亚洲三级电影在线播放| 日韩 欧美 小说 综合网 另类| 日韩专区第一页| 国产欧美日韩资源在线观看| 无码日韩人妻精品久久蜜桃| 91av成人日本不卡三区| 99成人在线观看| 四虎AV麻豆| 国产精品极品美女自在线看免费一区二区| 被公侵犯人妻少妇一区二区三区| 22sihu国产精品视频影视资讯| 国产综合精品日本亚洲777| 日本精品αv中文字幕| 国产成人亚洲欧美激情| 中美日韩在线网免费毛片视频| 久久女人网| yy6080理论大片一级久久| 色婷婷亚洲综合五月| 国产在线观看一区精品| 国产女人18水真多毛片18精品| 国产毛片不卡| 久久久久久国产精品mv| 国产精品自在自线免费观看| 五月婷婷综合网| 四虎永久免费网站| 亚洲中文字幕无码爆乳| 婷婷99视频精品全部在线观看| 亚洲成a人片7777| 天堂成人在线视频| 97se亚洲综合在线| 一本大道东京热无码av| 中文字幕乱码中文乱码51精品| 国产精品99一区不卡| 亚洲第一页在线观看| 国产在线视频二区| 国产视频入口| 黄色一及毛片| 国产成人亚洲日韩欧美电影| 久久综合伊人 六十路| 日韩久久精品无码aV| 国产精品亚洲五月天高清| 日韩精品一区二区深田咏美| 亚洲成人高清无码| 欧美精品高清| 日韩欧美中文在线| 美女一区二区在线观看| 亚洲欧美人成人让影院| AV网站中文| 日韩中文字幕亚洲无线码| 动漫精品中文字幕无码| 欧美色丁香| 三上悠亚在线精品二区| 91青草视频| 在线亚洲精品福利网址导航| 福利一区三区| 在线日本国产成人免费的| 国产乱子伦手机在线| 精品国产香蕉在线播出| 99久久国产综合精品2020| 久久国产亚洲偷自| 99九九成人免费视频精品| 内射人妻无码色AV天堂| 国产高清无码第一十页在线观看| 91年精品国产福利线观看久久| 国产91视频免费| 国产精品嫩草影院视频| 亚洲精品视频网| 国产视频大全| 四虎影视8848永久精品| 真实国产精品vr专区| 国产精品xxx| 国产性精品| 国产成人一区免费观看| 国产情侣一区二区三区| 国产全黄a一级毛片| 亚洲第一网站男人都懂|