基于单片机的CAN总线通讯实现讲解
基于单片机的CAN总线通讯实现

基于单片机的CAN总线通讯实现CAN总线通讯是一种广泛应用于车辆电子系统、工业自动化和机器控制等领域的通讯协议,它具有高可靠性、实时性强和抗干扰能力强等优点。
在基于单片机的CAN总线通讯实现中,单片机作为CAN节点可以通过CAN总线与其他节点进行数据的发送和接收。
一、硬件搭建1.单片机选型在CAN总线通讯实现中,可以选择支持CAN总线的单片机芯片。
常见的单片机有STC12C5A60S2、AT89C51CC03等。
2.CAN总线收发器CAN总线收发器是实现单片机与CAN总线之间相互之间通信的关键组件。
常见的CAN收发器有TJA1050、SN65HVD230等。
3.连接线需要准备好与单片机芯片和CAN总线收发器相适应的连接线,如杜邦线等。
二、软件实现1.硬件初始化首先,在单片机中需要初始化相关的硬件资源,包括引脚设置、定时器设置等。
同时,也需要对CAN总线收发器进行初始化设置。
2.CAN总线配置在单片机中,需要配置CAN总线相关的寄存器,包括波特率设置、帧过滤设置等。
波特率的设置需要与其他CAN节点保持一致才可以正常通信。
3.数据发送单片机向CAN总线发送数据时,首先需要检查发送缓冲区是否为空。
如果不为空,则需要等待缓冲区可用,并将要发送的数据写入到发送缓冲区中。
随后,单片机向CAN总线发送一个请求发送的指令,然后等待发送完成的中断信号。
4.数据接收单片机接收CAN总线数据时,需要首先检查接收缓冲区是否为空。
如果接收缓冲区有数据,则单片机将读取缓冲区数据,并进行数据的处理。
5.中断处理CAN总线通讯中,可以通过中断的方式来处理数据的发送和接收。
单片机通过设置相关中断触发源和中断服务程序来实现数据的异步传输。
三、通讯协议CAN总线通讯中,可以使用标准CAN和扩展CAN两种协议。
标准CAN协议使用11位标识符,扩展CAN协议使用29位标识符。
在通讯过程中,需要设置相关的协议参数,包括标识符、数据长度码、帧类型等。
CAN总线通讯

基于单片机的CAN总线通讯实现摘要CAN总线是控制器局域网总线(Controller Area Network)的简称。
属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。
CAN总线是一种多主方式的串行通讯总线,是国际上应用最广泛的现场总线之一,现已被应用到各个自动化控制系统中,从高速的网络到低价位的多路接线都可以使用CAN总线。
本文重点就基于单片机的CAN总线通信设计的实现进行介绍,通过CAN控制器以及CAN收发器把串口发送来的数据转换成CAN 通信的数据,然后又把数据转换成串口通信数据回发给计算机,实现数据的自发自收。
关键词:CAN总线;AT89S52;SJA1000;PCA82C250Abstract:CAN-bus,which is controller LAN-bus (contro1ler Area Network) for short.,belongs to the category of field bus, which is a kind of effective support distributed control or real-time control of serial communication network. CAN-bus is a main way more than the serial communication bus, which is one of the most widely used international field bus. It has been used in various automatic control system, from the network to the low price of multi-channel wiring CAN. This paper,which focuses on the CAN bus communication design, is based on the MCU to achieve . Through the CAN controller and CAN transceiver, the data is converted to the serial port to send the CAN communication data, and then put the data into the serial communications data back to the computer of spontaneous self-received.Key words:CAN- bus; AT89S52 devices; SJA1000; PCA82C250第一章前言1.1 概述控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。
基于单片机的CAN总线数据采集设计与实现

