基于CAN总线的数据通讯接口的设计.docx

上传人:b****6 文档编号:7981612 上传时间:2023-01-27 格式:DOCX 页数:11 大小:159.24KB
下载 相关 举报
基于CAN总线的数据通讯接口的设计.docx_第1页
第1页 / 共11页
基于CAN总线的数据通讯接口的设计.docx_第2页
第2页 / 共11页
基于CAN总线的数据通讯接口的设计.docx_第3页
第3页 / 共11页
基于CAN总线的数据通讯接口的设计.docx_第4页
第4页 / 共11页
基于CAN总线的数据通讯接口的设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于CAN总线的数据通讯接口的设计.docx

《基于CAN总线的数据通讯接口的设计.docx》由会员分享,可在线阅读,更多相关《基于CAN总线的数据通讯接口的设计.docx(11页珍藏版)》请在冰豆网上搜索。

基于CAN总线的数据通讯接口的设计.docx

基于CAN总线的数据通讯接口的设计

基于CAN总线的数据通讯接口的设计

展恩颖

(自动化部特钢维护车间技术组)

摘要:

现场总线是自动化领域的计算机网络,是当今自动化领域技术发展的热点之一。

它以总线为纽带,将现场设备连接起来成为一个能够相互交换信息的控制网络,是一种双向串行多节点数字通信的系统。

CAN总线也是现场总线的一种,它最初被应用于汽车的控制系统中。

由于其卓越的性能,CAN总线的应用范围已不再局限于汽车工业,被广泛应用到自动控制、楼宇自动化、医学设备等各个领域。

关键词:

CAN总线;dspic30f5011;M9020-FNU20;CTM1050;

ABSTRACT:

Fieldbusisakindofcomputernetworkinautomatizationfieldandithasbeenoneofthehotspotsofautomatizationfields’techniquedevelopment.Fieldbusconnectsthefieldequipmentswithabusandmakesanetworkthroughwhichinformationcanbeexchangedmutually.Sofieldbusisasystemwhichcantransmitdigitalsignalsintwodirectionsamongmanynodes.CANisalsoonekindoffieldbus.Originally,it’sappliedinthecontrolsystemsofcarindustryButitsapplicationisnotlimitedinautomobileindustryforitsexcellentperformancenow.It’salsoappliedinAutomaticcontrol.Buildingautomatization,Mechanicaltreatmentequipmentsandsoon.

KEYWORDS:

CANbus;dspic30f5011;M9020-FNU20;CTM1050;

0引言

现场总线(Fieldbus)

是指开放式、国际标准化、数字化、相互交换操作

————————————————

作者简介:

展恩颖(1988–),男,山东省莱芜市,2010年毕业于青岛科技大学测控技术与仪器专业,现为自动化部特钢维护车间技术员。

的双向传送、连接智能仪表和控制系统的通信网络。

CAN

总线全称为ControllerAreaNetwork,即控制器局域网,CAN总线是国际上应用最广泛的现场总线之一。

现场总线是20世纪90年代迅速发展起来的工业控制系统技术,是信息化带动工业化和工业化推动信息化的实用技术之一。

近年来才在中国获得初步发展。

当计算机网络技术,特别是互联网技术得到广泛应用后,人们对企业生产过程的控制提出了更高的要求,企业与外界信息沟通的范围不断扩大,这就需要把大量的现场信息送到外面,又需要远程对现场进行诊断、维护和服务,实现从现场控制到监控、管理、决策等各层次的信息交换和集成。

现场总线顺应了这种要求的发展,具有便于系统功能扩充,结构改型方便,系统结构简洁,可靠性高,全数字化信号精度比传统的模拟信号高,高度分散控制使风险得到彻底分散,维护性好,可预防性诊断和维护,具有高度的系统集成主动权,提供更丰富的现场信息等优点。

被认为是工业控制发展的必然趋势,将逐步取代传统的控制方法。

1CAN总线技术规范

1.1CAN总线的分层结构

CAN

遵从ISO/OSI标准模型,按照这个标准的模型,CAN结构划分为两层:

数据链路层(包括逻辑链路控制子层LLC和媒体访问控制子层MAC)和物理层。

在CAN技术规范2.0版本中,数据链路层的LLC和MAC子层服务及功能被描述为“对象层”和“传输层”。

CAN的分层结构如下图1-1。

数据链路层

逻辑链路控制子层LLC

接收滤波

超载通知

恢复管理

介质访问控制子层MAC

数据封装/拆装

帧编码(填充/消除填充)

介质访问管理

错误检测

错误标定

应答

串行化/解串行化

物理层

物理信令PLS

位编码/解码

位定时

同步

驱动器/接收器特征

