搜索
bottom↓
回复: 18

短距离无线通信----从我知道的说起。

[复制链接]

出0入0汤圆

发表于 2009-5-8 20:26:33 | 显示全部楼层 |阅读模式
怎样来实现无线通讯的呢?简单的说,是通过MCU来控制无线芯片的寄存器来实现无线数据的发送和接收。从这个意义来说,无线芯片的寄存器是无线通讯的基础。无线芯片与mcu通讯,一般都是通过spi口,查看无线芯片的spi时序图,设置好mcu的spi,怎样来判断mcu与无线芯片能正确通讯呢?我们可以读无线芯片中寄存器的默认值,并通过串口传出来,看与芯片手册上的是否一样。

    只有mcu与无线芯片通讯正常了,我们才能控制无线芯片。在论坛上,经常看到,类似这样的问题,“我的无线没有数据传出,谁能给我一段初始化的代码”,其实,对于初始化,只要我们仔细看过芯片手册,一般配置都没有问题,即使有些配置不是十分清楚,可以通过具体的实际测试来知道。那么问题处在哪里呢?在我看来,它没有一步一步的来测试每一个功能部分的正确性。在这里面,包含有许多不可知因素在里面。在发射端,第一,MCU和无线芯片是否通讯正常,第二,各个寄存器的值是否写入正常,有没有读出验证一下,第三,数据发送程序是否正确调用,第四数据是否正常发射出去;对于接收端,也同样存在同样多的问题,当我们一个一个的把这些问题验证后,你自然就能按照你的要求接收到无线数据了。

   以CYWM6935芯片为例,说明怎样去初始化和为什么这样去初始化。 无线芯片如何实现和怎么实现其通讯功能,均由芯片的寄存器所决定。对于由CYW6935组成的一个无线系统,我们需要配置的内容有:
      1》 无线通讯所使用的频道(0x21);
2》 中断触发方式(0x05);
3》 是否使用中断及哪些中断(0x07,0x0d,0x1c);
4》 发射有效位数(0x10);
5》 设置发射功率能级(0x23);
6》 数据速率及PN码选择(0x03,0x04);
7》 PN码设置(0x11—0x18);
8》 时钟是否输出(0x24);
9》 发射还是接收状态(0x03);
其他一些寄存器的值,我们采用芯片的默认值。
我们初始化的结果是:中断采用下降沿有效;SERDES有效;使能接收中断;用64位PN码,通讯速率为15.625Kbit/s;发射功率能级选用7,最大;时钟不输出;发射8个数据位都有效。对于频道号,PN码设置和发射接收使能,有专门的函数,这些在程序中是要经常变化的参数。
  下面是这些设置的具体初始化程序。
void reg_init(void)      //寄存器初始化
     {     
spiw(0x05,0x00);//IRQ下降沿中断有效
             spiw(0x06,0x0b);//SERDES有效
         spiw(0x07,0x01);//接收中断使能,FullA(bit0)
             spiw(0x10,0xff);//发射的8位均有效
         spiw(0x20,0x44);//0x2e和0X2F写有效PA OUTPUT Enable
        // spiw(0x21,0x30); //设置频道号为0X30,
             spiw(0x23,0x07); //设置PA为7
             spiw(0x24,0x40);//13M时钟不输出
             spiw(0x26,0xc0);//REG_VCO_CAL
             spiw(0x2e,0x80);//REG_PWR_CTL
             spiw(0x32,0x41);//必须写0X41
             spiw(0x33,0x41);//必须写0X41
     }

void radio_receive_on(void)//使能无线模块接收,开INT0中断
  {  //清除旧的数据和中断
    spir(0x09);
        spir(0x08);
        spiw(0x03,0x90);//使能接收
        GICR = 0X40;    //开INT0中断
  }

void radio_trans_on(void)  //使能无线模块发射,关INT0中断
   {
     GICR = 0X00;//关INT1中断
     spiw(0x03,0x50); //使能发射
   }