基于单片机的CAN总线数据采集设计与实现一、背景介绍CAN(Controller Area Network)总线是一种现代化的通信协议,在汽车、工业控制和航空航天等领域得到了广泛的应用。
CAN总线具有高速传输、可靠性强、抗干扰能力强等特点,因此成为了现代化设备控制系统中不可或缺的部分。
基于单片机的CAN总线数据采集设计与实现,则是将单片机与CAN总线相结合,实现对CAN总线上的数据进行采集与处理,为现代化设备控制系统提供了稳定可靠的数据采集手段。
本文将介绍基于单片机的CAN总线数据采集的设计与实现过程。
二、设计原理1. CAN总线基本原理CAN总线是由BOSCH公司在1986年提出的一种串行通信协议,用于解决现代汽车中分布式电子系统的通信问题。
CAN总线采用了差分信号传输、抗干扰能力强、支持多主机通信等特点,因此在汽车电子领域得到了广泛的应用。
CAN总线的基本原理是采用数据帧的方式进行通信,数据帧包括了ID域、数据域、CRC校验等部分,通过CAN总线共享数据,实现了各个节点之间的通信。
在采集数据的过程中,需要对CAN总线上的数据进行解析,以获取需要的数据信息。
2. 单片机与CAN总线的通信单片机与CAN总线的通信可以通过CAN控制器实现,通常采用CAN芯片作为接口。
CAN 芯片负责与CAN总线进行通信,并将数据传输给单片机,单片机利用自身的处理能力对数据进行解析、处理,实现对CAN总线上数据的采集与控制。
在单片机与CAN总线的通信中,需要定义好通信协议,包括数据帧格式、ID定义、数据解析方式等,以确保单片机能够准确地获取需要的数据信息。
三、设计流程基于单片机的CAN总线数据采集设计与实现的流程包括了硬件设计、软件设计与测试验证三个基本环节。
1. 硬件设计硬件设计主要包括了单片机选型、CAN芯片选型、电路连接设计等内容。
在选型时需要考虑单片机的处理能力、通信速率要求、接口协议支持等因素,根据系统的应用场景选择合适的单片机和CAN芯片。
单片机can通信发送与接收实例

单片机CAN通信发送与接收实例一、概述在现代的自动化控制系统中,通信技术起着至关重要的作用。
CAN (Controller Area Network)总线作为一种先进的数据通信协议,被广泛应用于汽车、工业控制、航天以及其他领域。
本文将介绍基于单片机的CAN通信发送与接收实例,以供读者学习和参考。
二、CAN通信原理1. CAN通信特点1.1 高可靠性:CAN总线采用冗余校验以及非常靠谱的错误处理机制,提高了整个系统的可靠性。
1.2 高实时性:CAN总线的通信速度非常快,延迟时间短,适合高实时性的通信需求。
1.3 多主机系统:CAN总线支持多主机系统工作,适合网络化控制系统的需要。
2. CAN通信结构CAN通信的结构包含以下三个重要部分:物理层、数据链路层和应用层。
物理层负责数据的物理传输,数据链路层包括帧的发送和接收,而应用层则是用户数据和应用信息的处理。
三、CAN通信的硬件设计1. CAN总线控制器单片机需要带有CAN总线控制器才能进行CAN通信,常见的单片机型号包括AT89C51、ATmega16等。
2. CAN收发器CAN总线收发器用于将单片机的数字信号转换为CAN总线能够接受的电压信号,并将CAN总线的电压信号转换为单片机能够接受的数字信号。
3. 连接线路连接线路需要根据CAN总线的规范进行设计,要求信号线和接地线布局合理、阻抗匹配以及电气特性良好。
四、CAN通信的软件设计1. CAN总线初始化在进行CAN通信之前,需要对CAN总线进行初始化,包括波特率的设定、模式的选择以及滤波器的配置等。
2. 数据发送单片机通过CAN总线控制器将数据发送到CAN总线上的其他节点,发送数据时需要注意数据格式、ID的选择以及发送优先级等。
3. 数据接收单片机从CAN总线上接收其他节点发送过来的数据,接收数据时需要注意数据格式的解析、ID的识别以及接收缓冲器的管理等。
五、CAN通信的实例代码以下是基于AT89C51单片机的CAN通信发送与接收的实例代码:```c#include <reg52.h>sbit P1_0 = P1^0;sbit P1_2 = P1^2;void CAN_Init() {// CAN总线初始化代码}void CAN_SendData(u8 ID, u8 data) {// CAN总线发送数据的代码}u8 CAN_ReceiveData(u8* ID) {u8 data;// CAN总线接收数据的代码return data;}void m本人n() {CAN_Init();while(1) {CAN_SendData(0x01, 0x55);if(P1_0 == 1) {u8 ID, data;data = CAN_ReceiveData(ID);if(ID == 0x02 data == 0xAA) {P1_2 = 1;}}}}```六、实验结果经过实验验证,基于AT89C51单片机的CAN通信发送与接收代码能够正常工作,并成功实现了数据的发送和接收。
基于单片机的CAN总线数据采集设计与实现

