APP下载

基于Arduino的便携式IRIG-B(DC)信号监视系统的设计与实现

2016-11-17刘明波赵乾宏李生平

计算机测量与控制 2016年9期
关键词:码元波形传输

刘明波,陈 琳,赵乾宏,李生平

(中国卫星海上测控部,江苏 江阴 214431)



基于Arduino的便携式IRIG-B(DC)信号监视系统的设计与实现

刘明波,陈 琳,赵乾宏,李生平

(中国卫星海上测控部,江苏 江阴 214431)

为了提高对时间统一系统IRIG-B码信号的监测效率,需要一套自动监测系统;本文结合某型号时间统一系统,针对该时统设备输出的通用IRIG-B(DC)格式时间码,介绍了一种基于Arduino的便携式IRIG-B(DC)信号监视系统的设计过程,给出了以开放源代码硬件项目平台Arduino为核心构建的“输入控制+逻辑处理+数据处理+数据交互+数据存储+网络传输+实时显示”的系统硬件设计结构;利用Arduino内高度集成的AVR二次编译封装库,将复杂的逻辑控制和数据处理等底层的指令封装成简单实用的函数调用,完成了整个系统的任务调度和管理,实现了对时间统一系统IRIG-B(DC)信号的波形采集、数据分析、时间解调、状态监视、实时显示以及数据存储等功能;测试结果表明,系统设计简洁,工作稳定可靠,设计指标满足功能需求。

Arduino;IRIG-B(DC);SD;实时显示;网络

0 引言

靶场时间统一系统是整个靶场协同工作的时间标准,各种测量设备都要接收时统信号,使自己的测量数据能够与其他设备“同步”起来,因此,时统信号的传输质量和传输状态是完成测量任务的关键[1]。目前,时统设备输出信号的状态监视主要是采用人员目视检查的方式,存在人员疏漏导致故障现象“转瞬即逝”而不能及早发现并处理的隐患,在设备的日常维护、指标测试以及应急处置过程中,人员都是依靠目视检查示波器观察波形或查看用户终端解调时间的方式进行,无法对信号传输的正确性和连续性进行实时检查,特别是在故障应急处置过程中,采用观察波形和目视检查的方式不能快速高效的定位故障。

随着现代电子技术的飞速发展,从PC时代过渡到了以个人数字助理、手持个人电脑和信息家电为代表的3C(计算机、通信、消费电子)一体的后PC时代。后PC时代里,便携式系统扮演了越来越重要的角色,被广泛应用于设备监视、信息电器、移动计算机设备、网络设备、工控仿真等领域。单片机技术以其低功耗、低电压、低价格以及多功能、高性能等突出优点,为便携式系统设计提供了强大的硬件支持。但是,单片机设计中各种复杂的寄存器操作也让很多的便携式系统设计者们望而生畏——要完成某项功能需要耗费大量的时间去熟悉单片机的底层。Arduino的出现彻底改变了这一局面,它将单片机中各种寄存器封装起来,并提供了易用的接口、极其简洁的界面、C语言编程方式、强大的第三方函数库支持[2],逐渐成为便携式系统设计的中坚力量。

1 系统概述

系统采用Arduino完成输入信号的采集,包括模拟波形的采集和数字脉冲的采集,由内置于Arduino硬件平台上的脉宽测量模块完成IRIG-B信号解调、AD转换模块完成模拟波形的模数转换、液晶显示驱动模块完成波形和解调时间的实时显示、网络传输模块完成远程信息传输、SD控制模块完成异常数据实时记录、I2C传输模块完成多个Arduino板卡间的数据同步。由于系统设计中AD转换、信号解调和实时显示等功能模块对实时性要求较高,因此,系统设计中采用3个Arduino板卡,分别完成IRIG-B信号波形采集和实时显示、IRIG-B时间解调和实时显示、远程网络传输和SD卡数据存储等功能。整个系统相当于一个IRIG-B信号监视服务器,系统整体设计如图1所示。

