999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

NiosⅡ嵌入式處理器在LCD顯示系統設計中的應用

2013-04-12 00:00:00湯莉莉黃偉
現代電子技術 2013年19期

摘 要: Altera公司的Nios嵌入式軟核處理器以其成本低廉,設計靈活等特點,在嵌入式應用領域得到了廣泛的應用,同時LCD也越來越多地在各種儀器儀表和測控系統中作為人機界面和顯示模塊。論述利用SOPC技術實現了一種基于Nios嵌入式軟核處理器的液晶顯示屏的軟、硬件設計方案,并給出了對該液晶屏進行控制的硬件接口電路、軟件編寫流程以及相應程序。

關鍵詞: FPGA; Nios; LCD; 嵌入式處理器

中圖分類號: TN873?34 文獻標識碼: A 文章編號: 1004?373X(2013)19?0151?03

0 引 言

LCD液晶顯示滿足嵌入式系統日益提高的要求,特別在工業控制和消費電子領域,具有穩定可靠、成本低、功耗小、控制驅動方便、接口簡單易用、模塊化結構緊湊、體積小和重量輕等優點。Nios Ⅱ是一種可配置的16/32位RISC處理器,它結合豐富的外設專用指令和硬件加速單元可以低成本地提供極度靈活和功能強大的SOPC 系統,開發者根據實際需要自行整合。Altera公司所有主流FPGA 器件都支持Nios Ⅱ。將LCD驅動與Nios Ⅱ相結合可以得到一個擴展性強、通用的IP核,從而解決不同型號液晶屏之間的驅動差異問題。

1 NiosⅡ軟核處理器和SOPC設計

NiosⅡ核用占用不到一半的FPGA資源,可計算增加1倍以上的信息。NiosⅡ嵌入式處理器性能超過200 DMIPS,32位數據和地址、采用32位指令、32個外部中斷源和32位通用寄存器;Nios Ⅱ支持幾十個外設選項,開發者能夠選擇合適的外設,獲得最合適的處理器、外設和接口組合。

現在,在一片FPGA芯片上可以實現如MCU、DSP、PCI總線控制和各種控制算法等復雜的功能。FPGA芯片密度已達到百萬門級,由于FPGA芯片密度的提高和EDA開發工具的不斷更新,利用FPGA器件實現SOC已成為可能,這項技術稱為嵌入式SOPC技術。SOPC技術既具有基于ASIC的系統級芯片設計的特征,又具有基于模板級設計的特征,具有了可重構性、高效自動化的設計方法。Altera推出的Nios Ⅱ為設計者提供了FPGA優化的嵌入式處理器,以及為SOPC設計了一套綜合解決方案[1?2]。

Nios Ⅱ處理器具有完善的軟件開發套件,包括集成開發環境(IDE)、編譯器、MC調試器、TCP/IP協議棧和實時操作系統(RTOS)。設計者能夠用Altera Quartus Ⅱ開發軟件中的SOPC Builder系統開發工具創建用戶定制的CPU和外設電路,獲得設計需要的處理器系統。利用SOPC Builder開發工具創建專用的處理器系統,需要進行SOPC的嵌入式處理器芯片內部資源的選擇和軟件設計。SOPC Builder工具通過加載Nios Ⅱ軟核和外圍接口的定義來配置一個高集成度的SOPC系統的嵌入式處理器芯片[3?4]。

圖1是一個液晶顯示的SOPC系統的Nios Ⅱ處理器,主要端口包括復位信號、全局輸入時鐘和一些I/O端口。因Nios Ⅱ是在FPGA芯片內實現的,那么它既可以通過FPGA的引腳連到外部設備,也可以直接連到FPGA芯片內的其他電路上。FPGA片內未被使用的資源仍然同樣可以被配置成為其他的模塊使用,從而實現系統的SOC集成。

2 液晶屏控制器的選擇

這里使用的是一塊YM12864J的液晶顯示模塊,它已集成了SED1330作為液晶顯示屏的控制器,與同類產品相比其主要特點有:

(1)有較強功能的I/O控制器;

(2)指令簡單;

(3)8位并行I/O口;

(4)文本和圖形方式混合顯示。

YM12864J的I/O接口見表1。

3 FPGA與LCD的接口電路

