物联 工程 | CAN(Controller Area Network)控制器局域 络详解

文章目录

  • 概述
  • 一、定义介绍
  • 二、功能作用
  • 三、原理解读
    • (一).CAN收发器(硬件)
    • (二).CAN控制器(硬件)
    • (三).CAN总线(硬件)
    • (四).CAN中央处理单元(软硬)
    • (五).CAN驱动(软件)
    • (六).CAN程序(软件)
    • (七).CAN协议(标准)
  • 四、使用方法
  • 五、实例演示
    • (一).硬件组成
    • (二).硬件连接
      • 1.控制器连接电源
      • 2.电机连接
      • 3.USB-CAN连接
    • (三).软件控制
      • 1.连接USB-CAN
      • 2.软件使用

概述

??本节详细介绍了CAN是什么,干什么用,并举以实例来说明其怎么用。

一、定义介绍

??CAN(Controller Area Network),译为控制器局域 络。CAN是一种规定好标准、协议的 络,窄意的CAN总线(bus)就是一堆实际的线。物理器件包括CAN控制器、CAN收发器、CAN模块等等,凡是用于CAN通信的硬件都可以加个CAN作为描述。CAN的构建和使用需要一定物理设备的支持,如果没有必要的CAN硬件设备,CAN通信无法进行。
??CAN最早由德国博世公司发明,最初用于汽车控制,目前主要使用行业也是汽车行业,但随着CAN的发展,一些自动控制、工业控制等行业也在使用CAN。

二、功能作用

??CAN允许微控制器和设备在没有主机的情况下与彼此的应用程序进行通信,通信方式那么多,之所以选择CAN是因为它具有以下优势:
①CAN的传输数据量大、传输距离远
②CAN的数据传输速度快
③CAN具有很强的抗干扰性,不容易出现问题
④CAN可以接很多很多个节点

三、原理解读

??CAN 络的组成包含硬件和软件,硬件软件也分别包含一些东西。就像轮子、方向盘等才能组成车一样,单一的轮子不能称为车;CAN也一样,CAN的某单一部分不能称为CAN 络。
??完整的CAN 络(由于大家叫惯了,习惯将一整套CAN 络称为CAN总线、CAN系统等,但狭义的CAN总线指的就是一堆传输信 线)包括以下几部分:

(一).CAN收发器(硬件)

??CAN收发器是一种硬件,里面由设计好的硬件电路组成,主要通过物理办法互转逻辑信 (0、1)和模拟信 (高低电平)。之所以需要CAN收发器是因为CAN的线路是差分信 传输方式,因此程序出来的逻辑信 需要转换才能传输,接收到的差分信 也需要转换才能被程序所识别,而为什么选用差分信 后面解释。
??CAN收发器的一端有接口直连双绞信 线,接口不固定,端子、航插等都可以;另一方面连接CAN控制器,与CAN控制器的物理连接方式也不固定,电路板直连、硬件接口连接等都可以。

(二).CAN控制器(硬件)

??CAN控制器也是一种硬件,之所以需要CAN控制器是因为CAN收发器只能实时一个Bit一个Bit的转换,而正常数据不可能就一个Bit,数据得缓存起来,因此就有了CAN控制器,CAN控制器内部是拥有物理存储介质的。此外,CAN控制器不单只用于缓存,它还需要负责与上层(此处的上层可以是主机,比如服务主机;也可以是设备,比如电机)进行交互或者直接处理相关数据,因此其内部是需要拥有简单的微处理功能,也就是物理上拥有芯片。根据CAN控制器内部是否包含处理器、处理程序等,将其分为独立CAN控制器和非独立CAN控制器,但这个划分一般没有太严格的界定。有的CAN控制器集成的就跟个小电脑一样,还可以装系统,其实就是把下面的中央处理单元和CAN控制器结合在一起了。

(三).CAN总线(硬件)

