劉泳銳,劉文怡,張彥軍
(中北大學(xué),電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原030051)
無(wú)線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)是一種全新的信息獲取平臺(tái),是傳感器技術(shù)、嵌入式技術(shù)、現(xiàn)代網(wǎng)絡(luò)及無(wú)線通信技術(shù)等多種技術(shù)的融合,能夠?qū)崟r(shí)監(jiān)測(cè)和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)各種被監(jiān)測(cè)對(duì)象的信息,并將這些信息發(fā)送到網(wǎng)關(guān)節(jié)點(diǎn),以實(shí)現(xiàn)對(duì)復(fù)雜范圍內(nèi)目標(biāo)的監(jiān)測(cè)與跟蹤,具有快速展開(kāi),隱蔽性強(qiáng)等特點(diǎn),有著廣闊的應(yīng)用前景[1]。隨著無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)采集數(shù)據(jù)量的不斷增大,在節(jié)點(diǎn)中實(shí)現(xiàn)快速數(shù)據(jù)存儲(chǔ)越來(lái)越重要。本文針對(duì)聲音目標(biāo)進(jìn)行探測(cè),完成了聲無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)設(shè)計(jì),實(shí)現(xiàn)了一種交錯(cuò)雙平面高速存儲(chǔ)技術(shù)在節(jié)點(diǎn)中的應(yīng)用。
無(wú)線聲傳感器網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,它由大量廉價(jià)且具有傳感采集、數(shù)據(jù)處理、無(wú)線通信、能量供給等模塊的傳感器節(jié)點(diǎn)組成。其中各節(jié)點(diǎn)是同構(gòu)的,成本低,靜態(tài)不移動(dòng),隨意散布在要監(jiān)測(cè)的區(qū)域,同時(shí)有足夠能量保證正常工作。一個(gè)典型的無(wú)線聲傳感器網(wǎng)絡(luò)結(jié)構(gòu)包括聲音傳感器節(jié)點(diǎn)(Sensor節(jié)點(diǎn))、匯聚節(jié)點(diǎn)(Sink節(jié)點(diǎn))以及網(wǎng)絡(luò)監(jiān)控管理節(jié)點(diǎn)等。聲傳感器節(jié)點(diǎn)被隨意的散布在監(jiān)控區(qū)域以實(shí)現(xiàn)聲音采集,數(shù)據(jù)預(yù)處理,并能夠與匯聚節(jié)點(diǎn)組成一個(gè)自組織、多跳、無(wú)線的網(wǎng)絡(luò)。匯聚節(jié)點(diǎn)是網(wǎng)絡(luò)的處理中心節(jié)點(diǎn),具有較強(qiáng)的處理能力、存儲(chǔ)能力和通信能力、以及穩(wěn)定充足的電源,但一般沒(méi)有感知能力。該節(jié)點(diǎn)向監(jiān)控管理節(jié)點(diǎn)上傳各個(gè)節(jié)點(diǎn)的數(shù)據(jù),并向各個(gè)節(jié)點(diǎn)下發(fā)控制命令。監(jiān)控管理節(jié)點(diǎn)一般由普通的計(jì)算機(jī)系統(tǒng)構(gòu)成,通過(guò)與匯聚節(jié)點(diǎn)通信來(lái)監(jiān)控、管理目標(biāo)對(duì)象的狀態(tài)變化情況,從而對(duì)整個(gè)無(wú)線傳感網(wǎng)絡(luò)進(jìn)行信息融合,得到整個(gè)監(jiān)控區(qū)域的信息狀態(tài)[2-3]。

圖1 典型多跳無(wú)線傳感器網(wǎng)絡(luò)結(jié)構(gòu)圖
無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)一般由傳感器采集模塊、數(shù)據(jù)處理模塊、通信模塊、電源供給模塊組成,如圖2所示。傳感器模塊完成對(duì)監(jiān)控區(qū)域的目標(biāo)信息采集,并將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)提供給處理模塊,本節(jié)點(diǎn)中針對(duì)聲音信號(hào)進(jìn)行采集。數(shù)據(jù)處理模塊完成對(duì)數(shù)據(jù)的處理,信息識(shí)別和存儲(chǔ)功能。通信模塊完成節(jié)點(diǎn)間的信息交換。電源供給模塊為整個(gè)節(jié)點(diǎn)提供能量保證,由于節(jié)點(diǎn)使用環(huán)境的限制,要求電源能提供高效穩(wěn)定的能量。本次設(shè)計(jì)中要求對(duì)數(shù)據(jù)處理的同時(shí)進(jìn)行數(shù)據(jù)的快速存儲(chǔ)以便為試驗(yàn)數(shù)據(jù)分析提供保證,所以對(duì)FLASH的存儲(chǔ)操作至關(guān)重要。