图1-1CAN分层结构图

Fig1-1CANhierarchicalstructurediagram

LLC子层的主要功能是:

为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文已被接收,并为恢复管理和通知超载提供信息。

MAC子层的功能主要是传送规则,亦即控制帧的结构、执行仲裁、错误检测、出错标定和故障界定。

物理层的功能是有关全部电气特性在不同节点问的实际传送。

CAN技术规范2.0B定义了数据链路中的MAC子层和LLC子层的一部分,并描述与CAN有关的外层。

物理层定义了信号怎样进行发送,因而,涉及位定时、位编码元和同步的描述。

在这部分技术规范中,未定义物理层中的驱动器/接收器特性,以便允许根据具体应用,对发送媒体和信号电平进行优化,使信号传输更加方便。

MAC子层是CAN协议的核心,它描述由LLC子层接收到的报文和对LLC子层发送的认可报文。

MAC子层可响应报文帧、仲裁、应答、错误检测标定。

MAC子层有称为故障界定的一个管理实时监控,它具有识别永久故障或短暂扰动的自检机制。

LLC子层的主要功能是报文滤波、超载通知和恢复管理。

按照IEEE802.2和802.3标准,物理层划分为:

(1)物理信令(PLSPhysicalSignaling)。

(2)物理媒体附属装置(PMAPhysicalMediumAttachment)。

(3)媒体相关接口(MDIMediumDependentInterface)。

数据链路层又划分为:

(1)逻辑链路控制(LLCLogicLinkContr01)。

(2)媒体访问控制(MACMediumAccessContr01)。

1.2CAN的报文发送和帧

在进行数据传送时,发出报文的单元称为报文的发送器,该单元在总线空闲或丢失仲裁前恒为发送器。

如果一个单元不是报文发送器,并且总线不处于空闲状态,则该单元为接收器。

对于报文发送器和接收器,报文实际有效时刻是不同的。

对于发送器而言,如果周到帧结束末尾一直未出错,则对于发送器报文有效。

如果报文受损,则允许按照优先权顺序自动重发送。

为了能同其他报文惊醒总线访问竞争,总线一旦空闲,重发送将立即开始。

对于接收器而言,如果直到帧结束的最后一位一直未出错,则对于接收器报文有效。

1.2.1帧格式

规范中有两种不同的帧格式,不同之处在于每帧的标识符的长度不同。

标准帧的标识符长度为11位,而扩展帧的长度则为29位。

1.2.2帧类型

CAN总线的数据传输

由以下4个不同的帧类型所表示和控制:

数据帧:

数据帧将数据从发送器传送到接收器。

远程帧:

总线单元发出远程帧,请求发送具有相同标识符的数据帧。

错误帧:

任何节点检测到总线错误就发出错误帧。

超载帧:

超载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。

数据帧和远程帧可以使用标准帧及扩展帧两种格式,它们用一个帧空间与前面的帧分开。

2基于dspic30f5011单片机CAN总线的硬件设计

dsPIC

30F5011单片机是Microchip公司的高性能数字信号控制器。

其CPU是高性能改进型RISCCPU,采用改进型哈佛结构,具有优化的C编译器指令集架构和灵活的寻址方式,66KB片上闪存程序空间、4KB片上数据RAM、1KB非易失性数据EEPROM。

最高30MIPS的工作速度,最多41个中断源。

其DSP特性能轻松实现双数据取操作、模寻址和位反转寻址模式。

dsPIC30F5011外设上具备数据转换器接口(DataConverterInterface),3路SPI总线模块(支持4种帧模式),I2C模块支持多主器件主/从模式,支持7位/10位寻址,两个带FIFO缓冲区的可寻址UART模块,两个与CAN2.0B标准兼容的CAN总线模块。

下行数据采集板的设计中主要用到了其中的CAN总线模块和SPI总线模块。

PIC单片机在本系统中的主要功能是CAN传输(负责将数据打成CAN包然后传送到ARM主板),负责处理抄表协议,与485通讯等。

因此CAN模块和SPI模的作用犹为重要。

2.1CTM1050

CTM1050是一款带隔离的高速CAN收发器芯片,该芯片内部集成了所有必需的CAN隔离及CAN收、发器件,这些都被集成在不到3平方厘米的芯片上。

芯片的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平并且具有DC2500V的隔离功能及ESD保护作用。

该芯片符合ISO11898标准,因此,它可以和其他遵从ISO11898标准的CAN收发器产品互操作。

2.1.1电路连接

使用CTM1050芯片时,必须将CTM1050芯片假如用户的电路板中;如图2-1所示为CAN控制器与CTM1050接口芯片的连接原理图。

