RF无线收发模块设计

合集下载

无线通讯模块介绍

无线通讯模块介绍

cc1100/RF1100SE、NRF905、NRF903、nRF24L01无线收发模块开发指南简介cc1100/RF1100SE微功率无线数传模块基本特点:(1) 工作电压:1.8V~3.6V,推荐接近3.6V,但是不超过3.6V(推荐3.3V)(2) 315、433、868、915MHz的ISM 和SRD频段(3) 最高工作速率500Kbps,支持2-FSK、GFSK和MSK调制方式(4) 可软件修改波特率参数,更好地满足客户在不同条件下的使用要求高波特率:更快的数据传输速率低波特率:更强的抗干扰性和穿透能力,更远的传输距离(5) 高灵敏度(1.2kbps下-110dBm,1%数据包误码率)(6) 内置硬件CRC 检错和点对多点通信地址控制(7) 较低的电流消耗(RX中,15.6mA,2.4kbps,433MHz)(8) 可编程控制的输出功率,对所有的支持频率可达+10dBm(9) 无线唤醒功能,支持低功率电磁波激活功能,无线唤醒低功耗睡眠状态的设备(10) 支持传输前自动清理信道访问(CCA),即载波侦听系统(11) 快速频率变动合成器带来的合适的频率跳跃系统(12) 模块可软件设地址,软件编程非常方便(13) 标准DIP间距接口,便于嵌入式应用(14) 单独的64字节RX和TX数据FIFO(15) 传输距离:开阔地传输300~500米(视具体环境和通信波特率设定情况等而定)(16) 模块尺寸:29mm *12mm( 上述尺寸不含天线,标配4.5CM长柱状天线)cc1100/RF1100SE微功率无线数传模块应用领域:极低功率UHF无线收发器,315/433/868/915MHz的ISM/SRD波段系统,AMR-自动仪表读数,电子消费产品,远程遥控控制,低功率遥感勘测,住宅和建筑自动控制,无线警报和安全系统,工业监测和控制,无线传感器网络,无线唤醒功能,低功耗手持终端产品等详细的cc1100/RF1100SE模块开发文档可到/msg.php?id=75 下载NRF905无线收发模块基本特点:(1) 433Mhz 开放ISM 频段免许可证使用(2) 接收发送功能合一,收发完成中断标志(3) 170个频道,可满足多点通讯和跳频通讯需求,实现组网通讯,TDMA-CDMA-FDMA(4) 内置硬件8/16位CRC校验,开发更简单,数据传输可靠稳定(5) 工作电压1.9-3.6V,低功耗,待机模式仅2.5uA(6) 接收灵敏度达-100dBm(7) 收发模式切换时间< 650us(8) 每次最多可发送接收32字节,并可软件设置发送/接收缓冲区大小2/4/8/16/32字节(9) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便(10) 最大发射功率10毫瓦,发射模式:最大电流<30mA;接收模式:电流12.2mA(11) 内置SPI接口,也可通过I/O口模拟SPI实现。

2.4G无线数传模块电路

2.4G无线数传模块电路

2.4G无线数传模块电路2.4G无线模块概述2.4G无线模块(英文:2.4Ghz RF transceiver ,receiver module)工作在全球免申请ISM频道2400M-2483M范围内,实现开机自动扫频功能,共有50个工作信道,可以同时供50个用户在同一场合同时工作,无需使用者人工协调、配置信道。

同时,可以根据成本考虑,选择50米内、150米、600 米多种类型无线模块。

接收单元和遥控器单元具有1键自动对码功能,数字地址编码,容量大,避免地址重复。

VT-CC2510-M1 无线模块采用TI chipcon高性能无线SOC芯片CC2510开发。

是一种完整的低成本、高度集成2.4GHz收发器,专为低功耗无线应用设计。

基本特点·高性能和低功耗的8051微控制器核·2400-2483.5MHz 低成本低功耗无线收发模块·SMD元件24mm×29mm×2.2 mm,内置PCB天线,体积小·支持2-FSK/GFSK/MSK·可编程控制的输出功率,对所有的支持频段可达+1dBm·可灵活配置多种通讯信道,快速频点切换特点,可满足跳频系统的需要·可编程配置传输数率1.2k - 500 kbps·低功耗3.3V 供电·RSSI输出和载波侦听指示几种2.4G无线数传模块介绍无线数传按传输速率区分,分为低速数传模块和高速数传模块两大类,低速数传模块使用的载频均较低,一般都在315MHz,433MHz和915MHz这几个频段,所以一般最高传输速率均不大于150kB/s。

