• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于MC13213的单芯片ZigBee平台的物理层协议研究与实现

基于MC13213的单芯片ZigBee平台的物理层协议研究与实现

录入:edatop.com     点击:

收发机状态设置是通过调用设置收发状态函数实现的,其函数头如下:

//-----------------------------------------*

//功能: 设置收发机状态函数,把收发机设置成用户期望的状态

//参数: nDesiredStatus - 用户期望状态

//返回: SUCCESS - 成功设置成指定模式;

// 等于用户期望模式-收发机之前就处于用户期望状态;

// 其他 - 表示执行失败;

//说明: 无

//----------------------------------------*

INT8U PLMESetTRXState(INT8U nDesiredStatus);

3.3 物理层数据包的收发

物理层数据称为物理层数据单元PPDU(PHY Protocol Data Unit),包括同步包头、物理层包头和物理层载荷三部分[3],如图4所示。其中同步包头可以使得接收设备锁定在比特流上,并与比特流保持同步;物理层包头包含了数据包的长度信息,在0~127之间;物理层服务数据单元PSDU(PHY Service Data Unit)也称物理层载荷,携带MAC层的帧信息,即MAC层协议数据单元MPDU(MAC Protocol Data Unit)。注意,CRC检验字节包含在PSDU中的最后两字节中。

物理层数据包的发送和接收比较简单,对于MC13213的Modem来说,用户所要做的只是调用SPI循环事务写入或读取物理层包头和载荷,然后拉高RXTXEN引脚使能Modem的发送和接收即可。PPDU的同步包头是由硬件自动添加的。

(1)物理层数据包的发送

Packet模式下发送数据包的过程是在物理层数据请求函数中实现的,在函数实现过程中,应根据要求,向上层通知数据发送结果的状态信息。其函数头如下:

//------------------------------------------------*

//功能: 数据请求函数,生成物理层协议数据单元(PPDU)并无线发送出去

//参数: nPSDULength-物理层PSDU(即MAC层的MPDU)中的字节数,

// 长度要<=aMaxPHYPacketSize(物理层最大数据包容量)

// pPSDU - 指向物理层PSDU数据的指针

//返回: SUCCESS - 发送成功;其他值 - 发送失败

//说明: 由MAC层调用

//-----------------------------------------*

INT8U PDDataRequest(INT8U nPSDULength, INT8U *pPSDU);

(2)物理层数据包的接收

一般情况下,Modem的接收机是关闭的。当Modem接收机处于打开状态时有其他Modem在同一信道上发送数据,则Modem会接收到这些数据。

本协议栈实现Packet模式下接收数据包时,为物理层数据包实现了一个环形的接收缓冲区,以保证数据的及时可靠接收,其结构定义如下:

//PSDU最大数据包长度(不包括CRC)

#define PSDUMaxLen 125

//PSDU数据包定义

typedef struct PSDURxPacket_tag

{ INT8U m_nLen;

INT8U m_nData[PSDUMaxLen];

INT8U m_nStatus;

INT8U m_nLQI;

} PSDURxPacket_t;

//PSDU数据接收缓冲区个数

#define PSDURxBufferNum 8

//PSDU数据接收缓冲区定义

typedef struct PSDURxBuffer_tag

{ INT8U m_nPSDUCount;

INT8U m_nHead;

INT8U m_nTrail;

PSDURxPacket_t m_sPSDU[PSDURxBufferNum];

作者:吴瑾 潘启勇 王宜怀 来源:电子技术应用

上一篇:基于多DSP+FPGA的卫星遥感 像压缩系统设计
下一篇:小功率无线通讯在电表中的应用

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图