這一節(jié)繼續(xù)繼承之前幀過(guò)濾部分,首先補(bǔ)充一下關(guān)于幀過(guò)濾部分,如果將目標(biāo)地址設(shè)置為0xFFFF,則同一個(gè)網(wǎng)絡(luò)(物理頻道與PANID 都相同),所有節(jié)點(diǎn)都應(yīng)該收到這條信息,這個(gè)信息為廣播信息,0xFFFF為廣播地址。 廣播信息在測(cè)距定位中很有用,標(biāo)簽廣播一個(gè)消息,所有周?chē)幕臼盏綇V播信息回復(fù)即可,標(biāo)簽不同和各個(gè)基站單聊了。
補(bǔ)充完上面的知識(shí),接著說(shuō)自動(dòng)應(yīng)答,自動(dòng)應(yīng)答的作用是收到信息后,通過(guò)幀過(guò)濾后,如果本條信息是發(fā)給我的,我就會(huì)自動(dòng)回復(fù)一條應(yīng)答,這個(gè)回復(fù)行為是硬件實(shí)現(xiàn)的,這個(gè)應(yīng)答時(shí)間非???,在有應(yīng)答的網(wǎng)絡(luò)通信中,利用應(yīng)答可以保證數(shù)據(jù)正確傳輸。當(dāng)然,我的目標(biāo)是用來(lái)測(cè)距的,利用幀過(guò)濾和自動(dòng)應(yīng)答可以實(shí)現(xiàn)非常快的測(cè)距,雖然還沒(méi)有具體概念,后面慢慢實(shí)現(xiàn)。 先上一段關(guān)于自動(dòng)應(yīng)答的說(shuō)明,直接上英文,沒(méi)空翻譯了
大概意思 1 必須使能幀過(guò)濾 2 收到的信息必須有應(yīng)答請(qǐng)求 3系統(tǒng)必須使能自動(dòng)應(yīng)答 在上一例中已經(jīng)實(shí)現(xiàn)了幀過(guò)濾,只需要在發(fā)送端增加“應(yīng)答請(qǐng)求”,在接收端使能“自動(dòng)應(yīng)答“ 發(fā)送端主要代碼修改 msg_f.frameCtrl[0] = 0x1 /*frame type 0x1 == data*/ | 0x40 /*PID comp*/|0x20/* ACK request*/; 接收端使能自動(dòng)應(yīng)答 dwt_enableautoack(1);
其中參數(shù)為turnaround 時(shí)間,接收到信息多久發(fā)出自動(dòng)應(yīng)答,這個(gè)很重要,以后會(huì)用。關(guān)于這個(gè)函數(shù),我略做修改。 void dwt_enableautoack(uint8 responseDelayTime) { uint8 temp = 0; temp |= (uint8)(SYS_CTRL_TXSTRT | SYS_CTRL_TRXOFF) ; dwt_writetodevice(SYS_CTRL_ID,0,1,&temp) ; // Set auto ACK reply delay dwt_write16bitoffsetreg(ACK_RESP_T_ID, 0x2, (responseDelayTime << 8) ) ; //in symbols // Enable auto ACK dw1000local.sysCFGreg |= SYS_CFG_AUTOACK; dwt_write32bitreg(SYS_CFG_ID,dw1000local.sysCFGreg) ; } 增加了對(duì)SYS_CTRL_TXSTRT和SYS_CTRL_TRXOFF寫(xiě)操作,因?yàn)樵贒M1000 手冊(cè)上有如下描述
大概意思是初始化SFD,可以通過(guò)寫(xiě)SYS_CTRL_TXSTRT和SYS_CTRL_TRXOFF 非常有效快速的完成。
上面就是修改的主要代碼了。 關(guān)于自動(dòng)應(yīng)答實(shí)驗(yàn)的方法。 1 TX端發(fā)送信息,在RX端看是否有ATT標(biāo)識(shí),并且是否有TXFRS,ATT標(biāo)識(shí)表明收到一條有應(yīng)答請(qǐng)求的消息,而TXFRS表明接收端已經(jīng)發(fā)送了一條應(yīng)答。 2 在TX端增加接收代碼,打印自動(dòng)應(yīng)答消息 打印結(jié)果如圖,每次回打印5個(gè)字節(jié),下面是多次打印 DM1000手冊(cè)描述,自動(dòng)應(yīng)答為5個(gè)字節(jié),與收到的信息一致。 下面是IEEE 關(guān)于MAC應(yīng)答幀的描述,兩張圖自己看,確實(shí)符合規(guī)范! 還有一點(diǎn),MAC 應(yīng)答幀,幀過(guò)濾不了,直接送到上層!
|
|
來(lái)自: rookie > 《無(wú)線定位》