《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > SOPC中NiosII的LCD顯示驅(qū)動(dòng)IP設(shè)計(jì)
SOPC中NiosII的LCD顯示驅(qū)動(dòng)IP設(shè)計(jì)
摘要: 針對(duì)SOPC Builder系統(tǒng)沒(méi)有提供128064液晶模塊驅(qū)動(dòng)的問(wèn)題,以CBGl28064液晶模塊為例,采用有限狀態(tài)機(jī),用Verilog HDL語(yǔ)言設(shè)計(jì)了顯示驅(qū)動(dòng)IP核,并構(gòu)建了基于NiosII嵌入式處理器的片上系統(tǒng)。通過(guò)把顯示驅(qū)動(dòng)IP核下載到Cyclone系列FPGA上,驗(yàn)證了該設(shè)計(jì)的可行性。
關(guān)鍵詞: SoPC LCD顯示 Cyclone NioslI
Abstract:
Key words :

  引言

  NioslI嵌入式處理器是A1tera公司提出的SOPC解決方案,是一種用戶可隨意配置和構(gòu)建的32位嵌入式處理器,結(jié)合豐富的外設(shè)可快速、靈活地構(gòu)建功能強(qiáng)大的SOPC系統(tǒng)。Altera公司提供了一些通用的IP核,使得用戶可輕松集成屬于自己的專用功能;但對(duì)于一些特定的外設(shè),沒(méi)有現(xiàn)成可用的IP核,如液晶模塊CBGl28064等。

  用戶可通過(guò)自定義邏輯的方法在SOPC設(shè)計(jì)中添加自定義IP核。在實(shí)際應(yīng)用中,LCD液晶顯示器憑借功耗低、體積小、輕薄及控制驅(qū)動(dòng)簡(jiǎn)單等特點(diǎn),在智能儀器、儀表和低功耗電子產(chǎn)品中得到了廣泛應(yīng)用。本文以深圳秋田視佳實(shí)業(yè)有限公司的液晶顯示模塊CBGl28064為例,在基于NioslI的SOPC系統(tǒng)中設(shè)計(jì)了LCD顯示驅(qū)動(dòng)IP核,并下載到Cyclone系列的FPGA中,實(shí)現(xiàn)了對(duì)LCD的顯示驅(qū)動(dòng)。

  1 CBGl28064液晶顯示模塊

  CBG128064是一款以2片HD61202作為列驅(qū)動(dòng)器,1片HD61203作為行驅(qū)動(dòng)器的液晶模塊。HD61202是一種帶有驅(qū)動(dòng)輸出的圖形液晶顯示控制器,可直接與8位微處理器相連;而HD61203只需提供電源,就能產(chǎn)生行驅(qū)動(dòng)信號(hào)和各種同步信號(hào)。CBGl28064液晶顯示模塊內(nèi)置顯示存儲(chǔ)器RAM,顯示屏上各像素點(diǎn)的顯示狀態(tài)與顯示存儲(chǔ)器RAM中的各位數(shù)據(jù)一一對(duì)應(yīng)。顯示存儲(chǔ)器的數(shù)據(jù)直接作為圖形顯示的驅(qū)動(dòng)信號(hào)。外部處理器只需要通過(guò)其8位數(shù)據(jù)線和6條控制線來(lái)設(shè)置所需要的顯示方式,其他功能均由模塊自動(dòng)完成。HD61202提供7條簡(jiǎn)單的指令:顯示開/關(guān)指令、顯示起始行(ROW)設(shè)置指令、頁(yè)(RAGE)設(shè)置指令、列地址(Y Address)設(shè)置指令、讀狀態(tài)指令、寫數(shù)據(jù)指令、讀數(shù)據(jù)指令。

  2 方案選擇

  通常有兩種方式可以實(shí)現(xiàn)NiosII嵌入式處理器對(duì)LCD的顯示驅(qū)動(dòng):

  一種是利用現(xiàn)成的并行輸入/輸出(PIO)內(nèi)核。該內(nèi)核提供了Avalon總線從控制器端口到通用I/O口間的存儲(chǔ)器映射接口,將LCD模塊的接口與NiosII嵌入式處理器的并行端口相連接,NiosII嵌入式處理器通過(guò)對(duì)其端口的操作來(lái)完成對(duì)LCD模塊的控制。這種方式類似于單片機(jī)操作,時(shí)序簡(jiǎn)單,易于實(shí)現(xiàn);但是在SOPC系統(tǒng)中硬件上需要設(shè)計(jì)與外設(shè)相連的I/O口,軟件上需要編寫接口程序進(jìn)行讀寫控制,增加了處理器的時(shí)間開銷,F(xiàn)PGA的并行處理能力沒(méi)有得到發(fā)揮。

  另一種是采用自定義IP核方式。把LCD模塊看成是外部存儲(chǔ)器或I/O設(shè)備,作為從設(shè)備掛接到NiosII嵌入式處理器的Avalon總線上,處理器以訪問(wèn)I/O設(shè)備或讀寫存儲(chǔ)器的方式對(duì)其進(jìn)行控制。這種方法需要寫HDL模塊,自己定義控制、狀態(tài)、數(shù)據(jù)寄存器和控制位,可較為靈活地實(shí)現(xiàn)復(fù)雜的時(shí)序控制。一旦完成了設(shè)計(jì),即可封裝為SOPC BLdldel可用的獨(dú)立元件,用戶可以像使用Altera公司提供的其他外設(shè)一樣來(lái)使用,并且可以提供給其他設(shè)計(jì)者使用。本文選用該方式實(shí)現(xiàn)。

  3 LCD顯示驅(qū)動(dòng)設(shè)計(jì)

  圖l為系統(tǒng)結(jié)構(gòu)圖。設(shè)計(jì)的重點(diǎn)在于LCD顯示驅(qū)動(dòng)模塊的設(shè)計(jì)。按照模塊化、層次化的設(shè)計(jì)思想,顯示驅(qū)動(dòng)可分為3部分實(shí)現(xiàn),即任務(wù)邏輯部分、寄存器組部分和Avalon總線接口部分。任務(wù)邏輯部分描述液晶模塊的讀寫邏輯功能;寄存器文件部分提供了內(nèi)部寄存器訪問(wèn)的通道;Avalon總線接口部分通過(guò)頂層接口模塊對(duì)寄存器進(jìn)行操作,從而實(shí)現(xiàn)對(duì)行為模塊的訪問(wèn)和控制。其中,DATA[7..0]為8位數(shù)據(jù)線,CSl、CS2為片選信號(hào),RS為指令/數(shù)據(jù)選擇信號(hào),R/W為讀寫選擇信號(hào),RST為復(fù)位信號(hào),E為讀寫使能信號(hào)。

