产品列表
 ZigBee系列开发平台
 ZigBee无线定位开发系统
 ZigBee无线传感器网络系统
 Z-Acce网络处理器开发平台
 NXP ARM7系列开发平台
 Altera FPGA系列开发平台
 单片机系列开发平台
 
 
 
 
 
     当前位置:斯凯科技 >> 技术文章 >> ZigBee系列技术文章 >> 正文
 
基于Zigbee的文件传输技术
作者:西安电子科技大学微电子学院 朱文举,杨银堂        阅读: 次      更新时间:2008年11月07日   

摘要:为了实现成本更低功耗更小的短距离无线通信技术,利用Zigbee技术的低成本,低功耗特点提出一种基于zigbee的文件传输技术,完成了多台计算机之间的点对点文件传输。他以嵌入式处理器和射频发射芯片为核心,辅以外围的硬件接口来完成与终端设备的通信。经测试该系统能可靠地传输文件,可以很好地满足数据传输量不是特别大,追求成本最小化的应用需要。
关键词:Zigbee;文件传输;串口通信;低功耗
1 引言
    Zigbee是一种低功耗、低成本的新型短距离无线通信开放性技术标准,工作频段灵活:使用的频段分别为2.4GHz,868MHz(欧洲)及915MHz(美国),均为免执照频段。他的传输速率为250kb/s,有效传输距离为10~75m之间。
    Zigbee技术的低成本、低功耗的特点,使其广泛地应用到库存管理、产品质量控制、工业过程控制、灾害地区监测、生物监测和监督等方面。考虑到Zigbee技术的低成本特点,本文提出一种基于Zigbee的文件传输技术,可以很好地满足数据传输量不是特别大,追求成本最小化的应用需要。
2 总体方案构架
    Zigbee文件传输系统的架构为:以嵌入式处理器和射频发射芯片为核心,辅之以外围的硬件接口来完成与终端设备的通信。具体框图如图1所示。按功能分,主要包括以下几部分:
    处理器  完成所有的控制和协调工作,是整个系统的核心部分;
    射频收发器  完成数据的收发,接收和发送该设备的数据,并将数据发送到上层。
    数据处理终端  完成与处理器的通信,获取原始文件数据。
    人机交互界面  完成人与计算机的相互交流,实现用户需要的数据的收发。

3 硬件电路实现
3.1 器件选型
    本文嵌入式处理器选用ATMEL公司研制开发的Atmega128L单片机[1]。ATmega128L是ATMEL公司推出的低功耗、高性能MCU。ATmega128L内核为AVR,具有先进的RISC架构,内部具有133条功能强大的指令系统,而且大部分指令是单周期;有53个I/O引脚,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使功能口和I/0 口可以复用,大大增强了端口功能和灵活性,提高了对外围的开发能力。内部有2个8位定时器/计数器和2个具有比较/捕捉寄存器的16位定时器/计数器;1个具有独立振荡器的实时计数器;主/从SPI串行接口;可编程串行通信接口;片内精确的模拟比较器等。他功耗低,可工作在IDLE,POWERSAVE.POWERDOWN、STANDYBY等几种省电模式下;可软件编程选择时钟频率。ATmega128L的软件结构也是针对低功耗而设计的,具有内外多种中断模式。丰富的中断能力减少了系统设计中查询的需要,可以方便地设计出中断程序结构的控制程序、上电复位和可编程的低电压检测。工作电压为2.7~5.5V。可以看出,该处理器相对于同类其他系列,具有功耗低、功能强的特点。
    射频发射器选用Chipcon公司的CC2420,CC2420的主要特点是:具有2 Mchips/s直接扩频序列基带调制解调和250 kb/S的有效数据速率;适合简化功能装置和全功能装置操作;低电流消耗(接收19.7mA,发射17.4mA);低电源电压要求(使用内部电压调节器时2.1~3.6V,使用外部电压调节器时1.6~2.0V);可编程输出功率;独立的128字节发射、接收数据缓冲器;电池电量可监控。
3.2 系统硬件实现步骤
    MCU与计算机及射频发射器的连接关系如图2所示,计算机与MCU通过RS232总线连接,进行相互之间的通信,通过CTS和RTS信号线控制TXD1和RXD1的数据收发,具体操作通过软件设置MCU的寄存器实现,MCU与射频发射器之间的通信采用SPI总线,该总线具有传输速率高、稳定的优点,非常适合多机之间的通信。

4 文件传输过程及软件实现
    文件传输分3步骤完成,首先是上层应用层,取得文件名、文件长度,将文件分割为小文件,分部传输,还有确定文件传输开始,以及应答、结束标志。接着是传输层,利用Zigbee技术,将文件发到指定的PC机 ,最后一个步骤是文件的接收模块,将负责文件名、文件内容的接收,去掉应答信息,将小文件合并成一个完整的文件。
4.1 文件发送
    发送过程如图3所示,为了可靠地传输文件,还要考虑到下层Zigbee传输帧的长度的限制,因此,要把文件分割成适合下层传输的长度,这里将文件分割为83个字节的小块文件传输,具体原因将在传输层讨论,还要确立应答关系。不能使用一般通用的文件传输协议,下面将采用自定义的文件传输协议规则。

    (1)发送文件名,帧结构如下:
    Node0=1,node1=1。接着是文件名(要求文件名不超过83个字节)。
    响应帧Node0=4,node1=4。表示文件名正确传输,可以发送文件长度。
    Node0=7,node1=7。表示文件名未正确传输,重发文件名,最多重发4次。
    (2)发送文件长度,帧结构如下:
    Node0=2,node1=2。接着4个字节表示文件的长度响应帧;
    Node0=5,node1=5。表示文件长度成功发送,可以发送文件内容。
    Node0=6,node1=5。表示这帧数据是文件的最后一帧,可以结束文件的传送了。
    Node0=9,node1=9。表示文件未正确发送,重新发送这帧数据,重发3次。
    具体实现:应用层采用Visual C++环境下的MSComm控件[2]。
    MSComm控件是Microsoft公司提供的简化windows下串行通信编程Active控件,为应用程序提供了通过串行接口收发数据的简便方法。他提供了两种处理通信问题的方法:一是事件驱动方法,一是查询法,在这里采用事件驱动的方法。事件驱动是处理串行端口交互作用的一种非常有效的方法,在许多情况下,事件发生时需要得到通知。例如,在串口接收缓冲区中有字符,或者Carrier Detect(CD)或Request To Send(RTS)线上一个字符到达或一个事件发生时。在这些情况下,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件。在编程过程中,就可以在OnComm事件的处理函数中加入自己的处理代码,这种方法的优点是程序响应及时.可靠性高,每个MSComm控件对应一个串口端口。如果应用程序需要访问多个串行端口,必须处理多个MSComm控件。
    发送端首先必须让用户选择要传送的文件,这个可以通过CfileDialog类来实现.打开文件后,将得到的文件大小和长度等信息并存入相应的变量中,用于以后的显示或发送。然后读取文件内容,使用Cfile类实现。用()pen()函数打开文件,用Read()函数读文件,传输完整个文件后用Close()函数关闭文件。根据定义,一次只能读取83个字节。因为发送和接收方都必须得到应答信息的情况下才能继续发送下一帧数据,所以双方的主要功能都是在MSComm控件的事件响应函数中完成的。
4.2 中间层传送接收处理
    Zigbee设备有两种寻址方式[3],分别是通过64位的IEEE地址或者是16位的网络地址来寻找网络设备,一般来说,IEEE地址是固定的,网络地址是在组网时随机分配的。但是在传输数据时,为了传输数据的简化,一般采用16位网络地址寻址,这样需要在第一次通信时知道IEEE地址的前提下,获取设备的网络地址。以后采用网络地址通信。由于Zigbee传输每帧数据时,在物理层最大为127个字节,其中还包括应用层、网络层、MAC层、物理层的帧头以及校验位,因此在实际传输数据时,每帧数据将小于9O个字节,这里采用85个字节。由于帧头有2个字节用作应答,确定帧的类型,因此实际每帧传输有效数据为83位。当两个设备建立联系后,初始化串口,设备开始从串口读取数据,将数据存入到缓冲区中,当数据达到83个字节或者是最后一次获取数据的时间超过100ms时,将数据发送到消息队列,然后通过消息发送机制,将这帧数据发送到指定的设备(这些工作是通过改进figure8协议栈实现的),并将缓冲区尾指针指向区头,从而实现一帧数据的发送。具体程序流程如图4所示。

4.3 文件接收
    对接收到的数据进行判定,当接收到文件名时,提示用户,存入一定路径,并发送应答信号,接着接收文件长度,并用作显示接收的进度,最后开始接收文件数据,把各个小文件拼合为整个文件,在文件接收完毕时,发送应答帧,然后关闭文件,从而实现整个文件的传输。
5 系统调试及结果
    本方案选用5块zigbee通信模块及5台PC机,首先用串口线将Zigbee通信模块连接到各台PC机上,然后启动开发板,系统上电,将根据设置组成一个Mesh网络。通过按键选择待发送文件的设备,运行程序的两端。程序界面如图5所示:点击“选择发送文件”,选择要输的文件,然后点击“发送文件”就可以发送文件了,接收文件时,根据提示,将接收文件存入一指定的路径,从而实现文件的传输,通过调试验证,本方案可以很好地实现文件的传输。

6 结语
    文中在研究Zigbee协议的基础上提出了实现多台PC机之间点对点文件传输的方法,给出了系统的总体设计和软件设计流程。软件包括3大模块:文件处理模块、串口通信模块、Zigbee协议栈。系统硬件电路简单,软件编程可靠,成本低廉,充分利用了Zigbee技术组网灵活、可靠型高的特性,实现了多台计算机之间组网,任意两台计算机之间的点对点文件传输。可以在无线局域网中得到很好
的应用。

参考文献
[1] 马潮.高档8位单片机ATmega128原理与开发应用指南(上)[M].北京:北京航空航天大学出版社,2004.
[2] 李现勇.Visual C++串口通信技术与工程实践[M].北京:人民邮电出版社,2004.
[3] ZigBee Alliance,Network Layer Specification 1.0[EB/OL].http://www.zigbee.org.Dec.2004.
[4] 邬金松,李广彪.PC机和单片机之间文件传输[J].舰船电子工程,2005,25(4):83—85,133.
[5] 邓成,白鳞,湛伟.ZigBee芯片的数字调制单元设计与仿真[J].现代电子技术,2006,29(21):35—36.
[6] IEEE Standard 802,part 15.4:Wireless Medium Access Control(MAC)and Physical Layer(PHY) Specifications for Low Rate WirelessPersonal Area Networks(WPANs).2003.

本文转载自互联网,如果侵犯到你的权益,请联系我们,我们会予以删除。

 
 

湘ICP备 06008804号
版权所有@2004-2008 斯凯电子科技有限公司
电话:0732-8880081;0732-8373095 传真:0732-8291603
本网站所有资料未经许可,禁止复制、转载,否则将追究法律责任
您对我们的网站有什么建议或意见,请Email:service@armsky.net