国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

嵌入式處理器Nios II與液晶顯示模塊的接口及應(yīng)用

發(fā)布時(shí)間:2010-8-18 16:27    發(fā)布者:lavida
關(guān)鍵詞: NIOS , 液晶顯示
液晶顯示器(LCD)由于具有工作電壓低、功耗低、體積小、顯示信息量大、壽命長(zhǎng)、不產(chǎn)生電磁輻射污染、可以顯示復(fù)雜的文字及圖形等優(yōu)點(diǎn),液晶顯示器已被廣泛應(yīng)用于各種儀器儀表、電子設(shè)備及控制領(lǐng)域中,成為測(cè)量結(jié)果顯示和人機(jī)對(duì)話的重要工具。液晶顯示器按其功能可分為筆段式和點(diǎn)矩陣式液晶顯示器,后者又可以分為字符點(diǎn)陣式和圖形點(diǎn)陣式液晶顯示器。圖形點(diǎn)陣式液晶顯示器不僅可顯示數(shù)字、字符等內(nèi)容,還能顯示漢字和任意圖形。  

本文是以240*128點(diǎn)陣型液晶顯示模塊MGL240128T為例。研究嵌入式Nios II軟核處理器與液晶顯示模塊的接口和圖形顯示的編程技術(shù)。  

1 Nios II軟核處理器和SOPC設(shè)計(jì)  

在2004年,Alter推出了Nios II系列32位RSIC嵌入式處理器。Nios II軟核處理器是Alter的第二代FPGA嵌入式處理器,比第一代Nios具有更高水平的效率和性能。Nios II核平均占甩不到50%的FPGA資源,而計(jì)算性能增長(zhǎng)了1倍。Nios II嵌入式處理器性能超過(guò)200 DMIPS,采用32位指令、32位數(shù)據(jù)和地址、32位通用寄存器和32個(gè)外部中斷源;支持用戶的專(zhuān)用指令多達(dá)256個(gè),這使得設(shè)計(jì)者能夠細(xì)致地調(diào)整系統(tǒng)硬件以滿足性能目標(biāo)。Nios II支持60多個(gè)外設(shè)選項(xiàng),開(kāi)發(fā)者能夠選擇合適的外設(shè),獲得最合適的處理器、外設(shè)和接口組合,而不必支付根本不使用的硅片功能。  

目前。FPGA(現(xiàn)場(chǎng)編程邏輯門(mén)陣列)芯片密度已達(dá)到百萬(wàn)門(mén)級(jí),在一片F(xiàn)PGA芯片上可以實(shí)現(xiàn)如DSPMCU、PCI總線控制和各種控制算法等復(fù)雜的功能。由于FPGA芯片密度的不斷提高和新的EDA開(kāi)發(fā)工具的使用,利用FPGA器件實(shí)現(xiàn)SOC已成為可能,這項(xiàng)技術(shù)稱(chēng)為嵌入式SOPC(可編程單芯片系統(tǒng))。SOPC技術(shù)既具有基于模板級(jí)設(shè)計(jì)的特征,又具有基于ASIC的系統(tǒng)級(jí)芯片設(shè)計(jì)的特征,具有了可重構(gòu)性、高效自動(dòng)化的設(shè)計(jì)方法。Alter推出的Nios II正是為設(shè)計(jì)者提供了FPGA優(yōu)化的靈活的嵌入式處理器,以及為SOPC設(shè)計(jì)了一套綜合解決方案。  

