www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 顯示光電 > 顯示光電
[導(dǎo)讀]介紹一種應(yīng)用廣泛的LED大屏幕異步控制器的設(shè)計(jì)方案。該系統(tǒng)采用高性能32位ARM微處理器為其控制核心,并且基于uc/OS-II進(jìn)行軟件設(shè)計(jì)。可實(shí)現(xiàn)單屏幕多窗口任意位置的顯示,使得屏幕顯示變得豐富靈活。

[摘要]    介紹一種應(yīng)用廣泛的LED大屏異步控制器的設(shè)計(jì)方案。該系統(tǒng)采用高性能32位ARM微處理器為其控制核心,并且基于uc/OS-II進(jìn)行軟件設(shè)計(jì)??蓪?shí)現(xiàn)單屏幕多窗口任意位置的顯示,使得屏幕顯示變得豐富靈活。
[關(guān)鍵詞]     LED大屏幕; 多窗口顯示; ARM微處理器; 異步控制器

1         引言:

以往的LED異步控制器只能把一個屏幕作為一個完整的區(qū)域來進(jìn)行顯示,或者簡單的加上時間區(qū)域或游走字幕區(qū)域,這樣對于用戶來講往往缺乏足夠的靈活性,尤其在屏幕較大的時候。針對以上情況,本文提出了一款基于32位高性能ARM處理器和uc/OS-II的設(shè)計(jì)方案。它充分利用了uc/OS-II高效的多任務(wù)管理功能和ARM處理器強(qiáng)大的運(yùn)算能力,實(shí)現(xiàn)了單屏幕多窗口的任意位置顯示,使得顯示內(nèi)容變得更加豐富,顯示方式變得更加靈活。

2     LED控制系統(tǒng)的工作原理:

典型的LED異步控制系統(tǒng)主要由PC應(yīng)用軟件、通信模塊、數(shù)據(jù)處理模塊、掃描控制模塊、驅(qū)動模塊和LED屏幾部分組成,如圖1所示。

首先,PC應(yīng)用軟件將文本或圖片轉(zhuǎn)化為具有特定格式的點(diǎn)陣信息。然后,通過通信模塊將此點(diǎn)陣信息發(fā)送給數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊對這些點(diǎn)陣信息進(jìn)行各種特技處理,最后通過掃描控制模塊和驅(qū)動模塊將畫面在LED屏上進(jìn)行正確顯示。本文所指的LED異步控制器包括通信模塊、數(shù)據(jù)處理模塊和掃描控制模塊三部分。

3           控制器軟件部分的設(shè)計(jì):

本控制器的硬件結(jié)構(gòu)如圖2所示。數(shù)據(jù)處理模塊由MCU,一片SRAM和一片F(xiàn)LASH存儲器組成。MCU選用PHILIPS的基于32位ARM內(nèi)核的LPC2214處理器,它有著豐富的外圍接口資源和強(qiáng)大的運(yùn)算能力,是整個控制器的核心。SRAM作為MCU進(jìn)行特技處理時的緩存使用。FLASH存儲器用于存儲點(diǎn)陣信息和一些必要的參數(shù)。

掃描控制模塊由CPLD和顯存組成。顯存為一片SRAM,它用于保存當(dāng)前顯示的一幀點(diǎn)陣信息。CPLD通過地址總線和16位數(shù)據(jù)總線與MCU相連, 它把從MCU接收到的16位數(shù)據(jù)按指定地址寫入顯存,然后再按一定的尋址方式從顯存中讀出點(diǎn)陣信息進(jìn)行掃描。MCU只能通過CPLD對顯存進(jìn)行以字(2byte)為單位的寫操作。

通信模塊包括以太網(wǎng)模塊和串口通信模塊,用于實(shí)現(xiàn)PC與控制器之間的RS232、RS485以及工業(yè)以太網(wǎng)通信。

4           控制器軟件部分的設(shè)計(jì):

為了實(shí)現(xiàn)單屏幕、多窗口任意位置的顯示,軟件部分我們基于uc/OS-II進(jìn)行設(shè)計(jì),這樣可以充分利用操作系統(tǒng)高效的任務(wù)調(diào)度算法,將每個窗口的顯示都交由單個任務(wù)來完成,從而極大地提高系統(tǒng)的運(yùn)行速度和可靠性,并且使得程序的開發(fā)和擴(kuò)展變得更加方便。

