基于can总线的适配器节点设计课程设计论文(编辑修改稿)内容摘要:

,当 PDIUSBD12 从 USB 收到一个数据包那么就对 MCU 产生一个中断请求 ,MCU 立即响应中断 ,在 ISR 中固件将数据包从PDIUSBD12 内部缓冲区移到数据缓冲区 ,并在随后清零 PDIUSBD12 的内部缓冲区 ,以使能接收新的数据包。 MCU 可以继续它当前的前台任务 ,返回到主循环检查循环缓冲区内是否有新 的数据。 图 为 PDIUSBD13 固件编程结构图。 图 PDIUSBD13固件编程结构图 这部分程序结构可包括: 1) 请求处理程序 对 USB的标准设备请求进行处理和对用户添加的厂商请求进行处理。 USB设备接入主机后要进入复杂的设备列举过程 ,并安装正确的驱动程序。 2)硬件提取层 对单片机的 I/O 口、数据总线等硬件接口进行操 作 ,该层包含最底层的函数 ,这些函数在不同的 MCU 平台上需要进行改变 , 本科生课程设计(论文) 6 void outportb( unsigned char port,unsigned char val)。 void inportb( unsigned char port)。 对 PDIUSBD12 所有的 I/O 访问都可由它们实现。 3) PDIUSBD12 命令接口 对 PDIUSBD12 器件进行操作的模块子程序集 ,以简化器件的编程。 4)中断服务程序 当 PDIUSBD12 向单片机发出中断请求时,读取 PDIUSBD12 的中断传 输来的数据,并设定事件标志和 Setup 包数据缓冲区,传输给主循环。 5)主循环 发送 USB 请求,处理 USB 总线事件和用户功能处理等。 MCU 一旦上电就需要初始化其所有端口存储区 ,中断服务程序。 在主循环程序中 MCU 对事件进行轮询 ,如有 CAN总线发来的数据 ,则送往 PDIUSBD12进行发送 ,如有 USB总线数据 ,则启动CAN 发送程序 ,它们在接口的接收工作分别由各自的中断程序完成。 要注意的是 ,我们在用了 PDIUSBD12 的端口最大一次可发送 64 字节 ,SJA1000 一次最多能发 8字节 , 如果端口 1传输的长度大于 8 字节 ,MCU 在传输阶段就必须根据数据大小 ,分数次完成 CAN 数据的发送工作。 PDIUSBD12 初始化程序: void D12_init() { D12_SetAddressEnable(0,1)。 D12_SetEndpointEnable(1)。 Disconnect()。 Delay(2)。 Connect()。 D12_ReadInterruptRegister()。 } 收发器 PCA82C250 PCA82C250 是 CAN 协议控制器和物理总线间的接口, 它主要是为汽车中高速通讯(高达 1Mbps)应用而设计。 此器件对总线提供差动发送能力,对 CAN 控制 本科生课程设计(论文) 7 器提供差动接收能力,与 ISO11898 标准完全兼容。 PCA82C250 芯片由接收器、驱动器、基准电压产生电路、工作模式选择电路及保护电路等组成。 PCA82C250 内部的限流电路可以防止发送输出级对电池电压的正端和负端短路。 虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。 在节点温度大约超过 160℃时,两个发送器输出端的极限电流将减少。 由于发送器是功耗的主要部分,因此芯片温度会迅速降低。 PCA82C50 芯片的其他部分将继续工作。 当总线短路时,热保护十分重要。 图 为 PCA82C250 引脚图。 图 为 PCA82C250 引脚图 本科生课程设计(论文) 8 系统总体框图 图 为系统总体框图,主要说明单片机与 SJA1000 和 PDIUSBD13 的引脚连接。 图 系统总体框图 本科生课程设计(论文) 9 第 4章 软件设计 CAN 总线的初始化程序 CAN 总线的三层结构模型为:物理层、数据链路层和应用层。 其中物理层和数据链路层的功能由 SJA1000 完成,系统的开发主要在应用层软件的设计上,它主要由三个子程序:初始化子程序、发送数据和接收数据程序。 同时,还包括一些数据溢出中断以及帧出错的处理。 SJA1000 在上电硬件复位之后,必须对其进行软件初始化之后才可以进行数据通讯,初始化过程主要包括对其复位模式下配置时钟分频寄存器 CDR、总线定时寄存器 BTR0 和 BTR验收代码寄存器 ACR、验收屏蔽寄存器 AMR 及输出控制寄存器 OCR 等,实现对总线的速率、验收屏 蔽码、输出引脚驱动方式、总线模式及时钟分频进行定义。 图 为 CAN 总线初始化流程图。 图 CAN 总线初始化流程图 开 始启 动 运 行 指 示 灯进 入 复 位 模 式写 A C R写 A M R写 B T R 0写 B T R 1写 O C R写 C D R开 错 误 中 断 , 发 送 中 断 ,接 收 中 断 , 溢 出 中 断结 束进 入 运 行模 式。 清 除 复 位 标 志 位NY 本科生课程设计(论文) 10 SJA1000 发送和接收数据的流程 SJA1000 发送和接收数据的流程,基本过程为主控制器将数据保存到 SJA1000发送缓冲器,然后对命令寄存器的发送请求 TR 标志位进行置位开始发送。 接收过程为 SJA1000 将从总线上接收到的数据存入接收缓冲器,通过其中断标志位通知主控制器来处理接收到的信息,接收。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。