基于Nios嵌入式軟核處理器的液晶顯示屏的設(shè)計方案
0 引言
LCD液晶顯示滿足嵌入式系統(tǒng)日益提高的要求,特別在工業(yè)控制和消費(fèi)電子領(lǐng)域,具有穩(wěn)定可靠、成本低、功耗小、控制驅(qū)動方便、接口簡單易用、模塊化結(jié)構(gòu)緊湊、體積小和重量輕等優(yōu)點。Nios Ⅱ是一種可配置的16/32位RISC處理器,它結(jié)合豐富的外設(shè)專用指令和硬件加速單元可以低成本地提供極度靈活和功能強(qiáng)大的SOPC 系統(tǒng),開發(fā)者根據(jù)實際需要自行整合。Altera 公司所有主流FPGA 器件都支持Nios Ⅱ。將LCD驅(qū)動與Nios Ⅱ相結(jié)合可以得到一個擴(kuò)展性強(qiáng)、通用的IP核,從而解決不同型號液晶屏之間的驅(qū)動差異問題。
1 NiosⅡ軟核處理器和SOPC
設(shè)計NiosⅡ核用占用不到一半的FPGA 資源,可計算增加1 倍以上的信息。NiosⅡ嵌入式處理器性能超過200 DMIPS,32 位數(shù)據(jù)和地址、采用32 位指令、32 個外部中斷源和32位通用寄存器;Nios Ⅱ支持幾十個外設(shè)選項,開發(fā)者能夠選擇合適的外設(shè),獲得最合適的處理器、外設(shè)和接口組合。
現(xiàn)在,在一片F(xiàn)PGA芯片上可以實現(xiàn)如MCU、DSP、PCI總線控制和各種控制算法等復(fù)雜的功能。FPGA芯片密度已達(dá)到百萬門級,由于FPGA芯片密度的提高和EDA開發(fā)工具的不斷更新,利用FPGA器件實現(xiàn)SOC已成為可能,這項技術(shù)稱為嵌入式SOPC技術(shù)。SOPC技術(shù)既具有基于ASIC 的系統(tǒng)級芯片設(shè)計的特征,又具有基于模板級設(shè)計的特征,具有了可重構(gòu)性、高效自動化的設(shè)計方法。Altera推出的Nios Ⅱ為設(shè)計者提供了FPGA優(yōu)化的嵌入式處理器,以及為SOPC設(shè)計了一套綜合解決方案。
Nios Ⅱ處理器具有完善的軟件開發(fā)套件,包括集成開發(fā)環(huán)境(IDE)、編譯器、MC調(diào)試器、TCP/IP協(xié)議棧和實時操作系統(tǒng)(RTOS)。設(shè)計者能夠用Altera Quartus Ⅱ開發(fā)軟件中的SOPC Builder系統(tǒng)開發(fā)工具創(chuàng)建用戶定制的CPU 和外設(shè)電路,獲得設(shè)計需要的處理器系統(tǒng)。
利用SOPC Builder開發(fā)工具創(chuàng)建專用的處理器系統(tǒng),需要進(jìn)行SOPC 的嵌入式處理器芯片內(nèi)部資源的選擇和軟件設(shè)計。SOPC Builder工具通過加載Nios Ⅱ軟核和外圍接口的定義來配置一個高集成度的SOPC 系統(tǒng)的嵌入式處理器芯片。
圖1 是一個液晶顯示的SOPC 系統(tǒng)的Nios Ⅱ處理器,主要端口包括復(fù)位信號、全局輸入時鐘和一些I/O端口。因Nios Ⅱ是在FPGA芯片內(nèi)實現(xiàn)的,那么它既可以通過FPGA的引腳連到外部設(shè)備,也可以直接連到FPGA芯片內(nèi)的其他電路上。FPGA 片內(nèi)未被使用的資源仍然同樣可以被配置成為其他的模塊使用,從而實現(xiàn)系統(tǒng)的SOC集成。
2 液晶屏控制器的選擇
這里使用的是一塊YM12864J的液晶顯示模塊,它已集成了SED1330作為液晶顯示屏的控制器,與同類產(chǎn)品相比其主要特點有:
(1)有較強(qiáng)功能的I/O控制器;
(2)指令簡單;
(3)8位并行I/O口;
(4)文本和圖形方式混合顯示。
YM12864J的I/O接口見表1.
3 FPGA 與LCD 的接口電路
本設(shè)計選擇的液晶顯示屏已經(jīng)和控制器集成在了一起,外圍電路就比較簡單,只有FPGA 芯片和液晶控制模塊的連接。這里有兩種方案可以考慮,第一種是把液晶顯示模塊當(dāng)作外部存儲器,利用Ext_Shared_Bus的數(shù)據(jù)和地址總線對其進(jìn)行控制;第二種是把LCD 接口當(dāng)作普通的外部設(shè)備GPIO進(jìn)行操作,通過對I/O口的操作來控制LCD 的數(shù)據(jù)以及讀、寫使能,片選。一般地,對于不太復(fù)雜的系統(tǒng),把外部設(shè)備看作是普通PIO是比較簡單的方法,所以在這里采用第二種方案,Nios 與LCD模塊的接口電路如圖2所示。
4 系統(tǒng)軟件設(shè)計
系統(tǒng)硬件上電復(fù)位后,初始化函數(shù)會對硬件層進(jìn)行初始化配置,包括I/O口的方向配置。在對系統(tǒng)硬件層正確的初始化以后,可以通過Nios 將數(shù)據(jù)直接送至SED1330顯示緩沖區(qū),應(yīng)用層函數(shù)會對液晶的控制器發(fā)送控制命令和顯示數(shù)據(jù),然后液晶屏就會顯示用戶想要顯示的內(nèi)容,本設(shè)計應(yīng)用層設(shè)計了一些基本的顯示函數(shù),可以顯示字符,漢字和簡單的圖形,用戶只需調(diào)用一些顯示函數(shù)就可以顯示內(nèi)容,系統(tǒng)的軟件設(shè)計流程如圖3所示。
初始化函數(shù)的作用對液晶顯示器的控制器發(fā)送初始化命令。發(fā)送指令的方法如下:根據(jù)I/O的配置,先將命令數(shù)據(jù)送到與SED1330 控制器的命令口相連的I/O口,然后把該命令的參數(shù)依次送到數(shù)據(jù)口地址。初始化代碼如下:
該程序主要包括頭文件lcd.h 及主程序hello_world.c.
頭文件lcd.h的主要程序如下:
當(dāng)所有代碼設(shè)計完成并仿真調(diào)試成功后,在Quartus Ⅱ軟件中將完整的項目進(jìn)行編譯,也就是將硬件配置信息與代碼軟件信息編譯在一起,并通過并口電纜最終下載到EP2C8T144C8芯片中,得到系統(tǒng)顯示結(jié)果信息清晰,穩(wěn)定。
5 結(jié)語
本文利用SOPC技術(shù)實現(xiàn)了基于NiosⅡ嵌入式處理器的LCD 顯示系統(tǒng)的設(shè)計方案,從方案的設(shè)計中可以看出采用NiosⅡ嵌入式軟核處理器與使用NiosⅡIDE 集成開發(fā)環(huán)境進(jìn)行軟硬件開發(fā)的靈活性和優(yōu)越性,且本文方案中的設(shè)計思路與實例開發(fā)對解決不同型號液晶屏之間的驅(qū)動具有通用性。