以太网网关节点在节能计量系统中的设计
道发送信标请求,并接收PAN Co-ordinator的信标请求回应。需要扫描的通道和速率将在config.h中定义。扫描请求的初始化和发送的工作可以通过MLME请求的方式通过IEEE 802.15.4的MAC层发送。
3.AppColdStart()将通过vProcessEventQueues来检查和处理MLME回应。这个函数将调用vProcessIncomingMlme()来处理收到的MLME回应。vHandleAcTIveScanResponse()会被调用处理返回的活动通道扫描结果:
如果找到PAN Co-ordinator,函数将保存相应的Co-ordinator信息(比如 PAN ID,短地址,逻辑通道),并且调用vStartAssociate()向Co-ordinator来提交入网请求,这一请求将通过MLME请求的方式提交。
如果PAN Co-ordinator没有被找到(可能是由于Co-ordinator还没有初始化完成)。这一函数将重新调用vStartAcTIveScan()来重新启动扫描。
4. AppColdStart将循环的调用vProcessEventQueues()等待来自Co-ordinator的入网回复。当收到回复后就将调用vProcessIncomingMlme(),然后将调用vHandleAssociateResponse来处理回复,接下来的函数将检查回复的状态:
如果PAN Co-ordinator接受的入网请求,将设备置于联网状态。
如果PAN Co-ordinator拒绝了入网的请求,函数就将重新调用vStartActiveScan()来开始搜索另外一个PAN Co-ordinator。
5. AppColdStart()接下来将循环的调用vProcessEventQueues来等待来自于PAN Co-ordinator的MCPS信息或者硬件的队列信息。
当数据到达了MCPS队列,vProcessEventQueue()首先使用函数vProcessIncomingMcps()来接收数据帧,接着调用vHandleMcpsDataInd(),接着调用vProcessReceivedDataPacket(),开发人员可以在这个函数里面编写自己的数据处理过程。
当硬件事件到达硬件事件队列,vProcessEventQueues()将调用vProcessIncomingHwEvent()来接收到达的事件,您可以在这个过程中编写自己的事件处理逻辑。
下面的图表示了End Device的工作过程。
图4-4-10 EndDevice程序流程
W5500驱动:
Coordinator作为网络的中心,通常也是数据汇聚的中心。因为我们在Coor的代码中加入W5500的操作。
硬件连接上W5500作为SPI Slave工作,使用IO管脚如下:
在系统的初始化vInitSystem()中加入W5500的初始化,
// 初始化和W5500连接的SPI
vAHI_SpiConfigure(1, E_AHI_SPIM_MSB_FIRST, E_AHI_SPIM_TXPOS_EDGE,
E_AHI_SPIM_RXPOS_EDGE, 1, E_AHI_SPIM_INT_DISABLE,
E_AHI_SPIM_AUTOSLAVE_DSABL);
使用Eclipse IDE环境,在工程文件中添加W5500的驱动:
图4-4-11 Eclipse IDE
在工程导航栏可以看到:
图4-4-12 工程导航
然后,把wizchip_conf.c中的接口代码替换为JN5168的SPI函数:
void wizchip_cs_select(void)
{
/* select slave 1*/
vAHI_SpiSelect(E_AHI_SPIM_SLAVE_ENBLE_1);
};
void wizchip_cs_deselect(void)
{
vAHI_SpiStop();
};
uint8_t wizchip_spi_readbyte(void)
{
u8AHI_SpiReadTransfer8();
return 0;
};
void wizchip_spi_writebyte(uint8_t wb)
{
vAHI_SpiStartTransfer8(wb);
};
这样就完成了代码,我们可以看到无线IEEE802.15.4和以太网W5500的数据转接。
结 论
在使用W5500后我们极大的简化了WPAN网关设计,这样保证了通讯速率和可靠性的要求下,用简单的结构诠释了"简单就是可靠"的道理。
——本文选自电子发烧友网4月《物联网技术特刊》透视新设计栏目,转载请注明出处,违者必究!
- 首个融入IP协议的无线通信标准——6LoWPAN(09-10)
- 用于以太网物理层时钟同步PLL的VCO设计(04-01)
- 可靠和易用的 LTPoE++ 标准将 PoE 功率扩展至 90W(11-08)
- 高效的以太网供电解决方案降低了总体成本(06-07)
- 以太网供电应用中可用设备功率的估算(10-19)
- Xilinx Virtex UltraScale 开发平台(06-12)