新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 基于Nios II的非一般模式類設備設計與集成

基于Nios II的非一般模式類設備設計與集成

——
作者:馬森,呂悅,李志平 時間:2006-08-11 來源:(首都師范大學信息工程學院,北京 100037) 收藏

摘要: 的開發(fā)過程中,硬件抽象層提供多種一般模式類設備,使得開發(fā)者可以高效的在系統(tǒng)中添加并使用這些設備。然而對不屬于一般模式類的新設備的使用將不能按照原有的設計方法進行系統(tǒng)開發(fā)。為此,需要根據(jù) 內(nèi)部總線規(guī)范提供一個設備驅(qū)動,并按照SOPC Builder要求集成到硬件抽象層中。通過設計并集成非字符型液晶顯示模塊得出結(jié)論:任何非一般模式類設備均可加載到 系統(tǒng)中并能正常工作。

關鍵詞:液晶顯示;Nios II;Avalon總線;設備集成

中圖法分類號:TN911.72 ;TP319    文獻標識碼:A    文章編號


Design and integration of special device based on Nios II

MA Sen,LV Yue,LI Zhi-ping

(College of Information Engineering,Capital Normal University,Beijing 100037,China)
Abstract: During the development process of Nios II, hardware abstract layer provided a variety generic device model classes. The developer can make efficient use of the system and added to the equipment. However, such models do not fall within the general use of the new equipment. It will not be in accordance with the original design of systems development methods. To solve this problem, a device driver which in accordance with the Nios II internal bus norms have to been provided, and integrate into HAL with requirements of SOPC Builder. Through the design and integration of non-Character LCD module, the results show that: any new equipment can included in the Nios II system and to normal work.
Key Words: LCD modulate;Nios II;Avalon bus;Device integration

引言

  液晶顯示器具有低工作電壓、功耗小、重量輕、厚度薄、長壽命、無電磁輻射、不耀眼、抗干擾性好、抗震性能好、有效顯示面積大、適于大規(guī)模集成電路直接驅(qū)動等優(yōu)良特點[1]。已被廣泛應用于各種儀器儀表、電子設備及控制領域中,成為測量結(jié)果顯示和人機對話的重要工具。液晶顯示器按其功能可分為筆段式和點矩陣式液晶顯示器,后者又可以分為字符點陣式和圖形點陣式液晶顯示器。圖形點陣式液晶顯示器不僅可顯示數(shù)字、字符等內(nèi)容,還能顯示漢字和任意圖形。但此類液晶顯示屏屬于非一般模式類設備,在Nios II中不能直接開發(fā)使用。

1 SOPC設計與嵌入式Nios II處理器

  片上可編程系統(tǒng)(SOPC)是PLD(可編程邏輯)技術優(yōu)勢的新延伸,其特點:開發(fā)周期短,靈活性強,較低的開發(fā)費用等。Altera將SOPC開發(fā)過程與功能強大的Quartus II工具相結(jié)合的SOPC Builder是一個強有力的創(chuàng)建基于處理器、外設和存儲器的系統(tǒng)開發(fā)工具,使得工程師進行SOPC設計時只需要點幾個按鈕,就可以選擇和配置處理器及其外設,并把它們同系統(tǒng)的其余部分進行連接。新工具也允許設計人員全程介入研發(fā)的過程,從而獲得更為細致的控制。
 
  Nios II是一個32位RISC嵌入式處理器。具有超過200 DMIP的性能。由于處理器是軟核形式,具有很大的靈活性,可以在多種系統(tǒng)設置組合中進行選擇,達到性能、特性和成本目標。Nios II處理器可定制特性集并且方便配置系統(tǒng)性能擁有無與倫比的靈活性。
   
  對于一個全新的外部設備,Nios II有更好的解決方案快速的掌握它的控制方法。按照設備的電器要求,使用Nios II的已有的基本控制設備(例如通用輸入輸出端口PIO)掌握新設備的控制特性與方法。當充分理解新設備的特性后就可以按照Nios II的硬件抽象層(HAL)的定義方法,編寫新設備的驅(qū)動將其集成到Nios II中。這樣在今后的開發(fā)中在SOPC Builder中就可以像其他設備一樣增添這個新設備,Nios II軟核生成后會自動加載此設備的設備驅(qū)動。這樣提高了新設備的二次使用時的開發(fā)效率[2]。
 
  以下是液晶屏顯示模塊接口的設計與集成過程。

2 液晶顯示模塊的設計

2.1 液晶顯示簡介

  GM12864A是帶顯示存儲器的圖形液晶顯示器。它的內(nèi)部是由兩塊KS0108B作為列顯示控制器和一片KS0107B作為行顯示控制器組成。顯示屏上各像素點的顯示狀態(tài)與顯示存儲器的各位相互對經(jīng),顯示存儲器的數(shù)據(jù)直接作為圖形顯示的驅(qū)動信號。顯示數(shù)據(jù)為“1”,相應的像素點變亮[3]。液晶屏結(jié)構如圖1所示。




圖1 液晶屏GM12864A的結(jié)構圖

  GM12864A的接口引腳有15根,其中2個控制線,2個片選線,8根數(shù)據(jù)線,1根使能及電源引腳。具體如表1描述。

引腳號

引腳名稱

引腳類型

引腳說明

1

VCC

Power

電源

2

GND

Ground

地線

3

RS

I

控制

4

R/W

I

讀寫控制

5

E

I

使能

6

DB0

I/O

數(shù)據(jù)線[0~7](雙向數(shù)據(jù)總線)

7

DB1

I/O

