基于C8051F020和USB的OLED控制系統設計
1 引言
與傳統的液晶顯示屏相比,OLED顯示模塊具有高亮度、高對比度、寬視角、響應速度快、功耗低等特點(diǎn)。因此,隨著(zhù)電子產(chǎn)品高度集成化的發(fā)展,OLED顯示模塊在移動(dòng)終端、工業(yè)控制、便攜式電子產(chǎn)品等領(lǐng)域應用十分廣泛。本文介紹了一種將USB技術(shù)應用于OLED顯示控制系統中的設計,該系統以C8051F020為核心控制器件。由于USB具有安裝方便、高速、靈活、低成本、易擴展、支持熱插拔等優(yōu)點(diǎn),使得本系統可以輕松地實(shí)現在線(xiàn)數據更新,并通過(guò)外擴的Flash實(shí)現系統的脫機顯示。
2 系統簡(jiǎn)介
系統的工作和組成原理如圖1所示。
如圖1所示,整個(gè)系統由單片機、OLED顯示模塊、USB模塊、外擴數據存儲器模塊組成。核心控制芯片是Silicon公司的C8051F020,這是一款功能強大的單片機;用來(lái)在線(xiàn)更新顯示數據的USB模塊,它以CH375V作為接口控制芯片,支持USB主機和USB設備兩種方式;AMD公司的閃存AM29LV081B作為單片機外部擴展數據存儲器。96×64像素的全彩色OLED顯示屏,它的驅動(dòng)IC采用Solomon公司的SSD1332。
硬件設計
3.1 主要芯片介紹
(1)核心控制芯片C8051F020 單片機C8051F020是完全集成的混合信號系統級SCM芯片,具有64個(gè)數字I/O引腳,具有片內VDD監視器、看門(mén)狗定時(shí)器和時(shí)鐘振蕩器,是真正能獨立工作的片上系統,所有模擬和數字外設均可由用戶(hù)固件配置為使能/禁止和配置。Flash存儲器還具有在系統重新編程能力,可用于非易失性數據存儲,并允許現場(chǎng)更新8051固件。
(2)USB接口芯片CH375
CH375是一個(gè)USB總線(xiàn)的通用接口芯片,支持USB-HOST主機和USB-DEVICE/SLAVE設備兩種方式。在本地端,CH375具有8位數據總線(xiàn)和讀、寫(xiě)、片選控制線(xiàn)以及中斷輸出,可以方便地掛接到單片機等控制器的系統總線(xiàn)上。在USB主機方式下,CH375還提供了串行通訊方式,通過(guò)串行輸入、串行輸出和中斷輸出與單片機等相連接。
CH375的USB主機方式支持常用的USB全速設備,外部單片機可以通過(guò)CH375按照相應的USB協(xié)議與USB設備通訊。CH375還內置了處理Mass-Storage海量存儲設備的專(zhuān)用通訊協(xié)議的固件,外部單片機可以直接以扇區為基本單位讀寫(xiě)常用的USB存儲設備。
3.2 USB模塊硬件電路設計
本文在C8051F020的使用中需要配置交叉開(kāi)關(guān),為了方便控制OLED的顯示和系統的控制操作,除了CH375必需的一個(gè)中斷外,還配置了兩個(gè)定時(shí)器中斷T1和T2以及一個(gè)外部中斷。將USB連接產(chǎn)生的中斷設置分配到INT0#,再多一個(gè)外部中斷INT1#。還考慮到CH375支持串行通信,所以將其和單片機的串口通信也設計在內,使用TX0和RX0。但是在串行方式下工作,數據傳輸速度慢,所以本文的研究采取并行接口。根據單片機優(yōu)先權交叉開(kāi)關(guān)譯碼表,按照優(yōu)先級別,TX0使用P0.0,RX0使用P0.1,INT0#使用P0.2,T1使用P0.3,INT1#使用P0.4,由于P0.5~0.7由外部數據存儲器接口驅動(dòng),所以T2使用P1.0。圖2為USB模塊的連接電路圖。
CH375芯片的RD#和WR#分別連接到單片機的讀選通輸出引腳RD#(P0.6)和寫(xiě)選通輸出引腳WR#(P0.7)。CS#由地址譯碼電路驅動(dòng),用于當單片機具有多個(gè)外圍器件時(shí)進(jìn)行設備選擇。INT#輸出的中斷請求是低電平有效,連接到單片機的中斷輸入引腳P0.2,單片機使用中斷方式獲知中斷請求。當WR#為高電平并且CS#和RD#及A0都為低電平時(shí),CH375中的數據通過(guò)D7~D0輸出;當RD#為高電平并且CS#和WR#及A0都為低電平時(shí),D7~D0上的數據被寫(xiě)入CH375芯片中;當RD#為高電平并且CS#和WR#都為低電平而A0為高電平時(shí),D7~D0上的數據被作為命令碼寫(xiě)入CH375芯片中。
3.3 外部數據存儲模塊
對于全彩的 96×64像素的 OLED屏,每個(gè)像素由兩個(gè)字節組成,顯示一幅圖片需要的內存空間為 96×64×2=12.288KB,而本文采用的單片機內部只有 64KB的 Flash存儲器,最多只能顯示 5幅圖片,如果要顯示圖像是不可能的,所以必須在外部擴展數據存儲器,使之能夠顯示動(dòng)態(tài)圖像。圖 3為外擴的 Flash與單片機的連接框圖。
本文的外部存儲器接口工作在復用方式,通過(guò)配置 PRTSEL(EMIOCF.5)的狀態(tài)決定 EMIF工作在低端口或是高端口錯誤!未找到引用源。。本文對外部存儲器Flash的讀寫(xiě)采用高端口(P4~P7)。地址總線(xiàn)A19~16使用P4.4~P4.1腳,地址總線(xiàn)A15~8使用 P6口,地址總線(xiàn)低 8位A7~0與數據總線(xiàn)復用 P7口,ALE使用P4.5,RD#使用P4.6,WR#使用 P4.7。
在復用方式下工作時(shí),要用一個(gè)外部鎖存器保持 RAM地址的低 8位。本文的外部鎖存器選74LS373。它由ALE(地址鎖存使能)信號控制,ALE信號由單片機外部存儲器接口邏輯驅動(dòng)。在復用方式工作時(shí),可以根據 ALE信號的狀態(tài)分兩個(gè)階段,在第一個(gè)階段,ALE為高電平,鎖存器選通,鎖存器的 Q輸出與 D輸入狀態(tài)相同,P7輸出為地址總線(xiàn)的低 8位。ALE由高變低標志第二階段開(kāi)始,鎖存器的輸出保持不變,即與鎖存器的輸入無(wú)關(guān)。在第二階段稍后,當RD#(P4.6)或 WR#(P4.7)有效時(shí),數據總線(xiàn)控制 P7端口的狀態(tài)。
3.4 OLED顯示模塊
此模塊的驅動(dòng)電路核心部分應用 Solomon公司的SSD1332芯片,在驅動(dòng)電路獲得控制信號和顯示數據后,由芯片 SSD1332產(chǎn)生 OLED所需的行驅動(dòng)和列驅動(dòng)的信號,驅動(dòng)OLED,并把顯示數據傳送到 OLED顯示。
4 讀取顯示數據程序設計
本文研究的該部分的程序主要是顯示數據的采集,它是通過(guò)中斷響應方式進(jìn)行的。CH375的中斷信號INT#連接單片機的INT0,設置成外部中斷,配置為下降沿觸發(fā)輸入,由IT0(TCON.0)和IT1(TCON.2)的設置決定,IE0(TCON.1)為外部中斷INT0的中斷標志,產(chǎn)生中斷后即CPU在轉向ISR時(shí)自動(dòng)清除響應的中斷標志。該中斷的初始化程序如下: void INT_Init(void) {
EA = 1; //中斷總允許
EX0 = 1; //INT0中斷允許
IT0 = 1; //INT0設置為下降沿觸發(fā)
PX0 = 1; //INT0(/UINT)設置為高優(yōu)先級,可中斷其他正在執行的中斷程序 }
程序中將 CH375中斷信號設為最高優(yōu)先級,一旦有 U盤(pán)插入,立即產(chǎn)生中斷,之后進(jìn)入中斷程序入口,執行中斷程序,進(jìn)行文件數據的讀取操作。軟件實(shí)現如錯誤!未找到引用源。所示,首先調用CH375DiskConnect()查詢(xún)是否真的有 U盤(pán)插入,否則的話(huà)立即返回主程序,繼續執行原來(lái)的程序,如果有 U盤(pán)插入,接著(zhù)調用CH375Init(),進(jìn)行初始化復位;然后判斷 U盤(pán)是否準備好,等待其準備好后,即可調用函數CH375FileOpen(),根據參數(一般是文件名和完整的路徑名)打開(kāi)指定的文件。文件如果不能正常打開(kāi),可能文件并不存在,立即返回主程序,結束本次讀取,也可以通過(guò)調用CH375FileEnumer()查詢(xún)文件是否存在。文件正常打開(kāi)后,調用 CH375ByteLocate()函數執行指針定位,以字節為單位移動(dòng)當前文件指針,進(jìn)入字節模式。然后調用CH375ByteRead(),以字節為基本單位從當前文件讀取數據。全部讀完后,調用CH375FileClose()關(guān)閉文件,并返回主程序,最后完成數據的讀取。
5結論
本文所設計的系統能夠實(shí)現文字、圖片和圖像的動(dòng)靜態(tài)顯示。并將USB接口設計在內,實(shí)現嵌入式USB主機,使系統可以作為USB主機與U盤(pán)通信,通過(guò)讀U盤(pán)來(lái)完成顯示數據的更新,使嵌入式系統和移動(dòng)存儲設備能夠在脫離PC機的情況下進(jìn)行數據交換。增強了電路系統的實(shí)用性,擴大了其應用范圍。
評論