Nios II處理器具有完善的軟件開(kāi)發(fā)套件.包括編譯器、集成開(kāi)發(fā)環(huán)境(IDE)、m C調(diào)試器、實(shí)時(shí)操作系統(tǒng)(RTOS)和TCP/IP協(xié)議棧。設(shè)計(jì)者能夠用Altera Quartus II開(kāi)發(fā)軟件中的SOPC Builder系統(tǒng)開(kāi)發(fā)工具很容易地創(chuàng)建用戶定制的CPU和外設(shè),獲得恰好滿足需求的處理器系統(tǒng)。利用SOPC Builder開(kāi)發(fā)工具創(chuàng)建專(zhuān)用的處理器系統(tǒng),需要進(jìn)行SOPC的嵌入式處理器芯片和軟件設(shè)計(jì)。SOPC Builder工具通過(guò)加載NioslI核和外圍接口的定義配置一個(gè)高集成度的SOPC系統(tǒng)的嵌入式處理器芯片。  


  
圖1所示是一個(gè)實(shí)現(xiàn)液晶顯示的SOPC系統(tǒng)的NioslI處理器,主要端口包括全局輸入時(shí)鐘、復(fù)位信號(hào)、外部設(shè)備片選信號(hào)、讀使能、寫(xiě)使能、數(shù)據(jù)地址總線以及和計(jì)算機(jī)通信的UART端口。由于NioslI是在FPGA片內(nèi)實(shí)現(xiàn)的,因此它既可以通過(guò)FPGA的引腳連到外部和其它的設(shè)備相連接,也可以直接連到FPGA片內(nèi)的其他模塊上。同樣,F(xiàn)PGA片內(nèi)未被使用的資源仍然可以被配置成為其它的模塊使用,從而實(shí)現(xiàn)系統(tǒng)的集成,使SOC成為可能。  

2 Nios II與液晶顯示模塊的接口  

MGLS240128T液晶顯示模塊的引腳說(shuō)明如表1所示,可顯示各種字符及圖形,該模塊對(duì)液晶顯示的控制和驅(qū)動(dòng)都由模塊內(nèi)部的控制器T6963C芯片及電路來(lái)完成,因此它與外部的連接只有8位數(shù)據(jù)線和6條控制線及電源。外部CPU通過(guò)這些數(shù)據(jù)線和控制線來(lái)設(shè)置所需要的顯示方式,其它功能均由模塊自動(dòng)完成。控制器T6963C最大的特點(diǎn)是具有獨(dú)特的硬件初始設(shè)置功能,初始化在上電時(shí)就已基本設(shè)置完成。它還具有很強(qiáng)的軟件控制能力,外部的處理器通過(guò)接口寫(xiě)入液晶模塊的指令來(lái)實(shí)現(xiàn)模塊控制。軟件控制主要集中于顯示功能的設(shè)置上。T6963C的控制指令如表2所示。T6963C的指令可帶一個(gè)或多個(gè)參數(shù),每條指令的執(zhí)行都是先送入?yún)?shù)(如有參數(shù)),再送入指令。  




  
嵌入式處理器NioslI把液晶顯示模塊接口看著普通的外部設(shè)備PIO進(jìn)行操作,因此液晶顯示模塊的數(shù)據(jù)以及讀寫(xiě)片選信號(hào)都包括在Nios II上的PIO總線中。其接口電路如圖2所示。其中LCD_DB[7..0]為8位數(shù)據(jù)線,負(fù)責(zé)將控制指令和顯示數(shù)據(jù)輸入到液晶顯示模塊中;LCD_CD為指令,數(shù)據(jù)切換;LCD_CS為為片選信號(hào);LCD_RD為讀使能;LCD_WR為寫(xiě)使能。  


  
3 Nios II處理器的軟件開(kāi)發(fā)  

利用SOPC Builder開(kāi)發(fā)工具創(chuàng)建專(zhuān)用的處理器系統(tǒng)的硬件后,SOPC Builder還為編寫(xiě)操作這些片上硬件的軟件代碼提供了一個(gè)Nios II集成開(kāi)發(fā)環(huán)境(IDE),這個(gè)軟件開(kāi)發(fā)環(huán)境包括語(yǔ)言的頭文件、外圍接口的驅(qū)動(dòng)以及實(shí)時(shí)操作系統(tǒng)的內(nèi)核,可完成整個(gè)軟件工程的編緝、編譯、調(diào)試和下載等過(guò)程,極大地提高了軟件的開(kāi)發(fā)效率。  

