SSD1906顯示控制器與AT91RM9200的接口技術(shù)
摘要:通過對SSD1906顯示控制器的介紹,分析其在基于AT91RM9200微控制器的嵌入式系統(tǒng)中的應(yīng)用;給出詳細(xì)的硬件連接圖及主要的寄存器配置。
關(guān)鍵詞:SSD1906 AT91RM9200 顯示控制
引言
SSD1906是Solomon公司推出的一款中小規(guī)模的顯示控制芯片。這款顯示控制芯片集成了顯存及時(shí)序電路,因而為手持設(shè)備和消費(fèi)電子領(lǐng)域提供了一個(gè)低成本、低功耗的單芯片解決方案。AT91RM9200是Atmel公司推出的一款基于ARM9的嵌入式處理器,時(shí)鐘頻率為180MHz。AT91RM9200處理器內(nèi)部沒有集成LCD控制器,因而需要通過專用的顯示控制器,實(shí)現(xiàn)LCD顯示。本文介紹SSD1906顯示控制器在基于AT91RM9200微控制器的嵌入式系統(tǒng)中的具體應(yīng)用。
1 SSD1906顯示控制器介紹
SSD1906顯示控制芯片,內(nèi)部集成了256KB的SRAM顯存,可以支持單色和彩色LCD,以及多種有源和無源面板。SSD1906還具有強(qiáng)大的總線兼容性,可與多種類型的MCU連接。此外,SSD1906提供的功能還包括虛擬顯示、浮動窗口(窗口大小可變)顯示,并支持兩個(gè)光標(biāo),可以減少軟件的操作。32位的內(nèi)部數(shù)據(jù)通道,可以提供高帶寬的顯示內(nèi)存,以實(shí)現(xiàn)現(xiàn)快速的屏幕刷新。SSD1906還個(gè)有單電壓供電的優(yōu)點(diǎn)。
SSD1906顯示控制器的另一個(gè)特點(diǎn),是具有很短的CPU訪問延遲時(shí)間,因而可以支持無READY/WAIT交互信號的微處理器。此外,SSD1906支持單時(shí)鐘信號輸入,即總線時(shí)鐘(BCLK)、內(nèi)存時(shí)鐘(MCLK)和像素時(shí)鐘(PCLK)都可以由時(shí)鐘輸入CLK1得到。這款顯示控制器對MCU的類型和操作系統(tǒng)沒有具體要求,因而是實(shí)際應(yīng)用中的一個(gè)理想的顯示解決方案?;赟SD1906的顯示控制系統(tǒng)結(jié)構(gòu)如圖1所示。
1.1 總線兼容性
SSD1906顯示控制器兼容多種類型的MCU接口,特別是對現(xiàn)在常用的嵌入式處理器,基本上都可以實(shí)現(xiàn)無縫連接。對于不同的總線接口,SSD1906內(nèi)部提供了多個(gè)時(shí)序控制寄存器,可以根據(jù)不同接口的時(shí)序要求,進(jìn)行相應(yīng)的配置。SSD1906支持的MCU總線接口類型包括:具有WAIT信號的通用#1型和通用#2型總線接口;Intel StrongARM/Xscale;Motorla MX1龍珠;Motorola MC68K;Motorola龍珠MC68ez328/MC68VZ328;日立SH3和SH4。
除了支持16位和32位的處理器以外,SSD1906還可以支持8位的處理器。SSD1906內(nèi)部集成了256KB的顯存,支持寄存器在內(nèi)存中的映射;通過M/R輸入信號,選擇訪問內(nèi)存地址空間,或者訪問寄存器地址空間。此外,通過18位地址總線,MCU可以直接訪問SSD1906內(nèi)部連續(xù)的256KB顯存。
1.2 顯示支持與顯示模式
SSD1906顯示控制器支持多種類型的LCD接口,包括4/8位單色STN接口;4/8位彩色STN接口;9/12/8位有源矩陣TFT接口。此外,SSD1906支持1/2/8/16bpp四種色深。對于單色無源LCD面板,SSD1906還個(gè)有64個(gè)灰度級;對于無源STN面板和有源矩陣TFT面板,SSD1906都可以支持多達(dá)256K顏色。此外,SSD1906還支持多種分辨率,包括320320,160160和160240(其中色深為16bpp)。
1.3 顯示特性
在顯示特性方面,SSD1906支持顯示旋轉(zhuǎn)模式,通過對SSD1906內(nèi)部相應(yīng)控制寄存器的設(shè)置,可以實(shí)現(xiàn)顯示圖像的90、180和270硬件旋轉(zhuǎn)。同時(shí),SSD1906還支持虛擬顯示,即顯示的圖像尺寸可以比實(shí)際選用的LCD面板大。用戶可以通過上下和左右滾動屏幕,實(shí)現(xiàn)完整圖像的觀看。
SSD1906顯示控制器支持浮動窗口顯示模式。在這種模式下,主顯示窗口中可以同時(shí)顯示一個(gè)浮動窗口,這個(gè)浮動窗口可以位于主窗口中的任意位置,具體可以通過浮動窗口控制寄存器進(jìn)行設(shè)置。此外,SSD1906還支持兩個(gè)硬件光標(biāo)(只支持4/8/16bpp),并支持雙緩存/多頁模式,因而可以顯示流暢的動畫,并可以實(shí)現(xiàn)實(shí)時(shí)的屏幕刷新。
2 AT91RM9200微控制器
Atmel公司的AT91RM9200是基于ARM Thumb的ARM920T微控制器,時(shí)鐘頻率為180MHz,運(yùn)算速度可以達(dá)到200MIPS。AT91RM9200內(nèi)部分別有16KB的數(shù)據(jù)緩存和指令緩存,具有存儲器管理單元(MMU)。此外,AT91RM9200內(nèi)部還包括16KB的SRAM和128KB的ROM,具有外部總線接口(EBI),支持SDRAM、靜態(tài)存儲器、Burst Flash、CompactFals、SmartMedia以及NAND Flash。
AT91RM9200微控制器提供的系統(tǒng)外設(shè)包括:增強(qiáng)的時(shí)鐘發(fā)生器和電源管理控制器;2個(gè)具有雙PLL的片上晶振,低時(shí)鐘操作模式以及通過軟件實(shí)現(xiàn)的電源優(yōu)化功能;具有4個(gè)可編程的外部時(shí)鐘信號;系統(tǒng)定時(shí)器包括定時(shí)中斷、看門狗和第二計(jì)數(shù)器;具有報(bào)警中斷的實(shí)時(shí)時(shí)鐘;具有調(diào)試單元、兩線UART,并且支持調(diào)試通信通道;具有8個(gè)優(yōu)先級的高級中斷控制器,可獨(dú)立屏蔽的向量中斷源,具有偽中斷保護(hù)功能;擁有7個(gè)外部中斷源和1個(gè)快速中斷源;4個(gè)32位的PIO控制器,多達(dá)122條可編程的I/O線,每條I/O線具有輸入變化中斷和漏極開路電容;具有20個(gè)通道的外圍數(shù)據(jù)控制器(PDC)。
3 硬件設(shè)計(jì)
3.1 SSD1906的總線接口
SSD1906顯示控制可與多種MCU相連,具體的連接方式取決于MCU所支持的總線類型。SSD1906支持單時(shí)鐘輸入(CLKI),從而可以由MCU的總線時(shí)鐘為其提供時(shí)鐘信號。對于通用#1總線,SSD1906用于與MCU相連的引腳為:
A0――接低電平;
A[17:1]――系統(tǒng)地址總線位17~1;
D[15:0]――系統(tǒng)數(shù)據(jù)總線輸入;
WE0――低8位數(shù)據(jù)的寫使能信號輸入;
WE1――高8位數(shù)據(jù)的寫使能信號輸入;
CS――片選輸入;
M/R――選擇讀寫顯示內(nèi)存或內(nèi)部寄存器。高為顯示內(nèi)存,低為內(nèi)部寄存器;
BS――接高電平;
RD/WR――高8位數(shù)據(jù)的讀命令輸入;
RD――低8位數(shù)據(jù)的讀命令輸入;
WAIT――等待信號輸出??梢酝ㄟ^配置,決定該信號為高電平有效或低電平有效;
RESET――復(fù)位輸入信號。
3.2 總線接口分析與實(shí)現(xiàn)
AT91RM9200微控制器的總線接口屬于通用#1型接口,因而可與SSD1906直接相連。其中,AT91RM9200的A[17:1]、D[15:0]、NWR0、NWR1、NCS2、NWAIT、NRST引腳,可以分別與SSD1906的A[17:1]、D[15:0]、WE0、WE1、CS、WAIT和RESET引腳直接連接。而AT91RM9200的NRD引腳可以使能16位或者8位的讀訪問,因而可與SSD1906的RD/WR和RD引腳相連,作為高字節(jié)和低字節(jié)的讀使能信號。對于SSD1906的M/R信號,可以由AT91RM9200的A18信號進(jìn)行控制。SSD1906與AT91RM9200的總線連接如圖2所示。
此外,由于SSD1906的CLKI的輸入時(shí)鐘頻率最高為66MHz,而其總線時(shí)鐘頻率最高也為66MHz,因SSD1906的總線時(shí)鐘BCLK可以直接由CLKI提供,其頻率比為1:1。另外,AT91RM9200的總線類型為通用#1型,選NWAIT信號為低有效,總線接口為小端模式,所以可以確定SSD1906的配置引腳CF[7:0]為0x0Bh。
4 寄存器配置
在寄存器配置方面,包括對MCU的初始化及對SSD1906的初始化和設(shè)置。對于AT91RM9200微控制器,首先,必須設(shè)置相應(yīng)的PIO控制寄存器,將有復(fù)用的I/O線配置為所需要的功能。其次,考慮到SSD1906的CLKI時(shí)鐘頻率最高為66MHz,因此,需要對AT91RM9200的PMC_PCK0寄存器進(jìn)行設(shè)置,保證PCK0的輸出時(shí)鐘頻率不超過66MHz。下面分別介紹SSD1906的主要寄存器配置。
4.1 SSD1906的內(nèi)部時(shí)鐘設(shè)置
SSD1906支持單時(shí)鐘輸入,即所有的時(shí)鐘信號都可以由CLKI的輸入時(shí)鐘提供。對于SSD1906的總線時(shí)鐘BCLK,可以通過配置CD[7:6]引腳,對CLKI得到需要的BCLK。這里將CF[7:6]配置為00,即BCLK=CLKI。
內(nèi)存時(shí)鐘MCLK用于訪問SSD1906內(nèi)部的SRAM。SSD1906的設(shè)計(jì)充分考慮了省電控制,當(dāng)顯示控制器不工作時(shí),時(shí)鐘自動關(guān)才。而另一方面,減小MCLK的頻率,會增加MCU時(shí)鐘延遲,從而降低屏幕刷新的性能。因此,為了在省電與性能之間達(dá)到最優(yōu)的平衡,MCLK的頻率配置必須滿足兩點(diǎn):既要有足夠高的內(nèi)存訪問頻率,以提供較快的刷新率,又要保證MCU的延遲為一個(gè)可接受的值。通過配置寄存器REG[04h],由BCLK得到MCLK時(shí)鐘。
像素時(shí)鐘PCLK用于控制LCD面板。PCLK的選擇必須與LCD面板的最優(yōu)幀速率相匹配。幀速率的計(jì)算公式為
幀速率=fPCLK/(HT)(VT)
其中:fPCLK為PCLK時(shí)鐘頻率,單位為Hz;
HT=((REG[12h]bits 6-0)+1)8Ts,為水平總周期;
VT=((REG[19h]bits 1-0,REG[18h]bits 7-0)+1)lines,為垂直總周期。
像素時(shí)鐘PCLK的選擇具有很大的靈活性。首先,LCD面板的幀速率一般都有一個(gè)允許的范圍。其次,像素時(shí)鐘頻率也可以指定為一個(gè)很的值,然后,通過調(diào)整水平和垂直顯示周期,將幀速率降低到一個(gè)最優(yōu)值。像素時(shí)鐘的時(shí)鐘源可以為MCLK或BCLK。通過配置寄存器REG[05h],可以得到不同的PCLK。
4.2 虛擬顯示模式的設(shè)置
SSD1906支持虛擬顯示模式,具體可以通過以下寄存器的設(shè)置實(shí)現(xiàn)。首先,設(shè)置主窗口顯示起始地址寄存器REG[74h]、REG[75h]和REG[76h],指定顯示內(nèi)存中主窗口圖像的起始地址。然后,設(shè)置主窗口線地址偏移寄存器REG[78h]和REG[79h],確定虛擬圖像的水平像素?cái)?shù)。當(dāng)然,設(shè)定的水平像素?cái)?shù)必須大于LCD面板的實(shí)際顯示像素寬度,才可以實(shí)現(xiàn)虛擬顯示,否則為普通顯示模式。圖3所示為主窗口與虛擬顯示區(qū)域的關(guān)系。
4.3 浮動窗口的設(shè)置
浮動窗口可位于虛擬顯示區(qū)域內(nèi)的任何位置,其定位可以通過浮動窗口控制寄存器REG[7Ch]到REG[91h]來進(jìn)行設(shè)置。浮動窗口的色深和顯示方向與主窗口相同。本方案中采用的是正常方向模式顯示,即禁止顯示旋轉(zhuǎn)。圖4為本方案中浮動窗口與主窗口的關(guān)系,以及定位寄存器的設(shè)置。
4.4 硬件光標(biāo)的設(shè)置
SSD1906支持在主窗口中顯示兩個(gè)硬件光標(biāo)。這兩個(gè)光標(biāo)可以位于主窗口的任何位置,具體定位通過光標(biāo)模式寄存器REG[C0h]到REG[111h]控制。硬件光標(biāo)只支持4/8/16bpp顯示模式。
這里只介紹了SSD1906中的一些主要寄存器的配置。其它的寄存器設(shè)置,請參考相關(guān)資料。
結(jié)語
SSD1906屬于中小規(guī)模的圖形顯示控制器,尤其適用于工控、便攜式設(shè)備及其它一些日常消費(fèi)產(chǎn)品的液晶顯示。在AT91RM9200嵌入式系統(tǒng)中,充分利用了SSD1906小體積、低功耗、低成本、多顯示功能的優(yōu)點(diǎn),可以很好地應(yīng)用于工業(yè)控制以及車載GPS等領(lǐng)域中。
評論