datasheet

基于CAN总线的嵌入式控制器串行通讯的应用

2018-02-12 20:53:09来源: eefocus 关键字:CAN总线  控制器  串行通讯

    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 总线技术,使电路设计简化、紧凑、极大地提高了系统的可靠性、实时性,系统抗干扰性能强,成本较低,性能安装比高、安装维护简洁方便,更适于车辆控制、工厂自动化控制、电梯控制、医疗设备等,具有非常广阔的应用前景。


关键字:CAN总线  控制器  串行通讯

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2018021237752.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于内核对象的Linux输入子系统触摸屏的驱动设计
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
CAN总线
控制器
串行通讯

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved