当前位置:首页 > 通信技术 > 通信技术
[导读]介绍了基于CAN总线的通信节点设计方法。在分析CAN总线的主要技术特性及CAN总线在工业控制系统中所处的位置之后,给出了设计CAN通信节点选用的器件及其硬件特性和通信节点的硬件设计框图。描述了CAN节点软硬件设计方法,同时给出了CAN控制器的初始化流程以及发送、接收程序流程图。介绍的设计方法易于掌握且具有较强的灵活性和通用性,可用于多种工业现场控制。

1 引 言

在20世纪80年代初,德国的BOSCH公司提出了用CAN总线(Controller Area Network,控制器局域网)来解决汽车内部的复杂硬件信号接线。CAN总线以其低成本、高可靠性、实时性、抗干扰能力强等特点得到了广泛的应用,1993年ISO正式颁布了ISO11898CAN高速应用标准和ISO11519CAN低速应用标准,这为CAN总线的标准化、规范化铺平了道路。CAN总线主要具有以下特性:

(1)CAN采用多主方式工作,网络上任意节点均可以在任意时刻主动地向网络上的其他节点发送信息而不分主从,通讯方式灵活且无需站地址等节点信息。

(2)CAN网络上的信息可分成不同的优先级,满足不同的实时性要求;高优先级的数据最多可在134μm内得到传输。

(3)CAN的直接通信距离最远可达10 km(速率5 kb/s以下);通讯速率最高可达1 Mb/s(此时通信距离为40 m)。

(4)CAN只需通过报文滤波即可以实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。

(5)CAN采用非破坏性总线裁决技术(CSMA/CD),在多个节点对总线发送信息出现冲突时,低优先级的节点会主动退出发送而保证高优先级的节点的信息传输,因此大大节省了总线冲突裁决时间,最重要的是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能)。

(6)CAN协议废除了传统的站地址编码,而对通讯数据块进行编码,使网络中的节点个数在理论上不受限制。

(7)CAN总线具有极好的检错效果,CAN的每帧信息都具有CRC校验和其他检错措施,保证了错误的输出率极低。

(8)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线以上其他节点的操作不受影响。

2 基本硬件介绍

本文所涉及的通信系统相关工业控制系统框图如图1所示。

其中,CAN总线通过PC适配卡与上位机相连,各CAN节点都可与上位机通信,同时互相之间也可以通信。考虑到系统的可靠性与安全性,建议上位机采用工控机,当然在要求可靠性与安全性相对较低的场合也可以考虑采用PC机。CAN总线控制器是以在一块可编程芯片上的逻辑电路的组合来提供与微处理器的物理线路的接口。通过对他的编程,CPU可以设置他的工作方式,控制他的工作状态,进行数据的发送和接收,把网络应用层建立在他的基础之上。CAN控制器目前主要有两大类:一类是独立控制器,如PHILIPS公司的PCA82C200,SJA1000,INTEL公司的82526,82527等;另外一类是内部带有CAN控制器的微处理器,如P8XC591等。我们采用的是PHILIPS公司的SJA1000控制器以及TJA1050总线驱动器。

2.1 SJA1000特性及内部结构

SJA1000是一种独立控制器,是PHILIPS公司的PCA82C200的替代产品。他增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特点的CAN 2.0B协议。SJA1000主要具有如下特点:

(1)与PCA82C200独立CAN控制引脚和电气兼容;

(2)仍然具有PCA82C200模式(即默认的BasicCAN模式);

(3)扩展的接收缓冲器(64 B FIFO);

(4)同时支持11位和29位标识符且与CAN 2.0B兼容;

(5)位速率可达1 Mb/s;

(6)具有详细位号(bit position)的仲裁丢失中断;

(7)只听模式(无确认、无激活的出错标志);

(8)可编程的CAN输出驱动器配置;

(9)可以和不同处理器接口。

2.2 TJA1050特性

TJA1050是PHILIPS公司生产的,用以替代PCA82C250的高速总线收发器。该器件提供了CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。TJA1050的主要特性如下:

(1)与ISO11898标准完全兼容;

(2)总线与电源及地之间的短路保护;

(3)优化了输出信号CANH和CANL之间的耦合,大大降低了信号的电磁辐射;

(4)具有强电磁干扰下,宽工模范围的差动接收能力;

(5)未上电节点不会干扰总线(对此类节点性能做了优化);

(6)总线至少可连接110个节点。

3 CAN节点硬件电路设计

3.1 CAN节点硬件电路设计的原理

图2为硬件电路设计的原理框图。其中主控制器选用ATMEL公司的ATmega128单片机,总线收发器为TJA1050。其中ATmega128为ATMEL公司生产的基于RISC结构的高性能低功耗的新一代8位单片机,其主要功能如下:

(1)具有先进的RISC结构,具有预取指令功能,大多数指令可在一个时钟周期内完成;

(2)内置128 kB可擦写10 000次以上的可编程FLASH;

(3)具有独立锁定位,可选择的启动代码区具有多重密码保护锁死功能;

(4)内置模拟比较器,具有8路10位ADC,I/O口可做AD转换用;

(5)内部有标定的RC振荡器,同时具有独立片内震荡器的可编程看门狗定时器;

(6)6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式;

(7)有2个异步串行通讯口UART,不占用定时器和SPI传输功能;

(8)具有多个片内/外中断源。

3.2 节点硬件设计的部分说明

(1)SJA1000选用PeliCAN模式,与微控制器连接后,其片选地址即操作SAJ1000内部寄存器的基址用户可以自行设定。