在進(jìn)行具體的程序設(shè)計(jì)之前,首先要確定數(shù)據(jù)的組織方案。因?yàn)楹玫臄?shù)據(jù)組織方案,對于程序編寫來說往往可以達(dá)到事半功倍的效果。

4.1     顯存的數(shù)據(jù)組織方案:

對于雙色屏,一個像素點(diǎn)需要紅、綠兩位數(shù)據(jù)來描述。為了便于處理,我們將橫向連續(xù)的8個像素點(diǎn)組成一個字(2byte)來進(jìn)行存儲,其中一個字節(jié)為紅數(shù)據(jù),一個字節(jié)為綠數(shù)據(jù)。數(shù)據(jù)存儲順序?yàn)閺淖蟮接?,從上到下。如圖3所示,假如屏幕寬度為160個像素點(diǎn),顯存起始地址為0x83000000,則屏幕第一行的前8個像素點(diǎn)映射到顯存中地址為0x83000000和0x83000001的兩個字節(jié),第二行的前8個像素點(diǎn)映射到顯存中地址為0x83000028和0x83000029的兩個字節(jié),依此類推。

4.2     點(diǎn)陣信息轉(zhuǎn)化規(guī)則:

由于窗口大小可以任意設(shè)置,窗口的位置可以任意擺放。所以對于單個窗口而言,它在顯存中的映射可能并非是字(2byte)對齊的。以圖4為例,在一個大小為160(寬)×96(高)的屏幕上開設(shè)一個左上角坐標(biāo)為(20,16),大小為86×47的窗口,則此窗口第一行的前4個像素點(diǎn)在顯存中的映射為地址是0x83000282和0x83000283的兩個字節(jié)的低4位,所以這個窗口在顯存中的映射并不是字對齊的。由于MCU只能以字(2byte)為單位對顯存進(jìn)行操作,所以PC軟件在對該窗口進(jìn)行點(diǎn)陣信息轉(zhuǎn)換時,如果直接對區(qū)域1(窗口的實(shí)際大小)進(jìn)行轉(zhuǎn)換存儲,則在對該窗口進(jìn)行特技處理時會存在大量的位運(yùn)算,這樣會大大降低運(yùn)算效率,從而影響特技效果的顯示,這樣就很難滿足用戶對特技顯示效果的要求。

為了解決上述問題,可以將區(qū)域1橫向擴(kuò)展成起點(diǎn)坐標(biāo)為(16,16),大小為96×47的區(qū)域2。易知,區(qū)域2在顯存中的映射是字對齊的。為了避免運(yùn)算時的位操作,PC軟件在對區(qū)域1進(jìn)行點(diǎn)陣信息轉(zhuǎn)換時,可按區(qū)域2來進(jìn)行,只是需將區(qū)域1的擴(kuò)展部分的數(shù)據(jù)全填為1。這樣處理會犧牲掉一小部分FLASH存儲器空間,但卻可避免特技處理時大量的位運(yùn)算,從而大大提高運(yùn)算效率,因此這樣做是值得的。

4.3     緩存數(shù)據(jù)的組織方案:

由于MCU只能對顯存進(jìn)行寫操作,而在進(jìn)行特技運(yùn)算時,往往需要前一幀信息才能得到下一幀的信息。所以,首先,需要在緩存中劃分出一塊和顯存大小相等,地址一一對應(yīng)的區(qū)域screen用于保存整屏幕的前一幀信息。

     

  又由于MCU對顯存只能進(jìn)行字操作,并且多個窗口之間可能會出現(xiàn)區(qū)域重疊,所以如果各窗口的特技運(yùn)算都直接在screen區(qū)域上進(jìn)行,則窗口重疊部分信息可能會發(fā)生混亂。因此如圖5所示,也需要在緩存中為每個窗口劃分出一塊存儲器空間(area 1, area 2, …, area n),用于保存本窗口顯示的前一幀信息。這樣在特技運(yùn)算時,首先要在area區(qū)域中對各窗口數(shù)據(jù)進(jìn)行運(yùn)算得到各窗口的下一幀信息,然后將area區(qū)域中數(shù)據(jù)寫入該窗口在screen區(qū)域中的相應(yīng)地址以保存整屏幕最新一幀信息,最后把screen中相應(yīng)數(shù)據(jù)寫入顯存從而完成顯示。