但这些使用在UHF频段无线设备,载波仍具有一定的穿透和绕射能力,传送距离相对较远,最大可达数百米,这是它的优势,但同时也有其固存的缺点,因为工作频率低,工业干扰大,同时大量的汽车无线遥控(锁)均使用这个频段,干扰相对严重,这在技术上严。

UHF/FM/FSK无线电收发电路设计

UHF/FM/FSK无线电收发电路设计
维普资讯
电 子工程 师
D 8ⅣO 3 20 2 . 0 2
UHF FM / S 无 线 电 收 发 电 路 设 计 F K
De i n o sg fUHF F / S Ra i r n mi e n e ev r M F K d oT a s t ra d R c ie t
3 3 使 能模 式 .
在 发 射 电 路 中 , 开 关 S l和 S 2处 于 断 开 当 W W 状 态时, CMxO 1 7处 于 “ 眠 模 式 ” 芯 片 电 流 消 耗 睡 ,
5 结 束 语
实 验 表 明 , 用 C X0 7和 C X0 8芯 片 构 成 使 M 1 M 1
0 时 , 益 被 减 少 2 d m V 增 0B 在 接 收 电 路 中, CM X0 8 的 低 噪 声 放 大 器 l
( NA) 增 益 利 用 开 关 S 2控 制 , 开 关 断 开 时 , I 的 W 当 I A 处 于 高 增 益 模 式 . 开 关 导 通 时 当 I NA 处 于 低
脚 、 号 和 功 能 如 表 l所 示 符
表 1 CMO 芯 片各 引 脚 、 号 和 功 能 l 7 符
j脚 l 1

符号 V c c3 GAI N
GNI ]
功 能 第 一 缓 功 率 放 大 器 电 源 增 益 控 制

l 脚 1 5 1 6
2 5
2 6 2 7
V CC 1
W ADEC GA【 El NS
低 噪音 放 大 器 输 ^
输 ^ 放 大 器 去 耦 增 益 设 置
1 4
RS I S
接 收 信 号 强度 指 示 器
2 8

XD-RF4-16x 无线数据传输模块 说明书

XD-RF4-16x 无线数据传输模块 说明书

一、主要特点概述XD-RF4-16系列无线数据传输模块采用工业应用标准设计,可靠性高,运行稳定。

产品具有较高的空中波特率,大大缩短了如集中抄表等应用的系统通信时间。

本产品面向嵌入式的应用,使用简单方便,只需要连接电源和收发数据引脚便可实现用户单元(如单片机)和无线模块的通信。

用户可配置模块的通信信道,为避免临近频段通信设备的干扰提供了有效手段,而注1:可根据用户要求降低发射功率到最低到-8dbm,使发射电流降至最小到12 mA 注2:按用户要求可变三、信号引脚四、使用说明4.1 连接TX脚连接用户数据单元(如单片机)的接收信号,RX连接用户数据单元的发送信号,电源管脚可根据用户电路结构的方便连接一对即可。

NC引脚为制造时用于编程或测试的引脚,用户不能连接到任何电气网络(悬空)。

4.2 RX脚电平上拉如果用户单片机数据发送为OC输出时(开漏输出,即低电平输出为0V,高电平输出为高阻态),请在用户板上的数据发送脚接上拉电阻(5.1K~10K)上拉到模块供电电源。

五、售后本产品在15个月内(交付之日)出现故障,希典公司免费为用户更换或维修。

但以下情形不在质保范围:1、使用条件超出本说明的范围,如电压过高、雨淋等导致模块损坏或性能下降。

2、模块受到意外冲击,如高空跌落、重压等,导致模块模块损坏或性能下降。

六、技术服务我们将在售出模块前,根据用户可能的使用条件,尽可能给用户提出系统性的建议,目的是协助用户顺利的使用产品,构建可靠、完善的系统。

七、附录A XD-RF4-16x无线模块设置协议一、通信帧格式:A T S E T 空格信道号空格信号强度使能回车换行说明:ATSET□02□00(回车、换行)对应的十六进制应答数据为:4F 4B 0D 0A 41 54 53 45 54 20 30 32 20 30 30 0D 0A3.2 设置信道99,附加强度指示ATSET□99□01(回车、换行)对应的十六进制设置数据为:41 54 53 45 54 20 39 39 20 30 31 0D 0A 应答为:OK (回车、换行)ATSET □99□01(回车、换行) 对应的十六进制应答数据为:度收到附图1 设置信道99 使能信号强度输出(ascii 显示)。