出0入149汤圆

发表于 2009-5-8 21:04:45 | 显示全部楼层
tongda兄的说明简明扼要,等套件推出后还请多多指教。

出0入0汤圆

 楼主| 发表于 2009-5-14 20:36:51 | 显示全部楼层
无线连接的必经过程—绑定

     无线系统需要一种方法在需要相互通讯的不同设备间建立有效的通信信道,同时要阻止不需要的无线设备的连接。这就是我们这一章需要讲解的内容,在所有的无线系统中,绑定是一个必须的过程,只不过有些系统自动完成了绑定过程,作为系统的使用者没有感觉到,有些系统的绑定需要使用者的参与,这时,您才感觉到这个过程。
   简单说,绑定决定无线设备是否能与其他设备通信,绑定是必要的。在外界环境中,存在许多无线系统,都在共享同一个频带进行通信。一个主机可能接收到许多在其附近的外围设备的数据,但他需要明确被确认哪个需要接收,哪个被忽略。
     选择一个正确的绑定方法取决于最终用户实际体验的满意度。在绑定过程中,许多参数要在绑定时间内完成。如果两个设备第一时间要相互沟通或加入一个已有的网络,他们必需找到相互间使用同一个频道,同一个PN码和检验种子的特定时间段,这是一个更为复杂的问题,也是我们讨论的重点。

    不同的绑定方法介绍

一 》   工厂绑定

  尽管经常被忽略,工厂绑定还是能对终端用户产生很大影响。

   供应商在产品制造和载运期间,在同一个包装内提供的产品已经经过了绑定。因此,当用户收到产品时,不需要进行任何操作即可使用。具有其它绑定方式的产品,通常也会用工厂绑定的方式,其他绑定方式作为终端用户的一备份。它有预载必要数值至非易失性存储器的测试软件。

优点

  用户成功体验机会最高,方式最简单。真正的即插即用。开箱即可使用; 技术支持赎回风险最小,因此支持成本最低; 在电池供电系统中不影响电力消耗。

  弊端
         
生产线上有交叉风险; 可能需要额外增加生产步骤,这就导致了时间和成本的小幅增加; 当额外的装置独立于桥接器被出售时,此方式不能使用。

二 》按键绑定

在多数Cypress WirelessUSB系统中,普遍使用这种绑定方式。这很直截了当而且容易可靠实用绑定,是用得最多的方式。

概述

  在系统的每侧(节点和主机)都有一个特殊的按键用来启动绑定。当用户在主机上按下绑定按键的时,这个动作进入一种监听方式,准备接收绑定请求。当节点设备侧的按键被按下时,绑定请求就被持续发送。在有按键处于不便利位置的情况下,双方都有约20秒的延时用以缓冲按键动作。此外,多信道被使用以增加成功绑定的机率。主机和节点设备必须循环通过定义的子信道。降低额定输出功率放大器(PA)电平被使用,它能对其绑定范围加以限制。主机接收到请求便会做出响应,把网络参数序列数据发射到节点上。

优点

系统简单用户体验好,由于使用普遍,相对比较容易被用户认可; 技术支持风险小; 适当的延时可在甚至当一个设备不能很快被访问时,保证用户两个按键的按下。按键在任何状态下均可按下。

弊端
         
双方按键的硬件对成本有小幅影响; 当按下按键时,系统的绑定要归之于延时的需求; 新的无线用户可能不了解绑定要求,设备首次使用前需要按下按键。有一定的潜在的技术支持风险支持。

三 》 主机上的软件激发绑定

我们讨论的大部分系统都是通过中央主机连接到处理器(PC、机顶盒等)的,他们通过使用一个主机的软件接口使桥接器进入绑定方式,而不是使用一个物理按键。这就实现了“软”按键。

优点
通过删除按键可节省成本

弊端
         
