亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Zynq的OLED驅(qū)動設計

        2014-03-21 10:00:18邢艷芳張延冬
        液晶與顯示 2014年2期
        關鍵詞:外設驅(qū)動程序寄存器

        邢艷芳,張延冬

        (1.中國傳媒大學南廣學院 傳媒技術學院,江蘇 南京211172;2.南京南瑞繼保電氣有限公司,江蘇 南京,211102)

        1 引 言

        隨著近幾年嵌入式技術的飛速發(fā)展和廣泛應用,人機交互成為嵌入式設備的迫切需要。為適應Xilinx最新平臺Zynq的人機交互需要,提出一種基于Zynq的OLED 驅(qū)動設計方法。

        有 機 發(fā) 光 二 極 管(Organic Light-Emitting Diode,OLED)由于同時具備自發(fā)光、不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優(yōu)異特性,被認為是下一代的平面顯示器新興應用技術[1-3]。

        Xilinx最新平臺Zynq將處理器的軟件可編程能力與FPGA 的硬件可編程能力實現(xiàn)完美結合,以低功耗和低成本等系統(tǒng)優(yōu)勢實現(xiàn)良好的系統(tǒng)性能、靈活性和可擴展性。

        文章詳細闡述了基于Zynq的OLED 驅(qū)動設計步驟和方法[6],并且在基于Zynq 的開發(fā)板ZedBoard上實現(xiàn)了實時顯示字母、數(shù)字和點陣圖像,為Zynq在儀器儀表領域?qū)崿F(xiàn)人機交互提供了技術支撐。

        2 OLED 驅(qū)動設計流程

        Zynq是一個ARM PS+PL 結構,其中PL部分就是傳統(tǒng)意義的FPGA,可以方便地定制相關外設IP,也可以進行相關的算法設計,和使用普通FPGA 完全一樣。如果不使用PL,Zynq的PS部分和普通的ARM 開發(fā)一樣。Zynq最大的特點是可以利用PL 部分靈活地定制外設,掛在PS上,而普通的ARM,外設是固定的。因此,Zynq的硬件外設是不固定的,這也是Zynq靈活性的一個表現(xiàn)。OLED 在Zynq 上是連接在PL上,因此需要把OLED 對應引腳掛在PS的硬件上,然后設計OLED IP核[7],再通過SDK 設計驅(qū)動程序,OLED 驅(qū)動設計流程如圖1所示。

        圖1 OLED 驅(qū)動設計流程Fig.1 Design flow of OLED driver

        ZedBozrd控制OLED 的主要方法是:自行設計一個IP 核,對OLED 的6 個控制信號和電源信號進行邏輯設計和引腳約束,通過AXI總線,把OLED 的IP核和PS聯(lián)系起來。在PS部分編寫相應的驅(qū)動程序,即可實現(xiàn)對OLED 的控制,如圖2所示。

        圖2 OLED 系統(tǒng)設計圖Fig.2 Design diagram of OLED system

        因此,要實現(xiàn)OLED 顯示功能,主要做以下幾個方面工作:設計Zynq硬件系統(tǒng)(PS部分)、設計自己的IP核和PS部分驅(qū)動程序設計。

        3 建立Zynq 硬件系統(tǒng)和OLED IP核

        Zynq的開發(fā)板ZedBoard上使用Inteltronic/Wisechip 公 司 的 OLED 顯 示 模 組 UG-2832HSWEG04,分辨率為128×32,是一款單色被動式顯示屏,驅(qū)動電路采用所羅門科技的SSD1306芯片[8]。具體電路如圖3所示。根據(jù)原理圖可知,ZedBoard 開發(fā)板使用的OLED 采用SPI方式控制,SPI模式使用的信號線和電源線有如下幾條:

        我的老家在沂蒙山腹地,周圍都是連綿的高山。村里修了平整的水泥路,與這里的環(huán)境相得益彰。等車子駛進了村子,一股暖洋洋的春風吹過,那久違的熟悉的泥土味道、莊稼的味道、村莊的味道、炊煙的味道直撲鼻翼,如我幼時一樣,讓我聞到了故鄉(xiāng)的味道。我和父親先下了車,我們要抄一條小道走回家,母親只好自己先開車回去。

        RST(RES):硬復位OLED;

        DC:命令/數(shù)據(jù)標志(0,讀寫命令;1,讀寫數(shù)據(jù));

        SCLK:串行時鐘線;

        SDIN:串行數(shù)據(jù)線;

        VDD:邏輯電路電源;

        VBAT:DC/DC轉(zhuǎn)換電路電源。

        在SPI模式下,每個數(shù)據(jù)長度均為8 位,在SCLK 的上升沿,數(shù)據(jù)從SDIN 移入到SSD1306,并且是高位在前的。

        圖3 OLED 原理圖Fig.3 OLED scheme diagram

        Zynq的硬件系統(tǒng)是指在PL 中配置相關外設,掛載到PS 中,作為PS 部分的外設使用。OLED 驅(qū)動主要用到6個IO 口,在生成硬件系統(tǒng)時,只需要利用Xilinx的嵌入式工具XPS生成最小硬件系統(tǒng),然后把OLED 的相關引腳添加到最小硬件系統(tǒng)中。主要過程如下:

        (1)根據(jù)芯片型號,根據(jù)XPS工具設計流程,生成Zynq的最小硬件系統(tǒng)。

        (2)在最小硬件系統(tǒng)中,添加外設IP my_oled,把OLED 的SPI引腳添加到工程中。添加一個6位寄存器,每位和SPI引腳對應。

        (3)my_oled IP核邏輯設計主要完成IP核引腳添加、端口映射和用戶邏輯功能。首先要對設計的IP 核添加引腳,在系統(tǒng)生成的MPD 文件中,添加OLED 的相關引腳端口和方向信息。

        在MPD 文件中,在PORT 下 添 加OLED 的相關引腳和方向信息,具體代碼如下:

        PORT DC="",DIR=O

        PORT RES="",DIR=O

        PORT SCLK="",DIR=O

        PORT SDIN="",DIR=O

        PORT VBAT="",DIR=O

        PORT VDD="",DIR=O

        (4)在系統(tǒng)生成的my_oled.vhd文件中,用VHDL語言進行端口設計,主要進行以下兩個設計。

        聲明IP和用戶6個信號和電源的端口。代碼如下:

        將用戶端口和IP 核端口進行映射,代碼如下:

        (5)在 系 統(tǒng) 生 成 的user_logic.v 文 件 中,用Verilog語言進行邏輯設計,實現(xiàn)寄存器和SPI對應端口連接并實時讀取,主要代碼如下。其中slv_reg0為IP核寄存器,tmp為用戶定義臨時寄存器,tmp的每一位和IP 端口一一對應。實現(xiàn)把slv_reg0寄存器低6位實時傳給tmp寄存器,通過對寄存器slv_reg0的寫操作達到控制6個引腳的時序。

        4 OLED 驅(qū)動程序設計

        由于ZedBoard開發(fā)板上的OLED 使用的是SPI協(xié)議,并且只支持寫,不支持讀,因此控制OLED 就 是 在SCLK 的 時 鐘 下,通 過SDIN 進 行命令和數(shù)據(jù)的傳輸。OLED 的控制需要經(jīng)過初始化、傳數(shù)據(jù)和命令以及對顯存設置等操作實現(xiàn)[9-10]。

        4.1 初始化

        驅(qū)動IC的初始化代碼,可以參考廠家推薦的設置,但需要根據(jù)開發(fā)板上OLED 實際參數(shù)進行一些修改。

        根據(jù)SSD1306數(shù)據(jù)手冊的初始化說明,具體步驟如圖4所示。初始化的實現(xiàn)就是對SSD1306進行寫命令。

        按照圖4參數(shù),逐步把命令寫入SSD1306即可實現(xiàn)對SSD1306的初始化。

        圖4 SSD1306初始化步驟Fig.4 SSD1306initialization step

        4.2 寫數(shù)據(jù)和命令的實現(xiàn)

        在SCLK 時鐘下,根據(jù)要寫入的數(shù)據(jù)或者命令,設置SDIN 引腳的電平,一位一位地把數(shù)據(jù)寫入SSD1306。SSD1306 每次傳送的命令和數(shù)據(jù)均為一個字節(jié),傳送數(shù)據(jù)和命令的區(qū)別是通過Set_OLED_DC 宏,設置該函數(shù)為寫數(shù)據(jù),通過Clr_OLED_DC 宏,設置該函數(shù)為寫命令。實現(xiàn)一個字節(jié)的數(shù)據(jù)傳輸代碼如下:

        4.3 顯存數(shù)據(jù)寫入SSD1306存儲器

        我們采用的辦法是在PS 的內(nèi)部建立一個OLED的GRAM(共128個字節(jié)),在每次修改的時候,只是修改PS 上的GRAM(實際上就是SRAM),在修改完之后,一次性把PS上的GRAM寫入到OLED的GRAM。具體代碼如下:

        void OLED_Refresh_Gram(void)

        4.4 顯示結果

        系統(tǒng)實現(xiàn)了OLED 的字母、數(shù)字和點陣圖形實時顯示,如圖5所示。

        圖5 OLED 運行結果Fig.5 OLED’s operation result

        5 結 論

        系統(tǒng)采用可軟硬件協(xié)同設計的Zynq器件,定制硬件IP核,采用傳統(tǒng)ARM 程序設計方法設計OLED 驅(qū)動程序和測試程序,實現(xiàn)了實時顯示。解決了基于Zynq器件在廣電儀器和電力儀表儀器中人機交互的工程技術,具有集成度高、可移植性強和通用性好等優(yōu)點。

        [1] 李想,鄭喜鳳,陳宇.基于Linux下的OLED 顯示模塊設計[J].液晶與顯示,2012,27(1):103-107.Li X,Zheng X F,Chen Y.Design of OLED display module based on S3C2440[J].Chinese Journal of Liquid Crystals and Displays,2012,27(1):103-107.(in Chinese)

        [2] 劉健,謝文法.OLED 器件光電性能集成測試系統(tǒng)研制[J].液晶與顯示,2013,28(1):132-137.Liu J,Xie W F.Integrated optoelectronic performance test system for OLEDs[J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):132-137.(in Chinese)

        [3] 冉峰,何林奇,季淵.無線OLED 微顯示器系統(tǒng)的設計與實現(xiàn)[J].液晶與顯示,2012,27(5):633-637.Ran F,He L Q,Ji Y.Design and implementation of wireless OLED microdisplay system [J].Chinese Journal of Liquid Crystals and Displays,2012,27(5):633-637.(in Chinese)

        [4] 何劍鋒,李祥,何月順,等.基于S3C2410的嵌入式LINUX 下OLED 模塊驅(qū)動設計[J].液晶與顯示,2010,25(1):90-93.He J F,Li X,He Y S,et al.Driving design of OLED module based on S3C2410in embedded Linux[J].Chinese Journal of Liquid Crystals and Displays,2010,25(1):90-93.(in Chinese)

        [5] 劉麗,劉衛(wèi)東,洪勝峰.基于FPGA 的AMOLED 驅(qū)動控制系統(tǒng)設計[J].現(xiàn)代顯示,2012(12):31-34.Liu L,Liu W D,Hong S F.Design of AMOLED driving control system based on FPGA[J].Advanced Display,2012(12):31-34.(in Chinese)

        [6] 李國強,章堅武,占志偉.AMOLED 驅(qū)動電路和LINUX 下驅(qū)動程序設計[J].液晶與顯示,2011,26(4):527-531.Li G Q,Zhang J W,Zhan Z W.Design of AMOLED drive circuit and Linux driver[J].Chinese Journal of Liquid Crystals and Displays,2011,26(4):527-531.(in Chinese)

        [7] 何賓.Xilinx All Programmable Zynq-7000 SoC 設計指南[M].北京:清華大學出版社,2013:384-391.He B.Xilinx All Programmable Zynq-7000 SoC Design Guide [M].Beijing:Tsinghua University Press,2013:384-391.(in Chinese)

        [8] 陸佳華,江舟,馬岷.嵌入式系統(tǒng)軟硬件協(xié)同設計實戰(zhàn)指南:基于Xilinx Zynq[M].北京:機械工業(yè)出版社,2013:17-18.Lu J H,Jiang Z,Ma M.The Collaborative Design Practical Guide of Hardware and Software in an Embedded System Developed by Xilinx Zynq[M].Beijing:China Machine Press,2013:17-18.(in Chinese)

        [9] 盧貴主.OLED 面板的彩色顯示驅(qū)動技術研究[J].半導體光電,2011(2):175-178.Lu G Z.Research on OLED color display driver technology[J].Semiconductor Optoelectronics,2011(2):175-178.(in Chinese)

        [10] 王星全,蘭明蛟,鄭振華.基于Windows CE的OLED 驅(qū)動程序設計與實現(xiàn)[J].微型機與應用,2011(20):17-20.Wang X Q,Lan M J,Zheng Z H.Design and implementation of OLED drivers based on Windows CE[J].Microcomputer &Its Applications,2011(20):17-20.(in Chinese)

        猜你喜歡
        外設驅(qū)動程序寄存器
        Lite寄存器模型的設計與實現(xiàn)
        計算機應用(2020年5期)2020-06-07 07:06:44
        分簇結構向量寄存器分配策略研究*
        Microchip推出具備雙ADC外設的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應用
        一種可重構線性反饋移位寄存器設計
        通信技術(2010年8期)2010-08-06 09:29:16
        貼身呵護 必不可少的PSP外設
        外設天地行情
        外設天地行情
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        激情在线视频一区二区三区| 韩国v欧美v亚洲v日本v| 中文字幕亚洲综合久久菠萝蜜| 手机av男人天堂免费网址| 五月婷婷六月丁香久久综合| 三a级做爰片免费观看| 国产亚洲精品久久久久久久久动漫| 国产欧美激情一区二区三区| 亚洲综合久久中文字幕专区一区| 97一期涩涩97片久久久久久久| 中文字幕亚洲欧美日韩2019| 中文字幕人成人乱码亚洲| 视频一区二区三区国产| 99精品视频69v精品视频| 久久久久久免费毛片精品| 91精品综合久久久久m3u8| 久久精品国产在热亚洲不卡| 亚洲日本中文字幕乱码| 久久精品国产免费观看三人同眠 | 中文字幕在线日亚洲9| 亚洲爆乳无码专区| 亚洲va精品va国产va| 白浆国产精品一区二区| 亚洲人成影院在线观看| 久久久久亚洲av成人网址| 蜜桃码一区二区三区在线观看| 亚洲午夜av久久久精品影院色戒| 欧洲熟妇色xxxx欧美老妇多毛网站| 大伊香蕉精品视频一区| 成人av综合资源在线| 国产人妻精品无码av在线| 国产爆乳乱码女大生Av| 国产精品黄色在线观看| 护士的小嫩嫩好紧好爽| 精品久久久久久久无码| 亚洲av网站首页在线观看| 狠狠综合久久av一区二区蜜桃| 久久久久久伊人高潮影院| а的天堂网最新版在线| 国产国拍精品亚洲av在线观看| 精品少妇人妻av无码专区|