




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 CANbus现场总线现场总线是安装在生产过程区域的现场设备/仪表与控制室内的自动控制装置/系统之间的一种串行、数字式、多点通信的数据总线。现场总线(Fieldbus)技术是实现现场级控制设备数字化通信的一种工业现场层网络通信技术,可使用一条通信电缆将现场设备(智能化、带有通信接口)连接,用数字化通信代替4-20mA/24VDC信号,完成现场设备控制、监测、远程参数化等功能。CAN,全称为“Controller Area Network”,即控制器局域网,由德国Bosch 公司最先提出,已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN是一种多主方式的串行通
2、讯总线,CAN的规范定义了OSI模型的最下面两层:数据链路层和物理层。CAN 协议有2.0A和2.0B两个版本,CAN协议的2.0A版本规定CAN控制器必须有一个11位的标志符,在2.0B版本中规定CAN控制器的标志符长度可以是11位或29位。第一节 CAN通信协议3.1.0协议特点CAN总线是一种串行数据通信协议。它有如下特点:1、 CAN协议分层分为目标层、传输层、物理层。目标层的功能:确定要发送的报文、确认传输层接收到的报文、为应用层提供接口。传输层的功能:帧组织、总线仲裁、检错、错误报告、错误处理。物理层的范围包括实际位传送过程中的电气特性。2、CAN协议逻辑位.使用2种逻辑位表达方式
3、.当总线上的CAN控制器发送的都是弱位时,此时总线状态是弱位(逻辑1);如果总线上有强位出现,弱位总是让位于强位,即总线状态是强位(逻辑0)。3、CAN协议校验.采用CRC校验并可提供相应的错误处理功能,保证了数据通信的可靠性。4、CAN协议编码方式.使用了数据块编码方式,使得网络内的节点个数在理论上不受限制。5、CAN协议数据块的长度.规定了数据块的长度最多为8个字节,传输时不会过长占用总线,保证了通信的实时性。3.1.1帧结构CANbus以报文为单位进行信息传送。报文中包含标识符ID,它也标志了报文的优先权。该标识符ID并不指出报文的目的地址,而是描述数据的含义。网络中所有节点都可由ID来
4、自动决定是否接收该报文。每个节点都有ID寄存器和屏蔽寄存器,接收到的报文只有与该屏蔽寄存器中的内容相同时,该节点才接收报文。CANbus支持4种帧类型:1、数据帧 传输数据从一个发送节点发送数据帧到一个或多个接收节点,它由7个域组成:帧的起始域、仲裁域、控制域、数据域、CRC域、应答域和帧的结束域。a. 帧的起始域该域表示一个数据帧或远程帧的开始,它由一个强位组成,该强位用于接收状态下的CAN控制器的硬同步。b. 仲裁域该域由标识符ID和RTR位组成,当有多个CAN控制器同时发送数据时,在仲裁域要进行面向位的冲突仲裁。标识符ID:由11位(CAN2.0A)或29位(CAN2.0B)组成,用于提
5、供帧地址及优先级,ID值越小,优先级越高。远程发送请求位(RTR):CAN总线上的接收节点可以请求总线上另一个节点发送数据帧。c. 控制域 由6个位组成,包括2个保留位和4位的数据长度码,允许数据长度值为08。d. 数据域 数据字节长度为08,由控制域中的数据长度码决定。e. 循环冗余校验(CRC)域它采用15位CRC,校验范围包括帧的起始域、仲裁域、控制域、数据域及CRC序列。f. 应答域包括应答位和应答分隔符。应答域由发送方发出的两位弱位组成,所有接收到正确的CRC序列的节点在发送节点的应答空隙期间,把发送方的这一弱位改写为强位来应答。g. 帧的结束域由7个弱位组成。2、远程帧 请求数据接
6、收数据的站可以发送远程帧来要求源节点发送数据,它由6个域组成:帧起始域、仲裁域、控制域、CRC域、应答域和帧的结束域。远程帧和数据帧有如下不同:RTR位为高、数据长度代码无效、无数据域。3、 误指示帧 指示检测到的错误状态出错帧由两个不同的域组成:一个域由来自各站的错误标志叠加得到,第二个域是出错界定符。a.错误标志主动错误标志:由6个连续强位组成被动错误标志:由6个连续弱位组成,可由其他节点的强位改写b.出错界定符由8个连续的弱位组成。当错误标志发出后,每个节点监视总线状态,直至检测到一个强位的跳变。此时,表示所有的节点均已完成了错误标志的发送,并开始发8个弱位的界定符。4、过载帧 后续帧的
7、延时 过载帧由两个域组成:一个域是过载标志,第二个域是超载分界符。在下述情况下将有过载帧的发送:1、接收方在接收一帧之前需要过多的时间处理当前的数据(接收未准备好)。2、在帧间空隙域检测到强位信号a.过载标志由6个弱位组成,格式与错误标志相同b.过载分界符由8个连续的弱位组成。当过载标志发出后,每个节点监视总线状态,直至检测到一个弱位的跳变。此时,表示所有的节点均已完成了过载标志的发送,并开始发8个弱位的界定符。3.1.2错误检测CAN总线控制器错误检查分为以下几类:a. 位错误处于发送状态的节点对总线的每一位进行监测,如果检测到发送位与检测结果不一致,则报告出现位错误。但以下情况除外:在仲裁
8、域,弱位可被改写为强位;在应答间隙,只有接收节点可确认位错误。b. 填充错误在应使用位填充方法进行编码的报文中,出现了6个连续相同的位电平时,将检测出一个填充错误。c. CRC错误CRC序列是由发送器CRC计算结果组成的。接收器以与发送器相同的方法计算CRC。如果计算结果与接收到的CRC序列不相同,则检测出一个CRC错误。d. 格式错误当固定格式的域中出现一个或多个非法位时,则检测出一个格式错误。e. 应答错误在应答间隙期间,发送器未检测到强位,则检测出一个格式错误。3.1.3 错误处理a. 长干扰与短干扰当CAN控制器接收到连续干扰时,必须通知外部MCU,正常后,又要通知MCU返回正常操作。
9、在长干扰期间,CAN控制器进入总线关闭状态,短干扰不会影响CAN控制器的工作。b. 错误的本地处理CAN协议中定义了错误处理的原则,即最大限度的接近错误源,最大限度的反应,最大限度的响应。因此,错误大部分被本地处理,而对整体总线操作影响最小。c. 错误限制CAN控制器都包含一个发送错误计数器和一个接收错误计数器。当一帧数据正常发送或接收时,计数器减计数;而出错时加计数。CAN控制器超过127个错误点后进入被动错误状态,而之前为主动错误状态;当发送出错超过255个后,CAN控制器进入总线关闭状态。 第二节 CAN控制器3.2.0CAN控制器介绍本小节可参考BOSCH-CAN的用户手册CAN网络的
10、通信及网络协议主要是由CAN控制器来实现的。CAN控制器由CAN核、报文RAM、报文处理器、控制寄存器组和组件接口五部分组成。各部分作用如下: CAN核遵从CAN2.0A和CAN2.0B协议标准,波特率可根据用户技术需要编程,最高可达1M Bps(距离最长40米)。 CAN通信时,个别的报文对象需要配置。报文对象及接收过滤用的屏蔽标识均存入报文RAM。报文处理器实现了报文处理的功能。这些功能包括接收过滤、CAN核和报文RAM之间的数据交换、发送请求的处理、组件中断。控制寄存器组可由外部MCU通过组件接口直接操作。这些寄存器用于控制/配置CAN核、报文处理器和访问报文RAM。组件接口实现了CAN
11、控制器与外部MCU的连接。3.2.1相关寄存器的介绍CAN控制寄存器为16位的寄存器,高位在奇数地址,低位在偶数地址。1.控制器寄存器组控制器寄存器组控制着操作模式、CAN位定时的配置和提供状态信息CAN控制寄存器(CAN Control Register)状态寄存器(Status Register)出错计数器(Error Couuter) 位定时寄存器(Bit Timing Register)测试寄存器(Test Register)波特率扩展寄存器(BRP Extension Register)2.报文接口寄存器组IF1寄存器组和IF2寄存器组接口寄存器避免了CPU访问报文RAM而影响报文R
12、AM与CAN bus之间的数据处理,一个完整的报文对象(或部分报文对象)可在报文RAM和IFx报文缓冲寄存器之间传送。每一组寄存器都包括了由它们本身命令寄存器控制的报文缓冲寄存器。命令屏蔽寄存器规定了数据传送的方向和哪部分报文对象将被发送,命令请求寄存器用于选择报文RAM中的报文对象是要发送的报文还是将要接收的报文,还控制着命令屏蔽寄存器。IFx命令请求寄存器(Command Request Register)当CPU向IFX命令请求寄存器中写入报文号,报文就开始传输。IFx命令屏蔽寄存器(Command Mask Register)规定了报文的传送方向和选择哪一个IFx报文缓冲寄存器作为数据
13、传送的数据源或目的地址。IFx报文缓冲寄存器(Message Buffer Registers)报文缓冲寄存器是报文RAM中报文对象的镜象。IFx屏蔽寄存器(Mask Register)IFx仲裁寄存器(Arbitration Registers)IFx报文控制寄存器(Message Control Registers)IFx数据寄存器A和BCAN报文是按以下的顺序存储在IFx报文缓冲寄存器中的。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0IF1报文数据A1 Data1 Data0IF1报文数据A2 Data3 Data2IF1报文数据B1 Data5 Data
14、4IF1报文数据B2 Data7 Data6IF2报文数据A1 Data1 Data0IF2报文数据A2 Data3 Data2IF2报文数据B1 Data5 Data4IF2报文数据B2 Data7 Data6在一个CAN数据帧中,先传Data0,最后传Data7,每个字节的最高位首先被传送。报文RAM中有32个报文对象,为避免相互影响(CPU对报文RAM和CAN对报文RAM的操作之间),CPU不能直接访问报文对象,而通过IFx接口寄存器组访问。3.报文处理器寄存器组中断寄存器(Interrupt Register)状态中断优先级最高。在报文中断中,报文对象的中断优先级随着报文号的增加而降低
15、。即报文号越小,报文对象优先级越高。发送请求寄存器(Transmission Request Register)发送请求寄存器存储32个报文对象的发送请求,可以通过读来判断是否有发送请求发生。可通过IFx报文接口寄存器对其置位和复位或者成功收到/发送远程帧时置位/复位。新数据寄存器(New Data Register)CPU读该寄存器可检查哪些报文对象被更新。NewDat位可被置位/复位,一种方法是CPU通过IFx报文接口寄存器,另一种方法是成功接收/发送数据帧.中断标志寄存器(Interrupt Pending Registers)报文有效寄存器(Message Valid Register
16、)第三节 C8051F04X中的CAN控制器C8051F04X系列单片机是完全集成的混合信号系统级芯片(SOC),具有与8051指令集完全兼容的CIP-51内核。它在一个芯片内集成了构成一个单片机数据采集或控制系统所需的几乎所有的模拟和数字外设及其他功能部件。这些外部设备的高度集成为设计小体积、低功耗、高可靠性、高性能的单片机应用系统提供了方便,也可使系统的整体成本大大降低。参考网站:C8051F04x系列单片机带有CAN控制器,利用CAN协议可以执行一系列的信息交换。CAN控制器很容易在CAN网络实现信息交流并和CAN 2.0A和2.0B兼容。CAN控制器包含有C
17、AN内核、报文RAM、报文处理器和控制寄存器。CAN控制器的速率可以达到1MB/秒, F04X中CAN拥有32个报文对象,每一个都有自己的屏蔽位用于接收或过滤收到的信息。收到的数据、报文对象和屏蔽标志都储存在CAN的报文RAM中。CAN控制器自动完成发送数据和接收屏蔽功能,而不需要MCU的参与。通过配置CAN控制器,可以借助于MCU中的特殊功能寄存器来接收和发送数据。3.3.0CAN控制器的操作CAN控制器中的寄存器分为:a. CAN控制协议寄存器组CAN控制协议寄存器组用于设置CAN控制器、处理中断、监测总线状态和在测试模式中使用控制器。这些寄存器有:CAN控制寄存器(CAN0CN)、CAN
18、状态寄存器(CAN0STA)、CAN测试寄存器(CAN0TST)、错误计数寄存器(CAN0TST)、位定时寄存器(BTR)、波特率预编程扩展寄存器(BRP)。CAN0CN、CAN0STA、CAN0TST可以直接访问,BTR和BRP需要借助CAN0ADR、CAN0DATH、CAN0DATL来访问。b. 报文对象接口寄存器组用于设置32个信息对象,在报文对象之间进行发送和接收数据。MCU通过报文对象接口寄存器来访问报文RAM。通过向IF1或IF2命令请求寄存器写入一个报文对象号,相应接口寄存器(IF1或IF2)和CAN RAM中的报文对象之间进行数据传输。报文对象可被设为发送或接收,也可设为所有接
19、收数据的CAN节点的仲裁识别标识。报文对象存在报文RAM中,通过报文对象接口寄存器进行配置和访问。这些寄存器可用间接寻址方式即通过MCU的CAN0ADR、CAN0DATH和CAN0DATL寄存器来访问。 d. 报文处理寄存器组报文处理寄存器组是只读寄存器组,可提供给MCU有关报文对象的信息(有效标志位、发送请求、新数据标志)和即将发生的中断(报文对象已经产生了一个中断或状态中断条件)。标志位可通过CAN0ADR、CAN0DATH、CAN0DATL间接索引方法来读取。信息处理寄存器提供中断、错误、发送/接收请求和新数据信息。e. C8051 MCU特殊功能寄存器组可以通过特殊功能寄存器组来修改、
20、监测和控制MCU的外部设备。CAN控制器的3个寄存器可被特殊功能寄存器直接访问。其它CAN控制寄存器都可用CAN数据寄存器CAN0DATL、CAN0DATH和CAN地址寄存器CAN0ADR来间接访问。这样,共有5个CAN寄存器用于设置和运行CAN控制器。每个CAN控制器都有一个索引号(见索引表)。CAN寄存器地址空间为256个字节。当CAN寄存器的索引号写入CAN0ADR时,就可以通过CAN0DATH和CAN0DATL来使用该寄存器。为方便对报文对象编程,CAN0ADR寄存器具有自动加一的功能,从0X08到0X12(接口寄存器1),从0X20到0X2A(接口寄存器2)。当CAN0ADR寄存器在
21、这些范围内有一个索引,则在读写CAN0DATL时,CAN0ADR自动增加1指向下个CAN寄存器。索引表CAN寄存器索引号寄存器名字复位值注释0X00CAN控制寄存器0X0001在CIP-51 SFR中使用0X01状态寄存器0X0000在CIP-51 SFR中使用0X02错误寄存器0X0000只读0X03位定时寄存器0X2301通过写CAN0CN中CCE位使能0X04中断寄存器0X0000只读0X05测试寄存器0X0000位7(RX)由CAN总线决定0X06BRP外部寄存器0X0000通过写CAN0CN中TEST位使能0X08IF1命令请求寄存器0X0001CAN0ADR自动增加IF1索引范围(
22、0X080X12)写CAN0DATL0X09IF1命令屏蔽寄存器0X0000写CAN0DATL, CAN0ADR自动增加0X0AIF1屏蔽寄存器10XFFFF写CAN0DATL, CAN0ADR自动增加0X0BIF1屏蔽寄存器20XFFFF写CAN0DATL, CAN0ADR自动增加0X0CIF1仲裁寄存器10X0000写CAN0DATL, CAN0ADR自动增加0X0DIF1仲裁寄存器20X0000写CAN0DATL, CAN0ADR自动增加0X0EIF1报文控制寄存器0X0000写CAN0DATL, CAN0ADR自动增加0X0FIF1数据A10X0000写CAN0DATL, CAN0AD
23、R自动增加0X10IF1数据A20X0000写CAN0DATL, CAN0ADR自动增加0X11IF1数据B10X0000写CAN0DATL, CAN0ADR自动增加0X12IF1数据B20X0000写CAN0DATL, CAN0ADR自动增加0X20IF2命令请求寄存器0X0001CAN0AD自动增加IF2索引范围(0X200X2A)写CAN0DATL0X21IF2命令屏蔽寄存器0X0000写CAN0DATL, CAN0ADR自动增加0X22IF2屏蔽寄存器10XFFFF写CAN0DATL, CAN0ADR自动增加0X23IF2屏蔽寄存器20XFFFF写CAN0DATL, CAN0ADR自动
24、增加0X24IF2仲裁寄存器10X0000写CAN0DATL, CAN0ADR自动增加0X25IF2仲裁寄存器20X0000写CAN0DATL, CAN0ADR自动增加0X26IF2报文控制寄存器0X0000写CAN0DATL, CAN0ADR自动增加0X27IF2数据A10X0000写CAN0DATL, CAN0ADR自动增加0X28IF2数据A20X0000写CAN0DATL, CAN0ADR自动增加0X29IF2数据B10X0000写CAN0DATL, CAN0ADR自动增加0X2AIF2数据B20X0000写CAN0DATL, CAN0ADR自动增加0X40传输请求10X0000报文对象传输请求标志(只读)0X41传输请求20X0000报文对象传输请求标志(只读)0X48新数据10X0000报文对象的新数据(只读)0X49新数据20X0000报文对象的新数据(只读)0X50待解决的中断10X0000报文对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版农业科技推广项目农药产品销售合作协议
- 2025年网络安全风险评估与安全协议完善合同
- 2025年智慧城市建设承包经营合同范本
- 2025版外墙装修工程索赔处理合同
- 2025年度石料贸易代理服务合同规范
- 2025版双方自愿离婚协议书法律效力评估规范
- 2025年度琼台师范学院产学研合作协议
- 2025年劳动合同制员工职业健康安全合同
- 2025年度体育赛事赞助保证合同-体育赛事风险防控保障
- 2025年度办公大楼绿化养护与景观设计服务合同
- 小学音乐开学第一课教学课件
- 万象城商业年终总结
- 黄色中国风家乡介绍山西
- 劳动关系协调师竞赛技能竞赛考试题及答案
- 扬州树人学校2024-2025七年级上学期9月月考数学试卷及答案
- 《第2课 多样的数据》参考课件1
- 熔炼过程自动化智能化控制
- 十年(2015-2024)高考真题数学分项汇编(全国)专题02 复数(教师卷)
- 神经源性肠道功能障碍的康复护理
- QB/T 8006-2024 年糕 国家标准(正式版)
- 郑州市第四中学英语新初一分班试卷含答案
评论
0/150
提交评论