7095|4

3238

帖子

5

TA的资源

五彩晶圆(中级)

楼主
 

基于Zigbee的以太网透传实验 [复制链接]

本帖最后由 wateras1 于 2014-8-31 16:53 编辑

               今天闲来无事,用手上的板子做了一个基于zigbee的以太网透传实验,什么都不讲了,先上图。

   
在图片中有两个模块,一个是zigbee模块,一个是以太网网关。做这个实验之前,我已经将zigbee做成了透传模块,所以不需要对zigbee编程,只要对其收发数据就行。主要是对以太网网关的编程,以太网模块上面主要有wifi接口和zigbee接口和以太网接口和视频接口,我这次主要是实现了将以太网模块接收到的数据通过zigbee发送出去,例外一个zigbee模块无线收到数据之后通过串口打印出来。原理图如下:

网关的主控芯片采用了ST的103芯片,以太网控制芯片则采用了W5100模块,这个模块配置容易,操作简单,对于入门上手也简单.
要实现W5100的功能,主要要实现底层的SPI的操作,代码如下:
uint8_t  SPI_ReadByte(void)
{
  uint8_t rByte=0;
        while(!SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE));
        SPI_I2S_SendData(SPI1,0);
        while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
        rByte=SPI_I2S_ReceiveData(SPI1);
  return rByte;
}

void SPI_SendByte(uint8_t dt)
{
        uint8_t rByte=0;
        while(!SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE));
        SPI_I2S_SendData(SPI1,dt);
        while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
        rByte=SPI_I2S_ReceiveData(SPI1);
}


uint8_t Read_W5100(uint16_t addr)
{
  uint8_t i;
  /* ÖÃW5100μÄCSÎaμíμçƽ */
GPIO_ResetBits(GPIOA, GPIO_Pin_11);
  /* ·¢Ëí¶áÃüáî */
  SPI_SendByte(0x0f);
  /* ·¢ËíμØÖ· */
  SPI_SendByte(addr/256);
  SPI_SendByte(addr);
  /* ¶áè¡êy¾Y */
  i=SPI_ReadByte();
  /* ÖÃW5100μÄCSÎa¸ßμçƽ */
GPIO_SetBits(GPIOA, GPIO_Pin_11);
  return i;
}

void Write_W5100(uint16_t addr, uint8_t dat)
{
  /* ÖÃW5100μÄCSÎaμíμçƽ */
GPIO_ResetBits(GPIOA, GPIO_Pin_11);
  /* ·¢ËíD′Ãüáî */
  SPI_SendByte(0xf0);
  /* ·¢ËíμØÖ· */
  SPI_SendByte(addr/256);
  SPI_SendByte(addr);
  /* D′èëêy¾Y */
  SPI_SendByte(dat);
  /* ÖÃW5100μÄCSÎa¸ßμçƽ */
GPIO_SetBits(GPIOA, GPIO_Pin_11);
}

有点乱码上传一张图片,上面的代码都是通用的,可以在任何平台移植,只需要修改下底层对SPI的操作代码。


接下来的工作主要就是对W5100初始化了,主要配置默认网关地址,MAC地址,子网掩码,网络ip地址等,实现这步之后,如果硬件连接正确,基本就可以ping通对方了如图:

如果这步没有成功,那接下来的什么TCP/IP编程就基本不用做了,没有ping通,要嘛就是硬件没有搞好,要不就是软件配置有问题,一般的话,对W5100软件复位之后需要延时个100ms左右,如果这个时间太短了,会导致配置失败。



此帖出自RF/无线论坛

最新回复

楼主,能把您这个基于ZigBee的以太网透传实验的工程代码发我一份么1257363662@qq.com,我现在也在做这方面的实验,一头雾水,想借您的代码研究一下,谢谢  详情 回复 发表于 2016-12-21 21:26
点赞 关注
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 

回复
举报

50

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
牛逼 牛逼 佩服
此帖出自RF/无线论坛
个人签名选择购线,构造安全,连接你我!http://www.gooxian.com/
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
这个实验,还是需要有这个硬件条件,才可以做,自己现在也在做zigbee相关的模块,用在电表上电。
此帖出自RF/无线论坛

点评

现在远程抄表用的很广泛了  详情 回复 发表于 2016-6-16 19:25
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

4
 
cxtx00 发表于 2016-6-16 11:00
这个实验,还是需要有这个硬件条件,才可以做,自己现在也在做zigbee相关的模块,用在电表上电。

现在远程抄表用的很广泛了
此帖出自RF/无线论坛
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

5
 
楼主,能把您这个基于ZigBee的以太网透传实验的工程代码发我一份么1257363662@qq.com,我现在也在做这方面的实验,一头雾水,想借您的代码研究一下,谢谢
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表