兼容WHISHBONE總線的LED數(shù)碼管顯示控制器設(shè)計(jì)
1 引言
顯示器件是電子設(shè)備中不可缺少的部分,從燈泡,陰極射線管(CRT,cathode-ray tube)顯示器,到發(fā)光二級(jí)管(LED,light-emitting diode),液晶顯示屏(LCD,Liquid CrystalDisplay),顯示器件的發(fā)展伴隨著電子技術(shù)的不斷發(fā)展。目前,在小型便攜式電子設(shè)備中,LED和LCD顯示器件成為主要的顯示器件,其中發(fā)光二級(jí)管和IJED數(shù)碼管,主要用于狀態(tài)指示和數(shù)字字符顯示,LCD主要用于文字和圖形顯示。LED數(shù)碼管是用發(fā)光二級(jí)管組成字符筆畫(huà)或點(diǎn)
陣,用于顯示簡(jiǎn)單字符和圖形。最常用的是七段LED數(shù)碼管,它用發(fā)光二級(jí)管組成數(shù)字字符8的七段筆畫(huà),至少可以顯示十六進(jìn)制數(shù)字的十六個(gè)字符,再加上一個(gè)小數(shù)點(diǎn)顯示,常用于在電子設(shè)備上顯示數(shù)字字符串。其特點(diǎn)主要在于使用簡(jiǎn)單,價(jià)格低廉,顯示亮度高,功耗小。器件可靠性很高。 在中小規(guī)模集成電路的系統(tǒng)設(shè)計(jì)中,有專用的IED譯碼集成電路可以使用。在片上系統(tǒng)(SOC,System OnChip)的設(shè)計(jì)過(guò)程中,也會(huì)經(jīng)常用到LED顯示控制器,但都是根據(jù)應(yīng)用需求單獨(dú)設(shè)計(jì),可重用性差。本文設(shè)計(jì)的LED數(shù)碼管顯示控制器就是用于控制多位LED數(shù)碼管進(jìn)行掃描顯示的一個(gè)IP核,并且兼容WISHBONE總線,提高了IP核設(shè)計(jì)的可重用性,可以方便移植到任何使用WISHBONE總線的系統(tǒng)中。
2 WISHBONE總線簡(jiǎn)介
WISHBONE總線[1],全稱WISHBONE片上系統(tǒng)互聯(lián)結(jié)構(gòu),是一種主要用于片上系統(tǒng)(SOC,Sys-tem 0n Chip)的總線標(biāo)準(zhǔn)。最初是由Silicore公司提出的?,F(xiàn)在已被移交給開(kāi)源組織OpenCores維護(hù)。它因結(jié)構(gòu)極其簡(jiǎn)單、靈活、可移植性好,又完全公開(kāi)、完全免費(fèi),在SOC設(shè)計(jì)領(lǐng)域獲得眾多支持,在開(kāi)源社區(qū)有大量可以免費(fèi)使用的兼容WISHBONE總線的IP核。
WISHBONE總線采用的是Master/Slave的構(gòu)架,主、從部件通過(guò)內(nèi)部互聯(lián)網(wǎng)絡(luò)進(jìn)行互聯(lián),由Master來(lái)發(fā)起每次與Slave之間的數(shù)據(jù)傳輸。從設(shè)備只能響應(yīng)總線周期。它只定義了一種總線結(jié)構(gòu)--高速總線。如果是一個(gè)低速外部設(shè)備連接到總線上,則主設(shè)備或從設(shè)備可以在總線周期中插入若干等待周期來(lái)協(xié)調(diào)設(shè)備之間的速度。這樣要比設(shè)計(jì)兩個(gè)不同的總線接口簡(jiǎn)單。Wishbone著重定義了IP核的接口信號(hào)和總線周期標(biāo)準(zhǔn)以實(shí)現(xiàn)IP核的重用,對(duì)于主從部件的互聯(lián)網(wǎng)絡(luò),它可以實(shí)現(xiàn)點(diǎn)到點(diǎn)(point-to-point)、數(shù)據(jù)流(dataflow)、共享總線(shared bus)、交叉開(kāi)關(guān)(crossbarswitch)四種不同結(jié)構(gòu)形式。用戶必須根據(jù)具體情況對(duì)協(xié)議標(biāo)準(zhǔn)進(jìn)行擴(kuò)展和詳細(xì)設(shè)計(jì),定義數(shù)據(jù)和地址寬度,數(shù)據(jù)順序和標(biāo)簽的意義。其它的許多特性都可以由用戶自行添加,從這個(gè)意義上說(shuō),Wishbone更像是給出了一個(gè)框架,等待用戶提出具體的實(shí)現(xiàn)方法和規(guī)范。Wishbone總線的主要特征概括如下:
所有應(yīng)用使用一個(gè)總線體系結(jié)構(gòu):
簡(jiǎn)單、緊湊的體系結(jié)構(gòu);
支持多控制器:
64位地址空間:
8~64位數(shù)據(jù)總線(可擴(kuò)展);
支持三種總線周期:?jiǎn)未巫x寫(xiě),塊讀寫(xiě)和RMW(READ-MODIFY-WRITE)總線周期;
支持重試:
提供為慢速設(shè)備使用而扼制數(shù)據(jù)流的機(jī)制:
用戶自定義標(biāo)簽,確定數(shù)據(jù)傳輸類(lèi)型;
用戶自定義仲裁方式。
3 LED數(shù)碼管顯示控制器設(shè)計(jì)
3.1功能及其主要特點(diǎn)
LED數(shù)碼管的顯示控制方式有掃描控制和獨(dú)立控制兩種方式。前者用于多位LED數(shù)碼管并列顯示的情況下,共用段控信號(hào),通過(guò)掃描位控信號(hào),實(shí)現(xiàn)分時(shí)顯示。由于人眼的視覺(jué)暫留現(xiàn)象,形成多位LED數(shù)碼管同時(shí)并列顯示的效果。這種方式的實(shí)現(xiàn)有軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)兩種,軟件實(shí)現(xiàn)是由程序控制掃描過(guò)程,硬件實(shí)現(xiàn)是由專用芯片或邏輯電路控制掃描過(guò)程,程序只需向掃描控制電路寫(xiě)入控制字和各位數(shù)碼管的段碼或字符的BCD(Binary CodedDecimal)碼即可。獨(dú)立控制方式用于單獨(dú)一位或位數(shù)較少的情況,由主控設(shè)備獨(dú)立控制每一個(gè)數(shù)碼管的段控信號(hào)和位控信號(hào)。前一種控制方式下,對(duì)于多位數(shù)碼管的情況,可以有效減少連線數(shù)量,但控制過(guò)程相對(duì)復(fù)雜。后一種控制方式下顯示控制方式相對(duì)簡(jiǎn)單,但不適合多位并列顯示的情況。
IED數(shù)碼管的段碼排列如圖1所示。其編碼順序?yàn)锳 B C D E F G Dp。
本文設(shè)計(jì)的LED顯示控制IP核是一個(gè)LED數(shù)碼管掃描顯示控制模塊。這個(gè)IP核可以同時(shí)控制8位LED數(shù)碼管并列顯示,每一位都可以獨(dú)立控制打開(kāi)或關(guān)閉,當(dāng)某一位關(guān)閉時(shí),該位將不再顯示??梢越庸碴幓蚬碴?yáng)的數(shù)碼管,只需向IP核寫(xiě)入數(shù)碼管類(lèi)型控制位即可。為了實(shí)現(xiàn)顯示字符的靈活性,每位顯示的字符直接由段碼控制。
3.2結(jié)構(gòu)
該IP核的結(jié)構(gòu)如圖2所示。IP核包括WISHBONE總線接口,寄存器組和顯示掃描控制邏輯。
WISHBONE總線接口支持16位地址總線,8位數(shù)據(jù)總線,支持單次讀寫(xiě),塊讀寫(xiě),RMW總線周期。地址總線采用部分譯碼,取最低四位,使用16B地址空間。
3.3寄存器
IP核內(nèi)部寄存器包括八個(gè)段碼寄存器和兩個(gè)掃描控制寄存器。寄存器列于表1。
表中WO表示該寄存器的讀寫(xiě)方式為只寫(xiě)。
LED顯示段碼寄存器x(LED-Dx)存儲(chǔ)一位LED數(shù)碼管的段碼數(shù)據(jù)(A B C D E F G Dp)。LED-Dx(n)=l,表示該段顯示,LED-Dx(n)=0,表示該段熄滅??偩€復(fù)位時(shí),其內(nèi)容清零,要在某位顯示某一字符,需要通過(guò)總線把段碼寫(xiě)入相應(yīng)位的段碼寄存器。
LED顯示控制寄存器1(LED-CTRLl)存儲(chǔ)8位LED數(shù)碼管的顯示開(kāi)關(guān)數(shù)據(jù),其中每一位對(duì)應(yīng)一位數(shù)碼管。LED-CTRLl(n)=1,表示該位顯示,LED-CTRLl(n)=0,表示該位不顯示,掃描控制電路會(huì)跳過(guò)該位??偩€復(fù)位后其內(nèi)容清零,要顯示某位,應(yīng)首先在該寄存器相應(yīng)位寫(xiě)入1。
LED顯示控制寄存器2(LED-CTRL2)只使用一位,存儲(chǔ)IED數(shù)碼管的類(lèi)型,控制8位數(shù)碼管的顯示。LED-CTRL2(0)=1,表示LED數(shù)碼管是共陽(yáng)的,LED-CTRL2(0)=0,表示LED數(shù)碼管為共陰的??偩€復(fù)位后其內(nèi)容清零,開(kāi)始進(jìn)行顯示前,應(yīng)首先在該寄存器寫(xiě)入數(shù)碼管類(lèi)型控制位。
3.4輸入輸出接口
IP核全部寄存器為只寫(xiě)。復(fù)位后全部清零,所以缺省情況下,IJED數(shù)碼管為共陰型,8位全部不顯示,每位數(shù)碼管的段顯示都處于熄滅狀態(tài)。在開(kāi)始進(jìn)行顯示操作前,應(yīng)首先寫(xiě)LED數(shù)碼管類(lèi)型控制位,然后根據(jù)外接數(shù)碼管的個(gè)數(shù)和顯示需要,通過(guò)總線寫(xiě)控制寄存器LED-CTRLl,打開(kāi)要顯示的位。隨后只需更新段碼寄存器,就可以顯示相應(yīng)的字符了。
在總線頻率為10MHz情況下,該IP核的顯示刷新頻率為52Hz,沒(méi)有閃爍感覺(jué)。如果使用中,總線頻率與此不同,可以修改IP核參數(shù),使刷新頻率保持在50Hz以上即可。
4仿真與綜合
4.1功能仿真
通過(guò)總線,在LED-CTRL2中寫(xiě)入0x01,設(shè)定LED數(shù)碼管的類(lèi)型為共陽(yáng)。在LED一CTRLl中寫(xiě)入0xFF.8位數(shù)碼管全部打開(kāi)。然后在段碼寄存器LED DO一7中分別寫(xiě)入字符O一7的段碼(小數(shù)點(diǎn)不顯示):OxFC,Ox6O,OxDA,OxF2,Ox66,OXB6,OxBE,OXEO。在上述條件下對(duì)LED顯示控制IP核進(jìn)行功能仿真。仿真使用ModelSim 6.1f。
總線讀寫(xiě)時(shí)序仿真結(jié)果如圖3所示。
4.2綜合
在Ahera Quartus 74l上對(duì)該IP核進(jìn)行綜合,目標(biāo)器件選擇Altera的Cyclone II EP2C70F672C6。綜合結(jié)果如下:
占用資源:邏輯單元224;
寄存器94;
估計(jì)頻率:279.4 MHz。
5總結(jié)
本文設(shè)計(jì)的LED數(shù)碼管顯示控制器IP核,已經(jīng)在我們?cè)O(shè)計(jì)的采控系統(tǒng)中成功應(yīng)用,完全達(dá)到設(shè)計(jì)要求。
在SOC的設(shè)計(jì)過(guò)程中,以IP核為基礎(chǔ)的設(shè)計(jì)方法已經(jīng)成為主流,IP核的重用是一個(gè)不可輕視的問(wèn)題,而采用統(tǒng)一的總線接口規(guī)范是解決IP核重用問(wèn)題的重要途徑[3]_。本文的設(shè)計(jì)嚴(yán)格遵循了WISH-BONE Rev.B.3規(guī)范,在任何采用該規(guī)范設(shè)計(jì)的系統(tǒng)中,可以直接使用。本文的設(shè)計(jì)對(duì)可復(fù)用IP核和SOC的設(shè)計(jì)起到一定借鑒作用。
led顯示器相關(guān)文章:led顯示器原理
評(píng)論