新聞中心

        EEPW首頁 > 設計應用 > AL700在視頻切換中的應用

        AL700在視頻切換中的應用

        ——
        作者:上海理工大學光電學院 杜娟娟 張鳳登 時間:2007-01-26 來源:《世界電子元器件》 收藏

        al700功能框圖及介紹

        本文引用地址:http://www.104case.com/article/20586.htm

        圖1是al700的功能框圖,由圖可知al700含有以下主要功能模塊:
        ⑴解碼器接口:al700含有四個解碼器接口,可以同時接收4路8位的itu-r-601/656的4∶2∶2數據格式。寄存器03h<0>確定系統的制式,寄存器04h控制同步信號、數據格式等,通過對它編程可以支持不同類型的視頻解碼器。04h<2,1>設置成00,那么輸入數據的次序是cb y cr y,設置為01,輸入次序是 cr y cb y ;設置為10,輸入次序是y cb cr y ,設置為11,輸入次序為cr y cr y cb。四個解碼器由同一組內部寄存器控制,所以應用中最好選用同一種視頻解碼器。

        ⑵解碼復用控制器:al700允許四路中的兩路共用一個解碼器,當寄存器08h<4>設置為1 ,解碼復用控制器通臩w_a和sw_b輸出控制信號給解碼器,使得a路與c路分時使用同一解碼器,b路與d路分時使用同一解碼器。

        ⑶編碼輸出接口:al700支持模擬輸出和數字輸出,模擬輸出是通過選用內部編碼器實現的,輸出信號包括cvbs和s-video;數字輸出包括8位itu-r-601/656 4∶2∶2格式和16位itu-r-601 4∶2∶2格式,數字輸出可以外接tv編碼器得到模擬信號。寄存器18h<0>為0使用內部tv編碼器,為1則外接tv編碼器。使用內部編碼器,不影響數字輸出,但在內部tv編碼時y的采樣率在pal制式下是17.734mhz,在ntsc制式下是14.318mhz,而不是ccir標準的13.5mhz,將使圖像的水平尺寸變得不標準。寄存器04h<6:5>四種不同的設置數字輸出的分量cb y cr y就有不同的輸出次序,具體設置格式與輸入一樣。通過對內部寄存器的編程,al700支持多種外接tv編碼器。



        ⑷主機接口:al700通過該接口與主機通訊,在本應用中我們選用at89c52作為控制al700的主機。經由這個接口,主機對al700的寄存器進行讀和寫操作。al700支持i2c總線協議,這一協議規定向總線傳送數據時為發送器,從總線接受數據時為接受器,在這個控制過程中,控制傳輸的器件是主機,而被控制的器件則為從機,時序方面的規定不在此贅述。al700也支持8位數據的并行傳輸,引腳sp-sel為高時是i2c傳輸模式,為低為并行傳輸模式。并行傳輸時序如圖2和圖3所示。h_wrb是時鐘信號,在它的上升沿進行讀或寫的操作。h_bus(7:0)是數據總線,h-denb為高說明傳輸的是寄存器的地址,低說明傳輸的是數據,h_rdb高說明主機在進行寫操作,低說明在進行讀操作。

        ⑸圖像控制器:這個由20 個內部寄存器共同控制的功能塊是al700的核心所在。al700支持四分屏和滿屏顯示,編程寄存器19h,輸出畫面就可以在兩者之間切換。圖像在屏幕上的顯示位置和其他性質都可以編程,比如寄存器17h-1fh主要是對視頻輸出數據格式、顯示模式、圖像有無邊界、邊界寬度、邊界閃爍與否、顯示的水平起始位置和垂直起始位置等顯示性質的說明,這些說明同時作用于四路圖像;08h-0fh用于視頻捕獲控制,設置捕獲圖像的水平和垂直起始位置,水平位置的說明以像素為單位,垂直位置的說明以行為單位。另外,每個通道也有自己的畫面屬性配置寄存器對該通道邊界閃爍使能、邊界顏色等進行控制,寄存器10h-16h完成這些功能。

        ⑹運動檢測:運動檢測主要用于vcr的四分屏顯示中。在四分屏和全屏顯示下,al700還可以對斷頻進行檢測。在中斷沒有被屏蔽的情況下,如果視頻傳輸出現中斷,將通過引腳intr產生中斷,寄存器03h<4>是1則為高電平觸發,0則為低電平觸發。

        ⑺層疊控制: al700內嵌1k-byte的context ram和4k-byte的font ram。支持內部和外部兩種osd(在屏顯示),實現在輸出上層疊控制菜單、文本或標題等功能。內部osd有兩種工作模式:1-byte模式和2-byte模式,1-byte模式在碼流中只對字符編碼進行描述,2-byte模式除對字符編碼還對字符的其他性質如閃爍、背景色、前景色做了說明,不管是哪種模式都可以有兩個獨立的顯示窗口osd1和osd2,兩者疊加的時候osd1居上。通過al700提供了32個控制寄存器可以對osd進行靈活編程。

        ⑻sdrm接口:該芯片支持1m 16或4m 16的同步動態隨機存儲器。猝發讀寫模式下,其讀寫時間為9ns。通過對寄存器80h和81h的編程可以對sdrm各項控制參數進行設置。


        視頻切換硬件電路的設計實現

        本設計選用at89c52作為al700的主機控制。現場信號的ad轉換及視頻數據格式轉換由philips公司的9位視頻處理芯片saa7113a完成,四路輸入畫面性質、通道切換等控制功能通過對al700的寄存器編程來完成。圖4 為本設計中al700的硬件電路框圖。


        軟件實現

        在對al700的軟件編程上,采用framklinc51高級語言編寫,它可以對硬件進行操作,便于改進和補充,具有很強的可讀性、可靠性、結構性,能給用戶提供高質量的轉換代碼。程序從功能上分為4個主要部分:主控程序;初始化子程序;中斷服務子程序。主控程序流程圖如圖5 所示。

        主控程序是整個程序的主干,在完成單片機的上電自檢、ram和sfr的初始化之后,主程序主要工作在循環狀態,不斷查詢中斷狀態標志,發現中斷后轉去執行相應的操作。中斷子程序擁有最高的中斷優先級,響應中斷之后,首先判斷指令要進行的操作,找出相應的控制目標,再對其進行相應的控制操作。就al700的編程而言,不論是初始化還是切換控制功能的完成,主要是對其寄存器的寫和讀操作,下面給出并行傳輸模式下寄存器讀寫的子程序清單。

        void para_setreg(byte index, byte value) //通過并行口寫寄存器
        {
        h_rdb_p=1; //主機處在寫狀態
        para_setindex(index); //送寄嫫韉刂?br> para_setvalue(value); //送待寫數據
        h_bus=0xff;
        h_denb_p=1;
        }
        byte para_getreg(byte index) //讀寄存器
        {
        byte value;
        h_rdb_p=0;
        para_setindex(index);
        value=para_getvalue(); //讀出寄存器中的數據
        h_bus=0xff;
        return value;
        }
        void para_setvalue(byte value)
        {
        h_wrb_p=0;
        h_denb_p=0;
        _nop_();
        _nop_();
        h_bus=value;
        h_wrb_p=1;
        }
        byte para_getvalue(void)
        {
        h_wrb_p=0;
        h_denb_p=0;
        h_bus=0xff;
        h_wrb_p=1;
        return h_bus;
        }
        void para_setindex(byte index)
        {
        h_wrb_p=0;
        h_denb_p=1;
        _nop_();
        _nop_();
        h_bus=index;
        h_wrb_p=1;
        }



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 同德县| 垦利县| 伽师县| 眉山市| 乌鲁木齐县| 民权县| 孙吴县| 曲阜市| 福安市| 黑山县| 双流县| 香港 | 金溪县| 小金县| 台州市| 九龙县| 长治市| 永寿县| 克拉玛依市| 靖宇县| SHOW| 垣曲县| 探索| 荃湾区| 汝城县| 青浦区| 连南| 陆川县| 庆安县| 台南市| 潢川县| 交城县| 葵青区| 太和县| 长兴县| 无极县| 香格里拉县| 马鞍山市| 江津市| 神木县| 淳安县|