CAN总线的使用 .

上传人:Si****n 文档编号:145090143 上传时间:2020-09-16 格式:DOCX 页数:11 大小:923.01KB
返回 下载 相关 举报
CAN总线的使用 ._第1页
第1页 / 共11页
CAN总线的使用 ._第2页
第2页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《CAN总线的使用 .》由会员分享,可在线阅读,更多相关《CAN总线的使用 .(11页珍藏版)》请在金锄头文库上搜索。

1、CAN总线的使用1、硬件连接方式硬件电路如下图所示:图中,D1(IL712)是磁隔离器件,其作用为了使各下井仪之间实现电气隔离。各下井仪需要为D1提供两组5V电源,图中标为VCC1和VCC2。其中,VCC1为仪器内部数字电源,提供给单片机C8051F041和其它数字电路;VCC2是隔离电源,用于给IL712和TJA1050供电,电源电流应大于75mA。C1、C2为两组电源的滤波电容。D1的2脚与C8051F041(图中未画)的7脚(CANTX)直接连接,D1的3脚与C8051F041的6脚(CANRX)直接连接。D2(TJA1050)为CAN总线收发器,该器件应用VCC2供电。C3为该器件的滤

2、波电容。D2的输出CANH(6脚)、CANL(7脚)直接连接到下井仪的总线上。R1、R2、C4为CAN总线终端匹配电阻的接法,这三个器件只需要在处在下井仪串上下两端的仪器中需要。即:在某仪器中,如果CAN总线是贯通线,则不能连接这三个器件,反之,如果在该仪器中,如果CAN总线不是贯通线,则需要连接这三个器件。输出的CANH和CANL应双绞。2、软件使用方法编程者应该熟悉以下两本资料:C8051F040/1/2/3/4/5/6/7混合信号ISP FLASH微控制器数据手册Boschs C_CAN Users Manual在下井仪中建议采用C8051F041或C8051F040单片机,该单片机内部

3、集成了Bosch CAN控制器。以下简要介绍C8051F04x单片机和Bosch CAN控制器及其软件编程方法。2.1 C8041F04x单片机SFR的分页机制C8051F04x系列MCU对CIP51内核和外设有几项关键性的改进,提高了整体性能。其中与编程密切相关的一点是使用了SFR(特殊功能寄存器)分页机制,允许器件将很多SFR映射到0X800XFF这个存储器空间。C8051F04x器件使用了5个SFR页:0、1、2、3和F。使用特殊功能寄存器页选择寄存器SFRPAGE来选择SFR页。因此,读、写一个SFR的步骤为:1. 用SFRPAGE寄存器选择相应的SFR页号。2. 用直接寻址方式读、写