图1 系统设计模型

靶场时间统一系统一般采用IRIG-B码进行时间信息的传输,考虑到信号传输距离和传输质量,常采用RS422电平标准,而Arduino只能接收TTL电平标准。因此,将IRIG-B码信号接入Arduino之前要进行电平转换,将RS422电平转换为TTL电平。图1中,Arduino_1完成IRIG-B信号波形采集和实时显示,Arduino_3完成IRIG-B信号解调、实时显示和异常报警,同时,Arduino_1和Arduino_3将数据处理获取的信号周期、幅值、解调时间等信息通过I2C协议送给Arduino_2,由Arduino_2汇总后进行分析,当出现异常时将异常信息及时记录在外置SD卡上,提供后续故障排查的依据,同时通过网络传输模块送给远程监控微机,监控微机根据获取到的数据信息判断时统信号状态。

整个系统由硬件和软件两部分组成。其中,系统硬件部分由电平转换模块、数据采集与处理模块、实时显示模块、网络传输和数据记录模块组成。电平转换模块完成输入信号的电平转换,使时统IRIG-B信号的电平标准能够适应Arduino输入电平标准;数据采集处理模块由三块Arduino板卡协调实现,主要完成IRIG-B信号波形的模数转换、波形参数提取、时间解调以及数据分析等功能;实时显示模块由两块Arduino板卡控制LCD12864和LCD1602两个液晶屏实现,主要完成信号波形、波形参数、解调时间和信号状态等参数的实时显示;网络传输和数据记录模块由一块Arduino板卡控制网络传输模块实现,完成相关参数和报警信息的实时传输和实时记录功能。以上模块的主要功能均由Arduino平台辅以必要的外围器件完成,通过软件编程完成,大大简化了设计工作。

本设计的关键是如何在基于AVR指令集的Arduino平台上利用高度集成的底层驱动函数库完成各类逻辑控制和数据处理工作,实现对靶场时统信号的实时状态监视和异常报警功能。

2 系统硬件设计

硬件设计工作主要包括两个方面的内容:硬件平台的搭建和硬件功能的实现。

2.1 硬件平台的搭建

根据系统功能需求,系统主要实现IRIG-B信号监视服务器的功能,进行信号采集分析、实时显示、实时记录和实时网络传输等工作。其基本结构如图2所示。

图2 系统硬件基本结构图

图2中,由于IRIG-B信号为RS422电平,需要两根线缆进行传输,因此,SMA接口内芯和表皮分别传输RS422+和RS422-两个信号,由电平转换芯片完成转换后,分别送给两个Arduino模块;LCD12864和LCD1602完成信号波形、解调时间以及特征参数、告警信息的实时显示;以太网接口和以太网控制器建立网络客户监视微机与Arduino Pro mini间的数据传输链路。

为了满足不同应用领域的要求,Arduino设计了多款不同型号的电路板,如UNO、Leonardo、Pro Mini、Duemilanove、Nano、BT、Fio等[3]。根据设计需求,本系统设计中信号采集和时间解调模块选择了Arduino Pro Mini。与其他型号电路板相比,Arduino Pro Mini具有较高的性价比,该型号电路板采用16 MHz晶振,AD采样频率最高可达1MHz,具有14个数字I/O口、6个模拟I/O口,具有2路外部中断,提供串行、SPI及I2C等多类低速通信协议[4]。同时,Arduino Pro Mini体积很小,约为3.3 cm×1.7 cm,只有邮票大小,特别适合用于便携式系统的设计。

