CAN总线数据采集系统设计方案与实现 .docx
《CAN总线数据采集系统设计方案与实现 .docx》由会员分享,可在线阅读,更多相关《CAN总线数据采集系统设计方案与实现 .docx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习基于 CAN总线数据采集系统的设计与实现 CAN总线通信试验可编辑资料 - - - 欢迎下载精品名师归纳总结内容提要 :以 CAN Controller Area Network总线把握器 SJA1000 为核心 ,设计了一种通用的基于CAN 总线的数据采集系统,给出了数据采集系统的原理、单 个节点的软硬件设计。重点阐述了 CAN 总线智能节点的设计、实现与留意事项。 试验说明 , CAN总线的多主结构使系统改型灵敏,数据传输稳固 ,牢靠性好 ,数据传输速率可达1Mbit/s,能中意
2、现场的实时性要求。CAN 总线的使用大大节省了连接导线、爱惜和安装费用,提高了系统的性价比,具有广泛的应用前景。关键词 : 数据采集 CAN总线现场总线芯片 SJA 1000目录一、引言 0二、 CAN总线错误!未定义书签。 一CAN总线介绍 0 二CAN协议 0三、结构设计 错误!未定义书签。四、硬件设计 3五、软件设计 错误!未定义书签。(一)初始化子程序 4(二)发送子程序 6(三)查询方式接收子程序 8六、测试报告 错误!未定义书签。附录 12参考文献 .36可编辑资料 - - - 欢迎下载精品名师归纳总结一、引言信息技术的飞速进展 , 引起了自动化系统结构的变革 ,形成以网络集成自动
3、化为基础的把握系统。现场总线顺应这一形式进展,已成为当前工业数据总线领域中一个新热 点,被广泛应用于工业现场把握、智能家居、交通工具、环境监测等众多领域。用数据采集系统能实现数据采集与处理 ,加入高级算法即可实现智能把握,因而减轻了上位机的负担。本设计设计了一个通用的基于CAN总线的数据采集卡 ,着重阐述了它的设计及其实现。二、 CAN 总线 一CAN 总线介绍CAN总线 Cont roller Area Network把握器局域网 是现场总线的一种。它是德国 Bosch 公司在 1986 年为解决现代汽车中众多的把握与测试仪器之间的数据交换而开发的一种串行数据通讯总线。 CAN总线与其它通信
4、网的不同之处有二: 一是报文传送中不包含目标的址 , 它是以全网广播为基础 , 各接收站依据报文中反映数据性质的标识符过滤报文 , 该收的收下 , 不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收。二是特别强化了对数据安全性的关注,中意把握系统及其它较高数据要 求的系统需求。 CAN总线具有以下主要特性 :多主站依据优先权进行总线拜望。 非破坏性的基于优先权的总线仲裁。借助接收滤波的多的址帧传送。远程数据请求。配置灵敏。全系统的数据相容性。错误检测和出错信令。发送期间如丢失仲裁或由于出错而遭破坏的帧可自动重发送。暂时错误和永久性故障节点的判别以及故障节点的自动脱离CAN 总线。 二
5、CAN 协议数据传输的通信协议是指对数据传输的商定, 包括定时 、把握 、格式化和数据表示方法等等 。1. CAN分层结构的协议CAN是一串行通讯协议 CAN总线规范规定了任意两个节点之间的兼容性, 包括电气可编辑资料 - - - 欢迎下载精品名师归纳总结特性及数据说明协议 , 为保证设计使用的透亮性及使用的灵敏性,CAN 协议分为如下几层: 目标层 、传送层 、物理层 。目标层的功能范畴包括:信息识别、信息状态及处理。传送层的功能范畴包括:帧组织、总线仲裁、检错、错误报告、错误处理。物理层的功能范畴包括:实际位传送过程上的电气特性。2. CAN网络通讯协议总线把握器支持 4 种不同结构的 C
6、AN协议帧类型: 数据帧用于节点之间的数据传输远程帧:用于请求发送具有相同标识符的数据帧出错帧:用于指示检测到的错误状态过载帧:用于供应从前和后续数据帧或远程帧之间的附加延时数据帧、远程帧、出错帧、过载帧都按确定的格式进行编码 数据帧:由 7 个不同的位场构成 , 如图 1 所示。它们是:帧起始 、仲裁场、把握场、 CRC场 、ACK场和帧终止。远程帧:由 6 个不同的位场构成:帧起始、仲裁场、把握场、 CRC场 、ACK场、帧终止出错帧:由两个不同的场构成。第一个场由来自不同节点的错误标志叠加给出, 后随的其次个场为错误定界符超载帧:包括两个位场、超载标志和超载界定符。数据帧和远程帧以帧间空
7、间同从前帧隔开, 帧编码和发送 / 接收。图 1 数据帧的构成帧起始、仲裁场、把握场、数据场、序列帧段均以位填充方法进行编码, 即在以送位流中检测到 5 个数值相同的时候 , 自动插人一个补码位。数据帧或远程帧的其余位场、错误帧、超载帧为固定格式, 不使用位填充方法编码 , 帧中的位流依据非归零方法编码。发送时从其 SOF场开头逐个位场发送。对于发送器和接收器, 一帧的有效点是不同的。对于发送器 , 如在帧终止完成前不存在错误 , 就该帧有效。对于接收器 , 如在帧终止最终一位前不存在错误, 就该帧有效。总线拜望和仲裁:可编辑资料 - - - 欢迎下载精品名师归纳总结当检测到间歇场未被“显性”
8、位中断后 , 认为总线被全部节点释放。总线被释放后 ,“错误一激活”节点可以拜望总线。当许多节点一起开头发送时, 只有发送具有最高优先权的帧节点变为总线主机, 享有对总线的把握权。这种解决总线拜望冲突的机理是基于竞争的促裁 , 依据标识符和紧随其后的 RTR位来完成。错误检测:在 CAN中存在 5 类不同的错误位错误、填充错误、 CRC错误、形式错误、应答错误、在网络中的任何一个节点, 依据其错误计数器的数值 , 可能处于以下 3 种状态之一:“错误一激活”节点:一个“错误一激活”节点可以正常参与总线通信, 并在检测到错误时 , 发出一个激活错误标志。“错误一认可”节点:一个“错误一认可”节点
9、不应发送激活错误标志, 它参与总线通信 , 但在检测到错误时, 发出一个认可错误标志。“总线脱离”节点:当一个节点由于请求故障界定实体而对总线处于关闭状态时, 其处于“总线脱离” 状态,在“总线脱离”状态。为了进行错误界定 , 在总线上的每一个单元中都设有两种计数器:发送出错计数器和接收出错计数器 , 错误计数器的值依据确定的规章进行修正。当节点的发送计数器或接收计数器的值超过127 时 , 就监控器要求置相应节点为“错误一认可”状态 , 送出一个激活标志。当发送计数器或接收计数器的值均小于或等于 127 时 ,“错误一认可”节点再次变为“错误一激活”。当节点的发送计数器的值超过255 时 ,
10、 就监控器要求置相应节点为“脱离总线”状态。处于“脱离总线”状态的节点 , 在监测到总线上显现 128 次 11 个连续的“隐性”位 ,变为两个错误计数器均为 0 的“错误一激活”节点。三、结构设计数据采集系统由数据采集模块和数据传输模块组成,其中数据传输通过CANController Area Network总线来实现。 把握器局域网CAN属于现场总线范畴 ,它可编辑资料 - - - 欢迎下载精品名师归纳总结是一种有效支持分布式把握或实时把握的串行通信网络。系统接受总线式网络拓扑结构,其系统总体结构如图 2 所示。图 2 系统总体结构选用 CAN 总线连接各 节点 ,形 成多 主把握器的局域
11、网。 CAN 总线 符合ISO11898 标准,最多可挂接 110 个节点,接受 CAN总线特有的多主传送方式 ,各采集把握器依据现场需要 ,当有数据时可自主发送 ,无需主机不停的轮巡 ,节省了网络上的数据流量 ,提高了传输效率。 CAN 总线传输介质为双绞线或同轴电缆,走线少、系统易扩展、改型灵敏 ,正是由于这些其他通信方式无法比拟的优点,才使之成为系统分布比较分散的数据采集系统的理想总线。数据采集系统将由现场传感器送来的数据发送到闲暇的CAN总线上 ,而总线上各节点通过预先设置好的验收码和验收屏蔽码,来准备是否使用这个消息。假如采集的数据需要进一步进行处理 ,就上位机可从总线上接收数据并对
12、其处理。处理后的数据再送回 CAN总线,经数模转换模块或其他节点进行把握操作。当上位机需对某个节点施以把握时 ,可接受点对点的方式与该节点进行通讯。而当它需要对全部节点加以把握时,就接受广播方式将命令发送到总线。这样大大削减了数据的传输量 ,从而提高了系统的传输速率 ,同时又保证了系统的实时性和牢靠性。下面以数据采集系统中的数据采集节点为例来说明单个节点的设计思想。四、硬件设计数据采集系统单个节点硬件框图如图3 所示,由传感器检测的信息经多路开关送到 可编程放大器 PGA 204, 依据信号大小调剂放大倍数 1, 10, 100, 1 000倍 ,放大后, 经 AD574转换为数字信号 ,送入
13、微处理器中储备 ,然后依据现场情形的需要 ,将信号发送到 CAN总线上 ,被其他节点或上位机接收。图 3节点硬件框图由于以 AD574 为 A/D 转换器的数据采集卡比较普及,故下面重点阐述数据传输部分,即 CAN总线智能节点的设计与实现。 CAN 总线上的节点是网络上的信息接收和发送站,由于节点主要由单片机和可编程的CAN通信把握器组成 ,能通过编程设置工作方式、 ID 的址、波特率等参数 ,故称其为智能节点。 CAN节点原理图如图4 所示。89C51是节点的微处理器 ,作为一个储备器 I/O映象设备 ,负责对把握器 SJA 1000 初始化,并把握其实现数据的收发等通信任务。在 CAN 总
14、线通信接口中 ,使用 PH IL可编辑资料 - - - 欢迎下载精品名师归纳总结IPS 公司的 SJA 1000 和 TJA 1040 芯片。 SJA 1000 是独立的 CAN通信把握器 ,用于完成 CAN总线通信协议的物理层和数据链路层的功能。TJA1040 为高性能、高速 CAN 收发器,使用它可增大通信距离 ,提高系统瞬时抗干扰才能 ,改良系统的抗电磁干扰及 电磁辐射性能 ,爱惜总线 ,降低射频干扰 ,实现热防护等。图 4 CAN 节点原理图为进一步提高抗干扰才能 , 在 CAN把握器 SJA 1000 和驱动器 TJA 1040 之间使用了高速光耦器件 6N137 构成隔离电路 ,
15、传输介质接受双绞线 或同轴电缆 分别接至CAN收发器 TJA 1040 的 CANH和 CANL引脚。 同时在总线两端 CANH和 CANL之间加上分别中断的 120 8 终端电阻 , 对总线阻抗匹配起着相当重要的作用 4 。此外, 为使CAN把握器和微处理器能同时牢靠复位 , 外加了手动复位电路。 SJA 1000 的中断输出信号 /N T 接至单片机的中断引脚 IN T0, 通过中断方式实现单片机与 CAN把握器的通信。 在电路实际调试过程中须留意以下几点。1. 总线的两个 1208 终端电阻不行忽视。 否就会使数据通信的抗干扰性和牢靠性降低,严肃时可导致无法通信。2. TJA 1040
16、与 PCA 82C250兼容的“ SPL IT ”引脚 代替 82C250“ V ref”引脚 , 对总线 DC 稳压很有效 4 。 假如“ SPL IT ”用于共模电压的 DC 稳压, 这个“SPL IT ”引脚要连接到分别中断的中间分接头。 如“ SPL IT ”不使用 , 只需保持开路即可。3. TJA 1040 引脚“ STB”一般被直接连接到微处理器输出口 , 以便于把握收发器的工作模式。五、软件设计CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文 接收。熟识这三部分程序的设计,就能编写出利用 CAN 总线进行通信的一般应用程序。当然要将 CAN 总线应用于
17、通信任务比较复杂的系统中仍需详细明白有关CAN总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN总线通信距离和节点数的运算等方面的内容。下面仅就前面提到的三部分程序的设计作一个描述,以供大家在实际应用中参考。(一)初始化子程序SJA1000 的初始化只有在复位模式下才可以进行。初始化主要包括工作方式的设置接收滤波方式的设置,接收屏蔽寄存器AMR和接收代码寄存器 ACR 的设置,波特率参可编辑资料 - - - 欢迎下载精品名师归纳总结数设置和中断答应寄存器 IER 的设置等。在完成 SJA1000 的初始化设置以后 SJA1000 就可以回到工作状态 进行正常的通信任务
18、。下面供应了 SJA1000 初始化的 51 汇编源程序。程序中寄存器符号表示的是 SJA1000 相应寄存器占用的片外存贮器的址 这些符号可在程序的头部用伪指令 EQU进行定义。后文对这一点不再作特别说明。CANINI:MOVDPTR,#MOD。方式寄存器MOVA,化.#09H。进入复位模式 对 SJA1000 进行初始MOVXDPT,RAMOVDPTR,#CDR。时钟分频寄存器MOVA ,输出 CLKOUT#88H。选择 PeliCAN模式 关闭时钟MOVXDPT,RAMOVDPTR,#IER。中断答应寄存器MOVA ,#0DH。开放发送中断超载中断和错误警告中断MOVXDPT,RAMOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN总线数据采集系统设计方案与实现 CAN 总线 数据 采集 系统 设计方案 实现
限制150内