【文章內容簡介】
rogator 1 Tag 2 bit: 是否需要回復 0 需要回復 1 不需要回復 3 bit: Broadcast 廣播類型 0 Broadcast 1 對多(此時后續(xù)字段 Target ID 沒有意義,可忽略) 1 point to point 點對點 4 bit 7 bit:保留,為 0。 當網絡處于初始化階段,由 Interrogator 和 Tag 發(fā)出的 Broadcast 廣播命令包建議 If Reply 字段設置為 0,即不需要回復。 10 10 Group ID field 該字段共 3bytes,用于唯一標志 Interrogator 和 tag 所屬的網絡 ,只有同屬于同一個Group ID 的 Interrogator 和 tag 之間、 tag 和 tag 之間才能夠進行通訊。 Group ID 在Interrogator 發(fā)出第一個用于確定網絡拓撲結構的命令廣播時確定,以后每一個監(jiān)測到該廣播并且沒有 Group ID 標志的 tag 都將該 Group ID 拷貝作為自身的 Group ID。 Source ID field 該字段共 6bytes,為發(fā)送廣播的 tag 或者 interrogator 的 id。 Tag ID 和 Interrogator ID用于唯一標志每一個 Tag 和 Interrogator,每一個 tag 和 interrogator 的 id 在出廠都已經確定寫入 ROM 中,該 id 都固定無法修改。 Target ID field 該字段共 6bytes,為接收廣播的 tag 或者 interrogator 的 id。 Tag ID 和 Interrogator ID用于唯一標志每一個 Tag 和 Interrogator,每一個 tag 和 interrogator 的 id 在出廠都已經確定寫入 ROM 中,該 id 都固定無法修改。如果廣播形式為 1 對多的方式,則該字段沒有意義,其值可能為任何值。 如果廣播形式為 1 對多的形式,則字段沒有意 義,為固定值 0XFFFFFFFFFFFF。 Command Code field 該字段共 1byte,表示具體的命令,根據命令需要進行不同的操作。已定義的命令操作如下: 命令代碼 命令名 命令類型 包類型 說明 0x10 Discovery Broadcast 命令包 確定網絡中所有激活的 tag,接收到該命令的 tag 需要回復自身采集的數(shù)據。 0x11 Discovery with ID Broadcast 命令包 用于檢查網絡中所有激活的tag,接收到該命令的 tag 需要回復返回自身的 tag id 0x12 Rediscovery Broadcast 命令包 當路由出現(xiàn)問題(父節(jié)點無法返回數(shù)據確認)時 tag 需要發(fā)出該命令,接收到該命令的 tag 需要做出回復確認 0x20 Location Point to point 命令包 用于確定具體的 tag 是否在網絡中存在,接收到該命令的 tag 需要回復確認 11 11 0x31 禁止使用,其余未作出規(guī)定的命令代碼均作為保留使用。 CRC field CRC 校驗字段,共 2 bytes。 數(shù)據包 數(shù)據包的格式如下,用于在 Tag 和 Tag 之間, Tag 和 Interrogator 之間 傳輸數(shù)據,數(shù)據包長度為( 21+N) byte。 Package Identify field 0x07 表示該包屬于數(shù)據包。 Group ID field 該字段共 3bytes,用于唯一標志 Interrogator 和 tag 所屬的網絡,只 有同屬于同一個Group ID 的 Interrogator 和 tag 之間、 tag 和 tag 之間才能夠進行通訊。 Group ID 在Interrogator 發(fā)出第一個用于確定網絡拓撲結構的命令廣播時確定,以后每一個監(jiān)測到該廣播并且沒有 Group ID 標志的 tag 都將該 Group ID 拷貝作為自身的 Group ID。 Source ID field 該字段共 6bytes,為發(fā)送廣播的 tag 或者 interrogator 的 id。 Tag ID 和 Interrogator ID用于唯一標志每一個 Tag 和 Interrogator,每一個 tag 和 interrogator 的 id 在出廠都已經確定寫入 ROM 中,該 id 都固定無法修改。 Target ID field 該字段共 6 bytes,為接收廣播的 Tag 或者 Interrogator 的 ID。 Tag ID 和 Interrogator ID用于唯一標志每一個 Tag 和 Interrogator,每一個 Tag 和 Interrogator 的 ID 在出廠都已經確Prefix Package Identify Group ID Source ID Target ID Data Length Data CRC 0xFF31 0x 07 3 bytes 6 bytes 6 bytes 1 byte N bytes 2 bytes 12 12 定寫入 ROM 中,該 ID 都固定無法修改。如果廣播形式為一對多的方式,則該字段沒有意義,其值可能為任何值。 Data Length field 該字 段共一個字節(jié),表示后續(xù) Data字段的字節(jié)數(shù),所以 Data字段最多只能有 28 = 256 bytes,但是受限于整個數(shù)據包最多只能有 132 bytes,所以本字段最大取值只能為( 132 – 21 = 111)。 Data field 具體的數(shù)據。 CRC field 2 bytes,用于 CRC 校驗。 Response 回復 當 Interrogator 或者 Tag收到需要回復的命令時進行回復時采用該種數(shù)據格式,包總長度為( 22 + N) bytes。 Package Type field 7 6 5 4 3 2 1 0 Reserved Reserved Reserved Reserved Reserved 回復模式 數(shù)據確認 數(shù)據確認:表示收到到數(shù)據正確與否。 0 表示收到的數(shù)據正確 1 表示收到的數(shù)據有錯誤,需要重發(fā) 回復模式: 01 表示回復的對象是數(shù)據 10 表示回復的對象是重新路由廣播 00, 11 保留使用 Prefix Package Identify Package Type Group ID Source ID Target ID Data Length Data CRC 0xFF31 0x EA 1 byte 3 bytes 6 bytes 6 bytes 1 byte N bytes 2 bytes 13 13 Group ID field 該字段共 3bytes,用于唯一標志 Interrogator和 Tag所屬的網絡,只有同屬于同一個 Group ID 的 Interrogator 和 Tag之間、 Tag 和 Tag 之間才能夠進行通訊。 Group ID 在 Interrogator發(fā)出第一個用于確定網絡拓撲結構的命令廣播時確定,以后每一個監(jiān)測到該廣播并且沒有Group ID 標志的 Tag 都將該 Group ID 拷貝作為自身的 Group ID。 Source ID field 該字段共 6bytes,為發(fā)送廣播的 tag 或者 interrogator 的 id。 Tag ID 和 Interrogator ID 用于唯一標志每一個 Tag 和 Interrogator,每一個 tag 和 interrogator 的 id 在出廠都已經確定寫入 ROM 中,該 ID 都固定無法修改。 Target ID field 該字段共 6bytes,為接收廣播的 tag 或者 interrogator 的 ID。 Tag ID 和 Interrogator ID 用于唯一標志每一個 Tag 和 Interrogator,每一個 tag 和 interrogator 的 ID 在出廠都已經確定寫入 ROM 中,該 id 都固定無法修改。 Data Length field 該字段共 1bytes,表示后續(xù)的 Data 字段一共有多少 bytes(包括填充字節(jié))。所以 Data字段最多有 28 = 256bytes,但是受限于整個數(shù)據包最多只能由 bytes,所以該字段最大為bytes。 Data field 廣播包攜帶的具體數(shù)據,包括填充字節(jié) 0xFF 長度根據需要確定 CRC field CRC 校 驗字段,共 2 bytes。 14 14 鏈路管理 鏈路管理的主要功能為創(chuàng)建、維持和釋放鏈路,每個節(jié)點都需要維持一張鏈路表,通過鏈路表來管理該節(jié)點發(fā)起和收到的所有連接。 A.一個節(jié)點可以發(fā)起鏈接類型包括: 不需要回復的廣播:成功發(fā)出廣播包即釋放鏈接 需要回復的廣播:成功發(fā)出廣播包即釋放鏈接 點對點數(shù)據傳輸:成功發(fā)出數(shù)據包后需要維持該鏈路,直到收到 ack 后釋放鏈接 注:如果收到的 ack 要求重發(fā),則重新開始發(fā)送過程。 B.一個節(jié)點可以接收的鏈接類型包括: 接收不需要回復的廣播:對該廣播包解析完畢后即馬上釋 放鏈接 接收需要回復的廣播:對該廣播包解析完畢后開始發(fā)送回復數(shù)據包,發(fā)送成功后釋放鏈接 接收點對點傳輸?shù)臄?shù)據:對該包解析完畢成功發(fā)回 ack 后釋放鏈接 C.一個節(jié)點需要轉發(fā)的數(shù)據包括: 轉發(fā)需要回復的廣播:成功發(fā)出廣播包即釋放鏈接 轉發(fā)不需要回復的廣播:成功發(fā)出廣播包即釋放鏈接 轉發(fā)數(shù)據:成功發(fā)出數(shù)據包后需要維持該鏈路,直到收到 ack 后釋放鏈接 注:如果收到的 ack 要求重發(fā),則重新開始發(fā)送過程。 一個節(jié)點至少要同時維持 3 個鏈接,一個用于發(fā)送數(shù)據,一個用于接收數(shù)據,一個用于轉發(fā)數(shù)據,如果節(jié) 點維持的鏈接數(shù)達到了最大鏈接數(shù),則該節(jié)點將拒絕所有連接請求并且也不能發(fā)起任何新的連接請求。 鏈路表結構如下: 鏈路編號 鏈路類型 連接類型 鏈路狀態(tài) 數(shù)據包地址 數(shù)據包長度 1byte 1byte 1byte 1byte 2byte 1byte 發(fā)送需要 ack 發(fā)送不需要 ack 接收 轉發(fā) 廣播 數(shù)據 ack 已連接 已釋放 數(shù)據包存放的內存地址 數(shù)據包的長度,最長 256byte MAC 子層 Interrogator和所有的 Tag 都使用相同的頻點進行數(shù)據傳輸,使用同一個信道,因此必須使用一個協(xié)議控 制和分配節(jié)點對信道的使用權,即 MAC( Media Access Control 介質訪問控制)技術。 CSMA 在節(jié)點發(fā)送數(shù)據前先監(jiān)聽網絡上是否有別的節(jié)點發(fā)送的載波信號,如果有,說明信道忙,