1 引言
近幾十年來,隨著世界各國對海洋開發和利用步伐的加快,對海洋信息進行連續實時監 測的意義越來越重要。水聲無線傳感器網絡(Underwater Acoustic sensor network,簡稱 UW-ASN)是海洋環境立體監測系統中的研究熱點,它由大量具有計算和通信能力的傳感器 節點組成,各節點被分布在指定的海域,執行連續的協同監測任務。鑒于水聲信道的帶寬有 限、海洋噪聲復雜、具有多途效應和多普勒效應[1],這些特殊性給UW-ASN 中的水聲通信、 協議設計等方面帶來了很大的挑戰,增加了傳感器網絡設計的復雜性。
為了充分了解水聲通信過程中的數據變化,方便對于信道特性分析以及通信方式的選 擇,以及大量傳感器網絡節點之間通信數據的存儲,傳感器節點必須具備數據采集功能。傳 統的水聲數據采集存儲系統主要由數據采集板卡組成,能夠滿足數據采集功能,缺點是體積 大,便攜性差,難以作為傳感器節點的組成部分應用于實際設計中。
本文針對這一問題,提出了基于SOPC(System On Programmable Chip)的設計方案,利 用其配置靈活、擴展性強、接口豐富等優點,以Altera 公司的Cyclone II 系列FPGA 為基 礎,設計傳感器節點數據采集存儲系統,降低了設計的風險,完善了傳感器節點功能要求。
2 采樣存儲系統概述
本設計系統的結構如圖1 所示,在整個傳感器節點的系統當中,將AD 芯片輸出的12 位數據,通過設計SDRAM 控制IP 核,實現數據變速率AD 采集、數據環形存儲、數據環 形讀取、以及數據飛讀(實時數據讀?。┑裙δ?。同時,對于NiosII CPU 設計串口(UART) 協議,以便前置機與傳感器節點通信,實現不同命令操作功能,方便對水聲試驗過程中波形 數據的變化進行仿真處理,以滿足試驗要求。
本設計采用 MICRO 公司的MT48LC32M8A2 型號容量為32Mbyte 的SDRAM,芯片地 址線為25 位,每個地址存儲16 位數據。根據水聲通信試驗要求,聲波頻率為40KHz,每 個正弦波采樣16 個點,則采樣時鐘要求至少640KHz,本系統設計采樣時鐘最大40MHz。 同時,環形存儲深度最大為32Mbyte,每次采樣存儲數據占2byte,則至少可以采樣25 秒正 弦波數據。環形存儲區域大小,以及采樣時鐘都可以進行參數化配置,能夠滿足試驗要求。 系統整體分為硬件邏輯設計,與軟件程序設計兩部分。
3 系統整體設計
3.1 硬件邏輯設計
硬件邏輯設計主要包括主控IP 核設計與主端口IP 核設計兩部分工作,分別實現對于 AD 采樣數據的存儲和讀取時序控制,以及AVALON 總線的主端口建立的目的。硬件邏輯 利用IP 核模塊化,移植性好的特點,方便整合到傳感器節點的整體設計當中。作為傳感器 節點的組成部分,為水聲通信試驗的順利進行提供可靠保證。 硬件邏輯設計圖,如圖 2 所示。
3.1.1 SDRAM 主控IP 核設計
主控IP 核通過對于QuartusII 自帶的SDRAM 控制器進行控制,實現變速率AD 采樣的 功能,以及讀寫SDRAM 的邏輯功能。由于SDRAM 控制器實現了對于SDRAM 芯片的時 序操作,所以讀寫時序設計是針對SDRAM 控制器進行[3]。
系統讀 SDRAM 操作分為數據飛讀與數據環形讀取兩種功能[4]。其中,數據飛讀是將當前AD 采樣值送回至CPU,并通過串口返回到前置機,方便實時數據監控。對于數據環形 讀取SDRAM 操作,通過設置首地址指針寄存器,在每次寫操作之后自動加一,實現環形 存儲水聲通信數據的目的。在每次環形數據讀取操作發起之前,預讀首地址指針寄存器,以 此為起始地址,始終讀取最新時刻的采樣存儲數據。 讀操作過程主要狀態機,如圖 3 所示。
其中 work 過程包含的獨立狀態機,由如下四部分構成:
(1)first:片選有效,讀使能有效,送讀SDRAM 地址。
(2)second:讀使能有效,滿足SDRAM 控制器讀時序要求。
(3)third:判斷sdram_read_wait 信號值,如果為1,則維持當前狀態,同時讀使能信號置位;如果為0,則進入下一狀態。
(4)fourth:判斷sdram_read_valid 信號值,如果為0,則維持當前狀態;如果為1,將讀回數據寫入讀SDRAM 數據寄存器,同時讀使能信號復位。
變速率AD 采集與數據環形存儲操作主要是由主控IP 核寫SDRAM 的過程實現。為保 持采樣時刻數據的穩定性,系統對AD 時鐘進行分頻,通過設置不同分頻寄存器,實現變速 率采樣的目的。數據環形存儲SDRAM 操作是靠每次分頻時鐘SDRAM_WRITE_CLK 的上 升沿觸發,基本時序過程與讀過程狀態機類似。系統從0 地址開始寫操作,一旦寫滿預設存 儲區域,則從下一寫時刻開始,數據寫入初始地址,以此類推,實現環形存儲操作。同時, 讀寫操作不能進行同時進行,通過讀寫選擇控制器的設置,分別按照不同狀態進行操作。
3.1.2 主端口IP 核
因為SDRAM 主控IP 核在NiosII 軟核CPU 總線控制下作為從端口,所以不能主動發起 讀寫操作,因此必須新建第二條AVALON 總線,設計讀寫主端口IP 核,才能實現讀寫外接 SDRAM 芯片的功能。主端口IP 核的時序操作,是對主控IP 核的時序轉接,面向SDRAM 控制器進行控制。根據讀寫使能信號不同,進行不同時序傳送。
3.2 軟件程序設計
NiosII CPU 作為軟核,可方便進行模塊化操作,具有可移植,可配置,易整合的特點。 在本設計當中,軟件設計主要實現以下五種主要功能:單點寫SDRAM,單點讀SDRAM, 數據飛讀,連續寫SDRAM,連續讀SDRAM 的功能。在程序當中留有接口,方便其他功能 整合,符合模塊化設計的要求。
首先,完成功能的初始化,主要是設置選擇操作模式與存儲 AD 數據的時鐘分頻系數。 作為SDRAM 的讀操作必須滿足寫滿之后,方可進行,所以初始化主控IP 核為寫SDRAM 操作。設置分頻系數可以按照如下公式計算:
其次,通過對于串口進行協議解析,分別實現五部分預設功能。主程序操作流程如圖4所示。
實現的五部分功能依次為:
(1) 單點寫SDRAM 操作:CPU 給出地址,數據,以及寫操作選擇信號。
(2) 連續寫SDRAM 操作:CPU 只是給出寫操作選擇信號,由主控IP 核將AD 數據寫入至SDRAM 環形存儲區域內。
(3) 數據飛讀操作:只需要讀取飛讀數據寄存器,可以將當前狀態AD 輸入值送回至CPU,偵測當前狀態。
(4) 單點讀SDRAM 操作:CPU 送出讀SDRAM 地址,然后選擇讀操作,設置控制寄存器為0x00000001,啟動讀操作。最后將讀回數據通過串口實時回傳。
(5) 連續讀SDRAM 操作:是將基本讀操作進行循環執行。設置串口回傳緩沖區為80 字節,連續讀SDRAM 數據并連續填寫緩沖區,一旦填滿,則啟動串口發送。同時,讀地址在每次讀操作結束后自動加一,當操作次數達到環形空間最大存儲數量時,停止連續讀操作。
4 結束語
本設計作為水下無線傳感器網絡(UW-ASN)節點的設計組成部分,具有結構清楚,功 能完善,整合性強,性能可靠的特點。設計整體架構的模塊化操作以及可編程性,使得整個 設計開發的具有靈活性與低風險性。經項目試驗驗證,該數據采集與存儲設計滿足傳感器節 點的功能要求,為水聲通信試驗順利進行以及水下無線傳感器網絡的功能完善提供可靠保證。
-
FPGA
+關注
關注
1629文章
21748瀏覽量
603954 -
數據采集
+關注
關注
39文章
6131瀏覽量
113723 -
無線傳感器
+關注
關注
15文章
770瀏覽量
98387
發布評論請先 登錄
相關推薦
評論