專利名稱:基于包的數(shù)據(jù)傳輸?shù)闹谱鞣椒?br>
技術領域:
本發(fā)明涉及一種用于基于包的數(shù)據(jù)傳輸?shù)姆椒ê脱b置,特定來說,涉及一種無線包協(xié)議。
背景技術:
基于包的數(shù)據(jù)傳輸使用各種層,其中傳輸數(shù)據(jù)和相關聯(lián)的控制信息,例如用于發(fā)射器和接收器的地址識別符、數(shù)據(jù)長度、冗余信息等?;诎臄?shù)據(jù)傳輸用于廣泛多種協(xié)議中。存在許多協(xié)議,其中對于特定數(shù)據(jù)的傳輸,額外控制信息大于數(shù)據(jù)有效負載。因此,數(shù)據(jù)的傳輸可顯著地慢下來。特定來說,在無線收發(fā)器(例如,802. 15. 4收發(fā)器)中,其中包字節(jié)的傳輸為電力昂貴的操作,減少由無線裝置發(fā)射的字節(jié)的數(shù)目與由所述無線裝置使用的操作電力直接相關。在許多電池供電的無線收發(fā)器應用(例如,遙控器、游戲控制臺等) 中,消息成幀開銷可構成無線電工作循環(huán)的重要比例,進而對電池壽命有顯著影響。
發(fā)明內容
需要一種基于包的數(shù)據(jù)傳輸?shù)妮^有效方式。根據(jù)一實施例,一種用于在基于包的傳輸系統(tǒng)中發(fā)射數(shù)據(jù)的方法可具有以下步驟通過包含控制信息和有效負載數(shù)據(jù)來組裝包,其中控制信息包含目的地地址;使用包來計算冗余信息;從包剝離目的地地址,且將冗余信息添加到包,其中設定所述包中的控制位,其指示無目的地地址包含于包中;以及發(fā)射所述包。根據(jù)進一步的實施例,可在計算冗余信息之前設定指示無目的地地址包含于所述包中的所述包中的控制位。根據(jù)進一步的實施例,可使用循環(huán)冗余校驗(CRC)來計算冗余信息。根據(jù)進一步的實施例,在組裝期間,目的地地址可包含于幀標頭中。根據(jù)進一步的實施例,在組裝期間,目的地地址可為包含于幀標頭中的第一信息。根據(jù)進一步的實施例,所述包可以無線方式進行發(fā)射。根據(jù)進一步的實施例,所述方法可用802. 15. 4標準進行操作。根據(jù)另一實施例,一種用于在基于包的傳輸系統(tǒng)中接收數(shù)據(jù)的方法可具有以下步驟接收包含控制信息、有效負載數(shù)據(jù)和發(fā)射器冗余信息的包;確定目的地地址是否包含于控制信息中;如果不包含目的地地址,那么將地址插入到控制信息中,且從包移除發(fā)射器冗余信息;使用包來計算接收器冗余信息;以及將接收器冗余信息與發(fā)射器冗余信息進行比較,且如果正確,那么接受包,且否則,丟棄包。根據(jù)進一步的實施例,可使用循環(huán)冗余校驗(CRC)來計算冗余信息。根據(jù)進一步的實施例,可通過校驗是否在幀標頭中設定預定位來執(zhí)行所述確定步驟。根據(jù)進一步的實施例,所述方法可具有使用所插入的地址來計算CRC種子的步驟。根據(jù)進一步的實施例,可存儲發(fā)射器冗余信息。根據(jù)進一步的實施例,所述包可以無線方式進行發(fā)射。根據(jù)進一步的實施例,所述方法可用802. 15. 4傳輸標準進行操作。根據(jù)又一實施例,一種發(fā)射器可包括消息組裝單元;冗余信息計算單元,其與消息組裝單元耦合;以及發(fā)射單元,其與消息組裝單元耦合,其中消息組裝單元可操作以通過包含控制信息和有效負載數(shù)據(jù)來組裝包,其中控制信息包含目的地地址;將包轉發(fā)到冗余信息計算單元以用于計算冗余信息;從包剝離目的地地址,且將冗余信息添加到包;設定包中的控制位,其指示無目的地地址包含于所述包中;以及將包轉發(fā)到發(fā)射單元。根據(jù)進一步的實施例,所述發(fā)射器可為可操作以在將包轉發(fā)到冗余信息計算單元之前設定指示無目的地地址包含于所述包中的所述包中的控制位。根據(jù)進一步的實施例,冗余信息計算單元可為循環(huán)冗余校驗(CRC)單元。根據(jù)進一步的實施例,發(fā)射單元可為無線發(fā)射單元。根據(jù)進一步的實施例,無線發(fā)射單元可根據(jù) 802. 15.4標準進行操作。根據(jù)進一步的實施例,發(fā)射器可為具有1 接口的集成電路中的收發(fā)器的部分。根據(jù)進一步的實施例,發(fā)射器可進一步包括電池作為電源。根據(jù)又一實施例,一種接收器可包括消息重構單元;冗余信息計算單元,其與消息組裝單元耦合;以及接收單元,其與消息重構單元耦合且可操作以接收包含控制信息、有效負載數(shù)據(jù)和發(fā)射器冗余信息的包,其中消息重構單元可操作以確定目的地地址是否包含于控制信息中;如果不包含目的地地址,那么消息重構單元可操作以將地址插入到控制信息中,且從包移除發(fā)射器冗余信息;將包轉發(fā)到冗余計算單元以用于計算接收器冗余信息; 以及將接收器冗余信息與發(fā)射器冗余信息進行比較,且如果正確,那么接受包,且否則,丟棄包。根據(jù)進一步的實施例,冗余信息計算單元可為循環(huán)冗余校驗(CRC)單元。根據(jù)進一步的實施例,消息重構單元可通過校驗是否在包的幀標頭中設定預定位來確定是否包含目的地地址。根據(jù)進一步的實施例,CRC單元可為可操作以在完全接收到包之前使用所插入的地址來計算CRC種子。根據(jù)進一步的實施例,接收器可進一步包括用以存儲發(fā)射器冗余信息的存儲器。根據(jù)進一步的實施例,接收器可進一步包括用以存儲所插入的地址的存儲器。根據(jù)進一步的實施例,接收單元可為無線接收單元。根據(jù)進一步的實施例,無線接收單元可用802. 15. 4標準進行操作。根據(jù)進一步的實施例,接收器可為具有1 接口的集成電路中的收發(fā)器的部分。根據(jù)進一步的實施例,接收器可進一步包括電池作為電源。根據(jù)又一實施例,一種收發(fā)器可包括冗余信息計算單元;消息組裝和重構單元, 其與冗余信息計算單元耦合;收發(fā)器單元,其與消息組裝單元耦合且用于發(fā)射和接收包,其中消息組裝和重構單元針對發(fā)射可操作以通過包含控制信息和有效負載數(shù)據(jù)來組裝包, 其中控制信息包含目的地地址;將包轉發(fā)到冗余信息計算單元以用于計算冗余信息;從包剝離目的地地址,且將冗余信息添加到包;設定包中的控制位,其指示無目的地地址包含于所述包中;以及將包轉發(fā)到發(fā)射單元;且進一步針對接收可操作以確定目的地地址是否包含于所接收的包的控制信息中;如果不包含目的地地址,那么將地址插入到控制信息中, 且從包移除所接收的冗余信息;將包轉發(fā)到冗余計算單元以用于計算接收器冗余信息;以及將接收器冗余信息與所接收的冗余信息進行比較,且如果正確,那么接受包,且否則,丟棄包。根據(jù)進一步的實施例,冗余信息計算單元可為循環(huán)冗余校驗(CRC)單元。根據(jù)進一步的實施例,收發(fā)器單元可為無線收發(fā)器單元。根據(jù)進一步的實施例,無線收發(fā)器單元可根據(jù)802. 15. 4標準進行操作。根據(jù)進一步的實施例,收發(fā)器可進一步包括1 接口。根據(jù)進一步的實施例,收發(fā)器可進一步包括電池作為電源。根據(jù)進一步的實施例,收發(fā)器可進一步包括用以存儲所接收的冗余信息的存儲器。根據(jù)進一步的實施例,收發(fā)器可進一步包括用以存儲所插入的地址的存儲器。根據(jù)進一步的實施例,收發(fā)器可為可操作以在將包轉發(fā)到冗余信息計算單元之前設定指示無目的地地址包含于所述包中的所述包中的控制位。
可通過參考結合附圖作出的以下描述內容來獲得對本發(fā)明及其優(yōu)點的更完整理解,附圖中圖1為根據(jù)實施例的具有發(fā)射器和接收器的系統(tǒng)的框圖;圖2為根據(jù)實施例的收發(fā)器的框圖;圖3和圖4展示基于包的數(shù)據(jù)傳輸?shù)牟煌瑢嵤├?;圖5展示CRC引擎的元件;圖6展示示范性CRC計算;以及圖7展示CRC引擎的一般元件。盡管已參考本發(fā)明的實例實施例而描繪、描述及界定了本發(fā)明的實施例,但所述參考并不意味著對本發(fā)明的限制,且不應推斷出此類限制。所揭示的標的物能夠在形式及功能上作出相當多的修改、更改及等效物,如相關領域的且受益于本發(fā)明的一般技術人員將想到。本發(fā)明的所描繪及描述的實施例僅為實例,且并非窮舉本發(fā)明的范圍。
具體實施例方式因此,在基于包的通信中,尤其在本文中所提及的專有無線通信情形中,需要設計一種通信協(xié)議,其允許無線電傳輸工作循環(huán)的節(jié)約和包成幀開銷的減少,以便通過減少所發(fā)射的字節(jié)的數(shù)目而減少由無線裝置使用的操作電力。在無線和有線通信網(wǎng)絡中,基于包的數(shù)據(jù)傳輸可包含發(fā)射和接收單元的地址識別符作為控制信息。因此,在接收后,接收器可立即校驗所述傳輸是否打算由此單元接收,且如果不是的話,那么丟棄所接收的信息。根據(jù)本發(fā)明的教示,(例如)通過推斷包或幀的目的地地址來省略目的地地址而實現(xiàn)用于無線協(xié)議的包或幀長度的減小。通過從包或幀中的其它信息(例如,冗余或安全信息)推斷目的地地址,可從每一包或幀省去目的地地址,且進而減少整體包或幀長度。例如,可使用循環(huán)冗余校驗(CRC)來產生推斷目的地地址的額外信息,如將在下文更詳細地闡釋。此數(shù)據(jù)長度減少可在目標應用領域中通常為百分之十。 因此,傳輸可更快,且最重要的是,對于電池操作的系統(tǒng)中的無線傳輸,需要較少的能量來發(fā)射數(shù)據(jù)。這可在發(fā)射非常少(但不斷地)數(shù)據(jù)的裝置(例如,包含無線鼠標和鍵盤的無線輸入裝置)中是有利的。在鼠標或鍵盤的情況下,有效負載經(jīng)常顯著小于包或幀中的控制信息。因此,減少控制信息可對速度和能量節(jié)約非常有益。圖1展示使用循環(huán)冗余(CRC)單元110來將額外冗余添加到所發(fā)射的信息的用于基于包的數(shù)據(jù)傳輸?shù)南到y(tǒng)100、105??墒褂闷渌哂喾椒?,如將從本發(fā)明中明白。可提供消息組裝單元130,其接收數(shù)據(jù)有效負載120和幀控制信息150以及其它信息(未圖示)。幀控制信息150可包含位160,所述位160在設定時向消息組裝單元130指示具有或不具有目的地地址的包或幀將被產生且發(fā)射。幀控制信息150可包含多個其它控制位,所述多個其它控制位控制消息組裝單元如何配置待發(fā)射的數(shù)據(jù)。這些可包含廣播模式、確認模式等。 消息組裝單元130與發(fā)射器單元140耦合以用于有線或無線傳輸。圖1還展示電池電源單元170,其指示發(fā)射器可為移動無線裝置。在接收器側處,有線或無線接收器145與重構單元135耦合。根據(jù)實施例,接收器單元145從(例如)寄存器或存儲器125接收單元地址。重構單元135與CRC單元115耦合,所述CRC單元115可能與發(fā)射器100的CRC單元110相同。再次,接收器也可由電池供電,如由虛線框175指示。接收器105接收消息且對幀控制信息進行解碼,以確定所接收的消息的配置。將了解,發(fā)射器100和接收器105可經(jīng)組合以形成收發(fā)器。在此實施例中,僅需要單個CRC單元且所述單個CRC單元可由相應的接收和發(fā)射電路共享。使用CRC方法通常需要包含待由CRC單元110使用預定義的生成多項式處理的控制信息和數(shù)據(jù)有效負載的數(shù)據(jù),如將在下文更詳細地闡釋。接著,CRC計算的結果通常添加(例如,附加)到待發(fā)射的數(shù)據(jù)。也知道生成多項式的接收器105將相同算法應用到所述數(shù)據(jù),且將結果與已添加到傳輸?shù)乃鼋Y果進行比較。因此,可在接收器側處檢驗正確傳輸。在傳輸受干擾而使得傳輸數(shù)據(jù)已被破壞的情況下,接收器將產生不同的結果,且接著丟棄所接收的包或幀并請求重新傳輸??墒褂镁€性反饋移位寄存器(LFSR)執(zhí)行CRC計算,如將在下文更詳細地闡釋。然而,可能更具循環(huán)效益的是用僅計算剩余部分的面向字節(jié)方法來計算CRC。為了保持與接收同步,根據(jù)各種實施例,這可為有益的。根據(jù)一實施例,使用此冗余校驗來減少所發(fā)射的數(shù)據(jù)的量。例如,如果位160被設定為“0”,那么這將向消息組裝單元130指示在包或幀中將不包含目的地地址。在待發(fā)射的數(shù)據(jù)流中,例如,消息組裝單元130在幀標頭中包含此位。因此,接收器將能夠立即辨識目的地地址是否存在。如果此位被設定為“0”,那么消息組裝單元130接著將從所發(fā)射的包或幀刪去目的地地址,且使接收器處的接受決策僅基于所接收的幀校驗序列,所述幀校驗序列在圖1所示的實施例中為CRC。如上文所提及,“目的地地址存在”旗標保留在幀標頭(幀控制字段)中,且設定為假(0)以用信號表示推斷尋址模式。發(fā)射器在包含目的地地址的完整幀上計算CRC,但接著在發(fā)射包或幀之前刪去目的地地址(DAddr)。因此,可從 CRC結果推斷出目的地地址,如將在下文闡釋。接收器105通過插入其自己的地址來校驗CRC,如將在下文闡釋。在匹配的情況下,幀被接受,否則其被默默地丟棄。這樣,CRC過濾接管地址匹配過濾的角色。如將了解, 可使用任何其它冗余校驗或甚至安全編碼,所述安全編碼將目的地地址包含到產生已知結果的算法中。特定來說,在無線系統(tǒng)中,由于成幀開銷變得較短,所以無線電的工作循環(huán)減少且處理量得以增加。由于由發(fā)送單個字節(jié)所消耗的能量可能超過成百的MCU字節(jié)操作的能量預算,所以對電池壽命的影響可為顯著的。
圖2展示另一實施例,其中收發(fā)器裝置320經(jīng)由串行接口而與微控制器或處理器 310耦合且經(jīng)由匹配電路330而與天線340耦合。收發(fā)器320可經(jīng)設計以用無線傳輸協(xié)議 (例如,根據(jù)802. 15.4標準)進行操作。為此,收發(fā)器裝置包括所有必要的元件(例如,媒體接入控制(MAC)層、物理層PHY、接口、電力管理和存儲器等)以根據(jù)標準進行發(fā)射和接收。根據(jù)各種實施例的額外功能性可在收發(fā)器裝置320中或在微控制器310中實施,如由具有目的地地址指示位160的幀控制寄存器150所指示。如果使用CRC單元來執(zhí)行冗余校驗,那么在例如圖1中所展示的相應裝置320中或在微控制器310中實施此單元。在微控制器或處理器的情況下,CRC還可由軟件來執(zhí)行,因此,不需要額外硬件。收發(fā)器可為集成電路裝置,其可借助于I2C接口而與微控制器310耦合,且可尤其為電池操作的。圖3和圖4展示不同實施模式。根據(jù)圖3,發(fā)射器100或收發(fā)器構造幀,使得幀控制信息FrameCtrl與序列號kqNo、目的地地址DAddr、源地址SAddr和數(shù)據(jù)有效負載串聯(lián)。 如可見,包或幀大體上由包含目的地地址的控制信息和有效負載數(shù)據(jù)構成。接著,將此幀饋送給計算結果的CRC單元110。接著,將所述結果附加到幀,且最重要的是,如果目的地地址位160被設定為“0”,那么從所述幀剝離目的地地址DAddr,如圖3的幀B中所展示。因此, 取決于傳輸類型,控制信息包含所必要的任何控制數(shù)據(jù),但不具有目的地地址。接收器接收幀B,存儲所發(fā)射的CRC結果,且將其從幀剝離并插入其自己的地址NAddr,此處為在kqNo 與Mddr之間,如圖3的幀C中所展示。接著,將此幀C輸入到接收器側處的CRC單元115 中,所述CRC單元115計算CRC結果。接著,將接收器側CRC結果與先前存儲的發(fā)射器CRC 結果進行比較。如果兩者相同,那么將所發(fā)射的幀指定給接收器,且接收器可通過存儲和/ 或處理所述數(shù)據(jù)來進一步處理所述數(shù)據(jù)。圖4展示另一可能的實施例,其提供經(jīng)改進的處理速度,尤其是在使用CRC算法時。在此實施例中,在推斷尋址模式中將目的地地址DAddr移動到CRC計算的頭部。這可在沒有損失的情況下完成,因為將不會發(fā)送DAddr。現(xiàn)在的利益是接收器可初始化CRC計算, 所述CRC計算具有一旦處于初始化便從其自己的地址NAddr預計算的向量。這可在已接收到任何數(shù)據(jù)之前完成。因此,在幀到達后,CRC計算即刻保持與接收同步,尤其是隨著CRC算法通過將所接收的數(shù)據(jù)位移位到CRC引擎中來處理其結果,這將在下文更詳細地闡釋。盡管在一些實施例中,僅在已接收到最后的字節(jié)之后可丟棄幀,因此增加了未由幀尋址的節(jié)點中的電力消耗,但大體來說,實質上未發(fā)生損失,因為高工作循環(huán)的無線裝置經(jīng)供電以無論如何在大多數(shù)時間保持活動。然而,低工作循環(huán)的節(jié)點使用輪詢或其它同步方法進行接收,這使得誤尋址的時間窗最小化。同時,發(fā)射側始終節(jié)約電力。在非常稀有的情形中,兩個隨機選擇的地址可產生相同的CRC初始化向量,因此形成尋址沖突。但是,假設為16位CRC,則這種情況具有非常低的概率,且在兩個地址僅在 16位區(qū)間上有所不同的情況下甚至不可能出現(xiàn)??墒褂闷渌鼌f(xié)議元素來解決所述問題。特定錯誤型式可導致誤尋址。但是,這等效于未檢測出錯誤時的情況。因此,應用程序應該解決這種情況。根據(jù)本發(fā)明的特定實例實施例,包或幀中的1位目的地存在字段可確定目的地地址是否存在于MAC標頭中。當此位被設定時,具有由收發(fā)器或連網(wǎng)協(xié)議界定的長度的目的地地址存在于MAC標頭中。當此位被清除時,目的地地址未顯現(xiàn)于MAC標頭中。缺少目的地地址可發(fā)生在其它傳輸中。例如,在確認包中,不存在目的地地址。當包或幀類型為OblO時,目的地存在位必須被清除,因為其不需要用于確認。完全不同的傳輸模式也不需要目的地地址(即,廣播包),因為此傳輸既定由任何接收器接收。因此,當廣播位被設定時,目的地存在位也必須被清除,且不包含目的地地址。最后,如上文所闡釋,如果使用所推斷的目的地,那么可省略目的地地址。當使用推斷目的地模式時,目的地地址在計算CRC時仍被使用,但不被發(fā)射。當收發(fā)器接收到包或幀時,其將校驗添加了其自己的地址的CRC。在這種情況下,CRC錯誤是因為傳輸錯誤或者消息并不是用于此接收節(jié)點。以下揭示內容更詳細地闡釋CRC算法。然而,如上文所陳述,可使用用于校驗冗余的其它方法,且本發(fā)明不限于使用CRC方法。CRC為用于各種數(shù)字通信系統(tǒng)中的最通用的錯誤校驗算法中的一者。CRC代表循環(huán)冗余碼校驗,或簡單地,循環(huán)冗余校驗。大多數(shù)普遍的通信協(xié)議(像CAN、USB、IrDA 、 SDLC、HDLC和以太網(wǎng))使用CRC進行錯誤檢測。通常,對于數(shù)字通信系統(tǒng)中的錯誤檢測,依據(jù)需要發(fā)射的消息來計算校驗和。接著,將所計算出的校驗和附加在消息流的末端處并進行發(fā)射。在接收端處,計算消息流的校驗和,且將其與所發(fā)射的校驗和進行比較。如果兩者相等,那么認為所接收的消息無錯誤。CRC以類似的方式工作,但其具有比常規(guī)形式高的錯誤檢測能力。不同的CRC多項式用于錯誤檢測。CRC的大小取決于所選擇的多項式??墒褂脤S糜布K來實施CRC。 所有的CRC計算都在GFO)(用于2個元素的伽羅瓦域)中完成;‘域’是在其中可執(zhí)行執(zhí)行加法、減法、乘法和除法的某事物,且‘2個元素’指定僅具有兩個值(‘1’或‘0’ )的域。 這類似于二進制域或模2。模2算術使用不具有進位的二進制加法或減法,其等效于XOR 運算。乘法和除法分別類似于二進制乘法和除法。將待發(fā)射的消息看作多項式且除以稱為 ‘生成多項式’的不可約(質數(shù))多項式。生成多項式的次數(shù)應少于消息多項式的次數(shù)。對于‘η+Γ位生成多項式,余數(shù)將不大于‘η’位。數(shù)據(jù)的CRC校驗和為在除法之后的余數(shù)的二進制等值。如果考慮‘k’位的消息‘M’和‘η+Γ位的生成多項式‘G’,那么將消息除以生成式將產生‘η’位的余數(shù)‘R’。因此,M = GQ+R ;其中Q為當M除以G時所獲得的商。M = G · Q+RM+R = GQ = M-R(1)(由于在模2算術中加法和減法為等效的。)現(xiàn)在,M+R= GQ,其中將校驗和嵌入到消息(M+R)中。此處,通過將校驗和添加到消息,破壞了消息的最后‘η’位。代替將校驗和嵌入消息中,將所述校驗和附加到消息,因此避免破壞消息位。當將余數(shù)附加到消息以用于傳輸時,其等效于將所述消息位移位余數(shù)位的數(shù)目。最初,用零附加消息流。在校驗和計算之后,用所計算出的實際校驗和替換零,所述所計算出的實際校驗和為除法的余數(shù)的二進制等值。所附加的零的數(shù)目取決于生成多項式的次數(shù)。將‘η’個零位附加到消息多項式等效于將所述多項式乘以2η。等式2闡釋這點M = G · Q+RM2n = Q1 · G+R1M2n+R1 = Q1 · G(2)依據(jù)等式2,可注意到,G為(M2n+R')的精確倍數(shù)。在接收端處,如果G為消息的精確倍數(shù),那么消息不被破壞。
在二進制域中,數(shù)據(jù)呈多項式的形式(即,如果數(shù)據(jù)字段為‘11101’,那么其可通過寫為x4+x3+x2+x°而表示成多項式形式)。大體來說,生成多項式是不可約的,且最高有效位和最低有效位始終為‘1’。一些生成多項式及其解釋在下文展示在表1中。表 1
類型多項式二進制十六進制CRC. 12 X12+X11+X3+X2+X+11100000001111180FhCRC. 16 X16+X15+X2+111000000000000101:11021hCRC. CCITT X16+X12+X5+11000100000010000118005h如在圖5的示范性計算中所展示,下文假設消息多項式為‘1100100111’且生成多項式為‘10101’ (n+1 = 5)。出于CRC計算的目的,將四(η)個零附加到消息多項式且將消息多項式除以生成多項式。依據(jù)圖5,可推斷出,在每個步驟中,結果的最高位被移出。這些被移出的位形成多項式除法的商。多項式除法的余數(shù)為消息的CRC。在給定除法實例中,可推演出-如果消息多項式的最高位為‘1’,那么執(zhí)行與生成多項式的M)R。接著,將此消息多項式移位1位。-如果最高位為‘0’,那么對消息多項式執(zhí)行1位的移位操作(因為與零的XOR得到相同的多項式)。在具有以上推斷的情況下,用于CRC計算的算法可定義為1.如果最高有效位為‘1’,那么將消息位移位1個位置,且執(zhí)行XOR運算。2.如果最高有效位為‘0’,那么將消息位移位1個位置。3.如果仍存在更多位,那么從步驟1開始重復。可注意到,首先執(zhí)行移位操作,且接著執(zhí)行XOR運算。當生成多項式為‘η+Γ位時, 最高有效位始終為‘1’。由于其始終為‘1’,所以其可成為冗余或無需指示。因此,實際上, 可使用‘η’位來表示生成多項式而不是‘η+Γ位。如果將‘10101’假設為生成多項式,那么由于MSb為冗余位,所以實際位長度為4位而不是5位。應在移位寄存器MSb為‘1’時執(zhí)行實際XOR運算;由于不考慮第五位,所以觀察第四位,且當其為邏輯‘1’時,將其移位1 個額外位,且執(zhí)行XOR運算。因此,在XOR運算之前,首先執(zhí)行移位操作。以上算法可用于硬件與軟件兩者中的CRC計算。在硬件中,使用線性反饋移位寄存器(LFSR)完成CRC計算。LFSR由D觸發(fā)器和M)R門構成,如例如在圖6中所展示,移位寄存器的數(shù)目等于選定生成多項式的次數(shù)。XOR門形成來自LFSR寄存器的反饋,以充當多項式的分接頭控制器。在全部消息位已移出之后,已被移出的位形成商且移位寄存器中剩余的位形成余數(shù)。CRC為簡單且穩(wěn)健的操作,其使用模2算術中的移位寄存器來完成。這是因為模2 計算是通過對數(shù)字進行XOR來簡單地實現(xiàn),因此,其非常流行。在此類型的CRC操作中,可獲得余數(shù)和商兩者。由于不需要CRC計算中的商,所以將其忽略,且從LFSR寄存器僅取得余數(shù)。在接收端處,將消息流加上校驗和看作用于CRC計算的消息。如果結果為零,那么所接收的消息以及CRC無錯誤,否則,消息流被破壞。根據(jù)各種實施例,可編程CRC單元可集成到無線收發(fā)器或微控制器中。圖7展示 CRC引擎110/115的實施例,其可用在(例如)如圖1和圖2中所展示的無線發(fā)射器、接收器或收發(fā)器內。TAP寄存器由移位寄存器單元230a、240a、250a、……270形成,所述移位寄存器單元由時鐘信號Clk和保持信號Hold控制。圖7中所展示的實施例描繪16位CRC 產生器的某些區(qū)段。然而,可容易地實現(xiàn)具有8或32位或任何其它大小的其它配置。單元 230a的輸入與M)R門220的輸出耦合,所述M)R門220接收串行數(shù)據(jù)輸入信號225和來自多路復用器210的反饋輸出信號。單元230a的輸出與多路復用器210的第一輸入、選擇多路復用器Xl的第一輸入、XOR門230b的第一輸入和CRC讀取總線280耦合。XOR門230b 的第二輸入與來自多路復用器210的反饋輸出信號耦合,且M)R門230b的輸出與選擇多路復用器230c的第二輸入耦合。選擇多路復用器230c的輸出與下一移位單元MOa的輸入耦合,且與CRC寫入總線290耦合。下一移位單元240a. . . 250a具備相應M)R門240b. . 250b 和選擇多路復用器240c. . . ^0c,且以與單元230a相同的方式連接到多路復用器210及總線280和四0的相應輸入。最后一個單元270的輸出與多路復用器210及CRC讀取和寫入總線280和290的最后一個輸入耦合。多路復用器210由多項式長度寄存器215PLEN控制。 多路復用器230c. . . 260c由多項式寄存器235P0LY控制。CRC讀取總線280可與含有結果的寄存器285耦合,且CRC寫入總線290可耦合到含有預載值的寄存器四5。使用多路復用器210以通過寄存器PLEN來選擇CRC產生器的反饋點和有效長度。 寄存器215控制CRC產生器200的長度,且是用戶可選擇的。由多路復用器210的輸出提供的反饋數(shù)據(jù)借助于M)R門230b. . . 260c與當前在CRC移位寄存器230a、240a、250a、270 中的數(shù)據(jù)進行M)R。使用選擇多路復用器230c、240c、250c和^Oc以選擇是XOR數(shù)據(jù)還是移位寄存器230a、240a、250a、270中的先前數(shù)據(jù)在下一時鐘上進行移位。使用多項式寄存器235以配置移位通過哪些位及哪些位取得與CRC產生器中的先前數(shù)據(jù)進行XOR的反饋數(shù)據(jù),所述CRC產生器含有多路復用器230c、240c、250c和^Oc的Xl輸入??墒褂肅RC寫入總線四0以借助于預載寄存器295來預載CRC觸發(fā)器230a、240a、250a、270。可使用CRC讀取總線觀0以讀取CRC產生器的值。數(shù)據(jù)225由多路復用器160的輸出提供,且通過M)R 門220移位到CRC中。因此,圖7中所展示的布置提供基于LFSR型鏈中的分接頭/XOR位置的具有各種配置的線性反饋移位寄存器(LFSR)。CRC引擎可為如例如在圖7中所展示的標準串行移位CRC引擎,其具有可通過多路復用器設置來配置的前饋和反饋點。然而,可使用任何其它類型的CRC引擎??墒褂?6位對生成多項式進行編程。將‘1’寫入到觸發(fā)器230a、240a、250a、270中啟用與多項式的所述元素相關聯(lián)的XOR門220、230b、240b、250b。多項式長度寄存器215用信號表示多項式的長度,且切換多路復用器210以指示反饋所來自的分接頭。數(shù)據(jù)寬度寄存器180、190配置數(shù)據(jù)字的寬度,且影響在FIFO 130前進到下一數(shù)據(jù)字之前的時鐘數(shù)目??赏ㄟ^經(jīng)由CRC讀取總線280來讀取保持觸發(fā)器230a、240a、250a、270而獲得CRC計算的結果,且將所述結果存儲在寄存器285中??墒褂孟鄳拇嫫髦械臄?shù)據(jù)寬度配置位獨立于多項式長度來配置數(shù)據(jù)寬度。不存在對數(shù)據(jù)寬度與多項式長度之間的關系的限制。如果數(shù)據(jù)比多項式長度寬, 那么額外的時鐘將通過多項式來移位所述較寬數(shù)據(jù),且反之亦然。盡管已參考本發(fā)明的實例實施例來描繪、描述及界定了本發(fā)明的實施例,但所述參考并不意味著對本發(fā)明的限制,且不應推斷出此類限制。所揭示的標的物能夠在形式及功能上作出相當多的修改、更改及等效物,如相關領域的且受益于本發(fā)明的一般技術人員將想到。本發(fā)明的所描繪及描述的實施例僅為實例,且并非窮舉本發(fā)明的范圍。
權利要求
1.一種用于在基于包的傳輸系統(tǒng)中發(fā)射數(shù)據(jù)的方法,其包括以下步驟通過包含控制信息和有效負載數(shù)據(jù)來組裝包,其中所述控制信息包含目的地地址; 使用所述包來計算冗余信息;從所述包剝離所述目的地地址,且將所述冗余信息添加到所述包,其中設定所述包中的控制位,其指示無目的地地址包含于所述包中;以及發(fā)射所述包。
2.根據(jù)權利要求1所述的方法,其中在計算所述冗余信息之前,設定所述包中的指示無目的地地址包含于所述包中的所述控制位。
3.根據(jù)權利要求1所述的方法,其中使用循環(huán)冗余校驗CRC來計算所述冗余信息。
4.根據(jù)權利要求1所述的方法,其中在組裝期間,將所述目的地地址包含于幀標頭中。
5.根據(jù)權利要求1所述的方法,其中在組裝期間,所述目的地地址為包含于所述幀標頭中的第一信息。
6.根據(jù)權利要求1所述的方法,其中以無線方式發(fā)射所述包。
7.根據(jù)權利要求6所述的方法,其中所述方法以802.15. 4標準進行操作。
8.一種用于在基于包的傳輸系統(tǒng)中接收數(shù)據(jù)的方法,其包括以下步驟 接收包含控制信息、有效負載數(shù)據(jù)和發(fā)射器冗余信息的包;確定目的地地址是否包含于所述控制信息中;如果不包含目的地地址,那么將地址插入到所述控制信息中,且從所述包移除所述發(fā)射器冗余信息;使用所述包來計算接收器冗余信息;以及將所述接收器冗余信息與所述發(fā)射器冗余信息進行比較,且如果正確,那么接受所述包,且否則,丟棄所述包。
9.根據(jù)權利要求8所述的方法,其中使用循環(huán)冗余校驗CRC來計算所述冗余信息。
10.根據(jù)權利要求8所述的方法,其中通過校驗是否在幀標頭中設定預定位來執(zhí)行所述確定步驟。
11.根據(jù)權利要求9所述的方法,其進一步包括使用所述所插入的地址來計算CRC種子的步驟。
12.根據(jù)權利要求8所述的方法,其中存儲所述發(fā)射器冗余信息。
13.根據(jù)權利要求8所述的方法,其中以無線方式發(fā)射所述包。
14.根據(jù)權利要求13所述的方法,其中所述方法以802.15. 4傳輸標準進行操作。
15.一種發(fā)射器,其包括 消息組裝單元;冗余信息計算單元,其與所述消息組裝單元耦合;以及發(fā)射單元,其與所述消息組裝單元耦合, 其中所述消息組裝單元可操作以通過包含控制信息和有效負載數(shù)據(jù)來組裝包,其中所述控制信息包含目的地地址; 將所述包轉發(fā)到所述冗余信息計算單元以用于計算冗余信息, 從所述包剝離所述目的地地址,且將所述冗余信息添加到所述包, 設定所述包中的控制位,其指示無目的地地址包含于所述包中,以及將所述包轉發(fā)到所述發(fā)射單元。
16.根據(jù)權利要求15所述的發(fā)射器,其中所述發(fā)射器可操作以在將所述包轉發(fā)到所述冗余信息計算單元之前設定所述包中的指示無目的地地址包含于所述包中的所述控制位。
17.根據(jù)權利要求15所述的發(fā)射器,其中所述冗余信息計算單元為循環(huán)冗余校驗CRC單元。
18.根據(jù)權利要求15所述的發(fā)射器,其中所述發(fā)射單元為無線發(fā)射單元。
19.根據(jù)權利要求18所述的發(fā)射器,其中所述無線發(fā)射單元根據(jù)802.15. 4標準進行操作。
20.根據(jù)權利要求18所述的發(fā)射器,其中所述發(fā)射器為具有1 接口的集成電路中的收發(fā)器的部分。
21.根據(jù)權利要求18所述的發(fā)射器,其進一步包括電池作為電源。
22.一種接收器,其包括 消息重構單元;冗余信息計算單元,其與所述消息組裝單元耦合;以及接收單元,其與所述消息重構單元耦合且可操作以接收包含控制信息、有效負載數(shù)據(jù)和發(fā)射器冗余信息的包,其中所述消息重構單元可操作以確定目的地地址是否包含于所述控制信息中; 如果不包含目的地地址,那么所述消息重構單元可操作以將地址插入到所述控制信息中,且從所述包移除所述發(fā)射器冗余信息;將所述包轉發(fā)到所述冗余計算單元以用于計算接收器冗余信息;以及將所述接收器冗余信息與所述發(fā)射器冗余信息進行比較,且如果正確,那么接受所述包,且否則,丟棄所述包。
23.根據(jù)權利要求22所述的接收器,其中所述冗余信息計算單元為循環(huán)冗余校驗CRC 單元。
24.根據(jù)權利要求22所述的接收器,其中所述消息重構單元通過校驗是否在所述包的幀標頭中設定預定位來確定是否包含目的地地址。
25.根據(jù)權利要求23所述的接收器,其中所述CRC單元可操作以在完全接收到包之前使用所述所插入的地址來計算CRC種子。
26.根據(jù)權利要求22所述的接收器,其進一步包括用以存儲所述發(fā)射器冗余信息的存儲器。
27.根據(jù)權利要求22所述的接收器,其進一步包括用以存儲所述所插入的地址的存儲器。
28.根據(jù)權利要求22所述的接收器,其中所述接收單元為無線接收單元。
29.根據(jù)權利要求觀所述的接收器,其中所述無線接收單元以802.15. 4標準進行操作。
30.根據(jù)權利要求22所述的接收器,其中所述接收器為具有1 接口的集成電路中的收發(fā)器的部分。
31.根據(jù)權利要求觀所述的接收器,其進一步包括電池作為電源。
32.—種收發(fā)器,其包括冗余信息計算單元;消息組裝和重構單元,其與所述冗余信息計算單元耦合; 收發(fā)器單元,其與所述消息組裝單元耦合且用于發(fā)射和接收包, 其中所述消息組裝和重構單元針對發(fā)射可操作以通過包含控制信息和有效負載數(shù)據(jù)來組裝包,其中所述控制信息包含目的地地址;將所述包轉發(fā)到所述冗余信息計算單元以用于計算冗余信息,從所述包剝離所述目的地地址,且將所述冗余信息添加到所述包,設定所述包中的控制位,其指示無目的地地址包含于所述包中;以及將所述包轉發(fā)到發(fā)射單元;且進一步針對接收可操作以確定目的地地址是否包含于所接收的包的控制信息中;如果不包含目的地地址,那么將地址插入到所述控制信息中,且從所述包移除所接收的冗余信息;將所述包轉發(fā)到所述冗余計算單元以用于計算接收器冗余信息;以及將所述接收器冗余信息與所述所接收的冗余信息進行比較,且如果正確,那么接受所述包,且否則,丟棄所述包。
33.根據(jù)權利要求32所述的收發(fā)器,其中所述冗余信息計算單元為循環(huán)冗余校驗CRC單元。
34.根據(jù)權利要求32所述的收發(fā)器,其中所述收發(fā)器單元為無線收發(fā)器單元。
35.根據(jù)權利要求34所述的收發(fā)器,其中所述無線收發(fā)器單元根據(jù)802.15. 4標準進行操作。
36.根據(jù)權利要求32所述的收發(fā)器,其進一步包括1 接口。
37.根據(jù)權利要求32所述的收發(fā)器,其進一步包括電池作為電源。
38.根據(jù)權利要求32所述的收發(fā)器,其進一步包括用以存儲所述所接收的冗余信息的存儲器。
39.根據(jù)權利要求32所述的收發(fā)器,其進一步包括用以存儲所述所插入的地址的存儲ο
40.根據(jù)權利要求32所述的收發(fā)器,其中所述收發(fā)器可操作以在將所述包轉發(fā)到所述冗余信息計算單元之前設定所述包中的指示無目的地地址包含于所述包中的所述控制位。
全文摘要
在一種用于在基于包的傳輸系統(tǒng)中發(fā)射數(shù)據(jù)的方法中,通過包含控制信息和有效負載數(shù)據(jù)來組裝包,其中所述控制信息包含目的地地址;使用所述包來計算冗余信息;其中從所述包剝離所述目的地地址,且將所述冗余信息添加到所述包,且設定所述包中的控制位,其指示無目的地地址包含于所述包中。發(fā)射所述經(jīng)如此更改的包。
文檔編號H04L1/00GK102388559SQ201080016357
公開日2012年3月21日 申請日期2010年6月9日 優(yōu)先權日2009年6月10日
發(fā)明者約瑟夫·G·內梅特 申請人:密克羅奇普技術公司