徐文嫻,謝玉萍,師文慶
(廣東海洋大學電子與信息工程學院,廣東湛江 524088)
在這個信息高速發展的時代,紙質的照片非常不方便保存,容易丟失,損壞,發黃,褪色。現在很少有人沖洗照片,膠卷時代已成為過去式,現如今人們更多是選擇將圖片存儲到SD卡中,再通過數碼相框讀取SD卡的圖片,將其顯示出來。這樣做既可以永久保存圖片,又可以獲得高清晰度的數碼照片。這種繪制圖片,循環播放,具備極高的視覺享受,讓生活充滿科技感。
通過了解各個硬件模塊的時序圖、TFT_LCD的液晶驅動代碼、電阻式觸摸屏代碼、[BMP/JPG/JPEG]圖片的解碼、基于SPI的SD驅動代碼、FATFS文件系統管理SD卡、功能模塊的切換,可實現彩色畫板和數碼相框兩個基本功能。
設計路線:顯示字符→觸屏功能→彩色畫板→存儲照片→讀SD卡→顯示圖片→設置幻燈片的播放時間。圖1所示為整體的系統設計圖,圖2為功能圖。

圖1 系統設計圖

圖2 功能圖
用一個標志位flag來切換不同的功能。用EXTI外部中斷,得到flag的不同值。在主函數中,根據flag不同,執行不同的代碼。
(1)按鍵0:播放PICTURE目錄的圖片,以250ms的速度播放。觸摸LCD屏上部可向上翻頁,觸摸LCD屏下部可向下翻頁,觸摸LCD屏中部可暫停播放。圖3(a)所示為屏幕界面。
(2)按鍵1:彩色畫板,有RST(復位),SAVE(保存,圖片名字為當前時間),畫筆顏色(RED、YELLOW、BLUE、GREEN)。圖3(b)所示為彩色繪圖。
(3)按鍵2:播放PAINT目錄的圖片,其他功能如按鍵0。

圖3 屏幕顯示圖
該設計采用2.8寸TFT_LCD屏用于顯示和觸摸,圖4為TFT_LCD原理圖。該觸摸屏的分辨率為240*320,ILI9341液晶驅動,XPT2046觸摸驅動,3.3 V供電。

圖4 TFT_LCD原理圖
(1)TFT_LCD顯示
驅動:ILI9341-65K-color,RGB(5,6,5-bit)inputdata存儲顏色數據,自帶顯存。
畫點流程如圖5所示。讀點流程如圖6所示。

圖5 畫點流程圖

圖6 讀點流程圖
(2)TFT_LCD觸屏
電阻式觸摸屏基本原理:當手指觸摸屏幕時,兩層導電層間的電阻在觸摸點位置發生變化,在橫坐標和縱坐標方向上產生信號。控制器檢測到信號后,導電層接通橫軸方向的5Ⅴ均勻電壓場,另一導電層將接觸點的電壓進行A/D轉換,得到電壓值后與5Ⅴ相比即可得觸摸點的橫軸坐標,同理得出縱軸的坐標。
(3)AD轉換器XPT2046
電阻屏觸摸感應,輸出兩個方向的電壓。根據不同的電壓值來判斷觸摸的位置。需要特定的觸摸屏AD轉換芯片XPT2046,如圖7所示。

圖7 XPT2046原理圖
XPT2046是內含12位分辨率,4根導線,25 kHz轉換速率的A/D逐步逼近型轉換器。
SD卡是一種新一代存儲器,被廣泛地應用于便攜式設置上,例如數碼相機和多媒體播放器等,如8所示。采用SPI訪問模式,其定義如圖9所示。
SD卡初始化流程如下:
(1)初始化SPI接口及相關IO。
(2)上電延時,發送>74個SCK時鐘。
(3)卡復位(CMD0),進入IDLE狀態。
(4)發送CMD8,檢查是否支持SD卡2.0協議。
(5)根據不同協議檢查SD卡(相關命令:CMD55、CMD41、CMD58和CMD1等)。
(6)取消片選,發多8個CLK,結束初始化。

圖8 SD卡原理圖

圖9 SPI模式定義
該設計EXTI外部中斷的作用為切換各個功能模塊,如圖10所示。


圖10 EXTI外部中斷
外部中斷流程如下:
(1)初始化IO口為輸入,開啟復用時鐘;
(2)設置IO口與中斷的映射關系;
(3)初始化線上中斷,設置觸發條件等;
(4)配置中斷分組,并使能中斷;
(5)編寫中斷服務。
FATFS是FAT文件系統模塊,圖11所示,可以用FAT32來管理大容量存儲器的讀寫操作,如SD卡、硬盤等。

圖11 FAT文件系統
(1)底層接口。底層存儲媒介讀/寫接口(SD卡)和給文件創建提供時間的實時時鐘RTC。
(2)中間層FATFS模塊。實現對FAT文件的讀/寫協議。
(3)最頂層是應用層。調用FATFS模塊提供的應用接口函數,如f_open,f_read,f_write和f_close等,這些接口可以讓直接讀/寫文件。
(1)BMP圖片
BMP圖片采用位映射存儲格式,占用的空間很大,不采用任何壓縮,沒有失真。按從左到右、從下到上的順序掃描。
(2)JPG圖片
JPEG文件后輟名為”.Jpg”或”.jpeg”,同BMP格式不同,JPEG是一種有損壓格式,能夠將圖像壓縮在很小的儲存空間,容易造成圖像數據的損傷。JPEG/JPG解碼運用解碼庫:TjpgDec。
在該設計中,RTC實時時鐘的作用:在彩色畫板時,設置圖片名字。
RTC時鐘初始化流程如下:
(1)使能電源時鐘、允許訪問RTC;
(2)使能外部晶振、選擇RTC時鐘源為外部低速晶振(RCC_RTCCLKSource_LSE);
(3)設置日期和時間;
(4)配置外部中斷控制線;
(5)使能外部中斷,設置中斷優先級;
(6)編寫rtc的中斷服務函數。
該設計是基于TFT_LCD觸摸顯示屏做的數碼相框,搭載FATFS文件系統管理SD卡。可用于背景墻上,有彩色畫板,幻燈片瀏覽圖片功能。讓多媒體更加貼近我們的生活,感受數碼的感覺。
以后科技發展中,觸摸面板將會成為生活中不可缺少的家居,辦公用品。“桌面觸摸”將成為一大新亮點。人們即將走入“萬物觸摸時代”。