SI4432 将EZMacPro封装成Jennic的IEEE802.15.4

       

       最近在试图将SI4432封装成IEEE802.15.4的Jennic(他家的东西赞一个)的样子,然后将AODV的算法移植到上面去。

        可能是逼人孤陋寡闻,市场上很少有人做成了433M的大网络的东西,所以想尝试下。争取虽败犹荣吧。

        总结下SI4432的缺点:

        1. RF不能进行地址过滤,无法像15.4一样的过滤掉除本身地址以及0XFFFF以外的地址,造MAC层数据效率比较低下;

        2. RF没有ACK机制。

        3. 类似15.4的csma的机制时延太长。

        有不足之处,请指正:)

 

        AT86RF212 一款783M的芯片,同样支持IEEE802.15.4,距离传输5DBM可空旷传输1.5KM,可能和其本身的O-QPSK机制有关,这款芯片实在是无线领域的福音,只可惜国内用之寥寥,也许和频段限制有关系。

        紫晶威讯正在做一款AT86RF212的芯片,不过沉寂了几年也没有消息,无语!

 

        脚踏实地!

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#ifndef _SI4432_TX_H #define _SI4432_TX_H #include <iom16.h> //包含型号头文件 //#include <iomacro.h> //包含"位"操作头文件 /******************数据类型宏定义******************/ #define uchar unsigned char #define uint unsigned int //***********************************Si4432接口定义******************************************* #define Si4432_SDN DDRD|=(1<<2) //输出1 关闭输入引脚 #define Si4432_nSEL DDRD|=(1<<4) //输出1 SPI片选 #define Si4432_SCLK DDRD|=(1<<7) //输出1 SPI时钟 #define Si4432_SDI DDRD|=(1<<5) //输出1 从SPI数据输入脚 #define Si4432_SDO PIND & (1<<6) //输入0 从SPI数据输出脚 #define Si4432_nIRQ PIND & (1<<3) //输入0 中断输出引脚 #define Hign_Si4432_SDN PORTD |= (1 << 2) #define Low_Si4432_SDN PORTD &= ~(1 << 2) #define Hign_Si4432_nSEL PORTD |= (1 << 4) #define Low_Si4432_nSEL PORTD &= ~(1 << 4) #define Hign_Si4432_SCLK PORTD |= (1 << 7) #define Low_Si4432_SCLK PORTD &= ~(1 << 7) #define Hign_Si4432_SDI PORTD |= (1 << 5) #define Low_Si4432_SDI PORTD &= ~(1 << 5) #define Read_Si4432_SDO PIND &(1 << 6) #define Read_Si4432_nIRQ PIND &(1 << 3) //***************************************Si4432寄存器指令******************************************************* #define READ_REG 0x00 //读寄存器指令 #define WRITE_REG 0x80 //写寄存器指令 #define TX1_RX0 SPI_RW_Reg(WRITE_REG + 0x0e, 0x01) //发射状态的天线开关定义 #define TX0_RX1 SPI_RW_Reg(WRITE_REG + 0x0e, 0x02) //接收状态的天线开关定义 #define TX0_RX0 SPI_RW_Reg(WRITE_REG + 0x0e, 0x00) //非发射,接收状态的天线开关定义 #define TxBuf_Len 10 #define RxBuf_Len 10 //定义RF4432数据包长度 void SPI_Init(void); uchar SPI_Byte(uchar data); uchar SPI_RW_Reg(uchar addr, uchar data); void SPI_Read_Buf(uchar addr, uchar *data, uchar number); void SPI_Write_Buf(uchar addr, uchar *data, uchar number); void Si4432_init(void); uchar RF4432_RSSI(void); uchar RF4432_RxPacket(void); void SetRX_Mode(void); void SetTX_Mode(uchar *Tx_Buf); //void SI4432RxTx(void); #endif

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值