4、特殊功能寄存器。(与以前的用法相同)。使用CAN控制器时,需要将SFRPAGE设置为1(用指令mov sfrpage,#1)。编程中用到的其它特殊功能寄存器可参看数据手册说明。2.2 C8041F04x单片机中CAN相关特殊功能寄存器参看数据手册第201203页。2.2.1 CAN控制器寄存器的访问方式可以直接通过访问一般SFR方式访问的寄存器共有6个:CAN0CN CAN控制寄存器CAN0STA CAN状态寄存器CAN0TST CAN测试寄存器CAN0ADR 寄存器索引地址CAN0DATH 数据字高字节CAN0DATL 数据字低字节其它CAN控制器寄存器只能通过CAN0ADR、CAN0DAT

5、H、CAN0DATL访问。访问方式:先向CAN0ADR中写入待访问CAN控制器寄存器的索引号,然后通过CAN0DATH写入或读出高字节,通过CAN0DATL写入或读出低字节。例如:0X5号寄存器其中写入0X1234h,可采用以下三条指令: mov can0adr,#0x5 mov can0dath,#12h mov can0datl,#34h对于某些索引地址,在向can0datl进行写入或读出操作后,can0adr有自动加1功能,因此必须向操作can0dath,再操作can0datl。CAN0CN、CAN0STA、CAN0TST也有索引地址,也可以通过地址索引方式访问。2.2.3 CAN控制器

6、寄存器组成CAN控制器寄存器可分为以下几类:2.2.3.1 CAN控制器协议相关寄存器1 CAN控制寄存器(索引地址0x00)1514131211109876543210resresresresresresresresTestCCEDARCANIFEIESIEIEInitrrrrrrrrrwrwrwrrwrwrwrwTest1 测试模式 Test0 正常工作模式 一般将Test位置0CCE1时可以控制更改位定时寄存器 一般将CCE位置0DAR 禁止自动重发功能 使用中将该位置1CANIF CAN中断标志EIE 错误中断使能SIE 状态中断使能IE CAN中断使能Init 初始化时将该位置1,正

7、常工作时将该位置02 CAN状态寄存器(索引地址0x01)1514131211109876543210resresresresresresresResBOffEWarnEPassRxOKTxOKLECrrrrrrrRrrrrwrwrw该寄存器反映CAN控制器的状态。BOff 处于离线状态(1)EWarn 警告状态(1说明错误计数器中至少有一个达到错误警告的极限值)EPass 处于被动错误状态RxOK 自上次这位被清0后,又成功地收到一条消息TxOK 自上次这位被清0后,又成功地发送一条消息LEC CAN总线上最后一次错误的类型3 CAN错误计数器(索引地址0x02)15141312111098

8、76543210RPREC60TEC70rRrRP 接收被动错误达到CAN协议规定的被动错误水平(1)REC60 接收错误计数器,记录接收错误的次数TEC70 发送错误计数器,记录发送错误的次数4 CAN位定时寄存器(索引地址0x03)1514131211109876543210resTseg2Tseg1SJWBRPrrwrwrwrw该寄存器的设置与CAN总线通讯的波特率有关,各下井仪需统一设定,各位含义可参看CAN控制器用户手册。5 CAN测试寄存器(索引地址0x04)1514131211109876543210resresresresresresresResRxTx1Tx0LbackSil

9、entBasicresresrrrrrrrRrrwrwrwrwrwrr该寄存器只有在CAN控制寄存器中的Test位1时才有效,用于测试CAN总线的通讯功能,在正常工作时不使用。6 CAN位定时扩展寄存器(索引地址0x06)1514131211109876543210resresresresresresresresresresresresBRPErrrrrrrrrrrrrw该寄存器的设置与CAN总线通讯的波特率有关,各下井仪需统一设定,各位含义可参看CAN控制器用户手册。2.2.3.2 消息对象接口寄存器CAN控制器中有一块消息RAM,可以存储32条消息对象,每条消息对象中包含8字节有用数据及其

10、它协议相关控制信息。CPU访问消息RAM中任何一条消息对象都必须通过消息对象接口寄存器完成。CAN控制器中共有两套消息对象接口寄存器IF1和IF2。IF1和IF2除了在测试模式下的用法有所不同外,在正常工作时用法相同。可以将一套用于将数据写入消息RAM,另一套用于从消息RAM中读取数据。在此,只介绍IF1寄存器组的用法。1 IF1命令请求寄存器(索引地址0x08)Message Number为消息对象的编号,有效值为0x010x20,分别对应32个消息对象,用于设定要访问的消息对象的编号。CPU向命令请求寄存器中写入消息编号后,消息就在IF1寄存器组与消息RAM之间开始传送。随着写操作,Bus

11、y位自动置1,传送过程完成后,Busy自动清0。因此,必须在完成IF1寄存器组中其它寄存器的设置后,再向IF1命令请求寄存器写入消息编号。2 IF1命令掩码寄存器(索引地址0x09)IF1命令掩码寄存器中的控制位指定传输方向,并选择消息对象的哪些位作为数据传输的目的或源。WR/RD 读/写 1 写:数据从IF1送到消息RAM中 0 读:数据从消息送到IF1Mask 存取Mask位 1 传输Identifier MaskMdirMXtd位 0 屏蔽位不变化Arb 存取仲裁位 1 传输Identifier MaskDirXtdMsgval位0 仲裁位不变化Control 存取控制位 1 传输控制位

12、到消息RAM中0 控制位不变化ClrIntPnd 清除中断请求位 读操作时 1 清除消息RAM中的IntPnd位 0 不改变IntPnd位 在写操作时,此位被忽略TxRqst/NewDat 存取传输请求位 读操作时 1 清除消息对象中的NewDat位0 不改变NewDat位 写操作时 1 将传输请求位置10 不改变传输请求位Data A 存取数据字节031 传输数据字节03 0 不改变数据字节03Data B 存取数据字节471 传输数据字节47 0 不改变数据字节473 IF1掩码1(索引地址0x0a)、IF1掩码2(索引地址0x0b)Msk28Msk0 1 相应的位使用接受过滤0 消息对象的ID号中对应位不用于接受过滤MXtd 1 在接受过滤中使用扩展ID号 0 不使用扩展ID号MDir 1 消息方向位Dir用于接受过滤中 0 消息方向位Dir在接受过滤中不使用4 IF1仲裁1(索引地址0x0c)、IF1仲裁2(索引地址0x0d)ID28ID0 消息对象的ID号 标准帧只使用ID28ID18MsgVal 1 该消息对象已经配置,消息处理器纳入处理 0 消息处理器不考虑该消息对象Xtd 1 使用29位ID号(扩展帧) 0 使用11位ID号(标准帧) 下井仪器中一律采用标准帧Dir 1 消息对象方向为发送,消息对象作为数据帧传送

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号