Hanker

如何学习无线通讯—— 个人学习之感受

0
阅读(2757)

[提要] 本文叙述了作者学习无线通讯的感受,提出了自己认为可行的学习方式,供读者参考。

       随着嵌入式及手持设备的普及,以及物联网概念的热捧,无线通讯成了学习的热门内容。各类无线通讯方式随之百花齐放,让人目不暇接。

       成气候的通讯方式有:Bluetooth、ZigBee、WiFi等,此外还有一些只完成了物理层或链路层的通讯方式,这些通常是由芯片厂家自定义规范,因为是非标准的,一般只能自己产品互联。

       那作为学习者该如何入手呢?

       从我自己的学习感受以及和一些学生的交流中,我认为学习无线通讯应该从最初级的通讯入手,逐步过渡到那些包含完善、复杂协议的通讯模式。

       所谓“初级的通讯”是指直接用UART (串口)相连的点对点通讯。

       在这个过程中,首先找一个你所感兴趣的应用,因为通讯只是一种手段,不是目的,它需要依附于某些应用所产生的需求,脱离了需求,也就不需要通讯。就像人有交流的需求,才会催生出电话。人有贸易的需求,才催生了传真,此类事例数不胜数。

       那些高级通讯模式所蕴含的那么多复杂的技术、方法,都是在一个个应用中不断产生的,以解决应用中所提出的需求。如果你对具体应用不了解,那谈何去理解那些高深莫测的技术、协议?

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

       类似这种应用以及所产生的需求可以借鉴“圆梦小车StepByStep之二”一文。

       这样的点对点通讯没有干扰问题,没有点名问题,更没有信号争抢问题,因为是全双工的,连握手需求都很弱。所以可以很容易实现,从而使你在初始阶段可以将精力集中于通讯所要完成的任务,而非通讯本身如何建立?如何可靠?

       在这个阶段,你会随着通讯带来的好处,不断提升需求,不断完善通讯协议,从而感悟通讯所要考虑的因素。

       当这个点对点通讯已经熟练掌握了,再将无线通讯引入。

       关于无线引入的方式我认为:如果你还想掌握的透彻一些,建议开始用那种比较初级的无线模块(绝不要从器件做起,射频部分的硬件还是有些讲究的,没有必要耗费这个精力)。

       所谓模块的初级和高级之差别在于:初级的只完成了无线的物理层,最多是简单的链路层。而高级的通常你只需在应用层编程即可,7层通讯模型中它帮你完成了6 层。

       我所接触过的初级无线模块有RFM12B、24L01。

        RFM12B是433MHz载频的无线模块,只完成了无线物理层,通讯的链路控制基本靠你控制,只是硬件不需要自己做了。它提供了完善的无线收发电路以及无线通讯必须的频道转换、带宽控制、增益控制、载波检测等功能,你可以逐一体验其中之奥妙。

        24L01是2.4GHz载频的无线模块,它比RFM12B智能了许多。你只需将要发送的数据放在缓冲区中,并设置好工作模式,它会帮你发送,甚至还可以帮你实现失败重发。无线收发部分的硬件控制基本不用你管。

       建议开始时按以下方式构建学习平台。

      下图是开始的有线点对点学习方式:


 

有线连接的点对点模式

      

学习无线时转换成:


 
无线学习入手模式

     

  即用一个单片机管理无线模块,并通过UART和原来的PC机及单片机应用系统相连,相当于将原来的导线剪断,两端各接入一个单片机管理的无线模块,而原来的导线连接变成了无线链路连接。

       这样,你可以先将精力集中于如何将无线模块激活,使两个无线模块实现通讯,不用被原来的应用所纠缠。而第一个需求就是将原来的有线连接变成无线连接,从PC机或单片机应用系统角度看,和有线通讯无差别,俗称“透明方式”。

       实现了这个功能之后,再根据无线带来的特点丰富原来的通讯功能,最典型的就是,无线已不局限于“点对点”通讯了,可以点对多、多对多等等,如何实现?如何使它们能按你的想法工作?就是对你的挑战!这个过程就是最好的学习过程。

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

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

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

        如果你能认真地做完这两步,再去选择那些流行的通讯模块时,一定会得心应手。

        现在社会愈来愈专业化,不要说我们一般人设计无法从芯片级开始构建无线通讯,即使是设计能力超强的本本生产厂也不这样做,多数本本中所用的WIFI模块都出自专业厂家,这不是水平问题,而是经济性和可靠性使然。

        但是,如果你不从底层尝试一下通讯是如何实现的,那你很难把握通讯所要关注的指标,以及如何使通讯更加可靠,甚至会把遥控和通讯混为一谈。

         以上是我个人之见,供大家参考。欢迎各抒己见,使那些正在学习的读者少走弯路。


南京嵌入之梦工作室
2010年6月10日星期四

本文PDF格式下载:如何学习无线通讯.PDF8873817663656.pdf

 为方便有意尝试者,这里提供了学习套件:

http://item.taobao.com/auction/item_detail.htm?item_num_id=5824827849

(20100610)