图2-1CTM1050接口电路

Fig2-1CTM1050interfacecircuit

2.2电路设计

本设计里主要部分采用了LPC2290微控制器和dsPIC30F5011单片机,它们内部都含两个CAN控制器,基于LPC2290的工业级微控制器M9020-FNU20提供LPC2290标准化驱动,并固化协议栈,调用API函数即可实现嵌入式设备CAN总线通信功能。

完整的CAN总线设备由CAN控制器、总线收发器以及相应的隔离电路组成。

本系统中LPC2290微控制器和dsPIC30F5011单片机之间的CAN通讯就相对简单只需加入隔离电路-CAN隔离收发器和其它相关器件就可实现。

CAN总线的接口电路如下图2-2所示。

M9020-FNU20中已固化协议栈,通讯时调用API函数即可实现嵌入式设备的CAN总线通信功能。

CAN隔离收发器采用广州致远电子开发的CTM1050(带TVS保护的高速隔离CAN收发器,DC2500V电气隔离)。

隔离收发模块集电源隔离、电气隔离、CAN收发器、CAN总线保护于一体,模块TXD、RXD引脚兼容+3.3V、+5V电平连接,直接将CAN控制器收发引脚与CTM模块的收发引脚连接即可构成完整的CAN设备。

隔离电路能确保CAN总线在遭受严重干扰时控制器仍正常工作。

图2-2CAN总线接口电路图

Fig2-2CANbusinterfacecircuit

3基于M9020-FNU20微控制器CAN总线的硬件设计

M9020-FNU20基于LPC2290工业级微控制器,支持10M以太网通信、CAN总线通信,具有CF卡接口、USB接口、板载大容量NANDFlash电子盘、A/D转换、RTC等功能。

产品提供保护型总线设计,使模块在EMC性能及稳定性方面均有良好的表现。

产品提供LPC2290标准化驱动库,并固化协议栈,调用API函数即可实现嵌入式设备的TCP/IP网络通信、CAN总线通信功能和USB、CF卡、海量电子盘等存储功能,特别适合电力自动化、煤矿产量监控、机电控制等行业。

用户程序可在线升级,不但使产品更快投入市场,而且升级简单可靠,明显增强产品的市场竞争力。

3.1M9020-FNU20结构

M9020-FNU20嵌入式工控板主要由LPC2290(ARM7TDMI)微控制器、程序存储器、数据存储器、工业级以太网控制器CS8900A、USB主机控制器和大容量NANDFlash存储器组成。

总线通过缓冲保护电路与底板接口以保证微控制器总线运行不受外界干扰。

产品标配可校准的实时时钟和带256BytesE²-PROM的复位监控电路。

3.2电路设计

完整的CAN总线设备由CAN控制器、总线收发器以及相应的隔离电路组成。

M9020-FNU20工控板使用如图3-1所示CAN接口电路(图中只有1路),图中CTM1050为隔离CAN收发器模块,能确保CAN总线在遭受严重干扰时控制器仍正常工作。

图3-1接口电路

Fig3-1Interfacecircuit

致远CTM系列CAN隔离收发模块集电源隔离、电气隔离、CAN收发器、CAN总线保护于一体,模块TXD、RXD引脚兼容+3.3V、+5V电平连接,毋需外接其他元器件,直接将CAN控制器收发引脚与CTM模块的收发引脚连接即可构成完整的CAN设备。

4CAN总线数据通讯接口的软件设计

4.1初始化设置

CAN总线操作需要初始化,以创建CAN控制器所需要的软硬件资源,并进行引脚配置等。

CAN初始化函数原型为:

void*CAN_Create(INT8UCAN_Ch,INT16URxBufSize,INT32UBaudRate,void*pfun)

4.2接收程序

CAN总线模块有3个接收缓冲器。

但是,其中总是有一个缓冲器用于监视总线是否有进入的报文。

这个缓冲器叫做报文合成缓冲器(MessageAssemblyBuffer,MAB)。

因此只有2个接收缓冲器可见(RXB0和RXB1),基本上可以即时接收来自协议引擎的完整报文。

当一个接收缓冲器在接收报文或保持上次接收到的报文时,CPU仍可以使用另一个接收缓冲器工作。

MAB保存来自总线的解填充比特流,以允许并行访问整个数据帧或远程帧,以进行接收匹配测试并将帧并行传输到接收缓冲器。

MAB将组合所有接收到的报文。

这些报文只有在符合接收过滤器标准时才被传送到RXBn缓冲器。

当接收到报文时,RXnIF标志(CiINTF<0>或CiINRF<1>)将置位。

此位只有在报文被接收时才被模块置位。

该位在CPU处理完缓冲器中的报文后将由CPU清零。

