




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 数据采集器强震实时数据流解码程序,已经嵌入到新研制的强震数据传输终端 上,并且该终端被安装部署到广东省“十一五”立 体地震监测预报系统建设工程强震分项的所有强 震台站,实现了强震台站数据的实时传输,为实现 广东省准实时烈度速报奠定了基础。wk =2;for ( j= 1;j 16;j + + )switch ( ckj ) / / 根据 c0 到c15 16 个 2 位的编码位判断差值的数目和位数case 0: / / 如果是第一个数 据帧,则求向前积分常数 x0 和反向积分常数 xn case 1: / / 求解 wk 中 4 个 8 位的差值及原始 样本数据 参考文献1珠海市
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小白菜发酵创新创业项目商业计划书
- 旅游科技创新中心创新创业项目商业计划书
- 家禽菜谱创作创新创业项目商业计划书
- 棉花历史博物馆创新创业项目商业计划书
- 水果可持续发展实施创新创业项目商业计划书
- 2025年文化旅游主题酒店建设项目可行性分析:技术创新与市场前景
- 土地撂荒课件
- DB64-T 1646-2019 岩土工程勘察标准
- 道路施工安全培训课件
- 新疆加快培育新质生产力
- 国家能源集团陆上风电项目通 用造价指标(2025年)
- 中医实证和虚证课件
- 纸箱系列验收标准及检验方法
- 2025年少先队辅导员技能大赛考试题库(含答案)
- 焊工复审培训课件
- 制作蛋挞教学课件
- LS-T8014-2023高标准粮仓建设标准
- 苏教版二年级数学上册全册教案
- 2025年福建漳州片仔癀化妆品股份有限公司招聘笔试参考题库含答案解析
- 密码应用安全性评估方案
- 课件 - 1.1 无人机的基本概念与发展历程
评论
0/150
提交评论