專利名稱:機載電荷耦合相機圖像數據的光纖傳輸和整理方法
技術領域:
本發明涉及一種遙感相機圖像數據的光纖傳輸方法,特別是一種簡單通用的用于電荷耦合(CCD)相機遙感探測系統的光纖傳輸和整理方法。
背景技術:
隨著計算機技術的飛速發展,遙感探測系統開始采用計算機進行控制。但是,遙感探測器前置放大系統極易受到計算機內部的高頻數字信號的干擾,影響CCD相機圖像的信噪比。常用的解決方法是利用光電耦合將前置放大系統與計算機隔離。
光纖是利用光進行通訊的一項新興技術。隨著光纖傳輸技術的日益成熟和平民化,遙感成像系統中越來越多地使用光纖作為首選的傳輸媒介。利用光纖的天然特性,可以避免計算機內部的高頻數字信號通過通訊鏈路耦合入敏感的探測器電路。不僅如此,光纖還可以提供極大的通訊帶寬和速度,也使通訊和傳輸的距離大大加長。
發明內容
本發明的目的在于提供一種簡單通用的用于CCD相機遙感探測系統的光纖傳輸方法。CCD工作時,首先由復位脈沖將移位寄存輸出端的剩余電荷清空,然后在曝光及轉移脈沖控制下,CCD像敏單元轉換光信號,并行轉移到移位寄存器中,最后,轉移信號控制移位寄存器中的電荷信號串行輸出,經A/D轉換后,將模擬CCD圖像數據轉化為數字視頻信號。鑒于CCD的數字圖像數據是一幀一幀的,用光纖來傳輸CCD圖像數據,關鍵在于在發送端將一幀一幀的圖像數據打包,并在接收端正確地恢復一幀一幀的圖像數據,最后將圖像數據進行整理,并正確無誤地傳輸給計算機PCI總線進行存儲和處理。
本發明的技術方案如下根據本發明的一種用于遙感探測系統的CCD成像光纖傳輸電路,包括串并/并串轉換電路、8B/10B編解碼和校驗電路、邏輯可編程器件、成幀器(由邏輯可編程器件編程實現)、數據緩存器件、光纖收發模塊等。其中串并/并串轉換是點對點光纖傳輸必須進行的步驟,8B/10B編碼使得在光纖傳輸出錯時能進行檢測和恢復,邏輯可編程器件用于產生幀同步、字同步信號以及其他時序控制信號,同時,為了便于后續的數據處理,需要由邏輯可編程器件在每幀數據中加上同步頭和序列號。成幀器用于將CCD圖像數據打包后再恢復成一幀一幀的數據,數據緩存器件用于緩存CCD圖像數據并輸出給光纖收發電路,光纖收發模塊用于進行電光/光電轉換組成光纖鏈路。
根據本發明的一種機載CCD相機圖像數據的光纖傳輸和整理方法的步驟如下其中,圖像數據的光纖的發送的步驟主要為1、將CCD圖像進行A/D轉換,變成數字圖像,并緩存在緩存器件中;2、由邏輯可編程器件對每幀數據添加同步頭和序列號;3、如果A/D轉換后位數據數為16位,則將其分為高8位和低8位,并依次輸出給光纖收發電路;如果不夠16位,則以0補充成16位;如果大于16位(比較少見),則將超出16位的位數也變換成8位輸出,不足8位以0補充成8位,高位在前,低位在后;4、將8位并行輸入數據(D0-D7)進行8B/10B編碼,并同時產生控制字,為成幀做準備;5、再轉換為高速差分串行位流,然后送光纖發送模塊,進行電光轉換,通過光纖傳輸;圖像數據的光纖接收的主要步驟為1、由光纖接收模塊進行光電轉換,轉換成PECL高速差分串行位流;2、將高速差分串行位流進行串并轉換和10B/8B解碼,得到8位并行數據流;3、通過控制字判斷收到的并行數據流是CCD圖像數據還是控制字符,并恢復圖像數據為一幀數據;4、通過8B/10B編碼校驗,進行出錯控制;5、將8位并行數據流送入FPGA合并成32位,以充分利用PCI總線;6、把合并后的32位數據流送入緩存器件,為計算機存儲做好準備;
7、使用邏輯可編程器件產生PCI高速數據采集卡所需要的時鐘和幀同步信號,將圖像數據正確采集到計算機存儲系統。
本發明的優點是簡單通用,適用于線陣和面陣CCD圖像數據的光纖傳輸和計算機采集。
圖1為本發明中的光纖發送端數據格式示意圖。
圖2為本發明中的光纖發送端硬件處理框圖。
圖3為本發明中的CPLD程序流程圖。
圖4為本發明中的光纖接收端硬件處理框圖。
圖5為本發明中的整個傳輸成幀過程的狀態轉移圖。
具體實施例方式
下面根據圖1-圖5給出本發明一個較好的實施例,并以長線列三線陣CCD(每個線列包含10200個像元,包含紅、綠、藍三條線列)為例作詳細說明。
CCD模擬圖像數據經過AD轉換(16位量化)后,變為一幀一幀的數字圖像數據,再由可編程器件加上同步頭和序列號。同步頭為每幀圖像數據開始的標志,用有規律的高低電平序列0101010110101010(0X55AA)表示;而序列號則可以用來檢驗漏幀,用16bits無符號整數表示,變化范圍為0~65535,從0遞加到65535后循環。
圖1中一路AD轉換器件1對圖像信號進行A/D轉換后,16位的CCD圖像數據轉換為8位并行數據存入雙口RAM2,并由可編程器件3對每幀數據產生同步頭和序列號,格式為0X55;0XAA;序列號H;序列號L;像素H;像素L(如圖1所示),再進入光纖鏈路4。
8位并行數據進入光纖鏈路4前的整理的硬件處理電路框圖如圖2(共有相同三路CCD信號處理電路,僅畫出一路)所示。用可編程器件3對三路信號進行控制,產生所需要的時序控制信號。圖2中虛框所示的硬件編碼整理單元4’用分立元件或者集成芯片CY7B923或者其它芯片來實現,鎖相環43’產生經由編碼器42’8B/10B編碼后數據流所需的10倍頻高速時鐘。帶有同步頭和序列號的8位并行數據流進入輸入寄存器41’,經編碼器42’所進行的8B/10B編碼具有使光纖傳輸電流平衡和便于檢錯的雙重作用,同時根據編碼控制信號SCD和出錯標記信號SVS將數據編碼為特定的填充控制字符或者有效數據。在時鐘信號的上升沿,SCD信號如果為高電平,8位并行數據編碼為特定的控制字,如果為低電平,8位并行輸入數據編碼為有效數據;同時,如果SVS信號為高電平,由SCD狀態和8位并行數據決定編碼方式,若為低電平,表明發生錯誤,8位并行輸入數據被忽略,編碼為出錯控制字發送到接收端。光纖發送模塊5的功能是將高速串行數據流PECL轉換為光信號,并經光纖傳輸到圖4所示的光電轉換模塊6。
在光纖發送端,可編程邏輯器件(CPLD)程序100的流程如圖3所示。ENA信號控制輸入端的數據編碼輸出或者插入空字符編碼(1,插入空字符;0,編碼輸出),OEL控制雙口RAM的輸出(1,不能輸出;0,輸出);RWL為雙口RAM讀寫控制信號(1,讀有效;0,寫有效);Counter為16位計數器,表示每幀的像元數。
上述程序100啟動后,執行步驟1000,CPLD程序100初始化,雙口RAM的地址為0,計數=1,接著執行步驟1001,判斷計數=1嗎?若計數不等1,執行步驟1003;若計數=1,則執行步驟1002,讀OEL=1,EVA=1,RWL=0,寫0X55到雙口RAM,雙口RAM地址加1,計數次數加1,執行步驟1003,判斷計數=2嗎?若不等于2,執行步驟1005;若等于2,則執行步驟1004,讀OEL=1,ENA=1,RWL=0,寫0X55到雙口RAM,雙口RAM地址加1,計數次數加1,執行步驟1005,判斷計數次數是否等于3,若不為3,執行步驟1007;若等于3,則執行步驟1006,當狀態OEL=1,ENA=1,RWL=0,便對高8位計數,送雙口RAM,雙口RAM地址加1,計數次數加1,執行步驟1007,判斷計數次數是否等于4,若不等于4,執行步驟1009;若等于4,則執行步驟1008,當狀態DEL=1,ENA=1,RWL=0,計數低8位送到雙口RAM,雙口RAM地址清零,執行步驟1009;判斷是否5≤計數次數≤20408?若為否,執行步驟10011;若為真,則執行步驟10010,當狀態OEL=0,ENA=0,RWC=1,AD數據輸出到光纖,雙口RAM地址加1,計數次數加1,執行步驟10011,判斷Counter=others?若為否,執行步驟10013,程序結束;若為真,則執行步驟10012,當狀態DEL=1,ENA=1,雙口RAM地址清零,計數清零,執行步驟10013,程序結束。
光纖接收端數據處理的框圖見圖4。光信號經光電轉換模塊5后成為高速差分串行位流,再串并轉換和10B/8B解碼為8位并行數據。如圖4中的虛框所示,數據硬件整理解碼單元7可以通過分立元件或者集成芯片(如CY7B933)來實現。8位數據通過兩種方式進入現場可編程陣列(FPGA)9,一種是直接和FPGA相連,另外一種是先經同步先進先出器件(FIFO)8(可以用FPGA的內部FIFO或者外接獨立的FIFO實現)將控制字濾掉,有效數據存到FIF08。第一種實現方式的時序控制略微復雜。經FPGA9經8位數據整理成32位的數據流(也可以加上同步頭和序列號后再整理以便檢驗漏幀),再發送給FPGA9的內部FIFO(實現片上系統,減少布線,也可以用外部FIFO),將數據緩存后變為連續的數據流輸出到計算機10的PCI總線。FPGA 9還負責產生FIFO的行讀使能信號和字時鐘信號、PCI數據采集卡101的行同步信號以及外部觸發字允許讀時鐘信號,將數據讀出FIFO的同時寫入PCI總線,通過DMA方式將數據存入SCSI硬盤102(這里不詳述)。
如圖5所示FPGA用同步有限狀態機實現時序控制和數據轉移,一共有14個狀態。附表1說明數據整理狀態轉換的過程。
表1數據整理狀態轉換
還要加上狀態S0和S1,S0進行初始化工作,對FIFO和寄存器、計數器初始化;在系統上電后,首先進入S0狀態,接著進入S1狀態。S1狀態尋找一行圖像數據的同步頭,開始一行圖像數據記錄和整理。S13狀態為便于調試加入的等待狀態。
其中用到3個計數器ReframeCounter,TotalFrameCounter,TotalPixelCounter。ReframeCounter為成幀過程(S1狀態)中的計數器。TotalFrameCounter為接收到的每行圖像數據加上序列號,計數范圍0~65535,16bit,循環計數。TotalPixelCounter為接收到的圖像數據行計數,范圍0~20404,15bit,滿一行后清零。
狀態機狀態轉移受多個輸入信號和當前狀態的控制。輸入控制信號包括出錯指示信號RVS、接收準備好信號RDY、控制字指示符SCD。其中出錯指示優先級最高,如果出錯,馬上丟棄此行數據,進入S1狀態重新成幀。狀態轉移還受計數器ReframeCounter和TotalFrameCounter控制,前者決定是否成幀成功,開始新的一行;后者決定一行是否結束;狀態機輸出信號包括數據輸出,FIFO寫允許信號,成幀控制信號RF。
權利要求
1.一種機載CCD相機圖像數據的光纖傳輸和整理方法,包括a.圖像數據的光纖發送步驟和b.圖像數據的光纖接收步驟,其中a.圖像數據的光纖發送步驟,主要有a1.將CCD圖像進行A/D轉換變成數字圖像數據,并緩存在存儲器件中;a2.由邏輯可編程器件對每幀數據添加同步頭和序列號;a3.如果A/D轉換后數據位數為16位,則將其分成高8位和低8位,并依次輸出給光纖收發電路;如果數據位數不夠16位,則以0填充成16位,再分成高8位和低8位并依次輸出給光纖收發電路;如果大于16位,則將超出16位的位數也變換成8位輸出,不足8位以0補充成8位,高位在前,低位在后;a4.將8位并行輸入數據進行8B/10B編碼,并同時產生控制字,為成幀做準備;a5.再將經8B/10B編碼的并行數據轉換成高速差分串行位流,然后送光纖發送模塊,進行電光轉換,通過光纖傳輸給光纖接收模塊;b.光纖接收步驟主要有b1.由光纖接收模塊接收光纖傳送的光信號,進行光電轉換成高速差分串行位流;b2.對電高速差分串行位流進行串并轉換和10B/8B解碼,得到8位并行數據流;b3.通過控制字判斷收到的并行數據流是CCD圖像數據還是控制字符,恢復圖像數據為一幀數據;b4.通過8B/10B編碼校驗,進行出錯控制;b5.將8位并行數據流送入FPGA合并成32位數據流;b6.把合并后的32位數據流存入緩存器件,為計算機存儲做好準備;b7.使用邏輯可編程器件產生PCI高速數據采集卡所需要的時鐘和幀同步信號,將圖像數據正確采集到計算機存儲系統。
2.根據權利要求1所述的機載CCD相機圖像數據的光纖傳輸和整理方法,其特征在于,步驟a1中所說的緩存數字圖像數據的緩存器件可以是FIFO器件或雙口RAM器件。
3.根據權利要求1所述的機載CCD相機圖像數據的光纖傳輸和整理方法,其特征在于,所說步驟b5中,將8位并行數據送入FPGA合并成32位數據流,其實現方式有兩種,一是直接送FPGA,另一是先經同步FIFO將控制字濾掉,再將有效數據存到FIFO器件。
全文摘要
一種CCD相機圖像數據的光纖傳輸和整理方法,其步驟結合CCD成像光纖傳輸電路進行,以串并/并串轉換電路實施點對點光纖傳輸,8B/10B編碼電路使得光纖傳輸出錯時能進行檢測和恢復,用邏輯可編程器件產生幀同步、字同步信號及其它時序控制信號,并在每幀數據上加上同步頭和序列號,將CCD圖像數據打包后傳輸并在接收端恢復成一幀一幀的數據,使用光纖收發模塊進行電光/光電轉換組成光纖鏈路。本發明方法適用于線陣和面陣CCD圖像數據的光纖傳輸和計算機采集。
文檔編號H04N7/22GK1753492SQ20051003008
公開日2006年3月29日 申請日期2005年9月28日 優先權日2005年9月28日
發明者張冰娜, 舒嶸, 徐衛明, 胡培新, 馬慶軍 申請人:中國科學院上海技術物理研究所