新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > EZMacTM媒體接入控制軟件(07-100)

        EZMacTM媒體接入控制軟件(07-100)

        —— EZRadio IA442x收發器的EZMacTM媒體接入控制軟件
        作者:Integration公司 時間:2009-03-03 來源:電子產品世界 收藏

          休眠模式

        本文引用地址:http://www.104case.com/article/91986.htm

          初始化之后,MAC層處于“休眠”模式。在這種模式下,射頻硬件是完全關閉的,僅消耗不到0.3uA的電流。在開始發射或接收之前,至少需要5ms來喚醒MAC。這5ms是晶體振蕩器達到穩定所需的最長時間。

          空閑模式

          使用喚醒命令喚醒收發器后,MAC就切換到“空閑”模式。在這種模式下,MAC等待進一步的指令。雖然收發器中的晶振已經在運行,但射頻的各個模塊還是處于禁用狀態,芯片的電流消耗大約是0.6mA。MAC系統始終處于該模式中,直到接收到下一個接收、發射或休眠指令為止。

          因為EZMac僅支持半雙工通信,所以不能同時發射和接收。

          發射模式

          發送發射指令之前,數據會和它的目標地址一起裝載到MAC對應的寄存器中。發射指令發送后,MAC開始發射。芯片的電流消耗激增到26mA(在最大輸出功率的情況下,但實際的消耗電流取決于輸出功率的設定)。完成發射任務后,如果MAC還處在激活狀態,它會自動回到空閑模式或直接進入休眠模式。

          接收模式

          在“空閑”模式中,如果MAC接收到接收指令,它會改變到“接收”模式。收發器的消耗功率增加到大約15mA左右。MAC掃描可用的頻率,以有效地實現數據的傳輸。

          一旦接收到一個有效的數據包,而且該數據包通過了所有激活的錯誤檢測和地址過濾,MAC就把收發器工作模式改為節電模式,等待更高層的軟件讀出接收數據。讀出數據之后,MAC也會進入“空閑”模式,或者直接進入“休眠”模式。

          EZMac的包過濾方法

          EZMac具備智能化的包過濾功能。過濾器可由幾種選項來配置,以便能很好地滿足處于更高的軟件層(應用層)的需求。

          EZMac被配置好后,更高層將只需發射和接收有效數據。EZMac則執行所有的打包和拆包的任務。EZMac自動運行CRC,上層僅得到沒有錯誤的數據包。

          圖2是數據包過濾的流程圖。

         

          圖2 數據包過濾的流程圖

          實時操作

          數據包的過濾在接收過程中實時進行。這就意味著,當接收到一段(字節)數據包報頭時,過濾器就會對數據包進行檢查。如果相應的過濾器檢測到數據包報頭的任何一部分有錯誤時,都會終止數據包的接收。

          這種技術使EZMac在接收進程剛開始的階段不去理會意外出現的無效數據包。終止數據包的接收后,EZMac會及時報告錯誤并跳到下一個可用的頻率上,繼續搜尋有效的數據包。

          實時的數據包過濾節約了各種資源(處理器的消耗功率和電池的使用壽命), 而且,因為無需處理無效的數據包,所以減少了資源浪費而達到了顯著提升系統性能的目標,同時也避免了其它頻率上的重要數據包的丟失。

          客戶ID過濾

          CID是使用EZMac協議的用戶的唯一ID號。雖然是否使用CID是可由用戶自選的,但是強烈推薦用戶使用CID,以避免安裝在同一區域的、均使用EZMac的不同系統之間出現意外的交互。如果使用了CID,CID會緊跟在前導和同步碼后發射出去。這就意味著在先入先出的算法中CID是第一個被讀到的字節。

          因此,數據包接收一開始,EZMac就能識別出接收包的開始,繼而確定它是否為系統內的數據包。如果不是,MAC就會取消接收,并跳轉到下一個頻率,繼續搜索有效數據包。用戶可以從公司處得到CID。

          發射包過濾

          EZMac通過檢測接收包的報頭中的發送者ID字段來對接收的數據包進行過濾。如果發射包過濾器啟用的話,MAC將僅從特定的某一節點或者某群節點處接收數據包

          群組是通過數據包報頭的發送方ID(SID)中的重要位和SFLT寄存器中的相同數位的掩碼運算來定義的。如果出現以下情況,數據包才算通過過濾:

          SFLT & SMSK == SID & SMSK

          Where:

          &: Bitwise AND operator

          SID: 發送方ID號在接受到的數據包的報頭中。)

          如果把SMSK設置成0xFF時,群過濾器的選項就不可用了,這時MAC只能從有SFLT地址的節點處接收數據包。

          目的地址過濾

          目的地址包濾包括3種地址過濾,這三種方式都要檢測接受數據包報頭的DID字節:

          自綁定地址過濾

          多播地址過濾

          廣播地址過濾

          自綁定地址過濾器始終是可用的,但是多播地址和廣播地址的啟用和停用是各自獨立的。只要數據包能通過上述任何一個過濾器,就能通過目的地址過濾器。

          自綁定地址過濾

          只用通過自綁定地址(SFID)才能在通信網絡中識別EZMac。也只有那些報頭中DID字段顯示SFID的數據包才能通過自綁定地址過濾。

          多播地址過濾

          多播地址負責檢測接受包是否為一組組節點所專用,以及EZMac是否是該群組的一部分。多播定址有兩個方法:

          定義一個稱為多播地址(MCA)的專用地址。只有報頭中的DID字段等于MCA的那些數據包才能通過多播過濾器。

          在自綁定地址過濾中定義并使用多播屏蔽(MCM):

          DID & MCM == SFID & MCM

          where & is the bitwise AND operator

          其中&是逐位進行的AND運算。

          只能在同一時間激活MCA過濾和MCM過濾中的一個。實際的模式可通過PFCR寄存器的A/nM比特位來選擇到底使用哪一種過濾。

          廣播地址過濾

          廣播地址有專用的地址:0xFF。

          只有報頭中的DID字段是0xFF的數據包才能通過廣播地址過濾。

          注:整個目的地址過濾由數據包過濾控制寄存器的DFEN位來確定是否啟用。

          如果這個比特被清除,目的地址過濾將不可用,具有任何目地地址的數據包都可以被接收。

          包長度過濾器

          這個過濾器用于檢測動態變化的數據包長度(參見“主控寄存器”一節)。如果該過濾器可用,長度超過最大容許接收長度的數據包將無法通過。最大容許長度可在MPL寄存器中設置。

          混雜模式

          若通過設置PCFR寄存器的PREN位來啟用混雜模式,則所有的地址過濾器和包長度過濾器都被忽略。

          CRC過濾器

          CRC過濾器是唯一不能被忽略的過濾器。它對數據包的所有字節執行CRC(包括報頭)。如果接收包沒有通過CRC,EZMac將報告出錯并忽略該數據包。



        關鍵詞: Integration EZMacTM

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 水城县| 抚远县| 噶尔县| 峨眉山市| 门头沟区| 黔西县| 南华县| 兰考县| 潮安县| 凤山县| 壶关县| 淮安市| 黄梅县| 浦县| 岳池县| 班戈县| 雅安市| 綦江县| 石阡县| 平原县| 漳平市| 巴彦县| 瓦房店市| 黎城县| 宣汉县| 金乡县| 舒城县| 新巴尔虎左旗| 龙泉市| 门源| 吉隆县| 达州市| 大同县| 色达县| 星子县| 德格县| 灵寿县| 奉化市| 安化县| 天等县| 元阳县|