分析仪器CAN网络通信设计

发布者:CrystalRose最新更新时间:2014-03-05 来源: elecfans关键字:分析仪器  CAN  网络通信 手机看文章 扫描二维码
随时随地手机看文章

  基于单片机(80C196)或微处理器(DSP、ARM 等)的多组分气体分析仪采用功能强大的CPU,可实时快速测定各种燃烧设备的各项热工参数。根据测量数据,通过自动调节装置调整风量,保持适当的空气/燃料比,使燃料系统达到最佳运行状态,以获得最高的燃烧效率和最低的燃料消耗。仪器还可以测定CO、SO2、NO、NO2、烟气黑度等参数,并配有液晶屏、键盘等外设。

  CAN(CONtroll Area Network)是国际上应用最广泛的现场总线之一,使用了一种串行多控制方通信协议,可以有效地支持分布式实时控制,并且具有很高的安全性和高达1Mbps的通信速率。

  一个包含PC 机和n-1(n≤110)个智能节点的CAN 总线网络结构图如图1 所示。

图1 n 个节点的CAN 网络结构图

  信息的传输采用CAN 通信协议,传输介质采用双绞线,如果需要进一步提高系统的抗干扰能力,还可以在控制器和传输介质之间加接光电隔离,电源采用DC-DC 变换器等措施。

  1 分析仪器CAN 网络应用层协议的制定

  CAN 的国际标准中只定义了物理层和数据链路层的规范,由于本项目构建的CAN 总线网络节点数目不多,所有节点都由项目组自行设计,不需要与国际标准设备进行接口,所以,这里根据本项目的具体情况,制定了一个简易的CAN 应用层协议。

  根据厂方要求,网络初步规划应至少可容纳16 个节点。上位机收集各分析仪器的信息,包括气体组分分析含量、出错信息和被测气体的一些参数,如温度、压力、流量等,也返回一些控制信息给智能节点。在每个分析周期从节点的气体组分分析结果送往主节点,主节点待收到所有待测组分含量后,将所有信息一并送往上位机。网络中的任一台分析仪器均可做为主节点或从节点,甚至在没有上位机的情况下也可以做为上位机。

  在CAN 系统中,以11 位(标准帧)或29 位(扩展帧)的标识符来标识数据的含义,标识符决定了信息的优先权和等待时间,同时也影响信息滤波的适用性。因而,合理、高效的信息标识符ID 分配方案是充分发挥CAN 总线性能的前提条件。

  分析仪器主控制器之一F2812 DSP 片上共有32 个邮箱,在SCC 模式下0-15 邮箱可用,在eCAN 模式下,32 个邮箱全部可用,可以很方便地实现主节点对从节点信息的接收和存储。故推荐采用主控制器为F2812 的分析仪器作为该网络中的主节点,选择eCAN 模式,使用标准标识符(11 位),对其进行如表1 所示的静态分配策略,即可满足上位机和主节点识别帧来源和帧意义的要求。[page]

  2 网络通信程序

  2.1 上位机端初始化

  上位机端主要完成对各分析平台分析结果的采集、显示,使用PC 机加CAN 通讯卡KPCI-8110。KPCI-8110 上集成了独立的CAN 控制器SJA1000。SJA1000 用于移动目标和一般工业环境中的区域网络控制(CAN),在使用前要先对其进行初始化。

  上位机显示界面采用适合快速开发的可视化面向对象高级语言VB 来编写。KPCI-8110CAN 适配卡提供.dll 驱动和.lib 库函数,通过在VB 程序中调用相关的驱动函数就可以实现CAN 适配卡的配置和数据的读写。

  上位机端接收数据的流程如图2 所示。

图2 上位机接口函数使用流程图

  数据接收到上位机之后保存在一个大容量的内存缓冲池内,用户只需实时通过函数CAN_ReadDataNum(mindex) 查询缓冲池内的数据量, 再通过函数CAN_ReadBlockData(mindex,num,obyte)及时读走保存即可。其中obyte 为接收数据起始指针。

  CAN_ClearBlock(mindex,num,obyte)为清空从obyte 指针开始的缓冲池空间。

  注意:由于SJA1000 CAN 控制器每个地址存储8 位数据,而F2812 内置CAN 控制器每个地址存储16 位数据,而且标准数据帧的标识符也不是从字节的起始位开始的,所以定义标识符的时候要按照不同控制器的要求来定义。例如F2812 内置CAN 控制器定义数据帧标识符为344 0000(bit28-bit18 为标识符位),SJA1000 独立控制器对应的标识符应为1A20(bit15-bit5 为标识符位)。

    2.2 分析仪器CAN 网络通信程序设计

  智能节点分析仪器端的编程采用 C 语言与汇编语言相结合的方式,采用结构化程序设计方案,可读可移植性好。流程如图3 和4 所示。

