單片機(jī)的自組織網(wǎng)絡(luò)互同步節(jié)點(diǎn)設(shè)計(jì)
摘要:針對自組織網(wǎng)絡(luò)中的互同步算法進(jìn)行了研究,基于單片機(jī)設(shè)計(jì)了一種便于驗(yàn)證學(xué)習(xí)的實(shí)體節(jié)點(diǎn),彌補(bǔ)了單純軟件仿真的不足。該設(shè)計(jì)具有簡單直觀、網(wǎng)絡(luò)規(guī)模擴(kuò)展靈活的特點(diǎn),對于掌握無線傳感網(wǎng)或多智能體等進(jìn)行同步和協(xié)調(diào)的自組織組網(wǎng)技術(shù)有一定的借鑒意義。
關(guān)鍵詞:單片機(jī); 自組織網(wǎng)絡(luò); 互同步
引言
隨著無線網(wǎng)絡(luò)與電子技術(shù)的發(fā)展和普及,各類專業(yè)設(shè)備甚至民用產(chǎn)品之間的數(shù)據(jù)傳輸已經(jīng)不滿足于簡單的點(diǎn)對點(diǎn)形式,對組網(wǎng)的需求日益突出。為了應(yīng)對這一需求,自組織網(wǎng)絡(luò)技術(shù)應(yīng)運(yùn)而生。
自組織網(wǎng)絡(luò)的突出特點(diǎn)是,沒有傳統(tǒng)的中心控制節(jié)點(diǎn)來協(xié)調(diào)組網(wǎng)過程,分布的節(jié)點(diǎn)之間的組織主要靠“臨時(shí)性的自治”實(shí)現(xiàn)。實(shí)現(xiàn)無線自組織網(wǎng)絡(luò)的基礎(chǔ)之一是網(wǎng)絡(luò)互同步技術(shù)。該技術(shù)通過網(wǎng)絡(luò)節(jié)點(diǎn)之間時(shí)間基準(zhǔn)的相互交換和相互控制,實(shí)現(xiàn)節(jié)點(diǎn)之間的相互同步。
由于無線節(jié)點(diǎn)硬件成本偏高,相關(guān)軟件使用也較為復(fù)雜,在進(jìn)行相關(guān)技術(shù)的研究和學(xué)習(xí)時(shí),大多通過計(jì)算機(jī)軟件仿真。這種純粹軟件仿真實(shí)驗(yàn)的形式更適用于已有一定的實(shí)踐經(jīng)驗(yàn)和算法基礎(chǔ)的人員,對于其進(jìn)行更專業(yè)的算法學(xué)習(xí)和研究有較大幫助。但由于缺乏具體的實(shí)物,初學(xué)者難以建立起直觀的感性認(rèn)識。
為此,本設(shè)計(jì)首先選擇低成本的單片機(jī)作為核心,利用簡單的光電信號替代WiFi、藍(lán)牙等無線通信形式,最大程度地降低了硬件制作成本。其次,剔除了復(fù)雜的通信協(xié)議棧,僅關(guān)注于自組織網(wǎng)絡(luò)中互同步技術(shù)的核心算法實(shí)現(xiàn),最大程度地簡化了學(xué)習(xí)的難度。所設(shè)計(jì)的節(jié)點(diǎn)組成的學(xué)習(xí)平臺不僅簡單直觀,而且可以根據(jù)需要驗(yàn)證各類不同算法,網(wǎng)絡(luò)規(guī)模也可靈活調(diào)整,不受節(jié)點(diǎn)數(shù)量增加的限制。
1 節(jié)點(diǎn)硬件設(shè)計(jì)
綜合考慮成本、供電和算法更新等方面,選擇ATtiny13A-10pu作為仿真節(jié)點(diǎn)的核心。該芯片是一款低功耗的8位微處理器,可以工作在0~4 MHz@1.8~5.5 V狀態(tài),用一粒普通的CR2032紐扣電池就可以為其提供3 V供電,內(nèi)部有1 KB Flash RAM,64字節(jié)RAM和64字節(jié)EEPROM,空間雖然不大,但做基本算法驗(yàn)證已經(jīng)夠用。除此之外它還有4路10位ADC可作為光電信號檢測之用。在光電檢測元件方面采用的是常見的光敏電阻5516,當(dāng)然也可以選擇性能更穩(wěn)定、一致性更好的環(huán)保光敏電阻。
除了上面所述的單片機(jī)、光敏電阻以外,節(jié)點(diǎn)還需要有一個(gè)發(fā)光二極管用于顯示各節(jié)點(diǎn)間的同步狀態(tài)。當(dāng)初始亮滅不一致的節(jié)點(diǎn)經(jīng)過一段時(shí)間后,以相同時(shí)間點(diǎn)、頻率進(jìn)行閃爍,這時(shí)表示網(wǎng)絡(luò)同步成功。對發(fā)光二極管只要求電壓電流適當(dāng)即可,設(shè)計(jì)中選擇的是1.7 V、2 mA的低電流發(fā)光二極管,低電流更有利于延長節(jié)點(diǎn)電池的工作時(shí)長。
整個(gè)電路力求簡潔,因而沒有設(shè)計(jì)復(fù)位電路。另外,由于片內(nèi)振蕩器已經(jīng)進(jìn)行了9.6 MHz的標(biāo)定,經(jīng)8分頻后可以實(shí)現(xiàn)1.2 MHz的系統(tǒng)時(shí)鐘,已經(jīng)可以滿足本設(shè)計(jì)的需要,所有也無需外接晶振。電路原理圖如圖1所示。
需要注意的是,圖中電阻R1、R2阻值的具體選擇和電源電壓、發(fā)光二極管及光敏電阻的參數(shù)有關(guān)。電阻R1的作用主要是限流,其阻值可參考公式R1=(Up-U1)/I1選擇,其中Up為供電電壓,U1為發(fā)光二極管壓降,I1為發(fā)光二極管的電流。電阻R2的阻值主要受到光敏電阻R3工作效果的影響,選定的原則主要由保證光敏電阻在日光下可以對光線變化作出反應(yīng)的靈敏程度來決定,在最初確定時(shí)可以用電位計(jì)來替換固定電阻R2,通過試驗(yàn),1 kΩ阻值的電阻已經(jīng)可以保證節(jié)點(diǎn)正常工作。
另外,如果不采用節(jié)點(diǎn)間相互分離的獨(dú)立電路設(shè)計(jì),而采用多個(gè)節(jié)點(diǎn)固定在同一塊底板上的布線,也可以不采用獨(dú)立的紐扣電池供電方式,統(tǒng)一為所有的節(jié)點(diǎn)提供5 V電源供電。
2 算法設(shè)計(jì)與實(shí)現(xiàn)
2.1 互同步算法原理
為了更好地對算法進(jìn)行解釋,首先簡單介紹自組織網(wǎng)絡(luò)的生物原型。在自然界中有很多自組織的生物系統(tǒng),在這些系統(tǒng)中,個(gè)體一般不具備高智商,對信息的獲取和處理能力也十分有限,盡管如此,整個(gè)系統(tǒng)卻可以在群體行為上呈現(xiàn)出令人吃驚的統(tǒng)一性和協(xié)同性。比如魚群、鳥群等生物群體在集體活動時(shí),雖然沒有一個(gè)中心指揮,系統(tǒng)整體狀態(tài)仍然可以依賴構(gòu)成系統(tǒng)的個(gè)體間的相互作用,形成一個(gè)有機(jī)整體。
在這里只研究這一行為實(shí)現(xiàn)的基礎(chǔ),互同步的相關(guān)算法。算法的實(shí)現(xiàn)非常類似于螢火蟲同步閃爍,本設(shè)計(jì)最終呈現(xiàn)的效果也是模擬一個(gè)有眾多“螢火蟲”(節(jié)點(diǎn))的網(wǎng)絡(luò)同步。
開始的時(shí)候,眾多獨(dú)立節(jié)點(diǎn)發(fā)光二極管的閃爍是隨機(jī)的。但是,隨著時(shí)間的推移,它們能夠慢慢地與最近的鄰居同步,隨著時(shí)間的推移,最后所有的節(jié)點(diǎn)都同步閃爍。
本設(shè)計(jì)采用了一種最簡單的算法來實(shí)現(xiàn)這一過程。首先假設(shè)所有節(jié)點(diǎn)的閃爍頻率是相同的,這就類似于同一種群的螢火蟲具有相同的閃爍頻率一樣,它們最初呈現(xiàn)的不同步其實(shí)只是各自閃爍的時(shí)間點(diǎn)不一樣。這樣在簡化算法實(shí)現(xiàn)的同時(shí),并不失其普遍意義。
算法中設(shè)定了一個(gè)變量,閃爍能力(Power),用于表示節(jié)點(diǎn)閃爍的能力,這個(gè)值隨著時(shí)間會慢慢增加,當(dāng)其增加到一個(gè)臨界閾值(Pth)時(shí),節(jié)點(diǎn)的發(fā)光二極管開始閃爍,隨之這種能力開始逐漸“消耗”,即閃爍能力減小。閃爍能力的變化過程默認(rèn)對于所有的節(jié)點(diǎn)都是一樣的,也就是說所有節(jié)點(diǎn)閃爍的固有頻率是一樣的。
通過光敏電阻,每個(gè)節(jié)點(diǎn)都可以感受到鄰近節(jié)點(diǎn)的存在,這個(gè)過程是通過單片機(jī)的ADC實(shí)現(xiàn)的。這些節(jié)點(diǎn)都依據(jù)相同的原則進(jìn)行同步。如果某個(gè)節(jié)點(diǎn)發(fā)現(xiàn)它比鄰近節(jié)點(diǎn)閃爍得晚,那么下次它將稍稍提前閃爍,經(jīng)過節(jié)點(diǎn)間的相互作用,所有的節(jié)點(diǎn)最終會在同一時(shí)刻按照相同的頻率閃爍。這個(gè)方法雖然簡單,但卻十分有效,基于它的進(jìn)一步研究已經(jīng)在Ad Hoc網(wǎng)絡(luò)的互同步中得到應(yīng)用。相關(guān)算法如圖2所示。
評論