--

8

DB2

I/O

--

9

DB3

I/O

--

10

DB4

I/O

--

11

DB5

I/O

--

12

DB6

I/O

--

13

DB7

I/O

--

14

CS1

I

片選信號1

15

CS2

I

片選信號2

表1 液晶屏GM12864A的引腳說明

  了解液晶屏的引腳后還要對它的指令進行詳細的分析,因為液晶屏的控制主要是通過指令完成的。GM12864A的指令表如表2所示。

指令

RS

R/W

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

讀狀態(tài)字

0

1

Busy

0

ON/OF

Res

0

0

0

0

顯示開關

0

0

0

0

1

1

1

1

1

1/0

設置行

0

0

1

0

1

1

1

行(0 ~ 7)

設置列

0

0

0

1

列(0 ~ 63)

寫數(shù)據(jù)

1

0

數(shù)據(jù)(DB0 ~ DB7)

表2 液晶屏GM12864A的指令表

2.2 PIO類的介紹

  設計初始階段主要的目的在于充分了解新設備的特性與控制方法,為之后的設備集成打好基礎。因此采用通用的輸入輸出控制接口(PIO)直接對液晶屏的引腳進行控制。{{分頁}}
 
  Nios II中PIO分為三大類:輸入(I)、輸出(O)和三態(tài)(Tri)。PIO通過Avalon總線與Nios II相連接[4]。如圖2所示。





圖2 通用輸入輸出接口與Nios II的連接

2.3 接口的設計

  在Quartus II中新建一個工程,芯片類型選擇Cyclone 1C6Q240C8。設置畫面如圖3所示。



圖3 芯片設置界面

  工程創(chuàng)建完成后在SOPC Builder中定制Nios II處理器。液晶屏顯示器驅(qū)動接口在設計初步作為普通的外部設備,用PIO進行操作。所以為系統(tǒng)增添所需要的PIO借口。設計完成后如圖4所示。

  定制結(jié)束后生成Nios II處理器模塊。生成后回到Quartus II中進行系統(tǒng)頂層結(jié)構的設計。通過SOPC Builder生成的Nios II模塊需要一個時鐘和一個復位輸入端,輸出與定制時所設計的一致。增添相應的輸入輸出引腳。頂層結(jié)構如圖5所示。





圖5 液晶屏控制系統(tǒng)頂層結(jié)構

  將控制系統(tǒng)編譯,液晶屏與芯片的接口連接電路如圖6所示。



圖6 液晶屏與FPGA的接口電路

2.4軟件設計

  利用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ā)效率。
 
液晶屏顯示流程如圖7所示。





圖7 液晶屏顯示流程

  根據(jù)液晶屏顯示原理,編寫三個函數(shù)如下,函數(shù)Busy_Check()檢查液晶屏是否為忙LCD_Command_Write(alt_u8 Command)函數(shù)用來寫命令。LCD_Data_Write(alt_u8 Data)函數(shù)用來寫數(shù)據(jù)。 void Busy_Check()
{
  alt_u8 temp=0x00;    //狀態(tài)變量
  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS1_BASE, 0);    //給CS1賦值
  IOWR_ALTERA_AVALON_PIO_DATA(LCD_CS2_BASE, 1); //給CS2賦值
  IOWR_ALTERA_AVALON_PIO_DATA(LCD_RS_BASE, 0);     //給RS賦值
  IOWR_ALTERA_AVALON_PIO_DATA(LCD_RW_BASE, 1);     //給RW賦值
  IOWR_ALTERA_AVALON_PIO_DATA(LCD_E_BASE, 1);    //給E賦值
  IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0x00);
  temp = IORD_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE);//讀取狀態(tài)字
  IOWR_ALTERA_AVALON_PIO_DATA(LCD_E_BASE, 0);
  IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff);
  BUSY=temp&0x80;                            //將狀態(tài)賦BUSY
}

void LCD_Command_Write(alt_u8 m_Command)
{
    if (!BUSY)    //判斷是否為忙
    {
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_RS_BASE, 0);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_RW_BASE, 0);
      IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, m_Command);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_E_BASE, 1);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_E_BASE, 0);
    }
}

void LCD_Data_Write(alt_u8 m_Data)
{
    if (!BUSY) //判斷是否為忙
    {
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_RS_BASE, 1);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_RW_BASE, 0);
      IOWR_ALTERA_AVALON_PIO_DIRECTION(LCD_DB_BASE,0xff);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_DB_BASE, m_Data);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_E_BASE, 1);
      IOWR_ALTERA_AVALON_PIO_DATA(LCD_E_BASE, 0);
    }
}

2.5 漢字顯示設計實踐

    顯示屏是信息輸出的載體,為了更好的達到良好交互效果,嘗試通過Nios II的液晶屏顯示借口進行漢字顯示的實踐。 {{分頁}}

  根據(jù)對漢字的使用頻繁程度的研究,把漢字分為高頻字,常用字,次常用字,罕見字和死字。正常使用的漢字達15000個。1981年我國頒布了GB2312-80的方案,集合成漢字基本字符集(共6763個)。國標GB2312-80在漢字操作系統(tǒng)中是以漢字庫的形式提供的。漢字庫結(jié)構作了統(tǒng)一規(guī)定,即將字庫分成94個區(qū),每個區(qū)有94個漢字每個漢字在漢字庫中有確定的區(qū)和位的編號。每個漢字在字庫中是以點陣字模形式存儲的,如一般采用16



關鍵詞: Nios II 顯示技術

評論


相關推薦

技術專區(qū)

關閉