




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第28卷第3期 計算機應(yīng)用與軟件Vo l 28No . 32011年3月 Co m puter Applicati o ns and Soft w are M ar . 2011LED 顯示屏控制器設(shè)計研究張 飆(桂林理工大學(xué)信息科學(xué)與工程學(xué)院 廣西桂林541004 收稿日期:2009-11-26。張飆, 講師, 主研領(lǐng)域:LED 顯示技術(shù)與摘 要 針對LED 屏控制器設(shè)計提出了一些新的方法??焖僖莆环ㄊ挂莆凰俣忍嵘?3%。協(xié)議樹的引入使通信協(xié)議的描述、解釋和擴充更加快捷; 應(yīng)用循環(huán)緩沖區(qū)可有效避免通信緩沖區(qū)溢出引發(fā)的程序異常; 顯示雙緩沖區(qū)的使用不僅簡化了顯示幀設(shè)計而且便于設(shè)計代碼移植; 基
2、于優(yōu)先級的主程序結(jié)構(gòu)可優(yōu)先且多次響應(yīng)重要任務(wù)。運用這些方法可以顯著提高控制器開發(fā)效率和運行穩(wěn)定性。關(guān)鍵詞 快速移位 協(xié)議樹 循環(huán)緩沖區(qū) 顯示雙緩沖區(qū)ON DESI GN OF LED SCREEN CONTROLLERZhang B iao(S c hool of Informa tion S cie nce and E ngineeri ng, G uili n Un i versit y o f Technol ogy, G uili n 541004, G uangxi , C hina Abstrac t T his arti c l e provides some ne w desi
3、 gns f o r the contro ller of LED display sc reen . T he data shift speed can be raised 33pe rcent quicker w ith the fast sh ift appro ach . The i n troduction of protoco l tree m akes it conven i ent to dep ict , i nterpret and ex tend the communicati on protoco. l So ft ware excepti on induced by
4、comm un i cation bu ffer overfl ow can be avo i ded effectively v ia resorti ng c ircular buffer . T he use o f double buffer f o r display si m p lifies the des i gn of display fra m e asw e ll as facilita tes the des i gn of code porti ng . M ain progra m arch itecture based on pri o rity m akes i
5、t possi b l e to respond i m portant tasks w ith precedence and frequentl y . By apply i ng t hese m e t hods , t he deve l op m ent e ffi c iency o f con tro ll er and its running stability can be consp i cuousl y enhanced .K eywords F ast s h ift P ro toco l tree C i rcular buffer D isplay double
6、buffer0 引 言隨著LED 顯示屏市場不斷擴大, 縮短LED 顯示屏控制器開發(fā)周期、增強系統(tǒng)穩(wěn)定性已顯得尤為重要。本文針對單片機控制的LED 顯示屏提出了一些新的設(shè)計方法, 這些方法做成模板后稍加修改就可直接用于實際項目設(shè)計。1 系統(tǒng)結(jié)構(gòu)為了方便描述, 本文給出了具有代表性的51單片機為控制核心的LED 顯示屏系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)主要包括快速移位模塊, 存儲器擴展模塊, 串行通信模塊, 亮度采集模塊, LED 檢測模塊, 配置模塊, 看門狗模塊等。圖1 系統(tǒng)結(jié)構(gòu)圖2 快速移位實現(xiàn)! 結(jié)構(gòu), 在單片機系統(tǒng)中通常由單片機實現(xiàn)移位輸出, 移出1bit 數(shù)據(jù)需3個機器周期(時鐘置低, 放1b
7、it 數(shù)據(jù), 時鐘置高, 這種方法優(yōu)點是簡單易用, 缺點是數(shù)據(jù)輸出速率低。本文在基本不增加硬件成本的條件下, 提出利用74H C165輔助單片機加快移位速度的方法, 該方法可使移位速度提高33%, 其硬件連接和操作時序如圖2所示。圖2 快速移位硬件實現(xiàn)及移位時序74HC165采用并入串出工作方式, 單片機W 78E58的P0口同時連接74H C165的數(shù)據(jù)端口P0P7和外部RAM 61C256的數(shù)據(jù)端口D0D7。單片機RD 腳同時連接74HC165并行數(shù)據(jù)裝入端PL 和外部RAM 讀使能端OE 。當(dāng)單片機從外部RAM讀取顯示數(shù)據(jù)時, RD 變低, 同時PL 也變低, 使出現(xiàn)在數(shù)據(jù)總線上的數(shù)據(jù)被
8、異步裝入74HC165內(nèi)部移位寄存器中。讀操作結(jié)束后, 由單片機P1. 6腳生成移位時鐘(P1. 6置低, P1. 6置高生成一個時鐘, 又P1. 6接CLK 1, 這樣每個CLK1上升沿Q 7就輸出1bit 數(shù)據(jù)。P 1. 6經(jīng)非門驅(qū)動生成LED 驅(qū)動器的移位時鐘SCLK, 每個SCLK 上升沿Q 7輸出的1b it 數(shù)據(jù)被移入LED 驅(qū)動器中, Q7輸出則生成了串行移位數(shù)據(jù)SD 。可見快速移位法輸出1bit 數(shù)據(jù)只需2個機器周期, 相比單片機的3個機器周期減少1個機器周期, 即移位速度提升33%。3 樹型協(xié)議設(shè)計及其處理程序結(jié)構(gòu)LED 顯示屏的串行通信協(xié)議通常由LED 顯示屏生產(chǎn)商專門制訂
9、, 制訂方式大致有兩種:一種是參照標(biāo)準(zhǔn)協(xié)議制訂, 另一種是完全自定義。由于沒有統(tǒng)一標(biāo)準(zhǔn), 造成協(xié)議形式五花八門, 不利于協(xié)議的解釋、維護(hù)和擴展。本節(jié)給出了LED 屏通信協(xié)議的樹型設(shè)計方法。按此方法設(shè)計出的每個協(xié)議都形成一棵協(xié)議樹1, 具有層次結(jié)構(gòu)清晰, 搜索速度快, 內(nèi)容擴展方便, 通用性好等特點。本文以一種基于M odbus 的交通誘導(dǎo)屏協(xié)議為例進(jìn)行設(shè)計, 協(xié)議主要包括兩類命令:一類是讀取1個或多個參數(shù)(功能碼03H , 另一類是設(shè)置1個或多個參數(shù)(功能碼16H , 協(xié)議中部分內(nèi)容設(shè)計為圖3所示 的一棵協(xié)議樹。圖3 交通誘導(dǎo)屏M odbus 協(xié)議樹協(xié)議處理程序只需按照協(xié)議樹采用多重CASE
10、結(jié)構(gòu)嵌套形式編寫。圖4對協(xié)議中 功能碼03 實時數(shù)據(jù)區(qū) 實時數(shù)據(jù)處理! 給出了偽碼描述, 圖中的地址碼參見表1。當(dāng)協(xié)議項較多時采用此結(jié)構(gòu)可以顯著提高協(xié)議項搜索速度, 從而縮短通信響應(yīng)時間, 這一點對于擁有大量交通誘導(dǎo)屏和其它設(shè)備的智能交通網(wǎng)絡(luò)意義重大。每塊誘導(dǎo)屏通信響應(yīng)時間縮短, 必然使整個交通網(wǎng)絡(luò)輪詢周期的縮短, 這樣控制中心就可在更短的時間內(nèi)獲 取更新的路段信息。圖4 樹型協(xié)議處理程序結(jié)構(gòu)有些協(xié)議沒有按照圖3所示結(jié)構(gòu)設(shè)計, 如表1所示。對于這類協(xié)議只要按照上述方法容易將非樹形協(xié)議轉(zhuǎn)化為圖3所示的協(xié)議樹, 協(xié)議處理程序與圖4所示方法相同。表1 非樹型協(xié)議 通用功能區(qū)1000H 實時數(shù)據(jù)區(qū)11
11、00H 自檢數(shù)據(jù)區(qū)1400H 亮度調(diào)節(jié)方式1002H 讀或?qū)懽煮w1102讀或?qū)懜髂=M故障率1402讀亮度值1003H 讀或?qū)戯@示內(nèi)容1103讀或?qū)憜幼詸z1403寫自檢間隔時間1004H 讀或?qū)懝收闲畔?104讀顯示模組數(shù)量1005H讀4 通信循環(huán)緩沖區(qū)使用循環(huán)緩沖區(qū)在計算機系統(tǒng)應(yīng)用較多2, 本文在外部RAM 上設(shè)置2個循環(huán)緩沖區(qū)分別作為串行通信的收、發(fā)緩沖區(qū)。這樣通信收、發(fā)緩沖區(qū)對應(yīng)的存儲區(qū)域都是一個循環(huán)隊列。如此設(shè)計就可有效避免因通信緩沖區(qū)溢出而引發(fā)的通信處理異常。循環(huán)緩沖區(qū)設(shè)置有讀指針和寫指針。每寫入或讀出一個數(shù)據(jù), 寫指針或讀指針就沿緩沖區(qū)移動一位。循環(huán)緩沖區(qū)空、滿狀態(tài)判斷非常方便:當(dāng)
12、:取模(寫指針+1 =讀指針, 表明緩沖區(qū)#滿, 此時緩沖區(qū)丟棄新的數(shù)據(jù); 當(dāng):讀指針=寫指針, 說明緩沖區(qū)#空。只要對每次移動后的讀或?qū)懼羔樧?模! 運算就可保證讀、寫指針指示范圍超出緩沖區(qū)時又會自動回到緩沖區(qū)內(nèi), 從而使緩沖區(qū)可以循環(huán)使用。只要緩沖區(qū)大小設(shè)置合理且系統(tǒng)運行正常, 緩沖區(qū)循環(huán)使用時被覆蓋的數(shù)據(jù)都是使用過的數(shù)據(jù), 而且緩沖區(qū)#滿發(fā)生概率非常小。51單片機匯編語言沒有直接支持模運算, 而是通過多字節(jié)除法間接實現(xiàn), 這樣模運算頻繁使用必定會拉長通信響應(yīng)時間。本設(shè)計通過采用單片機硬件直接支持的#邏輯與運算替代#模運算解決了此問題, 現(xiàn)在給出部分程序代碼:設(shè)接收循環(huán)緩沖區(qū)和發(fā)送循環(huán)緩沖
13、區(qū)分別為1K 字節(jié)(03ff H 數(shù)組rxd_buf和t xd_buf,讀指針r_p和寫指針w _p分別指示數(shù)組rxd_buf和t xd _buf的元素索引號。單片機串行接收和發(fā)送的C 語言程序段為:接收程序段If(W_p+1&0%3ff! =r_p r %d_buf w _p=SBUF ; w _p+;w _p&=0%3f; f 發(fā)送程序段If(r_p!=w _p SBUF=t %d_bufr_p; r_p+;r_p&=0%3f; f 用邏輯與替代模運算是有條件的, 即數(shù)組最后一個元素的索引號轉(zhuǎn)換為二進(jìn)制數(shù)為全#1。前面提到的 3ff H ! 轉(zhuǎn)換為二進(jìn)制碼為全#1,
14、 滿足要求的還有 ff H ! , 7ff H ! 等等。5 顯示雙緩沖區(qū)應(yīng)用制的LED 屏系統(tǒng)通常只有1個串行數(shù)據(jù)輸出PCB 布線常常是紅、綠、藍(lán)三種LED 管互相交錯個16位LED 驅(qū)動器輸出口上。例如, 3個16位共48個輸出口上出現(xiàn)R 4|G4|B4|R4G 4|B4|R4|, 對應(yīng)基。顯示信息通常做法是:根據(jù)PCB 布線直接生成顯示幀(如上移操作的各個幀 , 這種做法每一幀編程都要考慮PCB 布線, 而且不同布線的顯示模塊需重新編程, 編程繁瑣, 通用性差。為克服上述缺陷, 本文提出了在外部RAM 上設(shè)置顯示雙緩沖區(qū)4間接生成顯示幀的設(shè)計方法。雙緩沖區(qū)中一個為邏輯緩沖區(qū), 另一個為物
15、理緩沖區(qū), 這里用4%4點陣為例進(jìn)行說明。邏輯緩沖區(qū)存放邏輯顯示幀, 其每個b it 從左到右從上到下順序?qū)?yīng)實際顯示屏像素而與顯示模塊PCB 布線無關(guān), 如表2所示。物理緩沖區(qū)用于存放實際顯示幀, 它的每個b it 順序?qū)?yīng)級聯(lián)的16位LED 驅(qū)動器各個輸出口, 它與顯示模塊PCB 布線有直接聯(lián)系, 如表3所示。表2中 C (X, Y ! 表項中X 表示行序號, Y 表示列序號, C 表示基色。如 R (2, 3 ! 表示第2行第3列像素中的紅色。表3中 X Y ! 表項中X 表示LED 驅(qū)動器序號, Y 表示該驅(qū)動器輸出位序號。例如 0-5! 表示LED 管由第0個驅(qū)動器的第5位驅(qū)動, 此
16、LED 管是第1行第1列像素中綠色LED 管雙緩沖區(qū)實現(xiàn)顯示分三個步驟:(1 在邏輯緩沖區(qū)生成顯示幀。(2 調(diào)用幀轉(zhuǎn)換函數(shù)將邏輯緩沖區(qū)內(nèi)容轉(zhuǎn)換為物理緩沖區(qū)的內(nèi)容。(3 將物理緩沖區(qū)內(nèi)容移位輸出完成顯示。在邏輯緩沖區(qū)生成顯示幀與PCB 布線無關(guān), 編程較容易, 但顯示前必須將邏輯顯示幀映射到物理緩沖區(qū), 這里把完成這個映射的函數(shù)稱為幀轉(zhuǎn)換函數(shù)。這樣編程時每一幀都在邏輯緩沖區(qū)生成, 顯示前調(diào)用幀轉(zhuǎn)換函數(shù), 將邏輯緩沖區(qū)生成的顯示幀轉(zhuǎn)換為物理緩沖區(qū)的實際顯示幀。對于不同PCB 布線的顯示模塊只需改寫幀轉(zhuǎn)換函數(shù), 而在邏輯緩沖區(qū)編寫的大量顯示幀生成代碼則可重復(fù)使用。幀轉(zhuǎn)換函數(shù)設(shè)計方法有2種:代數(shù)法和查
17、表法。代數(shù)法需要尋求映射: 表3=f(表2 ! 中函數(shù)f 的表達(dá)式, 該方法需要使用算術(shù)運算指令, 缺點是轉(zhuǎn)換速度慢, 優(yōu)點是實現(xiàn)代碼短。查表法是在程序中存儲一張映射表, 轉(zhuǎn)換時只需執(zhí)行查表指令, 這樣做優(yōu)點是轉(zhuǎn)換速度快, 缺點是映射表需占用程序存儲器造成實現(xiàn)代碼長?;谒俣葍?yōu)先本設(shè)計采用查表法。需存儲的映射表就是表3, 它每個表項包含兩個字節(jié), 例如表2中1行3列的綠色LED 管G (1, 3, 查表后得到兩個字節(jié)02H 和09H, 即對應(yīng)表3中2-9表項, 則1行3列的綠色LED 管應(yīng)由第2個驅(qū)動器的第9位驅(qū)動。表2 LED3基色4%4點陣的邏輯緩沖區(qū)列 0123行&R G B R
18、 G B R G B R G B 0(0, 0 (0, 0 (0, 0 (0, 1 (0, 1 (0, 1 (0, 2 (0, 2 (0, 2 (0, 3 (0, 3 (0, 3 1(1, 0 (1, 0 (1, 0 (1, 1 (1, 1 (1, 1 (1, 2 (1, 2 (1, 2 (1, 3 (1, 3 (1, 3 2(2, 0 (2, 0 (2, 0 (2, 1 (2, 1 (2, 1 (2, 2 (2, 2 (2, 2 (2, 3 (2, 3 (2, 3 3(3, 0(3, 0(3, 0(3, 1(3, 1(3, 1(3, 2(3, 2(3, 2(3, 3(3, 3(3, 3表3
19、LED3基色4%4點陣的物理緩沖區(qū)列 0123行&R G B R G B R G B R G B 00-00-40-80-121-01-41-81-122-02-42-82-1210-10-50-90-131-11-51-91-132-12-52-92-1320-20-60-100-141-21-61-101-142-22-62-102-1430-30-70-110-151-31-71-111-152-32-72-112-1500000000。6 含優(yōu)先級的主程序結(jié)構(gòu)主程序根據(jù)各項任務(wù)兩次處理的間隔時間為每項任務(wù)分配了優(yōu)先級, 優(yōu)先級越高的任務(wù)兩次處理的間隔時間越短。串行通信協(xié)議處理任務(wù)具有最高優(yōu)先級, 只要CPU 空閑就執(zhí)行, 這樣才能保證LED 屏及時更新顯示內(nèi)容或響應(yīng)各
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合肥師范學(xué)院《TeamProject》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院《報刊選讀(俄)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國音樂學(xué)院《中國民族民間音樂Ⅰ》2023-2024學(xué)年第二學(xué)期期末試卷
- 武夷山職業(yè)學(xué)院《公共關(guān)系學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南大學(xué)《編劇基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北中醫(yī)藥高等??茖W(xué)?!栋迨皆O(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇城市職業(yè)學(xué)院《學(xué)校體育學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 電子商務(wù)中的消費者行為研究表
- 食品加工工藝與衛(wèi)生管理考點解析
- 山西藥科職業(yè)學(xué)院《鋼琴(Ⅱ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 《數(shù)據(jù)結(jié)構(gòu)》期末考試試題及答案
- 第四章嬰兒期的心理發(fā)展
- 2023年浙江大學(xué)形勢與政策題庫
- 鐵道概論試題及答案重要
- 空間幾何中的平行與垂直 新高考 數(shù)學(xué) 一輪復(fù)習(xí)專項提升 精講精練
- 鎂合金片狀、帶狀或條狀,含鎂>50%MSDS危險化學(xué)品安全技術(shù)說明書
- 大班語言《藍(lán)盒子》課件
- 動物解剖學(xué)之 泌尿系統(tǒng)課件
- 幼兒園大班社會:《京劇》 課件
- 紅茶加工技術(shù)培訓(xùn)教學(xué)課件
- 商業(yè)運營委托管理合同模板
評論
0/150
提交評論