引言
在各種設(shè)備中,,顯示設(shè)備占有重要地位,少了顯示設(shè)備就像人少了眼睛,很多內(nèi)在的東西都看不見(jiàn)。顯示設(shè)備很重要也很常見(jiàn),,然而它的外形總是那么單調(diào),,像一個(gè)個(gè)的模型,。旋轉(zhuǎn)LED屏以其新穎,、可視角360°吸引了電子狂熱者的眼光。本項(xiàng)目是通過(guò)主控芯片STM32F103,將觸摸技術(shù)與旋轉(zhuǎn)LED屏幕相結(jié)合,,可以實(shí)現(xiàn)時(shí)鐘的變換,,還可以利用觸摸技術(shù)在旋轉(zhuǎn)LED上玩一些小游戲[1],讓旋轉(zhuǎn)LED不再只是單一的觀賞性的技術(shù)。
旋轉(zhuǎn)LED顯示屏是一種通過(guò)同步控制發(fā)光二極管(LED)位置和點(diǎn)亮狀態(tài)來(lái)實(shí)現(xiàn)圖文顯示的新型顯示屏,,因其結(jié)構(gòu)新穎,、成本低、可視視角達(dá)360°而得到了迅速的發(fā)展,。目前,,常見(jiàn)的LED顯示屏都是采用掃描方式進(jìn)行顯示的,其實(shí)現(xiàn)原理是在不同時(shí)間段內(nèi)控制不同批次的LED輪流點(diǎn)亮,,根據(jù)人眼的視覺(jué)暫留特性,,當(dāng)掃描幀頻達(dá)到24Hz以上時(shí),人眼便感覺(jué)不到掃描過(guò)程,,而是一幅穩(wěn)定的圖像,。旋轉(zhuǎn)顯示屏則是通過(guò)控制一行或一列LED快速移動(dòng)位置和改變點(diǎn)亮狀態(tài)來(lái)實(shí)現(xiàn)圖形的顯示,如果LED在各位置循環(huán)變換速度足夠快,,同樣可以顯示出一幅穩(wěn)定的圖像,。POV原理(即視覺(jué)滯留原理)將它用于顯示屏,優(yōu)勢(shì)表現(xiàn)在可用少量LED實(shí)現(xiàn)傳統(tǒng)方式下海量LED才能實(shí)現(xiàn)的顯示屏,。用單片機(jī)控制LED,觸摸按鍵提供用戶與系統(tǒng)交互,。旋轉(zhuǎn)中的LED漂浮在半空中的景觀給視覺(jué)帶來(lái)享受。
基于這樣的現(xiàn)狀和原理,,本文提出了基于TI公司TLC5947驅(qū)動(dòng)芯片及STM32F103的旋轉(zhuǎn)LED屏顯示控制器設(shè)計(jì),。該旋轉(zhuǎn)LED屏采用人眼視覺(jué)頻率滯留原理,制作的旋轉(zhuǎn)LED虛擬屏在微控制器的精確控制下,,使用少量的LED便可完全實(shí)現(xiàn)傳統(tǒng)方式下海量LED才能實(shí)現(xiàn)的一種新型顯示技術(shù),。旋轉(zhuǎn)三基色全彩LED是基于RGB原理,通過(guò)改變?nèi)N顏色的色調(diào),、飽和度,、強(qiáng)度可以實(shí)現(xiàn)最高36色真彩圖片顯示,從而使顯示更加絢爛奪目,。該旋轉(zhuǎn)LED屏與平板式LED顯示屏和其他顯示器技術(shù)(如CRT,、LCD、PDP)相比較,,旋轉(zhuǎn)式線陣LED屏幕有著成本低,、分辨率高、功耗小等幾個(gè)明顯優(yōu)勢(shì)[2].
1 系統(tǒng)硬件設(shè)計(jì)
STM32F103通過(guò)TLC5947與LED連接[3],用來(lái)控制旋轉(zhuǎn)板上LED燈的顯示。例如可以通過(guò)單片機(jī)STM32F103控制LED燈旋轉(zhuǎn)顯示時(shí)鐘模樣或各種圖形[4],如果條件允許的話,,可以顯示一些簡(jiǎn)單的游戲,。LED與ARM處理器相連接,通過(guò)ARM處理器對(duì)觸摸信號(hào)的處理來(lái)實(shí)現(xiàn)LED燈的顯示樣式的變化,,從基態(tài)的指針式時(shí)鐘變?yōu)閿?shù)字顯示式以及改變其顯示的背景,,還可以進(jìn)行時(shí)間的校準(zhǔn)操作。TLC5947驅(qū)動(dòng)旋轉(zhuǎn)LED屏顯示控制電路如圖1所示[5].
【!=={$pagepage}==】
圖1 TLC5947驅(qū)動(dòng)旋轉(zhuǎn)LED屏顯示控制電路
1.1 STM32F103簡(jiǎn)介
選用了STM32F103控制器,,STM32F103是增強(qiáng)型系列,,最高工作時(shí)鐘頻率可達(dá)72 MHz,具有ARM CortexM3內(nèi)核、128~256 KB FLASH,、20~48 KB RAM,、8 MHz CPU晶振、32.768 kHz RTC晶振以及豐富的外設(shè)(64個(gè)快速I/O口)和4 GB的線性地址空間,。ARM采用的仿真器很貴,,而單片機(jī)的調(diào)試工具則非常便宜。相較之下,,CortexM3參考單片機(jī),,專門拿出一個(gè)引腳來(lái)做調(diào)試,從而節(jié)約了大量的人力物力,。CortexM3集成了大多數(shù)的存儲(chǔ)器控制器,,這樣就可以直接在MCU外連接FLASH,降低了設(shè)計(jì)難度和應(yīng)用障礙。CortexM3處理器結(jié)合了多種突破性技術(shù),,使得它能實(shí)現(xiàn)低功耗,、低成本、高性能三者(或二者)的結(jié)合,。編程支持ISP下載功能,,能通過(guò)USB端口和JLINK仿真器供電,使用起來(lái)非常方便[6].
1.2 TLC5947簡(jiǎn)介
TLC5947是TI(德州儀器)公司推出的24通道,,具有內(nèi)部晶振的12位PWM脈寬調(diào)制的LED驅(qū)動(dòng)芯片,。TLC5947采用超小32引腳QFN的高級(jí)封裝[7].它為L(zhǎng)ED提供了精確的恒流值,通道與芯片之間的差異值只有±2%;高速的傳輸速率(單片芯片時(shí)30 MHz,級(jí)聯(lián)為15 MHz),;輸出通道之間交錯(cuò)時(shí)間遲滯,,避免出現(xiàn)傳輸誤差;該芯片內(nèi)部具有溫度檢測(cè)系統(tǒng),,當(dāng)芯片的溫度過(guò)高時(shí)為了保護(hù)芯片,,它會(huì)自動(dòng)斷開(kāi)所有的輸出通道,當(dāng)溫度恢復(fù)正常,,芯片正常工作,;該芯片支持級(jí)聯(lián),,可以多個(gè)芯片共同工作以驅(qū)動(dòng)更大規(guī)模的LED顯示屏幕。24個(gè)通道的當(dāng)前電流值是通過(guò)外部IREF與地之間的阻值來(lái)設(shè)置的,,驅(qū)動(dòng)電路中的電阻由所驅(qū)動(dòng)LED燈的電流決定,。芯片具有寬泛的操作電壓30~55 V,含有4 MHz的內(nèi)部晶振。TLC5947適用驅(qū)動(dòng)全彩LED和顯示屏,。
1.3 LED顯示屏
選用三色(RGB)LED燈,, 實(shí)現(xiàn)多重色彩光源,,絢麗多彩的輸出,。同時(shí),LED本身也具備相當(dāng)?shù)姆€(wěn)定度,、高效率,、單色彩純度高、光強(qiáng)度可調(diào)等功能,。LED與ARM處理器相連接,,通過(guò)ARM處理器對(duì)觸摸信號(hào)的處理來(lái)實(shí)現(xiàn)LED燈的顯示樣式的變化,從基態(tài)的指針式時(shí)鐘變?yōu)閿?shù)字顯示式,,以及改變其顯示的背景,,還可以進(jìn)行時(shí)間的校準(zhǔn)操作。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 點(diǎn)亮點(diǎn)線圓的設(shè)計(jì)及其算法和公式
點(diǎn)設(shè)計(jì)主要應(yīng)用直角坐標(biāo)到圓坐標(biāo)轉(zhuǎn)換[8],通過(guò)坐標(biāo)轉(zhuǎn)換點(diǎn)亮任何位置的燈,。線設(shè)計(jì)源于點(diǎn)設(shè)計(jì),,在點(diǎn)設(shè)計(jì)基礎(chǔ)上采用Bresenham直線演算法畫(huà)出所需的直線、斜線,、曲線,。在線設(shè)計(jì)基礎(chǔ)上衍生出矩形繪畫(huà)、繪圖,、填充等功能,。
程序初始化完了,接著定義由直角坐標(biāo)轉(zhuǎn)換到極坐標(biāo),,在程序中將弧度轉(zhuǎn)到角度,,在轉(zhuǎn)換的時(shí)候考慮到會(huì)有負(fù)數(shù)數(shù)據(jù)的輸入,加入360+0.5均是為了優(yōu)化程序,,防止出現(xiàn)誤差,。程序中距離r=x2+y2,角度a=180×arctanxyπ+360+0.5.
直角坐標(biāo)到圓坐標(biāo)轉(zhuǎn)換算法如下[9]:
void ConCoor(int x,int y,int *rad,int *angle) {
double r,a;
r=sqrt(x*x+y*y);
a=(180*atan2(x,y))/PI+360+0.5;
if(a>=360)
a=a-360;
(*rad)=r;
(*angle)=a;
}
直角坐標(biāo)轉(zhuǎn)換完后,可以設(shè)置點(diǎn)的亮滅,,接著用Bresenham直線演算法畫(huà)出直線,。
程序的整體流程如圖2所示。系統(tǒng)上電后,,首先讀取系統(tǒng)的初始狀態(tài),,設(shè)置ARM和TLC5947的工作狀態(tài),,開(kāi)啟無(wú)線通信;然后等待旋轉(zhuǎn)屏幕穩(wěn)定,,初始化菜單,,等待輸入指令;利用Qtouch控制傳輸命令到STM32F103,執(zhí)行指令(用戶交互過(guò)程),;執(zhí)行用戶命令操作,。
2.2 TLC5947芯片時(shí)序
TLC5947時(shí)序如圖3所示,芯片的主要控制引腳有4個(gè)[10]:數(shù)據(jù)輸入端SIN,、外部時(shí)鐘輸入端SCLK,、灰度寄存器控制端XLAT以及輸出控制端BLANK.通過(guò)數(shù)據(jù)輸入端口將所需要的灰度數(shù)據(jù)送到SIN端,然后通過(guò)控制時(shí)鐘信號(hào)SCLK將數(shù)據(jù)寫(xiě)入到芯片內(nèi)部的灰度數(shù)據(jù)移位寄存器中,,之后通過(guò)控制灰度寄存器的控制端XLAT的高低電平變換實(shí)現(xiàn)芯片TLC5947內(nèi)部灰度數(shù)據(jù)的更新,。當(dāng)XLAT引腳的電平發(fā)生變化而產(chǎn)生一個(gè)上升沿時(shí), TLC5947內(nèi)部灰度數(shù)據(jù)將被更新一次,,即圖3中Grayscale LatchData 中被重新寫(xiě)入數(shù)據(jù),。芯片的數(shù)據(jù)輸出分兩部分,一部分是串行數(shù)據(jù)輸出和恒流源數(shù)據(jù)輸出,。串行數(shù)據(jù)輸出是接在灰度數(shù)據(jù)移位寄存器之后,,當(dāng)寄存器的數(shù)據(jù)滿256位時(shí),可以根據(jù)SCLK時(shí)鐘的變化通過(guò)一個(gè)DQ觸發(fā)器將數(shù)據(jù)從串行數(shù)據(jù)端口SOUT端輸出,,這一端口主要是芯片級(jí)聯(lián)時(shí)后一級(jí)芯片的數(shù)據(jù)輸入,;而恒流源數(shù)據(jù)輸出OUT0~OUT23則是通過(guò)輸出控制端口BLANK和芯片內(nèi)部自帶時(shí)鐘Oscillator Clock來(lái)共同控制,其中輸出電流大小則可以通過(guò)芯片的VREF引腳的外接到地電阻來(lái)控制,,根據(jù)外接LED的自身限流參數(shù),,保證LED正常工作。本系統(tǒng)中采用的是3.2 kΩ電阻,,所以該芯片的控制主要是4個(gè)引腳端口的控制,,操作上比較簡(jiǎn)單方便。
圖2 程序的整體流程
3 結(jié)論
實(shí)驗(yàn)中,,通過(guò)主控制器STM32F103對(duì)兩片級(jí)聯(lián)的TLC5947芯片進(jìn)行了測(cè)試,,外圍電路連接的是三色LED燈,外界供電電壓為5 V穩(wěn)壓源,,轉(zhuǎn)換之后系統(tǒng)的供電電壓為3.3 V穩(wěn)壓源,。當(dāng)寫(xiě)入相對(duì)應(yīng)的程序控制字時(shí),三色LED燈能夠正確顯示,,單一色,、混色兩種工作模式均成功得以實(shí)現(xiàn)。而且LED燈之間的變化時(shí)間可以通過(guò)程序來(lái)控制,,只要主控制器的時(shí)鐘頻率合適,,變換時(shí)間均在人眼識(shí)別能力之外,,這樣就可以通過(guò)改變不同的程序控制字來(lái)實(shí)現(xiàn)全彩LED屏的設(shè)計(jì)。
圖3 TLC5947時(shí)序圖