can总线与以太网接口技术研究毕业论文(编辑修改稿)内容摘要:

ST 引脚通过电容接 VSS,通过电阻接 VDD,可实现上电复位( C=1uF; R=50k ) VDD2 18 输入比较器的 5V 电源 RX0, RX1 19, 20 连接到物理总线 VSS2 21 输入比较器地 VDD1 22 逻辑电路 5V 电源 注:如果使用无源晶振,则 XTAL1 和 XTAL2 引脚必须通过 15pF 的电容连到 VSS1。 SJA1000 内部功能模块说明 : 解释来自 CPU 的命令,控制 CAN 寄存器的寻址,向主微控制器 提供中断报文和状态报文。 :发送缓存器是 CPU 和位流处理器之间的接口,能够存储发送到CAN 总线上的完整报文。 发送缓存器长 13 字节,由 CPU 写入,位流处理器读出。 :接收缓存器是接收过滤器我 CPU 之间的接口,用于存储从 CAN总线上接收和采用的报文。 接收缓存器作为接收 FIFO 的一个窗口,可被 CPU 访问。 在此 FIFO 的支持下, CPU 可以在处理报文的同时接受其他 报文。 :接收过滤器将接收到的标示符和接收过滤寄存器的内容进行比较,以决定是否接收该报文。 如果比较结果为真,则报文完整的存入接收缓存器中。 :位流处理器是一个序列发生器,控制发送缓存器、接收缓存器和CAN 总线之间的数据流。 它还完成 CAN 总线上的错误检测、仲裁、填充和错误处理的功能。 :位定时逻辑监视串行的 CAN 总线和处理与总线有关的位定时。 它同步于帧起始的从隐性到显性电平的跳变(硬同步),并且在接收报文的过程中进行重同步(软同步)。 位定时逻辑还提供可编程的时间段用于 补偿传播延时和相位变化,它还定义采样点和一位时间内的采用次数。 :错误管理逻辑负责传送层模块的错误界定,接收来自位流处理器的出错报告,并通知位流处理器和接口管理逻辑当前的出错状态。 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 7 SJA1000 引脚图和工作模式 引脚见图。 实物图见图。 图 SJA1000 引脚图 图 SJA1000 实物图 的工作模式 SJA1000 有两种寄存器访问模式 ,即:复位模式和工作模式。 不同模式下寄存器的访问时不同的。 工作模式通过又分为 BasicCAN 模式和 PeliCAN 模式,通过时钟分频寄存器中的 CAN 模式位来选择。 PeliCAN 模式支持 协议规定的所有功能, SJA1000 复位后,默认的模式是 BasicCAN 模式。 以后我们在进行 SJA1000的软件编程时使用的是 BasicCAN 模式。 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 8 SJA1000 的寄存器 寄存器表 SJA1000 对于微控制器而言,表现为内存映射的 I/O 设备。 微控制器可以像操作外部 RAM 一样操作 SJA1000 片内的寄存器。 SJA1000 的地址域由控制段和报文缓存器组成(见表 )。 控制段在初试化载入期间被设置,用于配置通信参数,同时微控制器通过这个段来控制 CAN 总线上的通信。 微控制器和 SJA1000 之间的状态、控制和命令信号的交换都在控制段中完成。 在初始化后,接收码寄存器、屏蔽码寄存器、总线定时寄存器 0、总线定时寄存器 1以及输出控制寄存器的内容不应再发生改变,因此这些寄存器只有在复位请求位( )被置 1 时,才可访问。 一个报文在发送之前必须写入发送缓存器;反之,在成功接收一个报文后,微控制器从接收缓存 器读取报文并释放此部分缓存,以备后用。 当硬件复位成功或微控制器脱离总线状态时, SJA1000 会自动进入复位模式。 通过将控制寄存器的复位请求位置 0, SJA1000 讲进入工作模式。 BasicCAN 模式下的 SJA1000 内部寄存器地址分配见表。 表 BasicCAN 模式下的 SJA1000 内部寄存器地址分配 偏移地址 名 称 工作模式 复位模式 读 写 读 写 0 控 制 段 控制 控制 控制 控制 1 命令 命令 2 状态 状态 3 中断 中断 4 接收码 接收码 5 接收屏蔽码 接收屏蔽码 6 总线定时 0 总线定时 0 7 总线定时 1 总线定时 1 8 输出控制 输出控制 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 9 9 测试 测试 测试 测试 10 发 送 缓 冲 器 ID(103) ID(103) 11 ID(20)RTR 和数据长度 ID(20)RTR 和数据长度 12 字节 1 字节 1 13 字节 2 字节 2 14 字节 3 字节 3 15 字节 4 字节 4 16 字节 5 字节 5 17 字节 6 字节 6 18 字节 7 字节 7 19 字节 8 字节 8 20 接 收 缓 冲 器 ID(103) ID(103) ID(103) ID(103) 21 ID(20)RTR 和数据长度 ID(20)RTR 和数据长度 ID(20)RTR 和数据长度 ID(20)RTR 和数据长度 22 字节 1 字节 1 字节 1 字节 1 23 字节 2 字节 2 字节 2 字节 2 24 字节 3 字节 3 字节 3 字节 3 25 字节 4 字节 4 字节 4 字节 4 26 字节 5 字节 5 字节 5 字节 5 27 字节 6 字节 6 字节 6 字节 6 28 字节 7 字节 7 字节 7 字节 7 29 字节 8 字节 8 字节 8 字节 8 30 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 10 31 时钟分频寄存器 时钟分频寄存器 时钟分频寄存器 时钟分频寄存器 BasicCAN 模式下的寄存器说明 CR,地址: 0,其各位功能如表 所示。 表 控制寄存器各位说明 位 符号 名称 值 功能 保留 保留 保留 OIE 溢出中断使能 1 如果 置位, SJA1000 会产生 CPU 可识别的硬件中断 0 SJA1000 不会产生溢出中断 EIE 出错中断使能 1 如果出错状态 或总线状态 改变,SJA1000 产生硬件中断 0 SJA1000 不会产生错误中断 TIE 发送中断使能 1 当报文被成功发送或发送缓冲器又可访问时, SJA1000 会产生中断 0 SJA1000 不会产生发送中断 RIE 接收中断使能 1 报文被 无措接收时, SJA1000 会产生 CPU可识别的中断 0 SJA1000 不会产 生接收中断 RR 复位请求 1 SJA1000 终止当前正在发送 /接收的报文,进入复位模式 0 SJA1000 回到工作模式 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 11 CMR,地址: 1,其各位功能如表 所示。 表 命令寄存器各位说明 位 符号 名称 值 功能 保留 保留 保留 GTS 睡眠 1 如果没有未处理的 CAN 中断和总线活动,SJA1000 进入睡眠模式 0 SJA1000 从睡眠状态唤醒,正常工作 CDO 清除数据溢出 1 清除数据溢出状态位 () 0 无动作 RRB 释放接收缓冲器 1 释放 RXFIFO 报文存储空间中的接收缓冲器空间 0 无动作 AT 终止发送 1 如果一个发送请求尚未被处理,则被取消 0 无动作 TR 发送请求 1 报文被发送 0 无动作 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 12 SR, 地址: 2,其各位功能如表 所示。 表 状态寄存器各位说明 位 符号 名称 值 功能 BS 总线状态 1 脱离总线 0 在线 ES 出错状态 1 出错 0 无错 TS 发送状态 1 正在发送报文 0 空闲 RS 接收状态 1 正在接收报文 0 空闲 TCS 发送完成状态 1 完成。 最近一次发送请求被成功处理 0 未完成。 当前发送请求未处理完成 TBS 发送缓冲器状态 1 释放。 CPU 可以向发送缓冲器写入报文 0 CPU 不能访问发送缓冲器 DOS 数据溢出状态 1 溢出。 报文因 RXFIFO 中没有足够的空间而丢失 0 正常 RBS 接收缓冲器状态 1 在 RXFIFO 中至少有一条完整报文 0 无报文 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 13 IR,地址: 3,其各位功能如表 所示。 当中断寄存器的一位或多位被置位时, INT 引脚就被激活了。 寄存器被微控制器读过之后,所以位自动复位,即 INT 引脚上的电平抬高,中断寄存器是只读存储器。 表 中断寄存器各位说明 位 符号 名称 值 功能 保留 保留 保留 WUI 唤醒中断 1 退出睡眠模式时此位被置 1 0 CPU 的任何读访问将清零此位 DOI 数据溢出中断 1 当数据溢出中断使能被置 1 时,且数据溢出状态位 ()置 1,此位置 1 0 CPU 的任何读访问将清零此位 EI 出错中断 1 出错中断使能位置 1,且出错状态位或总线状态位发送改变,此位置 1 0 CPU 的任何读访问将清零此位 TI 发送中断 1 发送中断使能位置 1,且发送状态缓冲 器释放,此位被置 1 0 CPU 的任何读访问将清零此位 RI 接收中断 1 接收中断使能位置 1,且接收缓冲器状态为1,此位被置 1 0 CPU 的任何读访问将清零此位 南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 14 ,地址: 1019,发送缓冲器的全部内容见表。 该缓冲器是用来存储微控制器要 SJA1000 发送的报文的。 它被分为描述符区和数据区。 发送缓冲器的读 /写只能由微控制器在 SJA1000 处于工作模式的情况下完成。 表 发送缓冲器 偏移地址 区 名称 位 7 6 5 4 3 2 1 0 10 描述符 标示符字节 1 11 标示符字节 2 ID,1 RTR 12 数 据 TX 数据 字节 1 13 字节 2 14 字节 3 15 字节 4 16 字节 5 17 字节 6 18 字节 7 19 字节 8 (1)标识符 (ID) 标识符只有 11 位,在仲裁过程中是最先被发送到总线上的。 标识符就像报文的名字。 它在验收滤波器中 被用到,也在仲裁过程中决定总线访问的优先级。 标识符的值越低,其优先级越高。 (2)远程发送请求 (RTR) 如果 RTR 置 1,总线将以远程帧发送数据,这意味着发送的帧中没有数据字节。 尽管如此,也需要同识别码相同的数据帧来识别正确的数据长度。 如果 RTR 位没有被置位,数据将以数据长度码规定的长度传送。 (3)数据长度码 (DLC) 在数据区的字节数有数据长度码决定。 在远程帧传送时,由于 RTR 位为 1 数据南京工程学院 自动化学院本科 毕业设计 ( 论文 ) 15 长度码不被考虑。 尽管如此,数据长度码应正确填写,由于区分在两个 SJA1000 同时发送具有相同标识符的远程帧时,不同的数 据请求而发生总线错误。 数据字节长度是 0~8 个字节,是用如下方法计算的: 数据字节数 = 8 .3 4 .2 2 .1 .0DL C DL C DL C DL C      为了保持兼容性,数据长度码不超过 8。 如果超过 8,则按照 8 字节发送。 (4)数据区 传送的数据字节由数据长度码决定,最先发送的是在偏移地址 12 的字节 1 的最高位。 接收缓冲器的全部列表和发送缓冲器类似。 接收缓冲器是 RXFIFO 中可访问的部分,位于 CAN 地址的 20~29 之间。 如果 RXFIFO 中没有足够的空间来存储新报文,SJA1000 会产生数据溢出。 数据溢出发 生时,已部分写入 RXFIFO 的当前报文将被删除。 这种情况将通过状态位或数据溢出中断反映到微控制器。 在接收过滤器的帮助下, SJA1000 能够允许 RXFIFO 只能接收标识符与接收过滤器中的预设值相一致的报文。 接收过滤器通过接收码寄存器 (ACR)和接收屏蔽码寄存器 (AMR)来定义。 (1)接收码寄存器 (ACR) 接收码寄存器 ACR,地址: 4,其各位功能如表 所示。 表 接收码寄存器的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。