基于Nios II的多功能數(shù)碼相框設(shè)計(jì)
數(shù)碼相框是時(shí)尚的電子消費(fèi)品,也是家庭必備的裝飾品,是一種以存儲(chǔ)、回放和瀏覽數(shù)碼照片為核心功能的電子產(chǎn)品。目前,市場(chǎng)上數(shù)碼相框大多是以單芯片為解決方案,以ESS/AML0GIC/MPX芯片設(shè)計(jì)為代表,就其設(shè)計(jì)流程而言,不存在嚴(yán)格意義上的硬件設(shè)計(jì)而只有軟件設(shè)計(jì)。硬件系統(tǒng)的核心器件是現(xiàn)成的,功能是確定的,結(jié)構(gòu)是固定的,指令系統(tǒng)是不可更改的,從而導(dǎo)致硬件組織方案和連接方案是限定的。因此,要想對(duì)系統(tǒng)功能有大的升級(jí)或擴(kuò)展,靠簡(jiǎn)單的固件升級(jí)是不行的,必須采用更好的核心器件,設(shè)計(jì)全新的硬件系統(tǒng)。
本文采用了基于NiosⅡ軟核處理器的SOPC技術(shù)來實(shí)現(xiàn)數(shù)碼相框的設(shè)計(jì),從根本上改變了傳統(tǒng)設(shè)計(jì)方案的不足。NiosⅡ軟核嵌入式處理器是Altera公司提供的SOPC解決方案。NiosⅡ是一種可配置的16/32位RISC處理器,它結(jié)合豐富的外設(shè)、專用指令和硬件加速單元可以低成本地提供極度靈活和功能強(qiáng)大的SOPC系統(tǒng),開發(fā)者可以根據(jù)實(shí)際需要自行整合。SOPC技術(shù)在電子設(shè)計(jì)上給出了一種同時(shí)涉及底層的硬件系統(tǒng)設(shè)計(jì)和相應(yīng)的軟件設(shè)計(jì),在系統(tǒng)優(yōu)化方面有了前所未有的自由度,使得從多角度、多因素和多結(jié)構(gòu)層面上大幅度優(yōu)化自己的設(shè)計(jì)成為可能。當(dāng)電路有少量改動(dòng)時(shí),更凸現(xiàn)出其優(yōu)勢(shì),可以延長該產(chǎn)品在市場(chǎng)上的壽命,大大提高多功能數(shù)碼相框的性能。
1 系統(tǒng)總體架構(gòu)設(shè)計(jì)及系統(tǒng)硬件設(shè)計(jì)
基于NiosⅡ的SOPC嵌入式系統(tǒng)開發(fā),主要由三部分組成:IP庫(Nios軟核處理器,Avalon總線,外圍設(shè)備接口等),SOPC Builder開發(fā)工具,CNUPro軟件編譯器。另外,使用NiosⅡ進(jìn)行嵌入式設(shè)計(jì)在硬件上必須使用Altera公司的FPGA,本文中的設(shè)計(jì)使用的是Altera的Cyclone系列芯片的EPlCl2Q240C8芯片。
多功能數(shù)碼相框主要實(shí)現(xiàn)以下功能:能清晰地顯示JPEG圖片的自動(dòng)播放及其縮略圖式瀏覽;多區(qū)播放或者畫中畫多種顯示方式;圖片的即時(shí)編輯與裁剪(旋轉(zhuǎn)、美化);具有出色的視聽娛樂功能,能播放MP3、MP4音頻文件,實(shí)時(shí)字幕滾動(dòng)疊加;文件和文件的瀏覽及其對(duì)USB接口和SD卡的支持;多種附加功能時(shí)鐘,萬年歷等。
數(shù)碼相框從CPU的總體結(jié)構(gòu)到局部功能的實(shí)現(xiàn)上需要有時(shí)鐘電路,CPU,RAM及RAM控制器,F(xiàn)LASH及FLASH控制器,SD卡及SD卡控制電路,
USB接口及USB接口控制器,液晶屏及液晶顯示器驅(qū)動(dòng)電路,DMA控制器,音頻驅(qū)動(dòng)及音頻控制電路,定時(shí)器模塊,系統(tǒng)硬件結(jié)構(gòu)圖如1所示。
整個(gè)設(shè)計(jì)采用自上而下的設(shè)計(jì)方法,在SOPCBuilder中搭建系統(tǒng)硬件模塊,將所需的各功能模塊通過Avalon總線集成,這樣系統(tǒng)的穩(wěn)定性更高。除顯示驅(qū)動(dòng)模塊、音頻控制模塊和SD卡控制模塊、USB接口控制模塊外,其他模塊都可以從SOPC Builder中添加IP核構(gòu)建。
2 LED背光設(shè)計(jì)
LCD面板是數(shù)碼相框的主要組成部分,它帶有用于背光照明的白光LED,LM27313已被大量用于白光LED BLU解決方案。圖2顯示了用于8英寸數(shù)碼相框LCD的白光LED背光電路。
在設(shè)計(jì)LED背光驅(qū)動(dòng)電路時(shí),LED是電流驅(qū)動(dòng)型器件,為保證光照強(qiáng)度并提高LED的使用壽命,最重要的問題是在LED正向偏置時(shí)保持恒流。由于大多數(shù)LED模塊是通過一個(gè)連接器與主板相連的,LM27313在輸出時(shí)會(huì)因誤操作或LED模塊受損而開路,誤差放大器的負(fù)輸入端沒有信號(hào),輸出電壓將會(huì)無限制地上升,這將造成毀滅性后果,損壞LM27313或輸出二極管。為解決這一問題,在圖2中加入了一個(gè)過電壓保護(hù)電路。在圖2中,電阻器R1和R2通過向誤差放大器引腳(FB)饋送輸出電壓,確保恒定輸出電壓不會(huì)無限上升。
調(diào)光控制是指根據(jù)客戶的喜好控制顯示器光照強(qiáng)度。可以通過開/關(guān)LM27313來控制LED的開關(guān),而對(duì)LM27313的開關(guān)控制可通過在SHDN引腳上應(yīng)用脈沖寬度調(diào)制(PWM)得以實(shí)現(xiàn)。脈沖頻率必須超過20 kHz,低于20 kHz的頻率會(huì)使電路輸出端的多層陶瓷電容器產(chǎn)生波形振蕩,從而產(chǎn)生可聽噪聲。
3 LCD典型電源偏置電路設(shè)計(jì)
面向LCD平板電源的DC/DC轉(zhuǎn)換中采用了美國國家半導(dǎo)體擁有的最佳的電源解決方案LM2622。在用于數(shù)碼相框的典型LCD平板顯示器中,輸入電源電壓約為+5.O V。必須提供若干不同的電壓,以使顯示面板通過該輸入電壓實(shí)現(xiàn)最佳性能,通常情況下需用到升壓轉(zhuǎn)換器??梢岳肔M2622在+5.0 V輸入電壓下提供若干不同的輸出電壓。圖3中的電路顯示了應(yīng)如何配置LM2622,以提供+8 V,-8 V和+23 V的輸出電壓,這對(duì)于偏置TFT顯示器而言是非常方便的。
4 USB接口模塊設(shè)計(jì)
隨著通用串行總線(USB)技術(shù)的飛速發(fā)展和應(yīng)用領(lǐng)域不斷擴(kuò)大,已經(jīng)實(shí)現(xiàn)了脫離PC而實(shí)現(xiàn)USB的點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸,嵌入式USB主機(jī)能夠脫離PC完成USB的點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸。本系統(tǒng)采用的是NiosⅡ+USB接口芯片的方案,USB串行接口可以作為NiosⅡ的一個(gè)外設(shè),接口芯片采用的是Cypress公司生產(chǎn)的SL811HS為主控制器的USB Host/Slave接口芯片。設(shè)計(jì)的原理方案圖如圖4所示。
SL811HS主控制器接口提供8位的數(shù)據(jù)總線及一些控制信號(hào),如讀寫、片選等與外部CPU或微控制器進(jìn)行連接。并且,L811HS接口為外部提供簡(jiǎn)單的地址線A0,支持可編程I/O或存儲(chǔ)器映射設(shè)計(jì)。通過對(duì)SL811HS的讀寫時(shí)序與Avalon總線讀寫時(shí)序的分析,采用了SL811HS中的A0尋址模式與Avalon總線的“具有一個(gè)固定等待的從端口讀/寫傳輸”時(shí)序,SL811HS的地址和數(shù)據(jù)均通過D[7..O]分時(shí)傳輸,通過A0(數(shù)據(jù)/地址選擇線)電平的高低加以區(qū)分。當(dāng)A0置為低電平時(shí),D[7..O]上傳輸?shù)氖荢L811HS片內(nèi)寄存器/緩沖區(qū)的地址,反之高電平則為數(shù)據(jù)。在A0模式下,SL8llHS正常的讀寫操作支持地址自動(dòng)加1模式,即在此模式下微控制器只設(shè)置地址僅僅一次,緊接下一個(gè)時(shí)鐘的讀寫操作SL811HS內(nèi)部地址指針將會(huì)自動(dòng)跳到下一個(gè)數(shù)據(jù)位置。nWR,nRD,nCS,nRST分別為寫控制線、讀控制線、片選線和復(fù)位線,均是低電平有效,NiosⅡ通過這幾根控制線完成對(duì)SL811HS片內(nèi)緩沖區(qū)讀寫、片選和復(fù)位等操作。INTRQ是中斷請(qǐng)求信號(hào)線。當(dāng)SL8llHS檢測(cè)到外設(shè)插入、拔出或者數(shù)據(jù)發(fā)送錯(cuò)誤、超時(shí)、數(shù)據(jù)溢出等異常情況時(shí),通過將INTRQ置高電平通知NiosⅡ。Avalon總線為用戶提供了非常友好的接口,在SL811HS與Avalon總線的接口轉(zhuǎn)換Verilog代碼中,只需建立SL81lHS端口與Avalon總線端口的映射關(guān)系即可。如圖5所示。
5 系統(tǒng)軟件設(shè)計(jì)部分
對(duì)基于NiosⅡ的SOPC系統(tǒng)進(jìn)行編譯并下載到FPGA中生成硬件系統(tǒng),同時(shí)SOPC Builder幫助用戶生成相應(yīng)的SOF文件,在此基礎(chǔ)上,開始系統(tǒng)軟件的設(shè)計(jì)。本系統(tǒng)軟件部分是在Altera公司提供的軟件集成開發(fā)工具IDE中,以C語言形式,在硬件抽象層(HAL)函數(shù)支持下設(shè)計(jì)的。
軟件的開發(fā)順序?yàn)椋河布?qū)動(dòng)程序一操作系統(tǒng)移植→建立文件系統(tǒng)→應(yīng)用程序設(shè)計(jì)。系統(tǒng)軟件開發(fā)均在NiosⅡ集成的μC/OS-Ⅱ操作系統(tǒng)上完成。在多功能數(shù)碼相框系統(tǒng)中建立了Task_Main(主控任務(wù))、Task_Gui(GUI圖形化人機(jī)交互界面顯示任務(wù))、Task_Music(音樂播放控制任務(wù))等三個(gè)任務(wù)。利用消息郵箱機(jī)制,μC/OS-Ⅱ操作系統(tǒng)對(duì)這三個(gè)任務(wù)進(jìn)行調(diào)度管理。
為了實(shí)現(xiàn)系統(tǒng)所需要的圖形人機(jī)界面,還必須在系統(tǒng)開發(fā)平臺(tái)進(jìn)行嵌入式用戶圖形系統(tǒng)的設(shè)計(jì),從而建立一個(gè)滿足實(shí)時(shí)性和快速性的人機(jī)交互系統(tǒng)。圖形用戶界(Graphical User Interface)一直是計(jì)算機(jī)的重要組成部分,對(duì)于嵌入式系統(tǒng)而言也是如此。在嵌入式GUI方面選擇了Micrium公司開發(fā)的通用嵌入式圖形用戶界面軟件μC/GUI,它是μC/OS-Ⅱ操作系統(tǒng)的專用GUI,可以實(shí)現(xiàn)與μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)的完美結(jié)合。
6 結(jié)語
該系統(tǒng)的所有硬件結(jié)構(gòu)都是在SOPC下集成的,具有的好處在于硬件的可重構(gòu)與可重配置,并且采用從上而下的設(shè)計(jì)流程使得系統(tǒng)設(shè)計(jì)周期大大縮短。還介紹了包括LCD背光電路,電源偏置電路,及USB接口模塊的詳細(xì)設(shè)計(jì)。利用NiosⅡ軟核處理器與Avalon總線的仲裁機(jī)制和嵌入到NiosⅡ中的操作系統(tǒng),完成了各個(gè)功能模塊的任務(wù)調(diào)度,穩(wěn)定與提高了整個(gè)系統(tǒng)的性能,簡(jiǎn)化了系統(tǒng)的設(shè)計(jì),為家用電子產(chǎn)品領(lǐng)域的開發(fā)和應(yīng)用開辟了新的途徑。