基于单片机的CAN总线接口设计与实现

发布者:浅唱梦幻最新更新时间:2015-01-29 来源: e-works关键字:单片机  CAN总线接口  AT89C52 手机看文章 扫描二维码
随时随地手机看文章

0 引言

    CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。应用设计的CAN总线节点,系统上电复位后,CAN通信接口接收到PC机的数据后,便向总线上的各个节点传播。CAN总线上的节点与被控对象相连,当它接收到PC机的数据后,则对被控对象作相应的操作。当CAN总线节点有数据向总线发送时,便通过收发器数据发到物理总线,或传送到其他节点,或经CAN通信接口传送到上位机。另外,在本设计中,89C52单片机预留出了P1及P2的一些接口,可以利用这些接口,外接其他应用模块,例如数据采集、步进电动机等,通过与PC机的通信,完成对模块的操作。

1 硬件设计

    CAN总线接口电路主要包括:单片机、控制器接口、总线收发器和看门狗电路等。采用Philips公司生产的SJA1000控制器和与82C250CAN收发器,按照CAN总线物理层协议选择总线介质,设计布线法案,连接成CAN网络。

    硬件电路的设计主要是CAN通信控制器与微处理器89C52之间和SJA1000与82C250之间的接口电路的设计,系统组成框图如图1所示。

系统组成框图

图1 系统组成框图

    CAN节点的硬件电路的设计主要是CAN总线通信控制器与微处理器之间的接口电路,以及CAN总线收发器与物理总线之间的接口电路设计。CAN通信控制器SJA1000是总线接口芯片,是接口电路的核心,它主要完成CAN总线的通信协议,实现上位机与现场微处理器之间的数据通信。AT89C52在CAN总线中实现CAN控制器的初始化、CAN的收发控制等任务。CAN总线收发器的功能则是增大通信距离,保护系统不受干扰。

    SJA1000是一种独立的CAN控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是Philips半导体公司PCA82C200CAN控制器(BasicCAN)的替代产品,而且还增加了一种新的操作模式———PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议,SJA1000硬件结构框图如图2所示。

SJA1000硬件结构框图

图2 SJA1000硬件结构框图

    82C250是CAN控制器与物理总线之间的接口,它最初是为汽车中的高速应用而设计的。它可以提供对总线的差动发送和接收功能。

    82C250驱动电路内部具有限流电路,可防止发送输出级对电源、地或负载短路。虽然短路出现时功耗增加,但不至于使输出级破坏。引脚8(RS)用于选定82C250的三种工作模式:高速、斜率控制和待机。

    对于高速工作模式,发送器输出级晶体管被尽可能快地启动和关闭。在这种模式下,不采取任何措施限制上升和下降的斜率。此时,建议采用屏蔽电缆,以避免射频干扰问题的出现。通过把引脚8接地可断开高速工作模式。

    对于较低速度或较短的总线长度,可使用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降的斜率。上升和下降的斜率可以通过由引脚8至地连接的电阻进行控制,斜率正比于引脚8上的电流输出。

    如果引脚8接高电平,则电路进入低电平待机模式。在这种模式下,发送器被关闭,接收器转至低电流。如果检测到显性位,则RXD将转至低电平,微控制器应通过引脚8将驱动器变为正常工作状态来对这个条件作出响应。由于在待机模式下接收器是慢速的,因此将丢失第一个报文。
[page]
 

    微处理器AT89C52负责SJA1000的初始化,通过控制SJA1000以实现数据的接收和发送等。微控制器的外围电路如图3所示。

微控制器的外围电路

图3 微控制器的外围电路

    AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

    CAN总线控制器SJA1000的AD0~AD7连接到AT89C52的P0口,片选端CS取反后连接到AT89C52的P2.7。P2.7为1时,CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。SJA1000的RD、WR、ALE分别与AT89C52的对应引脚连接,由于SJA1000是低电平复位,而AT89C52是高电平复位,所以两者复位端接法不同。SJA1000的MODE接高电平,选择Intel二分频模式。SJA1000的INT是终端信号输出端,在中断允许的情况下,有中断发生时,INT出现由高电平到低电平的跳变,因此此脚与AT89C52的外部中断输入脚INT0相连,从而使89C52可通过中断方式访问SJA1000。为了增强CAN总线节点的抗干扰能力,采用了6N137,未将TX0和RX0直接与82C250的TXD和RXD相连,通过高速光耦6N137,将SJA1000与82C250连接起来,这样就实现了CAN总线节点的电气隔离。82C250的CANH和CANL引脚各自通过电阻与总线相连,电阻的限流作用保护了82C250不受过流冲击,而且并联的电容可以滤除总线上的高频干扰并防止电磁辐射。

    CAN总线驱动器82C250作为智能节点与CAN总线间的收发器,实现的是CAN网络物理层功能,它将来自SJA1000的TTL电平转换成符合IEEE11898电气标准的差分电平,并在CAN总线上传送。CAN接口电路如图4所示。