基于单片机的CAN总线数据采集设计与实现CAN总线(Controller Area Network)是一种多主设备,分布式控制系统中常用的通信总线标准。
基于单片机的CAN总线数据采集设计与实现是指利用单片机作为CAN总线的节点设备,实现对其他设备的数据采集和通信。
需要选择适合的单片机作为CAN总线的节点设备。
常用的单片机有51单片机、AVR系列单片机、ARM Cortex等。
选取单片机时需要考虑其处理能力、存储容量和外设接口等因素。
根据需要选择支持CAN总线通信的单片机。
接下来,需要进行硬件设计。
CAN总线需要通过CAN收发器与单片机进行连接。
在设计硬件时,可以选用现成的CAN总线模块或芯片,也可以根据需要设计自己的CAN总线电路。
硬件设计过程需要注意CAN总线的电平转换、阻抗匹配和抑制电磁干扰等问题。
完成硬件设计后,需要进行软件设计。
软件设计包括单片机的驱动程序设计和数据采集算法设计等。
需要编写CAN总线的驱动程序,包括CAN总线的初始化、发送数据和接收数据等功能。
需要编写数据采集算法,根据需要对CAN总线上的数据进行采集、处理和存储。
数据采集算法可以根据不同的应用需求进行设计,例如温度采集、速度采集等。
在软件设计完成后,需要进行系统调试和验证。
通过调试工具对硬件连接进行检测和验证,确保硬件连接正确。
然后,对软件进行调试,检测驱动程序和数据采集算法的正确性。
可以通过模拟测试数据或连接其他设备进行测试。
进行系统功能测试和性能测试。
对设计的CAN总线数据采集系统进行功能测试,包括数据采集、数据传输和控制功能等。
进行性能测试,测试系统的数据采集速度、响应时间和稳定性等。
基于单片机的CAN总线数据采集设计与实现需要进行硬件设计、软件设计、系统调试和测试等多个步骤。
通过合理的设计和严格的测试,可以实现稳定高效的CAN总线数据采集系统。
CAN总线接口在单片机网络通信中的实现方法

CAN总线接口在单片机网络通信中的实现方法CAN(Controller Area Network)总线是一种广泛应用于汽车、工业控制和机器人等领域的串行通信协议。
它在单片机网络通信中具有重要的作用,可以实现高效可靠的数据传输。
本文将介绍CAN总线接口在单片机网络通信中的实现方法。
一、CAN总线的基本原理CAN总线是一种多主机、多从机的总线系统,其基本原理是基于广播方式进行通信。
CAN总线上的每个节点都可以发送和接收数据,它们通过共享线路传递信息。
在CAN总线中,每个节点都有一个唯一的标识符。
当某个节点发送一帧数据时,其他节点会接收到该帧数据并进行处理。
这种广播方式可以实现节点之间的高效通信。
二、CAN总线接口的硬件实现为了在单片机网络通信中实现CAN总线接口,我们需要使用一种具备CAN功能的单片机芯片,并连接相应的硬件电路。
1. CAN控制器:CAN控制器是实现CAN总线通信的核心部件,它负责发送和接收数据,并进行错误检测和纠正。
CAN控制器通常集成在专门的CAN芯片中,也可以作为单片机的一部分。
2. CAN收发器:CAN收发器是将CAN控制器产生的数字信号转换为物理信号,以便在CAN总线上进行传输。
它可以将接收到的差分信号转换为单端信号,并将发送的单端信号转换为差分信号。
3. 终端电阻:CAN总线上的终端电阻用于抵消传输线上的反射信号,并确保正确的信号传输。
终端电阻一般放置在CAN总线的两端。
4. 过滤器电路:过滤器电路用于过滤掉不需要的数据帧,只接收需要的数据帧。
它可以根据CAN帧的标识符进行过滤,提高系统的响应速度。
三、CAN总线接口的软件实现在硬件电路连接完成后,我们还需要编写相应的软件程序来实现CAN总线接口的效果。
1. 硬件驱动:首先,我们需要编写硬件驱动程序,通过设置单片机的寄存器配置CAN控制器和收发器。
这些寄存器包括CAN控制寄存器、接收缓冲区寄存器和发送数据寄存器等。
2. 初始化配置:在使用CAN总线前,我们需要进行初始化配置,包括设置波特率、模式选择、过滤器设置等。
基于单片机的CAN总线数据采集设计与实现