系统采用以太网的接入方式,因此必须实现IEEE802.3标准。其实现通常采用两种方案来执行该标准:可编程逻辑器件实现和专用接口模块实现。由于IEEE802.3标准的实现非常复杂,本系统设计中采用专用接口模块实现,设计者可以不用理会网络端接口部分,只需编程实现本地端的逻辑控制即可,用户可以将精力集中到应用设计,而不是调试复杂烦琐的IEEE802.3标准协议,明显缩短开发周期,提高设计可靠性。目前常用的Arduino网络数据传输解决方案主要有两种:ENC28J60和W5100。考虑到设计的复杂度和系统工作的可靠性,系统设计中采用Arduino官方推荐的“Android UNO+ Arduino专用网络扩展模块W5100”实现,设计简单,工作稳定。同时,该模块提供了SD卡数据存取功能,系统设计中要求的异常数据存储功能也是基于此模块实现的。

IRIG-B信号实时波形和解调时间的显示采用成熟的LCD技术实现。LCD是一种功耗很低的显示设备,以其优越的性能和宽泛的工作条件,被广泛应用于数据显示领域[5]。考虑到便携式设计对系统体积的要求,分别采用LCD12864和LCD1602两种不同尺寸的点阵液晶显示模块,既能够较清晰全面的完成所需信息的显示,又能够尽量的减少自身体积。LCD12864中前100列显示IRIG-B信号实时波形,后28列显示波形的频率、幅值以及按钮调节参数等信息;LCD1602的第一行显示IRIG-B信号实时解调时间,第二行显示解调时间走时错误次数。根据两个液晶显示模块显示的信息,使用人员可以大致的了解当前以及前一段时间内靶场时统设备IRIG-B输出信号质量,当发现异常情况时,可以查阅SD卡中存储数据查询详细信息。

2.2 硬件功能实现

在硬件平台搭建完成的基础上,硬件功能的实现主要通过编写Arduino内部的配置程序来完成。主要包括IRIG-B波形信号采集与特征参数提取、IRIG-B信号实时解调与走时状态分析、网络数据传输以及Arduino板间通信的实现。

2.2.1 IRIG-B波形信号采集与特征参数提取

信号采集模块的实现主要有两种方式:(1)专用ADC芯片+Arduino;(2)利用Arduino内部的ADC模块进行转换。第一种方式设计灵活,但是实现电路较复杂,能够实现较高采样率和采样位数的数模转换;第二种方式结构简单,容易实现,但是采样率和采样位数都较小,适用于对采样要求较低的场合。IRIG-B信号可以近似看做为频率为100 Hz的脉冲信号,而Arduino内部的AD转换模块的最高采样速率为1 MHz,采样位数为10位,完全能够满足要求。因此,本系统设计利用Arduino内部集成的AD转换模块完成IRIG-B波形信号的采集,使用时只需要将信号接入Arduino的模拟输入端即可。

通过理论分析我们知道,由于显示模块为LCD12864,横轴最多显示数据点数为128个,因此,在进行信号采集时,每个采样周期只需采集128个点,并根据其冒泡算法获取128个数据点中的最大值和最小值,从而计算出Vpp值;根据两次过零点间的时间间隔计算周期值。在实际程序设计过程中,考虑到信号的同步触发功能,一个周期内采集192个点,从192个点中找出共同的起始点后,只显示其中的128个点即可。

2.2.2 IRIG-B信号实时解调与走时状态分析

如前所述,IRIG-B码是每秒一帧的时间串码,每个码元宽度为10 ms,一个时帧周期包括100个码元,为脉宽编码。码元的“准时”参考点是其脉冲前沿,时帧的参考标志由一个位置识别标志和相邻的参考码元组成,其宽度为8 ms;每10个码元有一个位置识别标志:P1,P2,P3…P9,P0,它们均为8 ms时宽;PR为帧参考点;二进制“1”和“0”的脉冲时宽分别为5 ms和2 ms[6]。IRIG-B码帧结构如图3所示。

图3 IRIG—B(DC)时间码格式