??CAN总线就是实际的线。CAN标准规定其传输方式为差分信 传输,一般使用双绞线进行信 传输,双绞线由两根线互相缠绕组成,两根线之间的电压差作为信 。由于CAN是半双工通信,如果既要收也要发,一般情况是两根双绞线,共四根线。双绞线物理性质上就有下面的好处:抗干扰能力强、传输距离远、传输质量高,这也是用它作为信 传输的原因。
??由于是差分信 传输,CAN在接多个设备的时候,它们的线端都必须端接,假设一个主设备CAN,两个子设备CAN1和CAN2,接的时候需要CANH端接CAN1H、CAN2H,CANL端接CAN1L、CAN2L。

(四).CAN中央处理单元(软硬)

??CAN中央处理单元不是必要存在的,就像上面说的,一般没有太严格的规定。如果CAN控制器集成了处理单元或者有的地方根本就不需要中央处理单元,那么该部分就可以不要。但一般情况下,CAN系统一般都会有一个中央处理单元,可以理解为一个主机,就像服务器和客户机一样。中央处理单元与CAN控制器之间可以通过RJ45、USB等转换器进行连接。CAN中央处理单元可以接收控制器的数据、向控制器发送数据。此外,其最主要的功能就是可以加入自己的程序来实现相应的功能,比如某个电机发来了异常信 ,经过判断可以由CAN中央处理器向其他设备发送CAN信 来停机或者怎么怎么。

(五).CAN驱动(软件)

??所有的处理单元,只要想加程序,不论是集成在CAN控制器的还是CAN中央处理单元,与CAN控制器进行交互都必须拥有CAN驱动,否则你只能去用硬件实现算法或者逻辑。CAN驱动一般由制作CAN控制器或CAN模块的厂商给出,不同的厂商驱动设计可能也不相同,不同的系统驱动也不同。

(六).CAN程序(软件)

??CAN编程需要遵循CAN的标准协议(现在又有了CANOpen协议),而标准只是个定义,对应实现了该标准的代码前人也给我们写好了,比如C++语言,有canlib、socketcan等。有了库接下来就可以编写你需要的功能了。

(七).CAN协议(标准)

??之所以最后提,是因为CAN协议是贯穿软硬件的总体标准,所有的软硬件设计都是基于CAN协议的。这是CAN标准的官方链接:ISO-CAN,不过需要花钱买,这是预览ISO-CAN-Preview,有兴趣可以读读。

四、使用方法

①连接CAN总线硬件,包括控制器、驱动器、电机、电源、线路等
②连接用于控制CAN的设备,如电脑、遥控器(还得有接收器)等
③如果是遥控器需要配对遥控器和接收器,如果是电脑需要安装驱动
④如果用程序控制,需要安装遵循CAN标准的类库
⑤如果用程序控制,需要编写相应的程序代码
⑥如果用遥控控制,那么直接遥控即可

五、实例演示

??本实例以金陵运康DBMCA2驱动控制器加上电机等硬件为例,展示如何使用CAN。

(一).硬件组成

硬件包括如下所示几个:金陵运康DBMCA2驱动控制器、电机、USB-CAN转换器、电源(没放图)

电机

2.电机连接

①电机电源
如下图所示,电机的三相电源线接到控制器的三相电源输出端。三相电共六种接法,有三种是可以运行的,实际操作时可以多尝试一下,接错了也没事,只要别三根或两根线接一块。

厂商给的接口示意图

电机接控制器实拍

3.USB-CAN连接

一端接控制器的CAN口,一端接USB-CAN的CAN口,USB就插电脑就行了,线束接法根据厂商说明书为准。

2.软件使用

①配置参数
软件打开之后如下图所示,此时还不能直接使用,请在“设置模块”中找到对应的波特率等参数,修改成该CAN需要的。

物联 工程 | CAN(Controller Area Network)控制器局域 络详解

②发送指令
指令如上图所示,不同的数据表示不同的指令,具体需要参考你设备厂家的手册。编写完指令直接发送,此例中就可以控制点击运转了。

到此,你已经会使用CAN了。

来自:九七的物联

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月2日
下一篇 2022年9月2日

相关推荐