戴軍建, 張傳勝
(1.長春理工大學(xué) 光電工程學(xué)院,吉林 長春 130022;2.中國科學(xué)院長春光學(xué)精密機械與物理研究所,吉林 長春 130033)
隨著人們生活水平的提高,人機交互技術(shù)被廣泛應(yīng)用于人們的日常生活當(dāng)中,其中,TFTLCD液晶顯示器件以其體積小、重量輕、低電壓、低功耗、低輻射、全色彩等特點得到廣泛的應(yīng)用[1-2]。
專用的人機交互界面系統(tǒng)的設(shè)計比較復(fù)雜,不僅需要軟件的編寫與調(diào)試,還需要與硬件電路和液晶屏類型相匹配,需要反復(fù)修改調(diào)試,如果需要在已經(jīng)成型的系統(tǒng)中修改功能或更換屏幕,那就需要花費很多的時間去重新設(shè)計,所花費的時間不亞于重新設(shè)計一套新系統(tǒng),十分繁瑣。為此,文中設(shè)計了一種基于STM32的通用人機交互界面模塊,模塊使用STM32微控制器驅(qū)動液晶屏和觸控板,并通過運行人機交互圖像接口軟件模塊,在使用時只需要把要顯示的界面圖像放到FLASH存儲器中,利用一個串口與上位MCU相連接即可,通過實測,通用人機交互界面模塊達到了設(shè)計要求。
TFT-LCD的顯示驅(qū)動原理采用逐行掃描方式,即當(dāng)一行被選通以后,這一行中的各列信號同時加到列上,并維持一個掃描行的時間,當(dāng)這一時間結(jié)束后選通下一行,各列的薄膜晶體管電路施加下一行的顯示電壓。
文中選用STM32F103ZET6微控制器,驅(qū)動TFT-LCD和觸控板,該微控制器是ST公司生產(chǎn)的32位RISC處理器,基于ARM公司的CORTEX-M內(nèi)核,擁有64KRAM、512KB NORFlash、1個USB2.0接口、1個CAN接口、8個定時器、5個USART接口、3個12位ADC模數(shù)轉(zhuǎn)換器、2個12位數(shù)模轉(zhuǎn)換器、112個通用I/O口、2個I2C接口、2個I2S接口、3個SPI接口、12通道DMA控制器、支持8080模式LCD并行接口,可直接支持8080總線接口的LCD控制器。STM32F103ZET6微控制器的工作頻率高達72MHz,運算速率高達1.25MIPS,具有良好的功能和適用性,且價格低廉,在工業(yè)控制領(lǐng)域中有著大量的應(yīng)用[3-6]。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
觸摸技術(shù)是當(dāng)今最流行的一種人機交互接口。基于原理的不同,觸摸屏可以分為電阻式、電容式、表面聲波式等。電阻式觸摸屏在工業(yè)上應(yīng)用較廣,其原理是通過測量橫向和縱向的電阻值來獲得觸點的坐標,目前比較常見的是四線電阻觸控屏。四線電阻觸控屏由兩層透明金屬層組成,工作時每層均增加5V恒定電壓:一個豎直方向,一個水平方向。總共需4根電纜,當(dāng)有觸控筆或手指按下時,觸點處的上下兩層金屬層接觸,由于在豎直方向和水平方向電阻都是線性的,可以測得觸點在這兩個方向的分電壓值,進而得到觸點相對于觸屏邊界的相對距離,并轉(zhuǎn)換成觸控板的坐標,通常觸點坐標的檢測是通過A/D采集轉(zhuǎn)換來實現(xiàn)的。STM32F103ZET6微控制器有3個12位ADC模數(shù)轉(zhuǎn)換器,所以,把觸控板的4根引腳連接到A/D轉(zhuǎn)換模塊的四路通道上。
由于觸摸屏和液晶屏是兩種不同的物理器件。對于液晶屏而言,它的坐標以像素為單位。而觸摸屏的觸點數(shù)據(jù)是觸點的物理坐標,該坐標是通過觸摸屏連接的A/D轉(zhuǎn)換器采集得到的。要想實現(xiàn)觸摸屏上的物理坐標與液晶屏上的像素點坐標一一對應(yīng)上,兩者之間就需要一定的轉(zhuǎn)換,即校正。而且電阻式觸摸屏由于自身的原因,參數(shù)會發(fā)生變化,因此需要經(jīng)常性地校正。比較常見的校正方法是三點校正法,它的原理如下:
設(shè)液晶屏上每個像素點的坐標為[XD,YD],觸摸屏上每個觸點的坐標為[XT,YT]。要實現(xiàn)觸摸屏上的坐標轉(zhuǎn)換為液晶屏上的坐標,需要下列公式進行轉(zhuǎn)換:
因為其中一共有6個參數(shù)(A,B,C,D,E,F(xiàn)),因此只需要3個取樣點就可以求得這6個參數(shù)。這6個參數(shù)一旦確定下來,只要給出任意觸摸屏上的坐標值,代入上述公式,就可以得到它所對應(yīng)的液晶屏上像素點的坐標值。如果不更換液晶屏,這幾個參數(shù)就不變,為了以后校正方便,把這些參數(shù)通過SPI總線保存到外部FLASH中。經(jīng)過校正的結(jié)果如圖2所示。
圖2 經(jīng)過校正后的觸屏和液晶屏
目前,有一些商業(yè)化的人機交互軟件可以買到,但一般售價都比較昂貴,在本系統(tǒng)中,所有的界面都是由界面開發(fā)者自行定義的,因此只用到快速顯示圖片和數(shù)據(jù),其它的如漢字、字母等只要事先放到一個界面上,然后截圖,拷貝到模塊中,就可以作為圖片的一部分顯示出來,因此,軟件部分只設(shè)計了圖片快速顯示與更新函數(shù)和數(shù)字快速顯示函數(shù)。
由于前面在驅(qū)動液晶模塊時設(shè)計了顯示緩沖區(qū),只要把待顯示的圖片放到顯示緩沖區(qū)中就可以顯示出來。由于顯示緩沖區(qū)用32位表示一個像素,而寫入的數(shù)據(jù)是24位色,需要把高8位屏蔽掉。以顯示一副圖片為例,給出主要的程序代碼:
void PAINT_BMP (int x0,int y0,int h,int l,unsigned char bmp[])
{
int x,y;
U32c;
int p=0;
for(y=y(tǒng)0;y<l;y++ )
{
for(x=x0;x<h;x++ )
{
c= (bmp[p])|(bmp[p+1]<<8)|(bmp[p+2]<<16);
if(((x0+x)<SCR_XSIZE_TFT)&& ((y0+y)<SCR_YSIZE_TFT))
LCD_BUFFER[y0+y][x0+x]=c;
p=p+3;
}
}
}
利用該函數(shù)就可以把圖片迅速顯示出來,顯示結(jié)果如圖3所示。
圖3 系統(tǒng)顯示效果
把燒入程序的STM32微控制器與320×240分辨率的TFT液晶屏及3.5寸4線電阻觸控板連接好,與一個上位MCU通過串口相連,模塊中已經(jīng)燒好了要使用的界面,上位MCU通過串口把數(shù)據(jù)發(fā)給STM32,STM32根據(jù)設(shè)定的顯示參數(shù)配置液晶屏,然后接收的這些數(shù)據(jù)顯示在屏幕相應(yīng)的位置上,試驗結(jié)果如圖4所示。
圖4 系統(tǒng)效果實測
通過實測,文中所述的基于STM32的通用人機交互界面設(shè)計方法具有設(shè)計簡單、使用方便、成本低廉的特點,并且可以適用于大部分場合,具有良好的應(yīng)用前景。若能以更高性能ARM處理器代替低廉的STM32微控制器[7-14],則可以實現(xiàn)高清視頻錄制和播放,具有更好的實用價值。
[1]付虹,劉桂方,李春善,等.S3C2440的LCD控制器的配置與應(yīng)用[J].計算機工程與設(shè)計,2010(11):2470-2473.
[2]潘應(yīng)云,曾偉,陳家勝.基于ARM的智能顯示終端[J].電子測量技術(shù),2008,31(1):160-162.
[3]劉躍鋒,宋永霞,李松濤.一種基于直方圖對二值圖像進行處理的方法[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2010,31(5):554-558.
[4]熊文彬,蔣泉.基于FPGA實現(xiàn)的視頻顯示系統(tǒng)[J].液晶與顯示,2011,26(1):92-95.
[5]武偉,王宏志,宋宇.基于偏微分方程的圖像去噪算法[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2011,32(6):554-557.
[6]尹東輝,任彥楠,等.一種1024級灰度大電容負載的LCD驅(qū)動芯片設(shè)計[J].液晶與顯示,2011,26(1):78-82.
[7]康艷霞,曹劍中,田雁,等.實時視頻處理系統(tǒng)中乒乓緩存的設(shè)計[J].彈箭與制導(dǎo)學(xué)報,2007,24(1):218-222.
[8]王明富,楊世洪,吳欽章.大面陣CCD圖像實時顯示系統(tǒng)的設(shè)計[J].光學(xué)精密工程,2010,18(9):2053-2059.
[9]萬永波,張根寶,田澤,等.基于ARM的LCD控制器的配置與編程應(yīng)用[J].計算機工程與設(shè)計,2007,28(5):1196-1198.
[10]王運,顏昌翔.光譜儀圖像的亞像素配準[J].光學(xué)精密工程,2012,20(3):661-667.
[11]李曉穎,蔣東方,李云嬌.儀器儀表點陣式LED顯示屏設(shè)計[J].液晶與顯示,2011,26(6):764-767.
[12]靳永亮,王延杰,劉艷瀅,等.紅外弱小目標的分割預(yù)檢測[J].光學(xué)精密工程,2012,20(1):171-178.
[13]王立文.智能儀器中液晶顯示器的漢字顯示方法[J].液晶與顯示,2011,26(6):785-788.
[14]楊輝,冉峰,黃舒平.面陣CCD彩色視頻圖像實時采集系統(tǒng)的設(shè)計[J].光學(xué)精密工程,2010,18(1):273-280.