新聞中心

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

AL700在視頻切換中的應用

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

al700功能框圖及介紹

本文引用地址:http://butianyuan.cn/article/20586.htm

圖1是al700的功能框圖,由圖可知al700含有以下主要功能模塊:
⑴解碼器接口:al700含有四個解碼器接口,可以同時接收4路8位的itu-r-601/656的4∶2∶2數(shù)據(jù)格式。寄存器03h<0>確定系統(tǒng)的制式,寄存器04h控制同步信號、數(shù)據(jù)格式等,通過對它編程可以支持不同類型的視頻解碼器。04h<2,1>設置成00,那么輸入數(shù)據(jù)的次序是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支持模擬輸出和數(shù)字輸出,模擬輸出是通過選用內部編碼器實現(xiàn)的,輸出信號包括cvbs和s-video;數(shù)字輸出包括8位itu-r-601/656 4∶2∶2格式和16位itu-r-601 4∶2∶2格式,數(shù)字輸出可以外接tv編碼器得到模擬信號。寄存器18h<0>為0使用內部tv編碼器,為1則外接tv編碼器。使用內部編碼器,不影響數(shù)字輸出,但在內部tv編碼時y的采樣率在pal制式下是17.734mhz,在ntsc制式下是14.318mhz,而不是ccir標準的13.5mhz,將使圖像的水平尺寸變得不標準。寄存器04h<6:5>四種不同的設置數(shù)字輸出的分量cb y cr y就有不同的輸出次序,具體設置格式與輸入一樣。通過對內部寄存器的編程,al700支持多種外接tv編碼器。



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

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

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

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

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


視頻切換硬件電路的設計實現(xiàn)

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


軟件實現(xiàn)

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

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

void para_setreg(byte index, byte value) //通過并行口寫寄存器
{
h_rdb_p=1; //主機處在寫狀態(tài)
para_setindex(index); //送寄嫫韉刂?br> para_setvalue(value); //送待寫數(shù)據(jù)
h_bus=0xff;
h_denb_p=1;
}
byte para_getreg(byte index) //讀寄存器
{
byte value;
h_rdb_p=0;
para_setindex(index);
value=para_getvalue(); //讀出寄存器中的數(shù)據(jù)
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;
}



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