图3 分析仪器主节点程序流程图

  主节点在接收到从节点传送过来的数据后,在接收成功引起的中断处理程序中对数据进行处理,然后转存到主节点的发送邮箱中,等待发送给上位机。在进行数据处理的时候要把接收邮箱中的数据赋给中间变量,处理完后再把中间变量的值赋给发送邮箱,这个过程中要注意借助指针来完成。如下所示:[page]

  Mailbox = &ECanaMboxes.MBOX0 + n; // n 为邮箱号

  receiveboxl = Mailbox->MDRL.all;

  receiveboxh = Mailbox->MDRH.all;

图4 分析仪器从节点程序流程图

  3 实验结果及分析

  使用 KPCI-8110 的测试程序向分析仪器周期发送一帧数据时,查看测试程序和分析仪器存储器可以看出,分析仪器端正确地接收到PC 发送来的数据,CAN 网络运行良好。图5为自己开发的接收界面试验状态下成功接收到数据,分析仪器网络分析周期为20s,发送速率为100Kbps。

图5 上位机接收界面

  在对节点和上位机的通信进行试验的时候发现,在单独使用eCAN 模块发送和接收数据时,通信情况良好,发送和接收的帧数相同。

  需要注意的是,在运行DSP 多组分气体分析平台的整个软件程序时,在较短时间内要以较大速率发送大批量数据,故将A/D 采样之后的数据滤波和处理部分放在主程序中执行,尽可能减少A/D 中断服务子程序的处理时间,这样就可以减少对CAN 发送中断程序的影响。

  经实验证明,以上分析和判断是正确的,网络通信状况良好,无丢帧现象。

  4 总结

  该网络通信系统在试验中得到了良好的效果,满足了多组分分析仪器的设计要求。

关键字:分析仪器  CAN  网络通信 引用地址:分析仪器CAN网络通信设计

上一篇:基于MR16单片机的UPS设计
下一篇:实数FFT算法的设计及其C语言实现

推荐阅读最新更新时间:2024-03-16 13:37

