日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]液晶顯示器(LCD)由于具有工作電壓低、功耗低、體積小、顯示信息量大、壽命長、不產(chǎn)生電磁輻射污染、可以顯示復雜的文字及圖形等優(yōu)點,液晶顯示器已被廣泛應用于各種儀器儀表、電子設備及控制領(lǐng)域中,成為測量結(jié)果顯示

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

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

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位數(shù)據(jù)和地址、32位通用寄存器和32個外部中斷源;支持用戶的專用指令多達256個,這使得設計者能夠細致地調(diào)整系統(tǒng)硬件以滿足性能目標。Nios II支持60多個外設選項,開發(fā)者能夠選擇合適的外設,獲得最合適的處理器、外設和接口組合,而不必支付根本不使用的硅片功能。

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

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

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

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

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

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

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

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

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

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

  void LCD_Write_Command(UCHAR m_Command) //寫命令

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

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

  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畫線算法的整數(shù)數(shù)字增量分析法。該算法的基本思路是回避計算斜率k=(y1-y2)/(x2-x1)過程中的除法運算,應用dy=y1-y2 和dx=x2-x1之間的關(guān)系,根據(jù)直線的起點和終點的坐標不同,直線的走向和斜率將不同,即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]范圍內(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(p<0) {p+=twoDv;}

  else {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é)束語

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎(chǔ)設施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