Board logo

标题: 如何设计基于DSP的分析仪器CAN网络通信系统? [打印本页]

作者: yuchengze    时间: 2017-5-25 20:35     标题: 如何设计基于DSP的分析仪器CAN网络通信系统?

0 引言
现代流程工业中,多组分分析仪器成为必不可少的环节。常用的在线分析仪器有工业色谱仪、光谱分析仪等。工业色谱仪在流程工业生产和环保领域得到广泛应用,但是其分析周期长,不易实现直接质量控制;拉曼光谱分析仪分析周期短精度高,但是成本太高,所以尚未被推广。因此,实验室研制开发了基于80C196和DSP的多组分气体分析平台,通过不同传感器的组合对样品中不同组分进行检测,实现了分析周期短、精度高,成本低等目标的统一。由于每台组合式分析仪器一般只能分析2-4个组分,为了实现更多组分的测量,同时实现各个分析仪器之间或分析仪器与上位机之间信息的交互,这就有必要构建基于多组分气体分析平台的CAN总线网络。
CAN(Controll Area Network)是国际上应用最广泛的现场总线之一,使用了一种串行多控制方通信协议,可以有效地支持分布式实时控制,并且具有很高的安全性和高达1Mbps的通信速率。由于CAN具有多主站控制、无破坏性总线仲裁、可靠的检错和重发机制以及故障节点的判断和自动脱离等等显著优点,在富含噪声和其他要求苛刻的环境中得到越来越广泛的应用,而且其应用领域也在不断的扩大[1]。
1分析仪器网络结构
多组分气体分析平台基于过程分析仪器系统的物流和信息两通道所需的基本共性功能,系统采用模块化设计。各硬件模块具有独立结构,可适应不同分析传感器及其组合以及预处理装置的选择要求;软件系统则为检测信号的数据处理、仪器的自动诊断、自动标定的操作控制以及为与DCS间的信息通信提供支持[2]。
分析平台采用TMS320F2812作为处理器。TMS320F2812是TI公司推出的一款用于控制领域的高性能32位数字信号处理器,适用于实时数据处理,并集成了丰富的外设,如片上12位模数转换器(ADC)、SPI、eCAN等功能模块,可以方便地进行功能扩展。平台由数据采集模块、控制模块、开关量输入输出模块、人机交互模块以及通讯接口组成。
根据现场情况,通过不同传感器的组合对样品中不同组分进行检测,配合相应的软件实现不同的数据处理方法,构成组合式分析仪器,每台分析仪器可检测2-4个组分。此处我们以两台分析仪器为例,每台能检测两个组分,一台检测CO2和O2,另一台检测SO2和CO,与上位机一起构建CAN通信网络。
CAN网络系统一般由上位机、CAN适配卡、若干节点以及CAN总线构成。由于PC机上有多条扩展槽,利用局域网络通信卡,使得该系统很容易与其他生产管理部门联网,便于统一调度和管理;另外,选用PC机还可以充分利用现有的软件工具和开发环境,方便快捷地设计功能丰富的计算机软件,所以此处上位机我们选用通用PC机。
CAN适配卡我们选用的是北京科日新工控的KPCI-8110光隔非智能CAN总线通讯卡,符合ISO/ISO11898国际标准,满足2.0B(PeliCAN)兼容CAN2.0A通信协议,通讯距离最长达10km,传输速率最高达1Mbps。基于多组分气体分析平台的组合式分析仪器做为CAN智能节点。总线上的信息传输遵守CAN通信协议,通信介质采用双绞线即可。
系统总体结构图如下所示:


图1 基于分析仪器的CAN网络结构图
2 CAN总线通信协议
CAN技术规范版本2.0包括两部分内容:版本2.0A描述CAN技术规范1.2中定义的CAN报文格式;版本2.0B描述标准和扩展格式两种报文格式。为了同CAN技术规范2.0兼容,要求CAN执行既同版本2.0A,也同版本2.0B兼容。
鉴于我们目前所要传输的内容仅限于检测结果,同时考虑到现场需要网络中可能连接的智能节点的个数,采用标准报文格式完全能够满足我们的要求。
CAN技术规范版本2.0B中,数据帧由7个不同的位场组成:即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。数据帧格式如下所示[3]:


图2 CAN2.0B数据帧格式
分析仪器主控制器F2812 DSP片上共有32个邮箱,在SCC模式下0-15邮箱可用,在eCAN模式下,32个邮箱全部可用,而且与2407不同的是,F2812可以发送和存储包括报文ID在内的所有帧信息。所以我们只需对标准标识符的位进行分配,而不用定义数据字节,即可满足上位机和主节点识别帧来源和帧意义的要求。对标准标识符的分配如下表所示:


表1 标识符分配
3 通信程序设计
若想实现CAN网络的正常通信,必须保证各通信节点的波特率和标识符都定义得一致。由于KPCI-8110使用独立的CAN控制器SJA1000,而智能节点多组分气体分析平台中使用微处理器DSP中内置的CAN控制器,各自寄存器的定义和分配不尽相同,所以数据帧格式的定义方法也不一样,在编写初始化和通信程序时要特别注意寄存器的定义和分配。
3.1智能节点端
为了实现各个节点信息的同步,考虑把智能节点中的一个做为主节点,其他节点做为从节点。主节点先收集所有从节点的数据,再把所有的数据一起发送给上位机。
做为CAN网络的智能节点,组合式分析仪器采用内置了CAN模块的F2812做为微处理器,从硬件上来讲,外接一个CAN收发器就可以方便地挂接到CAN总线上,从软件设计上来讲,由于F2812强大的寄存器功能,也可以很容易地实现CAN模块的初始化以及信息的发送和接收。
智能节点的编程采用C语言与汇编语言相结合的方式,采用结构化程序设计方案,可读可移植性好。流程如图3所示。程序设计的重点在于CAN模块的初始化和中断程序的调用。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0