0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CAN总线技术实现热网监控控制和通信系统的设计

电子设计 来源:电子设计应用 作者:谢建灵 , 汤钰鹏 2020-06-05 07:51 次阅读

引言

目前我国北方许多城市已经或者即将进行热网改造工程,将传统的分散供热改造为集中供热。

由于CAN总线相比其它现场总线技术具有众多优点,因此在工业中的应用越来越广泛。本文基于该总线技术针对热网监控系统开发的现场控制和通信的子系统,能安全可靠地实现现场数据采集、闭环控制及数据传输。鉴于篇幅,本文重点介绍CAN网络通信部分的设计与实现。

系统结构及其硬件构成

系统结构

热网监控系统主要由上位机和现场控制器组成,总体结构如图1所示。

热网监控系统是在一次设备(传感器变送器、各种执行机构)的基础上完成对热网的监测与控制,通过调节热管网的供水流量、供水温度、供水压力,来保证热网安全、可靠、高效、稳定的运行。根据上述要求,本系统在保证系统可靠工作和降低成本的条件下,考虑到通用性、实时性和可扩展性等方面的因素,采用了主要由上位计算机系统和现场控制器构成的系统结构。

系统工作过程如下:上位机首先初始化CAN网卡,设置网卡工作模式、接收码、接收掩码和波特率,然后进入运行状态,在适当条件下与现场控制器进行通信。现场控制器主要完成现场数据的采集与处理和现场设备的控制等功能,并以查询或中断方式与主机进行通信。

图1 热网监控系统总体结构

硬件系统

CAN网络的拓扑结构采用总线式结构,其结构简单、成本低、系统可靠性高。信息的传输采用CAN通信协议,通信介质采用双绞线。

图2 现场控制器的结构框图

上位机

上位机采用工控机,负责对整个系统进行管理。上位机通过CAN网卡与现场控制器通信,同时通过局域网或者公共电话交换网与整个工厂或者公司的计算机信息网络进行连接,实现信息共享。上位机具有组态、数据采集、参数设置、远程控制、流程显示、数据存储、趋势显示、报表打印以及通信等功能。

图3 CAN网络通信接口单元电路

CAN网卡

CAN网卡是负责CAN总线与上位机之间数据交换的功能模块。CAN网卡上存在两个方向的数据交换:CAN网卡与上位机之间的数据交换(通过双端口RAM实现)以及CAN网卡与CAN总线之间的数据交换(由微处理器通过访问CAN控制器的接收缓冲区以及发送缓冲区来实现)。CAN网卡上的CAN控制器选用的是PHILIPS公司的SJA1000芯片

图4 通用定时器周期中断服务程序

现场控制器

现场控制器的结构框图如图2所示。

该现场控制器具有14路模拟量输入端口、2路模拟量输出端口、4路开关量输入端口、4路开关量输出端口以及时钟接口、数据存储接口、液晶显示接口、网络通信接口、报警输出接口等。本系统采用了TI公司的带有10位ADC和CAN控制器的DSP芯片TMS320LF2407A作为CPU

网络通信接口单元是用来对CAN总线进行读写访问的部分控制电路。当需要发送数据时,CPU将数据交给网络接口单元电路,由网络接口单元电路进行数据格式转换、串并转换和信号形式转换,并将数据按照CAN协议信号形式发送到CAN总线上。当CAN总线上有数据时,它负责从CAN总线上读取数据。首先通过帧过滤功能判断是否接收此帧,若接收,则通过与发送相反的过程,将数据交给CPU。

表1 标识符分配方案

网络通信接口单元主要由TMS320LF2407A片内的CAN控制器及CAN收发器PCA82C250组成。CAN控制器负责对数据的格式进行转换,承担网络通讯的控制任务。CAN收发器PCA82C250是CAN控制器和物理总线间的接口,负责信号的电平及形式转换,可以提供对总线的差动发送能力和对CAN控制器的差动接收能力。为防止CAN总线上的干扰进入板卡,本系统采用光电隔离器件6N137来实现收发双向隔离。网络通信接口单元具体电路如图3所示。

CAN通信软件设计与实现