基于单片机的CAN总线数据采集设计与实现一、引言现代汽车的电子控制系统日益复杂,CAN(Controller Area Network)总线作为汽车电子系统中的一种通信协议,广泛应用于汽车内部各种控制单元之间的数据传输。
在汽车电子控制系统中,CAN总线的应用越来越广泛,它不仅能够实现各个控制单元之间的数据交换,还可以实现各种外部传感器和执行器与控制单元之间的快速通信。
对CAN总线的数据采集和处理变得越来越重要。
本文将介绍一种基于单片机的CAN总线数据采集设计与实现方法,通过使用单片机控制CAN总线进行数据的采集和处理,实现对汽车电子系统中的各种传感器的数据采集和处理,为汽车电子控制系统提供更加灵活和高效的数据交换方式。
二、CAN总线数据采集设计原理1. CAN总线基本原理CAN(Controller Area Network)总线是一种串行通信协议,它是一种快速、高效的数据传输方式。
传统的串行通信方式采用的是点对点通信方式,而CAN总线可以实现多节点之间的并行通信,因此具有更高的传输效率和更好的稳定性。
CAN总线的基本组成包括控制器、主控节点、被控节点等。
CAN总线数据采集的基本原理是通过单片机控制CAN总线进行通信,实现对CAN总线上的数据进行采集和处理。
单片机可以通过CAN控制器与CAN总线进行通信,实现数据的接收和发送。
通过编程实现CAN数据帧的接收和解析,可以实现对CAN总线上的数据进行采集和处理。
1. 硬件设计基于单片机的CAN总线数据采集设计的硬件主要包括单片机、CAN总线收发器、外部时钟电路等。
单片机是整个系统的核心部件,它通过CAN总线收发器与CAN总线进行通信,并通过外部时钟电路提供时钟信号。
CAN总线收发器用于将单片机的数字信号转换成CAN总线上的模拟信号,并将CAN总线上的模拟信号转换成单片机的数字信号,实现单片机与CAN总线的通信。
3. 实现步骤第一步,硬件连接。
将单片机、CAN总线收发器、外部时钟电路等硬件按照设计要求进行连接,并进行电气连接的检查和测试。
基于单片机的CAN总线通讯实现

