ZigBee的无线烧写系统设计

2015-05-05 06:00顾永刚
机械与电子 2015年9期
关键词:阻抗匹配串口指令

李 甦,顾永刚,翟 超

(中国科学技术大学工程科学学院,安徽 合肥230027)

0 引言

在目前的LAMOST[1]项目中,采用飞思卡尔USB-HCS08-MULTILINK烧写器,通过硬件连接来完成对目标板软件升级,该过程涉及到离地焦面上驱动单元的拆卸与安装,十分不便。而无线烧写系统利用ZigBee无线通讯方式,只需要待升级的目标板电源接通即可实现内部的软件升级,大大提升了系统升级效率。

1 系统设计

1.1 系统要求与方案选择

采用飞思卡尔烧写器来完成目标板软件更新的实质过程,是烧写器作为一个BDM(background debug mode)调试器通过硬件连接与目标板的BDM模块通信,完成目标板片内的Flash擦除与写入[2],其连接如图1所示。

图1 BDM调试器的连接

如果能够事先在目标板中下载监控程序,则设计一块监控板作为PC端与目标板的通信中间媒介:一方面,从PC上位机端接收待更新的程序文本内容;另一方面,将该待更新的程序文本内容通过ZigBee无线网络发送给目标板。在目标板能够准确接收待更新程序文本的基础上,通过片上的监控程序来完成目标板Flash的擦除与写入,就可以实现在与目标板无硬件连接条件下的程序更新。其连接如图2所示。

图2 基于ZigBee无线下载的连接

1.2 硬件设计

硬件系统的设计主要是监控板的设计。为了实现与目标板的ZigBee通讯,监控板的主芯片采用内嵌MC13192无线收发器的MC13213单片机,同时搭配相应的阻抗匹配电路和天线电路。而为了实现与PC端的串口数据传输,选用串口芯片MAX3318作为RS232串口发送、接收数据的芯片[3]。监控板的系统组成如图3所示。

图3 监控板的系统组成

1.2.1 阻抗匹配电路

芯片无线收发端输出阻抗为200Ω,天线的阻抗为50Ω,需要采用阻抗匹配电路。阻抗匹配在无线电技术中很常见,它反映了输入电路和输出电路之间的功率传输关系。当电路实现阻抗匹配时,就可以获得最大的功率传输,减小功率向信号源反射。阻抗匹配的电路如图4所示。

图4 阻抗匹配的原理

1.2.2 串口芯片电路

串口电路的原理如图5所示。

图5 MAX3318串口电路原理

串口采用标准DB-9接口,选用的MAX3318工作电压为3.3V,传输速率可达460Kb/s,满足监控板与PC端的数据传输需要。并且MAX3318芯片所需外围设备少,方便监控板的小尺寸设计。由于供电电源的电压为5V,而MC13213和MAX3318芯片的控制电压均为3.3V,故监控板选用Spx3819线性电源芯片作为电压转换芯片。

1.2.3 目标板硬件

目标板应用在LAMOST光纤定位系统中,其主要功能是接收无线指令信号驱动步进电机运行。主芯片与监控板相同,为嵌入无线模块MC13192的8位单片机芯片 MC13213[4]。由于监控板和目标板均采用MC13192作为无线收发模块,可以完成ZigBee星形无线网的组建,物理层的数据传输速度达到250Kb/s[5],能够满足监控板与目标板间的数据传输要求。

1.3 软件设计

PC端与监控板的串口通讯,采用电脑自带的通讯工具超级终端作为上位机软件。待更新的程序内容,采用飞思卡尔官方推荐的S格式文件作为标准格式。S格式文件的获取是通过在CodeWarrior上用C语言编写完成源代码编译后,自动生成并保存的。无线烧写的过程可以分为4个流程:PC端向监控板发送S文件;监控板向目标板发送S文件;监控板向目标板发送更新指令;目标板执行更新指令。由于目标板的ID是从固定地址读取的,使得不同ID编号的目标板所需更新的S文件是相同的,这样同一次对多个不同目标板的软件更新过程,只需要监控板从PC机下载S文件1次,节省了下载时间。软件设计的主要内容是目标板的监控程序设计、监控板的软件设计。

1.3.1 监控板软件设计