本設計選擇的液晶顯示屏已經和控制器集成在了一起,外圍電路就比較簡單,只有FPGA芯片和液晶控制模塊的連接。這里有兩種方案可以考慮,第一種是把液晶顯示模塊當作外部存儲器,利用Ext_Shared_Bus的數據和地址總線對其進行控制;第二種是把LCD接口當作普通的外部設備GPIO進行操作,通過對I/O口的操作來控制LCD的數據以及讀、寫使能,片選。一般地,對于不太復雜的系統,把外部設備看作是普通PIO是比較簡單的方法,所以在這里采用第二種方案,Nios與LCD模塊的接口電路如圖2所示。

4 系統軟件設計

系統硬件上電復位后,初始化函數會對硬件層進行初始化配置,包括I/O口的方向配置。在對系統硬件層正確的初始化以后,可以通過Nios將數據直接送至SED1330顯示緩沖區,應用層函數會對液晶的控制器發送控制命令和顯示數據,然后液晶屏就會顯示用戶想要顯示的內容[5?6],本設計應用層設計了一些基本的顯示函數,可以顯示字符,漢字和簡單的圖形,用戶只需調用一些顯示函數就可以顯示內容,系統的軟件設計流程如圖3所示。

初始化函數的作用對液晶顯示器的控制器發送初始化命令。發送指令的方法如下:根據I/O的配置,先將命令數據送到與SED1330控制器的命令口相連的I/O口,然后把該命令的參數依次送到數據口地址。初始化代碼如下:

該程序主要包括頭文件lcd.h及主程序hello_world.c。

頭文件lcd.h的主要程序如下:

void lcd_cmd_set(alt_u8 u8_side,alt_u8 u8_cmd)

