第四章 系統實作
4.4 系統的整合實現
本研究將在一個 FPGA 發展平台上實現影像的動態偵測,依照之前所模擬的 方法進行設計,根據所設計的偵測影像方法所繪製的有限狀態機(FSM, Finite State Machine)的狀態圖(State Diagram)如圖 4-8 所示。使用 Verilog HDL 將這個方法實現在 FPGA 上,實際測試這個方法是否可以有效的達成我們所需要的 功能。
CMOS Sensor FPGA
Bus switch
TFT LCD
圖 4-8 有限狀態機狀態圖
設計這個功能是可以將此偵測功能打開或是關閉,所以一開始的起始狀態都 會在 Idle 的狀態下,當有將此偵測功能打開才會開始整個動作流程:
(1) 一開始需先收集一個完整的 8x16 的區塊,收集完 8x16 的區塊後,再 判斷 Proc 是否為 1,當 Proc 不是 1 時繼續此程序依序往後進行處理。
(2) 收集到 8x16 的區塊後,將此 8x16 的區塊內的 Y 值相加之後除 128,以 此來平均這個區塊內的所有 Y 值,計算出的值暫存在緩衝儲存器內。
(3) 將緩衝儲存器內的值寫入到 SRAM 內。
(4) 清空此緩衝儲存器,將狀態再回到 Idle。
(5) 再來 收 集 一個 完整的區塊 收 集完一個區塊,再判 斷 Proc 是否為 1,當 Proc 為 1 時繼續以此程序依序往後進行處理。
(6) 收集到 8x16 的區塊後,將此 8x16 的區塊內的 Y 值相加之後除 128,以 此來平均這個區塊內的所有 Y 值。計算出的值存在 SRAM 內。
(7) 將 SRAM 內的兩個值相加除於 2 代表完成了一個 16x16 的區塊的值。
於我們設定的門檻值,則將此區塊記錄起來。
(10)有超過門檻值時,將此區塊記錄起來並且設定 Flag 並進行累加動作,
當累加數等於 8 時,將所記錄的值存入到 SRAM 記憶體內。
以上為所設計的有限狀態機說明描述,……。
再來說明存取在 SRAM 內的記憶體配置圖,如圖 4-9 所示。
7 6 5 4 3 2 1 0
Bit
Save alarm data space
Save current frame data space
Save reference frame data space
圖 4-9 記憶體配置圖
圖 4-9 為 SRAM 內我們存取的資料,我們將 SRAM 分成三個區域,第一個區域 擺放的是每一張的參考畫面資料,就是當目前這張畫面比對完之後,就會以目前 這張畫面當做下一張畫面的參考資料,以此類推下去,第二個區域為運算處理資
料,就是儲存各個 8x16 的區塊運算結果,第三個區域為設定 Flag 的區域,我們 根據運算的結果在此找尋有設定 Flag 的區域,並將設定 Flag 的區域框出來,以 利判別。
在使用 Verilog HDL 實現時,使用 Verdi 來產生數位波形如圖 4-10 所示
圖 4-10 完整畫面數位波型圖
從圖 4-10 可以看出虛線的部份為完整畫面的開始和完整畫面的結束,代表著 一張完整的畫面所包含的所有資料格式。
再來看本文所提到的 8x16 個區塊,在數位波形時所看到的資料格式如圖 4-11 所示。
由圖 4-11 所示代表每一個水平位址掃描 8 次,垂直位址掃描 1 次,接著再繼 續進行掃描程序,接著垂直位址掃描 1 次,水平位址掃描 8 次,依此進行完成 8x16 個區塊,直到區塊掃描結束時會有高準位脈衝表示已將完成了一個區塊的 8x16 的 區塊掃描結果。
接著看本文所提到的當運算出的 Y 值結果超出設定的門檻值時,所展現出來 的結果在數位波形時所看到的資料格式如圖 4-12 所示。
圖 4-12 異常累加數位波形圖
如圖 4-12,在進行區塊運算時,如發現差異的值超過所設定的門檻值之後,
就會觸發中斷,並且進行累加運算,累加計算會計算出現多少個區塊有差異值,
根據此累加數量的差異值,再去 SRAM 內中將有設定 Flag 的值讀出來,並且使用 紅色外框將其標示記錄起來。