4.4     軟件設(shè)計(jì): 

基于上述方案,MCU程序的設(shè)計(jì)變得非常簡潔。程序結(jié)構(gòu)如圖6所示,控制器上電后,首先進(jìn)行系統(tǒng)初始化,然后從FLASH中讀取屏參數(shù),進(jìn)行參數(shù)初始化。接著建立任務(wù)TaskControl,TaskControl擁有比各窗口顯示任務(wù)都要高的優(yōu)先級,它主要用于對各窗口顯示任務(wù)進(jìn)行實(shí)時管理。每隔一段時間TaskControl就要對reset標(biāo)志進(jìn)行一次查詢,如果reset=1,它會刪除原先建立的各窗口顯示任務(wù),然后從FLASH中讀取新的窗口個數(shù),依此建立新任務(wù),將每個窗口的顯示交由單個窗口顯示任務(wù)來控制。

下面是任務(wù)TaskControl的程序演示:

void TaskControl(void *pdata){

       uint8 taskNum;

       pdata=pdata;

       RESET:

       reset=0;                                                         //reset標(biāo)志清零

       for(taskNum=3;taskNum<18;taskNum++){      //刪除原先建立的窗口顯示任務(wù)

              OSTaskDel(taskNum);                             //窗口顯示任務(wù)優(yōu)先級從3開始

       }                                                                     //最多允許設(shè)置16個窗口

       taskNum=flashReadWord(AREA_NUM_ADDR);   //從FLASH中讀取屏幕窗口個數(shù)

       if(taskNum>0)      //根據(jù)窗口數(shù)建立窗口顯示任務(wù)

              OSTaskCreate(task0,(void*)0,&task0Stk[TaskStkLength-1],3);

       if(taskNum>1)

              OSTaskCreate(task1,(void*)0,&task1Stk[TaskStkLength-1],4);

              ……

 

       while(1){

              if(reset)  goto RESET;             //reset標(biāo)志為1,程序復(fù)位

              OSTimeDlyHMSM(0,0,1,0);      

       }

}

窗口顯示任務(wù)用于實(shí)現(xiàn)各窗口內(nèi)容的顯示。它根據(jù)各窗口顯示方式的不同在其相應(yīng)area區(qū)域中進(jìn)行下一幀數(shù)據(jù)的運(yùn)算,然后調(diào)用areaToScreen()和screenToCpld()進(jìn)行顯示。在完成一幀數(shù)據(jù)的顯示后,調(diào)用一次 OSTimeDlyHMSM()使當(dāng)前任務(wù)進(jìn)入等待狀態(tài)同時進(jìn)行一次任務(wù)調(diào)度,將系統(tǒng)控制權(quán)交給處于就緒狀態(tài)的窗口顯示任務(wù)中優(yōu)先級最高的那個,由此完成窗口顯示任務(wù)之間的切換。我們也可以通過調(diào)整OSTimeDlyHMSM()的參數(shù)來改變各窗口相臨兩幀顯示信息之間的時間間隔,從而可調(diào)整各窗口特技顯示的效果,比如移動顯示的移動速度。下面是其中一個窗口顯示任務(wù)的程序演示:

void Task0(void *pdata){

       pdata=pdata;

       窗口參數(shù)初始化;

       while(1){

              uint16 i;

              for(i=0;i<總幀數(shù);i++){

                     下一幀數(shù)據(jù)的運(yùn)算;      //在area區(qū)域中進(jìn)行

                     areaToScreen();         //將數(shù)據(jù)從area讀出寫入screen

                     screenToCpld();          //將screen中相應(yīng)數(shù)據(jù)寫入顯存完成一幀數(shù)據(jù)的顯示

                     OSTimeDlyHMSM(0,0,0,displaySpeed*20);    //任務(wù)調(diào)度

              }

       }

}

