基于MCS-51单片机和CAN总线控制器实现总线节点的设计

发布时间:2023-02-08  

CAN(Controller Area Network)即控制器局域网络。由于其具有较强的抗干扰能力、通讯中没有地址的概念及节点数不受限制等优点,已经被广泛应用于汽车、数控机床、仪器仪表、现场总线控制等领域。在CAN总线的节点设计中,目前应用较多的是通过单片机的控制来实现。有的单片机已经嵌入了CAN控制器的功能,比如Philips的P8XC592,Motorola的68HC05X4等,但这类单片机的应用并不普及,而且价格相对较高。对于目前应用最为普及、价格也很便宜的MCS-51系列单片机,本身并不嵌有CAN控制器的功能。下面就给出一种基于MCS-51单片机和SJA1000的CAN总线节点设计方法。


1、 CAN总线简介

CAN 总线是现场总线的一种,它是德国Bosch 公司在1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯总线。它与其它总线最大的区别是两个节点之间传送信息时报文中没有地址信息,而是对不同性质的数据加以标识。在通讯时,以全网广播为基础,各接收节点根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。虽然CAN总线最初是为在汽车行业应用而开发的,但由于其具有很强的纠错能力,支持差分收发,因而适合高噪声环境,而且传输距离比较远。另外,象Philips,Motorola,Intel等半导体制造商相继开发出了支持CAN协议的集成芯片,更是推动了CAN总线的应用。目前,CAN总线在数控机床、医疗设备、工业控制等领域也取得了广泛的应用。1993年,国际标准化组织正式颁布了CAN总线的国际标准ISO11898。其具体特性如下:

(1)CAN网络上的节点信息可以分成不同的优先级,用来满足不同的实时要求。

(2)CAN为多主工作方式,网络上任一节点均可在任意时刻主动地向网络上的其他节点发送信息,而不分主从。

(3)当多个节点同时向总线发送信息时,CAN采用非破坏性总线仲裁技术,低优先级的节点会依此退出发送,而最高优先级的节点正常发送,不会受到任何影响,极大地节省了总线冲突仲裁时间。

(4)发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送。

(5)CAN的直接通讯距离最远可达到10km(速率5kbps以下),通讯速率最高可以达到1Mbps(此时通讯距离最长为40m)。

(6)CAN的每帧信息都有CRC校验及其它检错措施,保证了出错率很低。

(7)CAN节点在错误严重的情况下具有自动关闭,退出总线的功能,从而使总线上的其它接点不受影响。SOC开发平台360元 单片机开发系统498元 单片机学习板138 无线nRF-9E5模块100元 51单片机试验开发板238元 Genius NSP通用编程器260元 Mini ARMDebugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9开发板800


2、 SJA1000的介绍

SJA1000是Philips生产的独立CAN总线控制器,它是早期的PCA82C200的替代产品。它与PCA82C200在管脚、电气特性上完全兼容,不仅有和PCA82C200一样的基本CAN(BasicCAN)工作模式,而且新增加了增强CAN(PeliCAN)工作模式,这种模式支持具有很多新特性的CAN2.0B协议。经过简单连接和正确设置的SJA1000,能自动完成CAN总线物理层和数据链路层的所有功能,对于单片机来说,只要把它看成一个基本的I/O设备即可,使用非常简单、方便。SJA1000的主要特性如下:

(1)扩展的接受缓冲器(64字节,先进先出FIFO)。

(2)和CAN2.0B协议兼容。

(3)同时支持11位和29位识别码。

(4)位速率最高可达1Mbits/s。

(5)支持多种微处理器接口。

(6)增强的温度适应性。


3、 节点硬件电路设计说明

目前广泛流行的CAN器件分两大类,一类是独立的CAN控制器,如PCA82C200、SJA1000等,另一类就是带有CAN功能的微控制器,如Philips的P8XC592,Motorola的68HC05X4等。考虑芯片的市场普及程度、开发工具及成本等因素,在这次设计中选用单片机AT89C51为核心,SJA1000为CAN控制器,同时还使用了PCA82C250,它是CAN控制器的接口芯片。从功能上来分,SJA1000主要完成CAN的通讯协议,实现报文的装配和拆分、接收信息的过滤和校验等。PCA82C250则是实现CAN控制器和通讯线路的物理连接,提高CAN总线的驱动能力和可靠性。具体电路如下图所示,虽然整个电路比较简单,但结合本人设计、现场调试的体会,给出下面几点说明。

基于MCS-51单片机和CAN总线控制器实现总线节点的设计

(1)SJA1000并没有和单片机共用复位电路,而是通过单片机的一I/O口来控制,这样,SJA1000的复位就可以方便地由单片机通过软件来控制。

