基于ZigBee技術(shù)的角度同步采集傳輸系統設計

前6個(gè)時(shí)隙內,主節點(diǎn)依次對各子節點(diǎn)進(jìn)行輪詢(xún),獲取角度信息并對其進(jìn)行校驗。后2個(gè)時(shí)隙用于重傳,當1個(gè)或多個(gè)子節點(diǎn)的信息丟失或校驗發(fā)生錯誤時(shí),采取“先丟失/出錯,先重傳”的方式進(jìn)行重傳。
每個(gè)時(shí)隙內,主節點(diǎn)發(fā)送“開(kāi)始傳輸角度信息”的命令幀至指定子節點(diǎn),并啟動(dòng)時(shí)隙超時(shí)定時(shí)器。子節點(diǎn)在接收到該命令幀后,立刻將從編碼盤(pán)信息中提取出的有效角度信息封裝成幀,經(jīng)由射頻模塊發(fā)送給主節點(diǎn)。當定時(shí)器超時(shí)時(shí),主節點(diǎn)若還未收到該子節點(diǎn)的角度信息幀,或收到角度信息幀但校驗錯誤,則記錄該子節點(diǎn)的編號(以便在重傳時(shí)隙內令其重發(fā)),并轉入輪詢(xún)下一子節點(diǎn)。若接收到正確報文,則直接轉入下一子節點(diǎn)的輪詢(xún)。
4.3子節點(diǎn)采集時(shí)刻同步
組網(wǎng)完成之后,主節點(diǎn)無(wú)線(xiàn)發(fā)送角度采集廣播給各個(gè)子節點(diǎn),指示其以一定頻率采集編碼盤(pán)信息,提取并發(fā)送有效的角度信息。由于主節點(diǎn)以無(wú)線(xiàn)方式發(fā)送角度采集廣播,該廣播到達各個(gè)子節點(diǎn)的時(shí)間可能并不一致。若子節點(diǎn)在收到該廣播后立刻開(kāi)始讀取編碼盤(pán)信息,子節點(diǎn)所讀到并提取的關(guān)節角度并不是同一時(shí)刻點(diǎn)的,導致測量機無(wú)法準確工作,所以需要有“子節點(diǎn)采集時(shí)刻同步”的環(huán)節。
我們采取的做法是:在組網(wǎng)完成之后,主節點(diǎn)發(fā)送角度采集廣播之前, 6個(gè)子節點(diǎn)逐一與主節點(diǎn)進(jìn)行信息交互,子節點(diǎn)求取出信息幀的空中傳輸時(shí)間ti(i為子節點(diǎn)的編號,i=1,2…6;)。當所有子節點(diǎn)接收到主節點(diǎn)發(fā)送的角度采集廣播后,分別延遲(T C ti)時(shí)間再采集編碼盤(pán)信息,其中T為常數,T>max[t1, t2, …t6]。那么,從主節點(diǎn)發(fā)送角度采集廣播的那一時(shí)刻開(kāi)始,各子節點(diǎn)都經(jīng)過(guò)了[ti +(T C ti)] = T時(shí)間后讀取編碼盤(pán)信息,實(shí)現了子節點(diǎn)采集時(shí)刻同步。
求取信息幀空中傳輸時(shí)間ti的具體過(guò)程如圖5所示。子節點(diǎn)i在Ti1時(shí)刻發(fā)送一個(gè)“請求時(shí)間校正幀”給主節點(diǎn),主節點(diǎn)在Ti2時(shí)刻收到該幀,并于Ti3時(shí)刻回復第一個(gè)應答幀,應答幀的內容為時(shí)刻Ti2。子節點(diǎn)在Ti4時(shí)刻收到應答幀,獲得時(shí)間Ti2。主節點(diǎn)在Ti3時(shí)刻后任意延遲一段時(shí)間發(fā)送第二個(gè)應答幀,應答幀的內容為時(shí)刻Ti3,使子節點(diǎn)能在某時(shí)刻獲取時(shí)間Ti3。
注:在此我們假定,信息幀由主節點(diǎn)發(fā)送至子節點(diǎn)需要的空中傳輸時(shí)間和信息幀由子節點(diǎn)發(fā)送至主節點(diǎn)需要的空中傳輸時(shí)間相同且穩定。且信息幀長(cháng)度等于主節點(diǎn)發(fā)送的“角度采集廣播幀”長(cháng)度。
假設主節點(diǎn)的時(shí)鐘超前子節點(diǎn)△Ti,信息幀的空中傳輸時(shí)間為ti,可得:
Ti2 = Ti1 + △Ti + ti ①
Ti4 = Ti3 - △Ti + ti ②
由式①和②聯(lián)立可得:
△Ti = (Ti2 - Ti1 - Ti4 + Ti3)/2
ti = (Ti2 - Ti1 + Ti4 - Ti3)/2
5.主節點(diǎn)和工控機的通信
主節點(diǎn)和工控機采用RS-232 串行數據傳輸,串行口通信方式為異步串行通信,速率為19200bps,信息格式為1位開(kāi)始位、8 位數據位、1個(gè)停止位、無(wú)奇偶校驗位,采用中斷方式進(jìn)行數據傳輸。以下是串口初始化程序片斷:
void ConsoleInit(void)
{
#if defined(USART_USE_BRGH_HIGH)
TXSTA = 0x24;//設置串口發(fā)送狀態(tài)寄存器
#else
TXSTA = 0x20;
#endif
RCSTA = 0x90; //設置串口接收狀態(tài)寄存器
// SPBRG_VAL = CLOCK_FREQ/BAUD_RATE/64 C 1,BAUD_RATE=19200bps
SPBRG = SPBRG_VAL;
TXIE = 1;//默認情況下串口處于發(fā)送狀態(tài),使能發(fā)送中斷
TXIP = 1;
//RCIE = 1;//若需要執行串口接收,使能發(fā)送中斷
//RCIP = 1;
}
6.結論
將信息傳輸無(wú)線(xiàn)化,可免去關(guān)節臂式測量機的臂內電纜線(xiàn),實(shí)現關(guān)節的無(wú)限旋轉。本文設計的“基于ZigBee技術(shù)的角度同步采集傳輸系統”的無(wú)線(xiàn)硬件設計、軟件設計解決方案經(jīng)測試運行穩定,無(wú)線(xiàn)通信誤碼率低、可靠性高、安全性好。在室內測試環(huán)境下,無(wú)線(xiàn)收發(fā)速率可以穩定達到18kbps,重傳后誤碼率不高于10¬-5數量級.
本文作者創(chuàng )新點(diǎn):將ZigBee無(wú)線(xiàn)通信技術(shù)與機械測量相結合,設計了一套基于ZigBee技術(shù)的角度同步采集傳輸系統,應用在關(guān)節臂式測量機上,實(shí)現了關(guān)節的無(wú)限旋轉。
評論