5           結(jié)束語:

充分利用32位微處理器的高性能和實(shí)時操作系統(tǒng)高效的任務(wù)調(diào)度算法,實(shí)現(xiàn)了單屏幕多窗口的任意位置顯示。使得屏幕顯示變得更加豐富靈活,也使得很多以往只能使用同步控制器或者多個異步控制器的場合可用單塊異步控制器來替代,從而降低了系統(tǒng)的成本。

 

本文作者創(chuàng)新點(diǎn):實(shí)現(xiàn)了LED大屏幕單屏幕多個窗口任意位置的顯示,并且可實(shí)現(xiàn)多窗口重疊顯示及“畫中畫”等顯示效果。

 

參考文獻(xiàn):

[1] 楊姣,郝國法,方康玲.基于cyclone EP1C6的LED大屏設(shè)計(jì)方案[J].微計(jì)算機(jī)信息,2006,4-2:59-62。

[2] 郝國法,楊姣.LED大屏幕控制電路設(shè)計(jì)方案研究[J].電視技術(shù),2005,11:94-96。

[3] Jean. Labrosse著,邵貝貝等譯.嵌入式操作系統(tǒng)uc/OS-II(第二版.北京航空航天大學(xué)出版社,2005年。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

香港2022年10月18日 /美通社/ -- 淘屏有限公司(納斯達(dá)克:TAOP,簡稱"淘屏"或"公司"),今日宣布與江蘇蘇立信文化創(chuàng)意...

關(guān)鍵字: 數(shù)字多媒體 大屏 LCD LED

為增進(jìn)大家對控制器的認(rèn)識,本文將對影響控制器可靠性的因素以及控制器的常見故障和維修方法予以介紹。

關(guān)鍵字: 控制器 指數(shù) 集成電路

為增進(jìn)大家對控制器的認(rèn)識,本文將對溫度控制器的分類以及溫度控制器的功能予以介紹。

關(guān)鍵字: 溫度控制器 指數(shù) 控制器

為增進(jìn)大家對控制器的認(rèn)識,本文將對控制器結(jié)構(gòu)類異常以及常見的幾種電機(jī)控制器予以介紹。

關(guān)鍵字: 控制器 指數(shù) 電機(jī)

上一次客戶通過朋友介紹找到我,讓幫忙做一個燈控板,主要功能就是在拍照的時候,打開閃光燈,言語之間很客氣,每年的用量也超過萬套,需要做環(huán)境老化測試等等。由于是朋友介紹的,簡單喝了個茶,下午就把需求發(fā)過來了??戳丝葱枨?,比較...

關(guān)鍵字: 閃光燈 頻閃 LED

一直以來,MCU微控制器都是大家的關(guān)注焦點(diǎn)之一。因此針對大家的興趣點(diǎn)所在,小編將為大家?guī)鞰CU微控制器的相關(guān)介紹,詳細(xì)內(nèi)容請看下文。

關(guān)鍵字: MCU 微控制器 控制器

魁北克市, Sept. 27, 2022 (GLOBE NEWSWIRE) -- 提供最靈活、最強(qiáng)大和最準(zhǔn)確ADAS和AD傳感技術(shù)的全球領(lǐng)先企業(yè)LeddarTech?欣然宣布,其獲《環(huán)球郵報(bào)》評選為2022年加拿大增長最...

關(guān)鍵字: LED ADAS AD傳感技術(shù)

據(jù)報(bào)道,可見光LED的發(fā)明者、美國University of Illinois at Urbana-Champaign教授Nick·Holonyak去世,享年93歲。他是世界第一個實(shí)用可見光譜LED的研發(fā)者,該技術(shù)被廣泛...

關(guān)鍵字: LED 諾貝爾獎

pwm控制器將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對pwm控制器的相關(guān)情況以及信息有所認(rèn)識和了解,詳細(xì)內(nèi)容如下。

關(guān)鍵字: pwm 控制器 mppt

在這篇文章中,小編將對運(yùn)動控制器的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對運(yùn)動控制器的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: 運(yùn)動控制系統(tǒng) 運(yùn)動控制器 控制器

顯示光電

64613 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