CAN总线及其应用-苦心收集.ppt
嵌入式系统-使用HCS12微控制器的设计与应用,1,第10章 CAN总线及其应用,嵌入式系统-使用HCS12微控制器的设计与应用,2,10.1 CAN技术规范10.2 MSCAN12模块简介10.3 MSCAN12模块的内存映射以及寄存器定义10.4 MSCAN12模块的自环通信实例,本章目录,嵌入式系统-使用HCS12微控制器的设计与应用,3,10.1.1 CAN的基本概念,10.1 CAN技术规范,嵌入式系统-使用HCS12微控制器的设计与应用,4,10.1.2 CAN的分层结构CAN对象层报文滤波以及状态和报文的处理。CAN传输层把接收到的报文提供给对象层,以及接收来自对象层的报文。物理层在不同节点之间根据所有的电气属性进行位信息的实际传输。,10.1 CAN技术规范,嵌入式系统-使用HCS12微控制器的设计与应用,5,10.1.3 报文传输和帧结构数据帧,10.1 CAN技术规范,数据帧组成,嵌入式系统-使用HCS12微控制器的设计与应用,6,10.1.3 报文传输和帧结构数据帧,10.1 CAN技术规范,数据帧标准格式中的仲裁场结构,嵌入式系统-使用HCS12微控制器的设计与应用,7,10.1.3 报文传输和帧结构数据帧,10.1 CAN技术规范,数据帧扩展格式中的仲裁场结构,嵌入式系统-使用HCS12微控制器的设计与应用,8,10.1.3 报文传输和帧结构远程帧,10.1 CAN技术规范,嵌入式系统-使用HCS12微控制器的设计与应用,9,10.1.3 报文传输和帧结构错误帧,10.1 CAN技术规范,错误帧的组成,嵌入式系统-使用HCS12微控制器的设计与应用,10,10.1.3 报文传输和帧结构过载帧,10.1 CAN技术规范,过载帧的组成,嵌入式系统-使用HCS12微控制器的设计与应用,11,10.1.4 位定时与同步,10.1 CAN技术规范,标称位时间的组成,嵌入式系统-使用HCS12微控制器的设计与应用,12,10.2 MSCAN12模块简介,MSCAN模块框图,嵌入式系统-使用HCS12微控制器的设计与应用,13,10.2 MSCAN12模块简介,10.2.1 MSCAN12特性符合CAN2.0A/B协议标准支持标准和扩展数据帧格式数据长度为08字节可编程位速率,最大1Mbps支持远程帧拥有5个FIFO机制的接收缓冲区,3个具有局部优先级的发送缓冲区具有灵活的标识符验收模式,嵌入式系统-使用HCS12微控制器的设计与应用,14,10.2 MSCAN12模块简介,10.2.2 外部引脚,CAN系统,嵌入式系统-使用HCS12微控制器的设计与应用,15,10.2 MSCAN12模块简介,10.2.3 报文存储结构,报文缓冲区组织图,嵌入式系统-使用HCS12微控制器的设计与应用,16,10.2 MSCAN12模块简介,10.2.4 标识符验收滤波,嵌入式系统-使用HCS12微控制器的设计与应用,17,10.2 MSCAN12模块简介,10.2.4 标识符验收滤波MSCAN12有4种滤波器方式双标识符验收过滤器四个标识符验收过滤器八个标识符验收过滤器关闭过滤器,嵌入式系统-使用HCS12微控制器的设计与应用,18,10.3 MSCAN12模块的内存映射以及寄存器定义,10.3.1 MSCAN12模块内存映射,嵌入式系统-使用HCS12微控制器的设计与应用,19,10.3 MSCAN12模块的内存映射以及寄存器定义,10.3.2 MSCAN12模块寄存器1.控制寄存器1)MSCAN控制寄存器0(CANCTL0)2)MSCAN控制寄存器1(CANCTL1)3)MSCAN总线时钟寄存器0(CANBTR0)4)MSCAN总线时钟寄存器1(CANBTR1)5)MSCAN接收器标志寄存器(CANRFLG)6)MSCAN接收器中断使能寄存器(CANRIER),嵌入式系统-使用HCS12微控制器的设计与应用,20,10.3 MSCAN12模块的内存映射以及寄存器定义,10.3.2 MSCAN12模块寄存器1.控制寄存器7)MSCAN发送器标志寄存器(CANTFLG)8)MSCAN发送器中断使能寄存器(CANTIER)9)MSCAN发送器消息中止控制寄存器(CANTARQ)10)MSCAN发送器消息中止控制寄存器(CANTAAK)11)MSCAN发送缓冲区选择寄存器(CANTBSEL)12)MSCAN标识符验收控制寄存器(CANTIDAC),嵌入式系统-使用HCS12微控制器的设计与应用,21,10.3 MSCAN12模块的内存映射以及寄存器定义,10.3.2 MSCAN12模块寄存器1.控制寄存器13)MSCAN接收错误计数寄存器(CANRXERR)14)MSCAN发送错误计数寄存器(CANTXERR)15)MSCAN标识符验收码寄存器(CANIDAR07)16)MSCAN标识符屏蔽寄存器(CANIDMR07),嵌入式系统-使用HCS12微控制器的设计与应用,22,10.3 MSCAN12模块的内存映射以及寄存器定义,10.3.2 MSCAN12模块寄存器2.报文存储机制(1)标识符寄存器(IDR03)(2)数据段寄存器(DSR07)(3)数据长度寄存器(DLR)(4)发送缓冲区优先级寄存器(TBPR),嵌入式系统-使用HCS12微控制器的设计与应用,23,10.4 MSCAN12模块的自环通信实例,10.4.1 MSCAN12初始化 MSCAN12通信头文件(MSCAN12.h)(1)CAN通信寄存器及标志位定义(2)CAN通信用到的设置量定义(3)CAN通信相关函数声明(4)CAN通信初始化,嵌入式系统-使用HCS12微控制器的设计与应用,24,10.4 MSCAN12模块的自环通信实例,10.4.1 MSCAN12初始化 MSCAN12通信函数文件(MSCAN12.c)(1)CAN通信初始化void CANInit(void)(2)CAN发送1帧数据INT8U CANSND1DFRM(INT16U ID,INT8U*DataBUF,INT8U LEN)(3)查找空闲发送缓冲区INT8U GetSNDBUF(void)(4)CAN接收1帧数据INT8U CANRCV1FRM(INT8U*CANRCVBUF),嵌入式系统-使用HCS12微控制器的设计与应用,25,10.4 MSCAN12模块的自环通信实例,10.4.1 MSCAN12自环通信方式测试工程1.自环通信方式测试工程主函数文件main.c第1步:定义常量,初始化变量第2步:禁止总中断第3步:芯片初始化第4步:模块初始化(串口初始化、MSCAN12模块初始化)第5步:开放SCI0接收中断 第6步:开放总中断,嵌入式系统-使用HCS12微控制器的设计与应用,26,10.4 MSCAN12模块的自环通信实例,10.4.1 MSCAN12自环通信方式测试工程1.自环通信方式测试工程主函数文件main.c第7步:等待时间增加1。若等待时间到转第8步,否则转第7步。第8步:发送Hello!,若发送成功转第9步,否则转第10步。第9步:CAN等待接收数据,若接收到则通过SCI向PC发送数据,否则发送“ReceiveError!”。转第11步。第10步:通过SCI向PC发送“SendError!”第11步:等待时间清零,转第7步。,嵌入式系统-使用HCS12微控制器的设计与应用,27,10.4 MSCAN12模块的自环通信实例,10.4.1 MSCAN12自环通信方式测试工程2.自环通信方式测试工程MT环境的工程结构,嵌入式系统-使用HCS12微控制器的设计与应用,28,10.4 MSCAN12模块的自环通信实例,10.4.1 MSCAN12自环通信方式测试工程3.自环通信方式测试工程CW环境的工程结构,嵌入式系统-使用HCS12微控制器的设计与应用,29,谢 谢,Ver 1.0,