基于CAN总线的87C196CA单片机串行通讯的应用

发布者:tau29最新更新时间:2012-02-24 关键字: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 控制器方框图 [page]

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总线  串行通讯  单片机  现场总线 引用地址:基于CAN总线的87C196CA单片机串行通讯的应用

上一篇:基于P89C668单片机的CAN总线接口设计
下一篇:80C196KB与PC机之间的远程通讯系统设计

推荐阅读最新更新时间:2024-03-16 12:54

爱特梅尔公司推出CAP7L可定制微控制器
爱特梅尔公司 (Atmel® Corporation) 推出CAP7L可定制微控制器,可让无晶圆厂(fabless) 的半导体公司以缩短至12周的交付周期、仅为7.5万美元的一次性支出 (NRE) 及低至5美元的单位成本,且无需自ARM公司获取单独许可,便可实现基于ARM7™ 处理器的系统级芯片(systems-on-chip, SoC)。 CAP7L提供了目前最低的NRE成本,为产量为1万单位的项目提供良好的经济效益,完全摊销后的单位成本为17美元;而对于产量为 5万个单位的项目,摊销后的单位成本仅为7美元,并已经包括了NRE和IP的支出在内。 AT91CAP7L 器件是标准微控制器产品,具有多达20
[单片机]
爱特梅尔公司推出CAP7L可定制<font color='red'>微控制器</font>
51单片机点阵8X8贪吃蛇设计(仿真 + 程序)
51单片机点阵8X8贪吃蛇设计(仿真 + 程序)闲来无聊制作的贪吃蛇8X8程序和仿真下面压缩包里都有,元器件都是平时最常用的,很好制作。 单片机程序源码: #include reg51.h #define uchar unsigned char #define SNAKE 20 //最大长度 #define TIME 50 //显示延时时间 #define SPEED 71 //速度控制 //define keyenable 1 sbit keyenable=P0^0; //方向使能 sbit keyx=P0^1;
[单片机]
51<font color='red'>单片机</font>点阵8X8贪吃蛇设计(仿真 + 程序)
基于单片机的低功耗温度检测仪设计
  温度测量被广泛应用于生产生活中,在工业锅炉供暖控制系统运行效果的检查,电力变压器运行状态监控,大中型恒温仓库温度控制等方面都需要对关键点的温度等参数进行实时采集和存储。该测仪系统设备少且简单,投资小对环境要求较低,能自动进行数据采集、分析和处理,并能自动记录与显示结果,可灵活应用于远程电力网监控,油田测井系统,楼宇自动化等领域。    一、系统总体结构设计   便携式低功耗检温度测仪以MSP430F247低功耗单片机为控制CPU,采用一体化智能温度 传感器DS18B20 作为数据采集模块,利用nRF905无线传输模块进行数据收发,检测仪设有RS232通信接口,可与计算机直接通信,同时可通过无线模块将数据按规定格式发送到上位机,
[单片机]
基于<font color='red'>单片机</font>的低功耗温度检测仪设计
51单片机“积木式”实验板的制作
这套实验板每块板上的元件数不多,采用万能板和敷铜板丙种方法制作均可,上图中的实物就是用l5xLOCm万能板制作的。主控板的制作要注意的是PO口的引出端,从主控板原理下图可以看到,PO口引出端接线柱的排列方向和51 芯片 的PO口引脚的排列方向正好相反,所以要接跳线,别的三个 端口 的对外接线柱排列方向和51芯片的端口引脚方向一致。这样安排主要是保证不管主板怎样摆放,板上边两个端口各自的8个接线柱排列从左到右分别按PX.7、PX.6、...、PX.1、PX.0(X为0、1、2、3)的顺序,这样容易记忆,特别是外接数码管驱动时尤为方便。 另外要注意各元件的安装高度,保证40脚锁紧式插座装上芯片后,锁紧柄按下不被板上所装的元件挡住。
[单片机]
51<font color='red'>单片机</font>“积木式”实验板的制作
基于单片机的超声波测距仪设计
0 引言 目前,常用的测距方法主要有毫米波测距、激光测距和超声波测距三种。超声波测距较前两种测距方法而言,具有指向性强、能耗缓慢、受环境因素影响较小等特点,广泛应用于如井深、液位、管道长度、倒车等短距离测量。 本设计选用频率为40 kHz左右的超声波,它在空气中传播的效率最佳。在超声测距方法上,本文选用渡越时间法,据文献所提供的数据,渡越时间法简单,成本低,可应用的距离范围较大,可测量的范围为0.39~10.3 m。由于超声波测距主要受温度影响较大,所以本设计增加了温度补偿电路。本设计具有电路简单、操作简便、工作稳定可靠、测距精确和能耗小、成本低等特点,可实现无接触式测量,应用广泛。 1 超声波测距仪工作原理 1.1 超声波
[测试测量]
基于<font color='red'>单片机</font>的超声波测距仪设计
基于PID算法和51单片机的温度控制系统
0 引 言 温控技术无论是在工业生产,还是日常生活中都起着非常重要的作用。在冶金、石油、化工、电力和现代农业等行业,温度是极为重要而又普遍的热工参数之一,在普通家庭里热水器、电饭煲、电烤箱等依赖于温控技术的家电设备也是必不可少。可以说温度控制技术无处不在。 常规的温度控制方法以设定温度为临界点,超出设定允许范围即进行温度调控:低于设定值就加热,反之就停止或降温。这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。 而采用PID算法进行温度控制,它具有控制精度高,能够克服容量滞后的特点,特别适用于负荷变化大、容量滞后较大、控制品质要求又很高的控
[单片机]
基于PID算法和51<font color='red'>单片机</font>的温度控制系统
单片机攻略3——C51入门
一:背景介绍 随着时代的发展,人们希望把CPU、RAM等器件集成到一个平台上来工作,单片机就这么诞生了。到现在为止市面上的单片机款式种类多如牛毛,继承的功能也要根据实际需求演化出了不同的方向。以51系列为例,比较常见的是Intel开发的MCS-51系列,和国内的STC51系列。 之后也以51系列(STC89C52RC型号)学习。 STC89C52RC资源:8kbROM程序储存器,256B数据存储器RAM,3个定时器计数器,6个中断源,16位重装 二:51的结构 51是40针脚直插式排布。下图是51芯片的实际引脚图。(细枝末节的硬件结构以后再补) 2.1 各引脚的功能作用 C51总体来讲可以分为六个类型的
[单片机]
<font color='red'>单片机</font>攻略3——C51入门
80C51单片机对压力测量控制系统的设计
1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量
[单片机]
80C51<font color='red'>单片机</font>对压力测量控制系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved