微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于ZigBee的航标遥测终端

基于ZigBee的航标遥测终端

时间:03-16 来源:互联网 点击:

。它是整个终端的核心,负责整个终端系统的管理、控制运行、数据采集以及通信协议的解析和数据处理。S3C2410微处理器具有3个串口,即UART0,UART1,UART2,通过合理分配串口,并设计控制电路,对不足的串口资源进行复用,使其满足应用需求。ZigBee/CDMA通信模块的作用是负责终端和控制中心之间的远程双向无线数据传输。GPS定位模块用于实现终端的定位,使终端可以实时监视浮标是否产生漂移。由于目前的航标灯均自带有数据采集模块,并通过RS 485输出数据。因此,终端通过发送采集指令给航标灯,航标灯数据就会自动传输给终端,即只需要利用一个RS 485到RS 232转换器就可实现对航标灯数据的采集。处理器与外围通信模块的通讯是通过串口连接,处理器可以通过AT指令对通信模块进行操作和控制,从而实现ZigBee/CDMA网络的无线接入,并与控制中心建立通信链路,以提供远程数据双向传输的通道。通过以太网控制器芯片DM9000扩展一个网口,以满足运用,同时方便调试开发的功能。由于输入是12 V,而不同的模块所需的电压不一样,所以要进行电压的转换,即供电系统部分。由于采用了ARM9嵌入式系统和模块化设计,使系统硬件的外围电路相对简单,因此具体电路本文将不介绍。

3 终端软件设计
3.1 多线程设计
终端软件是在Linux 2.4.18操作系统内核上采用多线程开发的。与进程相比,线程很小,创建一个线程可以使用相对较少的CPU时间,提高了CPU并行处理的能力。因此,多线程编程与多进程编程相比,在性能和通信等方面都有显著的优势,所以终端软件的开发采用单个进程多线程的编程方式实现。
在整个终端软件系统中,创建了五个线程:主线程、通信线程、遥测遥控线程、协议处理线程及定时处理线程。主线程是进程对应的线程,是整个软件的控制线程,它控制其他线程的工作,具体包括创建管道、打开驱动、建立线程及安装触发线程的信号等功能;通信线程负责终端通信方式的选择、通信模块的驱动及收发数据等工作;遥测遥控线程主要负责航标数据采集、GPS数据采集、遥测数据的上传及遥控命令的执行;协议处理线程根据通信协议对数据进行变换、格式转换、打包和解包;定时处理线程主要完成周期性的控制,包括定时数据上传、定时故障和异常判断与报警、定时休眠、重新启动等。
由于整个终端需要处理的任务较多,下面仅介绍几个关键功能模块的设计。
3.2 通信功能模块设计
终端的通信具有ZigBee,CDMA两种通信方式,由通信处理线程实现。具体完成ZigBee,CDMA模块的初始化、数据发送与接收、智能切换通信方式以及模块工作状态的监测等功能。
通信线程的处理机制是利用信号的异步通知机制,通过安装信号处理函数,当某一通信方式出现异常时就发送信号并携带相关的信息,从而触发信号处理函数进入中断处理异常信息,并根据信息来选择重建当前通信或建立另一种通信方式或重启系统。在此主要介绍双模通信中的ZigBee通信方式。
当选择ZigBee通信方式时,必须对ZigBee进行初始化,其初始化流程图如图3所示。

部分初始化程序如下:

fd表示的是连接ZigBee/CDMA与ARM的串口的文件句柄;sendPort相当于UNIX中的write()函数,即将Send_buf中的数据写入到串口。
因为在终端中用的ZigBee通信模块有其固定的帧格式,所以需要将采集到的数据进行打包,然后才能传输,利用一个函数send_prepare(int mode,unsignedchar send_buf[512],int length)实现数据的打包。其中,mode表示的是ZigBee和CDMA中的一种模式;send_buf[]表示需要发送的有效数据,此函数的主要功能是将有效数据加入到ZigBee和CDMA能识别的帧格式中。然后调用发送函数sendPort(fd_com,send _buf)将数据通过ZigBee或CDMA发送到控制中心。当数据发送到控制中心,控制中心模块会给终端一个应答。通过对此帧的解析,可以看出发送是否成功。例如,在ZigBee通信方式中,状态/标志位为00时表示发送成功,否则表示发送失败。
3.3 遥测遥控功能模块设计
3.3.1 遥测功能模块
遥测包括数据采集与数据传输两部分。数据采集包括航标灯数据和GPS数据的采集。航标灯是一种请求-应答式的设备,要采集航标灯数据就必须通过处理器或是控制中心发送采集命令。在终端上采用定时的方式,当设置时间到时,终端就会自动发送遥测命令给航标灯,当航标灯收到数据并通过CRC检验后,航标灯将其实时的数据发送给处理器,然后通过通信模块发送到控制中心。GPS数据是通过读取GPS-OEM板自动输出的NMEA-0183格式数据获得的,在程序中采用中断方式接收,每1 s接收一次数据。GPS和航标灯数据采集流程图如图4,图5所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top