(2)TJA1050采用了最新的EMC技术,比PCA82C250/251的抗电磁干扰能力提高了20 dB。引脚S用于选定TJA1050的工作模式。有两种工作模式可以选择:如果引脚S接地,则TJA1050进入高速模式。当S端悬空时,其默认工作模式也是高速模式。高速模式是TJA1050的正常工作模式,也是我们所选用的模式。如果引脚S接高电平,则TJA1050进入静音模式,该模式可防止由于CAN控制器失控而造成的网络阻塞,同时由于TJA1050支持的CAN信号有良好的对称性,所以不像前代产品需要专门的斜率控制模式。

(3)在CAN控制器和总线驱动器的物理输出输入线路中,可根据情况适当加入保护电路,以增加数据传输的稳定性。

4 CAN节点软件设计流程

CAN应用节点的程序设计主要分为3部分:SJA1000初始化子程序、发送子程序、接收子程序。可以说所有CAN通信程序设计都是遵循这3个基本步骤的,所以熟练掌握这3部分子程序的设计对于应用CAN总线的工程技术人员来说是非常有必要的。下面就这3个子程序分别加以说明。

4.1 SJA1000初始化子程序

微控制器和SJA1000之间状态、控制和命令信号的交换都是在控制段中完成的。初始化加载后,寄存器的接收代码、接收屏蔽、总线定时寄存器0和1以及输出控制就不能改变了。SJA1000共有2种工作模式:复位模式和工作模式。当硬件复位或控制器掉电时会自动进入复位模式,只有在复位模式下才可以对SJA1000进行初始化。初始化主要包括工作方式的设定、接收屏蔽寄存器和接收代码寄存器的设定、总线时序寄存器的设置、输出模式寄存器和中断使能寄存器的设置等。在初始化完成以后,CAN总线就可以开始进行数据的接收与发送工作,其初始化流程图见图3。

4.2 发送与接收子程序

首先与CAN控制器连接的微处理器必须将要发送的数据从其数据存储区中取出,与主机的ID地址一起组成信息帧按CAN报文结构发送到发送缓冲器中,并置位命令寄存器中的发送请求标志,接收到发送请求后发送过程由CAN控制器自动完成。在检测到接收缓冲器中存在有效报文后,接收程序将接收缓冲器中的内容读入CPU的数据存储区。接收完毕后检查总线状态及溢出情况等并做相应处理,发送与接收程序流程图见图4。

5 结语

采用了多主工作方式及CSMA/CD的CAN总线以其显著优于传统“一主多从”式多机串行通讯模式而得到了广泛应用。实践表明,由于CAN总线结构简单,器件容易购置,开发技术易于掌握,且具有统一的国际标准,故在现场总线的发展中占有了重要位置。本文所介绍的基于CAN总线通信节点可在大部分中短距离传输信息的控制现场发挥良好的作用。

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

汽车电子系统架构发生了颠覆性变化。它已经持续了近十年,现在正在加快速度。这主要发生在 BEV 初创公司中,因为它们没有历史限制或根深蒂固的喜爱设计,并且可以从电子架构的零基础开始。

关键字: CAN总线 电动汽车

在电子产品的设计中,电磁兼容EMC性能对系统的影响非常大,关系到其能正常稳定运转。世界上已经开始对电子产品的电磁兼容性做强制性限制,电磁兼容性能已经成为产品性能的一个重要指标。 电磁兼容主要有两方面的内容,一个是产...

关键字: CAN总线 电磁兼容EMC

CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的要求,各种各样的电子控制系统被开发了出来。...

关键字: CAN总线 CAN 抗噪

CAN总线首先在汽车上得到了广泛应用,之后又在工业生产领域有了很大发展,那么面对不同的应用场景和工况,如何选择合适的网络拓扑结构慢慢成为一个让人头疼的问题。在这篇文章中,我将重点介绍用于驱动这些总线电压的 CAN 驱动器...

关键字: CAN总线 CAN总线拓扑

在进行CAN总线通信前,应保证正确的总线配置,比如终端电阻。它是影响总线通信的重要组件,下面我们不考虑信号的完整性,只从信号幅度和时间常数方面分析不加终端电阻时的影响。  终端电阻添加要求根据ISO11898-2对终端电...

关键字: 电阻 终端 CAN总线 电平

大家好,我是小麦。最近在调试一个CAN总线的设备遇到一些问题,简单总结一下。本文会对CAN总线进行简单介绍,CAN的硬件链路层,协议层,以及调试的一些心得。目录什么是CAN总线?物理层差分信号连接方式CAN节点CAN协议...

关键字: CAN总线

大家好,我是小麦。最近在调试一个CAN总线的设备时遇到了一些问题,在此简单总结一下。本文将对CAN总线进行简单介绍,包括CAN的硬件链路层、协议层,以及调试的一些心得。目录什么是CAN总线?物理层差分信号连接方式CAN节...

关键字: CAN总线

摘要:介绍了基于STC12C5A60S2单片机、SJA1000型CAN接口控制器以及PCA82C250串行收发器构成的总线通信网络。该网络中远端的CAN节点可监测现场环境,并实现数据收发和串行通信,上位PC机利用VB6....

关键字: 单片机 CAN总线 VB6.0 环境参数

关注、星标公众号,直达精彩内容来源:整理与网络素材最近在搞一个can协议,本文争对一些can底层细节很到位,分享一下。1.简介CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。CAN的容错能力特别强,CAN控...

关键字: CAN总线

关注、星标公众号,直达精彩内容来源:周立功嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来越大。这个暑假,通过参加苏州社会实践,...

关键字: 嵌入式 CAN总线

通信技术

120740 篇文章

关注

发布文章

编辑精选

技术子站

关闭