WiFi产品的一般射频电路设计

WiFi产品的一般射频电路设计

WiFi产品的一般射频电路设计(General RF Design In WiFi Product)第1章. 射频设计框图图1-1 Wi-Fi产品的一般射频设计框图如图1-1所示,一般Wi-Fi产品的射频部分由五大部分组成,蓝色的虚线框内统一看成是功率放大器部分。

无线收发器(Radio Transceiver)一般是一个设计的核心器件之一,除了与射频电路的关系比较密切以外,一般还会与CPU有关,在这里,我们只关注其与射频电路相关的一些内容。

发送信号时,收发器本身会直接输出小功率的微弱的射频信号,送至功率放大器(Power Amplifier,PA)进行功率放大,然后通过收发切换器(Transmit/Receive Switch)经由天线(Antenna)辐射至空间。

接收信号时,天线会感应到空间中的电磁信号,通过切换器之后送至低噪声放大器(Low Noise Amplifier,LNA)进行放大,这样,放大后的信号就可以直接送给收发器进行处理,进行解调。

第2章. 无线收发器如图2-1中,有几个电源管脚,数字地,模拟地,射频输出,功率放大器增益控制,功率检测,温度检测,射频输入,低噪声放大器增益控制,发射、接收切换等管脚。

图2-1 一般的无线收发芯片(射频电路设计相关)2.2. 差分射频信号的处理2.2.1. 收发器本身具有的管脚图2-2 收发器的射频输入与输出管脚这里必须指出的是,Atheros的收发器一般会同时对输入与输出做差分处理。

但是Ralink 一般要求外部输入的信号是差分的,而自身输出的射频信号则不是差分的。

图2-3射频信号则不是差分的处理方式2.2.2. 收发器发送的差分信号平衡器通常用来处理差分信号的问题,电感和电容都能够改变信号的相位,从差分信号到单端信号,基本的方法就是用电感和电容组成两条不同的通路,这样,经过处理电路的两路信号就在相位上相差了180°,从而可以使原本相位相差180°的差分信号同相,得到单端信号。

射频(RF)芯片设计:无线通信的关键组件

射频(RF)芯片设计:无线通信的关键组件

射频(RF)芯片的关键技术与设计方法
射频(RF)芯片的关键技术
• 电路设计技术:包括模拟电路设计和数字电路设计,实现射频(RF)芯片的功能 • 射频滤波技术:通过滤波器设计,消除射频信号中的干扰信号,提高信号质量 • 信号处理技术:包括信号放大、频率转换、信号解调和信号调制等过程,实现射频(RF)芯 片的功能
射频(RF)芯片是一种专门用于处理射频信号的芯片
• 射频信号是一种高频交流信号 • 在无线通信中,射频信号用于传输信息 • 射频(RF)芯片负责将基带信号转换为射频信号,并在接收端将射频信号转换回基带信号
射频(RF)芯片的应用领域及市场需求
射频(RF)芯片在无线通信领域的应用
• 手机通信:支持蓝牙、Wi-Fi、移动通信等无线通信协议 • 无线网络设备:支持路由器、基站等无线网络设备的通信功能 • 物联网设备:支持智能家居、可穿戴设备等物联网设备的通信功能
射频(RF)芯片的市场需求
• 随着无线通信技术的发展,射频(RF)芯片的市场需求持续增长 • G技术的推广将进一步提高射频(RF)芯片的需求量 • 物联网设备的普及也将推动射频(RF)芯片市场的发展
射频(RF)芯片的发展趋势及挑战
射频(RF)芯片面临的挑战
• 技术难度:射频(RF)芯片的设计与制造技术具有较高的难度,需要不断研发新技术 • 市场竞争:射频(RF)芯片市场竞争激烈,需要不断创新以保持竞争优势 • 法规限制:射频(RF)芯片受到各国法规的限制,需要遵守相关法规进行设计和生产
射频(RF)芯片的政策环境与产业发展
射频(RF)芯片的政策环境
• 政策支持:政府制定相关政策,支持射频(RF)芯片产业的发展 • 法规限制:射频(RF)芯片产业受到各国法规的限制,需要遵守相关法规进行设计和生产 • 国际合作:政府推动射频(RF)芯片产业的国际合作,提高产业技术水平

