当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引言液位遥测系统是油轮和化学品船的核心部分[1],直接关系到船舶在海上航行的安全性和可靠性。目前国内该行业还处于低技术的恶性竞争,要改变这种状况,只有通过提升技术水

引言

液位遥测系统是油轮和化学品船的核心部分[1],直接关系到船舶在海上航行的安全性和可靠性。目前国内该行业还处于低技术的恶性竞争,要改变这种状况,只有通过提升技术水平才能实现。本系统就是在此背景下进行研究设计的。

该系统是以ARM9为内核,在WinCE操作系统平台下,以CAN通信为基础,CANopen协议为规范,综合应用EVC编程、CAN通信、数据库、多线程等技术设计的一个智能液位遥测系统。

ARM9的工作频率最高为200 MHz,微处理器内置彩色图像处理电路,因此可以直接外接TFTLCD/VGA显示屏。

CAN(Controller Area Network)总线是一种多主从结构,具有报文仲裁,错误自检测、处理机制,较强的通信能力,较强的短路保护能力,通信方式灵活多样等优点。船舶液位遥测系统是一个局域网控制系统,选用CAN总线更能满足其传输的高可靠性[2]。

1 CANopen协议

CANopen最初由从事工业控制的CiA会员开发,由于CANopen是一种公共、开放、通用的协议,而且精练透明、容易开发,如今已经被接受为CAN高层协议的标准之一。[3]

 

图1 CANopen设备模块

一个CANopen设备模块可分为3部分,如图1所示。通信接口和协议软件用于提供在总线上收发通信对象的服务;不同CANopen设备间的通信都是通过交换通信对象来完成的, 这一部分直接面向CAN控制器进行操作。对象字典描述了设备使用的所有数据类型、通信对象和应用对象;对象字典位于通信程序和应用程序之间,用于向应用程序提供接口。应用程序对对象字典进行操作,即可实现CANopen通信。它包括功能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen通信;而功能部分则根据应用要求来实现。

在CANopen网络系统中每个节点都有唯一的一个对象字典,而且每个节点的对象字典都具有相同的结构;但具体的内容要根据不同的设备而定,包含了描述该设备及其网络行为的所有参数。CANopen协议还定义了4种报文(通信对象),用于对不同作用的信息进行处理,分别为管理报文(NMT)、服务数据对象(SDO)、过程数据对象(PDO)和预定义报文或特殊功能对象。

2 液位遥测系统总体结构

液位遥测系统主要实现2项功能:

① 对各舱的液位、温度、压力等进行实时监测;

② 当监测高于报警值时发出报警信号。

针对这2项功能,采用了CAN总线的网络拓扑结构,系统总体结构框图如图2所示。

 

图2 液位遥测系统总体结构

由图2可知,整个系统以CAN总线进行通信,然而CAN芯片只提供了开放系统互连参考模型(OSI)中的物理层和链路层功能,一般用户必须直接用驱动程序操作链路层。不能直接满足控制网络的组态和产品互连要求。为了以CAN芯片为基础构成完整的工业控制现场总线系统,必须制定相应的应用层协议,实现系统的组态、设备互连和兼容功能。下面分别介绍各部分的功能。

2.1 分布式处理单元DPU

DPU是采用模块化设计、具有通信功能的智能化远程I/O单元。DPU单元分布在船舱各处,作为传感器和执行器的接口,直接与传感器和执行器相连。各个DPU单元可以用两根普通的双芯屏蔽电缆(或双绞线等)连接到CAN总线上,将定时采集的各船舱液位高度、温度等各种实时数据发送到总线上。

目前,基于CANopen的DPU的各种模块(模拟量输入/输出、数字量输入/输出等)可以根据具体的监测点连接到网络中,完成液位、温度、压力等的监测。

 

图3 上位监测点结构图

2.2 上位监测点

在本系统中,上位监测点主要实现通信和应用两个方面功能,具体结构如图3所示。

ARM9的开发平台已将CAN驱动嵌入,根据CAN2.0协议,可以直接完成物理层和数据链路层的通信,因此,在WinCE操作系统下,实现CANopen通信,解析通信对象,调用应用程序,完成整个上位系统的CANopen通信。

3 CANopen通信的实现

3.1 CAN通信

CAN通信通过调用底层封装的接口函数实现,主要包含:

开端口CAN_StartChip;

关端口CAN_StartChip;

接收CAN数据CAN_GetNextReceivedFrame;;

发送CAN数据CAN_SendFrame。

具体通信流程如图4所示。

 

图4 CAN通信流程

3.2 CANopen通信

CANopen协议是CAN通信应用层的协议。通信标准定义了不同的通信对象,这些通信对象通过标识符(COB_ID)来进行区分。

网络管理报文(NMT):提供网络管理服务,例如初始化、错误控制和设备状态控制。NMT对象映射到一个单一的带2字节数据长度的CAN帧,它的标识符为0。在本系统中主要用于系统启动的初始化。

过程数据对象(PDO):过程数据对象用来传递实时数据,数据传输被限制在1~8字节,每个PDO有一个唯一的标识符。标识符具有优先级,遥测系统主要是对实时的液位等信息进行显示,大量的PDO数据进行实时传送。

服务数据对象(SDO):SDO的传送是有证实的服务,可靠性比较高,主要用于对系统中各节点的配置或信息的设置。

