- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAN总线数据采集系统的设计与实现
基于CAN总线数据采集系统的设计与实现
——CAN总线通信实验
内容提要:
以CAN (Controller Area Network) 总线控制器SJA1000为核心, 设计了一种通用的基于CAN总线的数据采集系统, 给出了数据采集系统的原理、单个节点的软硬件设计; 重点阐述了CAN 总线智能节点的设计、实现与注意事项。 试验表明, CAN 总线的多主结构使系统改型灵活, 数据传输稳定, 可靠性好, 数据传输速率可达1Mbit/s, 能满足现场的实时性要求。CAN 总线的使用大大节约了连接导线、维护和安装费用, 提高了系统的性价比, 具有广泛的应用前景。
关键词:数据采集 CAN 总线 现场总线 芯片SJA 1000
目 录
一、引言 1
二、 CAN总线 1
(一)CAN总线介绍 1
(二)CAN协议 1
三、结构设计 4
四、硬件设计 5
五、软件设计 6
(一)初始化子程序 7
(二)发送子程序 8
(三)查询方式接收子程序 10
六、测试报告 12
附录 15
参考文献 36
一、引言
信息技术的飞速发展,引起了自动化系统结构的变革, 形成以网络集成自动化为基础的控制系统。现场总线顺应这一形式发展, 已成为当前工业数据总线领域中一个新热点, 被广泛应用于工业现场控制、智能家居、交通工具、环境监测等众多领域。 用数据采集系统能实现数据采集与处理, 加入高级算法即可实现智能控制, 因而减轻了上位机的负担。本设计设计了一个通用的基于CAN 总线的数据采集卡, 着重阐述了它的设计及其实现。
二、 CAN总线
(一)CAN总线介绍
CAN 总线 (Cont roller Area Network 控制器局域网)是现场总线的一种。 它是德国Bosch 公司在1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯总线。CAN 总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址 ,它是以全网广播为基础 ,各接收站根据报文中反映数据性质的标识符过滤报文 ,该收的收下 ,不该收的弃而不用。其好处是可在线上网下网、 即插即用和多站接收;二是特别强化了对数据安全性的关注 , 满足控制系统及其它较高数据要求的系统需求。CAN 总线具有下列主要特性:
多主站依据优先权进行总线访问;
非破坏性的基于优先权的总线仲裁;
借助接收滤波的多地址帧传送;
远程数据请求;
配置灵活;
全系统的数据相容性;
错误检测和出错信令;
发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送;
暂时错误和永久性故障节点的判别以及故障节点的自动脱离 CAN 总线。
(二)CAN协议
数据传输的通信协议是指对数据传输的约定 ,包括定时 、控制 、格式化和数据表示方法等等 。
1.CAN分层结构的协议
CAN是一串行通讯协议 CAN总线规范规定了任意两个节点之间的兼容性 ,包括电气特性及数据解释协议 ,为保证设计使用的透明性及使用的灵活性 ,CAN协议分为如下几层:目标层 、传送层 、物理层 。
目标层的功能范围包括:信息识别、信息状态及处理。
传送层的功能范围包括: 帧组织、总线仲裁、检错、错误报告、错误处理。
物理层的功能范围包括: 实际位传送过程上的电气特性。
2.CAN网络通讯协议
总线控制器支持4种不同结构的CAN协议帧类型:
数据帧用于节点之间的数据传输
远程帧:用于请求发送具有相同标识符的数据帧
出错帧:用于指示检测到的错误状态
过载帧:用于提供先前和后续数据帧或远程帧之间的附加延时
数据帧、远程帧、出错帧、过载帧都按一定的格式进行编码
数据帧:由7个不同的位场构成 ,如图 1所示。
它们是:帧起始 、仲裁场、控制场、CRC场 、ACK场和帧结束;
远程帧:由6个不同的位场构成:帧起始 、仲裁场、控制场、CRC场 、ACK场、
帧结束
出错帧:由两个不同的场构成。第一个场由来自不同节点的错误标志叠加给出,后随的第二个场为错误定界符
超载帧:包括两个位场、超载标志和超载界定符。
数据帧和远程帧以帧间空间同先前帧隔开,帧编码和发送/接收。
图1 数据帧的构成
帧起始、仲裁场、控制场、数据场、序列帧段均以位填充方法进行编码 ,即在以送位流中检测到5个数值相同的时候 ,自动插人一个补码位。数据帧或远程帧的其余位场、错误帧、超载帧为固定格式 ,不使用位填充方法编码,帧中的位流按照非归零方法编码。
发送时从其SOF场开始逐个位场发送。对于发送器和接收器 ,一帧的有效点是不同的。
对于发送器 ,若在帧结束完成前不存在错误 ,则该帧有效。
对于接收器 ,若在帧结束最后一位前不存在错误 ,则该帧有效。
总线访问和仲裁:
当检测到间歇场未被 “显性”位中断后 ,认为总线被所有节点释放。总线被
文档评论(0)