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

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