以上4种对象都有不同的优先级。对于接收到的报文根据其COB_ID进行解析,分送各不同的应用变量,即可实现CANopen通信。

4 应用模块实现

4.1 系统配置

本系统中采用了配置文件的形式增强配置的灵活性,配置文件是根据下位DPU中各模块、通道的现场分布汇总成的txt文件。首先,利用移动磁盘或者Remote File Viewer在PC机上载入配置文件。其次是读取工作,通过函数GetProfileString,根据不同的字段获取需要的内容。最后,对所获得内容赋给相应的变量,并进行显示更新。[!--empirenews.page--]

具体配置形式如图5所示。由图可知,可以对系统中模块的使用、舱名、信号类型、单位、范围、报警上下限、报警延时等进行设置。因此,在集控室就可完成基本的配制,大大减轻了工作人员的负担。

 

图5 系统配置

4.2 实时显示

为了实现实时、准确、生动地显示系统运行状况,在该模块中利用了文本加图形的方式。因为数据量较大,界面类型较多,切换频繁,故主要采用了动态创建控件的解决方法。

液位遥测系统主要完成各舱液位的实时显示。此外,还包括货舱的温度、压力,以及管路管道的压力等重要信息。

4.3 数据存储

在本系统中,数据存储主要完成的是对报警数据的存储和对舱容信息的监测,利用的是WinCE自带数据库系统。

系统存储的主要是报警数据,因此数据量比较小,采用自带数据库可以很方便地实现所需功能。此外,EVC4.0没有提供访问外部数据库ADOCE的接口。

4.4 实时打印

在本系统中实现了实时打印,即只要出现报警信息,立即将该信息进行打印输出;当故障排除后,重新进行打印,以便对数据进行保存分析。

5 结论

本文所研究的是基于CANopen协议,在ARM9的WinCE嵌入式开发平台上的船舶液位遥测系统软件。CANopen作为CAN总线的应用层协议,在船舶遥测系统中有着广阔的应用前景。

系统中CAN总线的应用大大提高了系统总体传输速率,双CAN机制更加增强了整个系统的容错能力,保证了船舶运行的安全性。整个软件系统实现了CANopen通信,完成了数据显示、存储、打印、报警,并使配置更智能,实验证明了其运行的可靠性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。

关键字: can总线 通信 电子控制

CAN总线和485总线都是常见的串行通信协议,它们在工业自动化、机器人控制等领域被广泛应用。本文将从物理层、数据传输方式、网络拓扑结构、通信速率和应用范围等方面比较CAN总线和485总线的区别。

关键字: can总线 485总线

CAN总线是一种串行通信协议,能有效的支持具有很高安全等级的分布实时控制 应用范围十分广泛,从高速网络到低价位的多路接线都可以使用CAN,主要运用于汽车电子航天等行业,使用CAN连接发动机的控制单元等汽车部件,CAN总...

关键字: can总线 can总线原理

史胜辉,在MTK工作了11年,一直在基带芯片的USB驱动领域做开发和验证。从最开始做USB2.0/3.0 IP验证和驱动开发到后面带领团队做上层协议驱动开发,以及跟硬件设计部门合作开发全新的USB硬件加速器。

关键字: 基带芯片 驱动领域 驱动开发

摘 要:启动装载程序是嵌入式系统的重要组成部分。文章结合在ARM平台上广泛使用的U-Boot,详细讨论了Boot Loader开发中用到的主要技术,分析引导程序的执行流程,提出了WinCE和Linux在ARM平台下...

关键字: 启动装载程序 U-Boot 嵌入式系统 WinCE Linux

摘 要:火车货运在高速发展的同时,也带来了越来越多的不安全因素,货运物资被盗是铁路货运事故的主要原因之一。 基于此,设计和实现了基于ZigBee和WinCE技术的火车货运防盗预警系统,用于解决站停、待编、待卸和运行途中...

关键字: 火车货运 智能防盗 Zigbee WinCE PDA软件

点击上方名片关注我们朱老师推荐语:此岗位为AIoT终身成长大会员同学提供的自己公司的岗位内推,总部在深圳,是一家专业从事闭路电视监控设备、会议摄像机的研发、制造、销售的高科技企业,有学过嵌入式课程或者海思项目的同学,想换...

关键字: 开发工程师 linux驱动 驱动开发

最近在学习MIPI接口的LCD驱动开发与调试,这里我主要用的是MIPI-DSI接口,它学习起来真的是太复杂了,特别是对于我这种很久都没写驱动来说更是头疼,但是头疼归头疼,工作咱们还是要完成的,那就只能硬着头皮往下肝吧!首...

关键字: MIPI 驱动开发 调试

关注、星标嵌入式云IOT技术圈,精彩及时送达来源|  Linux与SoC整理出了6种驱动开发时与设备注册、设备树相关的调试方法,彼此间没有优先级之分,每种方法不一定是最优解,但可以作为一种debug查找问题的手段,快速定...

关键字: 驱动开发

最近在学习MIPI接口的LCD驱动开发与调试,这里我主要用的是MIPI-DSI接口,它学习起来真的是太复杂了,特别是对于我这种很久都没写驱动来说更是头疼,但是头疼归头疼,工作咱们还是要完成的,那就只能硬着头皮往下肝吧!首...

关键字: MIPI 驱动开发 调试
关闭
关闭