• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于A(yíng)RM處理器S3C2440A的便攜式視頻展示臺(tái)的設(shè)計(jì)

      2013-08-10 10:30:02梁皓東張國(guó)平
      電子設(shè)計(jì)工程 2013年14期
      關(guān)鍵詞:展示臺(tái)緩沖區(qū)寄存器

      梁皓東,張國(guó)平,潘 梁

      (1.華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢 430079;2.湖北省武黃高速管理處 湖北 武漢 430079)

      視頻展示臺(tái)是將實(shí)物、文稿、圖片和過(guò)程等信息轉(zhuǎn)換為圖像信號(hào)輸出在投影機(jī)、顯示器上展示出來(lái)的一種演示設(shè)備。便攜式視頻展示臺(tái)由于具有體積小,易于攜帶等優(yōu)點(diǎn),被廣泛用于教學(xué)、大型會(huì)議及產(chǎn)品展示等場(chǎng)合,具有較大的研究前景。本視頻展示臺(tái)的設(shè)計(jì)采用三星基于A(yíng)RM9內(nèi)核的S3C2440A芯片,運(yùn)用模塊化的設(shè)計(jì)原則,具有體積小、便攜帶、低功耗、易維護(hù)性等特點(diǎn),整個(gè)系統(tǒng)的設(shè)計(jì)由兩部分構(gòu)成,分別是實(shí)物、圖片、文檔或者過(guò)程等圖像采集部分和VGA傳輸顯示部分。此視頻展示臺(tái)的顯示分辨率為800×600。

      1 視頻展示臺(tái)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

      本便攜式視頻展示臺(tái)采用三星S3C2440A處理器,其CPU的工作頻率可達(dá)400 MHz,可以很好的處理圖像數(shù)據(jù)。它的外設(shè)包括:LCD控制器、CAMIF單元、UART接口、IIC BUS接口、USB主從接口等。系統(tǒng)采用具有極快讀寫(xiě)速度的2片32 MB的SDRAM來(lái)保證linux操作系統(tǒng)的流暢運(yùn)行,采用具有掉電保護(hù)功能的128 MB的Nandflash來(lái)存放操作系統(tǒng)和驅(qū)動(dòng)程序。此外,130萬(wàn)像素的ov9650攝像頭用來(lái)采集視頻圖像數(shù)據(jù),ADV7120將數(shù)字RGB信號(hào)轉(zhuǎn)換成VGA顯示需要的模擬彩色信號(hào),顯示分辨率為800×600。電源管理模塊能夠提供多種供電,包括芯片內(nèi)核電壓采用1.8 V供電,芯片的IO口部分采用3.3 V供電。為了給實(shí)物、文檔、圖片或者演示過(guò)程提供照明光源,在ov9650攝像頭旁邊加了一圈led小燈。下圖1是方案的硬件電路設(shè)計(jì)框圖。

      2 視頻圖像采集模塊

      2.1 視頻采集硬件接口及其分析

      視頻采集模塊是本便攜式視頻展示臺(tái)的一個(gè)重要組塊之一。本模塊采用攝像頭接口控制單元CAMIF和IIC總線(xiàn)來(lái)控制和傳輸OV9650攝像頭采集實(shí)物、圖片、文檔或者過(guò)程等視頻數(shù)據(jù)。選擇CMOS傳感器是因?yàn)樗泄牡汀⒕幊谭奖?、成本低等?yōu)點(diǎn)。其主要引腳及功能描述如下:CAMCLKOUT是CPU輸出的采樣時(shí)鐘,幀同步信號(hào)VSYNC、行同步信號(hào)HREF、像素時(shí)鐘信號(hào)PCLK由OV9650內(nèi)部產(chǎn)生,輸入到S3C2440A芯片中,用于對(duì)圖像采集進(jìn)行控制。攝像頭在每個(gè)PCLK脈沖過(guò)程中依次采集—個(gè)字節(jié)的數(shù)據(jù),直到一幀圖像數(shù)據(jù)采集完成[1]。

      圖1 實(shí)物投影儀硬件電路設(shè)計(jì)框圖Fig.1 Design block diagram of portable video

      攝像頭采集的數(shù)據(jù)經(jīng)過(guò)處理后進(jìn)入幀緩沖區(qū),幀緩沖區(qū)由4個(gè)Ping Pong存貯器組成,因此圖像幀的讀寫(xiě)操作可以同時(shí)進(jìn)行。然后通過(guò)預(yù)覽DMA連到AHB總線(xiàn)上,通過(guò)AHB總線(xiàn)將數(shù)據(jù)送往內(nèi)存。整個(gè)過(guò)程由linux操作系統(tǒng)來(lái)控制,如圖2所示。

      圖2 視頻圖像采集過(guò)程Fig.2 The process of video image

      2.2 視頻采集驅(qū)動(dòng)設(shè)計(jì)

      file_operations結(jié)構(gòu)是Linux2.6內(nèi)核提供的一個(gè)標(biāo)準(zhǔn)化的文件操作實(shí)現(xiàn)接口,定義ov9650_ops為file_operations結(jié)構(gòu)。編寫(xiě)用于上層軟件接口函數(shù):

      通過(guò)這些調(diào)用函數(shù),應(yīng)用程序就可實(shí)現(xiàn)對(duì)CMOS攝像頭的打開(kāi)、關(guān)閉、視頻數(shù)據(jù)的讀取、內(nèi)部寄存器的設(shè)置等進(jìn)行操作。在啟動(dòng)驅(qū)動(dòng)程序時(shí),系統(tǒng)首先調(diào)用已經(jīng)定義的ov9650攝像頭驅(qū)動(dòng)程序的入口函數(shù)init(ov9650_init)對(duì)攝像頭進(jìn)行初始化,初始化的主要內(nèi)容是復(fù)位、通過(guò)IIC配置相關(guān)攝像頭寄存器、攝像頭采樣時(shí)鐘配置以及中斷配置等,然后等待進(jìn)一步命令。應(yīng)用程序使用結(jié)束后,系統(tǒng)調(diào)用已經(jīng)定義的ov9650出口函數(shù) exit(ov9650_exit)退出[2]。

      3 VGA顯示模塊

      3.1 LCD控制器接口和VGA接口描述

      本便攜式視頻展示臺(tái)的另一個(gè)重要組塊是VGA顯示模塊。S3C2440A帶有LCD控制器,可以很方便地控制驅(qū)動(dòng)掃描式接口的TFT顯示。其主要功能引腳有:像素時(shí)鐘信號(hào)引腳VCLK/LCD,場(chǎng)同步信號(hào)引腳VFRAME/VSYNC,行同步信號(hào)引腳 VLINE/HSYNC,VD[23:0]是 LCD數(shù)據(jù)輸出端口。 當(dāng)把VSYNC、HSYNC、VCLOCK等信號(hào)參數(shù)設(shè)定好,并把幀內(nèi)存(frame memory)的地址告訴LCD控制器后,LCD控制器即可通過(guò)DMA自動(dòng)獲取幀內(nèi)存中的圖像數(shù)據(jù)[3]。

      VGA接口使用模擬RGB通道,逐點(diǎn)、逐行掃描。VGA接口信號(hào)為模擬信號(hào),其關(guān)鍵信號(hào)有5個(gè),分別是行同步信號(hào),場(chǎng)同步信號(hào),紅色模擬信號(hào),綠色模擬信號(hào)和籃色模擬信號(hào)。電子槍從左至右,從上而下的進(jìn)行掃描,每行結(jié)束時(shí),用行同步信號(hào)進(jìn)行同步。掃描完所有的行后用場(chǎng)同步信號(hào)進(jìn)行場(chǎng)同步。

      通過(guò)比較LCD掃描式接口時(shí)序和VGA時(shí)序可知,LCD控制器驅(qū)動(dòng)TFT顯示的行場(chǎng)同步信號(hào)時(shí)序和VGA行場(chǎng)同步信號(hào)時(shí)序很像。只是信號(hào)的極性VGA是負(fù)極性,LCD信號(hào)是正極性,這個(gè)通過(guò)調(diào)整Linux內(nèi)核顯示模塊來(lái)調(diào)整LCD的時(shí)序以適應(yīng)SVGA時(shí)序即可。因此,可以利用高性能視頻D/A轉(zhuǎn)換芯片ADV7120將S3C2440A自帶的LCD掃描式接口轉(zhuǎn)換為VGA接口,然后用帶有VGA接口的顯示器顯示。此外,LCD控制器用于控制數(shù)據(jù)信號(hào)的使能的引腳VDEN在D/A轉(zhuǎn)換模塊中可用來(lái)控制信號(hào)轉(zhuǎn)換的使能,LCD控制器的VCLK可用作D/A轉(zhuǎn)換模塊的時(shí)鐘信號(hào)。

      3.2 高性能視頻D/A轉(zhuǎn)換芯片ADV7120

      ADV7120的輸入及控制信號(hào)非常簡(jiǎn)單:3組8位的數(shù)字視頻數(shù)據(jù)輸入端,用以連接LCD控制器的數(shù)據(jù)輸出接口VD[23:0],數(shù)據(jù)輸入端采用標(biāo)準(zhǔn)TTL電平接口;4條視頻控制信號(hào)線(xiàn)包括復(fù)合同步信號(hào)SYNC、消隱信號(hào)BLANK、白電平參考信號(hào)REF WHITE和像素時(shí)鐘信號(hào)CLOCK,外接一個(gè)1.23 V數(shù)模轉(zhuǎn)換參考電壓源和1個(gè)輸出滿(mǎn)度調(diào)節(jié)。

      ADV7120的輸出信號(hào)只有4條:3條模擬RGB信號(hào)和同步參考電流輸出信號(hào)Isync。VGA接口的行場(chǎng)同步信號(hào)和LCD掃描式接口的行場(chǎng)同步信號(hào)是一致的,因此LCD控制器接口中的行場(chǎng)同步掃描信號(hào)HSYNC和VSYNC直接接到VGA接口。LCD控制器和VGA接口是由硬件實(shí)現(xiàn)的兩種接口的電器轉(zhuǎn)接,不需要寫(xiě)任何驅(qū)動(dòng)程序,這是在嵌入式系統(tǒng)平臺(tái)上擴(kuò)張VGA接口最方便的方案[4],也是本便攜式視頻展示臺(tái)體積小,易攜帶性設(shè)計(jì)的基礎(chǔ)。

      3.3 VGA驅(qū)動(dòng)設(shè)計(jì)方案

      3.3.1 LCD幀緩沖設(shè)備驅(qū)動(dòng)結(jié)構(gòu)

      幀緩沖是Linux為顯示設(shè)備提供的一個(gè)接口,它把一些顯示設(shè)備描述成一個(gè)緩沖區(qū),允許應(yīng)用程序通過(guò)FrameBuffer定義好的接口訪(fǎng)問(wèn)這些圖形設(shè)備,而不用去關(guān)心具體的硬件細(xì)節(jié)。對(duì)于幀緩沖設(shè)備而言,只要在顯示緩沖區(qū)與顯示點(diǎn)對(duì)應(yīng)的區(qū)域?qū)懭腩伾?,?duì)應(yīng)的顏色就會(huì)自動(dòng)的在屏幕上顯示。LCD控制器驅(qū)動(dòng)是VGA設(shè)備驅(qū)動(dòng)的核心,是一個(gè)標(biāo)準(zhǔn)的linux2.6內(nèi)核下的framebuffer設(shè)備驅(qū)動(dòng)。在VGA驅(qū)動(dòng)設(shè)計(jì)的過(guò)程中首要的是配置LCD控制器。而在配置LCD控制器中最重要的一步則是幀緩沖區(qū)(FrameBuffer)的指定。因此,驅(qū)動(dòng)幀緩沖是實(shí)現(xiàn)是整個(gè)驅(qū)動(dòng)開(kāi)發(fā)過(guò)程的重點(diǎn)。幀緩沖驅(qū)動(dòng)需要完成的的工作主要有5個(gè)部分:編寫(xiě)初始化函數(shù),編寫(xiě)成員函數(shù),讀寫(xiě),映射,輸入輸出控制。

      1)初始化LCD控制器

      通過(guò)寫(xiě)寄存器,設(shè)置顯示模式和顏色數(shù),然后分配LCD顯示緩沖區(qū)。緩沖區(qū)大小為:點(diǎn)陣行數(shù)×點(diǎn)陣列數(shù)×用于表示一個(gè)像素的比特?cái)?shù)/8。緩沖區(qū)通常分配在大容量的片外SDRAM中,起始地址保存在LCD控制寄存器中。文中采用的LCD顯示方式為800×600,需要分配的顯示緩沖區(qū)為960 KB。最后是初始化一個(gè)fb_info結(jié)構(gòu),填充其中的成員變量,并調(diào)用register_framebuffer( &fb_info),將 fb_info 登記入內(nèi)核[5]。

      2)編寫(xiě)成員函數(shù)

      該函數(shù)主要用于編寫(xiě)fb_info()結(jié)構(gòu)體中指針fb_ops()對(duì)應(yīng)的底層操作函數(shù),主要是3個(gè)函數(shù):

      static int s3c2440fb_get_fix (struct fb_fix_screeninfo*fix,int con, st ruct fb_info 3 info);

      static int s3c2440fb_get_var (struct fb_var_screeninfo*var,int con, st ruct fb_info 3 info);

      static int s3c2440fb_set_var (struct fb_var_screeninfo*var,int con, st ruct fb_info 3 info);

      以上這些函數(shù)都是用來(lái)獲取fb_info()中的成員變量的,當(dāng)應(yīng)用程序調(diào)用ioctl()操作時(shí)將會(huì)調(diào)用這些函數(shù)。

      讀寫(xiě)函數(shù)就是用來(lái)讀寫(xiě)屏幕緩沖區(qū),地址映射操作可以將文件的內(nèi)容映射到用戶(hù)空間,這樣用戶(hù)就可以通過(guò)讀寫(xiě)這段地址來(lái)訪(fǎng)問(wèn)緩沖區(qū)了。輸入輸出操作就是設(shè)備文件ioctl()讀取和設(shè)置顯示設(shè)備的參數(shù),具體的ioctl()的實(shí)現(xiàn)由底層驅(qū)動(dòng)程序來(lái)完成[6]。

      3.3.2 根據(jù)VGA時(shí)序設(shè)定LCD控制器寄存器

      本便攜式視頻展示臺(tái)選擇SVGA顯示,像素時(shí)鐘信號(hào)VCLK為 40 MHz,分辨率為 800x600,幀頻率為 60 Hz,16位真色彩顯示,SVGA時(shí)序如下圖所示。

      根據(jù)圖3、圖4所示 SVGA顯示時(shí)序的特點(diǎn),對(duì)LCD控制器中的控制寄存器進(jìn)行如下配置。

      1)LCDCON1寄存

      CLKVAL:確定VCLK頻率的參數(shù)。公式為VCLK=HCLK/[(CLKVAL+1)x2]. 在 本 設(shè) 計(jì) 中 S3C2440A 的 HCLK=100 MHz,VCLK=40 MHz, 故 需 設(shè) 置 CLKVAL=0.25, 設(shè) 置BPPMODE=0xC,即選擇TFT 16位模式。

      圖3 VGA行數(shù)據(jù)時(shí)序Fig.3 Line timing

      圖4 VGA幀數(shù)據(jù)時(shí)序Fig.4 Frame timing

      2)LCDCON2 寄存器

      VBPD:確定幀同步信號(hào)和幀數(shù)據(jù)傳輸前的時(shí)延,是幀數(shù)據(jù)傳輸前延遲時(shí)間和行同步時(shí)鐘間隔寬度的比值,如圖4所示,VBPD=p/c=0.6 ms/20 μs=30。

      VFPD:確定幀數(shù)據(jù)傳輸完成后到下一幀同步信號(hào)到來(lái)的一段延時(shí),是幀數(shù)據(jù)傳輸后延遲時(shí)間和行同步時(shí)鐘間隔寬度的比值,VFPD=r/c=0.026 ms/20 μs=10。

      LINEVAL:確定顯示的垂直方向大小,LINEVAL=YSIZE-1=599。

      VSPW:確定幀同步時(shí)鐘脈沖寬度,是幀同步信號(hào)時(shí)鐘寬度和行同步時(shí)鐘間隔寬度的比值,VSPW=o/c=0.1 ms/20 μs=5。

      3)LCDCON3 寄存器

      HBPD:確定行同步信號(hào)和行數(shù)據(jù)傳輸前的延時(shí),描述行數(shù)據(jù)傳輸前延遲時(shí)間內(nèi)VCLK脈沖個(gè)數(shù),HBPD=b×VCLK=2.2 μs×40 MHz=88.

      HOZAL:確定顯示的水平方向尺寸。這里HOZAL=XSIZE-1=799。

      HFPD:確定行數(shù)據(jù)傳輸完成后到下一行同步信號(hào)到來(lái)的一段延遲時(shí)間,描述行數(shù)據(jù)傳輸后延遲時(shí)間內(nèi)VCLK脈沖個(gè)數(shù),HFPD=d×VCLK=1 μs×40 MHz=40。

      4)LCDCON4 寄存器

      HSPW:確定行同步時(shí)鐘脈沖寬度。描述行同步脈沖寬度時(shí)間內(nèi) VCLK 脈沖個(gè)數(shù),HSPW=a×VCLK=3.2 μs×40 MHz=128。

      5)LCDCON5 寄存器

      BPP24BL:確定數(shù)據(jù)存儲(chǔ)格式。此處設(shè)置BPP24BL=0x0,即選擇小端模式存放。

      FRM565:確定16位數(shù)據(jù)輸出格式。設(shè)置FRM565=0x1,即選擇5:6:5的輸出格式。

      4 結(jié)束語(yǔ)

      文中根據(jù)市場(chǎng)對(duì)視頻展示臺(tái)的大量需求現(xiàn)狀,提出了基于A(yíng)RM9的S3C2440的便攜式視頻展示臺(tái)的設(shè)計(jì)方案。與用CPLD/FPGA來(lái)實(shí)現(xiàn)VGA顯示的系統(tǒng)相比,本方案節(jié)約成本和資源,且接口電路簡(jiǎn)單,應(yīng)用靈活、可靠。由本方案做成的視頻展示臺(tái)體積小,易于攜帶。本方案經(jīng)過(guò)Linux軟件測(cè)試論證,方案切實(shí)可行,對(duì)實(shí)物、圖片、文檔或者過(guò)程的顯示效果清晰,無(wú)抖動(dòng)。

      [1]OV9650FSL Userps manual 2003[Z].OmniVision Co.Ltd:3220.

      [2]周曉光,潘延濤.基于S3C2440A的嵌入式視頻系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(shù),2006,6(12):84-86.ZHOU Xiao-guang,PAN Yan-tao.Design of embedded video system based on S3C2440A [J].Electronic Measurement Technology,2006,6(12):84-86.

      [3]紀(jì)寧寧,孫靈燕.S3C2440A驅(qū)動(dòng)RGB接口TFT LCD的研究[J].液晶與顯示,2008,1(2):96-100.JI Ning-ning,SUN Ling-yan.Study of TFT LCD about RGB driver of S3C2440[J].Chinese Journal of Liquid Crystals and Displays,2008,1(2):96-100.

      [4]鄭佃好,張紅雨,張洪斌.基于A(yíng)DV7125的嵌入式系統(tǒng)VGA接口設(shè)計(jì)[J].新器件新技術(shù),2011,8(4):37-45.ZHENG Tian-hao,ZHANG Hong-yu,ZHANG Hong-bing.Embedded System VGA Interface Design Based on ADV7125[J].Newproduct&Tech,2011,8(4):37-45.

      [5]韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008.

      [6]劉淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開(kāi)發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.

      猜你喜歡
      展示臺(tái)緩沖區(qū)寄存器
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫(xiě)方法的設(shè)計(jì)與實(shí)現(xiàn)
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      才藝展示臺(tái)
      我看見(jiàn)的
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      才藝展示臺(tái)
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
      電視技術(shù)(2012年1期)2012-06-06 08:13:58
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      手游| 怀安县| 富顺县| 怀安县| 小金县| 易门县| 枣强县| 南华县| 个旧市| 九龙县| 尉犁县| 嵩明县| 昂仁县| 武穴市| 涿鹿县| 德格县| 岳西县| 恭城| 平阴县| 双城市| 老河口市| 德保县| 伊吾县| 成安县| 保德县| 金昌市| 夹江县| 黎川县| 都安| 越西县| 连江县| 长治县| 苍梧县| 秦皇岛市| 武清区| 女性| 灵石县| 福海县| 尼勒克县| 邛崃市| 鹿泉市|