本发明涉及一种雷电流侵入波监测、数据记录及传输方法,具体涉及一种特高压雷电侵入波的监测系统及其监测方法。
背景技术:
对于目前大力发展的特高压输变电工程,在雷电监测方面存在着以下需求和问题:
1)特高压线路的真实引雷能力如何评估。特高压线路引雷能力准确描述是单位长度特高压线路每年的平均落雷次数,目前雷电监测主要是采用雷电定位系统对特高压线路建设前后的地闪密度进行长期监测,已获得线路所经地区的雷电活动规律,以及特高压线路建成后对该地区雷电活动的影响。雷电定位系统监测地闪次数时,无法判定有多少雷电击中线路,因此它不能准确评估出特高压线路的真实引雷能力。另一方面,正是缺乏特高压线路遭受雷击次数的运行监测数据,特高压线路一直是采用新航线220kV线路多年运行经验总结的引雷宽度计算公式,但是根据日本近年发布的其特高压输电线路(降压500kV运行)遭受雷击次数的监测数据,特高压线路的引雷能力远高于采用我国220kV新杭线总结的引雷宽度公式计算的结果。所以,特高压输电线路落雷次数是检验特高压线路雷电性能理论评估方法的准确性以及线路防雷设计的有效性的基础,开展相关的监测工作,具有重大的意义。
2)特高压线路导线遭受雷电绕击率的实际运行数据是多少。特高压线路雷电绕击率实际运行数据是评估特高压线路雷电屏蔽措施的效果以及线路雷电屏蔽性能计算方法的基础。开展相关的监测工作,对检验现有雷电屏蔽措施的有效性以及线路雷电屏蔽性能评估方法的准确性,具有重大的意义。
3)特高压线路若发生了雷击跳闸,如何判别线路的跳闸类型。目前我国500kV超高压及特高压线路雷电运行经验看,对于判别线路发生雷击跳闸的原因和类型方法,均是人工判别,分析是以经典理论为主,并结合雷电定位系统数据辅助分析,然而雷击线路是一个复杂的物理过程,随着电压等级的提高,由于杆塔结构尺寸和高度等不同,线路遭受雷击的机制和雷击跳闸类型也发生了变化,本来通过准确地线路实际运行经验来校核理论计算,结果目前运行情况却采用理论计算来分析确定线路发生雷击跳闸的原因和类型方法。这是一个很大的悖论,根本原因是目前缺乏判别超特高压线路发生雷击跳闸的原因和类型的监测装置和手段。
4)特高压线路遭受雷击的雷电流波形和幅值分布是怎样的规律。目前,在特高压线路雷电性能仿真计算中,特高压线路遭受雷击的幅值分布均是采用我国220kV新杭线运行27年所总结的运行数据,雷电流波形则是采用2.6/50μs的标准波。这些数据对于特高压线路,还是存在很大的争议,因此,监测雷击线路的雷电流波形和幅值分布规律是十分必要的,其对特高压线路雷电性能仿真计算以及变电站雷电性能评估和优化设计均匀重要的意义和价值。
其中目标一的实现将会使得特高压输电线路防雷更有针对性:雷击故障若主要是反击引起,那么设法降低接地电阻是最为有效地措施;若主要是绕击引起的,那么设法采取降低地线保护角等屏蔽措施则最为有效。目标二的实现可以获得雷击线路雷电流幅值分布规律,以及能分析计算出线路的实际耐雷水平,从而为防雷优化设计提供依据:若线路耐雷水平过高且雷击跳闸率偏低,可采取降低线路空气绝缘强度以节省线路造价;若线路耐雷水平偏低且雷击跳闸率偏高,可采取一些抑制过电压或增强绝缘的措施以确保特高压输电系统的安全可靠运行。目标三和四的实现是获取特高压线路实际运行中的引雷特性和绕击特性的有效途径。
因此,实现上述雷电监测目标是中国乃至世界架空输电线路雷电监测技术的发展趋势。
技术实现要素:
为解决上述现有技术中的不足,本发明的目的是提供一种特高压雷电侵入波的监测系统及其监测方法,实现了雷电流的侵入波全波形测量和记录。
本发明的目的是采用下述技术方案实现的:
本发明提供一种特高压雷电侵入波的监测系统,所述系统包括3路A/D采集通道、现场可编程门阵列(FPGA)、ARM处理器、时钟CLK、ZigBee串口、SD卡、内存DDR3和GPS模块;其改进之处在于,所述3路A/D采集通道和GPS模块均与现场可编程门阵列(FPGA)连接;所述时钟芯片CLK、SD卡、内存DDR3和ZigBee串口均与ARM处理器连接。
进一步地,所述3路A/D采集通道包括串联的分压电阻、信号调理电路和A/D采集电路;每路A/D采集通道的采样频率为20MHz;现场可编程门阵列(FPGA)通过控制A/D采集电路进行同步数据采集,A/D采集电路的数据加序号后,通过数据总线同时传送到现场可编程门阵列(FPGA)及先进先出队列FIFO中,现场可编程门阵列(FPGA)控制先进先出队列FIFO的写入操作;ARM处理器再将内存DDR3分成六个区,把先进先出队列FIFO中的数据距按照1、2、3通道的顺序依次存储到内存DDR3中;3路A/D采集通道正负幅值触发,同时预采样一个周期,记录两个周期数据。
进一步地,所述A/D采集电路采用AD9224芯片,最高采样率为40MHz,最高信噪比为 68.3dB;
所述信号调理电路用于将待测信号通过放大、滤波转换成A/D采集电路能够识别的标准信号,包括电压跟随器和单端转差分处理器;所述电压跟随器的输出电压等于输入电压幅度,对前级电路呈高阻状态,对后级电路呈低阻状态,对前后级电路起到隔离作用;所述单端转差分处理器用于减小干扰,抑制共模噪声。
进一步地,所述GPS模块通过串口通信获取时间信息,包括年、月、日、时、分、秒以及秒脉冲,本地时钟CLK通过秒脉冲的脉冲沿进行校时;开机后自动授时一次,然后在现场可编程门阵列(FPGA)内部以120MHz的时钟频率实现自守时计数功能,产生时、分、秒、微妙的信息;每24小时校时一次,并对中断计数器和线程计数器进行清零;时间标定精度达到1us,累计计时误差为200us/h。
进一步地,所述ARM处理器用于存储读到的数据,包括200*1024*1024的数组缓冲区;所述SD卡中的数据通过ZigBee串口传输给上位机。
本发明提供一种用特高压雷电侵入波的监测系统进行监测的监测方法,其3路A/D采集通道采集传感器探头测得的电网上的电压值,经过信号调理及采集电路后,转换成数字量存入到内存DDR3中,ARM处理器将DDR3中的数据存储到SD卡,并通过ZigBee数据传输到上位机进行波形显示及数据分析;其改进之处在于,所述方法包括下述步骤:
步骤一:待测信号调理;
步骤二:同步数据采集、缓存及存储;
步骤三:授时及自守时;
步骤四:数据传输。
进一步地,所述步骤一包括下述步骤:
1.1、电压跟随,用于缓冲、隔离和提高带载能力;电压隔离器输出电压等于输入电压幅度,并对前级电路呈高阻状态,对后级电路呈低阻状态,因而对前后级电路起到隔离作用;
1.2、采用单端转差分处理器减小干扰,抑制共模噪声。
进一步地,所述步骤二包括下述步骤:
2.1、现场可编程门阵列(FPGA)控制3路A/D采集通道进行数据采集;
2.2、通过ARM处理器控制将采集到的数据缓存到内存DDR3中,并缓存到内存DDR3中的数据存储到SD卡中。
进一步地,所述步骤2.1包括:外部嵌入式系统启动采集后,现场可编程门阵列(FPGA)内部启动采样时钟分频任务,同时输出A/D采集电路的采样时钟及先进先出队列FIFO的写 入时钟;3路A/D采集通道正负幅值触发,同时预采样一个周期,记录两个周期数据;当3路A/D采集通道中一路的幅值触发,将同时采集3路数据,并将A/D采集电路输出的12位结果在先进先出队列FIFO的写入时钟驱动下写入先进先出队列FIFO;再将内存DDR3分成六个区,把先进先出队列FIFO中的数据按照1、2、3通道的顺序依次存储到内存DDR3中;当3路A/D采集通道均未触发时,ARM处理器再将数据从内存DDR3中读出,存储到SD卡中。
进一步地,当采集的数据存入先进先出队列FIFO时,在现场可编程门阵列(FPGA)中设定一个72位的寄存器adc_data_buf,用来缓存3路12位的数字数据,同时设定一个32位的寄存器write_data,用来存储写入先进先出队列FIFO的数据;
首先判断A/D采集电路的时钟设定完成后,将3路12位的数字数据按照1、2、3通道的顺序依次存入到寄存器adc_data_buf的0-35位,然后将寄存器adc_data_buf的1和2通道的数字数据前面各加上4位的通道数,变成32位数据后重新写入到32位的寄存器write_data中;当下一次的数据来临时,将3路12位的数字数据按照1、2、3通道的顺序依次存入到寄存器adc_data_buf的36-71位,然后将第一次存储的3通道数据和第二次存储的一通道数据前面各加上4位的通道数,重新写入到32位的寄存器write_data中,存入先进先出队列FIFO中;
最后将第二次存储的通道二数据和第三次存储的通道三数据前各加上4位的通道数,重新写入到32位的寄存器write_data中,写入到先进先出队列FIFO中,经过三次的写先进先出队列FIFO操作,将两组12位三通道的数字数据写入到了32位的先进先出队列FIFO中。
进一步地,所述步骤2.2包括:在ARM处理器中,开辟200*1024*1024的数组缓冲区acqDataBuf,用于存储读到的数字数据,并申请transfer_length*total_record_frame_length的内存,用来读取数组缓冲区中的数据,并写入到SD卡中,其中total_record_frame_length表示一个文件记录的帧数,为一组完整帧数,transfer_length表示一个帧数据的长度;
在中断和线程开始时,首先计算出数组缓冲区acqDataBuf能够记录的完整帧数,用maxdataframe来表示,即200*1024*1024/transfer_length/total_record_frame_length=maxdataframe;在中断中设定计数器bufdataframe,用于计录数组acqDataBuf中写的完整帧数,在线程中设定计数器curdataframe,用于计录写入SD卡中的完整帧数;
当中断来临时,设定中断正在执行标志,防止一次中断没有执行完,而下一次中断来临,产生数据错误;当信号触发时,首先判断数组缓冲区acqDataBuf是否写满,如果写满,则覆盖上一组数据,继续写入;如果没有写满,则继续写入;每次向数组缓冲区中写进一帧数据, 当写进文件记录的帧数据total_record_frame_length后,判断数组缓冲区acqDataBuf是否写满,如果写满,则将中断中计数器bufdatatframe归零,否则中断中计数器bufdatatframe加1,最后设定中断结束标志;
当信号不触发时,执行写SD卡线程;判断bufdataframe-curdataframe=rnt是否大于等于零,如果不是,则将可记录最大完整帧数maxdataframe+数组缓冲区已写入完整帧数bufdataframe-SD卡中已写入完整帧数curdataframe=rnt;再判断rnt>0,即是否有数据未写入到SD卡中,表示还有数据未写入到SD卡中,则将数组缓冲区acqDataBuf中的数据存储到申请的内存中,线程计数器curdataframe加1,启动中断操作,然后将内存DDR3中的数据写入到SD卡中,如果不是,则再继续进行中断操作;其中rnt表示数组缓冲区acqDataBuf中,未写入到SD卡的帧数。
进一步地,所述步骤三中授时及自守时采用GPS模块实现;所述GPS模块通过串口通信获取时间信息,包括年、月、日、时、分、秒以及秒脉冲,本地时钟CLK通过秒脉冲的脉冲沿进行校时;开机后自动授时一次,然后在现场可编程门阵列(FPGA)内部以120MHz的时钟频率实现自守时计数功能,产生时、分、秒、微妙的信息;每24小时校时一次,并对中断计数器和线程计数器进行清零;时间标定精度达到1us,累计计时误差为200us/h。
进一步地,所述步骤四的数据传输是将存储到SD卡中的数据需要传送给上位机,由上位机进行数据分析,所述数据传输采用ZigBee批量数据传输实现,所述ZigBee批量数据传输的传输距离达到1000m;
ZigBee文件传输格式包括起始符、指令、结束符和检验位lrc;其中检验位lrc为所有发送的字节经过求和取反再加1得到;
首先在ARM处理器中创建ZigBee传输线程,用于进行ZigBee操作,然后设定数据传输结束标志,用于标明文件是否传输完成;设定传输的数据文件大小为256,用于表示ZigBee一次发送的字节数;设定循环发送的次数File_Pack_Num为8,一包文件为File_Size*File_Pack_Num字节,即2KB;设定文件包数file_number;设定两个数组缓冲区buffer及文件缓冲区file_buf,所述数组缓冲区buffer用于存储处理器的指令,所述文件缓冲区file_buf用于传输数据;
判断是否检测到起始符和结束符,如果未检测到,则向上位机发送指令错误Test_Error命令,提示上位机发送指令错误;如果检测到,则继续判断上位机发送过来的检验位与处理器通过计算获得的检验位lrc是否相同,如果不同则向上位机发送指令错误Test_Error命令,如果相同,则选择文件传输程序;
从上位机发送的指令中获取需要发送的包数,判断要求是否发送的是第一包文件,如果是,则获取需要传输的文件名路径并打开文件,进行文件传输,如果文件未打开,则向上位机发送不能打开文件命令;当要求发送第一包文件或文件的结束符上位机未接收到时,才打开文件,其余的状况下,不打开文件;如果要求发送的不是第一包文件,则传输相应的包数的文件,每次发送文件大小File_Size的字节,循环发送的次数File_Pack_Num;在传输的过程中,如果发生一包数据不全的情况,上位机将发送指令,重发此包数据;最后一包数据不足文件大小时,则用0x00补全;
当传输完成时发送Over标志,并用0x00补全文件大小时,并进行数组缓冲区buffer和文件缓冲区file_buf的清空,关闭文件,文件传输完成标志Tran_File_Over进行更新;如果上位机未接收到结束标志Over,此时文件传输完成标志Tran_File_Over已进行更新,则当再次接收到上位机的指令后,重新打开文件,发送最后一包数据;
如果最后一包数据不仅仅有Over指令,还包括文件中的数据,当上位机未接收到Over指令时或最后一包数据不完整,则重新发送这一包数据;但是当ARM处理器发送完文件后,所有标志已经初始化,数组已经清空,文件已经关闭,无法获取文件的路径,需要重新打开文件;
在进行文件传输时,现场可编程门阵列(FPGA)和ARM处理器向上位机发送的指令,如果不足文件大小,则要用0x00补全,再发送给上位机。
本发明提供的技术方案具有的优异效果是:
本发明提供了一种雷电流侵入波监测及数据记录、传输方法,利用现场可编程门阵列(FPGA)的高集成度、高速及高可靠性的特点,实现了雷电流的侵入波全波形测量和记录。雷电流全波形测量主要是采用幅值触发采集和存储雷电流侵入波发生前后波形数据,实时记录雷电流的幅值、极性以及时间。
本发明利用现场可编程门阵列(FPGA)实现同时采集3路数据,每路A/D采集通道的采样频率高达20MHz,每路A/D均采用了高低电平的单独触发,当任意一路实现幅值触发时,将同时记录3路A/D的数据。
精确授时及自守时技术:本发明采用了GPS模块授时,通过串口通信获取时间信息,包括年、月、日、时、分、秒、以及秒脉冲,本地时钟通过秒脉冲的脉冲沿进行校时。开机后自动授时一次,然后在FPGA内部以120MHz的时钟频率实现自守时计数功能,产生时、分、秒、微妙的信息。每24小时校时一次,并对计数器进行清零。时间标定精度可达到1us,累 计计时误差为200us/h。
ZigBee批量数据传输技术:本发明采用了ZigBee将SD卡中的数据进行上传,ZigBee批量数据传输的传输距离达到1000m,通过特定的算法,解决了ZigBee传输数据的数据量小及稳定性差的特点,实现了ZigBee批量数据的稳定、快速的传输。
附图说明
图1是本发明提供的特高压雷电侵入波的监测系统框图;
图2是本发明提供的ARM处理器中的中断流程图;
图3是本发明提供的SD卡线程执行流程图;
图4是本发明提供的数据正常时的波形图;
图5是本发明提供的数据错误时的波形图;
图6是本发明提供的电压跟随器引脚连接示意图;(包含C69和C70的最下面的两个小图是电压跟随器电源部分的滤波电路)
图7是本发明提供的单端转差分处理器引脚连接是意图;(包含C85、C86的两幅小图为单端转差分处理器的电源滤波电路,包含R74图是单端转差分处理器的参考电压选择电路)
图8是本发明提供的AD9224芯片引脚连接是意图;(包含C122和C123的下面的两幅小图是AD9224芯片的电源滤波电路)
图9是本发明提供的ZigBee批量数据传输流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
本发明提供一种特高压雷电侵入波的监测系统,其框图如图1所示,包括3路A/D采集 通道、现场可编程门阵列(FPGA)、ARM处理器、时钟CLK、ZigBee串口、SD卡、内存DDR3和GPS模块;所述3路单通道支路、SD卡、内存DDR3和GPS模块均与现场可编程门阵列(FPGA)连接;所述时钟芯片CLK和ZigBee串口均与ARM处理器连接。
所述3路A/D采集通道包括串联的分压电阻、信号调理电路和A/D采集电路;每路A/D采集通道的采样频率为20MHz;现场可编程门阵列(FPGA)通过控制A/D采集电路进行同步数据采集,A/D采集电路的数据加序号后,通过数据总线同时传送到现场可编程门阵列(FPGA)及先进先出队列FIFO中,现场可编程门阵列(FPGA)控制先进先出队列FIFO的写入操作;再将内存DDR3分成六个区,把先进先出队列FIFO中的数据距按照1、2、3通道的顺序依次存储到内存DDR3中;3路A/D采集通道正负幅值触发,同时预采样一个周期,记录两个周期数据。
A/D采集电路采用AD9224芯片,最高采样率为40MHz,最高信噪比为68.3dB;
所述信号调理电路用于将待测信号通过放大、滤波转换成A/D采集电路能够识别的标准信号,包括电压跟随器和单端转差分处理器;所述电压跟随器的输出电压等于输入电压幅度,对前级电路呈高阻状态,对后级电路呈低阻状态,对前后级电路起到隔离作用;所述单端转差分处理器用于减小干扰,抑制共模噪声。
精确授时及自守时技术:GPS模块通过串口通信获取时间信息,包括年、月、日、时、分、秒以及秒脉冲,本地时钟CLK通过秒脉冲的脉冲沿进行校时;开机后自动授时一次,然后在现场可编程门阵列(FPGA)内部以120MHz的时钟频率实现自守时计数功能,产生时、分、秒、微妙的信息;每24小时校时一次,并对中断计数器和线程计数器进行清零;时间标定精度达到1us,累计计时误差为200us/h。
所述ARM处理器用于存储读到的数据,包括200*1024*1024的数组缓冲区;所述SD卡中的数据通过ZigBee串口传输给上位机。
本发明还提供一种特高压雷电侵入波的监测系统的监测方法,包括:
一、高速数据的采集、缓存及存储
由于数据量过大,为了实现对连续的数据流进行缓存,防止在进机和存储操作时丢失数据,所以开辟了一个32位,32KB的FIFO,当外部嵌入式系统启动采集后,FPGA内部启动采样时钟分频任务,同时输出A/D转换的采样时钟及FIFO的写入时钟。3路独立A/D采集通道正负幅值触发,同时预采样一个周期,记录两个周期数据。当3路通道中只要一路的幅值触发,将同时采集3路数据,并将A/D转换输出的12位结果在FIFO的写入时钟驱动下写入FIFO。再将DDR3分成六个区,把FIFO中的数据距按照1、2、3通道的顺序依次存储到 DDR3中。当3路通道均未触发时,处理器再将数据从DDR3中读出,存储到SD卡中。当2个1G大的DDR3存储满后,那么如果再此触发,数据将不会写入到DDR3中。这样先将触发时A/D采集的数据存储到FIFO,写入DDR3,当未触发时再将DDR3中的数据转存到SD卡中,而不是直接将A/D采集的数据写入到SD卡中,可以减少连续触发时数据的丢失。雷电可能会有连续触发,但不可能一直触发,1S可能连续触发2-3次,但间隔时间一般较长,有时多达1个月也不会触发,通过此方法可满足此要求。
1、由于FIFO和DDR3均为32位宽,而系统采集的是3路12位的A/D数据,因此为了方便将3路12位的A/D数据存入FIFO中,在FPGA程序中设定了一个72位的寄存器adc_data_buf,用来缓存3路12位的A/D数据。也设定了一个32位的寄存器write_data,用来存储写入FIFO的数据。
首先判断A/D的时钟设定完成后,将3路12位的A/D数据按照1、2、3通道的顺序依次存入到寄存器adc_data_buf的0-35位,然后将寄存器adc_data_buf的1和2通道的A/D数据前面各加上4位的通道数,变成32位数据后重新写入到32位的寄存器write_data中,恰好是FIFO的宽度,方便存入。当下一次的数据来临时,将3路12位的A/D数据按照1、2、3通道的顺序依次存入到寄存器adc_data_buf的36-71位,然后将第一次存储的3通道数据和第二次存储的一通道数据前面各加上4位的通道数,重新写入到32位的寄存器write_data中,存入FIFO中。
最后再将第二次存储的通道二数据和第二次存储的通道三数据前各加上4位的通道数,重新写入到32位的寄存器write_data中,写入到FIFO中,这样经过三次的写FIFO操作,将两组12位三通道的A/D数据写入到了32位的FIFO中。
2、在ARM Cortex-A9处理器中,开辟了一个200*1024*1024的数组缓冲区acqDataBuf,用来存储读到的数据,并申请了transfer_length*total_record_frame_length的内存,用来读取数组acqDataBuf中的数据,并写入到SD卡中,其中total_record_frame_length表示一个文件记录的帧数,为一组完整帧数,transfer_length表示一个帧数据的长度。
在程序中开了一个中断和一个线程,中断用来检测是否信号触发,当信号触发时,通过直接内存存取DMA读取DDR3中的数据,存储到数组缓冲区acqDataBuf中;当信号没触发时,线程将控制数据写入到SD卡中。这样做可以避免由于写入SD卡的速度过慢而产生数据丢失。
在中断和线程开始之,首先计算出数组acqDataBuf能够记录多少组完整的帧数,用maxdataframe来表示,即200*1024*1024/transfer_length/total_record_frame_length= maxdataframe。在中断中设定了一个计数器bufdataframe,用来计录数组acqDataBuf中写的完整帧数,在线程中设定了一个计数器curdataframe,用来计录写入SD卡中的完整帧数。
当中断来临时,设定中断正在执行标志,防止一次中断没有执行完,而下一次中断来临,产生数据错误。当信号触发时,首先判断是否数组缓冲区acqDataBuf应经写满,如果写满,则覆盖掉上一组数据,继续写入,如果没有写满,则继续写入。每次向数组中写进去一帧数据,当写进total_record_frame_length帧数据后,判断是否数组缓冲区acqDataBuf写满,如果写满,则将bufdatatframe归零,否则bufdatatframe加一,最后设定中断结束标志,ARM处理器中的中断流程图如图2所示。
当信号不触发时,执行写SD卡线程。判断bufdataframe-curdataframe=rnt是否大于等于零,如果不是,则将maxdataframe+bufdataframe-curdataframe=rnt。再判断是否rnt>0,如果是,则将数组acqDataBuf中的数据存储到申请的内存中,curdataframe加一,启动中断操作,然后将内存中的数据写入到SD卡中,如果不是,则再继续进行中断操作。判断是否rnt>0,是为了判断是否有数据未写入到SD卡中,rnt>0,表示还有数据未写入到SD卡中,如图3所示。数距正常时的波形和数据错误时的波形分别如图4和5所示。
二、精确授时及自守时技术
本发明采用了GPS模块授时,通过串口通信获取时间信息,包括年、月、日、时、分、秒、以及秒脉冲,本地时钟通过秒脉冲的脉冲沿进行校时。开机后自动授时一次,然后在FPGA内部以120MHz的时钟频率实现自守时计数功能,产生时、分、秒、微妙的信息。每24小时校时一次,并对计数器进行清零。时间标定精度可达到1us,累计计时误差为200us/h。
三、高速信号调理及采集电路
1、信号调理就是将待测信号通过放大、滤波等操作转换成采集设备能够识别的标准信号,以便进行进一步处理。电路中含2个高精度运算放大器,依次对信号进行电压跟随和单端转差分处理。
第一部分为一个电压跟随器,起缓冲、隔离、提高带载能力的作用。电压隔离器输出电压近似输入电压幅度,并对前级电路呈高阻状态,对后级电路呈低阻状态,因而对前后级电路起到“隔离”作用;其引脚示意图如图6所示。
第二部分为单端转差分处理。由于采样的最高频率为20MHz,采用了高速的A/D芯片AD9224,为了减小干扰,抑制共模噪声,采用了单端转差分的技术。其引脚示意图如图7所示。
2、A/D采集电路主要采用了AD9224芯片,此芯片最高采样率高达40MHz,高达68.3dB 的信噪比。其引脚示意图如图8所示。
四、ZigBee批量数据传输技术
存储到SD卡中的数据需要传送给上位机,由上位机进行数据分析。采用了ZigBee进行数据传输,传输距离可达1000m。但是由于ZigBee传输是串口传输,在传输的稳定性上有所欠缺,当传输批量数据时,将会发生数据丢失,所以在处理器中创建了一个线程,实现了上位机与处理器的交互,并进行了相应的稳定传输协议设定。
ZigBee传输时,如果一次传输数据量过大,将很容易发生丢数据的现象,如果发送一次少量数据,就检测一次将会影响传输的效率。在传输协议中,设定ZigBee通过每次发送少量数据,多次发送再检测的模式,实现了高效率,快速稳定的ZigBee传输。
ZigBee文件传输格式包括起始符、指令、结束符、检验位。其中检验位为所有发送的字节经过求和取反再加一得到。
首先在处理器中创建一个ZigBee传输线程,用来进行ZigBee操作。然后设定标志Tran_File_Over,用来标明文件是否传输完成;设定File_Size为256,用来表示ZigBee一次发送的字节数;设定File_Pack_Num为8,表示循环发送的次数,这样一包文件就为File_Size*File_Pack_Num字节,即2KB;设定变量file_number,用来表示包数;设定两个数组buffer及file_buf,buffer用来存储处理器的指令,file_buf用来传输数据。
首先判断是否检测到起始符和结束符,如果未检测到,则向上位机发送Test_Error命令,提示上位机发送指令错误;如果检测到,则继续判断上位机发送过来的检验位与处理器通过计算获得的检验位lrc是否相同,如果不同则向上位机发送Test_Error命令,如果相同,则在选择文件传输程序。经过这些判断,表明上位机发送的指令是可用的。
然后从上位机发送的指令中获取需要发送的包数,判断要求是否发送的是第一包文件,如果是,则获取需要传输的文件名路径并打开文件,进行文件传输,如果文件未打开,则向上位机发送can’t open the file。只有当要求发送第一包文件或文件的结束符上位机未接收到时,才打开文件,其余的状况下,不打开文件,这样做可以减少打开文件花费的时间,加快文件的传输速度。如果要求发送的不是第一包文件,则传输相应的包数的文件,每次发送File_Size字节,循环发送File_Pack_Num次。根据上位机发送来的包数,定位文件指针的位置,传输相应位置的数据,这样可以把一个批量数据进行分割,实现批量数据的传输。在传输的过程中,如果发生一包数据不全的情况,上位机将发送指令,重发这包数据;最后一包数据可能不足File_Size个,则用0x00补全。
当传输完成时发送Over标志,并用0x00补全File_Size个。并进行数组buffer和file_buf 的清空,关闭文件,文件传输完成标志Tran_File_Over进行更新。如果上位机未接收到结束标志Over,此时文件传输完成标志Tran_File_Over已进行了更新,则当再次接收到上位机的指令后,可重新打开文件,发送最后一包数据。
如果最后一包数据不仅仅有Over指令,还包括文件中的数据,当上位机未接收到Over指令时或最后一包数据不完整,则需要重新发送这一包数据。但是当处理器发送完文件后,所有标志已经初始化,数组已经清空,文件已经关闭,无法获取文件的路径,所以需要重新打开文件。
在进行文件传输时,所有处理器向上位机发送的指令,如果不足File_Size个,则要用0x00补全,再发送给上位机。其流程图如图9所示。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。