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

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

3天内不再提示

利用PCA82C250芯片实现CAN总线系统智能节点的应用方案

电子设计 来源:微计算机信息 作者:郑凯,赵宏伟 2021-03-31 10:26 次阅读

引言

CAN(Controll Area Network)即为控制器局域网,是世界上应用最为广泛的现场总线之一。它最早由德国Bosh公司率先提出,主要用于解决现代汽车中众多的控制与测试仪器之间的数据交换问题。CAN总线规范已经被ISO国际标准组织制定为国际标准IS011898(高速应用)和IS011519(低速应用),得到了Motorola、Intel、Philips、Siemence、NEC等公司的支持。由于CAN总线具有很多优越的性能,因此它在汽车工业、航空工业、工业控制、安全防护等众多领域中得到了广泛应用。目前CAN总线系统以其高性能和高可靠性,在汽车总成控制器的开发中占据了重要的位置。CAN总线系统智能节点设计的工作重点集中在节点的硬件系统设计和软件系统设计上。本文以国家863高技术发展计划电动汽车重大专项为依托,围绕混和动力汽车总成控制器进行CAN总线系统智能节点设计。

1 智能节点体系结构

1.1 技术特点

CAN总线与其他通讯网络的不同之处在于:报文传送中不包括目标地址,以全网广播为基础,各接收站根据报文中反映数据的性质的标识符过滤报文;强化了对数据安全性的关注,满足控制系统较高的数据需求。它具有如下显著特征:极高的总线利用率、低成本、高速的数据传输速率、远距离传输、可靠的错误处理和检错机制、可根据报文的ID决定接收或屏蔽该报文、节点在错误严重的情况下具有自动退出总线的功能等等。

1.2 体系结构

