顯示控制器S6B0724的接口技術(shù)
引言
s6b0724[1]是samsung公司1999年推出的一款大規(guī)模的顯示控制驅(qū)動(dòng)芯片,用于控制和驅(qū)動(dòng)點(diǎn)陣式液晶屏。這款顯示控制芯片將控制電路、ram和驅(qū)動(dòng)電路集成在單一芯片中,使其在系統(tǒng)成本方面具有優(yōu)勢(shì)。sep3203是由東南大學(xué)國(guó)家asic工程中心設(shè)計(jì)的一款基于arm7tdmi內(nèi)核的16/32位嵌入式微處理器。雖然sep3203自帶lcd控制器,但是其信號(hào)適用于不帶ram的灰度或彩色液晶屏,不支持在工控系統(tǒng)中常使用的帶ram的黑白液晶顯示屏,所以工控系統(tǒng)應(yīng)用中需要通過(guò)外接顯示控制器來(lái)實(shí)現(xiàn)液晶顯示。下面介紹s6b0724顯示控制器在以sep3203無(wú)核心的工控系統(tǒng)中的應(yīng)用。
1 系統(tǒng)介紹
1.1 設(shè)計(jì)要求
系統(tǒng)要求通過(guò)總線掛接的方式實(shí)現(xiàn)64×192黑白點(diǎn)陣的顯示。該點(diǎn)陣屏的規(guī)格較特殊,但在電話終端和小型收款機(jī)等工控系統(tǒng)中經(jīng)常使用。常見(jiàn)的幾款中小規(guī)模顯示控制器[2,3]所控制的點(diǎn)陣范圍都比其?。?5×132,132×176)。需要用2片s6b0724控制該液晶屏,同時(shí)要求只使用1個(gè)片選信號(hào)來(lái)實(shí)現(xiàn)對(duì)2片s6b0724的控制;
1.2 系統(tǒng)構(gòu)成
系統(tǒng)主要由sep3203處理器、電平轉(zhuǎn)換芯片74lvxc4245和74hct541,以及2片s6b0724顯示控制器組成。如圖1所示。
sep3203是一款16/32位嵌入式微處理器[4],由東南大學(xué)國(guó)家asic工程中心設(shè)計(jì),采用業(yè)界標(biāo)準(zhǔn)的arm7tdmi內(nèi)核,amba總線結(jié)構(gòu)。sep3203處理器內(nèi)嵌20kb零等待的靜態(tài)存儲(chǔ)器(sram),提供sdram控制器;可支持nor
flash、nand flash啟動(dòng);可擴(kuò)展支持各種sram接口的設(shè)備。提供可自由控制的gpio口,同時(shí)具有多種控制器接口。
s6b0724是一款顯示控制驅(qū)動(dòng)芯片,最大支持65×132的點(diǎn)陣顯示,同時(shí)提供主從式結(jié)構(gòu)的擴(kuò)展;內(nèi)部帶有ram,可以支持屏幕自刷新;有65個(gè)common輸出,165個(gè)segment輸出。它的mpu接口可支持8080和6800兩種時(shí)序模式。模式的選擇通過(guò)配置外部引腳來(lái)實(shí)現(xiàn)。
由于單片s6b0724只支持65×132點(diǎn)陣的顯示,而設(shè)計(jì)要求實(shí)現(xiàn)64×192點(diǎn)陣的顯示,因此在圖1中使用了2片s6b0724。另外,由于s6b0724使用5v信號(hào),vih的最小值為4v(0.8vdd),而sep3203的總線采用的是3v信號(hào)(通常的嵌入式cpu使用的都是3v總線),所以sep3203無(wú)法直接驅(qū)動(dòng)s6b0724,需要作電平轉(zhuǎn)換。因此圖1中在sep3203與s6b0724之間增加了電平轉(zhuǎn)換芯片,以實(shí)現(xiàn)3v信號(hào)與5v信號(hào)的雙向轉(zhuǎn)換。
電平轉(zhuǎn)換芯片選用的是74lvxc4245[5]和74hct541[6]。這兩款芯片都是普通的邏輯芯片,很多公司都生產(chǎn)。74lvxc4245是雙向電平轉(zhuǎn)換芯片,3v和5v電路電源供電;可以支持3v到5v的雙向電平轉(zhuǎn)換,但需要有信號(hào)電平轉(zhuǎn)換方向。74hct541是單向的緩沖芯片,采用5v電源,可以將輸入的3v信號(hào)轉(zhuǎn)換成5v信號(hào)后輸出。
2 硬件設(shè)計(jì)
2.1 總線接口的分析
s6b0724可與各種mpu相連,具體連接方式取決于mpu所使用的總線類(lèi)型。其提供兩種mpu的信號(hào)接口協(xié)議:一種是6800系列mpu接口協(xié)議,如圖2所示;另一種是8080系列mpu接口協(xié)議,如圖3所示。將兩種接口協(xié)議與sep3203的接口協(xié)議對(duì)比,可見(jiàn)sep3203的接口協(xié)議屬于8080接口協(xié)議,因此采用8080的接口實(shí)現(xiàn)s6b0724與sep3203的連接。sep3203的接口協(xié)議如圖4所示。
根據(jù)8080接口協(xié)議,s6b0724與mpu接口信號(hào)的定義如表1所列。s6b0724的d0-d7信號(hào)應(yīng)與sep3203的data0-data7信號(hào)連接;s6b0724的rd、wr、cs信號(hào)應(yīng)分別與sep3203的oe、we、cs信號(hào)連接。rs是訪問(wèn)控制寄存器與ram的選擇信號(hào)--rs為低時(shí)訪問(wèn)s6b0724的控制寄存器,rs為高時(shí)訪問(wèn)s6b0724中的ram。其作用相當(dāng)于地址信號(hào),因此與sep3203的地址線連接。rst是s6b0724的復(fù)位信號(hào),可由sep3203的gpio產(chǎn)生。
2.2 雙s6b0724控制器接口設(shè)計(jì)
由于要支持64×192的點(diǎn)陣顯示,所以在該設(shè)計(jì)中需要使用2片s6b0724(以s6b0724_a和s6b0724_b來(lái)表示)。圖1中s6b0724_a控制液晶屏的64×132個(gè)點(diǎn),s6b0724_b控制剩下的64×60個(gè)點(diǎn)。由于總線設(shè)備較多,只有1個(gè)片選信號(hào)能用于對(duì)2片s6b0724芯片的操作;同時(shí)s6b0724與sep3203的總線也需要作電平轉(zhuǎn)換,因此在該接口設(shè)計(jì)中利用了電平轉(zhuǎn)換芯片實(shí)現(xiàn)了該功能,并沒(méi)有再增加額外的邏輯芯片。
分析s6b0724與mpu的接口信號(hào),發(fā)現(xiàn)其中rd、wr、rst、cs、rs信號(hào)只需單向傳輸(從mpu傳向s6b0724),只有d0-d7信號(hào)需要雙向傳輸。圖5中,使用74hct541實(shí)現(xiàn)3v信號(hào)到5v信號(hào)的單向電平轉(zhuǎn)換,74lvxc4245實(shí)現(xiàn)3v信號(hào)與5v信號(hào)的雙向電平轉(zhuǎn)換。
圖3中cs1b、cs2、cs信號(hào)是同時(shí)變化的(cs1b信號(hào)為低,cs2信號(hào)為高時(shí)s6b0724被選中)。由于在實(shí)際使用中cs2信號(hào)是固定接高電平,所以cs1b信號(hào)就是文中s6b0724芯片的cs信號(hào)。圖4中sep3203總線的地址信號(hào)和片選信號(hào)也是同時(shí)變化的,因此考慮使用地址信號(hào)來(lái)代替片選信號(hào)。但如果直接用地址信號(hào)來(lái)代替片選信號(hào)會(huì)導(dǎo)致總線對(duì)其他設(shè)備操作時(shí)也選中s6b0724,即兩個(gè)總線設(shè)備被同時(shí)選中,從而產(chǎn)生錯(cuò)誤。在該設(shè)計(jì)中,利用電平轉(zhuǎn)換芯片的特性解決了這一問(wèn)題。如圖5所示,使用了addr3、addr4作為s6b0724的片選信號(hào)(lcd_csa、lcd_csb)。addr2作為選擇對(duì)s6b0724寄存器或ram操作的信號(hào)(lcd_rs)。sep3203的片選信號(hào)lcd_ncsf連接74hct541的使能端oe。當(dāng)lcd_ncsf信號(hào)為低時(shí)74hct541被使能,oe、we、addr3、addr4、addr2信號(hào)被轉(zhuǎn)換成相應(yīng)的5v信號(hào)(lcd_/rd、lcd_/wr、lcd_csa、lcd_csb、lcd_rs)輸出到s6b0724;當(dāng)lcd_ncsf信號(hào)為高時(shí)74hct541停止工作,此時(shí)74hct541輸出高阻態(tài),為避免噪聲干擾,輸出端信號(hào)lcd_/rd、lcd_/wr、lcd_csa、lcd_csb、lcd_rs應(yīng)被上拉至5v。在sep3203的片選lcd_ncsf無(wú)效(高電平)時(shí),由于信號(hào)lcd_csa,lcd_csb被拉高,所以此時(shí)2片s6b0724控制器都未被選中,任何操作對(duì)其都是無(wú)效的,從而避免了在總線對(duì)其他設(shè)備操作時(shí)可能對(duì)s6b0724產(chǎn)生的誤操作。
數(shù)據(jù)信號(hào)的電平轉(zhuǎn)換類(lèi)似于控制信號(hào)的電平轉(zhuǎn)換。74lvxc4245是雙向電平轉(zhuǎn)換芯片,圖5中的lcd_dir信號(hào)由sep3203的gpio產(chǎn)生,用于控制74lvxc4245電平轉(zhuǎn)換方向的信號(hào)。當(dāng)lcd_dir為低時(shí),信號(hào)由b端傳向a端,即由總線傳向s6b0724(寫(xiě)操作);當(dāng)lcd_dir為高時(shí),信號(hào)由a端傳向b端,即由s6b0724傳向總線(讀操作)。信號(hào)lcd_d0-lcd_d7也需要上拉,防止當(dāng)74lvxc4245的輸出為高阻時(shí),外部噪聲在其輸出端產(chǎn)生錯(cuò)誤信號(hào)。
值得一提的是,s6b0724顯示控制器在pcb板上的位置靠近液晶屏,與sep3203之間的距離很大。在pcb布局時(shí),需要注意電平轉(zhuǎn)換芯片的位置,因?yàn)槠洳坏须娖睫D(zhuǎn)換的作用,而且還能緩沖總線信號(hào),使總線和s6b0724顯示控制器隔離,避免總線過(guò)長(zhǎng)。電平轉(zhuǎn)換芯片的布置應(yīng)該盡量靠近總線,減小總線的長(zhǎng)度,從而避免產(chǎn)生由總線過(guò)長(zhǎng)造成的信號(hào)延時(shí)及噪聲干擾問(wèn)題。
雖然rst信號(hào)也是單向傳輸?shù)?,但rst信號(hào)的電平轉(zhuǎn)換電路卻是單獨(dú)設(shè)計(jì)的。如果使用74hct541完成電平轉(zhuǎn)換,會(huì)有兩個(gè)問(wèn)題:(1)當(dāng)lcd_ncsf失效時(shí)74hct541不工作,此時(shí)lcd_reset信號(hào)無(wú)法傳遞到rst端,rst端始終是高電平(被上拉至5v),因此s6b0724無(wú)法被復(fù)位;(2)在74hct541工作時(shí),因?yàn)閘cd_ncsf的脈沖寬度等于總線周期(最大值約為幾百ms),所以輸出的rst信號(hào)的最大脈沖寬度也等于總線周期;而s6b0724要求的sct信號(hào)最小脈沖寬度是1μs,所以用74hct541無(wú)法產(chǎn)生正確的rst信號(hào),此時(shí)s6b072同樣無(wú)法被復(fù)位。在圖5中,該信號(hào)的電平轉(zhuǎn)電路是由晶體管和電阻構(gòu)成的。
3 驅(qū)動(dòng)程序
該部分軟件主要依照s6b0724的初始化流程、命令參數(shù)列表及其他資料[7]編寫(xiě)的。s6b0724的訪問(wèn)地址只有兩個(gè):一個(gè)是寄存器地址(通過(guò)寫(xiě)入不同的命令字來(lái)實(shí)現(xiàn)對(duì)s6b0724的控制);另一個(gè)是ram端口(顯示數(shù)據(jù)由此寫(xiě)入)。
首先需要根據(jù)s6b0724的接口設(shè)計(jì)計(jì)算其各端口的訪問(wèn)地址。sep3203的片選信號(hào)lcd_ncsf所對(duì)應(yīng)的基址是0x34000000。圖5中的s6b0724_a、s6b0724_b的寄存器訪問(wèn)地址分別是0x340000100、0x34000020;ram的訪問(wèn)地址分別是0x34000018、0x34000028。特別是在該接口設(shè)計(jì)允許sp3203同時(shí)訪問(wèn)s6b0724_a和s6b0724_b,寄存器的訪問(wèn)地址為0x34000000,ram的訪問(wèn)地址為0x34000008。在實(shí)際使用中,可以利用這個(gè)特點(diǎn)對(duì)兩個(gè)控制同時(shí)初始化,提高軟件效率。
s6b0724的初始化流程如圖6所示。先冷復(fù)位s6b0724,然后將74lvxc4245的電平轉(zhuǎn)換方向設(shè)置為從總線向數(shù)據(jù)線。通過(guò)寫(xiě)s6b0724的控制寄存器對(duì)s6b0724軟復(fù)位,然后選擇所用的顯示方式和掃描方向,再選擇背光亮度;通過(guò)寫(xiě)寄存器的方式打開(kāi)s6b0724內(nèi)部的電壓反轉(zhuǎn)器,等待10ms后再打開(kāi)電壓生成器。延遲10ms后,打開(kāi)電壓跟隨器,等所有電壓都穩(wěn)定后(約等待10ms)再設(shè)定液晶屏的工作電壓,最后開(kāi)始顯示。圖像的顯示通過(guò)函數(shù)void write_all lcd(void)來(lái)實(shí)現(xiàn)。其功能是將所要顯示的點(diǎn)陣數(shù)據(jù)送入2片s6b0724。
初始化程序如下:
4 結(jié)論
該設(shè)計(jì)已在以sep3203為核心的嵌入式系統(tǒng)中被實(shí)際應(yīng)用。采用s6b0724顯示控制器后,解決了sep3203微處理器在工控應(yīng)用中使用液晶屏的問(wèn)題。使用1個(gè)片選信號(hào)實(shí)現(xiàn)了對(duì)2個(gè)顯示控制器的控制。2個(gè)以上顯示控制器的控制也可通過(guò)類(lèi)似方法實(shí)現(xiàn)。該設(shè)計(jì)可以在金融收費(fèi)系統(tǒng)、稅務(wù)管理系統(tǒng)、電話終端等眾多系統(tǒng)中應(yīng)用。
評(píng)論