關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于CC2430的無線傳感器網絡節點設計

        基于CC2430的無線傳感器網絡節點設計

        作者: 時間:2011-04-12 來源:網絡 收藏


          系統初始化主要是將系統的工作頻率設為32MHz的晶振頻率,這樣RF才能正常工作。RF初始化時,先設置通信頻率,再通過設置RFPWR.RREG_RADIO_PD位為1給RF供電。RF初始化的過程還包括執行下面的代碼來開啟Rx,清空Rx、Tx的FiFo緩沖區以及校準Radio。
          SRXON;
          SFLUSHTX;
          SFLUSHRX;
          SFLUSHRX;
          STXCALN;
          ISSTART;
          DMA的初始化階段要為Tx分配1個空閑的DMA通道。首先要為通道0和通道1~4分別設置好通道描述數據結構的存放地址,并將首地址分別寫入DMA0CFGH:DMA0CFGL和DMA1CFGH:DMA1CFGL。再為這個分配好的DMA通道設置其描述數據結構。該數據結構如下:
          typedef struct {
           BYTE SRCADDRH;//源地址
           BYTE SRCADDRL;
           BYTE DESTADDRH;//目的地址
           BYTE DESTADDRL;
           BYTE VLEN :3;
           BYTE LENH:5;
           BYTE LENL:8;
           BYTE WORDSIZE:1;
           BYTE TMODE:2;
           BYTE TRIG:5;
           BYTE SRCINC:2;
           BYTE DESTINC:2;
           BYTE IRQMASK:1;
           BYTE M8:1;
           BYTE PRIORITY:2;
          } DMA_DESC;
          當設置為Tx準備的DMA通道時,需將數據的源地址SRCADDRH: SRCADDRL設為所要發送數據的起始地址,目標地址DESTADDRH: DESTADDRL設為寄存器RFD的地址0xDFD9。然后,在LENH:LENL中設置所要發送數據的長度,并將VLEN設為0。將WORDSIZE位設為0,表示DMA數據按字節進行傳輸(設為1表示按字傳輸)。DMA的數據傳送模式按照一次觸發傳輸的數據量可分成四種,由TMODE設置選擇。本例中采用Block模式,即一次DMA觸發可進行一個完整數據塊的傳輸。CC2430定義的DMA觸發信號有31種之多,由TRIG位設置。將TRIG設置為0,表示采用無觸發模式,這樣DMA在每次接收到DMAREQ信號后才啟動一次數據傳輸。SRCINC和DESTINC分別用于設置數據源地址和目標地址的變化方式,可設為不變、增1、增2或減1。由于采用按字節的Block模式向Radio發送數據,因此數據源地址選擇增1變化,而數據目標地址則一直為寄存器RFD的地址0xDFD9,故設為不變。IRQMASK位用于設置是否在DMA數據傳輸完后發中斷信號。本例中設為0,即禁止DMA中斷。M8是按字節傳輸時的數據寬度,設為0表示8位傳輸,為1時表示只傳輸字節的低7位。本例中設為0。PRIORITY用于優先級設置,本例中設為2,即中等優先級。
          DMA描述設置好后,通過設置寄存器DMAARM和RMREQ的位來準備相應的DMA通道以及啟動這個通道上數據塊的傳輸。在啟動DMA數據傳輸之前,將當前數據幀的長度、目標節點地址、源節點地址、標志字節通過直接寫寄存器RFD的方式寫入TXFIFO。這樣在啟動DMA傳輸后,完整的數據幀將被傳輸至TXFIFO。通過給CSP發送指令ISTXONCCA啟動TX傳輸。這就完成了一幀數據的發送。
          數據接收的過程同樣需要設置系統工作頻率為32MHz,且應確保Rx工作在Tx相同的頻道上,并設置DMA通道。其中DMA的數據源為寄存器RFD,并將DMA觸發信號設為RADIO,即Radio接收到數據時觸發DMA。數據接收的程序流程如圖6所示。


          本文在總結歸納對芯片CC2430已有研究成果的基礎上,闡述了基于CC2430的無線傳感器網絡節點的設計和實現,并詳細介紹了兩個節點之間點對點通信的實現。在實驗中,節點能夠采集環境的溫、濕度和節點的電池電壓,并將采集的數據在節點中傳播。本文的研究為進一步的上層通信協議設計提供了基礎,具有一定的研究意義。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 舟山市| 济南市| 弥勒县| 白山市| 台北县| 简阳市| 伊川县| 克拉玛依市| 醴陵市| 河东区| 新安县| 济宁市| 巫溪县| 毕节市| 镇巴县| 丹凤县| 平阳县| 涿鹿县| 招远市| 蒙城县| 保德县| 陇西县| 阜康市| 温宿县| 广南县| 安乡县| 临猗县| 楚雄市| 大田县| 夏河县| 九江县| 札达县| 山西省| 兴仁县| 浮梁县| 达孜县| 碌曲县| 台中市| 屯留县| 诸暨市| 博爱县|