面向ZigBee技术的教学实验平台
2014-08-23郭伟然汤勇明
郭伟然,汤勇明
(东南大学电子科学与工程学院,江苏南京 210096)
0 引言
随着物联网技术的快速发展,教育部自2010年起推行了其战略新兴产业专业建设,与其相关的专业课程及实验教学建设显得十分重要。例如开设“电子系统设计”等课程。在此背景下,一些相关工作也已展开[1-3]。物联网行业涉及的专业知识类型非常多,因此专业教学建设任务异常繁重。我们认为可以优先从两个方面实现突破:一是从各类物联网技术中选择出具有代表性的知识点,使学生通过对该知识点的学习能获得较大的收益;二是寻找那些具有一定的基础性和通用性的工程应用。它既适合初学者学习,又有良好的持续开拓空间。ZigBee无线通讯技术就符合以上原则。
就大学本科教学而言,目前面向ZigBee的实验平台存在如下两个问题:
(1)工业开发平台多,教学实验平台少。如TI和Atmel等公司都提供了不少面向ZigBee技术的开发平台。但是,大多数平台都默认使用者已具备良好的单片机开发功底,所选取的实验难度较高,不适宜合作为本科生的入门学习使用。
(2)ZigBee涉及知识多且复杂。与其相关的知识包括嵌入式系统、模拟数字混合信号和无线通信等多方面。同时,配套实验的难度也高于传统的只涉及单片机基本原理的实验。
为此,本文针对这两个问题,先讨论面向ZigBee技术的核心知识点,并基于此介绍相应的教学实验平台设计和开发。
1 实验平台建设背景
1.1 核心知识点
ZigBee技术的核心知识点涉及ZigBee协议栈构成和ZigBee通信等。
ZigBee协议栈是基于国际标准组织ISO的开放系统互联OSI基本参考模型设立的。但ZigBee只选取了ISO/OSI模型中对低功耗和低数据率无线网络必要的部分。最低的两层(物理层PH和介质访问层MAC)由IEEE 802.15.4标准定义。网络层和应用层由ZigBee标准定义[4]。我们要先让学生学会层次分析的方法,为进一步的学习打基础。
ZigBee通信是基于ZigBee协议栈的应用。用户设计的顶层程序将命令下达至底层,以物理信号的形式在两个节点间传输,从而实现了两个节点间的通信。另外事件驱动机制是ZigBee通信中常用的方法,需要重点阐释。例如,Atmel的BitCloud解决方案中,函数ZDO_StartNetworkReq()及其回调函数ZDO_StartNetworkConf()以异步执行的方式实现了网络组建功能,这正是事件驱动编程的体现[5]。
要利用ZigBee技术实现数据通信,首先要学习作为协议栈载体的单片机基本原理;在此基础上学习如何将协议栈移植到单片机;然后学习ZigBee网络组建的相关知识;最后在网络组建成功的基础上进行ZigBee数据通信。
1.2 基本技能
ZigBee技术的基本技能重点在于对其开发过程的熟悉和掌握。具体包括掌握源代码编写、源文件编译、链接、生成可执行文件、通过下载器下载至目标平台及调试程序排查错误等。不断熟悉开发过程有利于提高排查问题的能力,对遇到的问题及时归纳总结,可以提升工程设计能力。
2 实验平台方案设计
2.1 实验体系教学建议
要明确教学难点,并加以攻克,以便学生掌握核心知识点与基本技能。
ZigBee技术的实验教学有两个难点:①该技术的基础知识涉及领域较多,需要较长的学习时间;②以无线通信为代表的技术理解难度较高。
针对第一个问题的教学建议如下:在实验教学过程中避免对每一个知识点的细节讨论过多,而是首先给学生一个整体的概念。尤其强调从具体的硬件层到抽象的软件层的分层次分析方法,使得后续学习得到的知识可以在整个知识体系内找准位置,良好对应,以便为学生提供自学与攻坚的可能。
针对第二个问题的教学建议如下:编写详尽的实验指导,在其中就每一步操作给出充分的理论依据,使得实验过程更加易于理解,同时加强了对理论知识的记忆。另外,采购合适先进的仪器给学生使用,使得原本不易观察的实验现象变得明显,降低学生对实验结果的神秘感,以便处理问题的思路更加科学。
2.2 实验平台的内容
实验平台上安排的实验内容要体现循序渐进,同时突出核心知识点。
实验设计集中在单片机的常规应用和ZigBee协议栈入门这两个方面。在常规应用上,要使得实验内容容易上手,培养学生的信心;在ZigBee协议栈入门上,要给出一种简单可行的实现方法,同时避免复杂概念的过多讨论,尽量使用明显的实验现象供其体会。
实验指导书的开头要让学生熟悉开发过程;再导入基于ZigBee开发平台的单片机常规实验,以便复习课堂所学知识;最后,转入基于单片机开发Zig-Bee功能的实验内容。为了降低学习难度,在常规实验中应该尽量覆盖开发ZigBee功能时可能遇到的难点。
在设计实验时,要给出每一步操作的理论依据,便于学生理解。为了能让学生的实验能力得到进一步提高,在原有的完整代码实验基础上,要增添修改代码才能实现功能的思考题,为能力较强的学生打造进一步提高的空间。实验的学习流程可以如图1所示。
2.3 实验平台的硬件组成
用于支持实验的硬件平台要具备以下三个特点:①能支持ZigBee协议栈的安装,展示ZigBee技术;②能支持传统的单片机实验,以便学生在学习ZigBee技术前可以从简单入手,逐步深入;③该硬件平台在功能齐全的同时要尽可能简洁。
平台的功能齐全包括能支持串口通信,ADC和PWM等传统实验,还能支持ZigBee通信功能,最后还有一定的接口拓展能力,使得某些特殊的要求能根据实际情况得到满足。
图1 实验的学习流程
平台的简洁要求主要包括在支持功能齐全的同时要使电路板上的元器件尽可能少,使学生进行实验时,操作复杂度降低。这样在降低成本和提高可靠性的同时也更加容易突出教学重点,有利于学生掌握关键原理。另外,在ZigBee的诸多使用频段中,780MHz和2.4GHz可以在中国使用。我们只选择了2.4GHz频段,不采用兼容多个频段的方案以简化实现过程。
根据以上要求设计出实验平台的硬件功能框图,如图2所示。
图2 硬件功能框图
3 实验平台方案实现
3.1 单片机型号选择
选择组建ZigBee网络的单片机解决方案有如下几点考虑:①单片机性能要高,以便支持ZigBee协议栈;②价格要低廉,适合作为学生平台大规模使用;③所需的工具链可靠,确保实验结果符合预期。
Atmel公司的ATmega128RFA1可以满足这些要求[6]。因为该单片机采用的AVR指令集具备单周期指令的能力,性能较高;单片解决方案(集成了MCU和射频电路)在提高可靠性的同时降低了成本;开发该单片机的IDE(AVR Studio 5.1)、下载器(AVR Dragon)以及单片机本身都是Atmel的产品。整条工具链的搭配较为固定,使得问题的讨论较为单一,避免多厂家工具组合带来隐患[7,8]。
3.2 其他板级外设考虑
ATmega128RFA1可以直接提供ADC和PWM等功能,在电路板上添加LED、按键和EEPROM等,即可使平台适合教学使用。为了使得该电路可由下载器调试,在电路板上留出JTAG接口。
为使串口功能更加简洁,在电路板上添加了协议转换芯片FT232RL,实现了 USB信号与USART信号的转换,这样电路板可只使用一个USB TypeB接口实现从计算机的供电以及和计算机之间的串口通信这两种功能,而USART信号本身又可从电路板上其他接口引出,保证了功能的全面性。
电路板上有16MHz/20ppm晶体谐振器用于支持40ppm要求的ZigBee载波要求,32.768KHz晶体谐振器用于对实时时钟有需求的实验。设计时需注意阻抗匹配的ZigBee传输线、SMA天线连接器及必要的磁珠等。另外,在元器件的标号上应当尽量与Atmel的参考设计相一致,以便在使用协议栈时,能得到尽量充分的兼容性,进而减少协议栈移植的难度[9]。完成的平台实物如图3所示。
图3 ZigBee实验开发平台硬件实物图
3.3 实验指导书编写
该实验平台的ZigBee协议栈实现是利用Atmel发布的BitCloud软件包,我们编写的实验指导书里充分利用了BitCloud软件包中已有的资源:包括根据软件包中的英文实验指导书重新制作包含知识讲解的中文实验指导,以及在BitCloud现有实验例程的基础上设计出各种ZigBee实验指导内容。
实验指导书中实验的内容依次设计为:开发环境安装、单片机端口操作、串口通信(轮询)、串口通信(中断)、ADC、PWM、BitCloud认识、ZigBee网络组建和ZigBee数据通信等九个部分。
4 结语
我们结合我校传感网技术战略新兴产业专业、国家特色专业和物联网工程技术训练中心省实验示范中心的建设要求,开展了物联网工程相关的教学资源建设。本文介绍了其中基于ZigBee无线通讯技术的教学实验平台的建设工作。笔者通过梳理本科教学适用的ZigBee无线通讯技术应用的核心知识点,完成了ZigBee实验教学平台及系列实验的开发工作。该实验平台及其配套的实验指导书已在我院大学生创新实验室投入使用。
[1] 邹子春,王 原,汤勇明.面向 PLD的触摸屏实验平台设计[J].南京:电气电子教学学报,2013,35(03):62-65.
[2] 陈自龙,汤勇明.基于PLD的VGA显示器字符显示实验设计[J].南京:电气电子教学学报,2013,35(01):62-65.
[3] 张志海,沈连丰,叶芝慧,宋铁成,鲁侃.一种基于Zigbee的无线传感器网络教学实验系统[J].电气电子教学学报.2006(05):76-80.
[4] Shahin Farahani.ZigBee Wireless Networks and Transceivers[M],Burlington:Newnes,2008
[5] Atmel.MCU Wireless[EB/OL].http://www.atmel.com/products/microcontrollers/wireless/default.aspx
[6] Atmel Atmega128RFA1.[EB/OL].http://www.atmel.com/Images/doc8266.pdf
[7] Atmel.AVR Studio 5:Release 5.1 [EB/OL].www.atmel.com/microsite/avr_studio_5/default.aspx
[8] Atmel.Introducing AVR Dragon [EB/OL].people.ece.cornell.edu/land/courses/ece4760/AtmelStuff/dragon.pdf
[9] Atmel.AVR2044:RCB128RFA1-Hardware User Manual[EB/OL].www.atmel.com/Images/doc8339.pdf