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

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

3天内不再提示

基于CAN总线和单片机的应用方案和分析

电子设计 来源:甘肃科技 作者:张琳,李兰崇 2021-05-25 09:54 次阅读

1 前言

CAN 是国际上应用很广泛的一种现场总线,MCS96 系列单片机是目前在工业界推广应用较广泛的嵌入式控制器,其87C196CA 单片机内核本身带有CAN 控制器,支持标准和扩展的信息帧,即遵循CAN2.0A 和CAN2.0B 协议。由此而构成的CAN 总线支持分布式控制和实时控制,其串行通信方式灵活可靠,传输距离较远。由于CAN 总线具有通信速率高、工作可靠性高、现场抗干扰能力强、网络连接方便和性能价格比高等优点,在汽车发动机控制部件、汽车抗滑系统、工业自动化、机床、电梯控制等领域得到了较为广泛的应用。

2 硬件构成

2. 1 CAN 总线连接

基于CAN 总线的两个87C196 单片机网络联接时,分别将单片机的CAN接收、发送两根线通过PCA82C250 CAN总线收发器联接到CAN总线上,构成多微控制器CAN总线连接。通信介质可以是双绞线、同轴电缆或光纤,其总线连接如图1 所示。

图1 CAN 总线连接

该网络最高通信速率为1Mbit/s ,当传输速率为5Kbit/s时,最大通信距离可达10Km。在其CAN 总线上可挂接多达110 个网络节点,而网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息。其数据传输和接收可以是点对点、一点对多点或全局广播等方式进行。

2. 2 87C196CA 单片机

87C196CA 是集成CAN2.0B总线控制器的高性能16 位微处理器,特别适用于现场实时事件控制和分布式控制。片内的CAN 控制器与Intel 82527独立CAN 控制器在软件上是兼容的,每个CAN 控制器的输入、输出引脚由二根双绞线联接到CAN总线上。CAN 控制器由一个输入引脚(RXCAN) 、一个输出引脚( TXCAN) 、控制和状态寄存器,错误探测和管理逻辑组成。图2 为CAN 控制器方框图。

图2 CAN 控制器方框图

2. 3 CAN 总线收发器

PCA82C250是CAN协议控制器和物理传输线路之间的接口,是影响网络性能的关键因素。它对总线提供差动发送能力,并对CAN控制器提供差动接收能力,其最高传输速率可达1Mbit/s。其主要特点是芯片内部具有限流电路,可以防止输出级对电源、地或负载短路;由于采用差动接收发方式,因此有较强的抗电磁干扰能力;具有低电流节电待机工作模式;该CAN总线收发器至少可以连接110个节点。利用PCA82C250还可以方便地在CAN控制器与驱动器之间建立光电隔离,以实现总线上各节点间的电气隔离。

3 通讯软件

对于通过CAN 总线连接的单片机之间的通讯软件编程需要定义一系列的控制字,并在两个单片机上进行配置。即首先进行上电初始化,定义CAN控制寄存器,定义位定时寄存器选择CAN 的通讯速率,定义信息体屏蔽寄存器选择接收对象。其次对信息体进行初始化,分别定义两个信息体工作模式、发送字节数、选择CAN2.0A 或CAN2.0B 方式。其程序代码

/ *CAN 控制器初始化*/

can_con = 0x41 ; / *CAN 控制器CCE 位置1 ,

则可以定义CAN 定器* /

can_ btime0 = 0x41 ; /* 定义CAN 定时器

250 Kb/ s * /

can_btime1 = 0x67 ;

can_con = 01 ; / *允许对CAN 控制器进行软

件初始化* /

can_sgmsk = 0x0 ; / * 定义标准CAN 通讯格

式的屏蔽控制字,所有位都不滤纸*/

can_msg1con0 = 0x55 ; / * 信息体1 控制器0

初始化* /

can_msg1con1 = 0x55 ; / * 信息体1 控制器1

初始化* /

can_msg1cfg = 0x88 ; / *定义信息体1 为发

送,发送8 字节,标准CAN 格式* /

can_msg1id = 0xc8c8c8c8 ; / * 信息体1 标识

寄存器初始化标识符为c8c8c8c8 ;

can_ msg1con0 = ox95 ; / * 信息体1 控制器

0MSGVAL 位置1 ,标明信息体1 有效* /

can_msg2con0 = 0x55 ; / * 信息体2 控制器0

初始化* /

can_msg2con1 = 0x55 ; / *信息体2 控制器1

初始化* /

can_msg2cfg = 0x80 ; / *定义信息体2 为接

收,接收8 字节,标准CAN 格式* /

can_msg2id = 0xc8c8c8c8 ; / *信息体2 标识

寄存器初始化标识符为c8c8c8c8 */

can_ msg2con0 = ox95 ; / * 信息体2 控制器

0MSGVAL 位置1 ,标明信息体2 有效 */

can_con = 0x02 ; / * CAN 控制器软件初始化

完成*/

/ *发送8 字节数据: * /

can_msg1con1 = 0x5a ; / * CPUUPD 置1 ,使

软件刷新数据,NEWDA T 置1 使信息置1 使信息

体有效* /

can_msg1data0 = 0x00 ; / * 给信息体1 第1 个

数据赋值* /

can_msg1data1 = 0x11 ; / * 给信息体1 第2 个

数据赋值3*/

