TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc

上传人:仙人指路1688 文档编号:3928467 上传时间:2023-03-28 格式:DOC 页数:6 大小:548KB
返回 下载 相关 举报
TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc_第1页
第1页 / 共6页
TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc_第2页
第2页 / 共6页
TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc_第3页
第3页 / 共6页
TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc_第4页
第4页 / 共6页
TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc》由会员分享,可在线阅读,更多相关《TDE324CI数据采集器强震实时数据流格式及解码过程浅析.doc(6页珍藏版)》请在三一办公上搜索。

1、数据采集器强震实时数据TDE 324CI流格式及解码过程浅析吴华灯,叶春明( 广东省地震局,广东 广州 510070)摘 要:介绍了 TDE 324CI 数据采集器的软件接口,包括 TCP / IP 网络数据流通讯协议、命令控制字和网络数据流接口,对实时数据流格式进行了具体的分析和描述,最后通过实例分析了实时数据流解码的实现并列 举了程序代码。关键词: 强震; 数据采集器;中图分类号:P315 62实时数据流; 格式; 解码文献标识码:A文章编号:1673 8047(2011)04 0061 06用到厂家提供的配套软件来控制数据采集器,诸引言随着广东省社会经济发展特别是城市化进程 步伐的加快,

2、地震对社会发展和公共安全构成的 威胁更加严重,政府和社会公众对广东省防震减 灾工作提出了更高的要求。特别是汶川、玉树特 大地震后,使得地震预警和烈度速报系统的发展 建设被加速列入国家的“十二五”发展规划当中。 在广东省“十一五”防震减灾项目建设中,已经开 展了地震预警和烈度速报系统建设的基础工作。 在烈度速报系统建设方面,开展了多种型号强震 数据采集器实时数据流接口的开发工作,建立了 粤东地区和广州地区的区域试验性烈度速报台 网,同时逐步实现测震、强震两个观测台网的并网 工作。下面,从实时数据流接口的开发方面,就 TDE 324CI 型数据采集器强震实时数据流格式 及解码过程作一定的解析。0如

3、执行连接设备、查询参数、设置参数、查看波形、重启设备等操作,大多数人并不清楚上位机是如何实现这些操作的,对于少数想结合数据采集器进行二次开发的人,却很想了解和掌握这一机理。以固件版本为 4237 的 TDE 324CI 数据采集器为例,作一基本的介绍。首先,与数据采集器建立 通信,通信的方式通常有串口和网络两种,由于已 经是网络化时代,我们采用 TCP / IP 网络通信方 式与数据采集器建立连接,这时需要知道数据采 集器的 TCP / IP 网络通信协议。其次,终端程序 与数据采集器建立连接,必然要发送命令,这就需 要掌握仪器的命令控制字。最后,需要清楚网络 数据流接口,便于程序和数据采集器

4、之间互发数 据。软件接口将从 TDE 324CI 的 TCP / IP 网络 通信 协 议、TDE 324CI 的 命 令 控 制 字、TDE 324CI 的网络数据流接口三个方面展开介绍。TDE 324CI 的 TCP / IP 网络通信协议TDE 324CI 的 TCP / IP 网络通信协议很简 单,以 TDE 324CI 的服务器模式为例,首先,终 端程序以 TCP / IP 方式连接到数据采集器的 9742 数据端口。连接端口成功后,终端程序要发送 Connect To TDE 324CI到数据采集器。其次,数 据采集器收到 Connect To TDE 324CI 字 符 串1 1

5、TDE 324CI 强震数据采集器的软件1接口对仪器的实时数据流进行解码,必须深入了 解和掌握仪器的软件接口,以此保证解码程序与 仪器交互通讯的每一个环节均准确无误,使程序 稳定、可靠地运行。在日常工作中,技术人员经常收稿日期:2011 10 11基金项目:广东省“十一五”立体地震监测预报系统建设工程强震分项作者简介:吴华灯( 1980) ,男,广东茂名人,理学学士,工程师,主要从事地震监测和软硬件开发工作。后,将反馈DATA RECEIVE PASSWORD 到终uint16 nCmd;uint16 nChk; RCVPAR;/ / 命令类型/ / 按位加累加和等于零端程 序。 最 后,终

6、端 程 序 收 到 DATARECEIVEPASSWORD 后,发送登录密码“123456 ”到数据采集器,当数采返回 CONNECT OK! 信息时, 表示终端程序与数据采集器建立了 TCP / IP 连 接。这时,可以通过发送命令控制字进行相关的 操作。TDE 324CI 的命令控制字的结构简单、清晰,具体执行的命令由结构成员 nCmd 命令类型 和 nDataCt 共同决定。命令类型有休眠、获取实 时数据、获取参数、设置参数、获取 CF 卡数据和 关闭连接 6 种。每种命令类型,通常还包含更多 不同功能的命令。以命令类型中部分常用命令为 例,解析一下它们的使用方法。表 1 列出了常用 命