CAN遵从OSI模型,按照OSI基准模型,CAN结构划分为两层:数据链路层和物理层。然而,在实际应用中,即使只是实现简单的基于CAN的分布式系统,仅有物理层和数据链路层也是远远不够的。比如对于传输长度超过8个字节的数据块、带有握手协议的数据传输过程、标识符分配以及通过网络管理节点等功能就不能实现。

因此需要在这两层之外附加一层来支持应用过程,即应用层。这一层功能对应OSI基准模型中的上五层,主要完成网络层和传输层的工作,提供接口,使得通信模块和具体应用模块分离。针对热网监控系统,应用层协议需要通信双方具体协商制定。

CAN通信应用层协议

现场控制器软件设计中与上位机的通信是最关键的部分之一。针对热网监控系统,使用现场总线CAN网络技术,制定了CAN应用层协议。应用层完成的主要工作有:标识符分配、多报文数据包的处理、报文发送与接收等。

标识符分配方案

TMS320LF2407A支持CAN 2.0B协议,本系统通信的信息帧采用扩展帧,具有29位标识符,标识符分配方案如表1所示。

其中,DIR表示方向。DIR=0时,表示主站向从站发送数据;DIR=1时,表示从站向主站发送数据。TYPE为报文帧类型。当TYPE.2=0时,表示点对点发送;当TYPE.2=l时,表示广播发送。当TYPE~TYPE.0Xb时,表示单帧报文;TYPE.1~TYPE.0=11b时,表示非结束多帧报文;TYPE.1~TYPE.0=10b时,表示结束多帧报文。另外还有目标地址和源地址各七位,命令符八位。命令符是用来标识上位机对现场控制器的控制命令,或现场控制器对上位机的上传命令。

报文的处理

本设计对CAN通信中的报文处理做了以下规定:

单报文:单报文由标识符中的数据类型TYPE.1决定,当其为0时表示为单报文,此时待传送的数据不超过8个字节,数据段中为实际传送的数据。

多报文的首帧和中间帧:多报文的首帧和中间帧由TYPE.1~TYPE.0决定,当其为11b时表示为非结束多报文,即为多报文的首帧和中间帧,此时待传送的数据超过8个字节,数据段中第1个字节为索引项,后7个字节为传送的数据。

多报文的尾帧:多报文的尾帧由TYPE.1~TYPE.0决定,当其为10b时表示为结束多报文,即为多报文的尾帧,此时规定该帧中数据长度为2个字节,数据段中第1个字节为索引项,第2个字节为待传送数据的总长度,单位为字节。

CAN通信初始化

CAN通信初始化主要是设置CAN的通信参数,包括配置位定时器和初始化邮箱两部分。需要初始化的寄存器有:位配置寄存器2、位配置寄存器1、标识符寄存器、控制寄存器、局部屏蔽寄存器等。需要注意的是,只有当全局状态寄存器中的改变配置使能位为高时,才能配置位定时器;当主控制器中的改变配置请求位为1,即CAN控制器处于复位工作方式时,才能配置标识符寄存器、控制寄存器和数据域。在访问位配置寄存器时,由于其内容决定波特率的数值,位配置寄存器的初始化字必须依据系统中各CAN控制器的晶振频率而设定。

数据发送

信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。发送程序只需把要发送的信息帧送到相关的CAN寄存器,启动发送命令即可。数据发送采用通用定时器周期中断,定时发送已采集的数据到上位机,实现数据的存储,以便用户查询。由于采集到的数据超过8个字节,所以需对数据包进行分片构造报文。通用定时器周期中断服务程序如图4所示。

数据接收

信息从CAN总线到CAN接收邮箱是由CAN控制器自动完成的,数据接收采用邮箱中断。在中断服务程序中读取接收到的数据,对接收到的数据进行解码,并置位相应标志位。在主程序循环中查询标志位,当检测到标志位被置位时,则进入相应处理程序,同时对标志位清零。

结语

