微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于CC2430的串口无线模块的设计

基于CC2430的串口无线模块的设计

时间:06-21 来源:互联网 点击:
1 引言
随着现代科技的飞速发展,无线通信技术成为人们日益关注的问题之一。在工业系统控制中。短距离无线通信技术应用也越来越广泛。水阻试验是内燃机车恒功率负载试验的主要方式之一,本文论述了在对内燃机车智能化水阻试验系统数据采集部分的改进中,将原来的有线数据采集改为无线数据采集传输方式的无线模块设计。

2 总体设计

无线模块的基本电路图如图1所示,主要由电源、复位电路、串口连接电路和无线收发电路组成。可实现串口数据的无线收发,即:发送数据时,RS-232串口数据经过MAX232将电平转换为TTL电平,再通过CC2430无线发送。接收数据则是发送数据的逆过程,CC2430先接收到数据信号,然后经MAX232将TTL电平转换为RS-232的标准电平,再通过RS-232向上位机输入数据。



3 硬件设计

无线模块采用的无线收发器是CC2430。CC2430出自挪威Chipcon公司,是一款真正符合IEEE802.15.4标准的片上ZigBee产品。CC2430采用Chipcon公司最新的SmartRF 03技术和0.18μm CMOS工艺制造,采用7 mmx7 mm QLP48封装;除了包括RF收发器,还集成了加强型8051MCU、32/64/128 KB的Flash内存、8 KB的RAM、ADC、DMA、看门狗等。CC2430工作在2.4GHz频段,采用低电压(2.0 V~3.6V)供电且功耗很低(接收数据时为27mA,发送数据时为25 mA)、灵敏度高(-97 dBm)、最大输出为24 dBm、最大传送速率为250 kb/s。

CC2430的外围元件数目很少,它使用一个非平衡天线,连接非平衡变压器使天线性能更好。电路中的非平衡变压器由电容C12和电感L1、L2、L3以及一个PCB微波传输线组成.整个结构满足RF输入/输出匹配电阻(50Ω)的要求。内部T/R交换电路完成LNA和PA之间的交换。R4、R5为偏置电阻,其中R4主要用于为32 MHz的晶体振荡器提供合适的工作电流。用一只32 MHz石英谐振器和两只电容(C13、C14)构成32 MHz晶体振荡器电路。电压稳压器为所有1.8 V电压的引脚和内部电源供电,C11、C15是去耦电容,用于电源滤波。

由于CC2430具有低功耗的特性,因此,选用两节干电池为模块供电。另外还选用了AH805升压稳压器,可将3 V电压升高至5 V,此故电源部分可提供3 V和5 V两种电压,其中3 V电压为CC2430供电,5 V电压为MAX232和复位电路供电。

复位电路采用典型的RC复位方式,它具有上电复位和手动两种复位功能,且低电平有效。值得注意的是,为了使系统达到有效复位,应使RESET-N端保持10 ms的低电平。当复位结束后立即对该器件进行初始化时,很容易发生错误。所以,进入0000H地址后,应首先执行l ms~10 ms的软件延时,然后再进行初始化。

由于模块采用RS232与上位机相连,因此,需要用MAX232将RS232电平转换为TTL电平。

4 程序设计

无线模块的设计包括硬件连接及CC2430软件设计。编写软件程序首先要弄清楚数据在模块中的传输路径及其过程,如图2所示。



发送数据时,数据通过串口USART进入CC2430的DATA内存区。对水阻试验台来说,DATA内存区的高128字节能够满足存储容量的要求,因此将数据存放在DATA内存区的高128字节中。为了提高数据的传输速度,使用DMA传输方式将内存区中的数据传送到Radio的先进先出缓存器。TXFIFO中。数据进入Radio后,经过一系列的硬件处理,最后通过天线向发射无线信号。

接收数据是发送数据的逆过程。Radio从天线接收到无线信号,通过一系列的硬件处理,将信号转换为数据,存放在RXFIFO中,再通过DMA方式送入DATA内存区的低128字节中,再通过USART串口将接收到的数据送出。

不难看出,整个数据传输过程大部分都是在CC2430内部完成。这得益于CC2430具有极高的集成度,是一款片上系统,能够提供较高的系统稳定性和可靠性。CC2430包括了较多的自定义SFR寄存器,如何使用好这些SFR寄存器较为关键。例如在对USART的控制操作中,CC2430内部集成的USART的控制寄存器和状态寄存器分别是UxUCR和UxCSR(其中x可取值为0和1,表示CC2430集成的两个USART中的一个)。UxCSR状态字格式和UxUCR控制字格式如表l所示。用这两个寄存器可完成USART的基本设置,如:




值得注意的是,CC2430串口波特率的设置与一般8051不同,因为其内部集成了一个波特率发生器,因此,不需要使用定时器而只需设置相关的SFR寄存器UxBAUD.BAUD_M[7:0]和UxGCR.BAUD[4:0],便可得到系统要求的波特率,其关系式如下:



其中,F为系统时钟频率。若F为32 MHz,执行下列语句,得到9600 b/s的串口波特率:



实际上对USART的操作还包含对其所连接的I/O口的设置。设置I/O应与硬件密切结合,如:

同样,对D

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top