无线射频方案

无线射频方案
-设备具备多信道接收功能,提高抗干扰能力;
-设备具备数据解码和处理能力,满足用户需求;
-设备具备安全防护措施,合适的天线类型(如全向天线、定向天线等);
-天线具备良好的阻抗匹配,降低信号传输损耗;
-天线具备防腐蚀、防潮湿等特性,适应各种恶劣环境。
-对系统进行定期维护和优化,降低故障率;
-结合用户需求,提供定制化的无线射频解决方案。
4.法律法规与合规性
(1)遵守我国相关法律法规,确保无线射频设备的合法合规使用;
(2)取得相关无线电发射设备型号核准证;
(3)取得相关无线电频率使用许可;
(4)遵循国家关于无线电干扰和电磁兼容的相关要求;
(5)对设备进行定期检测和维护,确保设备始终处于合规状态。
-发射端:采用高效能射频发射模块,具备自适应调制和功率控制功能,以适应不同的通信距离和环境条件。
-接收端:设计高灵敏度的射频接收模块,具备多路径抑制和抗干扰能力,确保信号接收的准确性。
-数据处理:集成高效的数据处理单元,对接收到的信号进行解码、校验和处理,以满足用户数据处理需求。
-天线设计:根据应用场景,选择合适的天线类型和布局,优化天线匹配,提高信号辐射效率。
3.系统集成与优化
(1)系统集成:
-将发射设备和接收设备进行有效集成,确保系统稳定运行;
-采用模块化设计,便于设备维护和升级;
-配置合适的电源模块,保证系统电源稳定;
-配置数据接口,实现与用户设备的快速连接。
(2)系统优化:
-对无线射频信号进行实时监测,确保信号稳定;
-采用先进的信号处理算法,提高数据传输速率和可靠性;
-提供直观的操作界面和便捷的配置流程,降低用户使用门槛。
-通过用户手册、在线帮助和定期培训,提升用户对无线射频技术的理解和应用能力。

SX1280远距离LoRa 2.4GHz无线通信设计

SX1280远距离LoRa 2.4GHz无线通信设计

SX1280远距离LoRa 2.4GHz无线通信设计应用
SX1280半双工射频(RF) 收发器为Semtech SX1200系列超低功耗无线收发器,工作频点 2.4G,此芯片包含多样的物理层以及多种调制方式,如LORA,FLRC,GFSK。

特殊的调制和处理方式使得LORA和FLRC调制的传输距离大大增加,且GFSK调制兼容蓝牙BLE协议。

出色的低功耗性能、片上DC-DC和Time-of-flight使得此芯片功功能强大,可用于智能家居、安全系统、定位追踪、无线测距、、穿戴设备、智能手环与健康管理等等。

E28-2G4M12S是成都亿佰特公司设计生产的一款2.4GHz射频收发模块,小体积贴片型,最大功率12.5dBm,模块自带高性能PCB板载天线,工作在2.400~2.500GHz频段,最远传输距离达到2Km,具有极低的低功耗模式流耗,性能优异,抗干扰能力强。

E28-2G4M12S为硬件模块,出厂无程序,用户需要进行二次开发。

下面介绍E28-2G4M12S的电路设计:
SX1280芯片用52MHz的无源晶振来提供时钟;
射频电路部分由一个简单的LC匹配电路和一个椭圆滤波器组成,外接2.4GHz天线;
L4的连接作用是使高效率降压DC-DC转换器来给芯片的射频部分供电。

以下是BOM清单:
参考电路板设计,如下图:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无线收发模块的设计一、设计方案为了能实现数据通过无线方式进行传输的目的,采用hopeRF公司的无线单片收发IC RF12完成无线收发功能。

为了能对RF12进行控制,采用ATMEL公司单片机A VRMEGA48对RF12进行控制,为了与PC机连接方便,采用了沁恒公司的USB转串口电路CH340与单片机相连。

系统结构示意图如下:二、电路设计2.1 RF12电路设计2.1.1 RF12功能简介RF12是通用ISM频段的FSK发送接收集成单片电路,低功耗,多通道,可以工作在免许可的433,868和915MHz频段。

RF12首发电路为需要外部很少器件的集成电路,具有低成本,柔韧性好的高度集成的解决方案。

芯片集成所有射频要求功能,完整的模拟射频部分和数字基带收发部分,多频段PLL频率合成器,射频功率放大器PA,低噪声放大器LNA。