监控板主要接收来自上位机PC端的指令,并根据相应的指令执行相应的流程。首先,在接收到上位机自定义码“M”时,开始接收上位机通过超级终端发送过来的S文件,并在接收完成执行格式检测函数[6]。在格式错误时,可以将错误格式出现的位置返回给上位机,以供查找S文件中的错误代码段,在格式正确时,同样会向上位机返回一个格式正确代码。其次,在接收到上位机自定义码“L”时,开始向对应的目标板发送由S文件分割而成的分组数据,分组数据是将S文件以每64个字节为1个分组数据,并打包附加上分组编号发送给目标板的,这样目标板可以在接收到分组数据时,通过检测分组编号以保证接收到的分组数据的完整性和有序性。最后,在接收到上位机自定义码“N”时,向对应编号的目标板发送更新指令,一般情况下,此时目标板已经接收了完整的S文件,可以执行Flash更新函数。如果目标板未能检测到S文件,则会向对应编号的目标板重新发送S文件。监控板的程序流程如图6所示。

图6 监控板的程序流程

1.3.2 目标板软件设计

目标板中的软件是一段监控程序,在正常条件下完成驱动步进电机运转的工作,当收到来自监控板的 OTAP(over-the-air-program)指令后,则进入OTAP模式。目标板的软件设计流程如图7所示。对接收到的OTAP指令进行解析,如果是握手信号,则返回一个带自身ID编号的握手确认信号;如果是分组数据信号,则对分组数据的编号进行检测,编号正确的条件下接收,接收完成后,查询是否为最后一组分组数据编号,以检测来自监控板的S文件是否全部发送;如果接收的信号是更新指令,则检测目标板Flash中的S文件是否接收完整,在S文件被完整接收的条件下执行Flash更新函数。

图7 目标板的程序流程

2 实验结果

在实际运行过程中,监控板从上位机接收S文件成功率高达95%,在接收出错时也能及时向上位机反馈错误代码。监控板向目标板发送S文件成功率达到90%以上,同时实验发现太强的WiFi信号会对ZigBee的传输产生一定的干扰。而在目标板成功接收S文件的条件下,监控板向目标板发送更新指令和目标板执行更新指令的成功率几乎为100%。同时,更新Flash后的目标板通过实验检测并与S文件的源代码进行对比,确认无线烧写系统Flash更新与利用烧写器效果一致,实现了通过ZigBee组网在无硬件连接下准确更新目标板Flash的预期目标。

3 结束语

通过ZigBee组网无线更新目标板Flash,可以省去利用烧写器更新程序时所需的拆卸与安装单元的烦琐过程,大大减少了系统升级时所需的工作量,同时提升了现场调试工作的效率。无线烧写系统所用到的监控板携带方便,方便移动,同时该监控板不仅限于LAMOST中目标板的程序更新,只要待更新目标板中采用的是MC1319X系列的无线收发器,在首次装载监控程序后,都可以通过监控板实现无线烧写。

[1] 刘志刚,江晖,谢志林.LAMOST光纤定位单元参数研究[J].光学技术,2010(3):239-243.

[2] 邵贝贝,龚光华.单片机认识与实践[M].北京:北京航空航天大学出版社,2006.

[3] 孙晓云.接口与通信技术原理与应用[M].北京:中国电力出版社,2007.

[4] Zhai C,Xue L,Wang H.Wireless control study of LAMOST fiber positioning based on ZigBee[C]//Proceedings of the SPIE,2008.

[5] 吕治安.ZigBee网络原理与应用开发[M].北京:北京航空航天大学出版社,2008.

[6] 仲进安.用于现场调试的无线多功能烧写器设计[J].自动化仪表,2012,33(6):83-86.

猜你喜欢
阻抗匹配串口指令
基于LCC-S补偿拓朴MCR-WPT系统的宽范围阻抗匹配研究
浅谈AB PLC串口跟RFID传感器的通讯应用
ARINC661显控指令快速验证方法
多阶阻抗匹配与宽频带天线的设计分析
杀毒软件中指令虚拟机的脆弱性分析
一种阻抗匹配层的截断边界
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
一种基于滑窗的余度指令判别算法
基于并行控制的FPGA多串口拓展实现