王波
摘要:介紹了基于STM32單片機的數(shù)碼相框顯示系統(tǒng)的設計。針對傳統(tǒng)的相冊,不能動態(tài)實現(xiàn)圖片的展示。將基于嵌入式技術的Cortex-M3內(nèi)核單片機STM32引入控制系統(tǒng),通過單片機控制圖片的讀取并控制實現(xiàn)圖片在觸摸屏上的動態(tài)展示,具有極高的實用價值。
關鍵詞:STM32單片機;數(shù)碼相框;系統(tǒng)設計;圖片
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)17-0241-02
嵌入式系統(tǒng)無疑是當前最熱門最有發(fā)展前途的IT應用領域之一。嵌入式系統(tǒng)用在一些專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時對實時響應要求很高。數(shù)字攝影的興起不可避免地引起了數(shù)碼相框的發(fā)展,因為僅有不到35%的數(shù)碼照片被打印出來。數(shù)碼相框的基本原理就是采用普通相框的造型,把原來相框中間的照片部分換成液晶顯示屏,配上電源,存儲介質(zhì)等,使得同一個相框內(nèi)可以循環(huán)播放照片,比普通照片的單一顯示功能更有優(yōu)勢。本設計屬于數(shù)字影音娛樂產(chǎn)品,需要較為強勁的處理器進行圖像解碼的工作,而STM32 具有超低的價格、超多的外設、豐富的型號、優(yōu)異的實時性能、杰出的功耗控制和極低的開發(fā)成本等特點。因此,進行基于STM32平臺的數(shù)碼相框系統(tǒng)的設計具有重要的理論意義和實用價值。
1 硬件設計
該數(shù)碼相框以基于Cortex-M3內(nèi)核的單片機STM32F103VET6為核心,外圍電路包括一個TFT液晶屏,一個SD卡插座,以及2個按鍵,電源供電由5V直流,通過ASM1117-3.3芯片轉換為單片機所需的3.3V。
基于Cortex-M3內(nèi)核的單片機STM32F103VET6的存儲程序控制,從SD卡讀取圖片,解碼后輸出到TFT-LCD上顯示,同時通過按鍵可以切換到時間模式。
1.1電源電路設計
電源電路采用的ASM1117-3.3V電壓轉換芯片,將5V直流輸入直接轉換為3.3V。具體電路圖如下。
1.2 SD卡電路設計
Micro SD卡是一種極細小的快閃存儲器卡,它被廣泛地應用于便攜式裝置上,例如數(shù)碼相機、個人數(shù)碼助理(PDA)和多媒體播放器等。本次我們采用Micro SD卡作為存儲介質(zhì)。Micro SD卡支持兩種可選的通信協(xié)議,分別為SD模式和SPI模式,MCU可以選擇以上任意一種模式同Micro SD卡通信,Micro SD卡模式允許4線的高速數(shù)據(jù)傳輸,SPI模式允許簡單的通過SPI接口來和Micro SD卡通信,這種模式同SD卡模式相比就是喪失了速度。本次硬件電路板使用的是SD卡模式來讀寫SD卡。
1.3液晶顯示電路設計
Thin Film Transistor(薄膜場效應晶體管),是指液晶顯示器上的每一液晶象素點都是由集成在其后的薄膜晶體管來驅動。從而可以做到高速度、高亮度、高對比度顯示屏幕信息,TFT-LCD(薄膜晶體管液晶顯示器)是多數(shù)液晶顯示器的一種。
本設計采用4.3 寸屏,分辨率 480X X 272,64K色,數(shù)據(jù)接口16位,背光驅動采用白光驅動器提供背光用的橫流源,使背光更加均勻,背光明暗控制采用TTL電平或者PWM模式控制。屏上帶電阻式觸摸屏,模塊板上帶SPI 控制方式的觸摸屏控制電路。具體電路如下。
1.4單片機控制電路
STM32系列閃存微控制器是意法半導體公司(ST)基于ARM公司具有突破性的Cortex-M3內(nèi)核的處理器,該處理器是專門設計于滿足集高性能、低功耗、實時應用、具有競爭性價格于一體的嵌入式領域的要求。此次設計采用的具體型號是STM32F103VET6,具體電路如下圖所示。
2 軟件設計
本設計需要用到FAT(FAT16/32)文件系統(tǒng)來讀取SD 卡上的字庫和UNICODE到GBK的轉換碼表到W25X16部分,因此要重點介紹FAT文件系統(tǒng)。FAT文件系統(tǒng)本身比較復雜,所以這里只簡單介紹一下。
常用的文件系統(tǒng)有FAT12/16/32等,F(xiàn)AT12是最古老的文件系統(tǒng),只能管理8M左右的空間,現(xiàn)在基本淘汰了。FAT16則可以管理2G的空間(通過特殊處理也能管理2G以上的空間),而FAT32則能管理到2TB(2048GB)的空間。FAT32較FAT16的優(yōu)勢還在于FAT32采用了更小的簇,可以更有效的保存信息,而不會造成較多的浪費。
單片機在上電復位后首先會進行各個模塊的初始化,將系統(tǒng)時鐘配置為72MHz,對Micro SD卡和TFT液晶顯示器的狀態(tài)進行初始化,然后開始圖片顯示。軟件流程圖如下。
在初始化成功后調(diào)用FAT32文件系統(tǒng)計算Micro SD卡的總存儲容量并查詢到符合解碼的文件個數(shù),在液晶屏上顯示出文件名、文件個數(shù)以及Micro SD卡的總存儲容量,之后進行正常的圖片顯示,在外部8MHz晶振作用下每張圖片的刷新時間大概是2秒,每兩張圖片直接間隔1秒,之后循環(huán)顯示。
3 小結
本設計從硬件和軟件兩方面介紹了基于STM32的數(shù)碼相框的制作。硬件上解決了STM32單片機與Micro SD卡和TFT液晶的連接,軟件方面主要解決了Micro SD的讀取、FAT32文件系統(tǒng)的應用、TFT液晶屏的驅動以及圖片格式的解碼,本設計還有不足以及需要改進的地方,將在以后的工作中進行改進。
參考文獻:
[1] 薛蓮,張國權.基于AVR單片機的數(shù)碼相框設計[J].信息通信,2013.
[2] 韓英.一種基于BMP圖片的顯示方法[J].儀表技術,2011(2):61-62.