系統(tǒng)結(jié)構(gòu)圖

  3.1 任務(wù)邏輯

  任務(wù)邏輯是整個(gè)驅(qū)動(dòng)的核心部分。要實(shí)現(xiàn)對(duì)LCD的顯示控制,就要按照CBG128064驅(qū)動(dòng)控制器的規(guī)范及時(shí)序要求進(jìn)行設(shè)計(jì)。在時(shí)序邏輯電路中,數(shù)據(jù)信號(hào)和控制信號(hào)的配合比較復(fù)雜,但又十分重要,使用有限狀態(tài)機(jī)可以較為容易地設(shè)計(jì)出復(fù)雜的數(shù)字電路系統(tǒng)。

  本文采用有限狀態(tài)機(jī)實(shí)現(xiàn)顯示驅(qū)動(dòng)的核心邏輯。根據(jù)驅(qū)動(dòng)控制器的讀寫命令及讀寫時(shí)序要求,本文設(shè)計(jì)了3個(gè)狀態(tài)機(jī),分別為讀寫控制狀態(tài)機(jī)、讀寫狀態(tài)機(jī)和讀寫時(shí)序狀態(tài)機(jī)。

  如圖2所示,讀寫控制狀態(tài)機(jī)用于當(dāng)發(fā)生讀寫請(qǐng)求時(shí)進(jìn)行忙狀態(tài)檢測(cè)及讀寫操作控制,并在每個(gè)狀態(tài)給出時(shí)序狀態(tài)機(jī)讀寫信號(hào)。