正交(I/Q)下变频混频器,基带滤波器和基带放大器,和正交(I/Q)解调器。

唯一需要的外部器件就是外部晶振和带同滤波器。

RF12具有一个全集成的PLL,便于射频设计,它的快速设定时间可以用于快速调频,对于多路径衰落信道可以获得强健的无线连接。

PLL的高分辨率允许在任一频段进行多信道应用。

接收部分的基带滤波带宽(BW)是可编程的,以可以包纳各种偏差,数据速率和晶振偏差的要求。

接收部分应用了零中频方法,该方法采用了正交解调技术。

同样在大多数应用中不需要外部器件(除了晶振和耦合电路)。

RF12通过集成的数字信号处理特性:数字滤波,时钟恢复,数字判决,集成的FIFO 和发送数据寄存器(TX data register),显著的减小了微处理器的负担。

自动频率控制特性允许使用低精度(低成本)晶振。

对于低功耗应用,RF12支持基于内部唤醒定时器的小占空比的周期工作模式。

功能模块框图2.1.2RF12电路设计在设计中采用RF12接收部分采用片内数字滤波器来提取接收数据流的位时钟方案,通过SPI接口设置工作参数,发送数据和接收数据。

频带设计为433MHz,射频匹配滤波电路根据生产商提供的资料设计电路如下:2.2、RF112与单片机Mega48接口设计Mega48单片机通过SPI接口与RF12相接,系统图如下:2由于SPI接口是单片机在线编程的下载口,同时又是与RF12的通信接口,为了在下载时不受RF12的影响,特在SPI接口与RF12接口之间通过电阻进行隔离。

2.3USB转传串口电路设计:CH340集成电路可以完成USB转串口的功能,PC机的驱动程序有沁恒公司提供,在PC上的界面与串口通信界面相同,根据厂家提供的参考电路设计如下:UART---USB二、射频参数计算2.1、RF12的工作原理:RF12为单片无线收发芯片,接收部分为采用正交解调的零中频技术,片上集成有基带低通滤波器,其带宽可程序控制,达到减低噪声系数的目的,同时还具有频率自动控制功能,以离散步进方式使得本振频率与发射机的载波频率差最小。

对于RF12的应用需要根据接收信号的特性需要对基带滤波器的代换进行计算。

2.2、正交零中频解调原理及低通滤波器带宽的计算:接收机结构如下图所示:设射频输入信号为:s(t)=Acos(ωt+(-1)DΔωt);本振信号为:L(t)=cos(ωLt+φ)通过正交下变频器:I(t)=s(t)×L(t)=A{cos(ω0t+(-1)DΔωt-ωL t-φ)+ cos(ω0t+(-1)DΔωt+ωL t+φ)}/2Q(t)=s(t)×sin(ωL t+φ)=A{sin(ω0t+(-1)DΔωt-ωL t-φ)+ sin(ω0t+(-1)DΔωt+ωL t+φ)}/2通过低通滤波器有:Ib(t)= Acos(ω0t+(-1)DΔωt-ωL t-φ)/2Qb (t)=Asin(ωt+(-1)DΔωt-ωL t-φ)/2当ω0=ωL,φ=0时有:Ib(t)= Acos((-1)DΔωt)/2 Qb (t)=(-1)D Asin(Δωt)/2当D=0时Ib和Qb构成正方向旋转向量,标识为频偏大于零;判读为0或1当D=1 时Ib和Qb构成反方向旋转向量,标识为频偏小于零;判读为1或0.在这里对于码元宽度为T,频偏为Δω,那么低通滤波器的带宽不应小于:Δω+2∏/T当考虑到本振与信号载波的偏差,滤波器的带宽应包含:频偏,数据速率和频率误差。

三、RF12的命令RF12的命令通过SPI口发送,共有15条命令:对于部分命令说明如下:频率设置命令12位参数F取值在96到3903之间,当送入的F值在范围之外,以前的F数据任然被保留。

频率合成器的中心频率f0可以计算如下:f0 = 10 * C1 * (C2 + F/4000) [MHz]常数C1和C2由所选择频段确定:数据速率命令在发射模式中发送数据的实际位速率和接收模式中接收数据期望的位速率通过7位参数R(bits r6 to r0)和cs位确定。

