1 CAN总线及RS-485总线简介
CAN总线(Controller Area Network)是由德国Bosch公司于20世纪80年代专门为汽车电子控制系统开发的一种串行数据通信协议,特别适合应用于分布式控制或实时控制领域。它的应用范围遍及高速网络和低成本的分布式控制系统。CAN具有以下特点:
(1) 无破坏的依据优先权的仲裁;
(2) 多主站点依据优先级进行总线访问;
(3) 严格的错误检测和界定;
(4) 支持远程数据请求;
(5) 借助接收滤波的多地址帧传送;
(6) 通信介质多样,组合方式灵活;
(7) 全系统数据兼容,系统灵活;
(8) 最远传输距离为10Km(总线传输速率为5kbps), 最大传输速率为1Mbps(总线传输距离为40m)。
RS-485标准是美国EIA(电子工业联合会)公布的串行通信协议。它比RS-232C标准信号传输距离长、速度快、抗干扰性能好,广泛应用于各种工业、楼宇、能源等领域。在实际应用中,许多工业控制设备(如PLC)都带有RS-485接口。因此,有必要设计CAN总线与RS-485总线的通信接口电路。
2 硬件设计
整个通信接口电路由单片机AT89C52、CAN控制器SJA1000、CAN收发器82C250、高速光电耦合器6N137和RS-485收发器MAX485组成。如图1所示。单片机AT89C52主要完成SJA1000的初始化,及CAN总线 和RS-485总线之间的数据通信任务。SJA1000是CAN控制器82C200的替代产品。它主要由下列功能模块构成:接口管理逻辑、发送缓冲器、接收缓冲器、接收过滤器、位流处理器、位时序逻辑和错误管理逻辑。除了与82C200兼容之外,它增加了许多新功能:PeliCAN工作模式、读/写访问的错误计数器、标准和扩展结构信息的接收和发送、可编程的错误限制报警、只听模式和仲裁丢失中断。单片机对SJA1000内部寄存器的控制是以访问外部寄存器的方式进行的。CAN收发器82C250是CAN总线控制器和物理总线之间的接口,主要负责提供对总线的差分发送能力和对CAN控制器的差分接收能力。它的引脚8(RS)控制3种不同的工作方式的选择:待机、斜率控制和高速。
(1) 给RS接上高电平,则82C250以低电流待机方式工作;
(2) 若RS通过连接电阻接地,则进入斜率控制方式,该方式可以通过改变电阻的阻值来调节斜率,适用于低速和较短的总线长度的应用场合;
(3) 如果RS接地,就选择了高速工作方式。高速光电耦合器6N137实现了CAN控制器和收发器之间的电气隔离,增强了系统的稳定性和抗干扰能力。RS-485收发器MAX485是一种差分平衡型的小功率收发器,包含一个驱动器和一个接收器,使用单+5V电源供电,专门用于TTL协议(即通用于各型CPU的通信协议)和485标准之间的相互转换,使微控制器可以利用RS-485串行通信协议直接进行串行通信。
整个转换过程可分为:CAN总线转换到RS-485总线和RS-485总线转换到CAN总线。CAN总线转换到RS-485总线的流程如下:微控制器接收到CAN总线节点发送的报文,根据CAN总线规定的数据格式取出报文的有用信息,然后由微控制器通过MAX485将信息发送到RS-485总线。而RS-485总线转换到CAN总线则是上述流程的逆过程。
3 软件设计
软件设计的主要任务是实现数据和控制命令在CAN总线网络和RS-485总线之间的传输。它主要包括RS-485和CAN接口的初始化程序、报文发送和接收程序、中断服务程序和错误处理程序等。其中,SJA1000的初始化程序是软件设计中的难点,需要完成各种工作参数的设置。其中,控制寄存器用来改变CAN控制器的行为,包括进入复位状态,激活不同类型的中断源,如接收中断、发送中断和数据溢出中断等。验收代码寄存器和验收屏蔽寄存器共同作用定义了能被节点所接收报文的条件:所收信息的标识符的相应位与验收代码寄存器验收码的相应位相等。 验收屏蔽寄存器的作用是确定验收码的哪些位对于验收滤波是相关的或不相关的。总线时序寄存器0定义了波特率的预设值及同步跳转宽度;总线时序寄存器1则定义了位周期的长度、采样点的位置和采样数目。输出控制寄存器可以设置不同的输出模式(如正常输出模式、双相输出模式和时钟输出模式等)。时钟分频寄存器不仅可以控制SJA1000的输出频率及屏蔽CLKOUT引脚,而且还能够对Basic CAN和Peli CAN模式进行选择。具体的SJA1000初始化程序流程如图2所示。
CAN总线转换到RS-485总线的程序如下:
CAN-RS485_TRANSITION:
MOV DPTR, #SR; 状态寄存器
MOVX A, @DPTR;
JNB ACC.0, CAN_QUIT;
是否接收到信息,无数据则退出转换程序
CAN-RS485_HANDLE:
MOV DPTR
关键字:CAN总线 RS-485总线 通信接口
引用地址:
CAN总线与RS-485总线的通信接口设计
推荐阅读最新更新时间:2024-05-02 22:29
基于单片机和CAN总线的车灯控制系统设计
1 、引言 CAN(Controller Area Network)是德国 Bosch 公司最先提出的,是目前汽车 控制器 局域网中最流行、最常用的总线。它的主要特点是:CAN 总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活;CAN 总线采用独特的非破坏性总线仲裁技术,优先级高的节点先传送数据,能满足实时性要求;CAN 总线具有点对点、一点对多点及全局广播传送数据的功能;CAN 总线上每帧有效字节数最多为 8 个,并有 CRC 及其他校验措施,数据出错率极低,某个节点出现严重错误,可自动脱离总线,总线上的其他操作不受影响;CAN 总线只有 2 条导线,系统扩充时可直接将新节点挂在总线上
[汽车电子]
基于CAN总线的三级智能火灾报警系统设计
本文设计的智能火灾报警系统,采用CAN总线三级通信网络,以火灾为监控对象,利用计算机技术、检测技术和现场总线技术,根据防火的要求和特点而设计、构成和工作的。该系统既能对火灾的发生进行早期探测和自动报警,又能根据火情位置,及时输出联动灭火信号,启动相应的消防设施,进行灭火。实践证明,该系统具有智能性,反应快捷,高度可靠性等优点,能较好地满足智能大厦对火灾防范的要求。 1、引言 火灾的早期预报已成为扑救火灾、减少火灾损失、保护生命财产安全的重要保障,是现代消防不可缺少的安全技术措施。消防自动报警和控制系统已广泛应用于各类建筑和工程中。如何使多个各自独立的系统构成统一的消防监控网络,是我们必须着眼解决的迫切问题。 2、
[安防电子]
解决所有车辆的CAN总线安全漏洞 UltraSoC推出CAN Sentinel
解决所有车辆的CAN总线中内在的安全漏洞 德国纽伦堡嵌入式世界大会和英国剑桥 – 2020年2月24日 UltraSoC 今日宣布推出CAN Sentinel,从而推动其汽车网络安全产品实现重要迈进。全新的知识产权(IP)在CAN总线中增加了一个亟需的基于硬件的安全层,CAN总线是汽车制造商和整车厂(OEM)所遵循的互连技术的全球性行业标准。UltraSoC的CAN Sentinel驻留在总线上,可以监测与车辆电子控制单元(ECU)之间的事务,识别可疑行为,防止恶意消息,并抑制攻击。 CAN Sentinel可以用户自定义的安全规则进行配置,从而提供保护以防范诸如框架欺骗等常见的漏洞利用手段,并且允许系统随着威胁态势的
[汽车电子]
省毫瓦以增里程;提升汽车CAN总线能效以增强燃油经济性
对于传统乘用车而言,油箱是唯一的实际能源来源,故制造商们寻求在包括电子系统在内的所有汽车系统中节能,以进一步改善燃油经济性及二氧化碳(CO2)排放。随着汽车中增添的电子系统的数量不断增多,以增强汽车性能及安全性,并为购买者提供有吸引力的新功能,汽车中每个电子控制单元(ECU)的节能效果较低的话,就会使总油耗大幅增加。 芯片设计人员采用不同技术及途径,已经能够降低他们提供的器件的总能耗。在单个系统基础芯片(SBC)中结合多个器件的功能,并应用不同电源管理策略,还能帮助进一步降低总能耗。这些进展表示当今的内燃发动机汽车能够舒适安全地搭载乘客,而使用的燃油更少,碳排放更低。 增强型系统基础芯片 SBC为连接至汽车(CA
[汽车电子]
基于CAN总线的远程监测仪器系统
在现代化生产中,机电设备的状态监测和故障诊断技术越来越受到重视,但现有的生产过程监测系统网络开放性不强、在远程监测和诊断方面存在许多不足。为了保证设备安全、稳定及协调的运行,需要对多数关键设备进行远程实时监测、集中控制及管理。
CAN总线是一种先进的串行总线通信技术,具有多主、高可靠性及实时性等优点。通过现场总线系统能将各网络节点采集的信号实时传输到监测控制中心,由监测控制中心实现对设备的远程监控与管理。
1系统的组成及功能
系统采用多功能转子试验台为研究试验对象,整个系统由现场实时数据采集系统、现场总线网络通信系统及上位机分析与诊断系统(管理信息系统)三大部分组成。根据现场实际情况,设置相应数量的网络
[嵌入式]
基于RealView MDK的CAN总线仿真研究
0 引言
RealView MDK是ARM公司的产品,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,包括μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟、性能分析等功能。
当前多数基于ARM的开发工具都有仿真功能,但是仅仅局限于对内核指令集的仿真。而RealView MDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程
[嵌入式]
如何一分钟找到CAN总线的问题节点
CAN-bus总线是将所有节点通过CANH和CANL连接在一起,实现信息通道共享的一种总线通讯方式。在带来布线方便与节约成本的同时,也为现场故障排查增加了难度。因为所有节点都挂接在一起,一旦需要检修或者出现通讯故障,难以快速判断故障节点。如图1所示。 图 1 CAN网络连接 CANScope分析仪广州致远电子股份有限公司研发的一款综合性的CAN总线开发与测试的专业工具,集海量存储示波器、网络分析仪、误码率分析仪、协议分析仪及可靠性测试工具于一身,并把各种仪器有机的整合和关联;重新定义CAN总线的开发测试方法,可对CAN网络通信正确性、可靠性、合理性进行多角度全方位的评估;帮助用户快速定位故障节点,解决CAN
[汽车电子]
如何用万用表测量CAN总线
系统概览 此说明用于检查总线连接上的 CAN 高速和 CAN 低速信号电平是否正确。 检测提示 ● 电压检测 (示波器):电压检测的前提条件是,蓄电池已连接并且点火开关已接通。 ● 电阻测量:在电阻测量时,在测量前必须把待测部件断电。为此应断开车辆蓄电池的接线。等待约3 分钟,直到系统中的所有电容器放完电。 CAN总线 CAN (控制器区域网络) 总线系统是一种线形总线系统并具有以下特征: ● 信号双向传播。 ● 所有总线用户都接收同一个信息。每个总线用户决定,它是否利用该信息。 ● 通过简单并联即可添加附加的总线用户。 ● 此总线系统构成一个多主控单元系统。每个总线用户可以是主控单元也可以是副控制单元,根据其作为发射器还是接
[测试测量]