由于該液晶顯示模塊的控制和驅(qū)動(dòng)都是由模塊內(nèi)部的控制器T6963C芯片及電路來(lái)完成的,因此通過(guò)Nios II處理器將數(shù)據(jù)直接送入T6963C顯示緩沖區(qū)RAM的指定地址,控制器T6963C就可以控制液晶屏上相應(yīng)位置顯示出所需要的數(shù)據(jù)。Nios II處理器的軟件采用模塊化結(jié)構(gòu),主要包括顯示初始化、圖形顯示、清屏等模塊。  

在進(jìn)行顯示之前。先調(diào)用顯示初始化模塊,實(shí)現(xiàn)對(duì)屏幕的初始化,即設(shè)置文本和圖形緩沖區(qū)的起始地址以及顯示方式。在顯示一屏新的圖形時(shí),需要對(duì)屏幕清屏。清屏是將顯示RAM區(qū)域中的所有單元清零。它需要用T6963C連續(xù)寫(xiě)的功能,并要先設(shè)定RAM區(qū)域的首地址。由于RAM 區(qū)共有240/8*128=3840個(gè)字節(jié),所以循環(huán)清零需執(zhí)行3840次。在介紹圖形顯示程序之前先給出三函數(shù):寫(xiě)命令、寫(xiě)數(shù)據(jù)和畫(huà)點(diǎn)函數(shù)。  

void LCD_Write_Command(UCHAR m_Command) //寫(xiě)命令  

{ IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff); //數(shù)據(jù)總線:輸出  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,1);//選擇命令  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,0);//片選拉低  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,0);//寫(xiě)信號(hào)有效  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE,m_Command);  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,1);//寫(xiě)信號(hào)無(wú)效  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,1);//片選無(wú)效 1  

void LCD_Write_Data(UCHAR m_Data) 寫(xiě)數(shù)據(jù)  

{IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff);//數(shù)據(jù)總線:輸出  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CD_BASE,0);//選擇數(shù)據(jù)  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,0);//片選拉低  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,0);//寫(xiě)信號(hào)有效  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE,m_Data);  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,1);//寫(xiě)信號(hào)無(wú)效  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS_BASE,1);//片選無(wú)效  

}  

void Draw_Point(UCHAR x,UCHAR y) //畫(huà)點(diǎn)  