基于单片机的CAN总线通讯实现CAN(Controller Area Network)总线是一种现代的串行通信总线,广泛应用于汽车电子系统和工控领域。
它具有高可靠性、抗干扰能力强、高速传输、多节点连接等特点,成为实时控制系统的首选通信方式。
实现基于单片机的CAN总线通讯,需要经过以下几个步骤:1.硬件准备:选择合适的CAN控制器和单片机,常用的CAN控制器有MCP2515、SJA1000等。
接下来需要连接CAN控制器和单片机,包括连接CAN高低线路、配置引脚等。
2.引脚配置:根据所使用的单片机和CAN控制器的规格,配置相应的引脚。
通常需要配置CAN_TX、CAN_RX引脚,同时还需要配置中断引脚。
3. 初始化CAN总线:初始化CAN总线的过程包括设置波特率、模式选择、滤波器设置等。
波特率是通信的重要参数,需要保证发送和接收端的波特率一致,通常使用比较常见的波特率如500kbps。
4.发送数据:CAN总线通信是基于消息的,发送数据需要构建CAN消息帧。
消息帧包括标识符、数据长度、数据内容等。
在发送数据之前,需要准备好发送的数据,并将数据放入CAN消息帧中,最后将消息帧发送到总线上。
5.接收数据:接收数据需要配置CAN总线的工作模式和接收过滤器。
当有数据从总线上接收时,CAN控制器将数据存入接收缓冲器,并产生中断或者置位标志位来提醒主控处理接收到的数据。
6.数据处理:接收到的数据可以根据需要进行处理,包括解析、判断、存储等。
根据数据的标识符和长度等信息,可以将数据分发给不同的处理程序进行处理。
7.错误处理:在CAN总线通信过程中,可能会出现数据错误、通信超时等问题。
需要设置相应的错误处理机制,包括错误标志位的监测、错误计数器的清零等。
8.电源管理:在使用CAN总线通信时,需要合理管理系统的功耗和电源。
对于低功耗应用,可以将CAN控制器和单片机配置为睡眠模式,待接收到唤醒信号后再恢复正常工作。
总结:基于单片机的CAN总线通讯实现需要进行硬件准备、引脚配置、初始化CAN总线、发送数据、接收数据、数据处理、错误处理和电源管理等一系列步骤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAN总线通讯基于51单片机应用第一章前言1.1 概述控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。
它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。
CAN的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。
随着计算机硬件、软件及集成电路技术的迅速发展,同时消费类电子产品、计算机外设、汽车和工业应用等的需求不断增加。
高速、高可靠和低成本的通信介质的要求也随之提高。
现场总线是当今自动化领域技术发展的热点之一,它为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
微处理器中常用的串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线(USB),以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)等。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
在计算机数据传输领域内,长期以来使用的通信标准,尽管被广泛使用,但是无法在需要使用大量的传感器和控制器的复杂或大规模的环境中使用。
控制器局部网CAN(CONTROLLER AERANETW0RK)就是为适应这种需要而发展起来的。
随着汽车电子技术的发展,消费者对于汽车功能的要求越来越多,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求,使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,这就促进了车用总线技术的发展。
CAN 总线的出现,就是为了减少不断增加的信号线,所有的外围器件都可以被连接到总线上由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被应用于如船舶、航天、工业测控、自动化、电力系统、楼宇监控等其他领域中。
1.2 CAN总线的特点80年代末,在汽车工业中,由于众多的控制设备与测试仪器之间需要进行大量数据交换,传统的总线无法满足需求,德国BOSCH公司提出了CAN 总线,这种新的串行数据通讯协议。
CAN总线即控制器局域网总线,通信接口中集成了CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
CAN (Controller Area Network)属于现场总线的一种,在传统的工业控制领域中,大部分的通信采用RS232、RS485或RS422总线。
相比之下,RS232、RS485或RS422总线有着通信距离近,通讯速度慢,抗干扰性能差等缺点。
通讯一般采用主从方式,通过主站查询方式进行通讯,实时性、可靠性较差。
当系统有错误,多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点。
基于CAN 总线的分布式控制系统在很多方面具有明显的优越性。
L而CAN 的电路结构简单,要求的线数较少,只需要两根线与外部器件互联,使得各控制单元能够通过CAN总线共享所有的信息和资源。
达到简化布线、减少传感器数量、避免控制功能重复的效果。
CAN 具有的完善的通信协议,并且可以通过CAN 控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。
CAN支持分布式控制或实时控制,工作于多主方式,网络上各个节点均可以在任一时刻主动发送信息,可以点对点,点对多点以及全局广播方式收发数据。
网络中的各节点都可根据总线访问优先权,采用非破坏性总线总裁技术,通信速度快,可靠性高,可大大节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。
CAN没有采用站地址编码,而是对通信数据进行编码,这可使不同的节点同时接收到数据,这使得CAN 总线的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。
它具有如下特点:1)CAN 是到目前为止为数不多的有国际标准的现场总线,总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。
2)CAN总线没有采取传统的站地址编码,不对节点进行地址规定,而是把通信数据块进行编码。
这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由1l位或29位二进制数组成。
这种按数据块编码的方式,使用报文的标识符来指定报文的优先级以及报文的内容,高优先级的节点享有传送报文的优先权。
还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。
采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短,从而保证了通信的实时性。
3)CAN 总线采用了多主竞争式总线结构,通信介质可以是双绞线、同轴电缆或光导纤维,可以多个主站运行并且分散仲裁。
CAN总线上任意节点可以点对点,一对多及广播集中方式传送和接受数据,而且可以任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。
CAN 通讯距离最大是1O公里(设速率为5Kbps),最大通信速率为1Mbit/s(设通信距离为4O米)。
4)CAN 采用非破坏性的总线仲裁技术,即载波侦听多路访问/冲突检测(CSMA/CD)的总线仲裁方式,当多个节点同时发送数据时,优先级低的节点会主动停止发送,高优先级的节点可继续传输,节省总线仲裁时间。
避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送。
5)CAN总线协议采用了完善的错误检测与错误处理机制,包括了CRC校验、错误报文自动重发、错误状态判断、临时错误自动恢复等措施,从而很好的保证了数据通信的可靠性。
节点在错误严重的情况下,具有自动关黔6)闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。
CAN 总线采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。
具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点。
可根据报文的ID决定接收或屏蔽该报文。
可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的通信,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。
CAN总线通过CAN 控制器接口芯片的输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。
CAN 总线的信号状态为2种,隐位与显位。
当隐位与显位发送出现竞争时,最终结果是显位。
在处理冲突时,由于该信号的二值且“单稳态”的特性变得简单,报错帧可以使所有节点很容易地取得一致性的数据,并且保证了节点状态的同步,这种二值特性对CAN 总线的可靠性有很大保障。
而且CAN 节点在出现严重错误的情况下,可以自动关闭输出,避免总线上其他节点的操作受影响,从而保证不会因个别节点出现问题,而使得总线处于”死锁”状态。
CAN 总线具有位填充、回读、错误约束、出错自动重发等优点,同时通信速率高、通信距离远、容易实现、且性价比高。
1.3 CAN总线的发展前景CAN 最初是用于汽车行业的监测、控制,用来解决汽车内部的复杂硬件信号接线的低成本通信总线,现今CAN总线已经被公认为一种可靠的网络总线在汽车上得以应用。
CAN总线共享信息和资源,总线的数据通信提高了系统可靠性、实时性、灵活性、可维护性,更好地匹配和协调各个控制系统。
随着汽车电子技术的发展具有高度灵活性、简单的扩展性、优良的抗干扰性和处理错误能力的CAN 总线,越来越受到人们的重视,它在汽车领域上得到了广泛的应用。
世界上一些著名的汽车制造厂商,都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。
近年来CAN 总线已发展成为汽车电子系统的主流总线,已形成国际标准的现场总线,并由ISO正式颁布了IS011898CAN 高速应用标准和ISO11519CAN 低速应用标准,这为CAN 总线的标准化、规范化铺平了道路。
CAN 总线以其高性能,高可靠性及独特的设计,在现代分布式测量与控制技术领域中的应用已愈来愈广泛。
同时由于CAN 总线自身的特点,其应用范围目前已不再局限于汽车行业,而是转向铁路、交通、自动控制、航空航天、航海、机械工业、机器人、医疗器械及安防等领域发展。
CAN总线的发展已经颇具规模,它不仅在汽车领域的应用占据一定优势,在其他工业领域内也占有一席之地。
这要归根于通信技术的不断进步,对通讯本身的要求不断提高,这种形势下CAN 总线的优势在于其优越的抗干扰能力和性价比。
尽管CAN总线有一定局限,甚至还有漏洞,但对CAN 总线的改进还在继续,相信在未来的发展中,CAN 总线通过不断的更新和改进,能够取得更大的进步。
第2章系统方案总体设计2.1 系统原理当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。
对每个节点来说,无论数据是否是发给自己的,都对其进行接收。
每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。
在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。
当几个站同时竞争总线读取时,这种配置十分重要CAN总线的报文发送和接收。
当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时, 转为发送报文状态。
CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。
每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。
由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。
我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。
当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。
它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。
2.2 系统总体设计方框图图2-1 系统总体设计方框图2.2.1 51单片机系统的控制芯片采用AT89S52单片机来控制,因为AT89S52应用比较广泛,并且成本低,操作控制简单,功耗较低,运行可靠性强。
系统本身对处理器处理速度的要求不是很高,所以选择该款单片机。