黃杰勇,何冬(.電子科技大學(xué)中山學(xué)院電子信息學(xué)院,中山 5840;.廣東長寶信息科技股份有限公司,中山 58400)
基于STM32F407的液晶控制器設(shè)計
黃杰勇1,何冬2
(1.電子科技大學(xué)中山學(xué)院電子信息學(xué)院,中山 528402;2.廣東長寶信息科技股份有限公司,中山 528400)
現(xiàn)階段,很多工業(yè)機械控制都使用彩色液晶屏(TFT-LCD)作為顯示器,它具有重量輕、體積小、色彩度高等優(yōu)點,本文介紹以STM32F407為主控核心,配以顯示控制器芯片的一款4.3寸液晶控制器設(shè)計。
1.1方案對比
現(xiàn)在液晶控制器主要有兩種設(shè)計方案:單片機+ FPGA/CPLD和單片機+顯示控制芯片。
第一種方案的特點在于控制器完全由FPGA/ CPLD構(gòu)造邏輯,無須額外的硬件資源,采用FPGA實現(xiàn),優(yōu)點在于FPGA片內(nèi)集成了PLL,能解決在控制邏輯上時序問題。因為液晶屏控制邏輯實現(xiàn)需要讀寫各3個狀態(tài),即6個狀態(tài),假設(shè)刷新率定為60Hz時,則一個時鐘信號需要30ns,那么外部時鐘需要選擇200MHz的晶振才能實現(xiàn)顯示功能。FPGA片內(nèi)的PLL可以解決此問題。CPLD不集成片內(nèi)PLL,所以需要片外很高的時鐘才能解決高刷新率。在工業(yè)環(huán)境下,CPLD高時鐘輸入容易受到外部環(huán)境的電磁干擾,F(xiàn)PGA程序儲存在片外ROM,保密性不強。
第二種方案的特點是控制器邏輯由獨立控制芯片實現(xiàn),需要根據(jù)芯片提供的訪問模式進行操作,軟件開發(fā)難度不大??垢蓴_性和保密性優(yōu)于第一種方案,但靈活性不如第一種方案。
由于工業(yè)環(huán)境復(fù)雜,一般情況下都存在自然因素或者人為因素產(chǎn)生的電磁干擾。對比以上兩種方案,本文設(shè)計的液晶控制器選擇第二種方案:單片機+顯示控制芯片。該方案另外一個優(yōu)勢在于方便移植嵌入式操作系統(tǒng)或者圖形支持系統(tǒng)。
1.2系統(tǒng)設(shè)計框圖
本方案采用 STM32F407作為主控芯片,配以SSD1963顯示控制芯片,用于驅(qū)動4.3寸液晶屏,系統(tǒng)設(shè)計框圖如圖1所示。STM32F407微控制器以ARM Cortex-M4內(nèi)核為基礎(chǔ),在現(xiàn)有STM32微控制器產(chǎn)品組合中新增了訊號處理功能,并提高了執(zhí)行速度,工作頻率為120/168MHz。SSD1963是1215k字節(jié)幀緩沖顯示控制器,支持864×4480×424位圖形內(nèi)容,配有不同寬度并行接口總線來接收圖形數(shù)據(jù)和命令從單片機。它的顯示界面支持常見的內(nèi)存更少的液晶驅(qū)動器,每一像素的顏色深度可達24比特,單片機接口可配置為6800模式或8080模式。本控制器配有片外NAND Flash(128M×48bit),用于圖片存放。配有觸摸屏接口,用于用戶外部數(shù)據(jù)輸入。
圖1 液晶控制器系統(tǒng)框圖
1.3硬件設(shè)計
硬件原理圖主要由STM32F407通過FSMC總線連接片外 NAND Flash和 8080接口方式訪問SSD1963,SSD1963顯示控制接口原理圖如圖2所示。本控制器8080型的接口包含:DATA[0:23]、S_WR、S_RD、S_RS、S_CS。其中conf引腳接到3.3V是配置SSD1963為8080模式,該接口使用了24位的數(shù)據(jù)總線,S_WR定義一個寫周期和S_RD定義一個讀周期,如果S_WR變低時,S_CS信號為低,在S_WR上升邊緣數(shù)據(jù)或命令將被鎖入系統(tǒng),同樣讀周期將開始在S_RD變低和S_RD上升沿結(jié)束。
4.3寸屏的背景燈光由LED升壓型DC/DC轉(zhuǎn)換器PT4101以恒流方式驅(qū)動,PT4101的開關(guān)頻率典型為1.25MHz,104mV反饋電壓可降低能量損耗,還包含限流功能和輸出斷路保護,可防止因輸出過載或斷路而導(dǎo)致的損壞。觸摸屏控制采用ADS7843芯片,該芯片是一個內(nèi)置12位模數(shù)轉(zhuǎn)換、低導(dǎo)通電阻模擬開關(guān)的串行接口芯片。
STM32F407與上位機通信接口原理圖如圖3所示。R5、R6的作用用于選擇串口通信或者是74HC86異或門。串口通信是與上位機常用的通信方式,主要由發(fā)送和接收信號組成。74HC86異或門在本通信接口里實現(xiàn)信號選擇,相對串口通信,增加了兩個信號:I/O檢測和BUSY檢測。本控制器增加異或門作為另一種通信方式的主要作用在于多種協(xié)議選擇,增加控制協(xié)議的保密性。
圖2 SSD1963顯示控制接口原理圖
圖3 上位機通信接口原理圖
本液晶控制器軟件架構(gòu)如圖4所示。硬件驅(qū)動層主要實現(xiàn)STM32F407的I/O配置和NAND Flash、液晶屏、觸摸屏、RTC、串口、LED等驅(qū)動。在硬件驅(qū)動層上移植了μC/OS-II嵌入式操作系統(tǒng),應(yīng)用層則實現(xiàn)與上位機的通信協(xié)議、控制LCD協(xié)議以及繪圖、點擊動作的解釋。
圖4 液晶控制器軟件架構(gòu)框圖
2.1μC/OS-II移植
μC/OS-II是一款可移植,可植入ROM,可裁剪,搶占式的實時多任務(wù)操作系統(tǒng)內(nèi)核,廣泛應(yīng)用于微控制器、微處理器和數(shù)字信號處理器。
本控制器的μC/OS-II主要用到以下4個功能:任務(wù)配置、任務(wù)調(diào)度,任務(wù)同步,消息循環(huán)。任務(wù)配置的方法如下:
·定義任務(wù)優(yōu)先級;
·定義任務(wù)堆棧大小;
·外部任務(wù)主函數(shù)定義;
·任務(wù)堆棧定義;
·在任務(wù)列表中添加任務(wù)項。
具體任務(wù)塊定義如下:
typedef struct_RTOS_TaskBlock_{
unsigned short ID;
unsigned charPrio;
OS_STK*TaskStk;
unsigned intTaskStkSize;
void(*TaskFunc)(void*);
void*StartParam;
}RTOS_TaskBlock,*RTOS_TaskBlockPtr;
主函數(shù),主要用于創(chuàng)建任務(wù),沒有邏輯操作,例如創(chuàng)建一個任務(wù),這個任務(wù)專門用來更新界面,另一個任務(wù)專門用來處理觸屏。每個任務(wù),看成是一個獨立的循環(huán),就像多個main函數(shù)在獨自工作一樣,因為它們都彼此相對獨立,一旦有些情況需要選擇協(xié)同操作時,就需要用到消息系統(tǒng),互相通知來實現(xiàn)任務(wù)同步。本系統(tǒng)嵌入了μC/OS-II,使得調(diào)試程序變得簡單。
2.2操作液晶屏協(xié)議
本控制器的操作液晶屏的協(xié)議在應(yīng)用層實現(xiàn)。協(xié)議格式如表1所示。
表1 操作液晶屏協(xié)議
協(xié)議中幀頭、握手幀、數(shù)據(jù)幀定義如下:
//幀頭部分
Typedef struct_BS_LCDX_PROTOCOL_DW_BASEFRAMEHEAD_{unsigned char CmdType;//指令類型
}BS_LCDX_Protocol_DW_BaseFrameHead, *BS_LCDX_ Protocol_DW_BaseFrameHeadPtr;
//握手幀
typedef struct_BS_LCDX_PROTOCOL_DW_HANDSHAKE_FRAME_{BS_LCDX_Protocol_DW_BaseFrameHead FrameHead;
}BS_LCDX_Protocol_DW_HandShake_Frame,*BS_LCDX _Protocol_DW_HandShake_FramePtr;
//數(shù)據(jù)幀
typedefstruct_BS_LCDX_PROTOCOL_DW_SETDISPMEN_FRAME_{BS_LCDX_Protocol_DW_BaseFrameHeadFrameHead;
int Address;
int DataLength;
unsigned char Data[512];
}BS_LCDX_Protocol_DW_SetDispMem_Frame,*BS_LCDX _Protocol_DW_SetDispMem_FramePtr;
本液晶控制器主要用于工業(yè)控制器的人機交互系統(tǒng),硬件調(diào)試效果圖如圖5所示??刂破鞑捎脝纹瑱C+顯示控制芯片實現(xiàn),同時嵌入了μC/OS-II操作系統(tǒng),非常適合于工業(yè)環(huán)境。
圖5 硬件調(diào)試效果圖
[1]張小平,寧躍,周明輝,胡升平.基于FPGA的液晶控制器設(shè)計[J].計算機測量與控制,2005
[2]李彤,劉艷萍,王鐵宏.基于FPGA的液晶控制器研究 [J].北京航天工業(yè)學(xué)院學(xué)報,2009
[3]劉波.單片機與液晶控制器的接口設(shè)計[J].機械工程與自動化,2006.8
[4]劉繁明,王振鵬,張孟禹.SSD1963驅(qū)動RGB接口LCD的設(shè)計與實現(xiàn)[J].應(yīng)用科技,2014
[5]任哲,房紅征.嵌入式實時操作系統(tǒng)μC/OS-II原理及應(yīng)用(第3版)[M].北京航空航天大學(xué)出版,2014
STM32F407;Controller;Display Control;Embedded Operating System
Design of Liquid Crystal Device Controller Based on STM32F407
HUANG Jie-yong1,HE Dong2
(1.Institute of Electronic Information,Zhongshan College,University of Electronic Science and Technology,Zhongshan 528402 2.Guangdong Chanbo Information Technology Co.,Ltd.,Zhongshan 52840)
1007-1423(2015)10-0066-04
10.3969/j.issn.1007-1423.2015.10.019
黃杰勇(1983-),男,廣東中山人,碩士,實驗師,研究方向為嵌入式系統(tǒng)的應(yīng)用研究
2015-03-05
2015-03-13
液晶顯示屏在工業(yè)領(lǐng)域應(yīng)用廣泛,工業(yè)控制系統(tǒng)的工作環(huán)境比較復(fù)雜,一般情況下都存在自然因素或者人為因素產(chǎn)生的電磁干擾。對目前常用液晶控制器設(shè)計的方案進行對比分析,提出基于STM32的液晶控制器設(shè)計,采用單片機+顯示控制芯片的設(shè)計方法。單片機采用STM32F407作為主控芯片,配以SSD1963顯示控制芯片,并配置128M*8bit的片外Flash用于圖片儲存。軟件系統(tǒng)設(shè)計移植嵌入式操作系統(tǒng)μC/OS-II,進行多任務(wù)處理,成功設(shè)計一款液晶控制器。
STM32F407;控制器;顯示控制;嵌入式操作系統(tǒng)
電子科技大學(xué)中山學(xué)院教學(xué)質(zhì)量工程建設(shè)項目(No.JY201410)
何冬(1985-),男,廣東廣州人,學(xué)士,工程師,研究方向為嵌入式軟件系統(tǒng)應(yīng)用、大數(shù)據(jù)分析處理
Liquid crystal display is widely used in the industrial field since the working environment,the industrial control system is complex with electromagnetic interference generated by natural or human factors in general.Based on comparative analysis of the current commonly used liquid crystal controller design scheme,puts forward the design of LCD controller based on STM32,uses SCM+display control chip design method.MCU STM32F407 is used as main control chip,with SSD1963 display control chip,and the configuration of the 128M*8bit chip Flash is used for image storage.The design of software system transplants the embedded operating system μC/OS-II for multitasking to make a LCD controller successfully design.