基于Cyclone EP1C6和SPCE061A的LED大屏幕系統設計
目前采用的led大屏幕顯示系統的控制電路大多由單個(gè)或多個(gè)單片機及復雜的外圍電路組成,單片機編程比較復雜,整個(gè)電路的調試比較麻煩,可靠性和實(shí)時(shí)性難以得到保證。針對這種情況,本文提出了一種基于spce061a和cyclone ep1c6的led大屏幕解決方案。該設計方案無(wú)須外掛flash rom和ram,無(wú)須任何外部功能電路,所有功能均由一片ep1c6和一片spce061a實(shí)現,數據處理速度快、可靠性高。
spce061a和cyclone ep1c6簡(jiǎn)介
本文引用地址:http://dyxdggzs.com/article/20872.htmspce061a是凌陽(yáng)科技的一款16位微控制器,內嵌32kb閃存和2kb字sram,cpu最高可工作在49mhz的主頻下,較高的處理速度使spce061a能夠非常容易、快速地處理復雜的數字信號。本文設計的是一個(gè)點(diǎn)陣大小為192×128的單色(紅色)顯示屏,且按要求連續顯示5屏數據,spce061a豐富的片內資源正好滿(mǎn)足了如此大的數據處理和存儲要求。本文采用由uart中斷接收上位機數據并將數據寫(xiě)入32kb閃存中的方法,取代了傳統mcu+rom+ram的設計,增加了系統的穩定性。
cyclone ep1c6是altera推出的一款高性?xún)r(jià)比f(wàn)pga。該器件提供的具有異步、雙端口、帶寄存器輸入口、可選擇的帶寄存器輸出口的存儲模塊-m4k在本設計中被設置成一個(gè)雙口ram,實(shí)現數據的讀寫(xiě)同步,提高了系統的刷新頻率。
整體設計方案
本系統設計的是一塊具有192×128個(gè)紅色led點(diǎn)陣的電子大屏幕。整塊大屏幕是模塊化的結構,每4個(gè)16×16的點(diǎn)陣塊為一個(gè)最小模塊,每行點(diǎn)陣由3個(gè)同樣的最小模塊級聯(lián)而成,共8行。大屏幕上要求連續顯示5屏內容,且每屏都具有上下左右移動(dòng)等動(dòng)畫(huà)效果。實(shí)際應用中主控制室距離電子屏約為200米。結合設計對象的要求和大屏幕設計的特點(diǎn),本文提出了一種新穎的設計方案。該方案的整體框圖如圖1所示。

led大屏幕系統由3個(gè)主要單元組成:上位機圖像/文字編輯與發(fā)送部分單元、主控板單元、顯示驅動(dòng)電路單元。系統上位機由一臺pc機來(lái)控制,它主要編輯、發(fā)送圖像/文字信息到主控板的存儲器中;主控板對這些字模數據進(jìn)行處理后發(fā)送到大屏幕,并在大屏幕上顯示出來(lái)。
系統硬件設計
上位機發(fā)出的信息經(jīng)符合rs-422標準的接口通過(guò)雙絞線(xiàn)傳送到主控板上,通訊速率可在上位機軟件中設置。接口所用芯片為mc3487和mc3486,rs-422在傳輸率為100kb/s時(shí),可傳輸的最大距離為1200米,本系統的傳輸距離約為200米,傳輸速率最大為115kb/s,采用rs-422方式傳輸可滿(mǎn)足這一長(cháng)距離通訊的要求。
主控板單元設計
該單元的設計特點(diǎn)在于數據流接收、存儲以及驅動(dòng)掃描的單片集成,無(wú)須任何外圍電路。主控板由一片spce061a和ep1c6組成,如圖2所示。

該單元的設計思路是,由單片機的iob7口以uart中斷的方式接收上位機發(fā)送的數據,這是由于大屏幕處于被動(dòng)、循環(huán)往復的顯示狀態(tài),采用異步傳輸能減少系統不斷查詢(xún)串口接收標志位的系統消耗。單片機將接收的串口數據以?xún)蓚€(gè)字節為單位逐一寫(xiě)入內置的閃存中。單片機內部的2kb sram作為緩存區,每當單片機要向fpga中寫(xiě)一屏新的數據時(shí),先按特定的地址從閃存中讀出數據并存放到sram中,再將sram中的數據并行寫(xiě)到fgga的雙口ram中,單片機與fpga的接口信號除了16根數據線(xiàn)外,還包括單片機向fpga寫(xiě)數據的地址、寫(xiě)使能和寫(xiě)時(shí)鐘。由于每屏點(diǎn)陣數為192×128,16位數據并行傳輸所需的地址線(xiàn)為11根。但由于設計需要,系統中還專(zhuān)門(mén)設置了1根額外的地址線(xiàn),用于對fpga的雙口ram進(jìn)行讀寫(xiě)分區,因此共使用了12根地址線(xiàn)。
fpga在其內部配置一個(gè)雙口ram緩存單片機寫(xiě)入的數據,同時(shí)將這些數據按照大屏幕的結構和掃描電路的特點(diǎn)選擇性地讀出,然后對數據由并轉串輸出到大屏幕的掃描驅動(dòng)電路。由于大屏幕采用模塊化的隔行掃描方式,每行需要2根數據線(xiàn)進(jìn)行隔行傳輸,整塊大屏幕共需16根數據線(xiàn)。由于點(diǎn)陣的行列驅動(dòng)均采用74ls595驅動(dòng),故fpga還應產(chǎn)生列掃描的點(diǎn)時(shí)鐘、鎖存信號和行掃描的數據、時(shí)鐘、鎖存信號。
雙口ram的配置
由于數據顯示是一種動(dòng)態(tài)掃描方式,如果采用一個(gè)ram區,當單片機寫(xiě)ram時(shí),fpga只能處于等待狀態(tài),這樣就會(huì )導致屏幕動(dòng)態(tài)掃描停止。由于屏幕數據是移位輸出的,當掃描停止時(shí),因為會(huì )有某一行的高電平保持較長(cháng)的時(shí)間,該行就會(huì )一直保持較強的亮度,影響屏幕的顯示效果。本系統中設計了2個(gè)同樣大小的ram區:a區和b區,讓單片機交替進(jìn)行寫(xiě)操作。當單片機在寫(xiě)a區時(shí),fpga就去讀b區的字模數據;當單片機寫(xiě)b區時(shí),fpga就去讀a區的字模數據。這樣就不會(huì )造成fpga的停止掃描,保證了各行的點(diǎn)陣有相同的時(shí)間占空比,使屏幕點(diǎn)陣有同樣的亮度。單片機中的highadr引腳可用于控制單片機的寫(xiě)區和fpga的讀區。
由于每屏點(diǎn)陣數據的大小為1536字,a區和b區的容量都至少要大于1536,那么整個(gè)的ram區至少為1536×2字,考慮到ep1c6內部集成了20塊容量為256字的m4k模塊,正好可以滿(mǎn)足本系統對ram的需求。雙口ram的配置如圖3所示。