{ unsigned int m_Addr;  

unsigned char n,t1,t2,t;  

n=x/8 ;m_Addr=GASAH*256+GASAL+y*ZIFU_NUM+n;  

t1= m_Addr&0xff;t2=m_Addr/256;  

LCD_Write_Data(UCHAR t1);  

LCD_Write_Data(UCHAR t2);  

LCD_Write_Command(0x24);  

If(y>=0x80) n=0xf0;else n=0xf8;  

t=x%8;t=("t)&0x07;t=n|t;  

LED_Write_Command(t);  

}  

在液晶顯示屏上顯示的各種曲線實(shí)際上是由若干段直線組成。所以直線的繪制就是曲線繪制的子程序。直線繪制的算法有多種多樣,為了避免復(fù)雜的浮點(diǎn)運(yùn)算,這里采用了Bresenham畫(huà)線算法的整數(shù)數(shù)字增量分析法。該算法的基本思路是回避計(jì)算斜率k=(y1-y2)/(x2-x1)過(guò)程中的除法運(yùn)算,應(yīng)用dy=y1-y2 和dx=x2-x1之間的關(guān)系,根據(jù)直線的起點(diǎn)和終點(diǎn)的坐標(biāo)不同,直線的走向和斜率將不同,即k的大小和正負(fù)將不同,因此繪制直線時(shí)將斜率 的取值分為四種情況進(jìn)行繪圖。下面給出從點(diǎn)(x1,y1)到點(diǎn)(x2,y2)畫(huà)線的Nios II應(yīng)用程序。  

void Draw_Line(UCHAR x1,UCHAR y1,UCHAR x2,UCHAR y2)  

{ UCHAR u1,v1,u2,v2;  

signed int dx=x2-x1;  

signed int dy=y2-y1;  

UCHAR k;  

If(dx*dy>=0)  

{ if (abs(x1-x2)>= abs(y1-y2))  

//斜率在[0,1]范圍內(nèi)  

{ k=1; u1=x1;v1=y1;u2=x2;v2=y2;}  

else { k=2;u1=y1;v1=x1;u2=y2;v2=x2;}  

//斜率在(1,∞)范圍內(nèi) }  

else { if(abs(x1-x2)>=abs(y1-y2))  

//斜率在[-1,0]范圍內(nèi)  

{ k=3;u1=x1;v1=y1;u2=x2;v2=2*y1-y2;}  

else {k=4;u1=y1;v1=x1;u2=2*y1-y2;v2=x2;}  

//斜率在(-∞,-1)范圍內(nèi) }  

int u,v,uEnd,p=2*abs(v1-v2)-abs(u1-u2);  

int twoDv=2*abs(v1-v2,twoDvDu=2*(abs(v1-v2)-abs(u1-u2));  

if(u1>u2) {u=u2;v=v2;uEnd=u1;}  

else {u=u1;v=v1;uEnd=u2;}  

switch(k)  

{  

case 1: Draw_Point(u,v);break;  

case 2: Draw_Point(v,u);break;  

case 3: Draw_Point(u,2*y1-v);break;  

case 4: Draw_Point(v,2*y1-u);break;  

default :break;}  

while(u { u++;  

if(pelse {v++;p+=twoDvDu;}  

switch(k)  

{case 1: Draw_Point(u,v);break;  

case 2: Draw_Point(v,u);break;  

case 3: Draw_Point(u,2*y1-v);break;  

case 4: Draw_Point(v,2(y1-u);break;  

default:break;}  

}  

}  

4 結(jié)束語(yǔ)  

在FPGA中使用軟核處理器Nios II比硬核的優(yōu)勢(shì)在于:硬核實(shí)現(xiàn)沒(méi)有靈活性,通常無(wú)法適應(yīng)最新技術(shù)的發(fā)展;而基于Nios II處理器的方案是基于HDL源碼構(gòu)建的,可配置的程度很高。Nios II處理器可以將外部存儲(chǔ)器、液晶顯示屏、以太網(wǎng)控制器、RS-232通信和USB接口等外部設(shè)備連接在一起,進(jìn)行外設(shè)的協(xié)調(diào)工作和數(shù)據(jù)共享,并能夠根據(jù)系統(tǒng)的性能要求添加多個(gè)Nios II處理器,實(shí)現(xiàn)多CPU內(nèi)核;還可以在Nios II核中加入實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)多任務(wù)的調(diào)度。
本文地址:http://m.qingdxww.cn/thread-22224-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美怡红院免费的视频| 一级成人a免费视频| 亚洲 欧美 成人日韩| 给我免费播放片bd国语| 男男gaygay拳头| 日日射日日操| 日本a在线天堂| 青青青视频免费观看| 亚洲成人精品久久| 一个人在线观看完整版中文| 国内精品七七久久影院| 我的奶头被客人吸的又肿又红| 性虎成人网| 深夜桃色影院| 天天干女人| 天堂伊人网| 成人无码国产AV免费看 | 青青草成人在线| 香蕉久人久人青草青草| 亚洲绝美精品一区二区| 拔萝卜电视剧高清免费| 无人区大片中文字幕在线| 亚洲欧美日韩在线不卡| 亚洲久草视频| 中文字幕日韩精品在线| 热久久免费频精品99热| 欧美无遮挡国产欧美另类| 日韩亚洲第一页| 亚洲精品综合| 红杏俱乐部| 亚洲欧美在线一区| 日本久久久免费高清| 色女孩综合| 中文字幕久荜一区日本精品| 欧美特级另类xxx| 日韩免费高清| 亚洲高清色| 亚洲综合 图区 偷| 老师我好爽再深一点老师好涨| 色戒西瓜视频| 欧美福利在线播放|