讀寫控制狀態(tài)機(jī)

  如圖3所示,讀寫狀態(tài)機(jī)給出讀或者寫信號(hào),并在讀寫控制狀態(tài)機(jī)的控制下,完成寫命令、寫數(shù)據(jù)和讀數(shù)據(jù)之間的狀態(tài)轉(zhuǎn)移。在每一個(gè)狀態(tài)下給出LCD顯示數(shù)據(jù)及控制信號(hào),如片選、所寫數(shù)據(jù)/指令等。

讀寫狀態(tài)機(jī)

  如圖4所示,讀寫時(shí)序狀態(tài)機(jī)用于控制讀或者寫外設(shè)的時(shí)刻,當(dāng)讀寫完成時(shí)給出讀寫完成信號(hào)。其中,讀寫信號(hào)由圖2中的讀寫操作給出。根據(jù)CBGl28064讀寫時(shí)序要求,當(dāng)R/W為高電平時(shí),讀取顯示RAM中的數(shù)據(jù);當(dāng)R/W為低電平且在E的下降沿時(shí),向顯示RAM中寫入數(shù)據(jù)。讀寫時(shí)序狀態(tài)機(jī)的讀寫信號(hào)由讀寫控制狀態(tài)機(jī)給定,其中,E為模塊使能信號(hào)。

 

讀寫時(shí)序狀態(tài)機(jī)

  3.2 寄存器組

  寄存器組由一系列寄存器組成,為軟件提供了訪問(wèn)硬件的通道。寄存器組中的寄存器是根據(jù)任務(wù)邏輯中需要實(shí)現(xiàn)的特定邏輯功能來(lái)設(shè)定的,任務(wù)邏輯中的數(shù)據(jù)通過(guò)這些寄存器傳輸。本設(shè)計(jì)中,寄存器組設(shè)定了8位頁(yè)地址寄存器、8位列地址寄存器,以及32位數(shù)據(jù)寄存器等。

  3.3 Ayalon總線接口

  顯示驅(qū)動(dòng)的Avalon總線接口需要一個(gè)簡(jiǎn)單的Slave端口。該端口使用較少的Avalon信號(hào)來(lái)處理簡(jiǎn)單的寄存器讀/寫傳輸。該模塊是與Avalon總線接口的一個(gè)頂層模塊,主要功能是對(duì)任務(wù)邏輯模塊和寄存器模塊進(jìn)行例化和封裝,使其信號(hào)類型符合Avalon總線信號(hào)規(guī)范和外接模塊的信號(hào)規(guī)范。頂層接口定義如下:

程序

  3.4 顯示驅(qū)動(dòng)封裝及軟件設(shè)計(jì)

  直接在SOPC Builder中添加設(shè)計(jì)好的顯示驅(qū)動(dòng)IP Core和Verilog HDL語(yǔ)言描述的文件,并根據(jù)Avalon總線傳輸規(guī)范設(shè)置好相關(guān)的信號(hào)線及傳輸參數(shù)。由于是在NiosII IDE環(huán)境下直接編寫用戶程序,可以不用編寫驅(qū)動(dòng)程序。完成后,將顯示驅(qū)動(dòng)IP Core添加至SOPC工程,并編譯、下載到FPGA器件中。

  在NiosII IDE環(huán)境下,使用自己添加的模塊編寫程序,可直接調(diào)用甬?dāng)?shù)IOWR(BASE,OFFSET,DATA)和IORD(BASE,OFFSET)對(duì)內(nèi)部寄存器進(jìn)行讀寫。本文使用結(jié)構(gòu)體定義了一個(gè)指向模塊的結(jié)構(gòu)體指針,對(duì)寄存器進(jìn)行讀寫操作。

