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

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

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

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

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

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

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

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


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

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

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




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


  
3 Nios II處理器的軟件開發  

利用SOPC Builder開發工具創建專用的處理器系統的硬件后,SOPC Builder還為編寫操作這些片上硬件的軟件代碼提供了一個Nios II集成開發環境(IDE),這個軟件開發環境包括語言的頭文件、外圍接口的驅動以及實時操作系統的內核,可完成整個軟件工程的編緝、編譯、調試和下載等過程,極大地提高了軟件的開發效率。  

由于該液晶顯示模塊的控制和驅動都是由模塊內部的控制器T6963C芯片及電路來完成的,因此通過Nios II處理器將數據直接送入T6963C顯示緩沖區RAM的指定地址,控制器T6963C就可以控制液晶屏上相應位置顯示出所需要的數據。Nios II處理器的軟件采用模塊化結構,主要包括顯示初始化、圖形顯示、清屏等模塊。  

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

void LCD_Write_Command(UCHAR m_Command) //寫命令  

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

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);//寫信號有效  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE,m_Command);  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,1);//寫信號無效  

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

void LCD_Write_Data(UCHAR m_Data) 寫數據  

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

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

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

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,0);//寫信號有效  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE,m_Data);  

IOWR_ALTERA_AVALON_PIO_DATA(LCD_WR_BASE,1);//寫信號無效  

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

}  

void Draw_Point(UCHAR x,UCHAR y) //畫點  

{ 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);  

}  

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

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]范圍內  

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

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

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

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

//斜率在[-1,0]范圍內  

{ 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)范圍內 }  

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 結束語  

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

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 台湾佬休闲中性娱乐网| 日本一区二区三区日本免费 | 伊人色综合久久88加勒| 僵尸女av| 香蕉AV福利精品导航| 日韩有码在线视频| 青娱乐福利视频| 亚洲免费视频播放| 亚洲黄色一级| 波多野结衣 无码片| 老师系列高H文| 印度老妇女bbbxxx| 色天天久久| 青草娱乐视频| 色图图片| 伊人网站视频| 看免费人成va视频全| 一二三四在线观看高清电视剧| 亚洲国产毛片aaaaa无费看| 五月综合激情久久婷婷| 亚洲一区二区天海翼| 九九在线免费视频| 一级黄色在线| 性短视频在线观看免费不卡流畅| 亚洲成人99| 在线观看中文字幕亚洲| 免费国产午夜理论不卡| 欧美一区高清| 人人精品| 在线视频欧美日韩| 一区二区三区视频在线播放| 久久婷婷五月综合色精品首页| 亚洲欧美一区二区三区久久 | 亚洲九九视频| 久久精品成人免费网站| 一区二区中文字幕在线观看| 欧美午夜在线| 视频在线精品| 赤兔CHINESE最新男18GUY| 亚洲国产精品久久精品成人网站| 日韩avwww|