基于DSP的分析仪器CAN网络通信系统
  0 引言   现代流程工业中,多组分分析仪器成为必不可少的环节。常用的在线分析仪器有工业色谱仪、光谱分析仪等。工业色谱仪在流程工业生产和环保领域得到广泛应用,但是其分析周期长,不易实现直接质量控制;拉曼光谱分析仪分析周期短精度高,但是成本太高,所以尚未被推广。因此,实验室研制开发了基于80C196和DSP的多组分气体分析平台,通过不同传感器的组合对样品中不同组分进行检测,实现了分析周期短、精度高,成本低等目标的统一。由于每台组合式分析仪器一般只能分析2-4个组分,为了实现更多组分的测量,同时实现各个分析仪器之间或分析仪器与上位机之间信息的交互,这就有必要构建基于多组分气体分析平台的CAN总线网络。   CAN(Contro
[嵌入式]
飞思卡尔微控制与MSCAN ----自学笔记
概述 飞思卡尔半导体是全球最大的半导体公司之一。 飞思卡尔是车用半导体微控制器(MCU)领域排名第一的供应商。 飞思卡尔在业内提供最高质量的Flash存储器。 飞思卡尔的微控制器按CPU字长分为8位、16位和32位。 飞思卡尔微控制器 飞思卡尔8位微控制器MC9S08DZ60 它在一个单芯片上提供了更多的存储器和组件。 S08DZ系列是S08D系列中的旗舰号,提供了飞思卡尔最低成本的内嵌CAN的微控制器,并且将内嵌CAN,内嵌EPROM和片上仿真/调试模式结合在一起,该单片集成了所有的功能,设计人员可以便捷地转向其设计流程。 MC9S08DZ60系列器件主要用于需要融合CAN网络和内嵌的EEPROM的应用中,它有助于帮助用
[单片机]
基于CAN总线的模糊PID张力控制系统
引言     目前,CAN(controller ai\'ca net)总线技术与PID技术作为一种成熟的技术被广泛的应用于工业、纺织、汽车等领域。CAN总线技术又称控制器局域网技术,是一种多主方式的串行通信总线技术,具有灵活方便、通信速率高、抗干扰能力强、可靠性高等优点,而被广泛应用于工业远距离数据采集与控制过程中。     PID技术作为一种目前广泛应用的成熟技术,具有稳定性高、使用方便等优点,被广泛应用于流量、温度、液位控制等领域。但由于PID控制在受到外界干扰时,很容易导致超调过大甚至引起震荡等缺点,从而使得该系统的动态性能及鲁棒性变差。     本文通过结合CAN总线技术与模糊PID控制技术很好的解决了纺织机
[嵌入式]
can总线(二)--如何测量can总线的波特率
这两天在研究车载can总线,因为对于车上的can总线的接口以及波特率没有对应的资料可查(不同的车接口都不一样,波特率也可能不同), 做一想要从车上测出can总线上的数据还不太容易。 于是我首先使用示波器(我使用的示波器型号是TDS 220)来找出汽车上can总线的接口,然后测出can总线的波特率,测量波特率的步骤如下: 1、将示波器的两个接口(接地和探头)分别接在can总线的两条线(CAN_H和CAN_L)上,这里需要注意如果CAN线上需要接一个120欧姆的负载电阻,否则波形是不规整方波,接上负载之后才是规整的方波。 2、此时如果can线上有数据,则会在示波器上显示出方波如图1所示。(这里使用示波器的RUN/STOP按
[测试测量]
<font color='red'>can</font>总线(二)--如何测量<font color='red'>can</font>总线的波特率
CAN总线与LIN总线的终端配置方法
1、CAN总线   CAN总线的测试和使用过程中,为了保证信号反射不至导致通讯失败,传输线上必须添加匹配终端。有多种方法配置CAN硬件,主要取决于你硬件的物理层:高速,低速,单线还是软件可配的。 (1)高速CAN:对于高速CAN,一对信号线的每根线(CAN_H和CAN_L)都必须添加120欧姆的匹配电阻,这是因为CAN总线两个方向都有数据流。具体做法就是在每一个CAN终端(多个 设备 时只需在最终端的 设备 )的CAN_H和CAN_L上跨接一个120欧姆电阻(实际操作时我试过120欧姆左右的都可用)。 (2)低速CAN:对于低速CAN,网络上每个设备的每条数据线都需要一个终端电阻:R(RTH)接在CAN_H上,R(RTL)接
[嵌入式]
STM32 | STM32F429的USB有坑?
最近某项目需要用到USB与CAN: 拿到这样的需求,我们当然是先得保证通讯正常。于是我找了一个USB例程与一个CAN例程,分别调试验证。 经过几番折腾已经保证了USB与上位机能正常通讯了,也能保证了CAN的正常收发(拿了两块开发板做验证)。 两头都没有问题了,再加上一些数据处理就差不多完成了。USB与CAN我都是第一次用,没想到那么顺利,美滋滋,正准备放松的时候,问题就来了。这是一个整体的东西,最终都要把这两部分集合起来吧。 我把CAN工程里关于CAN的部分移到USB工程里,这时候CAN竟然用不了了。这时候我就开始在怀疑自己是不是手贱误删了哪里了,于是重新来一遍,发现还是不行。 查了代码很久也没找出什么错误了,
[单片机]
STM32 | STM32F429的USB有坑?
研华携手Basler及Canonical 共探机器人发展的三大关键要素
研华嵌入式单板电脑机器人主题线上论坛圆满落幕 关键字:研华嵌入式单板电脑、机器人、机器视觉、AI、AI运算、物流仓储、无人工厂、自动化生产、AGV、AMR、AOI、光学检测、视觉导航 2022年5月,中国•深圳- 5月11日,研华科技携手合作伙伴Basler及Canonical成功举办“机器人发展的三大关键:视觉、神经与大脑”主题在线论坛,与大家共同探讨机器人发展的三大关键要素,本文带您回顾会议精彩内容! 根据Omdia/HIS 2021年的市场调查报告指出,到2024年,整体移动机器人(AGV/AMR)的市场总值将达到60亿美金。其中使用传统磁条感应及QR code技术的移动机器人,整体市场价值占比各为约12
[工业控制]
研华携手Basler及<font color='red'>Can</font>onical 共探机器人发展的三大关键要素
虹科提供了一种高效、可靠的汽车CAN/LIN总线数据采集解决方案
现代汽车配备了复杂的电子系统,CAN和LIN总线已成为这些系统之间实现通信的标准协议,为了开发和优化汽车的电子功能,汽车制造商和工程师需要可靠的数据采集解决方案。基于PCAN和PLIN设备,虹科提供了一种高效、可靠的汽车CAN/LIN总线数据采集解决方案,旨在帮助您轻松实现数据采集和分析,为您的汽车创新项目提供支持。 一、 汽车总线数据采集 1. 什么是汽车总线数据采集? 汽车总线数据采集是指从汽车的各种电子控制单元和传感器中获取数据,这些数据可以用于监测、分析和控制车辆的各种系统和功能。 在现代汽车中,使用了许多不同类型的传感器和控制器,用于监测和控制引擎、传输、底盘、安全系统等各个方面,这些传感器和控制器之间通过总线系统进
[嵌入式]
虹科提供了一种高效、可靠的汽车<font color='red'>CAN</font>/LIN总线数据采集解决方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved