热门关键词:

CAN总线在野外地震数据传输中的应用

  • 该文件为pdf格式
  • 文件大小:316.45KB
  • 浏览次数
  • 发布时间:2014-08-15
文件介绍:

本资料包含pdf文件1个,下载需要1积分

Application of CAN bus in field seismic data transmissionChen Ying,Song Junlei,Wang DianhongfFaculty of Mechanical& Electronic Information,China University of Geosciences,Wuhan 430074,China)Abstract:Technology of transmission and networking on field seismic data is an important part of seismic network,which con-cems real-time and efectivity of seismic data.Design of connecting dispersed data acquisition nodes via CAN bus is detailed.A lo-cal seismic management system is constructed based on ARM microprocessor,muhitask operating system Linux as wel as applicationframework Qt,that simplifes management tasks of mobile station and makes it possible to construct larger-scale mobile station。

Key words:CAN bus;field communication;ARM;Linux;Qt目前,地震预报的信息来源主要依靠遍布在各处 的地 震观 测 台站所 监测 到 的地 震数 据 。随着地 震观测 台 网规模 日益扩大 ,实时性和数据量的要求也在不断提高。

除 了固定 的地 方地震 观测 台站 以外 ,还有 大 量野外 流动地 震观 测站 。流 动观测 站主要 对-定 时 间和地 区内的数据 进行 强化观 测 ,用 以提 高监测 能力 和异 常跟 踪能 力 ,并可 以针对 多种 物理量进 行采 集 ,将数 据反 馈到 台网 中心。因此 ,- 个 流动站 常 常会 布置 数量 众 多而 又分 散的采集 点 ,而如何 将这 些分 散 的采 集点 的数 据传 输到 地震台网,是野外流动观测技术的关键之-。

在野外复杂环境 中,通倡采集节点数据汇总至流动站 ,再 由流动站统-接入互联网。局部数据的传输方式可有多种选择 ,需要综合考虑距离、便捷性 、可靠性及成本 等多 种 因素 。本 文 中设 计 了-种采 用控制 器局域 网(CAN)进行地 震数 据传输 的方式 ,以满足分 散 的采集 点能在 相对 较广范 围 内进 行组 网通信 的要求 。

1系统框架本 文 以激 光 多 普 勒地 震 仪 项 目为 背景 进 行 系 统 构建 ,主要解决 将分 散 的采 集点 进行 集 中管理 的 问题 。 由于野外采集点数量众多 ,且安装位置较分散 ,若都与流动站之 间直接 组建局 部 网络连 接 ,则无 论采 用何 种组 网方式 ,都必将加重人力 、物力的投入,同时也会加重流动站的管理负担。因此 ,本文采用中继站的思想 ,将-定区域 内的采集 点利用 总线 方式 汇总 到主控 机 上 ,再 由主控机统 -将数 据传 输到流 动站 ,系统结 构 如图 1所示 。采用这种分布式结构,-方面可以降低采集点组建网络的成本 ,另- 方面 主控机 可 以取代 部分 流动 站 的功能 ,对本局域网内的采集点进行管理和监控 ,便于组成规模更大 的野外 流动站 。

系统采用的控制器局域网(CAN)是-种 ISO国际标准化的串行通信协议 ,能有效支持具有很高安全等级的分布实时控制。相对于其他总线 ,CAN总线具有传输距基金项 目:国家 自然科学基金项 目(61271274);湖北省 自然科学基金项 目(2012FFB6412);中国地质大学(武汉 )中央高校基本科研业务费专项 资金优青基金项 目(CUGL100222);特色学科 团队项 目(CUG120119)34 欢迎网上投稿 .corn 《电子技术应用》2013年 第39卷 第9期 图 1 系统 结 构 图离远 、速度较快 、抗干扰能力强 、介质简单 、可靠性高等优势l2~1,适合野外无人值守的环境 。

2采集节点的 CAN通信实现项目中采集点的主控芯片采用 TI公司 C54系列 DSP,因芯 片不 带 CAN控制 端 口,所 以要 在 DSP平 台 上实 现CAN通信节点的设计。

2.1基于 DSP的传输节点设计项 目选取 SPI接 口的独立控制器 MCP2515作为总线控 制端 ,收发 器采 用带 有隔 离 的总线 收 发器 ADM3054,该芯片直接将隔离器和收发器集成到-起,省去了控制器与收发器之间的光耦隔离 ,同时也可解决控制器与收发器 之 间的 电平 匹配 问题 ,简化外 围电路设 计 。

将 DSP的多通道缓冲串行 口(McBSP)配置成 SPI兼容模式,这种模式下每-帧的长度是固定的。但 MCP2515的 SPI控制指令长度并不统- ,因此 ,采取折 中方案以最长 的指 令位数 来 配置 串行 口。

