無(wú)線HART數(shù)據(jù)鏈路層設(shè)計(jì)與實(shí)現(xiàn)
3.3.2 狀態(tài)機(jī)
圖3為TDMA狀態(tài)機(jī),該狀態(tài)機(jī)建立在邏輯鏈路層所建立的四張調(diào)度表以及調(diào)度機(jī)制的基礎(chǔ)上,TDMA狀態(tài)機(jī)開(kāi)始于節(jié)點(diǎn)加入無(wú)線HART網(wǎng)絡(luò),加入的同時(shí)建立狀態(tài)機(jī)所需要的超幀表、圖表、鏈路表,開(kāi)始從鄰居節(jié)點(diǎn)接收數(shù)據(jù)并以此為基礎(chǔ)建立鄰居表。節(jié)點(diǎn)維護(hù)存儲(chǔ)著一列待發(fā)送數(shù)據(jù)包,當(dāng)一個(gè)發(fā)送時(shí)隙發(fā)生,節(jié)點(diǎn)將會(huì)嘗試發(fā)送數(shù)據(jù)包。發(fā)送數(shù)據(jù)包包括發(fā)送數(shù)據(jù)包和接收ACK應(yīng)答兩個(gè)過(guò)程。當(dāng)一個(gè)發(fā)送時(shí)隙產(chǎn)生,進(jìn)入發(fā)送狀態(tài)。成功發(fā)送一個(gè)廣播地址的數(shù)據(jù)包在數(shù)據(jù)包發(fā)送之后結(jié)束,并從等待表中刪除。成功發(fā)送一個(gè)非廣播地址的數(shù)據(jù)包,節(jié)點(diǎn)將等待ACK應(yīng)答數(shù)據(jù)包,ACK數(shù)據(jù)包將表明數(shù)據(jù)包是成功接收還是出現(xiàn)接收錯(cuò)誤。如果目的地址是廣播地址,將不會(huì)有ACK應(yīng)答數(shù)據(jù)包,發(fā)送完成并進(jìn)入空閑狀態(tài)進(jìn)行調(diào)度表的更新;成功發(fā)送一個(gè)非廣播地址數(shù)據(jù)包,進(jìn)行數(shù)據(jù)完整性和權(quán)限完整性檢驗(yàn),TDMA狀態(tài)機(jī)進(jìn)入等待ACK狀態(tài),如果無(wú)ACK應(yīng)答表明發(fā)送失敗。如果是一個(gè)共享鏈接,將啟動(dòng)重發(fā)機(jī)制,若最終依然失敗,進(jìn)入空閑狀態(tài)更新調(diào)度表。如果一個(gè)ACK應(yīng)答數(shù)據(jù)包被成功接收,節(jié)點(diǎn)根據(jù)ACK確定發(fā)送是否成功,若發(fā)送成功,進(jìn)入空閑狀態(tài)更新調(diào)度表。如果顯示發(fā)送錯(cuò)誤,將啟動(dòng)重發(fā)機(jī)制。所有的接收鏈接都將在沒(méi)有發(fā)送請(qǐng)求的基礎(chǔ)被全部服務(wù),節(jié)點(diǎn)接收數(shù)據(jù)有三種可能:1)數(shù)據(jù)包的目的地址就是節(jié)點(diǎn)地址;2)數(shù)據(jù)包目的地址是路由地址;3)數(shù)據(jù)包目的地址非以上兩種情況。每一次接收數(shù)據(jù),鄰居表都將被更新維護(hù)。
4 結(jié)論
以無(wú)線HART協(xié)議為基礎(chǔ)根據(jù)工業(yè)現(xiàn)場(chǎng)的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)鏈路層協(xié)議模型。在以無(wú)線HART適配器節(jié)點(diǎn)為平臺(tái)的實(shí)驗(yàn)結(jié)果表明,模型所實(shí)現(xiàn)的時(shí)鐘同步精度達(dá)到30μs,滿足工業(yè)現(xiàn)場(chǎng)要求的前提下降低了節(jié)點(diǎn)的能耗,以模型為基礎(chǔ)的無(wú)線HART節(jié)點(diǎn)成功組建形成無(wú)線HART單跳網(wǎng)絡(luò)。
評(píng)論