一个时间格式帧从帧参考标志开始,因此连续两个8 ms宽脉冲表明秒的开始,帧开始之后的38个码元(不包含位置识别标志)为有效数据,天、时、分、秒信息位于其中的30个码元,其中,天的百位位于36至37码元,天的十位位于32至35码元,天的个位位于27至30码元,时的十位位于23至24码元,时的个位位于18至21码元,分的十位位于14至16码元,分的个位位于9至12码元,秒的十位位于6至8码元,秒的个位位于1至4码元。因此,在进行时间解调的过程中,首先检测2个8 ms脉冲,然后根据时间信息中天、时、分、秒所在的码元序号,依次解调出相应的信息,并按照一定的格式将百位、十位、个位信息进行整合计算,得到完整的时间信息。

由于B码信号是以脉冲的时间宽度来代表二进制‘0’、‘1’和标志位的,所以无论采取何种技术体制,其关键点都在于码元时宽的正确识别。Arduino提供了专门用于读取指定引脚脉冲宽度的函数,可以精确(精确到1 us)获取到脉冲高/低电平的持续时间,并根据时间信息的码元分布规律依次解调出天、时、分、秒信息,解调流程如图4所示。

图4 IRIG-B信号时间解调流程

图4中,脉宽检测是采用Arduino内置的脉宽计数函数PulseIn()进行的,计数值为输入脉冲的高电平持续时间,单位为微秒(us),当计数值大于7 000小于9 000时,判定为8 ms码元,当计数值大于1 000小于3 000时,判定为2 ms码元,当计数值大于4 000小于6 000时,判定为5 ms脉宽。之所以将脉宽判定门限设定为“标准值±1 000”,主要是为了防止输入IRIG-B信号由于受到干扰等原因导致码元偶发变形而无法正确解调现象的发生,该门限可以根据使用条件进行相应的调整。当检测到连续两个码元为8 ms脉宽时,系统置位帧起始标志,后续根据码元序号值依次判定对应时间位的脉宽为5 ms或2 ms,并置位或复位对应的时间位,判定过程中将直接忽略8 ms脉宽的位置识别标志。当识别出足够的时间信息后(码元序号>39),系统将锁存该时间信息,送给实时显示模块和网络传输模块,并复位相应的标志位,进行下一帧数据的识别判定工作。

同时,在完成一帧数据的解调后,系统将当前帧的解调时间与上一帧解调时间进行比对,若不连续则置位报警标志位,送实时显示模块和网络传输模块,并在本地进行声光报警。

2.2.3 网络数据传输

网络数据传输功能的实现是由Arduino UNO模块与以太网扩展板W5100协调完成的。Arduino Ethernet W5100 以太网扩展板上的W5100 是一款多功能的单片网络接口芯片,内部集成有 10/100 Mbps 以太网控制器,包含TCP/UDP的网络(IP)协议栈,可以实现没有操作系统的网络连接,它和Arduino UNO采用SPI的方式通信[7]。

Arduino UNO利用捆绑在其内部的Ethernet库完成与以太网扩展板W5100的配置和协议传输工作。系统加电启动时,Arduino 向W5100发送IP地址、子网掩码、默认网关等网络参数,控制W5100芯片完成寄存器的初始化,随后W5100启动Server服务,进入数据收发等待状态。当接收到监视微机发送的客户端连接请求时,及时进行连接确认。当Arduino检测到以太网扩展板的Server服务有客户端连接时,通过SPI总线逐位将待发送数据传输到扩展板W5100的数据发送缓存中,由W5100根据IEEE802.3标准,将缓存的数据和数据帧信息进行MAC组帧,并发送出去。图5为Arduino调度下的网络传输任务处理流程。

图5 网络传输任务处理流程

另外,W5100以太网扩展板上集成有microSD卡槽,Arduino UNO可以利用内置的SD库进行SD卡文件的读取和存储操作。有一点需要说明的是,由于W5100芯片和SD卡都要通过SPI总线与Arduino UNO通信,而Arduino UNO板上的SPI引脚固定为11、12、13号引脚,10号引脚用于选通W5100芯片,4号引脚用于选通SD卡,因此同一时刻只能激活一个,在实际使用过程中交替选通10号和4号引脚,可以同时完成网络传输和SD卡数据存储功能。