使用 SPI模式通信时 ,关键的问题是时序的匹配 ,因为 DSP的工作时钟频率远高于 SPI传输时钟频率 ,所以需要在读操作时加入足够长的延时。图 2中的(a)、(b)可 反 映 这 - 情 况 ,采 用 控 制 器 的 环 回模 式 进 行 测 试 ,DataSend数组 中存放 的是发送 的 8 B数据 ,RecvBuf数组 中存放的则是通过 SPI读扔收数据寄存 器得 到的Ilm, Ila舢回 DteSend 0x00。043E 0 9 [1 8 [2 7 3 5 I S 5 t [8 3 n 2日 R. f 0xooo044l9 [0] 8 1 .-- g 2 9 。

3 : 8 :4 ; : s : 8 :◆ [6] : 5 :T i- t !口鼻 - l II-t 。 爱 y.1u 霉目 DItts翻 OxODO043E [a 9 [1 8 2 丁3 B 55 46 3[T 2髫 Recuff .. Q O44190 : g :f1 : 8 :2 : T :3 : 8 :t : 5 :◆5 ; I : 8 : 3 :T ;- 量-。

匿囊 哺 - -嘲n li-(a)无延 时 SPI读操作的结果 (b)有延时 SPI读操作的结果图 2 连续读操作的结果《电子技术应用》2013年 第39卷 第9期值。图 2(a)是没有加入足够延时的读操作 ,从虚线框标出 的 数 据 看 出 ,读 操 作 在 时 间 上 发 生 了错 位 ,当前 的读操作实 际读到的是上-个指令传送 回来 的数据 ,而图2(b)在加入了足够长的延 时之后 ,能在时间上对应 。

2.2节点 的通 信策 略CAN协 议 所 采用 的对 报 文进 行 地 址 编码 的方 式 便于在 总线 上增 删节点 。在 本项 目中 ,由于各 个节 点都 只与主控机进行通信 ,所 以,充分利用 CAN报文帧 ID识别码 的特性 ,将 发 送 帧 的识 别码 、本 节 点 的编 码 以及 本节点接收滤波器的识别码相统-。而主控机的节点则可以读取所有总线上的报文 ,所采用的通信策略如图 3所示 ,这样 的设 计 实际上 就将 原先 总线 式 的拓 扑结构 转换成了类似星形拓扑的结构,便于主机管理所有节点。

图 3 通 信 策 略3主控制点的设计相对于采集节点单-的采集处理任务而言 ,主控机需要实现更多的功能 ,单任务的 MCU则无法满足要求。

因此 ,本文选用嵌入式微处理器 ARM11作为主控机的硬件平台 ,ARM处理器具有 丰富的外设接 口和 良好 的实 时控 制 性 能 ,无论 从 寻 址 空 间还 是处 理性 能 上 ,都要优于-般的单片机 ,适合充当小型控制 中心。

3.1 Linux下 CAN网络设 备驱 动的 实现项 目中移 植 了 Linux 3.0.1版 本 内核 作 为 软 件运 行的系统平台,内核会为驱动提供统-的接 口。在较新版本的内核中,CAN设备已经不再简单定义成字符设备 ,而是定义成网络设备 ,这更接近于 CAN是-种局域 网的本质 ,从而可以使用 Socket套接字操作 CAN设备 ,并使用内核提供的高级功能。

对 内核 已提供的 MCP2515的驱动文件进行修改以符合硬 件平 台 的实现 。通过 定义 mcp251xpfiv结 构体 来管理设备所有的信息 ,如下所示 :struet mep25 lx privstre et can-priv can;struet netdevice net:struet spidevice spi;;以上 3个结构体变量分别存放 了设备需要使用 的协议层、网络层和硬件层的相关信息 。通常,网络设备驱动模 块主 要包括 网络 协议 接 口层 、网络 设备 接 口层 、设备驱动功能层和网络设备与媒介层 4层[41,各部分拈在内核中的结构关系如图4所示。设备通过 SPI子系统35Embedded TechnologyMcP2515驱动网络协议接 口层Can- pr1v嗣络设备 网套 接 口层 络攀 net-deviCe 网 协 络- 议 设备驱动 设层 功能层 备net deviee- opS网络设备与媒介层 内核SPIsPi devi Ce 子系统图 4 驱 动 结构 关 系 图来实现硬件层操作,网络设备与 SPI设备之间的连接桥梁 是驱 动功 能层 struct netdeviceops,通过 它 向上 层提供网络设备的底层硬件操作接 口函数 :struct netdevice-ops mcp25 lxnetdev- ops .ndoopen mcp25 lx- open,.ndostop mcp25 Ix stop,. ndo-startxmit mcp25lx-hard-startxmit,;采用顶半部”和底半部”的机制来处理中断,可以解决在 中断中读写 SPI耗时的问题 ,这种机制将耗时过长的 中断程序 放到更 安全 的时 段 中运 行 ,以使 系 统能及时响应其他 的中断请求[51。因此 ,仅仅在中断函数中唤醒 -个处 理 函数 的工 作 队列 :schedulework(&priv->irqwork),而将真 正 的处 理程 序放 到这 个 工作 队列 中运行 ,以保证 系统 实时 响应 的性 能 。

运行驱动还需要 向内核注册必要的硬件信息 ,如晶振 频 率 (.oscilatorfrequency)、SPI总 线 号 (.bus-nun)、硬件中断号(.irq)等硬件信息。其 中设备名(.modal!as)必须要和驱动中定义的设备名相同,否则内核无法把这些信息传 递到驱 动 中。

struct mcp25 1xplatformdata mcp25 lx- info. oscillatorfrequency : 8000000,.board-specifc-setup mcp251x-ioSetup,;struct spi-board-info spi-mcp251x- info[ f .modal!as ”mcp2515”,.platform-data &mcp25 lx-info,.irqIRQ-EINT(16),. bus-num 1,,;3.2基 于 Qt的控制 应用程 序开 发上层应用程序是实现主控制点所有功能的入口,也36 欢迎 网上 投稿 .corn是人机交互的平 台。项 目采用跨平台的 C应用程序开发框架 Qt来 实现 图形化 用户 界 面程序 的开 发 ,其具 有良好 的适应性 和可移植 性161。

本系统中移植了 4.8.0版本的Qt库 ,如图 5所示。项目应用程序的主要框架通过窗体部件类 QWidget来构建。

为了使界面更直观,加入了对标签窗体类 QTabWidget的支持。同时,主控机的 Socket CAN通信功能由多线程来实现,多线程机制可以使 Ql程序在 同时运行多个阻塞式 任务 时 ,不 会影 响用户界 面 的响应 。

图 5 应 用程 序 框 架结 构子 线 程 类 RecvThrd主 要 实 现 对 CAN 口的 监 听 任务 ,并通 过信号-槽 机 制将数 据传 给主 线程 ,重写 虚成员 函数 void RecvThrd ::Yun加 载新 的线程任 务 。SocketCAN的使用类似于其他网络协议操作 ,主要包括建立套接字 、绑定端 口和监听等,不同的是 CAN通信不需要与对方建立连接,主要实现方式如下 :void RecvThrd::l"unn r- sksocket(PFCAN,SOCKRAW,CAN-RAW);recv-addr.canfamily AF-CAN;recv-addr.canifindex 0;bind(rv-sk,(struct sockaddr)&recv-addr,len);reevfrom(r、-sk,(void )&recvfame,sizeof(stmct canframe),0,(struct sockaddr &recv-addr,&len);l如图6所示,使用绘图类 QPainter在子窗口Graph中实 时显示 动态数据 曲线和坐标 。绘 制坐标 曲线时首先要使用 QPainter的视窗转换 函数 将 Qt中 默认 的 绘 图 坐标 原点从 屏幕 的左上 角移到左下 角。动 态 曲线 采用折 线方 式绘制 ,当曲线超过-定 宽度后 ,会实 时 向左平移。由于在 Qt中使用数 值 ID:.I l Data)61.122孕 1lI ni I r二V I i ltl ll lI Ii II I时间 曛 I 图6 主机控制界面专门定义的数据类型 ,所以 C中的通用数据类型都需经过特定转换后才能供 Qt使用和显示 。管理数 据和文件时使用流操作可有效减少系统调用次数 ,提高运行速度[71。

4测试 与总结将 Qt应 用程 序交叉 编译后 ,下 载到 ARM 平 台上运《电子技术应用》2013年 第39卷 第9期行 ,产生图 6中的标签式窗 口界面。在构造主窗体时传人 Qt::FramelessWindowHint参数 ,可以让界面不产生标题栏 ,使窗口界面能准确并完整地显示在液晶屏上。

当主线程检测到新 的地震采集节点号时 ,会弹出消息框通知用户处理 ,新节点会被加入每个子窗 口的设备列表中,或被丢弃。引入 Qt的互斥锁 QMutex机制 ,可以有效避免 因命令没有得到及 时处理而导致重复添加相同ID号的情况。在另外两个子窗 口中可以浏览接收的数 据 以及 管 理对应 节 点 。

测 试表 明 ,基 于 ARM平 台的 主控 机 可 以满 足 数据收 发 、实时 显示 、节 点监 控 以及异 常记 录等 多任 务要 求 ,在不影响与地震采集节点间通信的前提下 ,实现 良好的人机交互和实时控制性能,在整个网络系统中起中继站的作用 ,方 便 了流动 站对分 散 的地 震采 集 节点 的控 制 和管理。

本文设计 了-种采用 CAN总线通信技术在地震数据采集点与流动站之间进行数据传输的方式 ,利用 CAN总线通信传输距离长 、抗干扰能力强 、易于施工布线的特 点 ,以及 微处 理 器 ARM 优越 的实时 控制 能力 和 良好的通信能力 ,在地震采集节点与流动站之间构建中间控制点,以星形拓扑的方式将-定范围内分散的采集点集中控制。同时,通过在 ARM硬件平 台上构建 Linux多任务系统平台,采用 Qt嵌入式应用程序框架搭建人机交互界 面 ,实 现 了 良好 的实 时控 制和 管理 功 能 。这 种 基 于CAN总线和嵌入式技术的地震数据传输方式 ,既便于野外 环境 中 网络 的组 建和 拓展 ,也有利 于减 轻 流动站 的管理 任务 。

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败