(2)SJA1000的地址/数据端和单片机的P0口相连时,不需要再加锁存器,因为它内部已经有地址锁存功能。

(3)SJA1000 的TX1 脚悬空, RX1 引脚的电位必须维持在约0.5VCC上, 否则将不能形成CAN 协议所要求的逻辑电平。

(4)总线上电阻R3、R4一定不能省略,它们对匹配总线阻抗起着相当重要的作用,如果去掉它们,系统通讯的可靠性和抗干扰能力就会大大降低,甚至不能正常工作。


4 、 软件设计

和硬件电路相比,软件的设计相对来说要复杂的多。而且,其中还涉及到有关通讯协议的问题,对于不同的控制系统、不同的功能要求,CAN总线通讯软件的差别很大,在此不可能一一列出。但是,对于基于SJA1000的CAN总线系统,它们开始时都必须对SJA1000进行初始化,而这种初始化的流程是基本一致的。下面给出用汇编语言编制的SJA1000的初始化程序,假设SJA1000的首地址为0100H,其中设置波特率的有关参数是针对晶振为12M,波特率为500Kbit/s计算出来的。另外,在整个CAN总线系统中,所有节点设置的波特率必须一致,否则,系统就不能正常工作。

MODE EQU 0100H

BTR0 EQU MODE+6

BTR1 EQU MODE+7

ACR0 EQU MODE+16

AMR0 EQU MODE+20

OCR EQU MODE+8

RBSA EQU MODE+30

CDR EQU MODE+31

MOV A,#01H

MOV DPTR,#MODE

MOVX @DPTR,A

MOV A,#0C0H

MOV DPTR,# CDR

MOVX @DPTR,A

MOV A,#1AH

MOV DPTR,# OCR

MOVX @DPTR,A

MOV A,#85H

MOV DPTR,# BTR0

MOVX @DPTR,A

MOV A,#0B4H

MOV DPTR,# BTR1

MOVX @DPTR,A

MOV A,#00H

MOV DPTR,# RBSA

MOVX @DPTR,A

MOV A,#0FFH

MOV DPTR,# AMR0

MOV R0,#04H

BEGIN10:MOVX @DPTR,A

INC DPTR

DJNZ R0,BEGIN10

MOV A,#00H

MOV DPTR,#MODE

MOVX @DPTR,A


5、 结束语

CAN 具有较强的纠错能力,适用于高噪声环境, 并具有较远的传输距离, 现已广泛应用于许多领域,该设计作为CAN总线节点的一个模块,能够和仪器仪表等设备相结合,使其具有网络通讯的能力,有着广阔的应用前景。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    单片机内部的逻辑结构当中,或者是在51单片机的内部的硬件结构当中,所处的位置在什么位置,以上就是51单片机的内部逻辑结构图,涵盖了单片机内部的所有的资源,单片机的内部有三总线,数据总线,地址总线和控制总线......
    单片机的三总线结构 51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 2的16次方) 。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过......
    关于单片机的地址总线和数据总线;一般都是看地址总线来判断寻址能力,数据总线是宽度,寻址是按字的地址,也就是字节的首地址,如下图 2. 单片机所说的8位,16位,32位指的是什么,是地址总线的长度还是数据总线在单片机......
    上,分时利用总线与CPU通讯。 当选中某部件时,可对该部件进行读写及控制,而其它部件与总线间处于“高阻态”,相当于与总线断开。 单片机系统的三总线构造方法如下: 以P0口线作数据总线......
    连接起来,相当于系统中各部件挂在总线上,分时利用总线与CPU通讯。 当选中某部件时,可对该部件进行读写及控制,而其它部件与总线间处于“高阻态”,相当于与总线断开。 单片机系统的三总线构造方法如下: 以P0......
    关系设计并集成为整体的。 三总线:地址总线(AB)、数据总线(DB)、控制总线(CB)。 单片机系统扩展主要包括存储器扩展和I/O接线部件扩展。 STC89C52单片机的......
    stm32单片机的基本组成是什么;stm32是一款高性能、低成本、低功耗、可裁剪的嵌入式单片机。那么stm32单片机的基本组成是什么呢?下面小编就为大家来介绍一下stm32单片机的基本组成。 大家......
    经典电路中,系统扩展使用了单片机总线模式,各个对象采用的三总线连接,根据这种电路结构,这里给出一种单片机同CPLD 的总线接口模式,如图4 所示。 图4 单片机与CPLD总线接口示意图 这里选择A l t e......
    个可寻址64KB外部数据存储器、还可以寻址64KB外部程序存储器的三总线的控制电路。              MCS-51单片机最大的时序定时单位   4个时序单位从小到大为:节拍,状态周期,机器周期,指令......
    80C51单片机与8051单片机的区别是什么;80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。 8051单片机与80C51单片机......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>