基于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 将从总线上接收到的数据存入接收缓冲器,通过其中断标志位通知主控制器来处理接收到的信息,接收。基于can总线的适配器节点设计课程设计论文(编辑修改稿)
相关推荐
14DVDD40DVDD43DVDD50DGND23DGND24DGND32DGND41DGND49DVDD60R E S E T59P R O _ E25P R O G _ N58P 0 .0 / S C K33P 0 .1 / M O S I34P 0 .2 / M I S O51P 0 .352P 1 .026P 1 .135P 1 .236P 1 .337P 1 .438P 1
第 13 页 属性协议层简称为“属性”,能够通过它向其他设备展示自己特定的属性数据,在一些环境中,我们也把展示设备属性的设备称作为服 务器,如在 ATT 环境中,当然有服务器就会有相应的客户端,它是与属性设备配对的设备,并且主机和从机的链路层状态是与相应设备的 ATT 角色是相互独立各不相关。 通用属性配置文件层是一种定义使用 ATT 相关服务的框架,并且在 ATT 服务上面属于的一层结极
[5]。 图像分割的目的是把图像的这些有意义的区域提取出来。 这些 “ 有意义的 ” 内涵随着解决问题的不同而不同,比如在 本课题 中 即是焊道的边缘。 现有的图像分割方法主要分以下几类 [6 ]: ( 1)基于阈值的分割方法 灰度阈值分割法 [7]是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。 阈值分割方法实际上是输入图像 f到输出图像 g 的 变换 如式 : g(i,j) =
DP 压力传感器把压力转换成对应的毫伏电压信号,再经放大电路放大后,经 TLC0832 分时采集送单片机 89C52,单片机处理后送显示,通过 定时 中断把采样的压力数字信号经 CAN 总线 送 到上位机上 实时 显示。 在 2 个 下位机传感器 节点上,单片机 89C52都接看门狗 复位电路 、 键盘和数码管等附属 电路。 看门狗 X5045 监视单片机的正常运行, 数码管用于显示相应的值
所以 C 节点发现有冲突,而且自己标识符的优先级低,于是 C 节点退出仲裁。 同样的道理, 8 节点在发 送 I D. 5 后退出仲裁。 CAN 总线优先级的仲裁与 Ether 有很大的不同。 Ether 采用的是 CSMA/CD 协议,即检测到碰撞后,各节点均先退出发送,经过各自随即产生的时间延迟后再重新发送。 而 CAN 总线这种按优先级判别的方法,可以使优先级高的消息先发送。 因此
AD7812 内部有 8 路模拟开关可以采集 8 路模拟信号,这里只需要将经放大的传感器输出信号输入到其中任意一路即可,为了简便起见,就取其中的第 1路模拟开关作为输入信号的通道。 由于 AD7812 内部具有转换时钟源,因而不需要外部提供时钟源。 单片机只需要通过它的串行时钟输入、数据输出、数据输入、转换输入 4根引脚就可以对其进行控制。 该部分电路设计如图 所示。 本科生课程设计(论文) 8