程序

  CBGl28064本身不帶字庫(kù),可以通過(guò)2種方式添加字庫(kù):一種是把所需字庫(kù)做到硬件ROM中,增加了硬件資源成本,且缺乏靈活性;另一種是在軟件中定義字庫(kù),通過(guò)寫數(shù)據(jù)寄存器進(jìn)行顯示。本設(shè)計(jì)采用第2種方式,在軟件中定義字庫(kù),并編寫了簡(jiǎn)單的顯示測(cè)試程序,在液晶屏上顯示“ZHONG GUO”字樣。測(cè)試結(jié)果表明,該設(shè)計(jì)是正確可行的。此外,利用字模軟件生成的圖形數(shù)據(jù),也可進(jìn)行圖形顯示。

  結(jié)語(yǔ)

  本文采用有限狀態(tài)機(jī)設(shè)計(jì)了CBGl28064液晶模塊驅(qū)動(dòng)硬件邏輯,并將顯示驅(qū)動(dòng)IP核進(jìn)行封裝構(gòu)成了一個(gè)模塊化的獨(dú)立元件,使其能夠在其他的工程中復(fù)用;在此基礎(chǔ)上,基于NiosII嵌入式處理器構(gòu)建了一個(gè)用戶定制的片上系統(tǒng)。經(jīng)過(guò)在Cyclone系列FPGA上測(cè)試,該驅(qū)動(dòng)能夠在C-BGl28064液晶模塊上顯示字符、圖形。整個(gè)系統(tǒng)體現(xiàn)了SOPC嵌入式系統(tǒng)的靈活性和擴(kuò)展性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产视频久久网| 日韩午夜在线| 欧美三日本三级少妇三99| 麻豆av一区二区三区久久| 久久精品国产精品亚洲综合| 午夜亚洲性色视频| 亚洲综合成人在线| 亚洲欧美日韩国产中文| 亚洲免费伊人电影在线观看av| 亚洲一区二区三| 亚洲天堂av高清| 亚洲一区二区三区四区五区午夜 | 有坂深雪在线一区| 一区二区三区在线免费视频| 黄色精品免费| 国内伊人久久久久久网站视频| 国内免费精品永久在线视频| 韩日午夜在线资源一区二区| 韩国在线一区| 亚洲电影在线免费观看| 亚洲国产精品va| 亚洲欧洲一区二区三区在线观看| 亚洲国产中文字幕在线观看| 91久久亚洲| 日韩视频在线观看一区二区| 一本色道久久综合亚洲精品婷婷| 在线亚洲成人| 午夜久久99| 久久精品91| 亚洲精品乱码视频| 在线亚洲自拍| 性色av一区二区三区在线观看 | 欧美制服丝袜第一页| 久久精品欧美日韩| 麻豆av一区二区三区| 欧美国产日本高清在线| 欧美日韩一区视频| 国产精品久久看| 国产视频一区在线| 亚洲高清在线播放| 99re66热这里只有精品3直播| 夜夜精品视频| 欧美一区二区视频网站| 亚洲国产精品ⅴa在线观看| 日韩一级大片| 小处雏高清一区二区三区| 玖玖视频精品| 欧美日韩中文字幕精品| 国产女主播一区二区三区| 极品少妇一区二区| 99精品福利视频| 小处雏高清一区二区三区| 久久精品国产亚洲5555| 99精品99| 久久超碰97人人做人人爱| 女女同性女同一区二区三区91| 欧美激情一区二区三区在线| 国产精品久久久一本精品| 国语自产精品视频在线看| 亚洲精品字幕| 香蕉成人久久| 99精品国产99久久久久久福利| 欧美自拍偷拍| 欧美精品在线免费观看| 国产三级精品三级| 亚洲娇小video精品| 亚洲影院色在线观看免费| 亚洲精品你懂的| 久久精品国产精品亚洲综合| 欧美日韩国产色站一区二区三区| 国产精品专区第二| 亚洲伦伦在线| 亚洲第一免费播放区| 亚洲一区二区在线免费观看视频| 另类天堂av| 国产精品综合久久久| 亚洲精品在线电影| 亚洲第一视频| 性做久久久久久久免费看| 欧美精品色综合| 激情欧美国产欧美| 亚洲午夜小视频| 亚洲精品视频在线观看网站| 久久不见久久见免费视频1| 欧美日韩一区二区三| 在线日韩av| 欧美在线国产| 亚洲欧美在线播放| 欧美日韩18| 亚洲国产成人porn| 久久国产精品久久久久久| 亚洲在线一区二区| 欧美精品一区二区三区一线天视频| 国产亚洲一区二区三区| 中文精品视频一区二区在线观看| 亚洲日本理论电影| 久久久亚洲精品一区二区三区| 国产精品久久久久久久免费软件| 亚洲免费观看| 日韩午夜免费视频| 欧美电影免费观看| 在线成人免费观看| 久久成人一区二区| 久久精品夜色噜噜亚洲a∨| 国产精品亚洲综合久久| 一区二区三区你懂的| 一区二区欧美国产| 欧美区国产区| 亚洲精品国精品久久99热| 亚洲国产你懂的| 麻豆91精品91久久久的内涵| 国产一区二区三区四区五区美女| 亚洲一区久久| 亚洲综合二区| 国产精品久久久久久久久免费 | 久久精品国产精品| 国产欧美在线看| 午夜精品一区二区三区在线播放 | 国产精品久久久久久影视| 在线一区二区三区做爰视频网站| 日韩视频免费观看| 欧美激情在线狂野欧美精品| 亚洲国产1区| 亚洲精品乱码| 欧美激情自拍| 亚洲美女在线视频| 亚洲天堂免费在线观看视频| 欧美日韩精品一区二区三区| 亚洲精品一区二区三区婷婷月 | 国产在线乱码一区二区三区| 欧美一区二区大片| 久久中文字幕导航| 亚洲第一精品影视| 99国产精品久久久| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 久久精品国产一区二区三区| 国产一区二区三区久久悠悠色av| 欧美在线免费观看视频| 老司机精品久久| 亚洲欧洲一区二区天堂久久| 亚洲视频网站在线观看| 国产精品成av人在线视午夜片| 亚洲性感美女99在线| 久久精品人人做人人综合 | 久久精品色图| 亚洲国产精品成人精品| 一区二区三区国产在线观看| 国产精品美女久久久久久免费| 性欧美video另类hd性玩具| 老司机成人网| 亚洲作爱视频| 久久精品在线视频| 亚洲激情电影中文字幕| 亚洲在线一区二区三区| 国产一区二区0| 日韩一区二区高清| 国产精品最新自拍| 亚洲国产欧美一区| 国产精品videosex极品| 欧美专区日韩视频| 欧美日韩一区二区在线播放| 香蕉久久a毛片| 欧美黄色一区| 亚洲欧美日韩系列| 欧美黑人一区二区三区| 亚洲小说欧美另类婷婷| 久久亚洲春色中文字幕| 一本色道久久综合狠狠躁篇怎么玩 | 尤物九九久久国产精品的特点| 夜久久久久久| 国产视频综合在线| 中文高清一区| 一区二区在线视频| 亚洲女人天堂成人av在线| 伊人蜜桃色噜噜激情综合| 亚洲伊人久久综合| 影音先锋日韩资源| 午夜亚洲福利| 亚洲精品美女91| 久久久夜夜夜| 中文在线一区| 欧美国产一区二区在线观看| 先锋影音国产一区| 欧美性一二三区| 亚洲精品久久久久久久久| 国产区欧美区日韩区| 一区二区三区高清在线| 一区二区在线视频播放| 欧美一区=区| 日韩图片一区| 欧美不卡高清| 欧美亚洲一级| 欧美视频免费看| 日韩午夜中文字幕| 极品日韩久久| 欧美一区免费视频| 一本久道久久综合中文字幕| 另类专区欧美制服同性| 午夜在线电影亚洲一区| 欧美日韩免费观看中文|