劉泳銳,劉文怡,張彥軍
(中北大學,電子測試技術(shù)國家重點實驗室,太原030051)
無線傳感器網(wǎng)絡WSN(Wireless Sensor Network)是一種全新的信息獲取平臺,是傳感器技術(shù)、嵌入式技術(shù)、現(xiàn)代網(wǎng)絡及無線通信技術(shù)等多種技術(shù)的融合,能夠?qū)崟r監(jiān)測和采集網(wǎng)絡分布區(qū)域內(nèi)各種被監(jiān)測對象的信息,并將這些信息發(fā)送到網(wǎng)關(guān)節(jié)點,以實現(xiàn)對復雜范圍內(nèi)目標的監(jiān)測與跟蹤,具有快速展開,隱蔽性強等特點,有著廣闊的應用前景[1]。隨著無線傳感網(wǎng)絡節(jié)點采集數(shù)據(jù)量的不斷增大,在節(jié)點中實現(xiàn)快速數(shù)據(jù)存儲越來越重要。本文針對聲音目標進行探測,完成了聲無線傳感網(wǎng)絡節(jié)點的數(shù)據(jù)存儲設計,實現(xiàn)了一種交錯雙平面高速存儲技術(shù)在節(jié)點中的應用。
無線聲傳感器網(wǎng)絡結(jié)構(gòu)如圖1所示,它由大量廉價且具有傳感采集、數(shù)據(jù)處理、無線通信、能量供給等模塊的傳感器節(jié)點組成。其中各節(jié)點是同構(gòu)的,成本低,靜態(tài)不移動,隨意散布在要監(jiān)測的區(qū)域,同時有足夠能量保證正常工作。一個典型的無線聲傳感器網(wǎng)絡結(jié)構(gòu)包括聲音傳感器節(jié)點(Sensor節(jié)點)、匯聚節(jié)點(Sink節(jié)點)以及網(wǎng)絡監(jiān)控管理節(jié)點等。聲傳感器節(jié)點被隨意的散布在監(jiān)控區(qū)域以實現(xiàn)聲音采集,數(shù)據(jù)預處理,并能夠與匯聚節(jié)點組成一個自組織、多跳、無線的網(wǎng)絡。匯聚節(jié)點是網(wǎng)絡的處理中心節(jié)點,具有較強的處理能力、存儲能力和通信能力、以及穩(wěn)定充足的電源,但一般沒有感知能力。該節(jié)點向監(jiān)控管理節(jié)點上傳各個節(jié)點的數(shù)據(jù),并向各個節(jié)點下發(fā)控制命令。監(jiān)控管理節(jié)點一般由普通的計算機系統(tǒng)構(gòu)成,通過與匯聚節(jié)點通信來監(jiān)控、管理目標對象的狀態(tài)變化情況,從而對整個無線傳感網(wǎng)絡進行信息融合,得到整個監(jiān)控區(qū)域的信息狀態(tài)[2-3]。
圖1 典型多跳無線傳感器網(wǎng)絡結(jié)構(gòu)圖
無線傳感網(wǎng)絡節(jié)點一般由傳感器采集模塊、數(shù)據(jù)處理模塊、通信模塊、電源供給模塊組成,如圖2所示。傳感器模塊完成對監(jiān)控區(qū)域的目標信息采集,并將模擬信號轉(zhuǎn)換成數(shù)字信號提供給處理模塊,本節(jié)點中針對聲音信號進行采集。數(shù)據(jù)處理模塊完成對數(shù)據(jù)的處理,信息識別和存儲功能。通信模塊完成節(jié)點間的信息交換。電源供給模塊為整個節(jié)點提供能量保證,由于節(jié)點使用環(huán)境的限制,要求電源能提供高效穩(wěn)定的能量。本次設計中要求對數(shù)據(jù)處理的同時進行數(shù)據(jù)的快速存儲以便為試驗數(shù)據(jù)分析提供保證,所以對FLASH的存儲操作至關(guān)重要。
圖2 聲無線傳感網(wǎng)絡節(jié)點結(jié)構(gòu)圖
本次設計中,對于傳感器節(jié)點來說,由于數(shù)據(jù)量較大和通信速率的限制,節(jié)點采集的數(shù)據(jù)、與鄰近節(jié)點交換的數(shù)據(jù)需要在一定時間內(nèi)進行保存,以實現(xiàn)數(shù)據(jù)處理和傳輸速率的匹配,并為后續(xù)試驗分析提供數(shù)據(jù)保證。因此對數(shù)據(jù)進行存儲顯得尤為重要,本設計中在傳感器節(jié)點上配置了一塊非易失性NAND型FLASH存儲模塊。
FLASH是基于頁編程、塊擦除的,進行讀、寫、擦除都需要一定的時間,在這段時間內(nèi)FLASH芯片內(nèi)的被操作的Plane不能進行其他響應,這個等待時間會影響數(shù)據(jù)的記錄速度[4]。本文選用三星公司的K9WBG08U1M芯片,為了提高數(shù)據(jù)的存儲速度,采用交錯雙平面頁編程方式進行操作,其主要工作思想是流水線操作。
流水線技術(shù)可以提高系統(tǒng)頻率,通常用在高速信號處理領(lǐng)域,如果整個設計是單向的并且可以分為若干個步驟進行處理,就可以用流水線技術(shù)提高系統(tǒng)工作頻率[5-6]。主要方式是將一個整體過程從等待時間分開形成一個步驟,在等待時,執(zhí)行下一個過程中的一個步驟。這樣可以利用等待時間進行操作,提高器件的工作速度,如圖3所示。
圖3 多級流水線操作示意圖
FLASH的流水線操作是利用芯片在進行一頁編程的典型時間進行下一個Plane的頁操作,實現(xiàn)時間上的復用。頁編程分為數(shù)據(jù)寫入寄存器和內(nèi)部自動編程兩個過程。數(shù)據(jù)寫入寄存器過程可以分為發(fā)送編程命令、地址、數(shù)據(jù)。在完成寫入寄存器過程后,芯片進入內(nèi)部自動編程過程。在此期間立刻對另一個Plane進行數(shù)據(jù)寫入寄存器操作。以此類推,從而實現(xiàn)數(shù)據(jù)的流水線寫入操作。
本次采用的4 Gbyte K9WBG08U1M芯片,它是由兩片2 Gbyte的 K9WAG08U0M(分別為 chip1和chip2)組成的。本設計利用交錯雙平面頁編程(Interleave Two-Plane Page Program)實現(xiàn)兩個2 Gbyte K9WAG08U0M之間交錯寫入數(shù)據(jù)。每個K9WAG08U0M內(nèi)部可以劃分為4個存儲平面(Plane),每個平面包含2 048個塊和4224 byte的頁寄存器,并且每個Plane可以進行單獨的頁編程和塊擦除操作[7]。進行雙平面操作時,必須將Plane0和Plane1分為一組(記為1組),Plane2和Plane3分為一組(記為2組)。只能同時對每一組里的兩個Plane進行操作,如圖4所示。不能交叉,如果同時對Plane0和Plane3、Plane1和Plane2操作是不正確的。
在進行交錯雙平面編程的時候,首先使能CE1,即選中chip1。對chip1中的1組進行雙平面寫入操作時,1組的每一次操作都將完成Plane0和Plane1中兩個對稱塊上同一位置的一頁寫入操作(包括命令字、地址、數(shù)據(jù)),之后等待200μs的自動編程忙狀態(tài)。這時對2組進行寫入操作,其過程與對1組操作一樣,之后等待200 μs。這時控制端使能CE2,即選中chip2,對chip2中的1組和2組進行操作,其過程與chip1中的操作一樣,如圖5所示。交錯雙平面頁編程與普通的FLASH頁編程(Page Program Operation)比較可知,普通的頁編程在寫入一頁數(shù)據(jù)后要等待200 μs的頁編程時間;而使用交錯雙平面頁編程時,是在寫入兩頁后才有一次真正的200 μs的頁編程時間,節(jié)省了一次頁編程時間,交錯雙平面頁編程操作流程如圖6所示。
圖4 K9WBG08U1M型內(nèi)部陣列結(jié)構(gòu)圖
圖5 交錯雙平面頁編程寫操作原理圖
圖6 FLASH交錯雙平面頁編程操作流程圖
采用交錯雙平面操作,其寫入速度的理論極限值為40 Mbyte/s。假設數(shù)據(jù)以40 Mbyte/s的速度寫入,完成第一組某塊的一頁寄存器操作后,該組將進入200μs的等待時間,此時依次對chip1中的2組、chip2中的1組、chip2中的2組進行寫入操作[8]。整個寫入時間為:
6 ×4 096 byte/40 Mbyte/s=585.9 μs>200 μs
由此可見,在第四個組完成寫入寄存器操作后,第一個組的等待時間已經(jīng)結(jié)束,可以繼續(xù)從第一組開始寫入。整個過程中沒有等待時間。由于極限速度是40 Mbyte/s,本設計為了增加冗余,F(xiàn)PGA控制器對FLASH以30 Mbyte/s的速度進行寫入操作。
試驗時,在對節(jié)點的FLASH完成無效塊檢測后,采用30 Mbyte/s的速度對FLASH進行交錯雙平面寫入操作。寫入操作上位機截圖如圖7所示。最后將存入FLASH中的數(shù)據(jù)通過FPGA經(jīng)由USB控制芯片(CY7C68013)讀取到上位機,進行數(shù)據(jù)分析。
圖7 上位機寫入操作
使用遞增數(shù)對FLASH進行寫入操作,遞增數(shù)的數(shù)據(jù)格式為:大幀=96×小幀(250 byte),小幀格式為:遞增數(shù)(00-F6)、1位幀計數(shù)(從00開始)和小幀幀標志(EB 90);大幀格式為:當記到96個小幀時,寫3位幀計數(shù)(從00 00 00開始)和大幀幀標志(14 6F)。圖8為上位機讀取的遞增數(shù)。
圖8 上位機讀取的遞增數(shù)
該系統(tǒng)對聲音無線傳感網(wǎng)絡節(jié)點數(shù)據(jù)存儲進行設計,利用交錯雙平面頁編程操作實現(xiàn)了對FLASH的高速數(shù)據(jù)存儲。有效地保證了節(jié)點因數(shù)據(jù)量大和傳輸速率受限而引起的數(shù)據(jù)不能及時處理和交互的問題。通過試驗表明,該存儲方式穩(wěn)定、可靠,為整個試驗系統(tǒng)的正常工作和后續(xù)分析提供了有力的保障。
[1]趙海,趙杰,劉錚,等.一種無線傳感器網(wǎng)絡節(jié)點的設計與實現(xiàn)[J].東北大學學報(自然科學版),2009,30(6):809-812.
[2]佟吉鋼,張振新,陳增強,等.基于FPGA的無線傳感器網(wǎng)絡節(jié)點設計[J].傳感技術(shù)學報,2009,22(3):417-421.
[3]梁小滿,馬行坡.無線傳感器網(wǎng)絡數(shù)據(jù)存儲技術(shù)研究進展[J].計算機應用研究,2009,26(2):439-443.
[4]陸浩,王振占.高速大容量固態(tài)存儲器設計[J].計算機工程,2011,37(15):226-231.
[5]吳萌,劉波.高速、大容量視頻數(shù)據(jù)存儲、傳輸系統(tǒng)設計[J].電子器件,2009,32(3):638-642.
[6]李超,王虹現(xiàn),邢孟道,等.高速大容量FLASH存儲系統(tǒng)設計[J].火控雷達技術(shù),2007,36(1):83-88.
[7]Samsung Electronics K9XXG08XXM Data Sheet[EB/OL].http://www.samsung.com,2006,12.
[8]趙海艦,甘萌.嵌入式系統(tǒng)中的FLASH編程技術(shù)研究[J].計算機工程與設計,2005,26(11):3006-3009.