应用层协议是CAN网络应用的关键,因此该系统中的重点工作是在现场控制器与上位机之间的通信中,使用现场总线CAN网络技术,制定了用户层通信协议。而且本系统已经完成了在实验室阶段的调试工作,通信部分能够正常工作。本文介绍的CAN 通信设计具有很强的通用性,其成果可以应用在很多数据采集的场合。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16356

    浏览量

    177991
  • 计算机
    +关注

    关注

    19

    文章

    7493

    浏览量

    87930
  • 总线
    +关注

    关注

    10

    文章

    2881

    浏览量

    88076
收藏 人收藏

    评论

    相关推荐

    基于FPGA的CAN总线通信系统

    基于FPGA的CAN总线通信系统为了克服单片机固有的缺陷, 满足航天控制的需求, 文章提出了如何利用FPGA采用查询的方式
    发表于 08-11 11:55

    汽车CAN总线技术

    ?Can-Bus总线技术是“控制器局域总线技术(C
    发表于 06-24 13:56

    汽车电子与CAN总线-汽车车身网络系统

    设备的互连和交通运载工具电气系统中。控制器局域CAN)是一种有效支持分布式控制或实时控制的现
    发表于 08-18 14:10

    什么是CAN总线 CAN总线有什么作用

    国际标准化组织认可,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。CAN 总线插卡可以任意插在 PC
    发表于 12-13 14:26

    CAN网络通信部分的设计与实现

    基于CAN总线技术实现监控
    发表于 12-21 07:30

    基于STM32和CAN总线的温度监控系统的设计

    小编为大家总结了一篇基于 STM32 和 CAN 总线的温度监控系统的设计,通过上位机与下位机的通信
    发表于 08-19 07:31

    基于CAN 总线的分布式潜水电机监控系统

    介绍了基于CAN 总线的分布式潜水电机监控系统,分析了系统的构成及实现方法,简述了
    发表于 05-25 11:39 19次下载

    基于CAN总线的客房通信控制器的设计

    本文针对宾馆、酒店的客房控制和管理系统,介绍了基于CAN 总线的客房通信控制器的硬件电路结构、原
    发表于 06-13 12:06 13次下载

    基于CAN总线监控系统设计

    鉴于目前基于RS-485通信监控系统的一些问题,本文阐述了用微控制器P87C591和现场总线技术
    发表于 07-09 10:06 36次下载

    基于CAN总线的变频设备远程监控系统实现

    基于CAN总线的变频设备远程监控系统实现 CAN
    发表于 10-10 08:56 760次阅读
    基于<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的变频设备远程<b class='flag-5'>监控</b><b class='flag-5'>系统</b>的<b class='flag-5'>实现</b>

    采用CAN总线控制器SJA1000实现控制电路接口的设计

    硬件电路的设计主要是CAN通信控制器与微处理器之间和CAN总线收发器与物理总线之间的接口电路的设
    发表于 03-13 10:45 7846次阅读
    采用<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>控制</b>器SJA1000<b class='flag-5'>实现</b><b class='flag-5'>控制</b>电路接口的设计

    基于单片机和CAN控制器sja1000实现分布式监控系统设计

    can(controller area network)即控制器局域,是国际上应用最广泛的现场总线之一。与一般的总线
    发表于 03-21 10:57 1320次阅读
    基于单片机和<b class='flag-5'>CAN</b><b class='flag-5'>控制</b>器sja1000<b class='flag-5'>实现</b>分布式<b class='flag-5'>监控</b><b class='flag-5'>系统</b>设计

    利用CAN总线实现煤矿安全监控传输系统的设计

    本文将对应用发展比较成熟的先进的CAN总线技术,进行了深入的研究。在此基础上提出一个基于CAN总线的煤矿安全
    发表于 05-11 09:26 1555次阅读
    利用<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>实现</b>煤矿安全<b class='flag-5'>监控</b>传输<b class='flag-5'>系统</b>的设计

    如何用FPGA实现CAN总线通信控制

    CAN 总线插卡可以任意插在 PC AT XT 兼容机上,方便地构成分布式监控系统。因此,用 FPGA 实现
    发表于 07-29 09:43 2737次阅读

    如何使用Arduino实现CAN总线通信

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微
    的头像 发表于 12-23 09:06 114次阅读