一种基于zigbee的温度采集方案介绍

最近在做一个电机温度采集的项目,其中采用的传感器是热敏电阻,将采集到的温度用无线的zigbee发出来,再通过主站将zigbee接收到的数据利用以太网将这些数据发送到PC端的上位机,还有profibus接口,将zigbee接收到的温度等一些数据发送到PLC上。

zigbee的从站,也就是电机温度的采集部分用的是AVR的单片机,这里的主要代码也就是温度的运放的AD的采集,还有就是zigbee的数据发送,加几个拨码开关来选择从站的id和zigbee的信道,采用的zigbee是cc2630。这个模块中的主要参数有两个,一个是PAN ID,这个参数是0001-00FF(如果没有记错),另一个是信道,信道的选择是从11-26,由于只是留了两个拨码开关,所以目前的方案是PAN ID的低字节和信道选择是用的这两个拨码来控制的,拨码开关是4--10的这种。所以是范围是可以0-99的,但是目前我们用到的只有11-26。从站的东西较少,预想的是一个zigbee主站挂20个从站。

zigbee主站用的是ARM 单片机,比较流行的STM32F103,这款单片机的资料较多,且确实用起来比较方便。主站上的东西除了以太网模块,profibus和zigbee之外,还有20个0--1的从站使能开关,4--10的那种拨码的DP从站ID设置开关,还有和从站对应的两个设置zigbee的PAN ID和信道的拨码开关。除此之外还有20个从站的状态RGB灯,为了节省IO,用了74HC595来控制这些RGB灯。

主站和从站的硬件部分差不多就是这些,最近快要被profibus搞死了,以前有在AVR单片机上开发过profibus,以为硬件和软件都可以直接挪到STM32上,但是事实证明我是真的想多了,profibus的芯片采用的是VPC3+,这个芯片是比较常用的,为了代替SPC3的,把这个芯片以前在AVR上用的硬件和软件都搬过来发现确实是被坑了,原来这个东西确实是可以当作单片机的一个外部RAM,只要将RAM的起始地址设置好就可以了,AVR单片机确实就留有一个专门外扩RAM的一些IO,STM32 虽然也有,但是我的硬件是按照AVR的那么画的,有8条地址线并没有引出来,也没有接到STM32的FSMC上,所以就GG了,搞得我很难受。最后为了节省时间,直接强行加了一个AVR的单片机,然后这个ARM 和它通信,这样应该就没问题了哈哈,但愿明天板子回来是OK的。好了今天先这样吧。未完看调试结果,我们拭目以待。

你可能感兴趣的:(嵌入式,程序,单片机,硬件)