1、嵌入式系统-使用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传输层 把接收到的报文提供给对象层,以及接收来自对象
2、层的报文。 物理层 在不同节点之间根据所有的电气属性进行位信息的实际传输。,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 报文传
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,
4、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.
5、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. 控制寄
6、存器 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) M
7、SCAN发送器消息中止控制寄存器(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标
8、识符屏蔽寄存器(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通信用到的
9、设置量定义 (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 * C
10、ANRCVBUF),嵌入式系统-使用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
11、步:等待时间增加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,