基于CAN总线智能节点设计
- 格式:pdf
- 大小:158.09 KB
- 文档页数:4
基于CAN 总线的智能节点设计朱悦涵,林立,邵明(福建工程学院福建福州350108)摘要:应用51单片机为控制核心结合其他的器件设计了一种能连接于CAN 总线上的智能节点。
通过单片机控制CAN 总线控制器SJA1000,并进一步通过CAN 总线收发器PCA82C250,实现该智能节点与CAN 总线的通信。
此外通过对MCS-51单片机的I/O 进行相应的扩展,使该智能节点具有了8输入和8输出的控制端口。
最终完成该智能节点并通过实际测试,验证了其实用性。
关键词:CAN 总线;智能节点;MCS-51;SJA1000中图分类号:TP336文献标识码:A文章编号:1674-6236(2012)24-0090-03Design of intelligent node based on CAN busZHU Yue -han ,LIN li ,SHAO Ming(Fujian University of Technology ,Fuzhou 350108,China )Abstract:The thesis introduces a design of a kind of an intelligent node ,which is used to communicate with CAN bus.Single -chip microcomputer MCS -51is applied as a central controller ,of which other devices operate under control.Applying the Single -chip microcomputer to control CAN bus controller SJA1000realizes the communication with CAN bus ,through the CAN bus transceiver PCA82C250.Through I/O extension of MCS -51MCU ,the intelligent node has the control port of eight inputs and eight outputs.At last the practicability of the intelligent node has been verified by the practical tests.Key words:CAN bus ;intelligent node ;MCS-51;SJA1000收稿日期:2012-10-09稿件编号:201210026作者简介:朱悦涵(1981—),男,福建福州人,硕士,助教。
手把手教你设计CAN总线系列讲座(2)—CAN总线智能节点的设计在远程测控系统中,都要通过传感器或其他测量装置获取环境或相关的输入参数,传送到处理器,经过一定的算法,做出相应的控制决策,启动执行机构对系统进行控制,基于CAN总线的测控系统将单个测控设备变成网络节点,将控制系统中所需的基本控制、运行参数修改、报警、显示和监控等功能分散到各个远程节点中。
因此总线上的节点应该具有总线通信功能和测控功能,这必然离不开微处理器。
我们把具有这类功能的节点叫智能节点。
1 CAN网络节点结构和SJA1000的应用结构图一般把每个CAN模块分成不同的功能块。
这里以分布式恒温控制节点构成的CAN图1 CAN总线控制网络结构图控制网络为例(如图1所示),分析一下基于CAN总线的分布式网络节点的结构。
CAN节点由微处理器、CAN控制器SJA1000、光耦6N137模块和CAN驱动器82C50构成。
CAN控制器SJA1000执行在CAN规范里规定的完整的CAN协议,用于报文的缓冲和验收过滤,负责与微控制器进行状态、控制和命令等信息交换;在SJA1000下层是CAN收发器PCA82C50,它为CAN控制器和总线接口,它控制从CAN控制器到总线物理层或相反的逻辑电平信号,提供对总线的差动发送和对CAN控制器的差动接收功能。
光耦6N137起隔离作用。
图2 SJA1000的结构图所有这些CAN模块都由微处理器控制,它负责执行应用的功能,负责控制执行器(比如加热设备)、读传感器(比如温度)和处理人机接口。
如图2是SJA1000的应用结构图。
在CAN规范里,CAN核心模块控制CAN帧的发送和接收。
接口管理逻辑负责连接外部微处理器,该控制器可以是单片机、DSP或其他器件。
经过SJA1000复用的地址/数据总线访问寄存器和控制读写选通信号。
SJA1000的发送缓冲器能够存储一个完整的报文(扩展的或标准的)。
当微处理器初始化发送接口管理逻辑,CAN核心模块就会从发送缓冲器读CAN报文。
基于SJA1000的CAN节点设计文件信息类别内容关键词SJA1000,CTM系列隔离CAN收发器基于SJA1000的CAN节点设计摘要修订历史版本日期原因Rev X1 2006-12-13 内部制定初稿Rev 1.0 2006-12-15 第一次发布目录1. 基于SJA1000的CAN节点设计 (3)1.1 硬件设计电路 (3)1.1.1收发器隔离电路设计 (3)1.1.2 CAN总线接口设计 (4)1.2 软件设计 (5)程序清单1.1 定义片选地址 (5)程序清单1.2 初始化SJA1000 (5)程序清单1.3 发送报文 (6)2. 应用实例 (7)3. 声明 (1)1.基于SJA1000的CAN节点设计1.1 硬件设计电路CAN总线是一种最有前途的现场总线,因其优异性能而在工业控制、汽车电子、安防等方面得到广泛应用。
设计CAN-bus通讯接口是很重要的一个环节,设备的正确运行与其密切相关。
如图 1.1给出了一个实际的CAN-bus通讯单元电路图,电路结构为:MCU(P89C52)+CAN控制器(SJA1000)+隔离CAN收发器(CTM Module)。
图 1.1 CAN-bus通讯单元原理图如图 1.1所示,整个系统电源采用+5V电源输入,上电复位芯片(CAT810L)可保证上电时正确的启动系统。
微处理器采用PHILIPS的P89C52单片机,该系列单片机是80C51微控制器的派生器件,采用先进的CMOS工艺制造,指令系统与80C51完全相同。
CAN控制器采用PHILIPS的SJA1000,SJA1000是一款独立的控制器,用于汽车和一般工业环境中的控制器局域网络。
它是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代产品。
而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN 2.0B 协议,是目前市面上用的最广的一款CAN控制器。
基于单片机的智能传感器CAN总线接口硬件设计随着智能化技术的不断发展,人们越来越关注智能系统的搭建,传感器技术的应用也越来越广泛,单片机技术更是在这个背景下广受关注。
在实现智能传感器的联网和信息处理方面,CAN总线作为一种主要网络协议,已经被广泛应用。
在这种情况下,智能传感器必须具有相应的CAN总线接口设计。
本文将介绍基于单片机的智能传感器CAN总线接口硬件设计。
1、 CAN总线介绍CAN(Controller Area Network)总线是一种串行通信协议,主要用于多个控制节点之间的实时数据传输。
CAN总线的通讯速度高,误码率低,具有自适应性等特点。
CAN总线的应用包括工业控制系统、汽车电子控制系统等。
2、硬件设计原理基于单片机的智能传感器CAN总线接口硬件设计需要根据自己的实际需求进行选择。
以STM32单片机为例,STM32单片机的CAN总线接口包括CAN1和CAN2,这两个接口在硬件电路上都有Rx和Tx引脚和节点电阻。
3、硬件设计流程(1)选择STM32单片机在选取单片机的时候,需要根据实际应用场景来选择。
STM32单片机有许多系列,每个系列又有不同的型号,不同型号的单片机内置了不同的外设,需要根据实际需求进行选择。
同时,要根据芯片性价比、性能、功耗等因素进行考虑。
(2)CAN总线选择在硬件设计中,需要选择CAN总线芯片,这个芯片需要支持CAN2.0A和CAN2.0B协议,并且需要支持高速通讯。
同时,要注意芯片的封装和额定工作温度等特性。
(3) CAN总线硬件连接在硬件连接中,需要将CAN总线芯片的Rx和Tx引脚和单片机的CAN1或CAN2接口相连,同时还需添加适当的电流限制电阻和终端电阻。
(4) CAN总线软件调试最后,需要对硬件电路进行软件调试,包括使用标准的CAN总线协议进行通信、CAN总线的数据传输、接收和发送数据、调试CAN中断等。
4、总结基于单片机的智能传感器CAN总线接口硬件设计需要根据实际需求进行选择,在硬件设计中需要选择合适的单片机、CAN总线芯片,并进行正确的硬件连接。
基于CAN总线的智能控制器设计随着科技的不断发展,智能控制器在工业自动化中的应用越来越广泛。
CAN(Controller Area Network)总线作为一种高效可靠的通信协议,被广泛应用于智能控制器的设计中。
CAN总线是一种串行通信协议,具有高速传输、抗干扰能力强等特点。
它最初是由德国BOSCH公司提出的,用于汽车电子系统的通信。
随着其优越性能的认可,CAN总线逐渐在其他领域的智能控制器中得到应用。
智能控制器是一种能够根据外部环境和用户需求自主调节的控制设备。
它通过传感器采集环境信息,并通过CAN总线与执行器进行通信,实现对设备的控制。
在智能控制器中,CAN总线充当了数据传输的核心角色。
基于CAN总线的智能控制器设计包括硬件和软件两个方面。
在硬件设计中,首先需要选取合适的微控制器作为控制器核心,然后进行外围电路的设计,包括CAN总线收发器、传感器接口电路、执行器驱动电路等。
这些电路的设计需要考虑到CAN总线的特性,确保数据的稳定传输。
在软件设计中,首先需要编写CAN总线通信协议的驱动程序,实现与其他设备的通信。
其次,根据具体的控制需求,设计相应的控制算法,通过CAN总线将控制指令发送给执行器。
同时,还需要编写数据采集程序,将传感器采集到的数据通过CAN 总线发送给上位机或其他设备。
基于CAN总线的智能控制器设计具有许多优势。
首先,CAN总线具有较高的传输速率和较低的误码率,可以满足实时性和可靠性要求。
其次,CAN总线支持多节点通信,可以实现多个智能控制器之间的数据交互。
最后,CAN总线的抗干扰能力强,可以在复杂的工业环境中稳定运行。
综上所述,基于CAN总线的智能控制器设计是一种有效的解决方案。
它通过充分利用CAN总线的特性,实现了智能控制器的高效、可靠和稳定运行。
随着科技的不断发展,基于CAN 总线的智能控制器设计将在工业自动化中发挥更加重要的作用。
基于CAN总线的通信节点设计作者:王云午魏宗寿来源:《现代电子技术》2008年第03期摘要:介绍了基于CAN总线的通信节点设计方法。
在分析CAN总线的主要技术特性及CAN总线在工业控制系统中所处的位置之后,给出了设计CAN通信节点选用的器件及其硬件特性和通信节点的硬件设计框图。
描述了CAN节点软硬件设计方法,同时给出了CAN控制器的初始化流程以及发送、接收程序流程图。
介绍的设计方法易于掌握且具有较强的灵活性和通用性,可用于多种工业现场控制。
关键词:CAN总线;SJA1000;总线缓冲器;通信节点中图分类号:TN919 文献标识码:B文章编号:1004373X(2008)0307203Design of Communication Node Based on CAN BusWANG Yunwu,WEIZongshou(Key Laboratory of Opto—Technology and Intelligent Control Ministry of Education,Lanzhou JiaotongUniversity,Lanzhou,730070,China)Abstract:This paper introduces the way of designing communication node based on CAN bus.After introducing the main technical characteristic of CAN bus and its position in the industrial control system,it gives components for designing communication node of CAN bus and its characteristic of hardware and it also gives the designing chart of hardware of communication node.The design of hardware and software is described in this paper,it also gives the initialization process of CAN controller and the flow chart of sending and receiving data program.The method of design in this paper is easy to grasp and is flexibility and versatility,it can be used to control in many industry fields.Keywords:CAN bus;SJA100;bus buffer;communication node1 引言在20世纪80年代初,德国的BOSCH公司提出了用CAN总线(Controller Area Network,控制器局域网)来解决汽车内部的复杂硬件信号接线。
基于CAN总线信号采集系统电路设计随着汽车工业的进步,CAN总线系统逐渐成为汽车电气通讯领域的主流传输技术。
CAN总线采集系统是目前汽车电气采集数据的基础,它可以采集引擎、变速器、ABS、空调、电子油门等多种设备的信号并实时传输到控制器,从而实现车辆状态的监测和控制。
本文将详细探讨基于CAN总线信号采集系统电路设计。
一、系统设计方案系统的设计方案,包括了CAN芯片的选择、系统的拓扑结构、信号输入方式、信号处理与转化、输出方式等等。
根据实际需求,系统主要分为以下两个部分:(1)CAN节点部分CAN节点部分是CAN信号采集系统的核心部分,主要由MCU单片机和CAN收发器构成。
MCU单片机是实现系统的控制和数据处理,它接收各个传感器的模拟量信号,并将其转换成数字量信号,再将其打包成CAN帧输出给CAN总线。
而CAN收发器则是实现在CAN总线上的数据传输,它主要负责对CAN总线上的信号进行收发。
CAN节点部分的实现过程主要包括以下五个步骤:Step 1. 选定MCU并搭建系统选定一款MCU芯片,例如STC12C5A60S2,搭建工程并进行配置。
在搭建过程中,需要注意向MCU传输指令的方式,最常用的方式是串口传输。
Step 2. 选择CAN收发器并接入CAN总线在本系统中,我们选择了二代高速CAN收发器MCP2515,它可以实现在高速的CAN总线中进行数据传输。
将CAN收发器与MCU单片机进行连接,然后接入CAN总线。
Step 3. 建立CAN节点的通信协议在CAN节点与CAN总线建立通信协议之前,我们要先了解CAN的工作机制。
CAN总线实际上是一条双向通路,任意一个节点都可以接收和发送数据。
每个节点都有自己的地址码,通过地址码来定位数据的发送和接收。
因此,在CAN节点与CAN总线建立通信协议时,需要确定每个节点的地址码以及数据包的格式。
Step 4. 采集模拟量信号在CAN节点部分,MCU单片机需要采集各个传感器的模拟量信号,并将其转换成数字信号,再将其打包成CAN帧输出给CAN总线。
一、摘要本实验介绍一种基于CAN总线控制器SJA1000的总线节点模块,包括SJA1000的部分重要寄存器的功能介绍,以及软件编程的实现。
,,,,,,,,,,,,,,,特点:1.可实现任意单片模块的互相通信,由于SJA1000兼容5V和3.3V的逻辑电平,且供电电压也为3.3V~5.6V,因而可以使基于逻辑供电5V和3.3V的系统能够很容易的挂在CAN总线网络上,解决模块之间的电平不兼容问题。
2.总线控制器宇驱动器之间利用6N137高速光耦隔离技术,使得网络上的各个模块与总线本身完全隔离,保证了总线的安全性,也保证了各模块之间的独立性。
当总线网络中含有大负载驱动时这点表现的尤为重要。
3.由于采用SJA1050作为总线驱动器,实现数据在总线网络里高速传输,最高速度可达到1Mbps。
二、CAN总线简介1,,,,,.CAN总线的特点,,,,,CAN(Controller,,,,,Area,,,,,Network局域控制网),,,,,总线由Bosch、Benz研究试验,于1986年2月正式提出,至1993年11月Bosch,,,,,CAN2.0成为国际标准(ISO11898)。
2000年CAN总线芯片年度销售超过1亿片,欧产轿车都至少装配一条CAN总线网络。
目前CAN总线的应用已从汽车、火车、轮船迅速扩展到机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械、家用电器及传感器等领域。
其被公认为是最有前途的现场总线之一。
由于采用了许多新技术及独特的设计,CAN总线与一般的通讯总线相比,它的数据通讯具有突出的可靠性、实时性和灵活性。
其特点可概括如下:●CAN是到目前为止唯一有国际标准的现场总线。
●CAN为多主方式工作,网络上任一节点均可在任一时刻主动地向网络上其他节点发送信息,而不分主从。
●在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时需要,优先级高的数据最多可在134μs内得到传输。
基于CAN总线智能节点设计The design of intelligent nodes Based on CAN Bus李光忠1,吴士涛2LI GUANG-ZHONG,WU SHI-TAO(1. 山东农业大学信息科学与工程学院,山东 泰安 271018;2. 山东科技大学,山东 泰安 271000)(1. College of Information Science and Engineering, Shandong Agriculture University,Taian 271018 China;2. Shandong University of Science andTechnology,Taian 271000 China)摘要:CAN总线是一种应用极为普及的现场总线。
文中提出了一种CAN总线通信接口的设计方案。
CAN总线智能节点用单片机AT89S52和SJA1000控制器为核心组成。
分别从硬件电路设计和SJA1000软件初始化、发送、接收设计方面进行了分析,实现了相应的网络控制功能,具有较高的实用性。
关键词:CAN总线,智能节点,系统设计中图分类号:TP336 文献标识码:BAbstract:Can-Bus is popular as a field Bus.In this paper,a new modern CAN-bus communication interface is designed. Intelligent node of CAN-bus is mainly made up of MCU AT89S52 and SJA1000 controller.The hardware principle and the programming methods for initialization,transmitting and receiving modules of SJA1000 are introduced.The design can perform the control function.It is a practical design.Key words:CAN Bus,Intelligent node,system design0 引言CAN是控制器局域网络(Controller Area Network)的简称,是一种有效支持分布式控制或实时控制的串行通信网络。
CAN总线作为智能设备的联系纽带,把挂在总线上作为网络节点的智能设备连接为网络系统,并进一步构成自动化系统,实现基本控制的综合自动化系统。
本文给出了一种基于AT89S52和SJA1000的CAN总线智能节点设计方案,并对软硬件设计进行了相应的说明。
1 系统硬件设计智能节点能够通过监测设备采集的现场数据,并根据接收到的命令或者主动将数据发送到CAN总线。
通过事先设置验收码和验收屏蔽码可以控制智能节点从总线上接收数据或命令。
CAN总线系统智能节点硬件电路由3部分构成:微控制器AT89S52、独立CAN通信控制器SJA1000和CAN总线驱动器82C250。
微处理器AT89S52负责SJA1000的初始化,通过控制SJA1000实现数据的接受和发送等通信任务。
SJA1000作为独立CAN总线控制器具有完成CAN高性能通信协议所要求的全部必要特性。
使用简单总线连接的SJA1000可完成物理层和数据链路层的所有功能。
其硬件与软件设计包括与基本CAN工作模式(BasicCAN)兼容,同时它新增加的增强CAN工作模式(PeliCAN)可以支持CAN 2.0A及CAN 2.0B协议。
CAN总线收发器PCA82C250提供协议控制器和物理传输线路之间的接口。
它可以用高达1Mb/s的速率在两条有差动电压的总线电线上传输数据。
硬件电路如图1所示。
图1.节点硬件电路图SJA1000的AD0-AD7连接到AT89S52的P0口,cs连接到AT89S52的P2.7。
P2.7为0时CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。
SJA1000的R D、W R、ALE分别与AT89S52的对应引脚相连,IN T接AT89S52的0IN T,AT89S52可通过中断的方式访问SJA1000。
AT89S52复位是高电平有效而CAN通信控制器SJA1000的复位是低电平有效,所以两者之间加反相器。
AT89S52与CAN通信控制器SJA1000共用一个12MHz晶振。
设计中在AT82C250与CAN总线接口上采用一定抗干扰措施。
在82C250的CANH和CANL引脚上各自通过一个5Ω的电阻与CAN总线相连,电阻可起到一定的限流作用,保护82C250免受过流的冲击。
CANL和CANH与地之间并联了两个30PF的小电容、两个防雷击管,可以起到滤出总线上的高频干扰和防止电磁辐射和防止瞬变干扰的措施。
2 智能节点的软件设计CAN总线智能节点的软件设计包括三部分:CAN节点初始化、报文发送和报文接收。
2.1 初始化过程SJAl000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。
在完成SJAl000的初始化设置以后,SJAl000就可以回到工作状态,进行正常的通信任务。
初始化的工作主要针对SJA1000相应寄存器内容的赋值来完成一定的功能设计。
SJAl000采用增强CAN工作模式(PeliCAN)。
2.2 发送过程发送子程序负责节点报文的发送。
发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJAl000发送缓存区中,然后启动SJAl000发送即可。
SJAl000报文的发送主要有两种方式:中断发送方式和查询发送方式。
该监测系统中采用查询方式发送报文。
2.2.1单片机发送程序发送程序框图如图2所示。
图2.CPU所完成的发送程序框图2.2.2SJAl000完成的工作总线控制器SJAl000在接收到置位“发送请求命令”(CMR.0=1)后自动完成的工作,具体步骤如图3所示。
图3.发送时SJAl000自动完成的动作框图2.3 接收过程接收子程序负责节点报文的接收以及其他情况的处理。
接收子程序比发送子程序要复杂的一些,因为在处理接收报文的过程中,同时要对诸如总线关闭、错误报警、接收溢出等情况进行处理。
SJAl000报文的接收主要有两种方式:中断接收方式和查询接收方式,两种接收方式的编程思路基本相同。
该监测系统中采用中断方式接收报文。
采用中断方式接收报文之前已在初始化程序中使能CAN控制器的接收中断。
2.3.1 SJAl000完成的工作CAN控制器总线控制器SJAl000自动完成报文接收工作,如图4所示。
图4.接收时SJAl000自动完成的工作框图CAN控制器总线控制器可存储最多64个字节的报文,而在一个查询周期内最多可接收十三个字节(其中八个数据字节)的报文。
2.3.2 单片机报文接收单片机报文接收子程序框图如图5所示。
图5.CPU接收时完成的程序框图3 结束语CAN总线具有较强的纠错能力,适用于高噪声环境,具有较远的传输距离,广泛应用于计算机测控领域,该设计作为CAN总线节点的一个模块,能够和计算机以及传感器等设备相结合,使其具有网络通讯的能力。
该系统通过CAN适配器与计算机相连,可以方便地构成分布式测控系统,已经成功应用于煤炭综采支架安全监测系统中。
通过现场应用,该系统运行可靠,具有很好的推广和应用价值。
本文创新点:提出了一种CAN总线通信接口的设计方案。
分别从硬件电路设计和软件初始化、发送、接收设计进行了分析。
参考文献[1]王幸之,钟爱琴,王雷,王闪.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004,347-360[2]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2002,154-160[3]史久根,张培仁,陈真勇.CAN现场总线系统设计技术[M].北京:国防工业出版社,2004,50-66[4]胡光永.总线节点电路的设计与实现[J].微计算机信息,2006,1-2:9-10+231作者简介:李光忠(1973- ), 男, 汉族, 研究生,山东农业大学信息科学与工程学院讲师, 研究方向为计算机测控技术, 计算机通信。
吴士涛(1974- ),男, 汉族, 研究生,山东科技大学讲师, 研究方向为智能仪器监测。
Biography:Li Guang-zhong,born in 1973,Male,the Han nationality,instructor,Master,College of Information Science and Engineering, Shandong Agriculture University.Main field: Computer Measurement & Control,Computer Communication. Wu shi-tao, born in 1974,Male,the Han nationality,instructor,Master, Shandong University of Science and Technology.Main field: intelligent instrument monitoring.。