基于OLED的分布式多屏電子公告系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4單片機(jī)存儲(chǔ)器設(shè)計(jì)
OLED電子屏以漢字顯示為主,而存儲(chǔ)一個(gè)漢字需32x32=1024b=128B的空間。而AT89C51內(nèi)部存儲(chǔ)空間有限,擴(kuò)展數(shù)據(jù)存儲(chǔ)器,采用62256SRAM,每片可存儲(chǔ)256個(gè)漢字,用8片能顯示常見的2000多個(gè)漢字。另外,由于系統(tǒng)需調(diào)用的程序和數(shù)據(jù)較多,所以在外部擴(kuò)展1片程序存儲(chǔ)器,使除堆棧、隊(duì)列等頻繁使用的結(jié)構(gòu)外,其他類似初始化狀態(tài)字等不占用片內(nèi)存儲(chǔ)器,避免片內(nèi)數(shù)據(jù)阻塞。
5USB接口的硬件設(shè)計(jì)
上位機(jī)向下位機(jī)的數(shù)據(jù)傳輸通過專用USB通信控制器件PDIUSBD12實(shí)現(xiàn)。該器件支持3個(gè)USB端點(diǎn),采用多種中斷方式方便于塊傳輸(Bulk)和同步傳輸(Isochronous),塊傳輸和同步傳輸?shù)臄?shù)據(jù)傳輸速率均可達(dá)1Mb/s,其與AT89C51單片機(jī)的棒口電路如圖5所示。
6軟件設(shè)計(jì)
軟件系統(tǒng)包括USB驅(qū)動(dòng)固件和圖文資料處理兩部分。設(shè)備固件是設(shè)備運(yùn)行的核心,采用C語言編寫。其主要功能是通過PDIUSBD12實(shí)時(shí)下傳數(shù)據(jù)至單片機(jī)。程序主要分初始化、數(shù)據(jù)處理、控制和USB通信4個(gè)模塊。設(shè)備與微機(jī)相連后,初始化模塊對設(shè)備進(jìn)行初始化配置;數(shù)據(jù)處理模塊預(yù)處理前端數(shù)據(jù);控制模塊則用于控制前端硬件;而USB通信模塊負(fù)責(zé)主機(jī)與前端硬件的通信,是同件設(shè)計(jì)的關(guān)鍵。USB通信同件設(shè)計(jì)的目標(biāo)是使PDIUSBD12在USB上達(dá)到最大的傳輸速率。在程序中需定義USB設(shè)備的GUID,通過USB驅(qū)動(dòng)程序與USB設(shè)備連通,且需利用Windows的API函數(shù)取得USB設(shè)備的Handle。根據(jù)USB協(xié)議,任何傳輸都由主機(jī)(Host)開始。單片機(jī)進(jìn)行其前臺(tái)工作,等待中斷。主機(jī)首先發(fā)令牌包給PDIUSBD12,PDIUSBD12接收到令牌包后就給單片機(jī)發(fā)中斷。單片機(jī)進(jìn)入中斷服務(wù)程序,首先讀PDIUSBD12的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應(yīng)操作。PDIUSBD12采用SIE管理USB通信。當(dāng)主機(jī)與器件進(jìn)行USB通信時(shí),會(huì)產(chǎn)生外部中斷0,通過中斷矢量寄存器判斷。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int這3個(gè)中斷主要用于與主機(jī)建立連接、進(jìn)行控制傳輸或中斷傳輸;Input_endpoint1_Int、Output_endpoint1_Int這兩個(gè)中斷主要在批量傳輸時(shí)使用。在同件中分別執(zhí)行不同的中斷程序?qū)崿F(xiàn)USB的數(shù)據(jù)傳輸。外部中斷0程序如下:
7 結(jié)論
OLED顯示技術(shù)有著廣泛的應(yīng)用前景,其能在-40℃正常顯示并可在180°范圍內(nèi)觀看,能夠做成任何形狀,放到任意物體的表面,特別適于戶外大屏幕電子屏廣告顯示領(lǐng)域,而USB接口適用于高速數(shù)據(jù)傳輸,可用作便攜式系統(tǒng)的接口,二者的完美結(jié)合使大屏幕電子公告同步發(fā)布系統(tǒng)性能更加優(yōu)越。
評論