首页资源分类嵌入式开发嵌入式系统 > CAN总线技术及其在船舶结构安全监测系统中的应用.pdf

CAN总线技术及其在船舶结构安全监测系统中的应用.pdf

已有 458949个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

文档信息举报收藏

标    签: can总线总线技术技术船舶结构

分    享:

文档简介

CAN总线技术及其在船舶结构安全监测系统中的应用.pdf

文档预览

第 32 卷  第 2 期 2006 年 5 月 大连海事大学学报 Journal of Dal ian Maritime University Vol. 32  No. 2 May  2006 文章编号 :100627736 (2006) 0220017204 CAN 总线技术及其在船舶结构安全监测系统中的应用 Ξ 须文波 ,杨朝龙 ,施小勇 (江南大学 信息工程学院 ,江苏 无锡  214122) 摘要 :提出基于 CAN 总线与 Windows CE. N ET 嵌入式操作系统来建立船舶结构安全监测系统. 重点论述了 数据采集模块硬件接口设计及硬件抗干扰措施的设计. 此外 ,描述了 Windos CE. N ET 下的 CAN 卡驱动程序 的设计要点. 实验证明基于 CAN 总线的船舶结构安全监测系统在网络拓扑结构上架构简单 、可扩展性强 、运 行可靠 、对节点请求响应实时性强的特点 ,能够满足实验室测试和船舶航行中对船舶结构应变变化的监测要 求. 关键词 :船舶工程 ;CAN 总线 ; 船舶结构安全 ;数据采集 中图分类号 :U 664. 8 ; TP 274. 2          文献标识码 :A 1  船舶结构安全监测系统构成 船舶结构安全监测系统可分为如图 1 所示几 部分[1 ] . 基于 Windows CE 的主机应用系统完成 数据的收集 、处理 、报警 、船舶安全分析与图形化 的实现是设计的重点 ,下面将对该方面的内容进 行论述. 2  基于 CAN 总线的数据采集模块 的设计 图 1  船舶结构安全监测系统构成 显示等功能 ;CAN 适配卡流接口驱动程序实现底 层 CAN 网络节点与主机之间的通信 ; CAN 适配 卡控制器和数据采集模块 CAN 控制器完成 CAN 协议处理的硬件化 ,确保 CAN 网络通信的可靠 性与实时性 ,数据采集模块固件程序完成参数设 定 、零点校准 、数据采集 、与 CAN 总线的通信功 能. 其中数据采集模块的设计与 CAN 通信功能 2. 1  数据采集模块的硬件确定 数据 采 集 模 块 在 硬 件 实 现 上 采 用 独 立 的 CAN 控制器芯片 、独立的微控制器 、独立的 AD 转换器的硬件方式来实现数据采集模块功能. 该 方案设计上较为灵活 ,也便于系统以后二次开发 升 级. 其 中 CAN 控 制 器 选 用 Philips 公 司 的 SJ A1000 ,其兼容 PCA82C250 并支持 CAN2. 0B , 是一款功能强大的 CAN 控制器 ; 微控制器选用 SST 公司的 SST89C54 单片机 ,该单片机的特点 是与 80C52 在指令集和引脚功能上完全兼容 ,并 扩展了程序存储器到 20 KB ; 在数据存储器方面 添加了一个 8 K 的 62C64 芯片 ,来满足采集数据 以及 CAN 收发缓冲区的需要 ; AD 转换器采用 AD574A , 该转换器采用逐次逼近模数转换方式 , 分辨率为 12 位 ,转换时间为 35 μs ,转换误差 ≤ Ξ 收稿日期 :20052122211 作者简介 :须文波 (1946 - ) ,男 ,江苏无锡人 ,教授 ,博士生导师 ; E2mail : 25ycl25 @163. com.   1 8                大 连 海 事 大 学 学 报              第 32 卷   1 L SB ,在不带采样/ 保持器的情况下 ,支持的最 大频率为 1. 5 kHz ,完全能够满足船舶结构应变 采样的需求 ;由于支持每个数据采集模块负责 4 个采样点的数据采集 ,因此选择 AD7502 模拟开 关. 2. 2  数据采集模块的硬件设计 数据采集模块电路的设计是围绕微控制器的 接口设计展开的[2 - 5 ] ,图 2 为数据采集模块的结 构原理图 (其具体的接口设计略) . 图 2  数据采集模块结构框图 2. 3  抗干扰设计[5 ] 为保证 CAN 网络可靠通信与防止数据采集 模块受到来自 CAN 总线的干扰 ,在硬件方面做 了以下几方面抗干扰设计[5 ] : (1) 采用 DC - DC 模块分别给 CAN 控制器 和 CAN 收发器 PCA82C250 供电 ;且 PCA82C250 的 CAN H 利 用 CANL 引 脚 上 一 个 5Ω 电 阻 与 CAN 总线相连 ,电阻起到一定的限流作用 ,从而 保护 PCA82C250 免受过流的冲击. (2) CAN H 和 CANL 与地之间并联两个 30 p F 的小电容 ,可以滤除总线上的高频干扰并且具 有一定的防电磁辐射的能力 ;另外 ,在两根 CAN 总线输入端与地之间并入 5. 6 V 的瞬态电压抑制 ( TVS) 二极管 ,其响应速度远小于 1 ns ,当 CAN 总线窜入瞬间高压干扰时 ,通过 TVS 管与电源地 形成短路起到一定的过压保护作用. (3) 在 SJ A1000CAN 控制器与 CAN 收发器 PCA82C250 之间使用光电隔离 6N137. (4) CAN 通信线采用屏蔽双绞线 ,在布线上 与强电线路分开走 ,避免线路干扰. 3  数据采集模块的软件设计 数据采集模块的软件设计以模块化的方式实 现[2 - 4 ] ,主 要 功 能 模 块 包 括 : 微 控 制 器 初 始 化 、 CAN 控制器初始化 、报文发送和报文接收 、通信 协议处理 、数据采集与处理 、实现 CAN 总线错误 处理 、总线关闭处理 、接收滤波处理等. 下面对模 块的工作流程 、报文收发的软件设计进行描述. 3. 1  数据采集模块工作流程 数据采集模块工作流程 :模块上电后自动同 时复 位 微 控 制 器 SST89C54 和 CAN 控 制 器 SJ A1000 ,当 SST89C54 复 位 并 初 始 化 完 成 后 , SST89C54 固 件 程 序 将 选 通 SJ A1000 , 设 置 SJ A1000 进入复位操作模式 , 然后对其初始化 , SJ A1000 初始化完毕后 ,再设置到工作操作模式 , 此时即可建立与 CAN 总线的通信 ,数据采集模 块进入工作状态. 数据采集模块进入工作状态后 , 进入主循环对模块的状态输出量进行不断刷新 , 当发生来自 CAN 控制器或 AD 转换器的中断时 , 程序转入中断执行处理程序. 微控制器 SST89C54 的初始化包括设置 AD 转换器与 CAN 控制器中断优先级的确定 ,设置 默认的应变信号的采样率 、采样信号的滤波方式 、 采样数据的传输方式 (批量传输/ 实时传输) ,设置 默认的应变上下阀值以及收发报文缓冲区 ,此外 对于程序运行状态的一些变量也在这里初始化. CAN 控制器的初始化在其复位模式下进行 , 按设计需求设置时钟分频寄存器 ( CDR) 、验收代 码寄存器 (ACR) 和验收屏蔽寄存器 (AMR) 、总线 定 时 寄 存 器 ( B TR0 和 B TR1 ) 、输 出 控 制 器 (OCR) . 初始化完毕 ,通过模式寄存器将 CAN 控 制器设置为工作模式. 3. 2  CAN 报文收发 图 3 描 述 了 CAN 报 文 收 发 流 程. 对 于 J A1000 上多个中断源同时发生的情况 ,微控制器 响应 SJ A1000 的中断时 ,首先读出 CAN 中断寄 存器中的值 ,然后按如下次序依次进行处理 :唤醒 中断 > 接收中断 > 发送中断 > 仲裁丢失中断 > 数 据溢出中断 > 总线出错中断 > 错误警报中断 > 错 误消极中断. 因此在报文收发中断处理前后 ,将分 别对其他中断源进行判断 ,若发生则对其处理. CAN 报文发送在 CAN 报文接收中断处理或 AD 转换器中断处理中将发送数据写入初始化时 设定好的发送缓冲区 ,并使能发送中断使能 ,置位 发送标志 ,然后由 CAN 报文发送中断处理程序 完成剩下要发送的数据 ,在发送报文结束时 ,复位 发送标志 ,关闭中断使能. CAN 报 文 接 收 要 比 报 文 发 送 复 杂 一 些. SJ A1000 判断来自 CAN 控制器的中断时接收中 断后 ,从接收缓冲器中读出第一个报文放入定义 第 2 期      须文波 ,等 :CAN 总线技术及其在船舶结构安全监测系统中的应用      19  的报文接收缓冲区 (位于数据存储区 ,微控制器初 始化 时 设 定) 后 , 置 位 命 令 寄 存 器 ( CMR) 中 的 RRB 位释放接收缓冲器 ,释放接收缓冲器的动作 使 SJ A1000 自动清除接收缓冲器状态位和接收 中断标志位 ,然后查询 CAN 状态寄存器检查接 收缓冲器的状态位 ,如果状态位被置位 ,说明 RX2 F IFO 未读取的报文已经放入到接收缓冲器窗口 , 可以直接从接收缓冲器中取走新的报文 ,当读取 到设定的字节数的数据或 RXF IFO 中的所有报 文被读出 ,接收中断处理才处理完毕. 4. 1  数据收发功能   图 4 为 CAN 适配卡数据收发流程及 CAN 驱 动各函数的作用. 图 3  CAN 报文收发流程图 4  Windows CE. N ET 下 CAN 适配 卡的流接口驱动程序设计[6 ]   Windows CE . N ET 是一个 32 位 、多线程 、多 任务抢占式的实时嵌入式操作系统 ,具有高度模 块化特征. Windows CE. N ET 提供了两种驱动模 型 :内建 (Built2in) 驱动程序和流接口 ( Installable) 驱动程序. 内建驱动程序适于集成到基于 Win2 dowse CE. N ET 系统下的设备 ,其特点是响应快 , 如电源驱动 、显示驱动 ,它们由 GWES 统一管理 和加载 ;而流接口驱动模型主要用于对外部设备 的驱动设计 , 便于统一管理 , Windows CE. N ET 用文件系统对流接口驱动进行封装 ,向上层提供 统一的接口 ,应用程序通过标准的流接口实现对 不同设备访问 ,从而使上层应用程序的设计简化. CAN 适配卡驱动程序采用流接口驱动模型. 主机系统采用的 CAN 通信硬件是深圳蓝天 公司的带 PC/ 104 接口的 PCM9880CAN 适配卡 , 带有 两 个 独 立 CAN 接 口 , CAN 控 制 器 采 用 SJ A1000 ,支持中断和查询访问 ,最高支持 1 Mb/ s 传输率. 图 4  CAN 卡的数据收发流程 4. 2  CAN 驱动数据接收流程 数据接收是 CAN 驱动设计中最 复 杂 的 部 分 ,在中断服务线程 ( IST) 中实现 ,其数据接收流 程如下 : (1) 等待接收中断产生 ,如果等待超时 ,则认 为此阶段的报文传输结束 ,将通知应用程序将接 收缓冲队列中的数据取走 ,并将中断等待设定为 无限等待 ; (2) 如果接收中断产生 ,则认为报文正处于连 续传输过程中 ,因此将中断等待时间恢复为预设 值 ,并且 CAN 驱动从 CAN 控制器的接收缓冲器 读取数据放入驱动程序设定的接收缓冲队列 ,释 放 CAN 控制器中的接收缓冲器 ; (3) 判断该接收缓冲队列接收帧数目是否已 经等于或超过设定的临界点 ; (4) 如果达到 ,则发送读接收缓冲队列的事 件 ,通知流接口函数 CAN- Read 取走数据 ;否则直 接进入 e , 注意 CAN- Read 与 IST 将对接收缓冲 队列互斥访问 ,通过临界区来实现 , IST 每次向接 收缓冲队列写报文之前 ,要锁定它 ,写完后释放. 同样 CAN- Read 在从接收缓冲队列读取数据前也 要锁定接收缓冲队列 ,读取完毕释放. (5) 检查 CAN 状态寄存器中的接收状态位 , 如果接收状态位被置位 ,说明有新的报文到了接 收缓冲器 ,则跳到 b ,否则跳到 a ,继续执行. 4. 3  数据接收的实时性考虑 由数据接收流程可知 ,当接收数据达到接收 缓冲队列的临界点或等待超时时 ,才通知应用程 序取走接收缓冲队列中的数据. 为了满足系统的 实时要求 ,对接收缓冲队列的临界点和中断等待 时间的设置可以通过下面的算法实现. (1) 确定接收缓冲队列大小. 当程序设置传   2 0                大 连 海 事 大 学 学 报              第 32 卷   输率 v t 时 ,首先计算出接收数据速率的最大值 v r-max ,即 v r-max = v t/ 8 ( b/ s) ,然后确定接收缓冲 队列大小为 0. 5 s 内满负荷接收到的报文所占用 的空间 ,并为接收缓冲队列分配空间 ,如 1Mb/ s 的传输率下的接收缓冲队列所占空间约 64 KB. (2) 确定系统响应时间. 设系统要求对 CAN 节点请求的最快响应时间为 t r ,如果系统没有明 确要求 ,则默认取 10 个报文传输时间 ,如1 Mb/ s 传输率下 10 个报文传输时间约为 70 ms. (3) 根据最快的响应时间 Tr 和接收数据速 率的最大值 v r-max ,得默认的接收缓冲队列的临界 点 : S = [ v r-max ×t r ×0. 5 ] , S 至少取 1 个报文长 度 ,[ ]为取整. (4) 默认的中断等待时间 tw 设定为 tw = [ t r/ 2 ] , tw ≥7 ms , [ ]为取整. 实验表明采用上述方案能够有效提高不同传 输率下的接收报文的响应速度. 但是由于报文传 输过程中 ,相邻的两个接收报文之间的时间间隔 具有不确定性 ,而上述的算法得到的接收缓冲队 列的临界点是在假设接收的报文之间不存在时间 间隔的情况下得出的 ,因此对于实时性要求严格 的场合 ,需要直接将接收缓冲队列的临界点设置 为一个报文长度 ,这样就去除了两个接收报文之 间时间间隔的不确定性 ,确保满足实时性要求. 此 外 ,对于接收报文具有一定规范的应用场合 ,可以 编写专用的 CAN 驱动来满足实时性要求. 参  考  文  献 : [ 1 ]贾宝柱 ,任  光 ,王冬捷 ,等. 船舶机舱综合监控系统可靠性分析及设计[J ] . 大连海事大学学报 ,2003 ,29 (1) :27230. [ 2 ]CAN bus 应用方案[ EB/ OL ] . [ 2005210225 ] . http :/ / www. zlgmcu. com. [ 3 ]SJA1000CAN 控制器应用指南上传[ EB/ OL ] . [ 2005210225 ] . http :/ / www. zlgmcu. com. [ 4 ] Philips Semiconductors Data Sheet SJA1000[ R ] ,1997. [ 5 ]阳宪惠. 现场总线技术及其应用[ M ] . 北京 : 清华大学出版社 ,1999 :1542160. [ 6 ]徐  平 ,高  莉 ,蒋  健. 嵌入式环境下 CAN 卡驱动程序设计[J ] . 计算机应用 , 2003 (4) :7210. Design and implementation of vessel structure safety monitoring system based on CAN bus XU Wen2bo , YAN G Chao2long ,SHI Xiao2yong ( School of I nf orm ation Technol . , Sout hern Yangtze U niv. ,Wuxi 214122 ,China) Abstract :The purpose of vessel st ruct ure safety monitoring system is to build a system of realtime evaluation of vessel st ruct ure safety and realtime monitoring for st rain of vessel st ruct ure. The system also provided t heoretical research of vessel st ruct ure safety wit h ample data resource. In order to seek an simple and reli2 able met hod to implement vessel st ruct ure safety monitoring system , t he paper put forward a met hod which integrated CAN bus technique wit h Windows CE. N ET embedded operating system technique. Emp hasis was put on t he design of interface circuit of data collection module based on CAN bus and hardware anti2 jamming. In addition , key point s of t he design of CAN driver under Windows CE. N ET were described. Vessel st ruct ure safety monitoring system based on CAN bus has been proved by experimentation wit h char2 acters of simple topology ,st rong extension , better reliability at t he aspect of network topology and good re2 altime in response to CAN node , which meet s t he demand of monitoring vessel st ruct ure st rain in t he course of vessel sailing and experimentation in t he laboratory. Key words :ship engineering ; CAN bus ; vessel st ruct ure safety ; data collection

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。