用87C196NT单片机实现CAN总线通信
- 格式:doc
- 大小:125.50 KB
- 文档页数:4
基于单片机的CAN总线数据采集设计与实现随着现代汽车电子技术的迅速发展,CAN(控制器局域网)总线已成为汽车电子系统中应用最广泛的数据通信协议。
CAN总线可以以高速、高效、可靠的方式在汽车电子控制单元之间传输数据,从而实现多个控制单元的共享信息,提高了汽车电子系统的整体性能。
一、硬件设计本文所使用的CAN总线数据采集硬件设计方案如下:1、主控板:采用AVR单片机ATmega328P作为主控处理器,具有较高的运算速度和存储容量,可以满足CAN总线数据采集的需求。
2、CAN控制器芯片:采用MCP2515作为CAN控制器芯片,可以实现CAN总线的接收和发送功能,支持CAN2.0B协议。
3、CAN总线收发器:采用SN65HVD230作为CAN总线收发器,可以实现CAN总线信号的转换和隔离,提高信号的传输可靠性。
4、电源管理模块:采用LM2596S作为电源管理模块,可以对输入的直流电压进行降压稳压,提供可靠的电源供应。
1、CAN总线接收程序设计CAN总线接收程序主要包括初始化、中断服务程序和数据处理三个部分。
具体实现步骤如下:(1)初始化部分:包括IO口配置、CAN控制器芯片初始化、CAN总线收发器初始化等。
(2)中断服务程序部分:当CAN总线接收到数据时,会触发中断服务程序。
中断服务程序主要包括数据接收和数据处理两个部分。
数据接收部分将CAN控制器芯片接收到的数据存储在缓冲区中;数据处理部分根据接收到的数据进行数据解析和数据存储操作。
(3)数据处理部分:根据接收到的CAN总线数据进行数据解析和数据存储操作。
具体实现包括数据解析、存储数据、显示数据等步骤。
将CAN总线接收到的数据从十六进制转换为十进制数值,并保存到内存中,最终将数据显示在液晶屏上。
(2)数据处理部分:CAN总线发送程序需要存储要发送的数据,并将数据转换为CAN 总线所需要的格式。
具体实现包括数据存储、数据转换等步骤。
(3)数据发送部分:将处理好的数据通过CAN控制器芯片发送到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总线的87C196CA单片机串行通讯的应用
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通讯实现方式主要有以下几种:
1.硬件实现方式:通过CAN控制器和支持CAN通信的微控制器来实现。
这些控制器具有CAN总线驱动能力,能实现多个节点之间的通信。
2.软件实现方式:通过在微控制器上运行CAN通信协议栈来实现。
这种方法不需要额外的硬件设备,但需要占用一定的处理器资源。
3.硬件和软件结合实现方式:这种方式综合了硬件实现和软件实现的优势,既能保证通信性能,又能降低资源占用。
4.基于FPGA的实现方式:通过编写FPGA程序来实现CAN通信,具有较高的灵活性和可定制性,但需要一定的硬件设计和编程能力。
5.基于嵌入式系统的实现方式:在嵌入式系统中集成CAN通信模块,通过操作系统或实时操作系统实现CAN通信协议栈,实现多个节点之间的通信。
6.使用现成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(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(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总线、发送数据、接收数据、数据处理、错误处理和电源管理等一系列步骤。
用87C196CA实现CAN总线通信的方法
程军
【期刊名称】《微型机与应用》
【年(卷),期】2000(019)004
【摘要】用Intel 87C196CA单片机实现CAN总线通信,本文主要介绍了它的软件实现方法.
【总页数】3页(P21-23)
【作者】程军
【作者单位】济南中国重汽技术中心,250002
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于CAN总线的老人服务机器人通信方法的实现 [J], 王琨;袁兵;骆敏舟;曹毅;李可;张秋菊
2.FX系列PLC和CAN总线网络节点通信的一种方法及实现 [J], 周纯杰;王永骥
3.一种基于自由串口协议的PLC与CAN总线通信方法及实现 [J], 杜惠明;胡康杰;赵昊
4.DMX512与CAN总线混合通信网的实现方法 [J], 冯立杰;傅民仓;李文波
5.基于状态机方法的CAN总线通信的FPGA实现 [J], 姚君
因版权原因,仅展示原文概要,查看原文内容请购买。
基于单片机的CAN总线数据采集设计与实现CAN总线是一种用于控制系统中节点之间进行数据通信和传输的一种通讯协议。
它被广泛应用在汽车电子控制系统、工业控制系统、航空航天及机器人等领域。
本文将结合单片机技术,介绍基于单片机的CAN总线数据采集的设计与实现。
一、CAN总线基本原理CAN总线是一种串行数据总线系统,通过两根差分信号线CAN_H和CAN_L进行数据的传输,具有高速、安全、可靠的特点。
CAN总线采用分布式控制方式,具有仲裁、消息优先级、多主机能力和错误检测、纠正机制等特点。
CAN总线采用帧格式进行数据传输,分为数据帧和远程帧两种类型。
其中数据帧用于传输数据,远程帧用于请求数据。
二、基于单片机的CAN总线数据采集设计1. 系统硬件设计基于单片机的CAN总线数据采集系统,首先需要选择适合的单片机和CAN总线芯片。
常用的单片机有STM32系列、NXP系列等,可以根据具体的需求进行选择。
同时需要加入CAN收发器和电阻网络等外围电路,以保证CAN总线的正常通信。
2. 系统软件设计系统软件设计主要包括CAN总线驱动程序的编写、数据采集程序的设计以及通信协议的处理。
CAN总线驱动程序需要根据单片机型号和CAN总线芯片的规格进行编写,包括初始化、发送、接收等功能。
数据采集程序需要根据具体的传感器和数据类型进行设计,包括数据采集、处理和发送等功能。
同时需要根据通信协议进行数据的打包和解析。
2. CAN总线驱动程序编写CAN总线驱动程序主要包括CAN总线的初始化、发送和接收等功能。
通过配置CAN总线的寄存器,在初始化时将CAN总线设置成工作模式,设置波特率,滤波器等参数,以保证CAN总线的正常工作。
在发送和接收时,通过相应的寄存器进行数据的发送和接收,实现与其他节点的数据通信。
3. 数据采集程序设计数据采集程序主要包括数据采集、处理和发送等功能。
在数据采集时,通过对传感器的读取,获取相应的数据。
数据处理主要包括对采集到的数据进行滤波、校正、打包等处理,以保证数据的准确性和可靠性。
用87C196NT单片机实现CAN总线通信
1 CAN总线简介
CAN(Controller Area Network)即控制器局域网,主要用于各种设备监测及控制的一种现场总线。
CAN总线最初是由德国Bosch公司为汽车的监测、控制系统而设计的。
CAN总线具有独特的设计思想,良好的功能特性和极高的可靠性,现场抗干扰能力强。
具体来讲,CAN总线具有如下特点:
*结构简单,只有2根线与外部相连,且内部含有错误探测和管理模块。
*通信方式灵活。
可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从。
*可以点对点、点对多点及全局广播方式发送和接收数据。
*网络上的节点信息可分成不同的优先级,可以满足不同的实时要求。
*CAN总线通信格式采用短帧格式,每帧字节数最多为8个,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。
同时,8个字节也不会占用总线时间过长,从而保证了通信的实时性。
*采用非破坏性总线仲裁技术。
当2个节点同时向总线上发送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据。
这大大地节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。
*直接通信距离最大可达10km(速率5kb/s以下),最高通信速率可达1Mb/s(此时距离最长为40m);节点数可达110个,通信介质可以是双绞线、网轴电缆或光导纤维。
*CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等多项工作。
*CAN总线采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。
CAN总线的以上特点,为工业控制系统中高可靠性的数据传送提供了一种新的解决方案。
其在国外工业测控领域已经有了广泛的应用,现国内的许多工业控制领域也开始使用基于CAN的现场总线。
CAN总线已成为最有发展前途的4
标志符作为报文的名称,在仲裁过程期间,首先被送到总线。
在接收器的验收判断中和仲裁过程确定访问优先权中都要用到。
远程发送请求位(RTR)用来确定发送远程帧还是数据帧:当RTR为高电平时,CAN控制器发送远程帧;为低电平时,发送数据帧。
数据长度码(DLC)用来确定每帧发送几字节的数据,最多为8字节。
3.2 CAN控制器PCA82C200介绍
PCA82C200芯片是Philips公司生产的CAN控制器,是一种I/O设备基于内存编址的微控制器。
双设备的独立操作是通过像RAM一样的片内寄存器修正来实现的。
它只支持标准的信息帧格式。
PCA82C200的地址区包括控制段和信息缓冲区控制段。
在初始化载入时可被编程来配置通信参数(例如,位时序)。
微控制器也是通过这个段来控制CAN总线上通信的。
PCA82C200有2种工作模式:复位模式和工作模式。
在复位模式下可以对接收代码、接收屏蔽、总线时序寄存器0和1以及输出控制寄存器进行设置。
一般在CAN初始化时完成对以上寄存器的设置,当CAN进入工作模式后,它们的值就不再变化。
在工作模式下可以进行数据的发送和接收。
特别要注意的是当硬件复位或控制器掉线时会自动进入复位模式,这样就不能进行正常的CAN通信,这就要求对复位进行监控。
当发生硬件复位或控制器掉线而进入复位模式时,就要求把复位位置为0进入工作模式,这样CAN就能正常地发送接收了。
3.3 网络通信规则
CAN总线为多主工作方式,网络上任一节点均可在任意时刻主动向网络上其它节点发送信息,而不分主从。
通信方式灵活,且无需占地址等节点信息。
为禁止总线冲突,CAN总线采用非破坏性总线仲裁技术,根据需要将各个节点设定为不同的优先级,并以标志符ID标定,其值越小,优先级越高。
在本系统的实际应用中,主站负责整个网络。
它向从站发送各种控制命令,从站按照来自主站的命令进行操作。
主站可以选择任意一个从站交换数据信息,任一从站一旦被选中,即可以接收来自主站的信息,也可以依据从站的命令和凡站回送信息。
当某一从站发生故障时,可以主动向从站发送有关信息。
任一从站与主站交换信息时,必须带上从站地址信息。
3.4 下位机软件编程
单片机87C196NT与上位机之间的CAN通信接口程序见本刊网络补充版。
()。
单片机向上位机一直以500 Kbps的波特率发送数据,当单片机接收到上位机下传的数据后,又把接收到的数据转发给上位机。
用我国台湾研华公司的CAN卡,调试时用它自带的Monitor程序。
结束语
将CAN现场总线应用于电力系统线路分段保护监控单元中,有利于实现电力系统中检测的实时性和可靠性。
在现有设备的基础上,进一步提高了电网的自动化监测和管理水平,对提高供电的可靠性、增加电网的经济效益有着重大的意义。