基于雙CPU的三色LED實(shí)時(shí)交通信息顯示系統(tǒng)設(shè)計(jì)
關(guān)鍵詞:智能交通系統(tǒng),LED點(diǎn)陣,漢字字模,雙口RAM,雙CPU
0引言
隨著城市化建設(shè)和交通事業(yè)的飛速發(fā)展,在智能交通系統(tǒng)(ITS)的研究和發(fā)展中,交通誘導(dǎo)信息系統(tǒng)是解決交通擁擠、保證交通安全、提高交通網(wǎng)絡(luò)使用效率的主要手段。交通信息的發(fā)布是整個(gè)誘導(dǎo)系統(tǒng)中發(fā)揮直接效應(yīng)的重要組成部分,利用它實(shí)時(shí)發(fā)布交通指令、道路狀況等信息來(lái)提高道路的通行能力。LED點(diǎn)陣顯示屏以其色彩鮮艷、亮度高、壽命長(zhǎng)、工作穩(wěn)定可靠等優(yōu)點(diǎn)成為交通信息發(fā)布的重要途徑。單基色(紅色或綠色)LED顯示屏往往不能滿足信息分類和視角上的差別,而交通信息主要面向車輛駕駛者,由于車輛在可視距離內(nèi)停留的時(shí)間很短,因此應(yīng)避免用復(fù)雜的多灰度圖形和動(dòng)畫內(nèi)容,以免干擾行駛者。而在以二基色實(shí)現(xiàn)紅、黃、綠三種顏色的顯示屏系統(tǒng)中,紅、黃、綠是交通領(lǐng)域內(nèi)的通用顏色,分別代表禁止、警告、和同意性標(biāo)語(yǔ),既可以達(dá)到顏色變化的效果,給人視覺(jué)上的差別,又與交管部門的信號(hào)裝置顏色相吻合。采用雙CPU和雙口RAM制作大型三色圖文顯示系統(tǒng),將數(shù)據(jù)處理和傳輸分別由兩個(gè)獨(dú)立的CPU來(lái)完成,不僅提高了系統(tǒng)的處理速度和穩(wěn)定性,軟件設(shè)計(jì)也相對(duì)簡(jiǎn)單。
1系統(tǒng)總體設(shè)計(jì)方案
顯示屏的內(nèi)容是動(dòng)態(tài)刷新的,CPU要進(jìn)行大量的數(shù)據(jù)處理和傳輸。根據(jù)人的視覺(jué)特性,頻率應(yīng)大于50HZ,在實(shí)際設(shè)計(jì)時(shí),為了達(dá)到比較好的效果,頻率一般大于60HZ。對(duì)于大型的圖文顯示屏來(lái)說(shuō),基于單處理器和普通存儲(chǔ)器的系統(tǒng)在硬件和軟件設(shè)計(jì)上都遇到叫大困難,顯示內(nèi)容易出現(xiàn)閃爍。采用雙CPU結(jié)構(gòu)和雙口RAM使處理數(shù)據(jù)和輸出數(shù)據(jù)同時(shí)進(jìn)行,提高掃描速度,顯示內(nèi)容相當(dāng)穩(wěn)定??傮w結(jié)構(gòu)如圖1。
1.1系統(tǒng)雙CPU控制原理
兩片CPU均采用AT89C51,帶4KROM,對(duì)本系統(tǒng)來(lái)說(shuō)空間已足夠。CPU1負(fù)責(zé)與指揮中心PC機(jī)進(jìn)行通信和緩存區(qū)內(nèi)數(shù)據(jù)的處理與編排,CPU2負(fù)責(zé)行掃描信號(hào)的產(chǎn)生和顯示數(shù)據(jù)的輸出。采用非易失性的存儲(chǔ)芯片28C64存儲(chǔ)顯示內(nèi)容,可存放8K字節(jié)的漢字、ASCII或圖形。IDT7132是COMS靜態(tài)雙口RAM,存儲(chǔ)容量為2K x8 bit。它有兩套完全獨(dú)立的數(shù)據(jù)線、地址線和讀寫控制線,并有一套競(jìng)爭(zhēng)仲裁電路,因而可以使用兩個(gè)CPU分地獨(dú)立的訪問(wèn)內(nèi)部資源。
圖1 系統(tǒng)原理框圖
將IDT7132的2K字節(jié)存儲(chǔ)空間分為2個(gè)顯示緩存E1區(qū)和E2區(qū),分別占1K字節(jié)的空間。CPU1通過(guò)P1.1和P1.2與CPU2(P3.2,P3.3)進(jìn)行協(xié)調(diào),對(duì)緩存區(qū)E1和E2交替使用。CPU1處理E1區(qū)的數(shù)據(jù)時(shí),CPU2將E2區(qū)的數(shù)據(jù)輸出顯示。當(dāng)CPU2輸出完E2區(qū)的數(shù)據(jù)后,轉(zhuǎn)向?qū)1區(qū)的數(shù)據(jù)輸出,并通知CPU1對(duì)E2區(qū)的數(shù)據(jù)進(jìn)行處理,開(kāi)始下一輪的循環(huán)。由于兩片CPU訪問(wèn)的是ITD7132的兩塊不同的區(qū)域,避免了對(duì)同一單元同時(shí)進(jìn)行訪問(wèn),不存在仲裁的問(wèn)題,因此兩片CPU可同時(shí)獨(dú)立工作,分別完成數(shù)據(jù)的處理和傳輸,減輕了CPU2處理大量數(shù)據(jù)的壓力,大大提高運(yùn)行速度,顯示內(nèi)容相當(dāng)穩(wěn)定。
CPU1在處理數(shù)據(jù)的同時(shí),通過(guò)RS232接口隨時(shí)監(jiān)測(cè)指揮中心發(fā)來(lái)的命令和數(shù)據(jù)。如顯示屏開(kāi)/關(guān)、顏色、運(yùn)行方式、移動(dòng)速度、交通信息內(nèi)容等。CPU1接受完數(shù)據(jù)并處理好緩存區(qū)的數(shù)據(jù)后通知CPU2開(kāi)始輸出顯示新的內(nèi)容并按新的運(yùn)行控制字運(yùn)行。
1.2顏色的產(chǎn)生和控制
顯示模塊采用8X8點(diǎn)陣的雙基色模塊,有16個(gè)引角驅(qū)動(dòng)紅色的燈管和16個(gè)引角驅(qū)動(dòng)綠色燈管,其組合的顏色可以達(dá)到明黃的效果。行掃描信號(hào)用兩片74LS154 4-16譯碼器完成,通過(guò)CPU2的P3.4,P3.5控制,分別產(chǎn)生16行紅色和16行綠色掃描信號(hào),高電平有效。若P3.4=1,P3.5=1,即同時(shí)為高電平,則同時(shí)產(chǎn)生紅色和綠色掃描信號(hào),顯示屏的顏色表現(xiàn)為黃色,從而實(shí)現(xiàn)三色。在交通領(lǐng)域中,紅色代表禁止性標(biāo)語(yǔ),黃色代表警告性標(biāo)語(yǔ),而綠色代表同意性標(biāo)語(yǔ),與交通部門在實(shí)際應(yīng)用中的信號(hào)顏色保持一致。根據(jù)顯示內(nèi)容的需要,通過(guò)應(yīng)用程序編排,可以同時(shí)實(shí)現(xiàn)三種顏色的文字和圖行的顯示,如圖2。
1.3通用顯示單元的驅(qū)動(dòng)
驅(qū)動(dòng)電路設(shè)計(jì)的好壞直接影響到系統(tǒng)的生產(chǎn)成本和顯示的效果及系統(tǒng)的運(yùn)行性能。采用16塊雙級(jí)基色8x8點(diǎn)陣模塊構(gòu)成16x64點(diǎn)陣的通用顯示單元。分兩行,每行8塊。行掃描信號(hào)用兩片74LS154 4-16譯碼器完成,列數(shù)據(jù)的輸出采用并行移位鎖存的傳輸方式??梢赃x用74LS273這樣一類鎖存芯片,采用首尾相連的方式。這種方式雖然對(duì)印刷線路扳的質(zhì)量要求高,密度大,增加了布線的難度,但目前的制板技術(shù)和采用SMD貼片元件,完全可以克服。且這一設(shè)計(jì)方案優(yōu)點(diǎn)是傳輸速度快,控制方便,系統(tǒng)的整體投入成本比較低,大大地提高系統(tǒng)的性價(jià)比。P3.1與寫信號(hào)(/WR)經(jīng)過(guò)或非門后產(chǎn)生鎖存信號(hào),同時(shí)鎖存列數(shù)據(jù)。行、列信號(hào)的驅(qū)動(dòng)分別采用PNP型的BD682和NPN型的BD681達(dá)林頓管,其特點(diǎn)是增益高,開(kāi)關(guān)速度快,設(shè)計(jì)電路簡(jiǎn)單。
整個(gè)顯示屏根據(jù)尺寸大小,可以象“搭積木”一樣進(jìn)行拼接,以保證系統(tǒng)安裝方便。
2 通信傳輸和網(wǎng)絡(luò)控制
在誘導(dǎo)系統(tǒng)中,交通信息的發(fā)布和顯示要有一定的實(shí)時(shí)性,實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的傳輸。網(wǎng)絡(luò)結(jié)構(gòu)如圖3。
圖3 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)框圖
用標(biāo)準(zhǔn)的RS232通信方式實(shí)現(xiàn)指揮中心與顯示系統(tǒng)信息的傳輸,對(duì)于距離較遠(yuǎn)的可通過(guò)電話線用MODEM或光纖通訊。指揮中心通過(guò)接受采集的交通信息和調(diào)度指令,對(duì)不同位置的顯示子系統(tǒng)進(jìn)行集中控制和管理。每個(gè)信息顯示子系統(tǒng)分配不同的端口號(hào)(地址),分別實(shí)時(shí)檢測(cè)和接受指揮中心發(fā)來(lái)的不同路段的交通信息和圖文數(shù)據(jù)。PC機(jī)應(yīng)用軟件利用VB6.0的ActiveX控件MSCcomm能方便的開(kāi)發(fā)使用計(jì)算機(jī)的串口,可簡(jiǎn)單高效的實(shí)現(xiàn)設(shè)備之間的通信。其使用方法目前有很多書籍均有介紹,這里不多加論述。
3 系統(tǒng)軟件設(shè)計(jì)
3.1單片機(jī)顯示控制的軟件設(shè)計(jì)
LED 點(diǎn)陣顯示屏可實(shí)現(xiàn)動(dòng)態(tài)、靜態(tài)圖文顯示。動(dòng)態(tài)中有打字、左移、右移、上移、下移、開(kāi)簾、關(guān)簾等多種方式??筛鶕?jù)顯示屏的尺寸規(guī)格和內(nèi)容選擇不同的顏色、顯示方式和移動(dòng)速度。通過(guò)標(biāo)準(zhǔn)RS232接口,計(jì)算機(jī)將編輯好的文字或圖形數(shù)據(jù)下載到主控器,并存儲(chǔ)在非易失性存儲(chǔ)器中,然后就可以脫機(jī)運(yùn)行。整個(gè)軟件程序采用C51編程,由于采用了雙CPU的結(jié)構(gòu),使得處理數(shù)據(jù)和傳輸數(shù)據(jù)分別由兩片CPU來(lái)完成,避免了處理大量數(shù)據(jù)的復(fù)雜性,編程實(shí)現(xiàn)相對(duì)比較簡(jiǎn)單。
3.2應(yīng)用軟件點(diǎn)陣數(shù)據(jù)的提取
本文設(shè)計(jì)的顯示屏可以實(shí)現(xiàn)漢字、全角字符和ASCII碼混合顯示,編輯文本簡(jiǎn)單靈活。選用UCDOS的ASC16和HZK16文件做字模庫(kù)。HZK16文件是16x16字模點(diǎn)陣,占32個(gè)字節(jié),而ASC16文件的字符為16x8點(diǎn)陣,占16個(gè)字節(jié),針對(duì)這種情況,本文提出了一種新的字模處理方法,把漢字拆成兩半,形成左右結(jié)構(gòu),當(dāng)作兩個(gè)字符,這樣就和ASCII碼的字模統(tǒng)一起來(lái)了,使處理漢字和字符都一樣。對(duì)于特殊符號(hào),可以直接通過(guò)程序界面輸入點(diǎn)陣數(shù)據(jù)。圖形的點(diǎn)陣數(shù)據(jù)的提取,可以先做一個(gè)BMP文件,然后用取模軟件獲得。根據(jù)GB2312―80標(biāo)準(zhǔn),若知道漢字或字符的內(nèi)碼,假設(shè)為A1A2B1B2H,則可根據(jù)如下公式計(jì)算區(qū)位碼。若為漢字則
區(qū)碼=(A1A2-A1H) AND 7FH
位碼=(B1B2H=A1H) AND 7FH
若為全角字符則
區(qū)碼=(A1A2-21H) AND 7FH
位碼=(B1B2H=21H) AND 7FH
點(diǎn)陣起始位置=(區(qū)碼*94+位碼)x點(diǎn)陣字節(jié)數(shù)
ASC16文件所有字符按照ASCII值從小到大升序排列。計(jì)算字符首地址的公式:
字符點(diǎn)陣首地址=字符的ASCII碼值16+1
根據(jù)起始地址連續(xù)取32或16個(gè)字節(jié)數(shù)據(jù)即可獲得字模。限于篇幅,程序省略。
4 結(jié)束語(yǔ)
基于該設(shè)計(jì)方法的顯示屏,掃描速度快,實(shí)際運(yùn)行結(jié)果也相當(dāng)穩(wěn)定。三種顏色的實(shí)現(xiàn)保持了與交通部門采用信號(hào)顏色的一致性。用戶根據(jù)定制的顯示屏的尺寸,在硬件上只需對(duì)通用顯示單元的拼接,在軟件上則可進(jìn)行靈活地編輯圖文內(nèi)容,顏色和運(yùn)行方式。
參考文獻(xiàn)
[1]陸慰民.Visual Basic程序設(shè)計(jì)教程(6.0版).高等教育出版社,2000.7
[2]王宏民.LED顯示屏的驅(qū)動(dòng)方案.黑龍江電子技術(shù),1999.5
[3]孫國(guó)棟等.VB6.0在LED在漢字顯示信息系統(tǒng)中的應(yīng)用.計(jì)算機(jī)信息, 2003 19,9
[4]馬忠梅.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì).北京:航空航天大學(xué)出版杜,1999.1
評(píng)論