CAN接口电路

图4 CAN接口电路

2 软件设计

    CAN通信协议的实现,包括各种帧的组织和发送,都在CAN总线通信控制器SJA1000的内部电路中实现,因此,系统开发主要集中在应用层软件的设计上。而应用层软件设计的核心部分,则是微处理器(AT89C52)与CAN总线通信控制器SJA1000之间的数据发送和接收程序。也就是说,当微处理器把要发送的数据传送到SJA1000通信控制器后,由后者将数据发送到CAN总线上,而当SJA1000从总线上接收到数据之后,则要求微处理器从SJA1000中取走数据。软件设计主要包括三部分:CAN节点初始化、报文发送和报文接收。其中CAN节点初始化如图5所示,报文发送如图6所示,报文接收如图7所示。


3 实验结果

    采用CANalyst-II分析仪来检测此CAN节点是否通信正常。将CANalyst-II分析仪的两个端口CANH,CANL分别与设计的总线接口相连,并为单片机外接电源。

    首先要对分析仪进行参数设置,设置好参数后,就可以启动系统了。选择菜单“操作”—“启动系统”,首先选择CANalyst-II,只有一个CANalyst-II时,索引号选择0;然后设置验收码为0,屏蔽码为0xFFFFFFFF,则表示全部接收。对于波特率的选择,由于在编程中设置的波特率为250kbit/s,这里设置要一致。滤波方式为单滤波。工作模式有两种,“正常”表示CANalyst-II作为一个CAN节点,可接收CAN网络的所有数据,也可往CAN网络发送数据;“只听”表示只能接收数据不能发送数据。这里选择的是“正常”模式。设置完成之后,就可以开始进行通信,设置一组数据,发送格式为“自发自收”。CANPro软件界面如图8所示。采用CANPro软件来检测CAN通信的状态,当启动系统后,传输方向为接收,并且接收程序设置的数据。当单击“数据发送”后,可以更改要发送的数据,此时,若通信正常,则传输方向为发送,且状态为“成功”。图8就是CAN总线接口发送接收正常时的界面。[page]

SJA1000初始化流程图
 

图5 SJA1000初始化流程图
SJA1000发送过程流程图
图6SJA1000发送过程流程图
SJA1000接收过程流程图

图7SJA1000接收过程流程图
CANPro软件界面

图8CANPro软件界面

4 总结

    现场总线控制系统实质是一种开放的、可互操作的、彻底分散的分布控制系统,它改变了传统控制系统的结构,真正实现全分散、全数字化的控制系统。本设计是基于控制器SJA1000和82C250收发器的基础上,外围电路接上看门狗电路、EEPROM扩展电路和高速光耦合器6N137,设计CAN总线的一个接口电路。在实际应用中,可通过此接口电路与上位机进行通信,来控制其他芯片工作。CAN总线正不断深入到智能楼宇、铁路通信、矿用通信、灯光控制、舞台控制等领域,它在组网和通信功能上的优点以及它的高性价比决定了它将在很多领域都有广阔的前景以及发展潜力。

关键字:单片机  CAN总线接口  AT89C52 引用地址:基于单片机的CAN总线接口设计与实现

上一篇:C51中断处理过程
下一篇:基于CAN总线结构的并联液压混合动力车控制系统

推荐阅读最新更新时间:2024-03-16 13:52

