第六章 CAN硬件设计.ppt_第1页
第六章 CAN硬件设计.ppt_第2页
第六章 CAN硬件设计.ppt_第3页
第六章 CAN硬件设计.ppt_第4页
第六章 CAN硬件设计.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6CAN的开发与设计 概述系统构成CAN通信的控制CAN通信的应用 CAN节点结构系统构成通信控制 寄存器设置 收发缓冲器 认可滤波器 软件 初始化 设置各个寄存器 中断设置 波特率设置 输出方式设置等 数据接收 读取接收缓冲区的数据 采用查询还是中断 20 29 数据发送 向CAN总线控制器发送缓冲器中写数据 10 19 6 4CAN的通信功能的应用 通过CAN总线建立通信的过程 系统上电后设置主控制器与SJA1000相关的硬件及软件SJA1000上电复位后 设置CAN控制器的通信功能 方式选择 认可滤波器的设置 位定时信息等 在应用主程序中准备要发送的数据并激活SJA1000将数据发出处理CAN控制器接收到的报文处理在通信过程中发生的错误 概述系统构成CAN通信的控制CAN通信的应用 6 4 1初始化 SJA1000在上电或硬复拉后 必须初始化以便进行通信 在运行过程中还可以通过主控制器对其组态进行修改 重新组态 在进行重新组态时 首先要进入复位状态 图6 12给出了初始化程序的流程 概述系统构成CAN通信的控制CAN通信的应用 上电复位后 主控制器要运行其复位子程序 然后进入初始化SJA1000的子程序 因为要组态的寄存器只有在复位模式 ResetMode 下 才能被写入 主控制器必须在复位模式下对控制段的下列寄存器进行设置 1 控制寄存器选择下列运行方式 复位或运行 概述系统构成CAN通信的控制CAN通信的应用 2 时钟分频寄存器 BasicCAN或PeliCAN模式时钟输出 CLKOUT 是否有效接收比较器是否旁路TX1输出脚是否用作专用接收中断输出 3 认可码与认可码屏蔽寄存器 定义要接收报文的认可码定义认可码与报文进行比较的相关位 概述系统构成CAN通信的控制CAN通信的应用 4 总线定时寄存器定义总线的波特率定义在位周期中的采样点位值定义采样点数目 5 输出控制寄存器定义CAN总线输出脚TX0和TX1的输出方式定义输出脚TX0 TX1的组态 悬浮 上拉 下拉或推挽及极性正常输出方式 时钟输出方式 双相输出方式或测试方式 概述系统构成CAN通信的控制CAN通信的应用 上述的组态信息写入SJA1000的控制段后 就可以通过清除R R标志进入运行状态 但必须检验这个标志位是否真正被清除了 并且确已进入运行模式 否则程序不应继续往下执行 在设置SJA1000寄存器前 主控制器应该通过读R R Resetmode Request 标志来确认SJA1000确在复位方式 因为要组态的寄存器只有在复位模式 ResetMode 下 才能被写入 RR复位请求在控制寄存器 CR 中 概述系统构成CAN通信的控制CAN通信的应用 参数定义 起始地址 8000H CONEQU8000H 控制寄存器CMREQU8001H 命令寄存器SREQU8002H 状态寄存器CDREQU801FH 时钟分频器ACREQU8004H 认可码寄存器AMREQU8005H 认可码屏蔽寄存器BTR0EQU8006H 总线定时寄存器0BTR1EQU8007H 总线定时寄存器1OCREQU8008H 输出控制寄存器CANTXDEQU800AH 发送缓冲区CANRXDEQU8014H 接收缓冲区 CINIT MOVDPTR CON 控制寄存器MOVA 01H 复位SJA1000MOVX DPTR A MOVDPTR CDR 时钟分频寄存器MOVA 6FH BASICCAN模式 CLKOUT关MOVX DPTR AMOVDPTR BTR0 总线定时器0MOVA 0C5HMOVX DPTR AMOVDPTR BTR1 总线定时器1MOVA 0A5HMOVX DPTR A 波特率 1 tTseg1 tTseg2 tSYN tSYN tSCL 例 24MHz晶振 BTR0 0C5H BTR1 0A5H BTR0 11000101 BTR1 10100101tSCL 2 4 1 2 0 1 1 24 106 0 5 10 6tTseg1 8 0 4 1 2 0 1 1 tSCL 6tSCLtTseg2 4 0 2 1 1 0 1 tSCL 3tSCL波特率 1 tTseg1 tTseg2 tSCL 1 10tSCL 200 103 MOVDPTR AMR 接收屏蔽寄存器MOVA DAMRMOVX DPTR AMOVDPTR ACR 认可码寄存器MOVA DACRMOVX DPTR A MOVDPTR CONMOVA 08HMOVX DPTR A 并返回工作状态 报文的发送是CAN控制器SJA1000依据CAN协议规范自动进行的 主控制器将要发送的报文写入SJA1000的发送缓冲区 并将发送请求位 TransmitRequest 置 发送过程既可以采用中断方式 也可以采用查询方式 查询SJA1000控制段的状态标志 概述系统构成CAN通信的控制CAN通信的应用 6 4 2数据的发送 1 采用中断方式的数据发送 查询方式的报文发送在查询方式下CAN发送中断应被屏蔽 一旦报文开始发送 发送缓冲器写闭锁 因此主控制器要查询 发送缓冲器状态 标志 确定是否可以将一个新的报文写入发送缓冲器 TXBuffer 概述系统构成CAN通信的控制CAN通信的应用 发送子程序 TDATA MOVDPTR SR 状态寄存器MOVXA DPTR 从SJA1000读入状态寄存器值JBACC 4 TDATA 判断是否正在接收 正在接收则等待TS0 MOVXA DPTRJNBACC 3 TS0 判断上次发送是否完成 未完成则等待发送完成TS1 MOVXA DPTRJNBACC 2 TS1 判断发送缓冲区是否锁定 锁定则等待 TS2 MOVDPTR CANTXD SJA1000发送缓存区首址MOVA 88H MOVX DPTRAINCDPTRMOVA 88H 标识符10001000100MOVX DPTR A 向发送缓冲区写数据 MOVR1 08H 数据长度MOVR0 TRDATA cpu发送数据区首地址MTBF MOVA R0INCDPTRMOVX DPTR AINCR0DJNZR1 MTBF MOVDPTR CMR 命令寄存器地址MOVA 01H 发送请求置1MOVX DPTR A 启动SJA1000发送RET 6 4 3中止发送请求发送的报文可以用 中止发送 命令来中止发送过程这一特性可以用来发送一个比已写入发送缓冲器TXBuff中的报文更紧急的报文 图6 15给出了中断方式下的中止发送程序流程图 这个流程图演示了中止当前报文而发送一个优先级别高的报文 概述系统构成CAN通信的控制CAN通信的应用 6 4 4接收报文接收报文是CAN控制器依据CAN协议规范自动进行 接收报文被放在接收缓冲器RXBuffer中 一个报文是否可以传送给主控制器 由状态寄存器的接收缓冲器状态RBS和接收中断标志确定 若中断开放 主控制器要将有效数据读入其内存 释放接收缓冲器RXBuffer 并对报文进行处理 传送过程既可由中断控制 也可通过查询状态寄存器标志来完成 概述系统构成CAN通信的控制CAN通信的应用 CAN控制器的接收中断应屏蔽 主控制器读SJA1000状态寄存器 周期性的 查询接收缓冲器状态标志RBS 看接收缓冲器中是否有报文存在 概述系统构成CAN通信的控制CAN通信的应用 1 查询方式的接收过程 若接收缓冲器空 主控制器继续其它的程序 直到下一个查询接收缓冲器状态命令 若接收缓冲器状态标志指示 满 接收缓冲器中已接收到一个或多个报文 CAN控制器的接收中断和主控制器用于连接CAN控制器接收中断信号的外部中断源 应在接收报文开始前开放 概述系统构成CAN通信的控制CAN通信的应用 2 中断方式的接收 接收中断允许标志在控制寄存器 BasicCAN模式 或在中断允许寄存器 PeliCAN模式 概述系统构成CAN通信的控制CAN通信的应用 接收子程序 REC MOVDPTR SRMOVXA DPTRJBACC 4 REC 判断sja1000是否正在接收报文 是则等待JNBACC 0 REC 读出状态寄存器中的值 判断是否有报文 有则接收 无则返回 ACCEPT MOVDPTR CANRXDINCDPTRMOVXA DPTRANLA 0FH 截取字节长度MOVR2 AMOVR1 CPURBF RDATA INCDPTR 数据第一字节MOVXA DPTRMOV R1 AINCR1DJNZR2 RDATA 循环读取数据RELE MOVDPTR CMRMOVA 04H 释放CAN接收缓冲区MOVX DPTR ARET 综合设计 作业 利用8051单片机 SJA1000CAN控制器以及其他相关芯片设计一基于CAN总线的数据采集系统 要求使用相关芯片设计该系统的CAN节点 该节点能够采集8路开关量 主要有关的芯片的管脚定义随题给出 要求 A 画出CAN节点的原理连接简图 B 给出CAN节点的详细初始化程序框图 包括SJA1000的初始化 C 假设系统的通信速率为250Kbps 系统振荡频率为24MHz 设置相应的SJA1000的寄存器 D 给出中断方式报文的接收和发送程序框图 CAN总线数据收发实验 由装置甲来发送数据 装置乙的数码管来显示接收到的数据 具体通信过程如下 1 甲的单片机将数据处理后发送到CAN总线控制器的发送缓冲区中 并将数据通过CAN总线发送给装置乙 2 乙装置将数据从CAN总线控制器的接收缓冲区中提取出来并通过数码管显示出来 CH451显示模块 CH451是一个整合了数码管显示驱动和键盘扫描控制以及 P监控的多功能外围芯片 CH451内置RC振荡电路 可以动态驱动8位数码管或者64位LED 具有BCD译码 闪烁 移位等功能 同时还可以进行64键的键盘扫描 CH451通过可以级联的串行接口与单片机等交换数据 并且提供上电复位和看门狗等监控功能 单片机向CH451输出串行数据的过程 输出一位数据 即向DIN输出最低位数据B0 并向DCLK输出低电平脉冲 从高电平变为低电平再恢复为高电平 其中包括一个上升沿使CH451输入位数据 以同样的方式 输出位数据B1 B11 向LOAD输出低电平脉冲 其中包括一个上升沿使CH451加载串行数据 CH451的操作命令均为12位 下表列出了CH451的各个操作命令所对应的12位串行数据 其中 标注为x的位表示该位可以是任意值 标有名称的位表示该位在CH451芯片内部具有相应的寄存器 类别判断 命令设置或显示的数据编码 初始化 START CLRDIN 输出一个低电平脉冲 以通知CH451为4线串行接口SETBDCLK 置为默认的高电平SETBDINSETBLOADSETBDOUTMOVB 04H 设置系统参数命令MOVA 07H WATCH DOG使能 开键盘 显示功能LCALLWRITEMOVB 05H 设置显示参数MOVA 0DH 不译码 4位显示 亮度为D级LCALLWRITE 数据读取 WRITE CLRET0 禁止键盘中断CLRLOAD 命令开始MOVR7 08H 将ACC中8位送出WRITE 8 RRCA 低位在前 高位在后CLRDCLKMOVDIN C 送出一位数据SETBDCLK 产生时钟上升沿通知DJNZR7 WRITE 8 位数据未完 继续MOVA BMOVR7 04H 将B中4位送出WRITE 4 RRCA 低位在前 高位在后CLRDCLKMOVDIN CSETBDCLKDJNZR7 WRITE 4SETBLOAD 产生加载上升沿通知SETBET0 开键盘中断RET 低8位 高4位 显示8888 MOVDIG0 7FHMOVDIG1 7FHMOVDIG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论