非明显的,需要用户文档、技术支持风险增加; 增加了主机软件的程序调试时间和成本

四》 上电绑定

高级别的上电绑定意味着此上电过程与绑定按键的触发相似。

概述

每当设备上电或复位时,绑定序列将被启动。在某些情况下,例如当电源很少被移动时。和上面讨论的按键绑定不会有很大差异。在循环供电情况下,这种方式是不合适的或者必须做一些改变以防止侵入性装置对正常装置的操作。
上电绑定仅仅在一方被典型应用,同时另一方使用一个按键。一般来说,会有短时间的延时。如果很少开关电源,具有较长延时的上电绑定也可能被使用。例如桌面用户使用的键盘和鼠标(Cypress电池的寿命一般为一年或者更长一些)。建筑物内传感器可控制网络或者嵌入式系统内的主机。
很明显,在任一方或者双方,上电绑定有多种组合,并且延时有长有短。系统设计师必须充分考虑这些用户在选择上电绑定时可能遇到的情况。

例1:USB主机上电绑定,节点设备按键绑定

主机,由于是以USB为基础的,当从PC机上拔下,或者PC机关机或休眠时,会看到频繁的开关循环,因此会有一秒的短时延时。相对于USB枚举过程而言,这是不明显的。此装置使用标准按键。绑定时,节点上的按键首先被按下,然后把桥接器插入USB接口。


例2:楼宇传感器上电绑定,主机按键绑定

传感器通常每隔几年才有电池的更换。节点装置侧长延时被使用以保证按键绑定动作的完成。长延时不会影响装置的正常运作。用户可以从任何一侧开始此绑定:首先按下主机上的按键,然后把电池插入传感器,或者相反。绑定通道分设备用于健壮性,使用功率放大PA以防主机距其距离太大。

出0入149汤圆

发表于 2009-5-16 12:10:06 | 显示全部楼层
tonda 我买了你的书,内容不错,很好的入门教材。

出0入0汤圆

 楼主| 发表于 2009-5-17 10:44:45 | 显示全部楼层
谢谢Momo了,

出0入0汤圆

发表于 2009-5-19 16:04:45 | 显示全部楼层
好文章!无线模块的操作基本也是对相关寄存器的读写。

出0入0汤圆

发表于 2009-5-19 19:08:45 | 显示全部楼层
tonda 的书早就到手了,还没时间拜读,有空了好好学习一下。

出0入0汤圆

发表于 2009-5-19 19:43:23 | 显示全部楼层
书名是啥??我也去书店转转。好久没去了。。。

出0入0汤圆

发表于 2009-5-22 20:20:14 | 显示全部楼层
书名是啥?
我也想看看~~~

出0入0汤圆

发表于 2009-5-22 22:49:26 | 显示全部楼层
先记下再看

出0入0汤圆

发表于 2009-5-23 13:00:28 | 显示全部楼层
书啊,再哪里有卖?

出0入0汤圆

发表于 2010-9-7 23:49:32 | 显示全部楼层
书是什么名啊??

出0入0汤圆

发表于 2010-9-8 12:07:17 | 显示全部楼层
就我个人经历,大家在无线选型上常会有的一些误区:

1,通信速率,比如很多公司是这样宣传的NRF2401速率是1MBPS,

   但,实际上这只是发射速率,而实际真正完成一次发送速率需要涉及到具体的功能,因为功能越复杂,完成一次数据采集的时间就越长,所以也就直接影响到了整体数据传输速率,所以实际速率往往取决于你所用的MCU的处理速度和功能复杂程度。此外在选型时,还要注意无线模块的工作模式切换时间,切换时间越短,整体速率也就越快!

2,通信距离,大部分公司给的都是空旷通信距离,当然这在一定场合是可以参照的,但通信距离跟发射功率、实际应用环境和天线直接有关系,所以只有匹配好才能使无线芯片的通讯距离达到最佳。

