ZigBee On Windows Mobile-ZigBee模块的设计制作
上篇文章”ZigBee On Windows Mobile—利用CF卡接口外扩”发布以后,有朋友回帖说希望我写一下ZigBee硬件模块的设计方法和流程,今天我们就来学习一下ZigBee模块是如何制作的。
目前,生产ZigBee芯片的有好几家大公司,TI、Freescale、Atmel和Jennic等均有各自的ZigBee芯片,TI和Freescale用的比较多,设计参考文档也比较全。TI的ZigBee解决方案主页链接如下:http://focus.ti.com.cn/cn/analog/docs/rfifcomponentshome.tsp?familyId=367&contentType=4。其中包括了CC2420、CC2520、CC2430、CC2431和最新的CC2480的设计指南。Freescale的ZigBee解决方案主页链接如下:http://www.freescale.com.cn/ZigBee.asp。包括了IEEE802.15.4收发器MC13192、MC13193和单芯片MC13213、MC13214等的设计指南。
我觉得这两家的参考设计文档比较齐全,降低了我们入门的门槛和硬件设计的难度。下面我就以Freescale的MC13213为例,说明一下硬件设计流程和方法。
首先,从整体来看,我们可以将目标设计分为几个模块:电源模块、主芯片模块、天线模块调试接口和外围扩展模块。其中,电源模块、天线模块、调试接口和主芯片模块是必须的,可以用通常所说的”最小系统”来描述。外围扩展模块是根据用户的实际需求自行添加。
1. 电源模块
按照MC13213的datasheet,其工作电压范围在2-3.4V,而我们一般使用干电池或者可充电的锂电池供电,这样,我们就需要一个LDO或者DC-DC,它的作用就是将我们的电池电压降到MC13213可以工作的范围内。在这里,我们可以选用TI的76930,不仅因为体积小(SOT23封装),而且Dropout Voltage的典型值在71mV@100mA。另外,如果用可充电的锂电池的话,需要注意加上保护电路,如下图1所示:
2. 主芯片模块
MC13213本身就包括了MCU和收发器,因此,它的必须外围电路很少。这里需要强调是晶振的选择问题。一般我们使用外部晶振来提供系统时钟,在这里,我选择了16M的无源晶振,如下图2所示:
3. 天线模块
天线的设计关系到无线信号发送和接收的质量。在Datasheet中,freescale给出了参考天线设计,称为倒F天线。这里需要注意的是:我们可以使用芯片的内部收发开关,也可以使用外部自己加的收发开关。使用外部收发开关,信号的收发效果会更加好一点,但是这样一来,成本也就增加了,即增加了一个收发开关和Balun。这里我的设计是使用了外部收发开关,如下图3所示:
4. 调试接口
Freescale有自己的BDM接口,称为background debug module。一般,我们可以在板子上设计插针来实现。但是,考虑到ZigBee模块在很多情况下,它的体积要求很小,这样一来,六个插针的BDM接口就显得臃肿好多。因此,我们这里使用miniUSB接口来外扩。如下图4所示,其中的miniUSB接口还包括了电源、UART的Rx和Tx。
5. 外围扩展模块
l 充电管理芯片:如果使用可充电锂电池的话,充电管理芯片是不能少的。这里,我们选用Freescale的MC34673。在CC(恒流)模式下,充电的电流可以通过电阻R6来调整,如下图5所示,具体可以参考其datasheet。
l 指示灯:一般可以用指示灯来指示程序运行的状态,也就是程序可以控制的指示灯。指示灯有贴片封装的,也有直插封装的。发光强度有一般的,也有高亮的,我们可以按照实际的需求来选择。
l 其他外围电路可以用户自行添加,需要注意的是,我们选择芯片的时候,要考虑其工作电压和电流,因为ZigBee节点的要求就是节能和高效。