文獻標識碼: A
文章編號: 0258-7998(2013)05-0015-03
微顯示器[1]是一種特殊形態(tài)的顯示器,,它自身物理尺寸很小,但卻可以通過光學系統(tǒng)產(chǎn)生大屏幕顯示效果,,主要應用于投影機和近眼顯示系統(tǒng),。近年來,隨著有機發(fā)光技術的興起,,基于OLED(有機發(fā)光二極管)的微顯示器也開始逐漸發(fā)展,。OLED微顯示器具有主動發(fā)光、固態(tài)顯示,、超輕超薄,、色彩豐富、驅動電壓低,、響應速度快,、溫度適應范圍廣,、功耗低等優(yōu)點。目前,,大多OLED微顯示器都采用IIC接口[2],,通過IIC接口控制OLED微顯示器內部寄存器,從而實現(xiàn)對顯示模式,、顯示方向,、顯示位置、亮度,、對比度,、色度、伽瑪矯正等控制功能,。
IIC是Philips公司開發(fā)的一種用于芯片間通信的串行傳輸總線,它由串行時鐘線SCL和串行數(shù)據(jù)線SDA完成全雙工數(shù)據(jù)傳送,。IIC最主要的優(yōu)點是其具備簡單性和有效性。其次,,由于接口直接在組件上,,IIC占用的空間非常小,同時其連線也少,。
本文通過利用Verilog語言,,采用模塊化設計思想[3],設計了基于FPGA的OLED微顯示器的IIC接口的IIC控制模塊,,該控制模塊包括寫數(shù)據(jù)存儲模塊,、讀數(shù)據(jù)存儲模塊、數(shù)據(jù)讀寫模塊,,從而準確而有效地完成對OLED微顯示內部寄存器的讀寫操作,。
1 IIC接口的控制方案
1.1 OLED微顯示器
本設計采用的OLED微顯示器是由云南北方奧雷德光電科技股份有限公司生產(chǎn)的SVGA050SC低功耗主動式OLED微顯示器,內部共有256個寄存器,,通過IIC接口,,可對其進行讀寫操作,從而可實現(xiàn)對OLED微顯示器顯示模式,、顯示方向,、顯示位置、亮度,、對比度,、色度、伽瑪矯正等的控制和調整,。主要寄存器如表1所示,。
1.2 OLED微顯示器IIC接口的基本原理
IIC能以雙向數(shù)據(jù)線(SDA)和時鐘線(SCL)實現(xiàn)完善的全雙工同步數(shù)據(jù)傳送[4]。工作時,,SDA和SCL必須通過外部控制器經(jīng)電阻上拉至1.8 V/3.3 V電源,。OLED顯示器只能作為從機使用,,所有讀/寫操作必須由主機來實現(xiàn)。
1.3 控制方案概述
通過對OLED微顯示器及IIC接口的分析,,基于FPGA設計了OLED微顯示器IIC接口的IIC控制模塊,,如圖1所示。該控制模塊包括寫數(shù)據(jù)存儲模塊,、讀數(shù)據(jù)存儲模塊和數(shù)據(jù)讀寫模塊,。寫數(shù)據(jù)存儲模塊用于存儲從機地址、寄存器地址以及寄存器寫入數(shù)據(jù),,讀數(shù)據(jù)存儲模塊用于存儲從機地址,、寄存器地址以及寄存器讀入數(shù)據(jù),數(shù)據(jù)讀寫模塊用于讀寫相應的數(shù)據(jù),。
FPGA采用Altera公司Cyclone II系列中的 EP2C8-Q208C8,。EP2C8Q208C8擁有8 256個邏輯單元、1.1 Mbit內部RAM,、150個18×18乘法器,、4個PLL環(huán)和85個I/O接口,最高數(shù)據(jù)率可以達到260 Mb/s,,完全滿足本系統(tǒng)要求的60 MHz系統(tǒng)時鐘需求,。與其他FPGA產(chǎn)品不同,Cyclone II FPGA性能提高了60%,,同時功耗降為原來的一半,,非常經(jīng)濟實用[5]。
2 IIC控制模塊設計
2.1 寫數(shù)據(jù)存儲模塊
寫數(shù)據(jù)存儲模塊由reg型數(shù)據(jù)存儲8 bit數(shù)據(jù),,包括從機地址加寫標志位,由memory型數(shù)據(jù)構成寄存器存儲器和寫入數(shù)據(jù)存儲器,,每一個存儲單元大小為8 bit,,用于存儲寄存器地址和寄存器寫入數(shù)據(jù),存儲單元的數(shù)量可以根據(jù)需要自行定義,。
自定義的存儲單元的數(shù)量決定了寄存器存儲器和寫入數(shù)據(jù)存儲器的大小,。寫數(shù)據(jù)存儲模塊內部有一個與數(shù)據(jù)讀寫模塊通信的計數(shù)變量,通過改變計數(shù)變量,,可將寄存器存儲器中新的地址和寫入數(shù)據(jù)存儲器中新的數(shù)據(jù)傳輸給讀寫數(shù)據(jù)模塊,。圖2為寫數(shù)據(jù)存儲模塊。
2.2 讀數(shù)據(jù)存儲模塊
讀數(shù)據(jù)存儲模塊由reg型數(shù)據(jù)存儲8 bit數(shù)據(jù),,包括從機地址加讀標志位,,由memory型數(shù)據(jù)構成寄存器存儲器和讀入數(shù)據(jù)存儲器,每一個存儲單元大小為8 bit,,用于存儲寄存器地址和寄存器讀入數(shù)據(jù),,存儲單元的數(shù)量可以根據(jù)需要自行定義,。
自定義的存儲單元的數(shù)量決定了寄存器存儲器和讀入數(shù)據(jù)存儲器的大小。讀數(shù)據(jù)存儲模塊內部有一個與數(shù)據(jù)讀寫模塊通信的計數(shù)變量,,通過改變計數(shù)變量,,可將寄存器存儲器中新的地址傳輸給讀寫數(shù)據(jù)模塊,并將從讀寫數(shù)據(jù)模塊傳回的寄存器數(shù)據(jù)存儲到讀數(shù)據(jù)存儲器中,。圖3為讀數(shù)據(jù)存儲模塊,。
本設計采用的時鐘源頻率為40 MHz,由于SCL的頻率要求在100 kHz~1 MHz范圍內,,本設計將時鐘源進行100分頻,,因此SCL的頻率設定為400 kHz??紤]到IIC起始,、讀寫以及停止的時序要求,將SCL的時鐘周期平均分為上升沿,、高電平,、下降沿和低電平4個狀態(tài)。在上升沿狀態(tài)或下降沿狀態(tài)時,,設定SCL=1或SCL=0,,而在高電平狀態(tài)或低電平狀態(tài)時,SDA才允許進行數(shù)據(jù)變化,,這樣就能保證SDA進行數(shù)據(jù)變化時SCL已經(jīng)處于高電平或者低電平狀態(tài),,從而能夠避免SDA與SCL同時經(jīng)歷上升沿或下降沿而帶來的時序功能不確定性的問題。
為了實現(xiàn)對OLED微顯示器內部寄存器的讀寫操作,,本設計采用兩個狀態(tài)機:一個寫狀態(tài)機,,一個讀狀態(tài)機。讀/寫狀態(tài)機由外部按鍵進行切換,。
寫狀態(tài)機由空閑狀態(tài),、起始狀態(tài)、從機地址傳輸寫狀態(tài),、響應1狀態(tài),、寄存器地址傳輸狀態(tài)、響應2狀態(tài),、數(shù)據(jù)傳輸狀態(tài),、響應3狀態(tài)、中間停止返回狀態(tài)以及最終停止狀態(tài)構成,。在從機地址傳輸寫狀態(tài),、寄存器地址傳輸狀態(tài)及數(shù)據(jù)傳輸狀態(tài)中,當SCL處于低電平狀態(tài)時,,SDA隨著計數(shù)器在0~7范圍的逐次增加而改變,,直到傳輸完8 bit數(shù)據(jù),。在響應狀態(tài)中,由于SDA的三態(tài)設置,,此時將SDA置于高阻狀態(tài),,從而響應從機的應答。同時,,寫狀態(tài)機設置有計數(shù)變量,,計數(shù)變量隨著寫狀態(tài)機循環(huán)次數(shù)的增加而增加。狀態(tài)之間的切換如圖5所示,。在計數(shù)變量小于等于設定寫入次數(shù)時,,數(shù)據(jù)讀寫模塊向OLED微顯示器的內部寄存器寫入數(shù)據(jù)。
讀狀態(tài)機由空閑狀態(tài),、起始狀態(tài),、從機地址傳輸寫狀態(tài)、響應1狀態(tài),、寄存器地址傳輸狀態(tài),、響應2狀態(tài)、重新起始狀態(tài),、從機地址傳輸讀狀態(tài),、響應3狀態(tài)、數(shù)據(jù)傳輸狀態(tài),、響應4狀態(tài),、中間停止返回狀態(tài)以及最終停止狀態(tài)構成。其中讀狀態(tài)機中從機地址傳輸寫狀態(tài),、寄存器地址傳輸狀態(tài),、從機地址傳輸讀狀態(tài)以及響應狀態(tài)與寫狀態(tài)機中的相應狀態(tài)類似。不同的是,,在數(shù)據(jù)傳輸狀態(tài)中,,在SCL處于高電平狀態(tài)時,通過將SDA置于高阻狀態(tài),,把OLED微顯示器寄存器的數(shù)據(jù)逐位傳輸給8 bit的寄存器,然后傳遞給讀數(shù)據(jù)存儲模塊,。讀狀態(tài)機的狀態(tài)切換如圖6所示,。同樣,在讀狀態(tài)機中也設有計數(shù)變量,,當計數(shù)變量小于等于設定讀入次數(shù)時,,OLED微顯示器寄存器的數(shù)據(jù)通過讀寫數(shù)據(jù)模塊傳輸給讀數(shù)據(jù)存儲模塊。
2.4 IIC控制模塊
通過對寫數(shù)據(jù)模塊,、讀數(shù)據(jù)模塊以及數(shù)據(jù)讀寫模塊的設計,,完成了IIC控制模塊的設計,。IIC控制模塊的原理圖如圖7所示。
3 IIC控制模塊仿真及測試
軟件仿真在EDA軟件環(huán)境中進行,,通過模擬硬件產(chǎn)生測試信號,,對編寫的代碼進行測試。通過觀看時序波形或者數(shù)據(jù)報告文件來判斷綜合后的軟件邏輯是否正確,,主要用于在各個分散的模塊之間的波形仿真,。在系統(tǒng)的設計過程中,采用Quartus 8.1軟件作為前端的軟件仿真,;功能測試中將整個系統(tǒng)組合起來采用軟件仿真并下載到FPGA進行測試,;綜合驗證則是通過EDA綜合工具將HDL代碼結合庫文件綜合成門級描述,然后將綜合結果在軟件中做最后的驗證[6],。IIC控制模塊的寫仿真波形如圖8所示,。
通過IIC控制模塊對OLED微顯示寄存器進行讀寫操作,實現(xiàn)了OLED微顯示器內置圖像的顯示,。圖9為OLED微顯示內置圖像,。
FPGA EP2C8Q208C8作為核心控制器件,在分析SVGA050SC OLED微顯示器和IIC接口的基礎上,,利用Verilog語言,,采用模塊化設計思想,設計了基于FPGA的OLED微顯示器的IIC接口的IIC控制模塊,。該控制模塊對于OLED微顯示器寄存器的控制提供了較好的解決方案,,降低了控制的復雜度,并且系統(tǒng)穩(wěn)定,,執(zhí)行效率較高,。
參考文獻
[1] 應根裕,胡文波,,邱勇,,等.平板顯示技術[M].北京:人民郵電出版社,2002.
[2] 金陽.數(shù)字視頻和OLED微顯示技術[J].科技創(chuàng)新導報,,2011,,27(1):11-12.
[3] 呂國亮,趙曙光,,趙俊.嵌入式邏輯分析技術及其在FPGA系統(tǒng)開發(fā)中的應用[J].液晶與顯示,,2007,22(2):227-231.
[4] 張家會,,熊先越,,曹麗珍.基于FPGA的I2C總線設計[J].光通信技術,2011,9(1):40-41.
[5] 王鳴浩,,吳小霞.基于FPGA的通用液晶顯示控制器的設計和實現(xiàn)[J].液晶與顯示,,2012,27(1):87-92.
[6] 冉峰,,何林奇,,季淵.無線OLED微顯示器系統(tǒng)的設計與實現(xiàn)[J].液晶與顯示,2012,,27(5):633-637.