基于单片机的智能家居安防系统设计方案
摘要: 介绍了一种以AT89S52单片机为控制核心, 通过DTMF公用电话网和CAN 总线传递的多节点家居安防系统设计方案。本智能家居安防系统集防火、防盗、防燃气为一体, 可实现自动检测与自动语音拨号报警。详细介绍了DTMF收发电路、通话电路和CAN 总线传输等电路。实验结果表明, 本系统功能实用, 信息传递实时可靠,适用于家居安防或其他场所的安防系统。   1 引言   现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。而把DTMF 技术应用于安防系统, 不需要专门的布线, 不占用无线电频率资源, 没有电磁污染。文中设计了一种基于CAN 总线和D
[工业控制]
基于<font color='red'>单片机</font>的智能家居安防系统设计方案
AVR单片机学习C语言的流水灯验证
AVR 的IO口简介与寄存器的概念 一、何谓“寄存器” 寄存器就是RAM中的一些特殊单元,映射片上外设的特殊功能 二、何谓“IO口” 可以将 0 与1转换为电压信号的端口 单片机中最常用的TTL电平:0V代表“0”,+5V 代表“1” Mega16有4个IO口,PA,PB,PC,PD 三、IO口的性能指标 灌电流能力:能够流入IO口的最大电流 拉电流能力:能够从IO口流出的最大电流 上拉电阻与下拉电阻 最大输入电压 IO口的两种状态 如上图(有个选择开关实际电路中不存在的为了好理解才给出的)输出就是 要么给个5V 要么给个地 0V 就是输出0 和 1 上图输入模型 理想的输入
[单片机]
AVR<font color='red'>单片机</font>学习C语言的流水灯验证
(ST)全球性能最强的Cortex™-M微控制器打破行业基准评测性能记录
横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布,采用Green Hills软件公司最新软件工具独立进行的处理器性能评测证实,STM32 F4系列是迄今全球性能最高的ARM® Cortex™-M微控制器。 在行业基准CoreMark™评测 中,Green Hills软件公司的2012版编译器让STM32 F4系列多释放出29%的性能。CoreMark测试成绩用单一数字表示,以便设计人员比较不同品牌的处理器。这个创新高的CoreMark得分让工程师对STM32 F4系列微控制器更有信心,为他们选择业界性能最高的Cortex-M微控制器,能够满足
[单片机]
沁恒RISC-V芯片三线齐发,三款RISC-V架构微控制器齐亮相
2020上半年,沁恒微电子基于USB、以太网和蓝牙等专业接口技术三线齐发,推出三款RISC-V架构微控制器,分别为32位通用系列MCU CH32V103、低功耗蓝牙系列MCU CH573、USB3.0等超高速接口系列MCU CH569,进一步拓展了RISC-V在低功耗、无线通讯、高速率传输等多种嵌入式环境下的应用。 CH32V103,与CH32F103主要功能兼容、引脚完全匹配的32位通用型MCU。配合免费的MounRiver Studio集成编译环境(IDE)可实现两者工程代码的一键平移,无需二次开发。 CH573,低功耗蓝牙型MCU,结合精简指令集RISC-V的特点和低功耗电源管理及BLE无线技术,实现0.3uA超低睡
[嵌入式]
沁恒RISC-V芯片三线齐发,三款RISC-V架构<font color='red'>微控制器</font>齐亮相
新唐科技推出8位微控制器N79E352
新唐科技日前推出8位MCU新产品N79E352。具备高速处理速度的N79E352,在相同工作频率下新唐N79E352的效能为传统8051的2.5倍,其外接振荡器频率可达24 MHz,内置8K快闪容量(Flash ROM),断电储存用128B数据记忆容量, 内部还提供准确的11M/22M RC振荡器、I2C界面及40pin DIP、44pin PLCC/QFP、48pin LQFP的封装,以满足原来采用标准8051产品的客户需求。此外,还可选择内置20KHz的看门狗(Watch Dog Timer)或P0的输入脚来唤醒省电模式,让客户的产品系统能达到更省电的要求。 N79E352有针对须具备高抗干扰性的产品而设计,特别
[单片机]
PIC16F877A单片机 (中断与定时器Timer1)
1 基本原理 上图中,如果RC0左边外接了外部的晶振,那么T1OSCEN必须置一。这个外部的晶振频率一般都比较低。因为晶振频率越低,一般功耗越低。 为什么这里需要外接晶振呢?保证单片机在休眠模式下还可以计数,这一点是51单片机所不具备的。 2 实现代码 主要根据FIGURE6-2和中断的逻辑框图来编写代码,这样代码的可读性强,也便于理解。但有些寄存器在框图中没有说明,所以也需要仔细阅读定时器0的官方文档,即基本原理部分。 /*----------------函数功能: 中断 定时器1 --------------------------*/ #include pic.h // 调用PIC1
[单片机]
PIC16F877A<font color='red'>单片机</font> (中断与定时器Timer1)
C51单片机0~60计数器
源码 #includeunsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char second=0; bit a=0; char t=0; int0_srv() interrupt 1{ t++; if(t==20){t=0;a=1;} TH0=0x3c; TL0=0xb0; } main(){ P0=P2=table ; TMOD=0x01; TH0=0x3c; TL0=0xb0; ET0=1; EA=1; TR0=1; while(1){ if(a){
[单片机]
C51<font color='red'>单片机</font>0~60计数器
瑞萨推出集成STT-MRAM的MCU测试芯片,瞄准物联网与边缘智能
瑞萨电子最近宣布,他们已成功研发出自旋转移矩磁阻随机存取存储器(STT-MRAM)的测试芯片。这款芯片以其卓越的读写性能,有望为性能要求严苛的微控制器(MCU)提供传统闪存芯片的有力替代品。 随着物联网(IoT)和人工智能(AI)技术的飞速发展,端点设备中的MCU必须提供比以往更高的性能,以满足日益增长的需求。瑞萨电子在谈及他们在内存技术方面的工作时指出:“高性能MCU的CPU时钟频率已达到数百兆赫兹。为了进一步提升性能,我们需要提高嵌入式非易失性存储器的读取速度,以尽量缩小它们与CPU时钟频率之间的差距。” STT-MRAM,通常简称为MRAM,是一种新型存储器技术,旨在弥合非易失性但相对较慢的闪存与易失性但快速的动态
[单片机]
瑞萨推出集成STT-MRAM的<font color='red'>MCU</font>测试芯片,瞄准物联网与边缘智能
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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