{ alt_u8 i;

lcd_status(u8_side);

//check u8_side status and side is enable

LCD_RS_L();

LCD_WR_L();

LCD_OUT_SET();

LCD_ENABLE(); //Enable the LCD

LCD_DAT_OUT(u8_cmd); for(i=0;i<10;i++);

//delay for enable

LCD_DISABLE(); for(i=0;i<10;i++);

//delay for enable }

void lcd_data_write(alt_u8 u8_side,alt_u8 u8_dat)

{ alt_u8 i;

lcd_status(u8_side);

LCD_RS_H();

LCD_WR_L();

LCD_OUT_SET();

LCD_ENABLE(); // Enable the LCD

LCD_DAT_OUT(u8_dat);

LCD_ENABLE(); for(i=0;i<10;i++);

//delay for enable

LCD_DISABLE(); for(i=0;i<10;i++);

//delay for enable }

void lcd_on_off(alt_u8 u8_side,alt_u8 u8_on_off)

{ lcd_cmd_set(u8_side,(u8_on_off 0x01)|0x3e); }

void lcd_line_set(alt_u8 u8_side,alt_u8 u8_line_num)

{ alt_u8 line_num;

if(u8_line_num>0x3f)

line_num = 0x3f;

else

line_num = u8_line_num;

lcd_cmd_set(u8_side,line_num|0xc0); }

void lcd_set_page(alt_u8 u8_side,alt_u8 u8_page_num)

{ lcd_cmd_set(u8_side,(u8_page_num 0x7)|0xb8); }

void lcd_set_colum(alt_u8 u8_side,alt_u8 u8_colum)

{ lcd_cmd_set(u8_side,(u8_colum 0x3f)|0x40); }

void lcd_write_dat(alt_u8 u8_page,alt_u8 u8_colum,alt_u8 u8_dat)

{ alt_u8 u8_side=0,colum;

if(u8_colum>0x3f u8_colum<128)

{ u8_side = 1; colum = u8_colum-64;

//write on the right screen }

if(u8_colum>=0 u8_colum<=0x3f)

{ colum = u8_colum;

lcd_set_page(u8_side,u8_page);

lcd_set_colum(u8_side,colum);

lcd_data_write(u8_side,u8_dat); }

void printf_hz(alt_u8 h,alt_u8 l,alt_u8 hz[32])

{ alt_u8 i;

for(i=0;i<16;i++)

{ lcd_write_dat(h*2,l+i,hz[i]);

lcd_write_dat(h*2+1,l+i,hz[i+16]); } }

主程序hello_world.c如下:

int main (void) //word 中存放漢字字模

{ printf_hz(3,i,_word1);

printf_hz(3,i+16,_word2);

printf_hz(3,i+32,_word3);

printf_hz(3,i+48,_word4);

printf_hz(3,i+64,_word5);

printf_hz(3,i+80,_word6);

printf_hz(3,i+96,_word7);

printf_hz(3,i+112,_word8);

return 0; }

當所有代碼設計完成并仿真調試成功后,在Quartus Ⅱ軟件中將完整的項目進行編譯,也就是將硬件配置信息與代碼軟件信息編譯在一起,并通過并口電纜最終下載到EP2C8T144C8芯片中,得到系統顯示結果信息清晰,穩定。

5 結 語

本文利用SOPC技術實現了基于NiosⅡ嵌入式處理器的LCD 顯示系統設計,從設計中可以看出采用NiosⅡ嵌入式軟核處理器與使用NiosⅡIDE 集成開發環境進行軟硬件開發的靈活性和優越性,且本文介紹的設計思路與實例開發對解決不同型號液晶屏之間的驅動具有通用性。

參考文獻

[1] 潘松,黃繼業.SOPC技術實用教程[M].北京:清華大學出版社,2005.

[2] 周立功.SOPC嵌入式系統基礎教程[M].北京:北京航空航天大學出版社,2006.

[3] 沈振乾,孔冰,常海峰.基于Nios嵌入式軟核處理器的LCD控制方法研究[J].天津工業大學學報,2006,25(4):94?96.

[4] 占榮,康勇.基于Nios嵌入式軟核處理器的液晶顯示屏控制[J].自動化技術與應用,2005,24(4):125?128.

[5] 孫愷,程世恒.NiosⅡ系統開發設計與應用實例[M].北京:北京航空航天大學出版社,2007.

[6] 王曉迪,張景秀.SOPC系統設計與實踐[M].北京:北京航空航天大學出版社,2008.

主站蜘蛛池模板: 在线a视频免费观看| 亚洲午夜久久久精品电影院| 久久香蕉国产线看精品| 国产网站黄| 精品久久久久成人码免费动漫| 精品国产污污免费网站| jijzzizz老师出水喷水喷出| h网站在线播放| 丁香婷婷久久| 人妻少妇久久久久久97人妻| 99精品免费在线| 国产大片喷水在线在线视频| 色亚洲激情综合精品无码视频| 91精品专区| 欧美精品成人| 黄色片中文字幕| 国产日韩欧美一区二区三区在线 | 国产福利一区视频| 久久频这里精品99香蕉久网址| 亚洲成在人线av品善网好看| 亚洲国产午夜精华无码福利| 最新午夜男女福利片视频| 手机精品福利在线观看| 国产视频你懂得| 国产激情无码一区二区免费| 91午夜福利在线观看| 久久综合九九亚洲一区| 中国特黄美女一级视频| 国产精鲁鲁网在线视频| 亚洲第一黄片大全| 免费可以看的无遮挡av无码| 欧美亚洲国产视频| 成人福利在线视频免费观看| 性做久久久久久久免费看| 99久视频| 欧美乱妇高清无乱码免费| 亚洲无线视频| 国产素人在线| 亚洲侵犯无码网址在线观看| 亚洲中文字幕97久久精品少妇| 亚洲天堂视频网站| 白浆免费视频国产精品视频| 国产精品丝袜视频| 日韩黄色大片免费看| 国产欧美高清| 国产高潮流白浆视频| 亚洲视频三级| 国产精品hd在线播放| 色婷婷色丁香| 香蕉视频在线观看www| 国产精品香蕉在线| 久久精品国产999大香线焦| 鲁鲁鲁爽爽爽在线视频观看| 亚洲精品视频免费| 二级毛片免费观看全程| 尤物国产在线| 免费在线不卡视频| 手机精品福利在线观看| 毛片久久久| 国产一级毛片高清完整视频版| 久久动漫精品| 欧美日韩国产成人在线观看| 国产在线一区视频| 日本高清有码人妻| 亚洲精品黄| 亚洲美女一区| 欧美一区福利| 亚洲有码在线播放| 精品三级网站| 国产欧美一区二区三区视频在线观看| 国产精品性| 亚洲精品图区| 98超碰在线观看| 国产成年无码AⅤ片在线| 国产美女免费网站| 夜夜操天天摸| 国产精品无码AⅤ在线观看播放| 国产亚洲欧美在线专区| 久久久黄色片| 亚洲中文字幕国产av| 日韩精品视频久久| 免费A∨中文乱码专区|