BR = 10000 / 29 / (R+1) / (1+cs*7) [kbps]在接收部分根据下面的函数设置R参数:R= (10000 / 29 / (1+cs*7) / BR) – 1, 这里BR是期望的位速率kbps。

除了设定客户数值外,标准位速率可以很小的误差设定从600bps到115.2kbps数据数率精度要求:在慢模式恢复时钟:ΔBR/BR < 1/(29*Nbit))在快模式恢复时钟:ΔBR/BR < 3/(29*NbitBR是在接收机设置的位速率,ΔBR是发射机与接收机之间的数率偏差。

Nbit是在数据流中最大的连续1或0的个数。

建议在长数据包中要包含足够多的1/0或0/1的变换,并在接收机和发射机中小心应用相同的分频比。

发送设置命令:位8-4 (mp, m3 to m0):FSK 调制参数为:导致输出的频率为:fout = f 0+ (-1)SIGN * (M + 1) * (15 kHz)这里:f0 为信道的中心频率(见频率设置命令)M is思维二进制数:<m3: m0>SIGN = (mp) XOR (Data bit)四、控制接口时序:对RF12的命令以串行方式发送。

只要当引脚nSEL信号为低逻辑电平,在SDI引脚上的数据在引脚SCK上的时钟信号的上升沿被移入器件。

当nSEL信号为高,接口被初始化。

所有命令由命令码,后跟可变数量的参数或数据位构成。

所有数据以高位先发送(例如对于16位命令的第15位)。

用X标识的位没有影响。

上电复位(POR)电路所有控制寄存器和命令寄存器设置默认值。

当下列事件发生,接收机通过将nIRQ引脚拉低对微处理机产生一个中断请求:TX寄存器准备接收下一个字节(RGIT)FIFO已经接收到程序设定的位数量(FFIT)上电复位(POR)FIFO溢出(FFOV)/TX寄存器覆盖(RGUR)唤醒定时器溢出(WKUP)在中断输出引脚nINT有负脉冲(EXT)电源电压低于设定的电压(LBD)当FIFO许可时FFIT和FFOV才能应用。

当TX寄存器许可时RGIT和RGUR才能应用。

通过读出状态位来识别中断源。

控制接口的时序图五、调试方法:对于发射功能调试的方法为采用频谱分析仪测量RF12的发射功率和频率,调试系统结构示意图如下:接口PC机通过USB口发送命令使无线模块工作在不同的通道上,连续发射,来观察整个频段的功率大小分布,频率精度等情况,以检验是否工作正常。

六、天线的制作:采用四分之一波长的天线,设计过程主要计算天线的尺寸,关键是调试其阻抗,调到50欧姆。

截取略长与四分之一波长硬铜线20CM,与50欧姆同轴电缆芯线焊接。

通过微波网络分析仪测量天线的驻波比,用手钳对天线顶端小心剪截,改变天线长度,使其驻波比最小即可。

七、单片机程序设计:两个模块分别通过USB口与PC机连接,PC机上运行串口调试程序,两台PC可以互相收发数据,下面是单片机程序:////////////////////////////////////////////////////// 芯片采用mega48,时钟采用外部晶振11.0592M ////连线图mega48 RFM12 //// (PB5)SCK ——> SCK// (PB3)MOSI ——> SDI// (PB4)MISO ——> SDO //// (PB2)SS ——> nSEL //// (PD2) ——> nIRQ// 编译器用CodeVisionA VR C Compiler //////////////////////////////////////////////////////#include<mega48.h>#include<delay.h>typedef unsigned char uchar;typedef unsigned int uint;#define SDI PORTB.3#define SDO PINB.4#define SCK PORTB.5#define nSEL PORTB.2#define nIRQ PIND.2#define LED PORTD.6void Init_RF12(void);void Write0(void);void Write1(void);void WriteCMD(uint CMD);void WriteFSKbyte(uchar *ptr,uchar num);void uart0_init(void);void INT0_init(void);uchar RF12_RDFIFO(void);//ucharmes[]={0xAA,0xAA,0x2D,0xD4,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0 x3B,0x3C,0x3D,0x3E,0x61,0xAA};//eeprom uchar mes1[25];uchar mes[50]={0xAA,0xAA,0x2D,0xD4};uchar RF_RXBUF[50];uchar i=0,j=0,t=0;uchar flag1=0,flag2=0;uchar tempdata;void Init_RF12(void){DDRB=0x2c;DDRD=0x42;PORTD.2=1;nSEL=1;SDI=1;SCK=0;WriteCMD(0x80D8);//EL,EF,433Mband,12.5pFWriteCMD(0x82D8);//turn on crystal,!PAWriteCMD(0xA640);//434MHz// WriteCMD(0xAE10);//439M// WriteCMD(0xA9B0);//436.2MWriteCMD(0xC647);//4.8kbpsWriteCMD(0x94A0);//VDI,FAST,134kHz,0dBm,-103dBm WriteCMD(0xC2AC);//AL,!ml,DIG,DQD4WriteCMD(0xCA80);//FIFO8,SYNC,!ff,DRWriteCMD(0xCA83);WriteCMD(0xC49B);//@PWR,NO RSTRIC,!st,!fi,OE,EN WriteCMD(0x9850);//!mp,9810=30kHz,MAX OUTWriteCMD(0xE000);//NOT USEWriteCMD(0xC80E);//NOT USEWriteCMD(0xC000);//1.0MHz,2.2V}void main(){Init_RF12();uart0_init();//INT0_init();delay_us(10);#asm("sei");while(1){if(flag1){#asm("cli");LED=0;flag1=0;WriteCMD(0x8228); //OPEN PAdelay_us(4);WriteCMD(0x8238);#asm("nop");#asm("nop");WriteFSKbyte(mes,i+4);delay_ms(10);WriteCMD(0x8208); //CLOSE PALED=1;i=0;#asm("sei");}WriteCMD(0x82D8);WriteCMD(0xCA83);if(!nIRQ){ LED=0;//WriteCMD(0xCA83);RF_RXBUF[t++]=RF12_RDFIFO();//tempdata=RF_RXBUF[t--];//if(tempdata=='a')if(RF_RXBUF[t-1]==0x61){flag2=0;WriteCMD(0xCA80);for(j=0;j<t-1;j++){while(!(UCSR0A&(0x20)));UDR0=RF_RXBUF[j];}t=0;LED=1;// #asm("sei");}} /**/// }//WriteCMD(0x82D8);}}void uart0_init(void){UCSR0A = 0x00; //使用波特率不倍增,不使用多从机模式UCSR0C = 0x06; //异步串口模式,禁止奇偶校验,1位停止位,8-bit帧模式UBRR0L = 51; //设置波特率,9600UBRR0H = 0;UCSR0B = 0x98; //允许接收发送允许接收中断}void Write0(void){SDI=0; //SDI=0#asm("nop");SCK=0; //SCK=0#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");SCK=1; //SCK=1 #asm("nop");}void Write1(void){SDI=1; //SDI=1#asm("nop");SCK=0; //SCK=0#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");SCK=1; //SCK=1 #asm("nop");}void WriteCMD(uint CMD){uchar n=16;SCK=0;nSEL=0;while(n--){if(CMD&0x8000)Write1();elseWrite0();CMD=CMD<<1;}SCK=0;nSEL=1;}void WriteFSKbyte(uchar *ptr,uchar num){uchar i=0;uchar RGIT=0;uint temp=0xB800;for(i=0;i<num;i++){temp=*(ptr++)+0xB800;Loop:SCK=0;nSEL=0;SDI=0;SCK=1;if(SDO){RGIT=1;}else{RGIT=0;SCK=0;SDI=1;nSEL=1;if(RGIT==0){goto Loop;}else{RGIT=0;WriteCMD(temp);//while(!(UCSR0A&(0x20)));//UDR0=temp;}}}interrupt [USART_RXC] void usart_rx_isr(void) { uchar data;while(!(UCSR0A&(0x80)));data=UDR0;mes[(i++)+4]=data;if(data=='a'){flag1=1;}}// INT0/*interrupt [EXT_INT0] void ext_int0_isr(void) {flag2=1;}void INT0_init(void){EICRA=0x00; // INT0?????EIMSK=0x01; //int0????EIFR=0x01; // ??INT0????? ???0}*/uchar RF12_RDFIFO(void){uchar i,Result;SCK=0;nSEL=0;for(i=0;i<16;i++){ //skip status bitsSCK=1;#asm("nop");#asm("nop");SCK=0;#asm("nop");#asm("nop");}Result=0;for(i=0;i<8;i++){ //read fifo data byte Result=Result<<1;if(SDO){Result|=1;}SCK=1;#asm("nop");#asm("nop");SCK=0;#asm("nop");#asm("nop");}nSEL=1;return(Result);}。

相关文档
最新文档