CAN层的定义与开放系统互连模型(GSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。另外,CAN还能使用多种物理介质,如双纹线、光纤等,其中最常用的是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN.L高表示逻辑“0”,称为“显形”,通常电压值为:CAN_H=3.5V和CAN_L=1.5V。

1.3 智能节点网络模型

在汽车总成控制系统中,各个ECU(Electrcnic Control Unit)单元之间的通讯都是通过CAN总线来实现的。CAN总线智能节点设计的好坏将直接决定控制单元之间通讯信息的可靠性。智能节点主要由微控制器,CAN控制器和CAN收发器构成。

微控制器主要利用CAN控制器来接收数据,并进行数据处理,然后将处理结果通过CAN控制器和CAN收发器发送给其它的节点。根据软件设计的需要,采用Motorola公司推出的32位高性能微控制器MPC565作为智能节点的控制中枢。该控制器具有快速数据处理、高速可靠通讯和强抗干扰性等显著特点。在CAN总线系统设计中得到了广泛应用。

CAN控制器主要执行在CAN规范中所定义的CAN通讯协议,通常用于信息缓冲和验收滤波。在该系统中采用MPC565提供的高性能CAN控制器模块ToLuCAN进行节点设计。TouCAN模块是一个高速的(高传输率IMBiffSec),短距离的,可在不同介质上通讯的CAN控制器。它不但在控制器局域网中采用CAN2.0B通讯协议实现与其它ECU单元之问的异步通讯,而且还拥有消息滤波功能的屏蔽寄存器,将接收的消息ID与选定的消息缓冲区ID进行比较,如果存在一个匹配,那么该消息即可被接收,其主要特点如下:

(1)完全符合CAN通讯协议标准,传输率最多同达到1Mbit/sec。

(2)可通过编程来设置传送消息的具体方案,即从最低的ID号开始传送消息或者从最低消息缓冲区号开始传送消息。

(3)采用开放式网络结构,具有独立的传输介质(外部直接连接CAN总线收发器)。

CAN收发器用于建立CAN控制器和物理总线之间的连接,控制逻辑电平信号从CAN控制器到达物理总线的物理层,反之亦然。在智能节点系统中.CAN收发器采用的是PHILIPS公司推出的PCA82C250芯片。它是一种先进的CAN总线收发器,不仅能够对总线提供差动发送能力和对CAN控制器提供差动接收能力,而且扩展的普通模式范围(-7V.+12V)和斜率控制功能使电磁兼容EMC性能增强。另外它还可以防止总线输出短路和一般控制环境中的瞬变现象,具有热关闭功能。可以在温度过载的情况下保护器件。

2 智能节点硬件系统设计

智能节点的硬件系统原理图如图1所示。它利用PCA82C250芯片将MPC565的内部CAN通讯引脚与外部CAN总线连接在一起。PCA82C250是一个连接CAN控制器和外部物理总线的接口,所提供的最高传送波特率为1M波特。MPC565的A_CNTX0,A_CNRX0引脚和B_CNTX0,B_CNRX0引脚分别作为两个通讯端口的传送端和接收端。MPC565微控制器用于对TouCAN模块进行初始化,并通过该模块与外部总线网路进行通讯。

图1智能节点硬件原理图

3 智能节点软件系统设计

智能节点的软件系统主要包括TouCAN初始化模块、消息传送模块和消息接收模块。

3.1 TouCAN初始化模块

该模块主要用于实现消息缓冲区的初始化和CAN通讯参数的初始化,其流程图如图2所示。它的主要工作过程如下:

图2 TouCAN初始化流程图

(1)初始化所有的操作模式

首先通过配置控制寄存器0 (CANCTRL0)来设定传输和接收引脚的操作模式,然后设定控制寄存器1的位定时参数。如PROPSEG,PSEGSI,PSEG2,RJW。随后通过编程设置PRESDIV寄存器来选择SCLOCK操作时钟。最后通过设定控制寄存器1中的LBUF位来选择内部仲裁模式。

(2)初始化消息缓冲区

TouCAN模块包括16个消息缓冲区,在每个消息缓冲区有效或无效时,它的控制和状态字必须执行写操作。另外必要时每个消息缓冲区的所有其他入口都应该被初始化。

(3)初始化屏蔽寄存器用于接收外部屏蔽源。

(4)初始化TouCAN的中断处理器

中断处理器的初始化主要是完成对中断配置寄存器CANICR和相关屏蔽位的设置。这些屏蔽位主要包括消息缓冲区中断屏蔽位IMASK,总线关闭和错误中断屏蔽位CANCTRL0,WAKE中断屏蔽位CANMCR。

(5)对模块配置寄存器中的HALT位取反.用于实现CAN总线同步。

3.2 消息传送模块

消息传送模块比较简单,主要由TouCAN模块独立完成,其流程图如图3所示。

图3 消息传送流程图

消息的传送过程:加载消息和标识符ID到用于传送的消息缓冲区中,使这个传送缓冲区有效.执行相关操作完成消息的传送:写控制和状态字,使传送缓冲区无效;写ID_HIGH和ID_LOW字;写待传送的数据字节;写控制和状态字,使得传送缓冲区有效,并设定传输消息长度。

在上述操作过程中,第1步和第4步是必须的,可以保证数据的相干性。另外一旦一个有效的传送代码被写入到一个传送消息缓冲区中,缓冲区便开始检测CAN总线是否空闲.或者有空白的中间帧。而当有多个消息等待传送时,内部的仲裁逻辑将选择一个消息缓冲区用于下一帧的传送。在成功传送之后,自由运行定时器的值将被写入到消息缓冲区的TIME字段中,在控制和状态字中的CODE字段也被更新,同时IFLAG寄存器中的状态位被置1。

3.3 消息接收模块

消息接收模块的处理要复杂的多,在接收消息的同时,它要处理总线分离和接收溢出等情况,其流程图如图4所示。消息的接收过程:首先用户配置消息缓冲区等待接收,然后TouCAN模块把串行消息缓冲区中接收到的具有匹配ID的消息传送到接收消息缓冲区中,最后用户处理消息,具体操作如下:写控制和状态字,使接收缓冲区无效;写ID_HIGH和ID_LOW字;写控制和状态字,屏蔽接收消息缓冲区,使其有效并且为空。同传送操作过程类似,第1步和第3步也是用于保证数据的相干性。一旦这些步骤完成,消息缓冲区将作为一个有效的接收缓冲区使用,并进行匹配操作。消息缓冲区任何时候都能捕捉到TouCAN是否接收到错误的空闲帧,在这个过程中,所有有效的消息缓冲区比较他们的标识符ID同最新接收的消息的标识符ID.如果匹配,则从最低入口开始,将帧传送到第一个匹配的接收消息缓冲区中。在接收到消息的问时,自由运行定时器的值被写入到消息缓冲区的TIME字段,ID字段、DATA字段和RX长度字段被存储,代码字段被更新。另外FLAG寄存器中的状态标志位也被置1。

图4 消息接收流程图

4 结论

通过对汽车总成控制器的CAN总线系统智能节点的研究,建立了汽车控制系统通讯网路的模型,为整车开发奠定了基础。目前利用该智能节点已经完成了总成控制器与其它ECU单元之间的通讯测试。测试结果充分表明:所设计的智能节点完全符合总成控制的需要.具有较好的推广价值。

本文作者创新点:提出了利用32位微控制器MotorolaMPC565的TouCAN模块来构建混合动力汽车CAN总线系统.并设计了智能节点的硬件系统和软件系统。

责任编辑:gt

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

    关注

    447

    文章

    47769

    浏览量

    409072
  • 总线
    +关注

    关注

    10

    文章

    2704

    浏览量

    87206
  • 工业控制
    +关注

    关注

    36

    文章

    1274

    浏览量

    85450
收藏 人收藏

    评论

    相关推荐

    【隔离CAN收发器申请】多总线工业控制器

    申请理由:一直使用PCA82C250实现CAN总线电平转换,但外部需要外加电源隔离电路,电路增加不少器件。在论坛上看到CTM1051AM隔离收发器,感觉是一个不错的替代
    发表于 01-29 11:52

    proteus里没有SJA1000和PCA82C250的电路咋办

    想做CAN总线方面的研究,但SJA1000和PCA82C250找不到怎么画啊,求有关大神帮忙啊
    发表于 04-11 23:43

    多个智能仪表的CAN接口设计

    接口中集成了CAN协议的物理层和数据链路层功能,可以完成对通信数据成帧处理。用SJA1000作为流量计的CAN控制器,与CPU(单片机)的I/O口直接相连,再通过PCA82C250组成CAN
    发表于 04-12 07:00

    怎么实现基于PCA82C250与MCU间的直连通信网络设计?

    怎么实现基于PCA82C250与MCU间的直连通信网络设计?
    发表于 05-28 06:09

    基于STM32F103 RET6芯片+PCA82C250使用CAN通讯换回模式测试CAN收发

    测试9 总结1 博客内容博客内容基于STM32F103 RET6芯片(Keil.STM32F1xx_DFP.2.3.0.pack)+PCA82C250,使用CAN通讯换回模式测试CAN
    发表于 08-06 07:03

    PCA82C250 PCA82C251的应用和几种带 不带电

    The PCA82C250 and PCA82C251 are advanced transceiver products for use in automotive and general
    发表于 06-15 15:15 157次下载

    PCA82C250 CAN收发器应用指南

    本文档着重介绍如何使用Philips 半导体的收发器PCA82C250[1]和PCA82C251[2]实现物理媒体连接子层物理信令子层和数据链路层之间的连接是通过集成的协议控制器实现
    发表于 11-18 11:42 230次下载

    PCA82C250 PCA82C251 CAN Transc

    The PCA82C250 and PCA82C251 are advanced transceiver products for use in automotive and general
    发表于 11-18 11:44 64次下载

    基于CAN总线智能窗户系统的设计实现

    系统基于CAN总线,以单片机P8XC592和总线收发器PCA82C250为主体组成通信控制模块。各个控制模块为一个
    发表于 02-22 11:52 43次下载

    基于ADμC812的CAN总线智能节点的设计

     摘要:介绍了一种用单片机ADμC812、CAN总线控制器SJA1000和CAN总线驱动器POA82C250组成的
    发表于 03-11 11:47 959次阅读
    基于ADμC812的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    CAN总线接口设计图

    LPC2368内部集成了两个兼容CAN 2.0A /2.0B的CAN控制器。因此,只需增加一个CAN总线收发器就能满足设计要求。PCA82C250
    发表于 05-16 16:00 8144次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>接口设计图

    基于SJA1000和PCA82C250CAN总线接口设计

    CAN总线是较为流行的技术,介绍了CAN总线的主要特性,简述了SJAl000和PCA82C250的结构和工作原理,并基于此设计了
    发表于 11-17 17:21 441次下载
    基于SJA1000和<b class='flag-5'>PCA82C250</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>接口设计

    基于CAN总线智能节点设计

    应用51单片机为控制核心结合其他的器件设计了一种能连接于CAN总线上的智能节点。通过单片机控制CAN总线
    发表于 01-10 16:54 120次下载

    PCA82C250 CAN总线控制器数据手册 10页 0.1M

    PCA82C250 CAN总线控制器数据手册 10页 0.1M,感兴趣的小伙伴们可以看看。
    发表于 07-26 10:43 63次下载

    基于SJA1000芯片PCA82C250芯片实现总线节点仿真平台设计

    很多新特性的CAN2.0B协议,如:兼容性和扩展性更强,检错和纠错能力更强,支持热插拔等,设计更方便灵活,而芯片价格低廉,很适合作通用的CAN总线
    的头像 发表于 05-09 08:04 3092次阅读
    基于SJA1000<b class='flag-5'>芯片</b>和<b class='flag-5'>PCA82C250</b><b class='flag-5'>芯片</b><b class='flag-5'>实现</b><b class='flag-5'>总线</b><b class='flag-5'>节点</b>仿真平台设计