3,现在很多公司都推出带51内核的无线芯片,个人感觉这样的芯片并不实用,一方面需要专用的开发工具,会需要一定的开发成本,二来还需要重新学习一种心的单片机有些浪费时间,而且一定程度增加了自己的负担和开发难度,用自己最熟悉的单片机+无线收发芯片模块应该是最理想的开发模式,而且也大大降低成本。

CC1100/CC1101基本特性:
===================================================================================
工作电压:1.9-3.6V
接收灵敏度:在1200波特率下-110dBm  
最大发射功率: 10mW (+10dBm)  
最大传输数率:500kbps
瞬间最大工作电流: <30mA  
工作频率:(402-470MHZ)
无线唤醒功能: 可以无线唤醒低功耗睡眠状态的设备  
===================================================================================
315/433/868/915MHZ的ISM 和SRD频段
最高工作速率500kbps,支持2-FSK、GFSK和MSK调制方式
高灵敏度(1.2kbps下-110dDm)
内置硬件CRC 检错和点对多点通信地址控制
较低的电流消耗(RX中,15.6mA,2.4kbps,433MHz)
可编程控制的输出功率,对所有的支持频率可达+10dBm
支持低功率电磁波激活(无线唤醒)功能
支持传输前自动清理信道访问(CCA),即载波侦听系统
快速频率变动合成器带来的合适的频率跳跃系统
模块可软件设地址,软件编程非常方便
单独的64字节RX和TX数据FIFO缓冲区
===================================================================================
CC1100-1101应用领域:适用于极低功率UHF无线收发器,315/433/868和915MHz ISM/SRD波段系统,
AMR-自动仪表读数,电子消费产品,远程遥控控制,低功率遥感勘测,住宅和建筑自动控制,无线
警报和安全系统,工业监测和控制,无线传感器网络,无线唤醒功能,低功耗手持终端产品。
====================================================================================
微功率(10mW)CC1100模块开发文档:http://www.moreway.net/soft.asp
中功率(100mW)CC1100模块开发文档:http://www.moreway.net/soft.asp

