1 引言 近幾十年來(lái),隨著(zhù)世界各國對海洋開(kāi)發(fā)和利用步伐的加快,對海洋信息進(jìn)行連續實(shí)時(shí)監 測的意義越來(lái)越重要。水聲無(wú)線(xiàn)傳感器網(wǎng)絡(luò )(Underwater Acoustic sensor network,簡(jiǎn)稱(chēng) UW-ASN)是海洋環(huán)境立體監測系統中的研究熱點(diǎn),它由大量具有計算和通信能力的傳感器 節點(diǎn)組成,各節點(diǎn)被分布在指定的海域,執行連續的協(xié)同監測任務(wù)。鑒于水聲信道的帶寬有 限、海洋噪聲復雜、具有多途效應和多普勒效應[1],這些特殊性給UW-ASN 中的水聲通信、 協(xié)議設計等方面帶來(lái)了很大的挑戰,增加了傳感器網(wǎng)絡(luò )設計的復雜性。 為了充分了解水聲通信過(guò)程中的數據變化,方便對于信道特性分析以及通信方式的選 擇,以及大量傳感器網(wǎng)絡(luò )節點(diǎn)之間通信數據的存儲,傳感器節點(diǎn)必須具備數據采集功能。傳 統的水聲數據采集存儲系統主要由數據采集板卡組成,能夠滿(mǎn)足數據采集功能,缺點(diǎn)是體積 大,便攜性差,難以作為傳感器節點(diǎn)的組成部分應用于實(shí)際設計中。 本文針對這一問(wèn)題,提出了基于SOPC(System On Programmable Chip)的設計方案[2],利 用其配置靈活、擴展性強、接口豐富等優(yōu)點(diǎn),以Altera 公司的Cyclone II 系列FPGA 為基 礎,設計傳感器節點(diǎn)數據采集存儲系統,降低了設計的風(fēng)險,完善了傳感器節點(diǎn)功能要求。 2 采樣存儲系統概述 本設計系統的結構如圖1 所示,在整個(gè)傳感器節點(diǎn)的系統當中,將AD 芯片輸出的12 位數據,通過(guò)設計SDRAM 控制IP 核,實(shí)現數據變速率AD 采集、數據環(huán)形存儲、數據環(huán) 形讀取、以及數據飛讀(實(shí)時(shí)數據讀。┑裙δ。同時(shí),對于NiosII CPU 設計串口(UART) 協(xié)議,以便前置機與傳感器節點(diǎn)通信,實(shí)現不同命令操作功能,方便對水聲試驗過(guò)程中波形 數據的變化進(jìn)行仿真處理,以滿(mǎn)足試驗要求。 本設計采用 MICRO 公司的MT48LC32M8A2 型號容量為32Mbyte 的SDRAM,芯片地 址線(xiàn)為25 位,每個(gè)地址存儲16 位數據。根據水聲通信試驗要求,聲波頻率為40KHz,每 個(gè)正弦波采樣16 個(gè)點(diǎn),則采樣時(shí)鐘要求至少640KHz,本系統設計采樣時(shí)鐘最大40MHz。 同時(shí),環(huán)形存儲深度最大為32Mbyte,每次采樣存儲數據占2byte,則至少可以采樣25 秒正 弦波數據。環(huán)形存儲區域大小,以及采樣時(shí)鐘都可以進(jìn)行參數化配置,能夠滿(mǎn)足試驗要求。 系統整體分為硬件邏輯設計,與軟件程序設計兩部分。 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)行操作。 3.1.2 主端口IP 核 因為SDRAM 主控IP 核在NiosII 軟核CPU 總線(xiàn)控制下作為從端口,所以不能主動(dòng)發(fā)起 讀寫(xiě)操作,因此必須新建第二條AVALON 總線(xiàn),設計讀寫(xiě)主端口IP 核,才能實(shí)現讀寫(xiě)外接 SDRAM 芯片的功能。主端口IP 核的時(shí)序操作,是對主控IP 核的時(shí)序轉接,面向SDRAM 控制器進(jìn)行控制。根據讀寫(xiě)使能信號不同,進(jìn)行不同時(shí)序傳送。 3.2 軟件程序設計 NiosII CPU 作為軟核,可方便進(jìn)行模塊化操作,具有可移植,可配置,易整合的特點(diǎn)。 在本設計當中,軟件設計主要實(shí)現以下五種主要功能:?jiǎn)吸c(diǎn)寫(xiě)SDRAM,單點(diǎn)讀SDRAM, 數據飛讀,連續寫(xiě)SDRAM,連續讀SDRAM 的功能。在程序當中留有接口,方便其他功能 整合,符合模塊化設計的要求。 首先,完成功能的初始化,主要是設置選擇操作模式與存儲 AD 數據的時(shí)鐘分頻系數。 作為SDRAM 的讀操作必須滿(mǎn)足寫(xiě)滿(mǎn)之后,方可進(jìn)行,所以初始化主控IP 核為寫(xiě)SDRAM 操作。設置分頻系數可以按照如下公式計算: 其次,通過(guò)對于串口進(jìn)行協(xié)議解析,分別實(shí)現五部分預設功能。主程序操作流程如圖4所示。 實(shí)現的五部分功能依次為: (1) 單點(diǎn)寫(xiě)SDRAM 操作:CPU 給出地址,數據,以及寫(xiě)操作選擇信號。 (2) 連續寫(xiě)SDRAM 操作:CPU 只是給出寫(xiě)操作選擇信號,由主控IP 核將AD 數據寫(xiě)入至SDRAM 環(huán)形存儲區域內。 (3) 數據飛讀操作:只需要讀取飛讀數據寄存器,可以將當前狀態(tài)AD 輸入值送回至CPU,偵測當前狀態(tài)。 (4) 單點(diǎn)讀SDRAM 操作:CPU 送出讀SDRAM 地址,然后選擇讀操作,設置控制寄存器為0x00000001,啟動(dòng)讀操作。最后將讀回數據通過(guò)串口實(shí)時(shí)回傳。 (5) 連續讀SDRAM 操作:是將基本讀操作進(jìn)行循環(huán)執行。設置串口回傳緩沖區為80 字節,連續讀SDRAM 數據并連續填寫(xiě)緩沖區,一旦填滿(mǎn),則啟動(dòng)串口發(fā)送。同時(shí),讀地址在每次讀操作結束后自動(dòng)加一,當操作次數達到環(huán)形空間最大存儲數量時(shí),停止連續讀操作。 4 結束語(yǔ) 本設計作為水下無(wú)線(xiàn)傳感器網(wǎng)絡(luò )(UW-ASN)節點(diǎn)的設計組成部分,具有結構清楚,功 能完善,整合性強,性能可靠的特點(diǎn)。設計整體架構的模塊化操作以及可編程性,使得整個(gè) 設計開(kāi)發(fā)的具有靈活性與低風(fēng)險性。經(jīng)項目試驗驗證,該數據采集與存儲設計滿(mǎn)足傳感器節 點(diǎn)的功能要求,為水聲通信試驗順利進(jìn)行以及水下無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的功能完善提供可靠保證。 本文創(chuàng )新點(diǎn):在系統功能設計當中,充分考慮了模塊的可重用性和可移植性,通過(guò)IP核的設計實(shí)現底層驅動(dòng),提高系統集成度,充分發(fā)揮了SOPC技術(shù)的優(yōu)勢。 |