圖2 聲無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)結(jié)構(gòu)圖
本次設(shè)計(jì)中,對(duì)于傳感器節(jié)點(diǎn)來(lái)說(shuō),由于數(shù)據(jù)量較大和通信速率的限制,節(jié)點(diǎn)采集的數(shù)據(jù)、與鄰近節(jié)點(diǎn)交換的數(shù)據(jù)需要在一定時(shí)間內(nèi)進(jìn)行保存,以實(shí)現(xiàn)數(shù)據(jù)處理和傳輸速率的匹配,并為后續(xù)試驗(yàn)分析提供數(shù)據(jù)保證。因此對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)顯得尤為重要,本設(shè)計(jì)中在傳感器節(jié)點(diǎn)上配置了一塊非易失性NAND型FLASH存儲(chǔ)模塊。
FLASH是基于頁(yè)編程、塊擦除的,進(jìn)行讀、寫、擦除都需要一定的時(shí)間,在這段時(shí)間內(nèi)FLASH芯片內(nèi)的被操作的Plane不能進(jìn)行其他響應(yīng),這個(gè)等待時(shí)間會(huì)影響數(shù)據(jù)的記錄速度[4]。本文選用三星公司的K9WBG08U1M芯片,為了提高數(shù)據(jù)的存儲(chǔ)速度,采用交錯(cuò)雙平面頁(yè)編程方式進(jìn)行操作,其主要工作思想是流水線操作。
流水線技術(shù)可以提高系統(tǒng)頻率,通常用在高速信號(hào)處理領(lǐng)域,如果整個(gè)設(shè)計(jì)是單向的并且可以分為若干個(gè)步驟進(jìn)行處理,就可以用流水線技術(shù)提高系統(tǒng)工作頻率[5-6]。主要方式是將一個(gè)整體過(guò)程從等待時(shí)間分開(kāi)形成一個(gè)步驟,在等待時(shí),執(zhí)行下一個(gè)過(guò)程中的一個(gè)步驟。這樣可以利用等待時(shí)間進(jìn)行操作,提高器件的工作速度,如圖3所示。

圖3 多級(jí)流水線操作示意圖
FLASH的流水線操作是利用芯片在進(jìn)行一頁(yè)編程的典型時(shí)間進(jìn)行下一個(gè)Plane的頁(yè)操作,實(shí)現(xiàn)時(shí)間上的復(fù)用。頁(yè)編程分為數(shù)據(jù)寫入寄存器和內(nèi)部自動(dòng)編程兩個(gè)過(guò)程。數(shù)據(jù)寫入寄存器過(guò)程可以分為發(fā)送編程命令、地址、數(shù)據(jù)。在完成寫入寄存器過(guò)程后,芯片進(jìn)入內(nèi)部自動(dòng)編程過(guò)程。在此期間立刻對(duì)另一個(gè)Plane進(jìn)行數(shù)據(jù)寫入寄存器操作。以此類推,從而實(shí)現(xiàn)數(shù)據(jù)的流水線寫入操作。
本次采用的4 Gbyte K9WBG08U1M芯片,它是由兩片2 Gbyte的 K9WAG08U0M(分別為 chip1和chip2)組成的。本設(shè)計(jì)利用交錯(cuò)雙平面頁(yè)編程(Interleave Two-Plane Page Program)實(shí)現(xiàn)兩個(gè)2 Gbyte K9WAG08U0M之間交錯(cuò)寫入數(shù)據(jù)。每個(gè)K9WAG08U0M內(nèi)部可以劃分為4個(gè)存儲(chǔ)平面(Plane),每個(gè)平面包含2 048個(gè)塊和4224 byte的頁(yè)寄存器,并且每個(gè)Plane可以進(jìn)行單獨(dú)的頁(yè)編程和塊擦除操作[7]。進(jìn)行雙平面操作時(shí),必須將Plane0和Plane1分為一組(記為1組),Plane2和Plane3分為一組(記為2組)。只能同時(shí)對(duì)每一組里的兩個(gè)Plane進(jìn)行操作,如圖4所示。不能交叉,如果同時(shí)對(duì)Plane0和Plane3、Plane1和Plane2操作是不正確的。
在進(jìn)行交錯(cuò)雙平面編程的時(shí)候,首先使能CE1,即選中chip1。對(duì)chip1中的1組進(jìn)行雙平面寫入操作時(shí),1組的每一次操作都將完成Plane0和Plane1中兩個(gè)對(duì)稱塊上同一位置的一頁(yè)寫入操作(包括命令字、地址、數(shù)據(jù)),之后等待200μs的自動(dòng)編程忙狀態(tài)。這時(shí)對(duì)2組進(jìn)行寫入操作,其過(guò)程與對(duì)1組操作一樣,之后等待200 μs。這時(shí)控制端使能CE2,即選中chip2,對(duì)chip2中的1組和2組進(jìn)行操作,其過(guò)程與chip1中的操作一樣,如圖5所示。交錯(cuò)雙平面頁(yè)編程與普通的FLASH頁(yè)編程(Page Program Operation)比較可知,普通的頁(yè)編程在寫入一頁(yè)數(shù)據(jù)后要等待200 μs的頁(yè)編程時(shí)間;而使用交錯(cuò)雙平面頁(yè)編程時(shí),是在寫入兩頁(yè)后才有一次真正的200 μs的頁(yè)編程時(shí)間,節(jié)省了一次頁(yè)編程時(shí)間,交錯(cuò)雙平面頁(yè)編程操作流程如圖6所示。

