基于CC2500的2.4G无线收发系统设计正文(郝兴恒)
更新时间:2024-03-01 00:27:01 阅读量: 综合文库 文档下载
基于CC2500的2.4GHz无线收发系统设计
1.系统方案设计与论证
1.1设计要求
利用无线芯片设计一个无线收发系统,要求设计达到以下技术要求: ①低工作电压,低功耗。
②工作于免费的2.4~2.485GHz免许可证ISM频段。 ③各主要技术指标可实现编程控制,要求操作简单。 ④高信息传输速率(≥250kbps),支持多种调制方式。
⑤高接收灵敏度(10kbps下-100dBm;250kbps下-90dBm;1%数据包误码率,450KHz数字信道滤波带宽),可编程输出功率控制。 ⑥可实现点对多点通信地址控制。
1.2设计方案与论证
设计采用模块化设计,整个系统主要由无线收发模块、控制模块和电源模块构成。
1.2.1无线模块
根据设计要求,查找工作在2.4GHz频段相应无线收发芯片的datasheeet,从Nordic、Maxic、TI、Silicon Labs等各大公司生产的无线收发芯片中仔细查找筛选,筛选的原则是:①满足设计性能要求②价格合理,容易购买③设计难度小,操作方便。通过比较,最终选定TI公司的CC2500作为无线模块核心。CC2500体积小,几乎集成了所有的无线射频功能,灵敏度高,可编程设定主要工作参数,高效的SPI接口,工作在1.8V~3.6V电压范围,功耗低,具有多种调制方式,能满足不同应用要求,纠错能力强、误码率低。所需外围器件很少,降低了设计难度;数字特征明显,软件设计难度降低,用户操作也更加简单;收发一体,可实现双向通信。所以,选择CC2500作为无线核心具有很大的设计优势和价格优势,设计周期短,使用简便,最终产品也能够更快的占领市场。
1.2.2控制模块
无线模块选用了CC2500,由于CC2500芯片内部集成了几乎所有的射频功能,控制器只要能控制 CC2500的不同操作模式,写入缓冲数据,通过4线SPI(SI,SO,SCLK 和 CSn)总 线配置接 口读回状态信息就能达到要求。因此,廉价的MCU就能对其进行控制,市场上最常见的8位51系列单片机就能满足要求,综合性能、价格、应用普遍性等多方面的因素,本
1
设计采用能满足设计要求、性能适中、价格最便宜、使用广泛的STC89C52单片机作为无线模块微控制核心。
1.2.3电源模块
根据上面的选择,CC2500芯片的供电电压要求是1.8V~3.6V,而且要求稳定度高,干扰小。STC89C52芯片供电电压是5V,稳定性要求比无线芯片稍低。根据要求初步拟定了两个方案:
方案一:采用干电池供电。利用3节五号电池分别为CC2500提供3V直流电源,为STC89C52提供4.5V的直流电源。但是干电池得不到芯片所要求的典型电压值,放点以后的电压值和内阻的变化也很大,实际上是很难满足设计的供电要求的。
方案二:采用稳压芯片。为增加无线系统的移动性,稳压部分的前级既可以采用对市电变压后的开关电源,也可以采用蓄电装置供电,因为无线模块的便携性要求,这里最好采用5V或5V以上的蓄电池作前级供电。设计中3.3V稳压芯片采用LM2576T-3.3,5V稳压芯片采用L7805。
考虑到首先要满足性能要求,最终供电模块采用方案二。 根据设计要求,得出系统的总的设计方案框图如图(1)所示。 发射部分 天线 接收部分 天线 无线发射模块 无线接收模块 电源模块 控制模块 电源模块 控制模块
图(1)方案框图
由方框图可见,无线收发系统分为发射部分和接收部分,实际上由于CC2500是收发一体
的芯片,所以系统可以简化表示为如图(2)所示形式:
2
无线收发模块 电源模块 控制模块 图(2)简化了的设计方案
综上所述,考虑到性能、价格、操作性、便携性等各种因素,本方案都能达到要求,因此本方案是可实现的。
2.硬件单元电路设计
2.1无线模块
CC2500是Chipon公司(现被TI收购)推出的单片无线收发一体化芯片, 芯片属于基于0.18 微米CMOS晶体技术的 Chipcon SmartRF 04 系列。工作在2.4 ~2.4835GHz全球开放的ISM(公业、科学、医学)频段,数据传输率12~500kbps,满足多点通信和跳频通信需要,工作电压1.9~3.6V。芯片内部高度集成了频率合成器,可编程调制解调器,射频功放,低噪声小信号放大器,基带滤波放大器,硬件CRC(循环冗余校验),点对多点通信地址控制,模拟温度传感器等几乎所有射频收发器模块。主要工作参数大都可以通过芯片状态字由用户根据需要进行配置,没有复杂的通信协议,对用户完全透明。CC2500支持2-FSK 、 MSK 、OOK 和灵活的 ASK 调制方式,对同类产品完全兼容。因此,只要极少数的外围元件,使用廉价的微控制器就可得到高性能的数字RF系统。
2.1.1无线收发芯片外部特征
无线收发芯片CC2500采用4×4mm QLP20封装形式,体积小,集成度高,图(2)是CC2500的视觉外形和封装。图(3)是封装参数。
3
图(2)CC2500芯片外观和封装
单位:mm
图(3)CC2500封装参数
2.2.2芯片引脚及其功能
CC2500芯片有28个引脚,引脚排列顺序见图(4),表(1)是对应引脚的功能。
4
图(4)CC2500引脚排列
注:表面的硬膜连接垫必需接在硬地面上,因为这是芯片的主接地。
引脚编号 1 2 引脚名 SCLK SO(GD01) 引脚类型 数字输入 数字输出 描述 连续配置接口,时钟输入 连续配置接口,数据输出; 当CSn 为高时为可选的一般输出脚 3 GDO2 数字输出 一般用途的数字输出脚: ①测试信号;②FIFO 状态信号;③时钟输出,从XOSC 向下分割;④连续输入TX 数据 4 DVDD 数字功率 数字I/O 和数字中心电压调节器的1.8V-3.6V 数字功率供给输出。 5 6 DCOUPL 数字功率 对退耦的1.6V-2.0V 数字功率供给输出;注意:这个引脚只对CC2500 使用。不能用来对其他设备提供供给电压 GDO0(Atest) 数字I/O 一般用途的数字输出脚: ①测试信号;②FIFO 状态信号;③时钟输出,从XOSC 向下分割;④连续输入TX 数据;⑤也用作原型/产品测试的模拟测试I/O 7 8 CSn XOSC_Q1 数字输入 模拟I/O 连续配置接口,芯片选择 晶体振荡器脚1,或外部时钟输入 5
9 10 11 12 AVDD XOSC_Q2 AVDD RF_P 模拟功率 模拟I/O 模拟功率 RF I/O 1.8V-3.6V 模拟功率供给连接 晶体振荡器脚 1.8V-3.6V 模拟功率供给连接 接收模式下对LNA 的正RF 输入信号;发送模式下对LNA 的正RF 输出信号 13 14 15 16 17 18 19 20 AVDD AVDD AVDD GND RBIAS DGUARD GND SI RF I/O 模拟功率 模拟功率 模拟地 模拟I/O 数字功率 数字地 数字输入 接收模式下对LNA 的负RF 输入信号 1.8V-3.6V 模拟功率供给连接 1.8V-3.6V 模拟功率供给连接 模拟接地 参考电流的外部偏阻器 对数字噪声隔离的功率供给连接GND 数字噪声隔离的接地 连续配置接口,数据输入 表(1)CC2500外接引脚介绍
2.1.2 CC2500无线收发芯片内部结构
CC2500 简化结构框图如图(5)所示。当CC2500 用作一个低中频(Low-IF)接收器时,接收的RF 信号通过低噪声放大器(LNA)放大,再对中频信号(IF)求积分来向下转换。在中频(IF),I/Q 信号通过ADC 被数字化。自动增益控制(AGC ),细微频率滤波和解调,位/数据包同步均是数字化地工作。
CC2500的发送器部分基于RF 频率的直接合成。频率合成器包含一个完整的芯片LC VCO,和一个对接收模式下的向下转换混频器产生I 和Q LO 信号的90 度相移装置。晶体振荡器连接在XOSC_Q1 和XOSC_Q2上。晶体振荡器产生合成器的参考频率,同时为数字部分和ADC 提供时钟。以一个4 线SPI 串联接口为配置和数据缓冲通路。数字基带包括频道配置支持,数据包处理及数据缓冲。
6
图(5)CC2500简化结构框图
2.2.3 CC2500无线收发芯片电性能参数
CC2500无线收发芯片可工作在-40°C~85°C温度范围内,工作电压1.8V~ 3.6V
(所有的供电引脚必需保证相同的电压),在数据速率250kbps最佳电流配置接收条件下工作电流为15mA左右,休眠模式下最低电流消耗为400nA或900nA,支持低功率电磁波激活功能, 外部中断唤醒、外部中断或RTC 唤醒系统。编程控制方便,用户可以通过四线串行配置和数据接口对内部寄存器进行设置,是芯片按照用户需求工作。
表(2)是芯片绝对最大等级参数要求,超过一个或多个限制值会对设备造成永
久损坏。
表(2)绝对最大等级参数表
7
CC2500可在全数字化条件下工作,表(3)是在指定条件下,输入输出高/低电平的
电压要求。
表(3)电平参数
CC2500发射功率、数据率、调制方式,接收数据率、工作状态等技术指标都可以通过
编程设定,不同条件小电气参数不同,表(4)是在给定测试条件,在Tc=25°C,VDD=3V情况下,芯片的电流规范值。
参数 功率 降低 模式 下的 电流 消耗 160 uA 92 uA 最小值 典型值 400 900 最大值 单位 nA nA 测试条件 数字部分的电压调节器关闭,寄存器值保持(休眠状态) 数字部分的电压调节器关闭,寄存器值保持,低功率 RC 振荡器工作(休眠状态,WOR 开启) 数字部分的电压调节器关闭,寄存器值保持 XOSC 工 作 ( 休 眠 状 态 ,MCSM0.OSC_FORCE_ON 固定) 数字部分的电压调节器开启,所有其他模块功率降低(XOFF 状态) 电流 消耗 1.4 uA 35 uA 8.1 uA 每秒自动 RX 选举,使用低功率 RC 振荡器,460Hz 滤波带宽和 250kbps 数据率,PLL 校 准每第 4 次唤起时发生。信道有信号时的平 均电流在载波感应等级之下。 同上面一样,但信道有信号时的平均电流在载波感应等级之上,1.9msRX 工作暂停,无 前导/同步词汇。 每 15 秒自动 RX 选举,使用低功率 RC 振荡器,460Hz 滤波带宽和 250kbps 数据率,PLL 校准每第 4 次唤起时发生。信道有信号时的 平均电流在载波感应等级之下 8
42 uA 同上面一样,但信道有信号时的平均电流在载波感应等级之上,14msRX 工作暂停,无 前导/同步词汇。 1.5 mA 只有数字部分的电压调节器和晶体振荡器工作(空闲状态) 7.4 mA 只有频率合成器工作(从空闲状态之后直到到达 RX 或 TX 状态及频率校正状态) 电流 消耗 15.3 12.8 15.4 12.9 18.8 15.7 16.6 13.3 mA mA mA mA mA mA mA mA 接收模式,2.4kbps,输入接近灵敏度限制 接收模式,2.4kbps,输入高于灵敏度限制30dB 接收模式,10kbps,输入接近灵敏度限制 接收模式,10kbps,输入高于灵敏度限制30dB 接收模式,250kbps,输入接近灵敏度限制 接收模式,250kbps,输入高于灵敏度限制30dB 接收模式,250kbps电流最佳化时,输入接近灵敏度限制 接收模式,250kbps电流最佳化时,输入高于灵敏度限制30dB。 (RX状 态下) 电流消耗(TX状态下) 19.6 17.0 11.1 15.1 21.2 mA mA mA mA mA 接收模式,500kbps,输入接近灵敏度限制 接收模式,500kbps,输入高于灵敏度限制30dB 发射模式,输出功率-12dBm 发射模式,输出功率-6dBm 发射模式,输出功率0dBm 表(4)电流规范表
芯片内置了模拟温度传感器,模拟温度传感器的特性参数见表(5),特别要注意的是,在 IDLE 状态下使用模拟温度传感器时,有必要对 PTEST 寄存器写入 0XBF 位。
参数 –40°C时的输出电压 0°C时的输出电压 +40°C时的输出电压 +80°C时的输出电压 +120°C时的输出电压 温度系数 最小值 0.638 0.733 0.828 0.924 1.022 2.35 典型值 0.648 0.743 0.840 0.939 1.039 2.45 最大值 0.706 0.793 0.891 0.992 1.093 2.46 单位 V V V V V 条件/注意 mV/°C 从-20°C 到+80C°C符合 C 9
计算温度下的绝对误差 -14 -8 +14 °C 假设对绝对精度的最佳符合:0°C 时 0.763V、2.44mV/°C 时,从-20 °C 到+80°C 计算温度下的误差,被 -2 校准 开启之后的迁移时间 TBD +2 °C μs 室温下在 1-point 校准后,当使用 C 时从-20°C 到+80°C 2.44mV/° 开启后的电流消耗增加 0.3 mA 表 (5)模拟温度传感器参数
CC2500无线收发芯片还提供(规定)了其它射频和芯片的参数值。芯片要求天线匹
配阻抗为50欧姆,天线寄生辐射为欧美25MHz~1GHz,其它地区在1GHz以上。外接晶振的范围为26~28MHz,典型值为26MHz,典型容差为+40ppm,低功RC振荡器校准频率为34.6~37.3KHZ(XTAL输入值除以750),典型值为34.7KHz。内部频率合成器决议频率为397~427Hz(假定晶振输入为26~28MHz),典型值为(FXOSC/216)。芯片内置了精确的锁相环(PLL),锁相环开启/跳跃时间最大值为80us,RX/TX和TX/RX 设定时间为10us,校准时间为0.67~0.72ms。数字信道滤波带宽可由用户自己设定
为了更清楚的理解芯片的工作原理,芯片datasheet给出数据率250kbps,最佳电流状态时典型应用时的状态表,见下图(6)
10
图(6)状态表
注释:(1)sleep:最低功率模式。大多数寄存器值被保持。典型电流消耗:400nA,或 900nA 当电磁波唤醒
(WOR)开启时。
(2) Idle:当通信不被接收或传输时为默认值。典型电流消耗:1.5mA
(3) Manual freq. Synth. Calibration:用来校准在前面的频率合成器(进入接收或发送模式能更快地
运行) 。变迁状态典型电流消耗:7.4mA
(4) 频率合成器开启:频率合成器是开启的,准备开始发送。在接收 STX 命令滤波之后,发送
很快就开 始。典型电流消耗:7.4mA
2.2.4 CC2500无线收发芯片接口和寄存器描述
11
编程控制芯片的实质就是对芯片的寄存器进行配置,这一部分主要介绍芯片的寄存器及相关配置要求。 (1)SPI接口
CC2500通过4线SPI兼容接口(SI,SO,SCLK和CSn)对寄存器进行配置。这个接口同时用作写和读缓存数据。SPI 接口上所有的地址和数据转换被最先在重要的位上进行处理。SPI接口上所有的处理都同一个包含一个读/写位,一个突发访问位和一个6位地址的 头字节一起作用。在地址和数据转换期间,CSn 脚(芯片选择,低电平有效)必须保持为低电平,如果在过程中 CSn变为高电平,则转换取消。当 CSn变低,在开始转换头字节之前,MCU 必须等待,直到 SO脚变低。这表明电压调制器已经稳定,晶体正在运作中。除非芯片处在 SLEEP或 XOFF状态,SO脚在 CSn变低之后总会立即变低。下图(7)描述了对寄存器进行读写操作的时序图,表(6)描述了SPI接口的定时要求,在编写程序是要考虑。
图(7)配置寄存器写和读操作时序图 参数 FSCLK tsp,pd tsp tch tcl trise tfall tsd thd tns 描述 SCLK 频率 CSn 低到 SCLK 的正边缘,功率降低模式下 CSn 低到 SCLK 的正边缘,活动模式下 时钟高 时钟低 时钟上升时间 时钟上升时间 向 SCLK 的正边缘建立数据 在 SCLK 的正边缘之后保持数据 SCLK 到 CSn 高时的负边缘 表(6) SPI 接口定时要求 最小值 0 TBDus TBDns 50ns 50ns 最大值 10MHz TBDns TBDns TBDns TBDns TBDns (2)芯片状态位描述
状态寄存器6,5和 4位由状态值组成。这个值反映了芯 片的状态。当使 XOSC空闲并使数字中心的能量开启,所有其他模块处于功率降低状态时,频率和信道配置才能更新。当
12
芯片处于接收模式时,RX状态是活动的。 同样地,当芯片处于传输模式时,TX状态是活动的。状态字节中的后四位(3:0)包 含 FIFO_BYTES_AVAILABLE。为了进行读 操作,这个区域包含可从 RX FIFO读取的字节数。为了进行写操作,这个区域包含可写入TX FIFO的字节数,当FIFO_BYTES_AVAILABLE=15时,15或者更多字节是可以自由使用的。下表(7)是对状态位的一个简要描述
比特 7 6:4 名称 CHIP_RDYn STATE[2:0] 描述 保持高,直到功率和晶体已稳定。当使用 SPI 接口时应始 终为低。 表明当前主状态机模式 值 状态 描述 000 001 010 011 100 101 110 空闲 RX TX FSTXON 校准 迁移 RXFIFO_OVERFLOW TXFIFO_OVERFLOW 空闲模式 接收模式 发送模式 快速TX准备 频率合成器校准正运行 PLL正迁移 RX FIFO已经溢出。读出任何有用数据,然后用SFRX冲洗FIFO。 TX FIFO已经下溢。同SFTX应答。 111 3:0 FIFO_BYTES_AVAILABLE[3:0] TX FIFO中 的自 由 比 特数。若 FIFO_BYTES_AVAILABLE=15,它表明有 15 或更多个比 特是可用/自由的。 表(7) 状态字概述 (3)数据传输
CC2500芯片通信数据以数据包的形式传输,数据包的格式如下图(8)所示,相关解释与注意事项见图后注释。传输数据率和接收的数据率要进行匹配,由MDMCFG3.DRATE_M和MDMCFG4.DRATE_E 配置寄存器控制,数据率有晶振频率决定,数据率RDATA可由下面公式得到:
同样,利用上式也可以得到:
13
接收信道的滤波带宽也是可以通过设定MDMCFG4.CHANBW_E和MDMCFG4.CHANBW_M编程确定,可以通过下面的式子得到所需的带宽值:
为了得到最高性能,信号带宽最多占 80%信道滤波带宽。取决于晶体精确度的信道中心容差也应该从信号带宽中减去。
单位:bit 前导码 8×n 同步字 16/32 数据长度 8 地址 8 数据载荷 8×n 校验码 16 图(8) 数据包格式
注释:由上图可见,无线收发的一个数据包由8*n bit的附加信息位,16或32bit的同步字,8bit数据包长度控制字,8bit可选地址控制字,8*n bit任意长数据载荷和16bit CRC检校字构成,数据包传送时左边在前,右边在后,但是单包数据长度不能超过256字节。CC2500提供为数据包导向的通信协议,在传输模式下,只需要添加可控制数量的前导字节和一个二字节同步词汇到TX FIFO数据包;在接收模式下数据包处理支持将对数据包进行解析。推荐设定为 4 字节前导和 2 字节同步词汇,而且控制数据包处理特性的寄存器区域必须只能在 CC2500 处于空闲状态时更改。相关更详细的介绍请访问TI中国官网(www.tichinese.com)查看芯片数据手册。
(4)寄存器描述
CC2500的寄存器分为配置寄存器和状态寄存器,地址从0x00~0x2E为配置寄存器,0x30~0x3F为状态寄存器。用户通过配置寄存器对8位寄存器进行配置,可以设定通信数据率、接收信道滤波带宽、调制解调参数、数据包参数和数据滤波参数、电压和功率控制、纠错控制、晶体和频率控制、激活模式控制等等。图(9)给出了SPI 地址空间。供使用的0x2F 之上和之地址通过在左边加入基地址,在顶端加入突发和读/写位的方式给出。注意在 下,突发位对于基地址有不同的意义。表(8)是对地址空间中配置寄存器的描述,表(9)是对地址空间中状态寄存器的描述,(详细配置参数请参看芯片数据手册55~78页) 注释①:数据手册下载地址是:
http://focus.ti.com/docs/prod/folders/print/cc2500.html
14
①
图(9)SPI地址空间
15
地址 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28
寄存器 IOCFG2 IOCFG1 IOCFG0 FIFOTHR SYNC1 SYNC0 PKTLEN PKTCTRL1 PKTCTRL0 ADDR CHANNR FSCTRL1 FSCTRL0 FREQ2 FREQ1 FREQ0 MDMCFG4 MDMCFG3 MDMCFG2 MDMCFG1 MDMCFG0 DEVIATN MCSM2 MCSM1 MCSM0 FOCCFG BSCFG AGCTRL2 AGCTRL1 AGCTRL0 WOREVT1 WOREVT0 WORCTRL FREND1 FREND0 FSCAL3 FSCAL2 FSCAL1 FSCAL0 RCCTRL1 RCCTRL0 描述 GDO2 输出脚配置 GDO1 输出脚配置 GDO0 输出脚配置 RX FIFO 和 TX FIFO 门限 同步词汇,高字节 同步词汇,低字节 数据包长度 数据包自动控制 数据包自动控制 设备地址 信道数 频率合成器控制 频率合成器控制 频率控制词汇,高字节 频率控制词汇,中间字节 频率控制词汇,低字节 调制器配置 调制器配置 调制器配置 调制器配置 调制器配置 调制器背离设置 主通信控制状态机配置 主通信控制状态机配置 主通信控制状态机配置 频率偏移补偿配置 位同步配置 AGC 控制 AGC 控制 AGC 控制 高字节时间 0 暂停 低字节时间 0 暂停 电磁波激活控制 前末端 RX 配置 前末端 TX 配置 频率合成器校准 频率合成器校准 频率合成器校准 频率合成器校准 RC 振荡器配置 RC 振荡器配置 16
是否保存在休眠状态中中 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 地址 0x30 (0xF0) 0x31 (0xF1) 0x32 (0xF2) 0x33 (0xF3) 0x34 (0xF4) 0x35 (0xF5) 0x36 (0xF6) 0x37 (0xF7) 0x38 (0xF8) 0x39 (0xF9) 0x3A (0xFA) 0x3B (0xFB)
FSTEST PTEST AGCTEST TEST2 TEST1 TEST0 寄存器 PARTNUM VERSION FREQEST LQI RSSI MARCSTATE WORTIME1 WORTIME0 PKTSTATUS VCO_VC_DAC TXBYTES RXBYTES 频率合成器校准控制 产品测试 AGC 测试 不同的测试设置 不同的测试设置 不同的测试设置 描述 CC2550 的组成部分数目 当前版本数 频率偏移估计 连接质量的解调器估计 接收信号强度指示 控制状态机状态 WOR 计时器高字节 WOR 计时器低字节 当前 GDOx 状态和数据包状态 PLL 校准模块的当前设定 TX FIFO 中的下溢和比特数 RX FIFO 中的下溢和比特数 No No No No No No 表(8)配置寄存器地址对照表 表(9)配置寄存器地址对照表
2.2.5 无线模块原理图设计
原理图的设计必须严格按照数据手册上的要求来进行,包括元器件的要求都要严格遵
守,图(11)是无线模块的原理图(1、2、3、6、7、20脚接单片机),表(11)是元器件规格表。 (1)晶振部分
26MHz-28MHz 频率范围的晶体必须连接在 XOSC_Q1 和 XOSC_Q2 脚之间,必需要有晶体负载电容(C14,C15),晶体的总负载电容CL由下式决定:
Cparasitic寄生电容由引脚输入电容和 PCB漂移电容所组成。总寄生电容典型值为 2.5pF。 晶振电路如下图(10)所示,晶体振荡元件值见表(10)
17
图(10)晶振电路
CL=13pF 22 pF 22 pF CL=16pF 27 pF 27 pF 元件符号 C14 C15 CL=10pF 15 pF 15 pF 表(10)晶体振荡器元件值
(2)天线
从RF引脚向天线方向看,匹配网络应该满足下式:
如图(11)所示,12脚、13脚以外的部分是RF网络,C8、C9为射频平衡转换器 DC模块电容,C10、C11是RF 平衡转换器/匹配电容,C12、C13是RF LC 滤波/匹配电容,L1、L3是RF 平衡转换器/匹配电感,L2是RF LC 滤波电感。至于天线,这里不作特别讨论,设计方法请参考芯片数据手册。 (3)供电
为了减小电源的干扰,芯片采用分开供电的方式。C1,C3~C7,C17都是电源退藕电容,C2、C18是数字部分的片内电压调节器的退偶电容,R1是内部偏电流参考的 56 千欧电阻。
符号 C10, C11 C13 C12 C14,C15 C17,C18 C8,C9 C5,C6,C7 C1,C2,C3,C4 C16 参数 1pF 1.5pF 1.8pF 15pF 47pF 100pF 220pF 0.1uF 1uF 0402 0402 0402 0402 0402 0402 0402 0402 0805 尺寸 元件规格 ECJ0EC1H010C ECJ0EC1H1R5C ECDG0E1R8B ECJ0EC1H150J ECJ0EC1H470 ECJ0EC1H101J ECJ0EC1H221J ECJ0EB1A104K C0805C105K4RACTU 18
Y1 L1,L2,L3 R1 26.000MHz 1.2nH 56K ABM3B 0402 0402 表(11)元器件规格表
ABM3B-26.000MHZ-10-1-U-T MLK1005S1N2S ERJ3EKF5622V
图(11)无线模块原理图
2.2.6 无线模块PCB设计
(1)元器件布局
在元器件布局的过程中应当注意以下几个问题:
①首先确定与其它PCB板或系统的接口元器件在PCB板上的位置,必须注意接口元器件间的配合问题,这里的天线接口位置和与单片机连接接口位置要先确定。
②PCB的面积很小很小,元器件间排列很紧凑,因此对于体积较大的元器件,必须优先考虑,确定出相应位置,并考虑相互间的配合问题。这里芯片和晶振就是属于大元件。 ③数字信号和模拟信号要分开,滤波网络必须就近连接,这样不仅可以减小辐射,而且可以减少被干扰的几率。
④退藕电容要尽量靠近芯片引脚。
最后的电路元器件布局如图12
19
图(12)电路元器件布局图
(2)布线
在布局完成以后就要进行布线,布线的基本原则是:在组装密度许可情况下后,尽量选用低密度布线设计,并且信号走线尽量粗细一致,有利于阻抗匹配。布线时,所有的走线应该远离PCB的边框(2mm左右),电源线要尽中能宽,以减少环路电阻,同时,使电源线、地线的走向和数据传递的方向一致,以提高抗干扰能力;所布信号线应尽可能短,并尽量减少过孔数目;各元器件间的连线越短越好,以减少分布参数和相互间的电磁干扰;对于不相容的信号线应量相互远离,而且尽量避免平行走线,而在正向两面的信号线应用互垂直;布线时在需要拐角的地址方应以135°角为宜,避免拐直角。特别强调,地线的阻抗会产生磁干扰,给系统带来麻烦,地线粗、短、走向合理能有效抑制磁干扰。
最终生成的PCB如下图所示,图(13)是顶层视觉图,图(14)是底层视觉图。
20
图(13)顶层图
图(14)底层图
2.2 微控制器模块
微控制器模块主要由STC89C52芯片和其外围电路组成,这里对PCB设计没有特别的要求,所以不再详述,后面的电源模块也做相同处理。
21
2.2.1 STC89C52芯片简介
本设计采用宏晶科技生产的STC89C52芯片,芯片采用40脚双列直插式封装,32个I/O口,芯片工作电压3.8~ 5.5V,工作温度0-70°C(商业级),工作频率可高达30MHz,芯片的外形和引脚见下图(15)。封装参数可以查阅STC89C52RC的数据手册,也可以在画PCB是利用 Altium Designer建立PCB封装库,利用工具菜单中PCB封装向导自动生成。STC89C52芯片的引脚及功能与MCS51系列完全相同,这里不再赘述。
STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程 Flash。P0~P3口结构,第一功能、第二功能请参考数据手册。②
图(15) STC89C52外形和引脚图
注②:STC89C52数据手册下载地址www.mcu-memory.com。
22
2.3 电源模块
具体的PCB不再给出。
2.2 .2微控制模块原理图
图(16)微控制器模块原理图
电阻,具体的模块间的引脚连接根据用户的要求和编程喜好确定,没有特别的规定。
微控制器模块原理图如上图所示,C1=C2=30pF,R1=4.7K,Vcc=5V,Y1为12MHz
引脚的输出为5V,而无线模块的输入为3.3V,这里要和无线模块连接必需加上1K~10K的
电源模块的输出电压有两种,一种是为微控制器供电的5V直流电压,一种是为无线模
块供电的3.3V直流电压,电源模块的原理图如下图(17)所示,元器件参数见图上标注。
晶振,如果要显示数据发送情况,生产时可以按照需求添加相应的显示模块。由于微控制器
23
图(17)电源模块原理图
3.软件单元设计
3.1软件设计思想
CC2500没有复杂的数据协议要求,因此软件设计要做到的主要是:(1)初始化CC2500,对寄存器进行配置(2)无线数据收发和处理。
程序采用C语言来设计,应用电磁激活方式,当有数据包接收或发送时,无线收发系统被唤醒,当数据发送完毕以后,系统自动进入休眠模式,程序流程图见图(18)
24
开 始 MCU和CC2500初始化 进入激活模式 否 是接收信号? 为发送信号? 否 是 进入接收状态 是 进入发送状态 接收一个数据包 发送一个数据包 否 接收完毕? 发送完毕? 是 数据处理 是 否 是 继续? 否 结束
图(18)软件设计流程图
3.2程序设计举例
为了方便更好的编程,下面给出CC2500初始化函数,SPI初始化函数,数据包接收函
数,数据包发送函数,寄存器写入函数,寄存器读取函数,CC2500接收地址设置函数,CC2500发射地址设置函数,这些函数可以直接抑制到系统中,或者稍加修改就能应用,能够大大减
25
少编程的工作量。
(1) CC2500初始化函数: void CC2500_Init(void) {
CSN = 1; delay_ms(1); CSN = 0; delay_ms(1); CSN = 1; delay_ms(1); CSN = 0;
SPI_Write(CCxxx0_SRES);
//写入复位命令
CSN = 1;
CC2500_WriteReg(CCxxx0_FSCTRL1, CC2500_Config.FSCTRL1); CC2500_WriteReg(CCxxx0_FSCTRL0, CC2500_Config.FSCTRL0); CC2500_WriteReg(CCxxx0_FREQ2, CC2500_Config.FREQ2); CC2500_WriteReg(CCxxx0_FREQ1, CC2500_Config.FREQ1); CC2500_WriteReg(CCxxx0_FREQ0, CC2500_Config.FREQ0); CC2500_WriteReg(CCxxx0_MDMCFG4, CC2500_Config.MDMCFG4); CC2500_WriteReg(CCxxx0_MDMCFG3, CC2500_Config.MDMCFG3); CC2500_WriteReg(CCxxx0_MDMCFG2, CC2500_Config.MDMCFG2); CC2500_WriteReg(CCxxx0_MDMCFG1, CC2500_Config.MDMCFG1); CC2500_WriteReg(CCxxx0_MDMCFG0, CC2500_Config.MDMCFG0); CC2500_WriteReg(CCxxx0_CHANNR, CC2500_Config.CHANNR); CC2500_WriteReg(CCxxx0_DEVIATN, CC2500_Config.DEVIATN); CC2500_WriteReg(CCxxx0_FREND1, CC2500_Config.FREND1); CC2500_WriteReg(CCxxx0_FREND0, CC2500_Config.FREND0); CC2500_WriteReg(CCxxx0_MCSM0 , CC2500_Config.MCSM0 );
CC2500_WriteReg(CCxxx0_FOCCFG, CC2500_Config.FOCCFG); CC2500_WriteReg(CCxxx0_BSCFG, CC2500_Config.BSCFG); CC2500_WriteReg(CCxxx0_AGCCTRL2, CC2500_Config.AGCCTRL2); CC2500_WriteReg(CCxxx0_AGCCTRL1, CC2500_Config.AGCCTRL1); CC2500_WriteReg(CCxxx0_FSCAL3, CC2500_Config.FSCAL3); CC2500_WriteReg(CCxxx0_FSCAL2, CC2500_Config.FSCAL2); CC2500_WriteReg(CCxxx0_FSCAL1, CC2500_Config.FSCAL1); CC2500_WriteReg(CCxxx0_FSCAL0, CC2500_Config.FSCAL0);
CC2500_WriteReg(CCxxx0_AGCCTRL0, CC2500_Config.AGCCTRL0);
CC2500_WriteReg(CCxxx0_FSTEST, CC2500_Config.FSTEST); CC2500_WriteReg(CCxxx0_TEST2, CC2500_Config.TEST2); CC2500_WriteReg(CCxxx0_TEST1, CC2500_Config.TEST1); CC2500_WriteReg(CCxxx0_TEST0, CC2500_Config.TEST0); CC2500_WriteReg(CCxxx0_IOCFG2, CC2500_Config.IOCFG2); CC2500_WriteReg(CCxxx0_IOCFG0, CC2500_Config.IOCFG0); CC2500_WriteReg(CCxxx0_PKTCTRL1, CC2500_Config.PKTCTRL1);
26
CC2500_WriteReg(CCxxx0_PKTCTRL0, CC2500_Config.PKTCTRL0);
CC2500_WriteReg(CCxxx0_ADDR, CC2500_Config.ADDR); CC2500_WriteReg(CCxxx0_PKTLEN, CC2500_Config.PKTLEN); //CC2500_WriteBurstReg(CCxxx0_PATABLE, PaTabel, 8); CC2500_Command(CCxxx0_SFRX);
CC2500_Command(CCxxx0_SFTX); CC2500_Command(CCxxx0_SIDLE); (2)SPI初始化函数: void SPI_Init(void) {
CSN = 1; SCK = 0;
}
(3)CC2500数据包接收函数 uint8 CC2500_RxPacket(void) {
if((1+CC2500_DATA_LEN) == CC2500_ReadReg(CCxxx0_RXBYTES|READ_BURST)) { CC2500_ReadBurstReg(CCxxx0_RXFIFO, CC2500_TxRxBuf, 1+CC2500_DATA_LEN); //读出所有接收到的数据 return TRUE;
} else { return FALSE;
} }
(1) CC2500数据包发送函数 void CC2500_TxPacket(void) {
//CC2500_WriteReg(CCxxx0_TXFIFO,1+CC2500_DATA_LEN);
CC2500_WriteBurstReg(CCxxx0_TXFIFO, CC2500_TxRxBuf,1+CC2500_DATA_LEN); //
//进入发
写入要发送的数据 CC2500_Command(CCxxx0_STX);
送模式发送数据 while (!GDO0);// Wait for GDO0 to be set -> sync transmitted }
while (GDO0);// Wait for GDO0 to be cleared -> end of packet
CC2500_Command(CCxxx0_SFTX); //刷新发送缓冲区 CC2500_Command(CCxxx0_SIDLE);
(2) 寄存器写入函数
void CC2500_WriteReg(uint8 addr, uint8 value) {
27
CSN = 0;
while (MISO);
SPI_Write(addr|WRITE_SINGLE); //写地址 SPI_Write(value); //写入配置 CSN = 1;
}
(3) 寄存器读取函数
uint8 CC2500_ReadReg(uint8 addr) {
uint8 value; CSN = 0; while (MISO);
SPI_Write(addr|READ_SINGLE); value = SPI_Read(); CSN = 1;
return value;
}
(7)CC2500接收地址设置函数: void CC2500_Write_RxADDR(void) {
CC2500_WriteReg(CCxxx0_ADDR,CC2500_RxAddr); }
(8)CC2500发送地址设置函数: void CC2500_Write_TxADDR(void)
{
CC2500_TxRxBuf[0] = CC2500_TxAddr; }
4.结论和心得
设计达到了预期的要求,而且在具体做出实物的过程中还具有很大的灵活性,能够更方便的移植到不同的应用系统中,是一个成功的设计。
这次我一共做了两个设计,另一个是基于Si4220的315/433/868/915MHz无线发射系统的设计,这两个设计都只要求做出文本设计,不要求做出实物,对无线这一具有挑战性的工作来说,无疑是对自己能力提高的一大损失。通过这次设计,我觉得在以下几个方面有不小的收获:
(1)学会了从众多芯片中挑选设计所需的最佳选择。
(2)学会阅读datasheet,能在短时间内从数百页的文档中找到所需信息。 (3)对可编程无线收发芯片有了更深的认识,对无线芯片控制的核心——对寄存器进
行操作有了一个整体感知。
28
(4)了解高频PCB设计的基本原则,并用Altium Designer动手设计了一个PCB,虽然
没有实物,但也是一次实践锻炼。 (5)强化了读程序、编程序的能力。
重要的是,这次课程设计强化了我对无线领域的浓厚兴趣,而对无线模块进行操作不需要复杂的高频和通信协议上的知识,只需要有一定的C语言基础就能完成。符合现阶段的学习特点,能够在有限的条件下取得比较好的效果,我会在以后的时间中,更加深入的学习这一领域的相关知识。
5.参考文献
1.Texas Instruments.CC2500datasheet[EB/OL].[2005]. http://focus.ti.com/docs/prod/folders/ print/cc2500.html.
2.宏晶科技.STC89C52RCdatasheet[EB/OL].[2009]. www.mcu-memory.com.
3.黄智伟.无线数字收发电路设计——电路原理与应用实例[M].北京:电子工业出版社.2003.5
4.Mark I.Montrose[美].电磁兼容和印刷电路板理论、设计和布线.北京:人民邮电出版社.2002.12
29
正在阅读:
基于CC2500的2.4G无线收发系统设计正文(郝兴恒)03-01
品书作文450字07-14
校本课题成果鉴定书07-04
《商业银行管理学》课后习题参考答案03-29
颂竹作文500字06-16
大学军事理论论文优秀范文三篇09-10
历史必修ⅲ人教新课标1.1“百家争鸣”和儒家思想的形成教案04-26
不成熟的行政行为不具有可诉性05-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 收发
- 基于
- 无线
- CC2500
- 设计
- 系统
- 正文
- 郝兴恒
- 2.4
- 智能化方案
- 新视野大学英语1读写教程第三版book 1 Unit 2 讲稿
- 新人教版一年级品德与社会上册全册教案
- 用电企业无功功率补偿的作用、目的和意义
- 2016考研英语复习:四阶段,各侧重
- 班级值日活动中小学生责任意识的培养-2019年精选文档
- 断裂力学与断裂韧性
- 在全省生产安全事故应急预案报备管理培训班上讲课 - 图文
- 高考英语总复习-阅读理解训练题17
- 永城市龙岗镇七年级英语下册Unit5AmazingthingsGrammar知识巩固
- 第三章《概率》综合测试2(苏教版必修3)(1)
- 地块概念方案
- 用好教材才能用活教材
- 2017年中考反比例函数试题
- 煤矿安全生产大检查工作总结
- 资产采购岗廉政风险防控流程图
- 42中七年级入学数学水平测试卷解析
- 江苏教师资格认定考试教育学模拟试卷一及答案
- 辽宁省本溪满族自治县高中地理第五章交通运输布局及其影响5.1交
- 浙江省交通厅关于印发加强全省交通新闻宣传工作意见和2007年下半