加载中…
正文 字体大小:

如何学习无线通讯

(2010-09-13 17:30:25)
标签:

robotbase

传感器

单片机

无线通讯

无线传输

杂谈

分类: 机器人入门教程

    随着嵌入式及手持设备的普及,以及物联网概念的热捧,无线通讯成了学习的热门内容。各类无线通讯方式随之百花齐放,让人目不暇接。
    成气候的通讯方式有:Bluetooth、ZigBee、WiFi 等,此外还有一些只完成了物理层或链路层的通讯方式,这些通常是由芯片厂家自定义规范,因为是非标准的,一般只能自己品互联。
    那作为学习者该如何入手呢? 
    从我自己的学习感受以及和一些学生的交流中,我认为学习无线通讯应该从最初级的通讯入手,逐步过渡到那些包含完善、复杂协议的通讯模式。
    所谓“初级的通讯”是指直接用UART (串口)相连的点对点通讯。
    在这个过程中,首先找一个你所感兴趣的应用,因为通讯只是一种手段,不是目的,它需要依附于某些应用所产生的需求,脱离了需求,也就不需要通讯。就像人有交流的需求,才会催生出电话。人有贸易的需求,才催生了传真,此类事例数不胜数。
    那些高级通讯模式所蕴含的那么多复杂的技术、方法,都是在一个个应用中不断产生的,以解决应用中所提出的需求。如果你对具体应用不了解,那谈何去理解那些高深莫测的技术、协议?

    最简单的应用是将PC 机和一个单片机应用系统相连。这个单片机系统可以是智能小车、测量仪器或者智能传感器等嵌入式应用设备。之所以一端选用PC,是因为PC 机可以提供完善的人机界面和调试环境,还可以派生出许多需求。如果两端都用嵌入式设备,你会为无法直观的观察通讯效果而苦恼,或者要耗费精力去让其可见。

    这样的点对点通讯没有干扰问题,没有点名问题,更没有信号争抢问题,因为是全双工的,连握手需求都很弱。所以可以很容易实现,从而使你在初始阶段可以将精力集中于通讯所要完成的任务,而非通讯本身如何建立?如何可靠?
    在这个阶段,你会随着通讯带来的好处,不断提升需求,不断完善通讯协议,从而感悟通讯所要考虑的因素。
    当这个点对点通讯已经熟练掌握了,再将无线通讯引入。
    关于无线引入的方式我认为:如果你还想掌握的透彻一些,建议开始用那种比较初级的无线模块(绝不要从器件做起,射频部分的硬件还是有些讲究的,没有必要耗费这个精力)。
    所谓模块的初级和高级之差别在于:初级的只完成了无线的物理层,最多是简单的链路层。而高级的通常你只需在应用层编程即可,7 层通讯模型中它帮你完成了6 层。
    我所接触过的初级无线模块有RFM12B、24L01。
    RFM12B 是 433MHz 载频的无线模块,只完成了无线物理层,通讯的链路控制基本靠你控制,只是硬件不需要自己做了。它提供了完善的无线收发电路以及无线通讯必须的频道转换、带宽控制、增益控制、载波检测等功能,你可以逐一体验其中之奥妙。
    24L01 是 2.4GHz 载频的无线模块,它比 RFM12B 智能了许多。你只需将要发送的数据放在缓冲区中,并设置好工作模式,它会帮你发送,甚至还可以帮你实现失败重发。无线收发部分的硬件控制基本不用你管。

    建议开始时按以下方式构建学习平台。
    下图是开始的有线点对点学习方式:

如何学习无线通讯

    学习无线时转换成:

如何学习无线通讯


    即用一个单片机管理无线模块,并通过 UART 和原来的 PC 机及单片机应用系统相连,相当于将原来的导线剪断,两端各接入一个单片机管理的无线模块,而原来的导线连接变成了无线链路连接。
    这样,你可以先将精力集中于如何将无线模块激活,使两个无线模块实现通讯,不用被原来的应用所纠缠。而第一个需求就是将原来的有线连接变成无线连接,从 PC 机或单片机应用系统角度看,和有线通讯无差别,俗称“透明方式”。
    实现了这个功能之后,再根据无线带来的特点丰富原来的通讯功能,最典型的就是,无线已不局限于“点对点”通讯了,可以点对多、多对多等等,如何实现?如何使它们能按你的想法工作?就是对你的挑战!这个过程就是最好的学习过程。

    为何要用一个单片机来管理无线模块?而不是直接使用应用系统的 MCU 来管理无线模块?

    首先是从学习的角度考虑,这样编写程序会容易许多。

    其次是考虑未来向高级无线模块过渡,因为多数高级模块都是通过 UART 方式控制的,你可以搜索一下。

    如果你能认真地做完这两步,再去选择那些流行的通讯模块时,一定会得心应手。
    现在社会愈来愈专业化,不要说我们一般人设计无法从芯片级开始构建无线通讯,即使是设计能力超强的本本生产厂也不这样做,多数本本中所用的WIFI模块都出自专业厂家,这不是水平问题,而是经济性和可靠性使然。 
    但是,如果你不从底层尝试一下通讯是如何实现的,那你很难把握通讯所要关注的指标,以及如何使通讯更加可靠,甚至会把遥控和通讯混为一谈。 
    以上是我个人之见,供大家参考。欢迎各抒己见,使那些正在学习的读者少走弯路。

本文引自:南京嵌入之梦工作室

0

阅读 收藏 转载 喜欢 打印举报
  

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有