新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 采用NioslI的SOPC系統的LCD顯示驅動IP核方案設計

        采用NioslI的SOPC系統的LCD顯示驅動IP核方案設計

        作者: 時間:2012-06-08 來源:網絡 收藏

         3.1 任務邏輯

        本文引用地址:http://www.104case.com/article/148926.htm

          任務邏輯是整個的核心部分。要實現對控制,就要按照CBG128064控制器的規范及時序要求進行設計。在時序邏輯電路中,數據信號和控制信號的配合比較復雜,但又十分重要,使用有限狀態機可以較為容易地設計出復雜的數字電路

          本文有限狀態機實現的核心邏輯。根據驅動控制器的讀寫命令及讀寫時序要求,本文設計了3個狀態機,分別為讀寫控制狀態機、讀寫狀態機和讀寫時序狀態機。

          如圖2所示,讀寫控制狀態機用于當發生讀寫請求時進行忙狀態檢測及讀寫操作控制,并在每個狀態給出時序狀態機讀寫信號。

          

          如圖3所示,讀寫狀態機給出讀或者寫信號,并在讀寫控制狀態機的控制下,完成寫命令、寫數據和讀數據之間的狀態轉移。在每一個狀態下給出數據及控制信號,如片選、所寫數據/指令等。

          

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

          

        讀寫時序狀態機

         3.2 寄存器組

          寄存器組由一系列寄存器組成,為軟件提供了訪問硬件的通道。寄存器組中的寄存器是根據任務邏輯中需要實現的特定邏輯功能來設定的,任務邏輯中的數據通過這些寄存器傳輸。本設計中,寄存器組設定了8位頁地址寄存器、8位列地址寄存器,以及32位數據寄存器等。

          3.3 Ayalon總線接口

          顯示驅動的Avalon總線接口需要一個簡單的Slave端口。該端口使用較少的Avalon信號來處理簡單的寄存器讀/寫傳輸。該模塊是與Avalon總線接口的一個頂層模塊,主要功能是對任務邏輯模塊和寄存器模塊進行例化和封裝,使其信號類型符合Avalon總線信號規范和外接模塊的信號規范。頂層接口定義如下:

          

        程序

          3.4 顯示驅動封裝及軟件設計

          直接在 Builder中添加設計好的顯示驅動 Core和Verilog HDL語言描述的文件,并根據Avalon總線傳輸規范設置好相關的信號線及傳輸參數。由于是在NiosII IDE環境下直接編寫用戶程序,可以不用編寫驅動程序。完成后,將顯示驅動 Core添加至工程,并編譯、下載到FPGA器件中。

          在NiosII IDE環境下,使用自己添加的模塊編寫程序,可直接調用甬數IOWR(BASE,OFFSET,DATA)和IORD(BASE,OFFSET)對內部寄存器進行讀寫。本文使用結構體定義了一個指向模塊的結構體指針,對寄存器進行讀寫操作。

          

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

          結語

          本文有限狀態機設計了CBGl28064液晶模塊驅動硬件邏輯,并將顯示驅動核進行封裝構成了一個模塊化的獨立元件,使其能夠在其他的工程中復用;在此基礎上,基于NiosII嵌入式處理器構建了一個用戶定制的片上。經過在Cyclone系列FPGA上測試,該驅動能夠在C-BGl28064液晶模塊上顯示字符、圖形。整個體現了嵌入式系統的靈活性和擴展性。

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兰溪市| 大冶市| 双桥区| 陆川县| 凤山县| 清原| 巴马| 乌鲁木齐县| 康平县| 长岛县| 合阳县| 改则县| 竹北市| 盐津县| 凤凰县| 启东市| 扎鲁特旗| 泊头市| 桐梓县| 平度市| 景泰县| 大足县| 商洛市| 大悟县| 陇南市| 湖口县| 民乐县| 万全县| 诏安县| 鹿邑县| 玉屏| 肃宁县| 嘉定区| 商河县| 赤壁市| 江安县| 汉川市| 绍兴市| 东乡| 从江县| 德庆县|