其中wren是單片機往fpga中寫(xiě)入數據的寫(xiě)使能信號,wraddress[11..0]是寫(xiě)地址信號,wrclock是寫(xiě)時(shí)鐘,data[15..0]是寫(xiě)數據,rdaddress[11..0]是讀地址信號,rdclock是讀數據的時(shí)鐘信號,q[15..0]是讀出的數據。對于這個(gè)雙口ram而言,只有q[15..0]是輸出端口,其他均為輸入端口。與寫(xiě)數據相關(guān)的信號全部由單片機產(chǎn)生,讀數據的所有信號由fpga產(chǎn)生。其中讀寫(xiě)地址的最高位可實(shí)現ram分區。
點(diǎn)陣驅動(dòng)電路
本系統中led的灰度等級是采用調制占空比的方法來(lái)實(shí)現的,由于大屏幕是單色點(diǎn)陣,主要用來(lái)顯示文字信息,所以要求亮度高且均衡。根據這一特點(diǎn),采用了模塊化的隔8行掃描方式。每隔8行點(diǎn)陣同時(shí)進(jìn)行掃描,則每行的占空比是1/8,使屏幕亮度得到保證。
點(diǎn)陣的驅動(dòng)電路分為行驅動(dòng)和列驅動(dòng),列驅動(dòng)采用串行數據傳輸方式,易于模塊化。列驅動(dòng)電路由74ls595組成,行驅動(dòng)電路由74ls595和與之配套的反相器7406、pnp達林頓功率三極管tip127組成。所有作為行驅動(dòng)74ls595的數據時(shí)鐘信號、數據鎖存信號、掃描數據、時(shí)鐘、鎖存信號都在一起,所有作為列驅動(dòng)74ls595的數據時(shí)鐘信號,數據鎖存信號、掃描數據、時(shí)鐘、鎖存信號也是在一起的,這樣可以實(shí)現大屏幕的同步顯示。
軟件設計
系統的軟件設計由3部分組成:上位機圖像/文字編輯與發(fā)送軟件設計、單片機控制單元軟件設計,以及fpga控制單元軟件設計。
上位機軟件設計
上位機的圖像/文字編輯與發(fā)送軟件由visual basic編寫(xiě),只須在界面中將屏幕大小設置為192×128,串口選擇com1或com2,波特率設置為9600,并設置每屏的起始地址和要發(fā)送的屏數,調入包含相關(guān)信息的文件,點(diǎn)擊“發(fā)送”按鈕即可,數據流經(jīng)符合rs-422標準的雙絞線(xiàn)傳輸到主控板。該軟件適用于任何大小的彩色/單色屏,提供了豐富的圖形/文字編輯、修改功能。也可以直接調用windows中的16色畫(huà)圖文件(*.bmp),從而可以利用windows或基于windows的各種作圖工具設計出豐富多彩的圖像。
單片機控制單元軟件設計
單片機控制單元的軟件設計主要實(shí)現3大功能:串行數據接收、數據輸出和圖像顯示方式變換。設計流程如圖4所示。串行數據接收部分主要是通過(guò)uart中斷接收并保存位圖文件。圖像顯示方式變換部分實(shí)現圖像的變換,如上移、下移、左移、右移等,以實(shí)現豐富多彩的圖像顯示效果。
fpga控制單元軟件設計
fpga控制單元是在quartusⅱ環(huán)境下開(kāi)發(fā)的,主要功能是配置雙口ram、傳送數據和相應的驅動(dòng)信號,以實(shí)現串行數據的顯示。串行數據顯示是軟件設計的核心,該單元的軟件設計模塊如圖5所示。
雙端口ram的配置完全由軟件實(shí)現,fpga讀雙口ram的a區還是b區是由單片機的highadr引腳控制的。fpga按照顯示驅動(dòng)的要求讀出相應的數據后,還要將這些數據由串轉并送至列驅動(dòng)的74ls595上。掃描控制信號則在數據送到顯示驅動(dòng)的過(guò)程中產(chǎn)生,用于實(shí)現行、列驅動(dòng)。
結語(yǔ)
本文提出的基于cyclone ep1c6和spce061a的led大屏幕方案已應用于現場(chǎng)。其基于fpga的雙口ram和掃描控制設計使得系統穩定可靠。實(shí)踐證明,本系統能以多種播放方式顯示各種字體和型號的文字和圖形信息,與同類(lèi)設計相比,畫(huà)面清晰,性能穩定、操作使用簡(jiǎn)單,具有很好的應用前景。
評論