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