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