该位提供的正向锁定功能确保CPU已经完成了报文缓冲器的处理。

如果RXnIE位(CiINTE<0>或CiINTE<1>)置位,当接收到报文时将会产生一个中断。

有2个与接收缓冲器相关的可编程的接收过滤屏蔽器,两个缓冲器各有一个。

当接收到报文时,FILHIT位(接收缓冲器0的CiRX0CON<0>和接收缓冲器1的CiRX1CON<2:

0>)会表明报文的接收标准。

除了表明使能接收的接收过滤屏蔽器个数外,还有一个指出所接收的报文是远程传输请求的状态位。

图4-1接收流程图

Fig4-1receiveflowchart

4.3发送程序

CAN模块有三个发送缓冲器。

每个缓冲器可容纳14字节的数据。

其中的8个字节用于存放发送的报文(最大8个字节)。

另外5个字节用来存放标准或扩展报文标识符和其他报文仲裁信息。

最后一个字节是与每个报文相关的控制字节。

该字节中的信息决定在何种情况下报文将被发送以及表示报文发送的状态。

TXnIF位(CiINTF<2>、CiINTF<3>或CiINTF<4>)将被置位,并且TXREQ位(CiTXnCON<3>)清零,表明报文缓冲器完成了发送。

随后CPU把将要发送的报文内容装入报文缓冲器。

至少,必须装载标准标识符寄存器CiTXnSID。

如果报文中有数据字节,还应装载TXBnDm寄存器。

如果报文使用扩展标识符,CiTXnEID寄存器和EID<5:

0>位(CiTXnDLC<15:

10>)会被加载并置位TXIDE位(CiTXnSID<0>)。

在发送报文前,用户必须初始化TXnIE位(CiINTE<2>、CiINTE<3>或CiINTE<4>)以便在发送报文后使能或禁止中。

必须置位TXREQ位(CiTXnCON<3>)来开始发送报文。

CAN总线模块解决了由TXREQ位与SOF时间设置造成的所有时序冲突,确保当优先级改变时,能在发送SOF之前正确解决时序冲突。

当TXREQ置位时,TXABT(CiTXnCON<6>)、TXLARB(CiTXnCON<5>)和TXERR(CiTXnCON<4>)标志位将由模块清零。

置位TXREQ位并没有真正开始发送报文,它标志一个报文缓冲器正在排队以等待发送。

当模块检测到总线上有可用的SOF时,发送开始。

模块然后开始发送设定为具有最高优先级的报文。

如果发送第一次尝试就成功完成,TXREQ位将清零,如果TXnIE位(CiINTE<2>、CiINTE<3>和CiINTE<4>)已经置位,还会产生一个中断。

如果报文发送失败,其他的某些状态标志位将被置位,TXREQ位将保持置位,表示该报文仍然等待发送。

如果报文尝试发送但遇到出错情况,TXERR位(CiTXnCON<4>)将被置位。

在这种情况下,出错情况也可能会引起中断。

如果报文尝试发送但仲裁失败,TXLARB位(CiTXnCON<5>)将被置位。

在这种情况下,没有中断可以表明仲裁失败。

图4-2发送流程图

Fig4-2sendflow

5结语

CAN自诞生以来,以其独特的设计思想、优良的性能和极高的可靠性越来越受到工业界的青睐。

随着企业对CAN总线技术要求的不断提高,CAN总线技术将不断完善,各种更先进的通讯技术方案将被提出,在现有技术条件下从可靠性、经济性、可扩展性等方面尽量做出了最优化设计,希望以后有时间我继续研究探讨。

参考文献

[1]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京航空航天大学出版社.2006:

20-36.

[2]梁海浪.DSPIC数字信号控制器C程序开发及应用[M].北京航天航空大学出版社,2006.

[3]朱涛.以太网与CAN总线通讯接口技术[D].武汉理工大学,2006.

[4]智鹏,蒋兆,远杨进.基于CAN总线的分布式设备数据采集与监控系统的研究与应用[J].中国仪器仪表.2005.

[5]史久根.CAN数据传送实时性研究及其应用[J].信息与控制,2005,13(3):

l8-22.

[6]LeonardodaVinci,HaggertyRoad,Plymouth.TestProcedureforCANBusSusceptibilityEvaluationBasedontheUseofRadioFrequencyDetectors[J].2009.

[7]D.Bishop,D.Dale,H.Hui,J.Lam,andR.Keitel.DistributedPowerSupplyControlUsingCAN-Bus[J].2008.08.

[8]MARCOD.SchedulingtheCANbuswithearliestdeadline[J].Industialelectric-OS,2007,

1(3):

18-21.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1