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

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

    关注

    5998

    文章

    43948

    浏览量

    620562
  • 控制器
    +关注

    关注

    112

    文章

    15154

    浏览量

    170958
  • CAN总线
    +关注

    关注

    145

    文章

    1809

    浏览量

    129576
收藏 人收藏

    评论

    相关推荐

    单片机总线

    率132MB/s。适于多媒体场合。  ·CAN总线(Controller Area Network)。这是一种单片机外部串行总线。采用多元竞争式结构。按设定仲裁字的方式进行
    发表于 08-05 06:09

    基于FPGA的CAN总线通信系统

    该系统的硬件构成、芯片选择和组成原理, 对FPGA的控制程序进行了分析和设计; 实验结果表明, 系统完全满足CAN总线通信要求, 与以往基于单片机
    发表于 08-11 11:55

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

    基于Mega8单片机CAN总线智能节点设计
    发表于 08-20 13:24

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

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

    请问什么单片机CAN总线

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

    stc单片机有内置can总线的型号吗?

    stc单片机有内置can总线的型号吗
    发表于 10-07 08:46

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

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

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

    SPMC65单片机CAN总线智能节点中的应用 本文主要介绍如何使用SPMC65P2404A单片机设计开发CAN
    发表于 09-19 10:45 709次阅读
    SPMC65<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 1195次阅读
    基于PIC<b class='flag-5'>单片机</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>扩展技术

    基于C8051F040单片机CAN总线测试模式研究

    摘要:现场总线已成为数据总线领域中最为活跃的热点,CAN 总线被公认为最有前途的现场总线之一,CAN
    发表于 03-06 15:24 71次下载
    基于C8051F040<b class='flag-5'>单片机</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>测试模式研究

    基于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 1103次阅读

    基于单片机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智能节点设计