=================================================================
CC1020基本特性
工作电压:3.3V~3.6V, 推荐3.3V,直线通信距离600米左右
(1) 频率范围为402 MHz -470MHz工作
(2) 高灵敏度(对12.5kHz信道可达-118dBm)
(3) 可编程输出功率,最大10dBm
(4) 低电流消耗(RX:19.9mA)
(5) 低压供电(2.3V到3.6V)
(6) 数据率最高可以达到153.6Kbaud
(7) SPI接口配置内部寄存器
(9) 标准 DIP 间距接口,便于嵌入式应用
CC1020开发文档:http://www.moreway.net/soft.asp(视距600米左右)
===============================================================================
SI4432基本特性
(1)完整的FSK收发器,
(2)工作频率范围430.24~439.75MHz;发射功率最大17dBm,接收灵敏度-115 dBm(波特率9.6Kbps);空旷通讯距离800米左右(波特率9.6Kbps)
(3)工作频率范围900.72~929.27MHz;发射功率最大17dBm;接收灵敏度-115 dBm(波特率9.6Kbp);空旷通讯距离800米左右(波特率9.6Kbps)
(4)传输速率最大128Kbps
(5)FSK频偏可编程(15~240KHz)
(6)接收带宽可编程(67~400KHz)
(7)SPI兼容的控制接口,低功耗任务周期模式,自带唤醒定时器
(8)+17dB,低的接收电流(18.5mA),最大发射功率的电流(73mA)
SI4432开发文档:http://www.moreway.net/soft.asp
======================================================================
RF903基本特性
(1) 433Mhz 开放ISM 频段免许可证使用
(2) 最高工作速率50kbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合
(3) 125 频道,满足多点通信和跳频通信需要
(4) 内置硬件CRC 检错和点对多点通信地址控制
(5) 低功耗3-3.6V 工作,待机模式下状态仅为2.5uA
(6) 收发模式切换时间 < 650us
(7) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便
(8) TX Mode: 在+10dBm情况下,电流为40mA; RX Mode: 14mA
(9) 标准DIP间距接口,7X2pin, 硬件管脚兼容RF905SE,无需修改底板,只需升级软件即可
(10)RFModule-Quick-DEV 快速开发系统,含开发板
(11)增加了电源切断模式,可以实现硬件冷启动功能!
(12)SPI接口—功能强大、编程简单,与RF905SE编程接口类似。
(13) 增加了RSSI功能,通过SPI接口可以获取当前接收到的信号强度(0-255),可以供当前设备做出决策,比如低于某个数值50可以报警,提示用户当前信号质量比较低等。
RF903开发文档:http://www.moreway.net/soft.asp (视距400米左右)
======================================================================
NRF905基本特性
工作电压:1.9-3.6V
调制方式: GFSK
接收灵敏度:-100dBm
最大发射功率: 10mW (+10dBm)
最大传输数率:50kbps
瞬间最大工作电流: <30mA
工作频率:(422.4-473.5MHZ)
======================================================================
接收发送功能合一,收发完成中断标志
433/868/915工作频段,433MHZ开放ISM频段可免许使用
最高发射速率50KBPS,10dbm发射功率条件下,配外置鞭状天线通信距离在300米左右。
室内通信良好通信效果,4层之间可实现有效通信,抗干扰性能强,很强的扰障碍穿透性能。
单次最多可发送接收32字节,并可软件设置发送/接收缓冲区大小2/4/8/16/32字节
170个频道,可实现多点网络通讯,结合TDMA-CDMA-FDMA原理,实现无线网络通讯。
内置硬件8/16位CRC校验,数据传输可*稳定,降低系统开发难度,。
1.9-3.6V工作,低功耗,待机模式仅2.5uA.
内置SPI接口,最高SPI时钟可大10M,也可通过I/O口模拟SPI实现。
NRF905模块应用领域:
车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、
无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、
生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信等。
======================================================================
微功率(10mW-10dbm)NRF905模块开发文档:http://www.moreway.net/soft.asp(视距200米左右)
中功率(100mW-20dbm)NRF905模块开发文档:http://www.moreway.net/soft.asp(视距600米左右)
中功率(500mW-27dbm)NRF905模块开发文档:http://www.moreway.net/soft.asp
======================================================================
=============================================================================
ADF7021基本特性
(1) 频率范围为80Mhz - 650Mhz频段
(2) 传输速率支持 0.05kbps – 32.8 kbps
(3) 可编程输出功率,从-16dBm到+13dBm,步进0.3dBm
(4) 功耗 :发送模式(10dBm) 29.2mA;接收模式 26.4mA
(5) 接收灵敏度
     -122dBm(1kps,2FSK)
     -113dBm(25kps,2FSK)
(6) 2.2-3.6V 供电电压
(7) 标准DIP间距接口,便于嵌入式应用
ADF7021开发文档:http://www.moreway.net/soft.asp(300bps速度下1.4KM)

http://www.moreway.net
www.moreway.taobao.com
QQ 253816584

出0入0汤圆

发表于 2010-9-8 12:56:00 | 显示全部楼层
ADF7021基本特性
(1) 频率范围为80Mhz - 650Mhz频段  
---------------------------------------
    大概扫描了一下,没做过就别误导别人,仔细看一下datasheet去。

出0入0汤圆

发表于 2010-11-11 16:44:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-1 23:14:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-6 23:31:58 | 显示全部楼层
无线通信应用研究分析 点击此处下载 ourdev_589143OES181.pdf(文件大小:84K)
(原文件名:工程师必备(短距离无线选型参考).pdf)

点击此处下载 ourdev_600192M2COFJ.pdf(文件大小:933K)
(原文件名:JASK51RF.pdf)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 02:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表