7、令控制字的内容及其对应的仪器响应。1 2命令控制字TDE 324CI 的命令控制字定义如下:typedef struct uint32 nDataCt;表 1 常用命令控制字命令类型PC 或其它设备发送命令控制字内容仪器响应休眠获取实时数据nCmdnCmd nCmdnCmd= 0,nDataCt= 1,nDataCt= 2,nDataCt= 0= 0= 0Readying 连续不断的 512 字节数据包 数据主参数 Set System Par From Net OK and System Ready ToReBoot 或者Get PAR From Net Error! Connect is

8、Closed获取参数= 3,nDataCt 低 16 位=0,高设置参数16 位 = sizeof( SETPAR)nCmd = 0xFFFF,nDataCt = 0关闭连接可以根据下面的程序片段实现表 1 中命令控制字的封装和发送。/ / 命令控制字的封装LOGINFO 信息数据结构、与 LOGINFO 结构相关的 SETPAR 主 参 数 结 构、网 络 数 据 流 CISTEIM2数 据 帧 结 构、CISTEIM2 成 员 变 量CISTHEAD,static void ac _ cmd ( structpar,CISTFRM1,CISTFRM2 结构等。在实现数据流解码方面,我们更关

9、心 CISTEIM2 数据帧结构及其 成员 CISTHEAD、CISTFRM1、CISTFRM2 结构,因RCVPAR*unsigned int cnt,unsigned short cmd)par data_ct = cnt;par cmd = cmd;为数据的解码和重新封装需要用到 CISTFRM1、CISTFRM2 的 数 据 及 CISTHEAD 的 部 分 成 员 信息。其中 CISTHEAD 结构定义及注释如下:typedef struct par chk = ( ( par data _ ct16) ( par data _ ct 0xFFFF ) par cmd) ;char

10、Flag8; / /0x000000091Dprintf( data: % x,cmd: % x,check: % x n,par data_ct,par cmd,par chk) ;/ / 置获取实时数据的具体命令,如需要其他 命令,根据命令集复制ac_cmd( par,0,1) ;/ / 发送命令到数据采集器序号char StaName5 ; / /0x08FOG台站代码char Mode2; / /0x0d测项类型传感器01BAchar Sensor2 ;/ /0x0f类型char Direct; / /0x11通 道Z / N / Etcp_ send _ to ( fd,( unsi

11、gnedsizeof( par) ) ;* )par,代码charchar NetName2 ;台网/ /0x12GD网络数据流接口TDE 324CI 网络数据流接口结构很多,如名称1 3DWORD UTCTm; / /0x14数据包的起始63第 4 期吴华灯等: TDE 324CI 数据采集器强震实时数据流格式及解码过程浅析UTC 时间DWORD列号格式分析。图 1 是大小为 512 字节的一个数据包,从图 上很容易看出数据头段 CISTHEAD 中的 是长 度为 8 个 字 符 的 Flag,值 为 0000091D,起 止 为DataCt;/ /0x1d数 据 包 的 序WORD Cou

12、nt; / /0x1bWORD Total; / /0x1e开始的点记数;该压缩帧数据个数0x00 0x07。是长度为 5 个字符的台站代码,WORD ADRate; / /0x20WORD MeaData6;WORD StatusPar; CISTHEAD;采样速率用变量 StaName 表示,值为 FOG,空白处用空格填满,起止为 0x08 0x0c。是测项类型 Mode,00为测震,01 代表强震,该数据帧的 Mode =“01 ”,起止为 0x0d 0x0e。 是 传 感 器 类 型,用 变 量Sensor 表 示,Sensor “BA ”,起 止 为 0x0f=网络数据流包 CIST

13、EIM2 数据结构定义及注释如下:typedef struct CISTHEAD Head;0x10。是通道代码,用变量 Direct 表示,Direct=N ,起 止 为 0x11。 是 台 网 名 称,用 变 量NetName 表示,NetName =“GD”,起止为 0x12 0x13。 是数据包的起始 UTC 时 间,用 变 量CISTFRM1 Frm1;第一个压缩包UTCTm 表示,UTCTm =“60 50 90 4d 38 43 cb”,/ /0x40CISTFRM2 Frm26 ;/ /0x802 7个 压起止为 0x14 0x1a。是开始的点记数,用变量Count 表示,Co