can_msg1data2 = 0x22 ; / * 给信息体1 第3 个

数据赋值 */

can_msg1data3 = ox33 ; / * 给信息体1 第4 个

数据赋值* /

can_msg1data4 = 0x44 ; / * 给信息体1 第5 个

数据赋值* /

can_msg1data5 = 0x55 ; / * 给信息体1 第6 个

数据赋值* /

can_msg1data6 = 0x66 ; / * 给信息体1 第7 个

数据赋值*/

can_msg1data7 = ox77 ; / *给信息体1 第8 个

数据赋值*/

/ *接收8 字节数据: */

can_msg2cfg = 0x80 ;

can_msg2id = oxc8c8c8c8 ;

can_msg2con1 = 0x55 ;

can_msg2con0 = 0x99 ;

4 结束语

基于CAN 总线的16 位87C196CA 单片机串行通讯,由于运用CAN 总线技术,使电路设计简化、紧凑、极大地提高了系统的可靠性、实时性,系统抗干扰性能强,成本较低,性能安装比高、安装维护简洁方便,更适于车辆控制、工厂自动化控制、电梯控制、医疗设备等,具有非常广阔的应用前景。

责任编辑:gt

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

    关注

    6032

    文章

    44514

    浏览量

    632938
  • 控制器
    +关注

    关注

    112

    文章

    16197

    浏览量

    177393
  • CAN总线
    +关注

    关注

    145

    文章

    1936

    浏览量

    130627
收藏 人收藏

    评论

    相关推荐

    单片机如何与can总线进行通信

    单片机要与上位通过can总线进行通信,怎样构建硬件电路及程序编写,求各位大神指导啊……
    发表于 08-08 13:59

    请问什么单片机CAN总线

    请问各位高手,哪种型号的单片机CAN总线,最好是51的。有知道的告诉一下,我是新手,感激不尽。
    发表于 03-25 09:01

    用87C196NT单片机实现CAN总线通信

    主要介绍CAN 总线的原理及如何用87C196NT 单片机实现基于CAN 总线的网络通信;对其硬件和软件设计作较详细的
    发表于 04-16 14:26 34次下载

    SPMC65单片机CAN总线智能节点中的应用

    SPMC65单片机CAN总线智能节点中的应用 本文主要介绍如何使用SPMC65P2404A单片机设计开发CAN
    发表于 09-19 10:45 757次阅读
    SPMC65<b class='flag-5'>单片机</b>在<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>智能节点中的应用

    基于MSP430系列单片机CAN总线接口转换卡设计

    基于MSP430系列单片机CAN总线接口转换卡设计 IT公司的MSP430系列单片机是一种超低功耗的混合信号控制器,具有丰富的片内外设,有极其广阔的应用
    发表于 09-26 17:48 1999次阅读
    基于MSP430系列<b class='flag-5'>单片机</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>接口转换卡设计

    基于PIC单片机CAN总线扩展技术

    基于PIC单片机CAN总线扩展技术 0 引 言     CAN总线是一种串行多主站局域网
    发表于 12-23 09:42 1283次阅读
    基于PIC<b class='flag-5'>单片机</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>扩展技术

    CAN总线+单片机实现通信网络设计

    分析了RS-485总线CAN部迟疑不决的异同点后,以PCA82C250型接口电路为例提出了用CAN总线通信物理层接口电路来替代RS-48
    发表于 09-27 15:40 6518次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>+<b class='flag-5'>单片机</b>实现通信网络设计

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

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

    基于AVR单片机CAN总线设计

    CAN总线是几种最有前途的现场总线之一。但是CAN总线开发需要一定的技术基础,如何在较短的时间内开发出一套可靠性高、实时性好的
    发表于 10-11 15:35 34次下载

    基于STM32单片机CAN总线分析仪的设计

    基于STM32单片机CAN总线分析仪的设计
    发表于 01-24 16:54 41次下载

    基于87C196NT单片机实现CAN总线通信

    基于87C196NT单片机实现CAN总线通信
    发表于 09-04 15:26 4次下载
    基于87C196NT<b class='flag-5'>单片机</b>实现<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信

    基于C8051F040单片机CAN总线通信

    基于C8051F040单片机CAN总线通信硬件部分 硬件部分电路结构如下: CAN收发模块原本采用的是ATA6660高速CAN收发芯片,电
    发表于 11-24 05:11 1477次阅读

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

    控制等领域。在CAN总线的节点设计中,目前应用较多的是通过单片机的控制来实现。有的单片机已经嵌入了CAN控制器的功能,比如Philips的P
    的头像 发表于 04-12 07:48 7266次阅读
    基于MCS-51<b class='flag-5'>单片机</b>和<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>控制器实现<b class='flag-5'>总线</b>节点的设计

    基于单片机实现CAN总线与LIN总线间的传输设计方案

    和其它总线通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机CAN-LIN网关设计
    的头像 发表于 01-16 08:01 7110次阅读
    基于<b class='flag-5'>单片机</b>实现<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>与LIN<b class='flag-5'>总线</b>间的传输设计<b class='flag-5'>方案</b>

    基于单片机CAN总线AO智能节点设计

    电子发烧友网站提供《基于单片机CAN总线AO智能节点设计.ppt》资料免费下载
    发表于 10-20 10:02 0次下载
    基于<b class='flag-5'>单片机</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>AO智能节点设计