2.2.4 Arduino板间通信

系统设计中,波形采集板Arduino Pro Mini要将信号波形特征参数传送给远程监视微机,时间解调板要将解调时间信息和报警信息传送给远程监视微机,因此,需要实现Arduino Pro Mini模块和Arduino UNO模块间的数据通信。

目前,串口协议、SPI、I2C以及自定义协议均可应用于板间低速数据传输。综合分析Arduino模块和各协议标准特点,选择I2C作为Arduino板间通信标准。I2C在低速数据通信中具有明显的优点:只需要两路信号接口,可以连接多个设备,并且数据发送接收的过程可以经过确认,确保数据传输的可靠传输,特别适用于不需要发送大量数据的场合。本系统中,波形采集板向网络控制板发送的特征参数主要包括峰峰值和周期值供16 bit数据,时间解调板向网络控制板发送的时间信息和报警信息共32bit,发送频率均为1 Hz,数据量很小,因此,使用I2C标准完全能够满足要求。

根据标准规定,I2C采用两线制,由数据线SDA和时钟线SCL构成,为同步传输总线结构,数据传输采用主从方式。为了控制方便,本系统设计中网络控制板Arduino UNO作为主控制器,波形采集板Arduino Pro Mini和时间解调板Arduino Pro Mini作为被控制器,其电路连接关系如图6所示。

图6 Arduino板间通信电路连接关系

Arduino利用内置Wire库进行I2C数据传输。图7中,Arduino UNO作为主机,连接两个Arduino Pro Mini作为从机,并设置从机通信地址分别为0xAE和0xAF,为了防止数据传输发生冲突,数据传输过程两个从机模块采用“一主一被”的方式进行,即时间解调模块每隔1秒主动向主机发送一次时间信息和报警信息,而波形采集模块则采用被动上报的方式,由主机每隔1秒发送一次数据查询命令后才进行数据上报。

3 系统软件设计

应用软件是系统的数据处理与显示终端,运行于远程监视微机上,主要完成与服务器的网络连接和数据传输功能,方便用户对靶场时统设备IRIG-B信号质量和主要参数进行实时监视,并提供异常告警功能。

软件设计为工作于Microsoft Windows2000/XP操作系统的独立应用程序,具有灵活的操作方式和友好的人机界面。采用NI公司的虚拟仪器编程语言LabWindows/CVI,该软件不仅具有友好、丰富的界面编辑方式,而且附加了各种软件开发包,如数据库软件包、Internet软件包、数据分析软件包等,利用LabWindows/CVI开发监测软件可以获得意想不到的方便,大大节省开发时间,增强了软件的性能[8]。

本系统客户端软件设计使用LabWindows/CVI的TCP/IP开发包,在Arduino Server服务器启动之后,通过IP地址和监听端口号与其进行网络连接,完成设备的远程监控功能。该系统主要完成对某型号时间统一系统输出IRIG-B(DC)信号主要参数的实时监视和异常报警,并提供数据记录功能。

4 系统测试与应用

系统主要完成靶场某型号时间统一系统输出IRIG-B信号状态的本地和远程实时监视功能,为了检验系统设计的可靠性,对其所实现的功能进行相应的测试。系统测试时的连接关系如图7所示。

图7 系统测试连接关系图

图7中,系统采用SMA接口与靶场某型号时统设备相连,将输出的IRIG-B(DC)信号送给终端设备时,经过分线盒分出一路送给监视系统;远程监测微机通过交换路由设备连接至监视系统,系统运行过程中,LCD12864和LCD1602能够正确显示信号波形、波形参数以及解调时间和走时状态等信息,远程监测微机能够每隔1秒更新监视参数。出现异常时,SD卡会及时存储异常现象,监视系统本地和远程监测微机均通过声光方式报警,提醒岗位人员及时处置。

