一種用於SAR成像系統的CRC32校驗方法與流程
2023-10-07 03:02:24
本發明屬於數位訊號處理領域,具體涉及一種CRC32校驗方法,尤其涉及一種應用於SAR成像雷達中的CRC32校驗方法。
背景技術:
數據傳輸系統要求數據能夠準確無誤地傳遞。常用的方法之一就是在發送端的數據後面加上循環冗餘校驗(CRC)碼以構成幀校驗序列(Fr ame Check Sequence,FCS),在接收端通過數據的CRC校驗碼來判斷數據的有效性。
然而,隨著數據傳輸速率的提高,CRC校驗碼的生成時延成為制約數據高速傳輸的一個瓶頸。高效、快速的CRC算法實時實現已成為高速數據傳輸亟待解決的問題。
技術實現要素:
針對上述問題,本發明提供一種用於SAR成像系統的CRC32校驗方法,結合SAR成像系統現有硬體架構以及數據處理流程,利用主控單元數據中轉高性能FPGA與控制模塊DSP配合完成CRC32校驗實時實現,使得CRC32校驗在系統中實現流水處理。通過利用DSP內外部存儲資源豐富以及SRIO總線傳輸速度高等特點,用於緩存大數據量SAR圖像數據,利用FPGA全並行流水運行特點,結合系統數據流處理要求,合理設計流水線和處理速率,優化處理架構,大大減少了系統內部緩存的使用,同時,相對於DSP等串行器件實現該校驗方法,大大提升了運行速率和效率,該方法的實現方法和設計思路可廣泛應用於各種數據處理系統中。
一種用於SAR成像系統的CRC32校驗方法,所述方法包括:
步驟1、數據中轉模塊FPGA接收處理單元傳輸過來的SAR圖像數據,通過SRIO總線發送至控制模塊DSP,並緩存至存儲器DDR3中;
步驟2、控制模塊DSP從存儲器DDR3中讀取緩存的SAR圖像數據,然後將所述SAR圖像數據按預定的數據幀格式打包,並將打包好的SAR圖像數據以數據包的形式逐個發送給數據中轉模塊FPGA;
步驟3、數據中轉模塊FPGA檢測到控制模塊DSP發送的數據包後,按預定的數據發送速率向圖傳系統發送SAR圖像數據包,用所述預定的數據發送速率3倍的速率進行CRC32校驗值的計算,同時將計算得到的CRC32校驗值和SAR圖像數據包一起發送給圖傳系統;
步驟4、數據中轉模塊FPGA按三次重傳機制向圖傳系統發送SAR圖像數據包和CRC32校驗值;所述圖傳系統在接收SAR圖像數據包的同時,使用接收到的CRC32校驗值進行CRC32校驗。
進一步地,所述步驟2中,控制模塊DSP按數據幀格式將SAR圖像數據打包,並將打包好的SAR圖像數據以數據包的形式逐個發送給數據中轉模塊FPGA具體如下:
控制模塊DSP從緩存DDR3中讀取出SAR圖像數據,並按預定的數據幀格式將SAR圖像數據打包,通過SRIO總線將打好包的數據按數據包的形式逐包發送給數據中轉模塊FPGA。
進一步地,所述步驟2還包括:數據中轉模塊FPGA用內部FIFO緩存所述圖像數據包。
進一步地,所述步驟2還包括:數據中轉模塊FPGA通過外部中斷的方式通知控制模塊DSP是否已完成當前圖像數據包的接收,以及控制模塊DSP是否可以再發送數據包。
進一步地,所述步驟3還包括:數據中轉模塊FPGA檢測到緩存FIFO為非空時,則開始讀取圖像數據進行CRC32校驗值的計算。
進一步地,CRC32校驗值的計算的具體如下:
步驟3.1、首先對CRC32校驗值賦予初值0xFFFFFFFF;令i=1;
步驟3.2、讀取出1個8bit圖像數據與CRC32校驗值按位異或得到值Ai,取出Ai的低8位作為CRC32查詢表的地址,將該地址輸入CRC32查詢表進行查詢得到值Bi;將此時的CRC32校驗值右移8位,與值Bi按位異或運算得值Ci;
步驟3.3、判斷此時讀取出的1個8bit圖像數據是否為圖像數據包裡面的最後一個數據;
若不是,則將值Ci的值作為CRC32校驗值,令inew=i+1,i=inew;返回步驟3.2;
若是,則將值Ci的值與0xFFFFFFFF進行異或運算後得到的值作為該數據包的CRC32校驗值。
進一步地,在步驟4中,數據中轉模塊FPGA按三次重傳機制向圖傳系統發送圖像數據和CRC32校驗結果的過程步驟具體如下:
數據中轉模塊FPGA向圖傳系統發送圖像數據包的同時也進行CRC32校驗值的計算;數據中轉模塊FPGA將計算得到的CRC32校驗值按預定的圖像幀格式放在圖像幀最後,並發送給圖傳系統,圖傳系統接收圖像數據包的同時,也進行CRC32校驗。
進一步地,在步驟4還包括:若校驗結果與接收的校驗值一致,則此圖像數據包無誤;若不一致,則通知數據中轉模塊FPGA,重傳該圖像數據包;若同一圖像數據包重傳三次,則此圖像數據包傳輸失敗,數據中轉模塊FPGA將此傳輸失敗標識數據上報給中控系統。
有益效果:
本發明的技術方案通過查找表來實現任意幀數據CRC32校驗實時運算,用FPGA全並行流水運行和邏輯運算能力強的特點,合理設計流水處理,優化處理架構,相對於DSP等串行執行器件,大大提升了運行速率和效率,並設計了一種三次重傳機制,確保SAR圖像數據傳輸穩定可靠,可廣泛應用於各種數據處理系統中。
附圖說明
圖1為SAR成像系統中CRC32校驗的系統框圖;
圖2為利用FPGA實現CRC32校驗的流程圖。
具體實施方式
本發明以查找表為基礎,結合現有SAR成像系統硬體資源,利用DSP和FPGA配合完成一種實時的任意幀數據格式CRC32校驗。該方法利用DSP外部存儲資源豐富,與FPGA的SRIO總線傳輸速率較高等優點,用DSP緩存圖像數據,並完成分包功能,利用FPGA全並行流水運行特點,合理設計流水處理,優化處理架構,相對於DSP等串行執行器件,大大提升了運行速率和效率,本發明可廣泛應用於各種數據處理系統中。
本發明具體實施方式中的方法包括:步驟1:控單元數據中轉模塊FPGA接收到處理單元傳輸過來的SAR圖像數據,通過SRIO發送至主控單元控制模塊DSP,並緩存至DDR3中;步驟2:主控單元控制模塊DSP按數據幀格式將SAR圖像數據打包,並按包發送給數據中轉模塊FPGA,然後等待數據中轉模塊FPGA發送完成中斷,便於發送第二包圖像幀數據;步驟3:主控單元數據中轉模塊FPGA檢測到控制模塊DSP發送的圖像數據後,按數據發送速率發送SAR圖像數據,同時,用高於數據發送速度4倍的時鐘進行CRC32校驗;步驟4:主控單元數據中轉模塊FPGA按三次重傳機制向圖傳系統發送圖像數據和CRC32校驗結果。
下面就結合圖1到圖2對上述方法中的各步驟進行具體介紹。
以下將參照圖1-2對本發明的具體技術方案進行說明。
本發明提出了一種用於SAR成像系統的CRC32校驗方法。
根據本發明提出的一種用於SAR成像系統的CRC32校驗方法,實現框圖如圖1所示,其流程如圖2所示,其具體步驟如下:
步驟1:數據中轉模塊FPGA接收處理單元傳輸過來的SAR圖像數據,通過SRIO總線發送至控制模塊DSP,並緩存至存儲器DDR3中。
具體描述如下:
處理單元完成SAR成像處理後,將SAR圖像數據通過GTX總線發送給主控單元數據中轉模塊FPGA(V6),數據中轉模塊FPGA(V6)將圖像數據通過SRIO總線傳輸給控制模塊DSP,並緩存至DDR3中。
步驟2:控制模塊DSP從存儲器DDR3中讀取緩存的SAR圖像數據,然後將所述SAR圖像數據按預定的數據幀格式打包,並將打包好的SAR圖像數據以數據包的形式逐個發送給數據中轉模塊FPGA。
具體描述如下:
主控單元控制模塊DSP從DDR3中取出SAR圖像數據,並按預定的數據幀格式(其中,所述預定的數據幀格式可以是本領域慣用的任何一種幀格式)將SAR圖像數據打包,通過SRIO總線將打好包的數據按數據包的形式逐包發送給數據中轉模塊FPGA(V6)。數據中轉模塊FPGA用內部FIFO緩存所述圖像數據包,便於進行CRC32校驗和發送數據;數據中轉模塊FPGA(V6)通過外部中斷的方式通知控制模塊DSP是否已完成當前圖像數據包的接收,以及控制模塊DSP是否可以再發送數據包。
步驟3:數據中轉模塊FPGA檢測到控制模塊DSP發送的數據包後,按預定的數據發送速率向圖傳系統發送SAR圖像數據包,用所述預定的數據發送速率3倍的速率進行CRC32校驗值的計算,同時將計算得到的CRC32校驗值和SAR圖像數據包一起發送給圖傳系統。
其中,預定的數據發送速率範圍為10MHZ-40MHZ。
具體描述如下:
數據中轉模塊FPGA(V6)檢測到緩存FIFO為非空時,則開始讀取圖像數據包進行CRC32校驗值的計算。
CRC32校驗的具體流程如圖2所示:
步驟3.1、首先對CRC32校驗值賦予初值0xFFFFFFFF;令i=1;
步驟3.2、讀取出1個8bit圖像數據與CRC32校驗值按位異或得到值Ai,取出Ai的低8位作為CRC32查詢表的地址,將該地址輸入CRC32查詢表進行查詢得到值Bi;將此時的CRC32校驗值右移8位,與值Bi按位異或運算得值Ci;
步驟3.3、判斷此時讀取出的1個8bit圖像數據是否為圖像數據包裡面的最後一個數據;
若不是,則將值Ci的值作為CRC32校驗值,令inew=i+1,i=inew;返回步驟3.2;
若是,則將值Ci的值與0xFFFFFFFF進行異或運算後得到的值作為該數據包的CRC32校驗值。
主控單元向圖像數據系統發送圖像數據包的同時也進行CRC32校驗值的計算,且CRC32的計算速度與圖像發送速度匹配,FPGA將CRC32校驗值按圖像幀格式要求放在圖像幀最後並發送給圖傳系統。數據發送和CRC32計算為流水處理,可節省大量時間,保證處理的實時性。由於計算一次單個圖像數據的CRC32校驗值需要3個時鐘周期,因此,為保證圖像發送速率和CRC32校驗值的計算速率相匹配,保證整個數據流水處理,減少FPGA緩存,CRC32校驗值的計算速率為數據發送速率的3倍。
步驟4、數據中轉模塊FPGA按三次重傳機制向圖傳系統發送SAR圖像數據包和CRC32校驗值;所述圖傳系統在接收SAR圖像數據包的同時,使用接收到的CRC32校驗值進行CRC32校驗。
具體描述如下:
主控單元通過LVDS接口以30MByte/s的速率向圖傳系統發送數據包。數據中轉模塊FPGA將計算得到的CRC32校驗值按預定的圖像幀格式放在圖像幀最後,並發送給圖傳系統,圖傳系統接收圖像數據包的同時,也進行CRC32校驗。若校驗結果與接收的校驗值一致,則此圖像數據包無誤;若不一致,則通知數據中轉模塊FPGA,重傳該圖像數據包;若同一圖像數據包重傳三次,則此圖像數據包傳輸失敗,數據中轉模塊FPGA將此傳輸失敗標識數據上報給中控系統。
本發明涉及一種用FPGA實現CRC32校驗方法,有別於常規地CRC32校驗方法,該方法結合SAR成像系統現有硬體架構,充分利用FPGA和DSP的處理特點,以查找表為基礎,實現了任意幀數據CRC32校驗,利用DSP內外部存儲資源豐富以及SRIO總線傳輸速度高等特點,用於緩存大數據量SAR圖像數據,利用FPGA全並行流水運行特點,合理設計流水線,優化處理架構,相對於DSP等串行器件實現該校驗方法,大大提升了運行速率和效率,可廣泛應用於各種數據處理系統中。
上述具體實施方式僅用於解釋和說明本發明的技術方案,但並不能構成對權利要求的保護範圍的限定。本領域技術人員應當清楚,在本發明的技術方案的基礎上做任何簡單的變形或替換而得到的新的技術方案,均將落入本發明的保護範圍之內。