14、unt = 0x3e,起止为 0x1b 0x1c。是数据包的序列号,用变量 DataCt 表示,DataCt =0,起止为 0x1d; 是该压缩帧数据个数,用变量 Total 表示,Total = 0xcd = 205,起止为 0x1e。 是 采样 率,用 变 量 ADRate 表 示,ADRate = 0x64 =100,起 止 为 0x20。 此 外,数据头段还包含 MeaData 和 StatusPar 的数据信息; 压缩数据区采 用了修正的 Steim2 压缩算法,第一个压缩包的起缩包 CISTEIM2;STFRM1 数据结构定义及注释如下:typedef struct DWORD W

15、0; / / 状态字int X0;/ / 数据起始int Xn; / / 数据结束BYTE Dx52; / / 差分数据 CISTFRM1;CISTFRM2 数据结构定义及注释如下:typedef struct 止地址是 0x40 到 0x70,当中的是 W0 ,W0 包含 16 个 2 位的编码位 C0 到 C15 。是向前积分常数 X0是反向积分常数DWORD W0;BYTE Dx60; CISTFRM2;/ / 状态字/ / 差分数据Xn ,后面每 4 个字节分别是 W3 到 W15 。2 7 个压缩包起止地址是 0080 到 01f0。该算法中,Ck =002 时,同 Steim1,特

16、殊之处是 Wk 包含非数据信 息。Ck = 012 时,同 Steim1,Wk 包含 4 个 1 字节差2TDE 324CI 的网络实时数据流格式TDE 324CI 的网络实时数据流格式有每帧值。Ck = 102 或 Ck = 112 时,要看“细解码”dnib,传输数据流格式和每秒传输数据流格式两种,每秒传输的数据流格式与每帧的数据流格式基本相 同,唯一不同的参数在于每秒传输的数据个数是 确定的,而帧数不确定1。每帧传输数据流格式 就是上述的 CISTEIM2 数据结构,每帧实时数据 包由数据头段、第一个压缩包数据和 2 7 压缩包 数据三部分组成。数据头段的结构如 1 3 节中的 CIST

17、HEAD 所 述,第一个压缩包数据就是 CISTFRM1,2 7 压缩包数据就是 CISTFRM2 部 分。以下面图 1 实际帧数据包为例,作一具体的即 Wk 高端的 2 位来确定差值的数目和位数。如表 2 所示:TDE 324CI 网络实时数据流解码的3实现终端程序首先按照 TDE 324CI 的 TCP / IP 网络通信协议与数据采集器建立通信连接,接着 用 TDE 324CI 的命令控制字启动采集器实时数 据流的输出,最后根据 TDE 324CI 网络数据流 接口,获取 512 字节的数据包,按照网络实时数据,cb fb ff fffb fa ff ffff ff ff 03图 1 每

18、帧传输数据流格式包的起始位置,进而根据每帧传输数据流格式解码出头段的信息。在找数据包起始位置的程序 中,用到了 Flag 中的前七位的数字和第八位的 “D”字符,用到了 Staname,还用到了 Direct 的值 作为判断依据。流格式解码数据头段信息和数据区的数据。3 1数据头段的解码在 TCP / IP 网络通讯过程获取的数据包,需要找出 512 字节大小的每帧传输数据包,方法很多,这里采用数据头段固有的字符特征找出数据65第 4 期吴华灯等: TDE 324CI 数据采集器强震实时数据流格式及解码过程浅析表 1Wk 高端的 2 位确定差值的数目和位数drubWk无 dnib 细解码广义字

19、节00011011CkWk 含非数据信息,00无无无无如头段或 W0Wk 包含 4 个 8 位差值01无无Wk 包含1 个 30 位差值Wk 包含6 个 5 位差值无Wk 包含2 个 15 位差值Wk 包含7 个 4 位差值无Wk 包含3 个 10 位差值Wk 包含 2 个 16 位差值无10Wk 包含含5 个 6 位差值Wk 包含 1 个 32 位差值无11由于封装 MiniSEED 数据包的头段需要用到TDE324 CI 数 据 头 段 的 Flag、StaName、Direct、 NetName、UTCTm、ADRate 等信息,所以要解码出 这些成员信息。受篇幅所限,解码过程的核心代

