欢迎来到天天文库
浏览记录
ID:6376469
大小:16.57 MB
页数:207页
时间:2018-01-12
《基于can总线通信协议的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于CAN总线通信协议的设计与实现1前言控制器局域网(CAN-ControllerAreaNetwork)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。CAN的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。CAN具
2、有如一下优点:1)使用简单方便。许多CAN控制器实现了CAN物理层及数据链路层的大部分功能,用户只须对CAN控制器进行初始化和对CAN总线上的数据进行收发操作即可实现通信;2)高可靠性。CAN上的最大通信速率可达1Mbps,CAN总线是多主节点,各节点通过总线仲裁获得总线控制权。完善的错误处理机制保证了高噪声干扰环境下数据传送的安全可靠;3)系统可扩展性能好。CAN总线是基于发送报文的编码,而不是对CAN控制节点进行编码,故增添或删除CAN节点不会对系统造成太大的影响。CAN总线以报文为单位进行信息传送,它支持4种不同类型的报文帧:数据帧、远程帧、超载帧和错误帧。报文中包含信息标识符I
3、D,它标志了报文的优先权。CAN总线上各个节点都可主动发送,总线上的报文采用标识符ID进行仲裁,ID值越小,优先级越高。具有最高优先权报文的节点赢得总线使用权,而其它节点自动停比发送。在总线再次空闲后,这些节点将自动重发原报文。网络中的所有节点都可由ID来自动决定是否接收该报文。每个节点都有ID寄存器和屏蔽寄存器接收到的报文只有与该屏蔽的功能相同时,该节点才开始正式接收报文,否则它将不理睬ID后面的报文。这使CAN系统非常灵活,可任意扩展或改变网络组成。C8051F系列单片机是集成的混合信号片上系统SOC(Systemonchip),具有与MCS-51内核及指令集完全兼容的微控制器,除
4、具有标准8051的数字外设部件之外,片内还集成数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。正是由于其体积小、集成度高、功能多、配置容易、使用方便等特点,已被广泛应用于智能仪表、数据采集、自动化控制等领域。因此本文采用C8051F120设计与实现CAN总线通信协议,充分发挥其体积小、可靠性高的特点。C8051F120是完全集成的混合信号片上系统MCU芯片,具有64个数字I/O引脚(100脚TQFP封装)。2数据传输格式的制定在CAN2.0规范中规定,每次收发最多只能传送8字节.这可以满足大多数工业领域中控制命令、工控状态和测试数据的一般要求;但实际应用中,往往出现传送多于
5、8字节的要求,此时应通过报文的拆卸和拼接技术予以实现。本文在CAN2.0A的基础上,定义了简单的传输格式,完成了单帧数据和多帧数据准确快捷的传输。信息传递格式如表一所示:其中,各位的含义如下:FF:0表示为标准格式,1表示为扩展格式;RTR:0表示为数据帧,1表示为远程帧;DLC.X:数据长度代码位(0~8);ID.X:信息标识符位:ID.28~ID.26为信息功能标识 ID.25~ID.21为接收任务标识 ID.20~ID.18为接收节点地址标识X:保留位,默认为0,不能对保留位进行写操作;DATAO:数据场的第一个字节,本协议中用来表明数据的属性;DATA0.7~DATAO
6、.5为发送节点地址标识;DATA0.4~DATAO.1为数据功能标识 DATA0.00为扩展位,‘0’表明数据长度小于8不用扩展,‘1’表示数据长度大于8需要扩展DATA1作传递次数索引。 DATA1:DATAO.0为0时,传递数据;DATAO.0为1时,为数据传递次数的索引。本文设计的信息优先级从高到低依次为:信息功能标识、任务功能标识和目标节点地址标识。信息功能标识设在ID的最高几位,通过3位的功能代码可以区分某些情况的8种基本功能:这些功能可以为节点状态控制、节点保护、紧急情况通报以及有时间标记的信息等;接收任务标识表明本帧数据的任务属性,容量为32;目标节点地址指示本次数据
7、的目的地址,容量为8。DATA0.0在本协议中作为标志位,用来区别单帧传输和多帧传输,解决了大于8字节的字符串的传输问题。当标志位为1时,表示传送的是多帧数据;为0时表明是单帧数据。这样克服了CAN只能传输小于等于8字节数据的缺点,实现了大于8字节的数据的传输。为了识别多帧传输中可能会出现的重帧和丢帧现象,本协议规定数据场第一字节作为多帧数据传输次序的索引。按照本协议制定的格式传输数据时,单帧最多传输7字节的实际数据:当数据流长度大于7字节时,
此文档下载收益归作者所有