文獻標識碼: A
文章編號: 0258-7998(2011)11-0055-03
為航空攝影測量系統,設計了一個預處理系統以實現高分辨率航測相機與記錄系統及,機上主控機數傳系統之間的通信。在這個預處理系統中,要求接收CCD相機送來的數字視頻信號,并對相機數據處理(合成、壓縮、緩存)后經視頻編碼轉變為標準CCIR模擬視頻信號,傳送到機上傳輸系統。同時要求接收地面的控制信號,對機上電子系統進行遠程遙控,實現各串口的通信。并且需要采集機上光機及電子系統各部分溫度數據,實現在高空飛行中的溫檢及溫控。由于系統功能復雜,預處理系統的設計對整個航測系統起著重要的作用。
1 預處理系統設計模塊
本系統主要由以下部分組成:
(1)航測CCD相機:相機選用高分辨率2 K×2 K航測CCD相機。
(2)預處理系統:實現高分辨率航測CCD相機與記錄系統及機上主控機數傳系統之間的通信。
(3)記錄系統:實現對航測CCD相機數據的高速實時記錄。
(4)電源:供給各系統所需電壓。
其中,預處理系統部分是整個航測系統設計的關鍵。它主要由相機數據處理和控制分系統兩部分組成。相機數據處理部分需要接收航測相機送來的圖像數據,分別實現與記錄系統和機上主控機數傳系統間的數據通信。由于CCD相機輸出為兩路數據,所以首先需要將CCD相機的輸出數據送入FPGA進行數據合成。合成后的數據再分兩路輸出:一路送入記錄系統對數據進行記錄;另一路進行數據壓縮,壓縮后的數據送到緩存器保存,然后經過視頻編碼,轉換為CCIR標準模擬視頻信號,送到機上傳輸系統,從而完成對CCD相機圖像數據的處理。
同時,為了實現相機數據與各分系統之間的串口通信、控制命令及電壓轉換等功能,需要設計一個控制分系統,主要完成以下功能:
(1)與各分系統之間的串口通信:與機上主控機數傳系統的串口通信(RS422接口);與記錄分系統的串口通信(RS232接口)用于實現記錄控制和附加參數;與航測相機的串口通信(為LVDS接口),用于實現對相機的控制;接收GPS參數(為RS232接口)。
(2)在高空飛行中對機上光機及電子系統各部分進行溫度檢測,從而實現加溫控制。
(3)電源部分:接收機上28 V直流輸入,轉換成CCD相機工作電源+12 V,信號預處理及控制系統電源+5 V、記錄系統及硬盤+12 V和5 V,加溫電源直接用機上28 V。
預處理系統設計模塊如圖1所示。
2 預處理系統設計方案
由上述系統設計模塊,可以確定整個系統設計方案如下:
相機數據處理部分實現如下流程:
(1)首先通過外同步時鐘以及行、場時鐘信號順序讀入圖像數據,并將送來的數據信號(接口為Cameralink)經過專用解碼芯片轉換為TTL信號。
(2)由于轉換后的TTL信號數據為兩路12 bit,將其送入FPGA進行數據合成,合成后的數據分兩路輸出:一路直接變換為LVDS信號送記錄系統,采用抽幀方式,記錄幀頻約1幀/s;另一路經過壓縮、緩存、視頻編碼后轉換為CCIR模擬視頻信號送入機上傳輸系統。
(3)對合成后的數據進行壓縮: 壓縮方式可以是Bin方式、直接抽點或局部選擇等,本文選用Bin方式。
(4)由于相機的幀頻與最終輸出的模擬視頻信號的幀頻不一致,所以首先需要將壓縮后的數據送入靜態存儲器(SRAM)進行緩存。采用兩塊SRAM乒乓緩存的方式,很好地完成了對于海量連續的高速數據流CCD相機圖像數據的無縫緩沖和處理。
(5)對緩存后的輸出數據進行視頻編碼轉換為CCIR模擬視頻信號送入機上傳輸系統。
(6)當下一幀CCD控制信號有效時,返回(1)。
控制分系統部分:
主要功能之一是實現與各分系統之間的串口通信。選用AT89LS51單片機外加1個四串口擴展芯片ST16C554實現航測相機與各分系統之間的串口通信。AT89LS51是美國ATMEL公司生產的低功耗、高性能CMOS8 bit單片機,可靈活地實現在線系統編程;帶有一個全雙工串型通信口,在本系統中用于實現與機上主控機數傳系統的通信。1片串口擴展芯片ST16C554分別實現與記錄分系統、相機和GPS信息的串口通信。具體分配為:擴展后的2個串口用于記錄系統:一個作為記錄控制命令使用,另一個專門用來發送附加信息,兩串口均為RS232接口。同時一個串口用于接收GPS信息,接口形式為RS232。FPGA 的工作模式由單片機實現,可在地面進行遙控。
在高空飛行中,加溫是一個很重要也很關鍵的問題。為實現對機上光機及電子系統各部分進行溫度檢測,本設計采用Dallas的DS18B20串行輸出數字測溫芯片,可以多路并聯,只由單片機一位I/O口就可以實現全部的控制和溫度采集,有很強的擴展能力。
整個預處理系統結構框圖如圖2所示。
3 預處理系統的具體實現
3.1 I2C總線原理
目前許多視頻編、解碼芯片支持I2C總線通信協議, I2C總線是PHILIPS公司開發的一種簡單、雙向二線制同步串行總線。它只需要兩根線:串行數據線(SDA)和串行時鐘線(SCL)即可使連接于總線上的器件之間實現信息傳送,同時可通過對器件進行軟件尋址,而不是對硬件進行片選尋址的方式來節約通信線數目,從而減少了硬件所占空間。I2C總線采用8 bit、雙向串行數據傳送方式,在發送器和接收器之間進行雙向傳送,標準傳送速率為100 KB/s,快速方式下可達400 KB/s。
3.2 I2C總線傳輸格式
I2C總線傳輸過程由一個起始條件來起動。起始條件產生后,總線進入“忙”狀態。開始傳輸一條包含一個地址和許多數據字節的信息。I2C的信息是通過終止條件或一個重復起始條件連續傳輸。終止條件將釋放主機的總線控制權限。而重復起始條件用來實現多于一條的來自同種或不同器件的信息傳輸,但不改變主機權限。終止和重復起始條件只在主機模式下產生。數據和地址傳輸時,8 bit為1 B,高位在前。在緊跟數據字節的第9個時鐘脈沖內,接收器必須向發送器發送一位應答位。從機可以延長時鐘脈沖的時間(出于時序的原因)。起始條件后跟隨一個7 bit的地址和1 bit的R/W方向位。I2C總線傳輸格式如圖3所示。
圖3中S為重復起始條件,SLV_W為從機地址和寫方向位,A為最后一個字節的應答,SLV_R為從機地址和讀方向位,N為最后一個字節無應答,SUB為子地址,P為終止條件,D1……Dn 為數據字節塊。
3.3 ADV7300A與AT89LS51的I2C數據通信
選用的視頻編碼芯片是ANALOG公司的ADV7300A。ADV7300A是ANALOG公司推出的內含12 bit DAC的數字視頻編碼器。它集D/A和編碼于一身,并可以對輸入的多種格式數據(數據最高分辨率為10 bit)進行編碼及D/A轉換,以輸出PAL制式、NTSC制式的復合視頻信號(CVBS)或S-Video方式的Y/C分量信號和復合全電視信號。
為實現ADV7300A與單片機之間的數據通信,選用ADV7300A作為從設備,AT89LS51作為主設備。雖然AT89LS51單片機不支持I2C總線結構,但仍然可以利用單片微處理器的普通I/O口來模擬I2C總線,通過軟件編程來實現,但注意一定要嚴格按I2C總線的時序進行。首先從設備向主設備發送一個地址字節,之后主設備則發一個應答信號,從設備接到應答后,再發給主設備一個控制字節,當主設備接到控制字節后,再發給從設備一個應答。之后主、從設備間就可進行數據通信了。ADV7300A與89LS51間通信工作流程圖如圖4所示。
本系統的設計要點在于對CCD相機數據的合成、壓縮、以及視頻編碼芯片和單片機之間的I2C數據通信。整個系統采用XILINX公司SPARTAN2E系列FPGA實現相機數據處理部分,并采用AT89LS51單片機和串口擴展芯片實現與各分系統間的串口通信及溫檢溫控。目前該系統已經通過驗證,很好地滿足了航空攝影測量系統的需求,具有很高的應用價值。
參考文獻
[1] 何立民.I2C總線應用系統設計[M].北京:北京航天航空大學出版社,1995.
[2] 劉玉璽,湯楠.MAX517與單片機的I2C總線數據通信[J-OL].http:www.//.21ic.com. 2003-07-01.