基于FPGA的水聲信號采樣存儲系統(tǒng)設(shè)計
3 系統(tǒng)整體設(shè)計
3.1 硬件邏輯設(shè)計
硬件邏輯設(shè)計主要包括主控IP 核設(shè)計與主端口IP 核設(shè)計兩部分工作,分別實現(xiàn)對于 AD 采樣數(shù)據(jù)的存儲和讀取時序控制,以及AVALON 總線的主端口建立的目的。硬件邏輯 利用IP 核模塊化,移植性好的特點,方便整合到傳感器節(jié)點的整體設(shè)計當中。作為傳感器 節(jié)點的組成部分,為水聲通信試驗的順利進行提供可靠保證。 硬件邏輯設(shè)計圖,如圖 2 所示。
3.1.1 SDRAM 主控IP 核設(shè)計
主控IP 核通過對于QuartusII 自帶的SDRAM 控制器進行控制,實現(xiàn)變速率AD 采樣的 功能,以及讀寫SDRAM 的邏輯功能。由于SDRAM 控制器實現(xiàn)了對于SDRAM 芯片的時 序操作,所以讀寫時序設(shè)計是針對SDRAM 控制器進行[3]。
系統(tǒng)讀 SDRAM 操作分為數(shù)據(jù)飛讀與數(shù)據(jù)環(huán)形讀取兩種功能[4]。其中,數(shù)據(jù)飛讀是將當前AD 采樣值送回至CPU,并通過串口返回到前置機,方便實時數(shù)據(jù)監(jiān)控。對于數(shù)據(jù)環(huán)形 讀取SDRAM 操作,通過設(shè)置首地址指針寄存器,在每次寫操作之后自動加一,實現(xiàn)環(huán)形 存儲水聲通信數(shù)據(jù)的目的。在每次環(huán)形數(shù)據(jù)讀取操作發(fā)起之前,預(yù)讀首地址指針寄存器,以 此為起始地址,始終讀取最新時刻的采樣存儲數(shù)據(jù)。 讀操作過程主要狀態(tài)機,如圖 3 所示。
其中 work 過程包含的獨立狀態(tài)機,由如下四部分構(gòu)成:
(1)first:片選有效,讀使能有效,送讀SDRAM 地址。
(2)second:讀使能有效,滿足SDRAM 控制器讀時序要求。
(3)third:判斷sdram_read_wait 信號值,如果為1,則維持當前狀態(tài),同時讀使能信號置位;如果為0,則進入下一狀態(tài)。
(4)fourth:判斷sdram_read_valid 信號值,如果為0,則維持當前狀態(tài);如果為1,將讀回數(shù)據(jù)寫入讀SDRAM 數(shù)據(jù)寄存器,同時讀使能信號復(fù)位。
變速率AD 采集與數(shù)據(jù)環(huán)形存儲操作主要是由主控IP 核寫SDRAM 的過程實現(xiàn)。為保 持采樣時刻數(shù)據(jù)的穩(wěn)定性,系統(tǒng)對AD 時鐘進行分頻,通過設(shè)置不同分頻寄存器,實現(xiàn)變速 率采樣的目的。數(shù)據(jù)環(huán)形存儲SDRAM 操作是靠每次分頻時鐘SDRAM_WRITE_CLK 的上 升沿觸發(fā),基本時序過程與讀過程狀態(tài)機類似。系統(tǒng)從0 地址開始寫操作,一旦寫滿預(yù)設(shè)存 儲區(qū)域,則從下一寫時刻開始,數(shù)據(jù)寫入初始地址,以此類推,實現(xiàn)環(huán)形存儲操作。同時, 讀寫操作不能進行同時進行,通過讀寫選擇控制器的設(shè)置,分別按照不同狀態(tài)進行操作。
評論