<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 手持式電子設備中實現(xiàn)LCD和電視信號同時輸出的QuickLogic X/Y交換設計

          手持式電子設備中實現(xiàn)LCD和電視信號同時輸出的QuickLogic X/Y交換設計

          作者: 時間:2017-06-06 來源:網(wǎng)絡 收藏

          手持設備正變得越來越先進,比以往任何時候都能處理更多的多媒體應用。過去的移動應用只能在高端便攜式個人電腦(PC)上運行,而現(xiàn)在可以輕松地在個人數(shù)字助理(PDA)設備或智能電話設備上運行。很顯然,手持產(chǎn)品正在匯聚各種能力,使移動電話、PDA、數(shù)碼相機(DSC)、攝像機和音頻/視頻個人媒體播放器(PMP)之間的界限越來越模糊。隨著手持式設備越來越復雜,它們的能力和功能將變得更像PC或筆記本電腦。這些設備在許多情況下也可以運行Windows操作系統(tǒng)的移動版本,使用色彩更加豐富的大屏幕高分辨率顯示器、高速連接、大量非易失性存儲器和QWERTY鍵盤,從而有可能使需要攜帶便攜式PC的人數(shù)越來越少。這些手持式設備最新提供的一種功能是驅(qū)動外置監(jiān)控顯示器、投影儀或電視機的能力。這種能力一般稱之為視頻圖形陣列(VGA)或電視輸出功能。預計到2010年所有智能電話中有40%以上將具有實際的電視輸出功能。

          雖然增加一個諸如VGA或電視輸出的功能似乎就像增加適當?shù)倪B接器那樣簡單,但是這種增加引發(fā)了電源管理、設備互操作性和用戶交互方面的許多系統(tǒng)設計挑戰(zhàn)。本文將主要討論這些問題,并且針對這些技術性系統(tǒng)設計挑戰(zhàn)提出了基于QuickLogic可編程解決方案平臺的解決方案。

          面臨的挑戰(zhàn)

          在手持式設備中增加驅(qū)動外置顯示器的能力需要面對以下一些系統(tǒng)性挑戰(zhàn):

            電源管理:全速(每秒60幀(fps)VGA或30 fps NTSC)視頻需要采用極耗功率的額外元件,例如用于幀緩沖的外部存儲設備、圖形處理器、視頻數(shù)模轉(zhuǎn)換器(DAC)和NTSC(國家電視系統(tǒng)委員會)/PAL(逐行倒相)編碼器等。這些額外的元件組合起來可能會嚴重侵蝕系統(tǒng)的功率預算,從而影響設備的總體能量消耗,也將縮短電池使用時間。當增加這些元件時,必須對它們的功率進行適當?shù)墓芾?,以便在工作時消耗最少的功率,而在不使用時消耗非常少甚至沒有功耗。

            互操作性:增加外置顯示設備的驅(qū)動功能和能力后,用戶就能將系統(tǒng)連接到任何地區(qū)、任何年代甚至任何品牌的顯示器。因此,能夠靈活地匹配大多數(shù)全球通用標準的輸出視頻時序和分辨率就變得非常重要了。此外,手持設備內(nèi)部自帶顯示器的時序和分辨率可能無法滿足與之外部連接的顯示器要求。因此,VGA或電視輸出子系統(tǒng)必須具備諸如幀頻轉(zhuǎn)換和視頻縮放/裁剪等功能。而且對用戶來說,調(diào)整由這些功能提供的參數(shù)必須直觀和容易管理。

            用戶交互:除了要求能夠方便地管理外置顯示子系統(tǒng)外,在使用外置顯示器時,用戶還必須能夠為設備提供觸覺型輸入。許多PDA或智能電話設備都有液晶顯示(LCD)觸摸屏,它是與用戶之間的主要接口,當使用外部連接的顯示器時,它必須不斷接受用戶的輸入。如果接觸傳感器矩陣下面的相應顯示器不能正常工作,就無法讓用戶使用LCD觸摸屏進行輸入。這意味著外置顯示器和內(nèi)部自帶顯示器必須同時工作(即同時掃描)。雖然這樣似乎非常簡單,但如果內(nèi)部和外置顯示器在長寬比、視頻時序(幀頻)和分辨率方面不同的話,這可能是一個極大的挑戰(zhàn)。

          手持式設備實例

            在下面具體的手持式設備實例中,設備自身采用的是“豎屏”模式的VGA(480×640)分辨率彩色有源矩陣LCD顯示器。由于它們與設備本身的形狀相匹配,而且類似于8?×11的紙張或人像風格照片,因此豎屏顯示器(而不是橫屏顯示器)在手持式設備很常見。高級手持式設備可以根據(jù)用戶手持設備的方向?qū)D像旋轉(zhuǎn)90度,例如當顯示相對于靜態(tài)圖像的視頻,或者用戶使用一個QWERTY鍵盤進行輸入時。雖然圖像可以通過圖形處理器輕松旋轉(zhuǎn)90度,但是掃描方向相對自帶顯示設備是固定的。

           
          圖1:VGA分辨率、掃描方向相反的3:4豎屏和4:3橫屏顯示器實例。
           
            對一個如圖1所示的豎屏LCD顯示器來說,在顯示器的短邊朝向頂部時,LCD的掃描方向是從左至右、從上至下。這是一個長寬比為3:4的屏幕,與典型的4:3(640×480)VGA顯示器相比掃描方向差90度。因此如圖1所示,需要一個X/Y交換操作以便在兩個顯示設備上同時顯示相同的圖像。雖然兩種情況下兩個顯示器之間的幀頻(垂直同步)時序可能保持不變,但是行數(shù)和行頻(水平同步)時序是不同的。

            至于顯示器的圖像,自帶顯示器是逐行寫入的,外置顯示器是同時逐列寫入的。由于必須要一個整幀的行才能組成一個圖像列,因此需要使用一個全幀緩沖器才能成功地執(zhí)行X/Y交換操作。

            進一步分析這個例子,如果自帶豎屏VGA LCD顯示器必須鎖定到60 Hz的幀頻,并且要與外部PAL(50 Hz幀頻)或NTSC(59.94 Hz幀頻)顯示器一起同時使用,那么兩個顯示器之間的幀頻(垂直同步)時序也可能不同。

            自帶顯示器和外置顯示器幀頻的不同意味著X/Y交換圖像緩沖器也必須能夠處理不同的寫入與讀取速率,因此必須能夠適應不同的像素時鐘速率,并能管理(動態(tài)丟棄或重用)多個臨時幀緩沖器。
            X/Y交換和幀頻轉(zhuǎn)換操作必須實時進行,功耗要盡可能低,盡可能用最少的元件,并且占用盡可能少的PCB面積。所有這些技術要求必須滿足,同時要使材料清單(BOM)成本最低。

          手持式設備實例:QuickLogic解決方案平臺

            雖然上述問題將帶來非常艱巨的數(shù)字設計挑戰(zhàn),但是采用嵌入式FIFO、并能與具有不同I/O電壓的多種外部高速器件相連的QuickLogic低功率解決方案平臺是非常理想的解決之道。圖2給出了X/Y解決方案的系統(tǒng)框圖。


          圖2: X/Y交換顯示子系統(tǒng)解決方案。

           
            這個解決方案選擇了8×8 mm 132焊球BGA封裝的QuickLogic PolarPro可編程解決方案平臺。幀緩沖器采用一個單路16倍速移動(1.8 V)SDRAM器件實現(xiàn)。視頻編碼器功能采用一個Chrontel VGA/NTSC/PAL編碼器件實現(xiàn)。整個視頻子系統(tǒng)由一個圖形處理器驅(qū)動,它以相同的數(shù)據(jù)和時序(480×640分辨率,60 Hz幀頻,逐行掃描,RGB565(16位)格式)同時驅(qū)動QuickLogic器件和自帶豎屏LCD顯示器。

          圖3顯示了QuickLogic X/Y交換設計的內(nèi)部模塊。  


          圖3: X/Y交換設計的模塊框圖。

           
            QuickLogic PolarPro器件負責以下一些系統(tǒng)功能:

            1. X/Y交換操作:這個功能可以按照所實現(xiàn)的尋址方案簡單地通過寫入和讀取外部SDRAM存儲器來實現(xiàn)。進來的視頻被寫入PolarPro器件的輸入FIFO,并在輸入FIFO中將LCD像素時鐘頻率與SDRAM時鐘頻率分離開。SDRAM時鐘頻率固定在輸入的100 MHz主時鐘導出的頻率上。數(shù)據(jù)從輸入FIFO讀取,并根據(jù)輸出圖像方向以單列逐行方式寫入SDRAM存儲器。然后再根據(jù)輸出圖像方向以單行逐列方式從SDRAM存儲器中讀取數(shù)據(jù)。這個數(shù)據(jù)將經(jīng)過輸出FIFO送出,并由輸出FIFO將SDRAM時鐘與電視輸出時鐘分離開。輸出FIFO直接驅(qū)動VGA/NTSC/PAL編碼器件。當發(fā)生突發(fā)操作時,所有SDRAM訪問都將被執(zhí)行,從而最大化總線效率。

            2. 幀頻轉(zhuǎn)換:這個功能可管理SDRAM中的多個幀緩沖器,在60Hz輸入幀頻時,可以使輸出幀頻在VGA模式時為60Hz,NTSC時為59.94Hz,PAL時為50Hz。雖然VGA/NTSC/PAL編碼器芯片能夠為這三種輸出模式提供一種合適的像素時鐘頻率,但是它要求640×480逐行掃描橫屏數(shù)據(jù)以及垂直和水平同步時序兼容所選擇的輸出標準。因此在將輸出像素時鐘作為參考的條件下,PolarPro器件負責根據(jù)所選模式產(chǎn)生輸出VSYNC和HSYNC時序。在SDRAM中存儲和管理著多個幀緩沖器,因此可以從輸入圖像正確地構成不同幀頻的輸出圖像。PolarPro器件可以根據(jù)輸入和輸出幀頻的時序差異自動確定存儲在SDRAM中的幀是丟棄還是重用。此外,幀頻轉(zhuǎn)換是利用標準SDRAM器件和單條16位雙向數(shù)據(jù)總線實現(xiàn)的。管理SDRAM幀緩沖器無需使用雙端口、雙總線或者“乒乓”器件方法。

            3. 電源管理:PolarPro器件內(nèi)的設計可以有選擇地停止所有顯示子系統(tǒng)時鐘,并關閉相關的SDRAM器件以節(jié)省系統(tǒng)中的電池電量。PolarPro器件本身還具有甚低功耗(VLP)模式,在這個模式下可以命令器件進入一種低功耗靜止狀態(tài),在工作電壓為1.8 V時電流可低至2.2μA。在這種模式下,所有內(nèi)部寄存器和FIFO位都處于保持狀態(tài),器件可以用系統(tǒng)CPU的命令在250μs以內(nèi) “喚醒”。在工作模式下,PolarPro器件在1.8 V時消耗電流小于30 mA,并能執(zhí)行所有動態(tài)操作。

            4. 配置:系統(tǒng)中的主CPU依靠內(nèi)部集成電路總線(I2C)與PolarPro FPGA進行通信。通過這個接口,CPU能夠用正確的輸出時序和格式對設計進行配置,還可以配置電源管理特性。

            5. 電壓轉(zhuǎn)換:PolarPro器件最多可提供4個I/O電壓域。輸入LCD接口、SDRAM接口和電視輸出接口都可以在不同的I/O電壓下工作。當降低功耗是關鍵系統(tǒng)目標時這一特性尤其重要——移動(1.8 V)SDRAM可同時在該系統(tǒng)中使用,而圖形處理器和LCD編碼器件還可以工作在更高的I/O電壓(>1.8 V)。

            值得注意的是,雖然以上討論的設計可以利用這個具體的特殊設計實現(xiàn)方法應對X/Y交換的挑戰(zhàn),不過PolarPro平臺本身是可編程的。因此,修改設計以支持額外的電源管理功能、減少或增加支持的顯示分辨率或者增加設計所支持的色彩深度都很容易實現(xiàn)。

          本文小結

            對于帶有電視輸出功能的手持式設備來說,如果內(nèi)部自帶豎屏顯示器準備和外部連接顯示設備實現(xiàn)同步掃描,那么視頻子系統(tǒng)設計必須采用具有X/Y交換操作和幀頻轉(zhuǎn)換功能的器件。如上所述,為了正確地解決這個問題,所選的器件必須消耗非常少的靜態(tài)和動態(tài)功率,包含能夠跨時鐘域的嵌入式FIFO,并能靈活地連接具有各種I/O電壓的外部設備。  

            QuickLogic利用PolarPro可編程解決方案平臺解決了這個系統(tǒng)問題,它消耗的系統(tǒng)功率非常少,可最大限度地減少材料成本和節(jié)省PCB面積。此外,這個設計目前已經(jīng)可用,并經(jīng)實際硬件所驗證。在快速變化的手持式消費類電子產(chǎn)品設計世界中,上市時間絕對關鍵。QuickLogic推出的用于同步顯示X/Y交換的可編程解決方案,以及用于連接解決方案的可編程CPU配套系列器件有助于設計人員和系統(tǒng)集成商向市場更快地推出具有ASIC那樣低功率特性的產(chǎn)品。

           作者:Judd E. Heape

          產(chǎn)品應用總監(jiān)

          QuickLogic公司

          本文引用地址:http://www.ex-cimer.com/article/201706/349563.htm


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();