20、码简单列举如下:据区是修正的 Steim2 格式,下面以求解第一个压缩包的 W3 中的原始样本为例,介绍一下压缩数据解码的原理过程,并且列举出核心的程序代码。由图 1 可看出,第一个压缩包的 W0 到 W15 的值用二进制表示如下:W0W1W2W3W16=00000011111111111111111111111111111111111111111111111010111110111111111111111111111110111100101110001110001000111110110100011101ret = find_sync_header( buffer,*出 512 字节数据帧的

21、起始位置idx = ret;len) ; / / 找= ( struct sthead_t *) ( bufferpkt_header+idx) ; / / 找出数据头memset( hdr station) ) ;hdr seq =获取 Flag 并且赋值=10000000001011111110000000100010W0 包含 16 个 2 位的编码位 C0 到 C15 ,即 C000,C1 = 00,C2 = 00,C3 = 11,C4 = 11,C5 = station,0,sizeof ( hdr =atoi ( pkt _ header flag) ; / /11,C6 = 11

22、,C7 = 11,C8 = 11,C9 = 11,C10 = 11,C11 = 11,C12 = 11,C13 = 11,C14 = 11,C15 = 11。strncpy( hdr station,pkt _ header sta _name,3) ; / / 获取 StaNameid0= pkt_header direct; / / 获取通道号hdr channel = change_to_idx( id) ;hdr sec = pkt_header utc_tm; / / 获取 时间信息hdr msec = pkt _ header count / pkt _header ad_rate

23、* 1000根据 Steim1 的压缩算法,向前积分常数 X0 =W1= 1285,反向积分常数 Xn =W2 = 1077。根据 Steim2 的压缩算法,可由表 2 的对应关系求得W3 中的差值数据。因为 C3 =11,dnib =10,所以 W3 中含有 7 个 4 位差值数据,即 d6 = 1101,d5= 0001,d4 = 1101,d3 = 1110,d2 = 0011,d1 =0010,d0 = 1110。在 X0 已知的情况下,根据原始时间序列样本的计算公式 X1 =X0 + d1 ,X2 = X1hdr sample _ raterate; / / 获取采样率=pkt _

24、header ad _+ d0 ,X3 = X2 + d1 ,X4 = X3 + d2 Xn =Xn 1 +dn 2 ,可以很容易求解原始时间序列样本,并且很容易用程序实现数据的解码。数据区的解码程序 如下:int decode_tde_data( ( int* ) CompDataInInt)数据区的解码在获取数据头段后,512 字节大小的数据帧 剩余部分就是压缩的数据区。TDE 324CI 的数3 2int wk,ck16,dnib,dx_data7;dnib,求解 wk 的差值及原始样本数据case 3: / / 根 据 细 解 码dnib,求解 wk 的差值及原始样本数据if ( ck

25、j= = 0 i 0)break;int forward_x = 0,backward_xint i,j,k;=0;intframeNum = 7,nsampleint p = 0,q = 0;int * samples,len = 64= 0;for ( i = 0; i frameNum;循环中包括 7 帧压缩数据包i + + ) / / 大CompDataInIntp + ; / / 求wk =取每个状态字的值for ( j= 15;j = 0; j )4结束语ckj=wk GET2BIT; / / 求取 C0 到 C15 16 个 2 位的编码位TDE 324CI 数据采集器强震实时数

26、据流解码程序,已经嵌入到新研制的强震数据传输终端 上,并且该终端被安装部署到广东省“十一五”立 体地震监测预报系统建设工程强震分项的所有强 震台站,实现了强震台站数据的实时传输,为实现 广东省准实时烈度速报奠定了基础。wk =2;for ( j= 1;j 16;j + + )switch ( ckj ) / / 根据 C0 到C15 16 个 2 位的编码位判断差值的数目和位数case 0: / / 如果是第一个数 据帧,则求向前积分常数 X0 和反向积分常数 Xn case 1: / / 求解 wk 中 4 个 8 位的差值及原始 样本数据 参考文献1珠海市泰德企业有限公司 TDE 324C

27、I 地震数据采集记录器使用说明书( 第三版) K 20102IRIS SEED Reference Manual,SEED Format Version 24 K 20103中国地震局地震信息中心等 DB / T 2 2003 地震波 形数据交换格式S 北京: 地震出版社,20032: / / 根 据 细 解 码caseThe Analysis of TDE 324CI Earthquake Data AcquisitionReal-time Data Stream Format And Decoding ProcessWu Huadeng,Ye Chunming( Earthquake Ad

28、ministration of Guangdong Province,Guangzhou510070,China)Abstract: This article introduced TDE 324CI data acquisition software interfaces step by step,including TCP / IPnetwork communication protocol,command control word and the network data stream interface A detailed analysis and description of real-time data stream format was given,finally through examples,the realization of real-time data stream decoding was discussed,the program code was enumerated as wellKeywords: Strong Motion; Data Acquisition; Real-time data stream; Decoding; Format

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号