超过6个月的测试表明,系统工作稳定,各项监测显示任务正常,满足设计指标以及各项功能要求。需要指出的是,由于时间解调模块是在帧起始位之后的第39个码元将解调出的时间送给显示模块和网络传输模块的,因此解调出的时间比时统设备送出的实际时间滞后约39×10 ms=390 ms,可以采取检测到起始位时送加一秒解调时间的方式解决。由于本模块主要用来监视时统走时的连续性的,对该滞后时间可以接受。

5 结束语

本文介绍的便携式IRIG-B(DC)信号监视系统采用Arduino为核心进行设计,利用其内嵌的多种成熟库文件完成外围器件的控制和内部数据处理,增加了系统设计的灵活性,同时也大大降低了系统开发的复杂度,实现了对靶场某型号时统设备输出的IRIG-B信号的全方位监视功能,在出现异常情况时及时通过多种方式实施报警,提高了设备监视效率。在实际应用中,本设计方案可以根据不同的监视信号类型,改变数据处理函数即可实现不同类型信号的监视功能。本方案所实现的监视系统具有成本低、可视化、与平台无关等特点,可以广泛应用在工业控制领域,有一定的工程实用价值。

[1] 张向荣.IRIG-B格式时间码解码接口卡电路设计[J].单片机与嵌入式系统应用,2006(9):30-32.

[2] 黄文恺,伍冯洁,陈 虹. Arduino 开发实战指南[M].北京:机械工业出版社,2014.

[3] Michael Margolis. Arduino Cookbook [M]. 2015,3.

[4] Martin Evans, Joshua Noble, Jordan Hochenbaum. Arduino In Action[M].2014.

[5] 赵建领,弓 雷.51系列单片机开发(第二版)[J].电子产品世界,2012.

[6] 刘明波,侯孝民. 基于CPLD的IRIG-B码解码器设计与实现[J].国外电子测量技术,2008,27(5):43-45.

[7] 运用物联网实现的远程遥控开关[EB/OL]. 2014. http://www.crystalradio.cn.

[8] 宋宇峰.LabWindows/CVI逐步深入与开发实例[M].北京:机械工业出版社,2003.

Design and Implement of Portable IRIG-B(DC) Signal Monitoring System Based on Arduino

Liu Mingbo, Chen Lin, Zhao Qianhong, Li Shengping

(China Satellite Maritime Tracking and Commanding Department, Jiangyin 214431,China)

In order to improve the monitoring efficiency of IRIG-B code signal, a set of automatic monitoring system is needed. Aimed at the general IRIG-B (DC) format time code output from a certain model timing system, this article introduces the design process of the portable IRIG-B(DC) signal monitoring system, and puts forward the system design frame centered with Arduino of “input control+ logical control+ data processing+ data interactive+ data storage+ net transferring+ real-time displaying”. The system using the technology of highly integrated AVR second compiling packaging library embedded in Arduino, which makes low-level instructors including complicated logical control and data processing be packaged in simple function callings. It accomplishes the function of IRIG-B(DC) signal’s real-time acquisition、analysis and time decoding、status monitoring and data storage. Tests show that system works stably and is designed simple, satisfies the requirement.

Arduino; IRIG-B(DC); SD, real-time display; net

2015-12-14;

2016-05-19。

刘明波(1984-),男,河南兰考人,硕士,工程师,主要从事高速数字信号处理与应用方向的研究。

1671-4598(2016)09-0113-04

10.16526/j.cnki.11-4762/tp.2016.09.031

TP271;TP216

A

猜你喜欢

码元波形传输
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
LFM-BPSK复合调制参数快速估计及码元恢复
基于LFM波形的灵巧干扰效能分析
用于SAR与通信一体化系统的滤波器组多载波波形
关于无线电力传输的探究
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
基于极大似然准则的短猝发信号盲解调
基于ARM的任意波形电源设计
双丝双正弦电流脉冲波形控制