《基于zigbee无线数据收发的设计和实现.docx》由会员分享,可在线阅读,更多相关《基于zigbee无线数据收发的设计和实现.docx(3页珍藏版)》请在第一文库网上搜索。
1、1 .总的设计方案图1.上位机与平板电脑之间无线数据传送模块的总体设计注释:1射频模块采用CC2530该模块是现成的,可以直接利用;2工作流程:下位机发送指令通过RS232传给连接下位机的射频模块,该模块经过处理后将信息传给连接在平板电脑上的射频模块,该模块通过USB接口将信息传给平板电脑;而平板电脑传送给下位机的信息传递方式与上述的类似。2 .硬件原理框图图2,zigbee无线收发模块的硬件工作原理框图注释:1串口转换电路:实现RS232串口数据转换.因此,可以实现无线模块与PC机之间的串口数据通信无线收发模块:采用Zigbee射频局部;工作原理:CC2430的接收器是基于低-中频结构之上的
2、,从天线接收的RF信号经低噪声放大器放大并经下变频变为2MHz的中频信号。中频信号经滤波、放大,在通过A/D转换器变为数字信号。自动增益控制,信道过滤,解调在数字域完成以获得高精确度及空间利用率。集成的模拟通道滤波器可以使工作在2.4GHzISM波段的不同系统良好的共存。在发射模式下,位映射和调制是根据IEEE802.15.4的标准来完成的。调制(和扩频)通过数字方式完成。被调制的基带信号经过D/A转换器再由单边带调制器进行低通滤波和直接上变频变为射频信号。最终,高频信号经过片内功率放大器放大以到达可设计的水平。3JTAG接口电路:在线编程,实现对常常cc2430的编程和测试。引脚定义:TCK
3、测试时钟输入;TDI测试数据输入,数据通过TDI输入JTAG口;TDO测试数据输出,数据通过TDO从JTAG口输出;TMS测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。可选引脚TRST测试复位,输入引脚,低电平有效。(4)电源模块:选用了AH805升压稳压器,这样就可以将干电池提供的3V电压变压至5V,满足MAX232电路的供电.而3V电压为CC2430模块和JTAG模块提供稳定电压小注:MAX232是专为RS-232标准串口设计的单电源电平转换芯片。3 .硬件设计电路图mcc2430的典型应用电路使用一个非平衡天线,连接非平衡变压器可使天线性能更好。电路中的非平衡变压器由电容
4、C341和电感1341、1321、1331以及一个PCB微波传输线组成,整个结构满足RF输入/输出匹配电阻(50Q)的要求。内部T/R交换电路完成1NA和PA之间的交换。R221和R261为偏置电阻,电阻R221主要用来为32MHZ的晶振提供一个适宜的工作电流。用1个32MHZ的石英谐振器XTA11和2个电容C191和C2H构成一个32MHZ的晶振电路。用1个32.768kHz的石英谐振器XTA12和2个电容(C441和C431构成一个32.768kHz的晶振电路。电压调节器为所有要求1.8V电压的引脚和内部电源供电,C241和C421电容是去耦合电容用来电源滤波,以提高芯片工作的稳定性。2J
5、TAG接口电路JTAG引脚定义:TCK测试时钟输入;TDI测试数据输入,数据通过TDI输入JTAG口;TDO测试数据输出,数据通过TDO从JTAG口输出;TMS测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。可选引脚TRST测试复位,输入引脚,低电平有效。含有JTAG口的芯片种类较多,如CPU、DSP、CP1D等。3串口通信模块接口电路设计设计了串口转换电路,可以实现RS-232串口数据转换.因止匕,可以实现无线模块与下位机之间的串口数据通信.设计了RS-232电平转换电路,这里采用了电平转换芯片MAX232来实现串口连接。4总体硬件设计电路图整个CC2430模块与计算机的串行通
6、信过程如下:下位机将RS-232串口数据通过RIIN和R2IN传输到MAX232,由MAX232将RS-232数据转换成TT1数据,再通过R1OUT和R20UT传送到CC2430;同时,CC2430通过PO.3和PO.4将数据传送给MAX232,由MAX232将TT1数据转换成RS-232数据,再通过T1OUT和T20UT将数据传送给下位机。同时,选用了AH805升压稳压器,这样就可以将干电池提供的3V电压变压至5V,满足MAX232电路的供电.而3V电压为CC2430模块和JTAG模块提供稳定电压.此外,这里还设计了一个复位电路,通过复位开关可以进行手动复位,复位电路与CC2430的引脚10
7、连接,且低电平有效。4 .软件设计本次软件设计主要分为两局部:(1一局部是在CC2430上通过异步串行接口向下位机发送数据;2)另一局部是通过串口接收数据,对数据进行处理后,再将处理后的数据发送给下位机而串口接收处理并发送数据的程序,主要涉及到对中断效劳程序的调用,对接收数据的处理后再发送。这里的串口发送子程序首先是判断数据是否发送完毕,没有发完才继续发送数据,发送数据时先把数据送入串口O的数据收发缓冲器(UODBUF),CC2430模块的串口通信是只要你不停放数据到UODBUF就行,当然事先要设置好你所需要的串口,具体的数据发送是由硬件完成,编程的时候不需要考虑这些.因为CC2430的内核是
8、一个51核,所以每次的传输都是一个字节一个字节的,也就是说每次只能一个字母一个字母的发送数据.在这里,发送函数做了个等待中断标志的处理,也就是送一个字节到缓冲器,需要等待中断的产生,当中断产生了,说明UODBUF里的数据已经被发送出去了,这时才可以继续发送数据,同时在继续发送前还得把中断标志清零.需要指出的是,如果是需要一组数据一组数据的接收或者传送的话,就必须不停的调用函数,直到把整个数组中的数据都传送完之后再停止.在这个发送主程序里,先是调用发送函数发送了一个字符串,之后去除已发送数据,再发送一个字符串,之后进行延时处理,再循环发送数据.本次软件设计的另一局部是实现通过串口接收数据并发送数据.这局部程序设计使用的是中断方式来对数据进行接收的,之后对接收到的数据进行处理,这里以“#为字符串末字节结束符,假设接收的字符串长度超过30字节,或接收到结束符时,认为接收到一条命令,停止接收数据,之后,再将这一字符串反向发送给下位机。开始初始化I/O,串口0雌收到的神发出滞收到的翻