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