圖4 K9WBG08U1M型內(nèi)部陣列結(jié)構(gòu)圖

圖5 交錯(cuò)雙平面頁(yè)編程寫操作原理圖

圖6 FLASH交錯(cuò)雙平面頁(yè)編程操作流程圖
采用交錯(cuò)雙平面操作,其寫入速度的理論極限值為40 Mbyte/s。假設(shè)數(shù)據(jù)以40 Mbyte/s的速度寫入,完成第一組某塊的一頁(yè)寄存器操作后,該組將進(jìn)入200μs的等待時(shí)間,此時(shí)依次對(duì)chip1中的2組、chip2中的1組、chip2中的2組進(jìn)行寫入操作[8]。整個(gè)寫入時(shí)間為:
6 ×4 096 byte/40 Mbyte/s=585.9 μs>200 μs
由此可見(jiàn),在第四個(gè)組完成寫入寄存器操作后,第一個(gè)組的等待時(shí)間已經(jīng)結(jié)束,可以繼續(xù)從第一組開(kāi)始寫入。整個(gè)過(guò)程中沒(méi)有等待時(shí)間。由于極限速度是40 Mbyte/s,本設(shè)計(jì)為了增加冗余,F(xiàn)PGA控制器對(duì)FLASH以30 Mbyte/s的速度進(jìn)行寫入操作。
試驗(yàn)時(shí),在對(duì)節(jié)點(diǎn)的FLASH完成無(wú)效塊檢測(cè)后,采用30 Mbyte/s的速度對(duì)FLASH進(jìn)行交錯(cuò)雙平面寫入操作。寫入操作上位機(jī)截圖如圖7所示。最后將存入FLASH中的數(shù)據(jù)通過(guò)FPGA經(jīng)由USB控制芯片(CY7C68013)讀取到上位機(jī),進(jìn)行數(shù)據(jù)分析。

圖7 上位機(jī)寫入操作
使用遞增數(shù)對(duì)FLASH進(jìn)行寫入操作,遞增數(shù)的數(shù)據(jù)格式為:大幀=96×小幀(250 byte),小幀格式為:遞增數(shù)(00-F6)、1位幀計(jì)數(shù)(從00開(kāi)始)和小幀幀標(biāo)志(EB 90);大幀格式為:當(dāng)記到96個(gè)小幀時(shí),寫3位幀計(jì)數(shù)(從00 00 00開(kāi)始)和大幀幀標(biāo)志(14 6F)。圖8為上位機(jī)讀取的遞增數(shù)。

圖8 上位機(jī)讀取的遞增數(shù)
該系統(tǒng)對(duì)聲音無(wú)線傳感網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)進(jìn)行設(shè)計(jì),利用交錯(cuò)雙平面頁(yè)編程操作實(shí)現(xiàn)了對(duì)FLASH的高速數(shù)據(jù)存儲(chǔ)。有效地保證了節(jié)點(diǎn)因數(shù)據(jù)量大和傳輸速率受限而引起的數(shù)據(jù)不能及時(shí)處理和交互的問(wèn)題。通過(guò)試驗(yàn)表明,該存儲(chǔ)方式穩(wěn)定、可靠,為整個(gè)試驗(yàn)系統(tǒng)的正常工作和后續(xù)分析提供了有力的保障。
[1]趙海,趙杰,劉錚,等.一種無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,30(6):809-812.
[2]佟吉鋼,張振新,陳增強(qiáng),等.基于FPGA的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2009,22(3):417-421.
[3]梁小滿,馬行坡.無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)技術(shù)研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2009,26(2):439-443.
[4]陸浩,王振占.高速大容量固態(tài)存儲(chǔ)器設(shè)計(jì)[J].計(jì)算機(jī)工程,2011,37(15):226-231.
[5]吳萌,劉波.高速、大容量視頻數(shù)據(jù)存儲(chǔ)、傳輸系統(tǒng)設(shè)計(jì)[J].電子器件,2009,32(3):638-642.
[6]李超,王虹現(xiàn),邢孟道,等.高速大容量FLASH存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].火控雷達(dá)技術(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].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(11):3006-3009.