第5章CAN器件及开发实例.ppt_第1页
第5章CAN器件及开发实例.ppt_第2页
第5章CAN器件及开发实例.ppt_第3页
第5章CAN器件及开发实例.ppt_第4页
第5章CAN器件及开发实例.ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1 第五章CAN器件及开发实例 与其他现场总线相比 CAN总线得到多家芯片厂商的支持 2 CAN器件既有独立CAN控制器 也有包含CAN内核的微控制器和DSP等 还有CAN收发器 CAN远程I O等 器件的工作电压范围也已从传统的5V拓展到3V 3 3V说明了CAN总线的诸多突出优点已得到人们的认可 另一方面 丰富价廉的CAN器件又进一步促进了CAN总线技术的迅速推广 本章将重点介绍两种常用的CAN器件 CAN控制器SJA1000和收发器82C250 并结合一个开发实例 帮助读者理解在前面CAN技术规范中提到的标识符 屏蔽码 位定时 数据域及故障界定等内容是如何实现的 3 5 1独立CAN控制器SJA1000 SJA1000是适用于汽车和一般工业环境的独立CAN控制器 它是PHILIPS公司生产 SJA1000有两种工作模式 BasicCAN模式 PeliCAN工作模式 SJA1000的BasicCAN模式是PHILIPS公司生产的PCA82C200的替代品品 引脚兼容 电气兼容 PeliCAN工作模式支持CAN2 0B协议 在PeliCAN模式下 SJA1000具有与BasicCAN模式下完全不同的寄存器结构 SJA1000的PeliCAN模式一些新增特性 详见教材并在PeliCAN模式下解释 4 SJA1000的PeliCAN模式具有以下新增特性 接收和发送标准和扩展格式报文 达64字节的接收FIFO 对于标准和扩展帧都有单 双接收过滤器 接收过滤器包括屏蔽码和接收码寄存器 可读 写访问的错误计数器 可编程的错误报警限 最近一次错误代码寄存器 对于每一种CAN总线错误都能产生不同的出错中断 仲裁丢失中断 并带有详细丢失仲裁位置的信息 允许单次发送 当出错或丢失仲裁时不重发 只听模式 监视CAN总线 无应答 无出错标志 支持热插拔 对总线无干扰的传输速率检测 自身发送报文接收 自接收请求 硬件禁止CLKOUT输出 5 CAN控制模块SJA1000功能框图 解释来自CPU的命令 控制SJA1000内部寻址 向CPU提供中断信息和状态信息 发送缓冲器是CPU和位流处理之间的接口 能够存储发送到CAN总线上的完整报文 接收缓冲器是接收过滤器和CPU之间的接口 用于储存从CAN总线上接收并采用的报文 6 SJA1000CAN控制器由下述几部分组成 1 接口管理逻辑 IML 接口管理逻辑完成对外部主控制器的连接 外部主控制器可以是微型控制器或其他器件 经SJA1000复用的地址 数据总线 访问寄存器和控制读 写选通信号都在接口管理逻辑处理 并向该控制器提供中断信息和状态信息 解释来自CPU的命令 控制SJA1000内部寻址 向CPU提供中断信息和状态信息 2 发送缓冲器 TXB 发送缓冲器是CPU和位流处理器之间的接口 能够存储发送到CAN总线上的完整报文 缓冲器长13字节 由CPU写入 位流处理器BSP读出 7 3 接收缓冲器 RXB RXFIFO 接收缓冲器是接收过滤器和CPU之间的接口 用于储存从CAN总线上接收并采用的报文 接收缓冲器 RXB 长13字节 作为接收FIFO RXFIFO 长64字节 的一个窗口 可被CPU访问 在此FIFO的支持下 CPU可以在处理一个报文的同时接收其他报文 8 4 接收过滤器 ACF 所有收到的信息由接收过滤器接收并存储在接收FIFO 接收过滤器把接收数据和接收识别码的内容相比较 以决定是否接收信息 如果比较的结果为真 则报文完整地存入RXFIFO中 报文存入FIFO也就是报文被CAN控制器采用 通过可编程的过滤器 SJA1000能确定哪些信息实际上被主控制器收到 5 位流处理器 位流处理器是一个序列发生器 控制发送缓冲器 RXFIFO和CAN总线之间的数据流 它还完成CAN总线上的错误检测 仲裁 填充和错误处理等功能 9 6 位定时逻辑 位定时逻辑监视CAN总线并处理总线位定时 它同步于帧起始的从隐性到显性电平的跳变 硬同步 位定时逻辑还提供可编程的时间段用于补偿传播延时和相位变化 例如 由于振荡器漂移引起的相位变化 它还定义采样时刻和一位时间内的采样次数 7 错误管理逻辑 错误管理逻辑负责错误界定 它接收来自位流处理器的出错报告 并将分析出的出错状态传达给位流处理器和接口管理逻辑 10 CAN控制模块SJA1000管脚排列图 控制线 7地址 数据 8时钟 2电源 6复位 1发送接收 4 11 CAN控制模块SJA1000管脚功能描述 12 13 振荡器和时钟SJA1000能使用片内振荡器或带有片外时钟源工作 另外CLKOUT管脚可被使能 为主控制器输出时钟频率 如果不需要CLKOUT信号 可以通过置位被时钟寄存器 clockOff 1 关掉 下图显示了四个不同的计时原理 14 5 2SJA1000的BasicCAN模式 5 2 1BasicCAN模式下的地址分配CAN控制器SJA1000对于CPU而言 是可编程外围芯片 CPU可以像操作扩展RAM一样操作SJA1000片内的寄存器 SJA1000的地址区包括控制段 发送 接收信息缓冲区三大部分 控制段 在初始化期间 控制段可被编程来配置通讯参数 同时CPU通过这个段来控制CAN总线上的通信 CPU和SJA1000之间的状态 控制和命令的交换都在控制段中完成 在以下两种不同的模式中访问寄存器 其内容是不相同的 复位模式 当硬件复位或控制器掉线时会自动进入复位模式 在复位模式下进行初始化 某些寄存器只有在控制寄存器中的复位请求位 CR 0 被置1时 才可访问 象接收码寄存器 屏蔽码寄存器 总线定时寄存器0 总线定时寄存器1以及输出控制寄存器等 工作模式 工作模式是通过置零控制寄存器的复位请求位激活的 15 发送缓冲区 一个报文在发送之前必须写入发送缓冲器 再向总线上串行送出 接收缓冲区 在成功接收一个报文后 CPU从接收缓冲器读取报文并释放这部分缓存 使其可继续用于存储后续收到的报文 控制段 SJA1000在BasicCAN模式下的地址中共有10个字节 偏移地址分别为0 9 发送缓冲器 位于CAN地址的10 19 占10个字节 接收缓冲器 位于CAN地址的20 29 占10个字节 16 17 18 19 5 2 2复位值SJA1000有两种复位方式 硬件复位与软件复位 硬件复位是指在芯片的复位脚上提供一定宽度低电平 正常工作状态下为高电平 硬件复位需要足够的时间才能使控制寄存器中的复位请求位置1 软件复位是指通过软件设置CR 0为1或由脱离总线引起的复位 SJA1000检测到复位请求位为1后 将中止当前报文的接收 发送而进入复位模式 当复位请求位从1转变到0 SJA1000返回到工作模式 20 置复位请求位为高时 对CR CMR SR和IR各位的影响如下表 21 22 2 3控制寄存器 CR 地址0 控制寄存器的内容是用于改变CAN控制器的行为的 这些位可以被微控制器设置或复位 微控制器可以对控制寄存器进行读 写操作 23 5 2 4命令寄存器 CMR 地址1 命令寄存器对微控制器来说是只写存储器 如果去读这个地址 返回值是 11111111 24 5 2 5状态寄存器 SR地址2 状态寄存器的内容反映了SJA1000的状态 状态寄存器对微控制器来说是只读存储器 25 5 2 6中断寄存器 SR地址3 中断寄存器允许中断源的识别 当寄存器的一位或多位被置位时 INT 低电平有效 引脚就被激活了 寄存器被微控制器读过之后 所有会导致 INT引脚上的电平漂移的位被复位 中断寄存器对微控制器来说是只读存储器 26 发送缓冲器位于CAN地址的10 19 用来存储微控制器要SJA1000发送的信息 发送缓冲器的读 写只能由微控制器在工作模式下完成 在复位模式下读出的值总是 FFH 1 识别码 ID 识别码有11位 ID0 ID10 ID10是最高位 在仲裁过程中是最先被发送到总线上的 识别码就象信息的名字 它在接收器的接受过滤器中被用到 也在仲裁过程中决定总线访问的优先级 识别码的二进制值越低 其优先级越高 这是因为在仲裁时有许多显性位开头的字节 2 远程发送请求 RTR 如果此位置1 总线将以远程结构发送数据 这意味着此段中没有数据字节 如果RTR位没有被置位 数据将以数据长度码规定的长度来传送 5 2 7发送缓冲器 27 3 数据长度码 DLC 信息数据区的字节数根据数据长度码编制 在远程结构传送中 因为RTR被置位 数据长度码是不被考虑的 这就迫使发送 接收数据字节数为0 数据长度码必须正确设置 数据字节数是0 8 用如下方法计算 数据字节数 8 DLC 3 4 DLC 2 2 DLC 1 DLC 0为了保持兼容性 数据长度码不超过8 如果选择的值超过8 则按照DLC规定认为是8 4 数据区传送的数据字节数由数据长度码决定 发送的第一位是偏移地址12单元的数据字节1的最高位 28 5 2 8接收缓冲器 SJA1000从总线上接收到的信息存放在RXFIFO共有64字节的信息空间 接受缓冲器RXB是指在64字节RXFIFO中可以被CPU直接读写的寄存器 共10个字节 偏移地址是20 29 如何理解RXB与RXFIFO之间的关系 29 RXFIFO 合格的新报文 如果RXFIFO中没有足够的空间来存储新的信息 CAN控制器会产生数据溢出 数据溢出发生时 已部分写入RXFIFO的当前信息将被删除 通过状态位SR 1置 1 如果中断允许 则数据溢出中断反应到CPU 64字节的RXFIFO中最多可以存储的报文数 取决于各条报文的长度 10字节的RXB中可以存储一个完整的报文 可以 ID RTR DLC 数据区 30 5 2 9接收过滤器 注意 ACR AMR只有在控制寄存器CR的复位请求位CR 0置 1 时 也就是说SJA1000在复位状态时 才可以 读 写 接收过滤器的作用 使得CAN控制器只接收识别码和接收过滤器中预设值相一致的信息进入到RXFIFO 报文存入RXFIFO的报文被CAN控制器采用 接收过滤器的组成 由接受代码寄存器 ACR 和接受屏蔽寄存器 AMR 组成 换句话讲 也就是对接收过滤器的设置通过ACR AMR实现 接收代码寄存器 ACR 地址4 接收屏蔽码寄存器 AMR 地址5 31 接收码寄存器 ACR 的位分配 接收屏蔽码寄存器 AMR 的位分配 接收码位 AC 7 AC 0 和报文标识符高8位 ID 10 ID 3 中被接收屏蔽码位 AM 7 AM 0 标记为 相关的 位必须相等 报文才会被接收 而对于 不相关的 位 则不受这一限制 接收屏蔽码寄存器确定接收码寄存器中对应位在接收过滤中起不起作用 当AM X 0时起作用即 相关的 当AM X 1不起作用即 不相关的 32 一条信息通过了接受过滤器的测试 而且接收缓冲器有足够的空间 那么标识符和数据将被分别顺次写入RXFIFO 同时 接收码位 AC 7 AC 0 和报文标识符高8位 ID 10 ID 3 中被接收屏蔽码位 AM 7 AM 0 标记为 相关的 位必须相等 报文才会被接收 而对于 不相关的 位 则不受这一限制 例 验收代码寄存器 ACR 00110110验收屏蔽寄存器 AMR 01010001 允许接收的数据帧ID 0 X X X 1 0 1 1 XXX 已部分写入RXFIFO的当前信息将被删除 状态寄存器SR的状态位SR 1置 1 如果溢出中断允许 CR 4 1 则数据溢出中断 IR 3 1 反应到CPU 一条信息通过了接受过滤器的测试 如果接收缓冲区的空间已满 数据溢出位 状态寄存器SR 1 被置为 1 超载 同时 接收缓冲器状态SR 0位置1 非空 如果接收中断允许位CR 1为1 允许 则接收中断IR 0位置1 产生中断 33 5 2 10其它寄存器 总线定时寄存器0 BTR0 地址6 总线定时寄存器1 BTR1 地址7 3 输出控制寄存器 OCR 地址8 4 时钟分频寄存器 CDR 地址31 以上寄存器是在BasicCAN与PeliCAN两种模式下共有的寄存器 偏移地址相同各个位的功能定义不完全相同 34 总线定时寄存器0 BTR0 地址6 总线定时寄存器0定义了比特率预设值 BRP 和同步跳转宽度 SJW 的值 复位模式下 总线定时寄存器0是可以被访问 读 写 的工作模式下 如果选择的是PeliCAN模式 那么此寄存器是只读的 如果选择的是BasicCAN模式 那么读回的值总是FFH 总线定时寄存器0各位的功能如下 35 1 比特率预引比例因子BRP CAN系统时钟tSCL的周期是可编程的 而且决定了本系统的位定时 CAN系统时钟由如下公式计算 tSCL 2 tCLK 32 BRP 5 16 BRP 4 8 BRP 3 4 BRP 2 2 BRP 1 BRP 0 1 式中tCLK XTAL的频率周期 1 fXTAL 36 2 同步跳转宽度SJW tSJW tSCL 2 SJW 1 SJW 0 1 为了补偿不同总线控制器的时钟振荡器之间的相位偏移 任何总线控制器必须在当前传送的相关信号沿进行重同步 同步跳转宽度SJW定义了每一个位周期可以被重同步过程缩短或延长的时间长度 以时钟周期的数目来计算 计算公式如下 37 2 总线定时寄存器1 BTR1 地址7 复位模式下 总线定时寄存器1是可以被访问 读 写 的工作模式下 如果选择的是PeliCAN模式 那么此寄存器是只读的 如果选择的是BasicCAN模式 那么读回的值总是FFH 总线定时寄存器1定义了每个位周期的长度 采样点的位置和在每个采样点的采样数目 总线定时寄存器1各位的功能如下 时间段TSEG1 时间段TSEG2 采样位 38 1 采样SAM TSEG1和TSEG2决定了每一个位周期包含的时钟周期的数目和采样点的位置 其中 tSYNCSEG 1 tSCLtTSEG1 tSCL 8 TSEG1 3 4 TSEG1 2 2 TSEG1 1 TSEG1 0 1 tTSEG2 tSCL 4 TSEG2 2 2 TSEG2 1 TSEG2 0 1 采样位 SAM 1时 总线采样3次 建议在低 中速总线 SAEA和B级 上使用 这对过滤总线上的毛刺是有益的 SAM 0时 总线采样1次 建议用在高速总线上 SAEC级 2 时间段1 TSEG1 和时间段2 TSEG2 返回 39 一个位周期的总体结构 CAN系统时钟与震荡周期关系 依据公式 40 波特率计算方法举例如下 假如外部晶振为16MHz时 如设定SJA1000总线定时寄存器0的值为 D3H 11010011 设定SJA1000总线定时寄存器1的值为 0AFH 10101111 求系统时钟为多少 系统的波特率为多少 系统时钟tSCL 2 tCLK 32 BRP 5 16 BRP 4 8 BRP 3 4 BRP 2 2 BRP 1 BRP 0 1 tscl 2 16 2 1 1 1 16 1000000 2 5us 每个位周期时间 2 5 8 4 2 1 1 2 1 1 50us波特率 1 50us 20Kbps TSEG1 TSEG2 TSYN 41 3 输出控制寄存器 OCR 地址8 输出控制寄存器实现了软件对输出驱动器的不同配置 复位模式下 输出控制寄存器是可以被访问 读 写 的 工作模式下 如果选择的是PeliCAN模式 那么此寄存器是只读的 如果选择的是BasicCAN模式 那么读回的值总是FFH 42 输出控制寄存器在复位模式下可读 写访问 该寄存器各位功能如下 OCTP1控制输出晶体管P1 OCTN1控制输出晶体管N1 OCPOL1控制输出极性1 OCTP0控制输出晶体管P0 OCTN0控制输出晶体管N0 OCPOL0控制输出极性0 控制输出模式四种状态 43 当SJA1000在睡眠模式中时 TX0和TX1引脚根据输出控制寄存器的内容输出隐性的电平 在复位状态 复位请求 1 或外部复位引脚 RST被拉低时 输出TX0和TX1悬空 44 发送的输出阶段可以有不同的模式 表9 11列出了由输出方式 OCMODE1 OCMODE0 确定的四种方式设置 45 正常输出模式正常模式中位序列 TXD 通过TX0和TX1送出 输出驱动引脚TX0和TX1的电平取决于被OCTPx OCTNx 悬空 上拉 下拉 推挽 编程的驱动器的特性和被OCPOLx编程的输出端极性 下拉 上拉 46 时钟输出模式TX0引脚功能和正常模式中相同 TX1上的数据流为发送时钟 TXCLK 发送时钟的上升沿标志着一位的开始 时钟脉冲宽度是1 tscl 双相输出模式为克服直流分量 隐性位期间输出悬空 显性位期间轮流使用TX0或TX1电平发送 例如 第一位在TX0上发送 第二位在TX1上发送 第三位在TX0上发送等等依此类推 测试输出模式在测试输出模式中 RX上的电平在下一个系统时钟的上升沿映射到TXX上 47 4 时钟分频寄存器 CDR 地址31 时钟分频寄存器控制CLKOUT的频率 屏蔽CLKOUT引脚 控制TX1用做专用的接收中断输出 控制BasicCAN模式与PeliCAN模式的选择 硬件复位后 该寄存器的默认状态在Motorola模式 00000101 12分频 而在Intel模式 00000000 2分频 该寄存器各位的功能如下 注 此位不能被写 读值总为0 48 1 CD 2 CD 0复位模式和工作模式中一样 CD 2 CD 0是可以无限制访问的 这些位是用来定义外部CLKOUT引脚上的频率的 可选的频率一览表见表 49 2 时钟关闭 BIT3 只有在复位模式中才可以写访问 置位此位可关闭SJA1000的外部CLKOUT引脚输出 关闭的CLKOUT引脚在睡眠模式中是低 而其它情况下是高 3 RXINTEN BIT5 复位模式中只能写访问 此位允许TX1输出用来做专用接收中断输出 当一条已接收的信息成功的通过接受过滤器 一位时间长度的接收中断脉冲就会在TX1引脚输出 发送输出阶段 TX1应该工作在正常输出模式 极性和输出驱动可以通过输出控制寄存器编程 50 4 CBP BIT6 只可在复位模式中写入 置位CBP 忽略CAN输入比较器 此时只有RX0被激活 没有被使用的RX1输入应被连接到一个确定的电平 例如VSS 5 CAN模式 BIT7 只有在复位模式中是可以写的 如果CDR 7是0 CAN控制器工作于BasicCAN模式 如果CDR 7是1 CAN控制器工作于PeliCAN模式 51 5 3SJA1000的PeliCAN模式 CAN控制器SJA1000的内部寄存器对于CPU而言 表现为片上内存映射的外设寄存器 共128字节 从偏移地址32起的所有内部RAM 80字节 被直接映射到CPU接口 在工作和复位模式下 SJA1000具有不同的内部地址定义 因此必须予以区分 教材表518列出了SJA1000在PeliCAN模式下内部寄存器地址的分配情况 需要着重说明的是 从偏移地址11到15是PeliCAN功能的扩展从偏移地址16到28在复位模式与工作模式下功能完全不同 使用时要特别注意 52 5 3 3模式寄存器MOD5 3 4命令寄存器CMR5 3 5状态寄存器SR5 3 6中断寄存器IR5 3 7中断允许寄存器IER5 3 10错误报警限寄存器EMLR 53 5 3 8仲裁丢失捕捉寄存器ALC偏移地址11 这个寄存器包括了丢失仲裁的位置信息 仲裁丢失捕捉寄存器对CPU来说是只读存储器 保留位的读回值为0 寄存器各位含义如下 ALC 5 显示了仲裁丢失位置 其值表示丢失仲裁位在一帧报文中所处位置的二进制编码 保留位 54 仲裁丢失举例图 仲裁丢失时 如果中断允许会产生相应的仲裁丢失中断 读中断寄存器时 中断寄存器中相应的中断标志位被清除 55 同时 位流处理器的当前位位置被捕捉送入仲裁丢失捕捉寄存器 寄存器中的内容将不会改变 直到用户通过软件读出这个值 随后 捕捉机制再次被激活 仲裁丢失位解释 56 5 3 9错误代码捕捉寄存器ECC 偏移地址12 这个寄存器包含了总线错误类型和位置的信息错误代码捕捉寄存器对CPU来说是只读存储器 读中断寄存器时 中断寄存器中相应的中断标志位被清除 但直到捕捉寄存器的值被读出之后 才有可能产生新的总线错误中断 ECC 6 ECC 5 ECC 4 ECC 3 ECC 2 ECC 1 ECC 0 总线错误类型 错误位置的信息见P153表5 29 00位错误 格式错误 填充错误 其他错误 错误方向 接收错误0发送错误 57 发送缓冲器的布局 无论是标准帧格式SFF或扩展帧格式EFF配置 发送缓冲器允许定义长达8个数据字节的发送报文 5 3 13发送缓冲器 58 1 发送缓冲器组成发送缓冲器被分为描述符区和数据区 描述符区的第一个字节是帧信息字节 帧信息 它说明了帧格式 SFF或EFF 远程或数据帧和数据长度 SFF有2字节的标识符码 EFF有4字节的标识符码 数据区最多包含8个数据字节 发送缓冲器长13字节 对应偏移地址16 28 值得注意的是 使用偏移地址96 108可以直接访问发送缓冲器的RAM 这个RAM区是为发送缓冲器保留的 随后的3字节 偏移地址109 110和111 是通用寄存器 2 发送缓冲器的描述符区 X TX帧信息SFF 偏移地址16 0标准帧 数据帧 59 注意 1 无论是标准帧格式还是扩展帧格式 标识符连续放置 发送的数据字节数由数据长度码决定 在SFF中最先发送的是在偏移地址19的数据字节的最高位 在EFF中最先发送的是在偏移地址21的数据字节的最高位 2 在BASICCAN中标识符的标记为ID10 ID0 在PELICAN中标识符的标记在标准帧格式为ID28 ID18 在扩展帧格式为ID28 ID18 60 5 3 14接收缓冲器 接收缓冲器的布局与发送缓冲器很相似 接收缓冲器是RXFIFO的可访问部分 位于偏移地址的16 28之间 13字节 与发送缓冲器地址相同 依据是读还是写命令来区分是对区分 读接收缓冲器 写发送缓冲器 61 5 3 15接收过滤器 接收过滤器的作用是使SJA1000能够只让标识符与接收过滤器中预设值相一致的报文传给RXFIFO 报文存入FIFO被CAN控制器采用 接收过滤器由接收码寄存器ACRn和接收屏蔽码寄存器AMRn定义 要接收的报文的位组合格式在接收码寄存器中定义 相应的接收屏蔽码寄存器可定义某些位为 不相关 即可为任意值 的 有两种不同的过滤器模式可在模式寄存器中 MOD 3 AFM 选择 单过滤器模式 AFM位是1 双过滤器模式 AFM位是0 62 1 单过滤器配置 这种过滤器配置可以定义一个长度为4字节的过滤器 过滤器字节和报文字节之间位的对应关系取决于当前接收帧格式 1 标准帧当接收到的是标准帧报文时 不仅可以对报文ID进行过滤 还可以对接收到有效数据的前2个字节进行过滤 虽然过滤器可以对这2个数据字节进行过滤 但如果此次发送的报文没有数据字节或不足2个数据字节报文仍可能成功通过接收过滤 63 或 与 比较 单过滤器接收标准帧报文的过滤 P151图5 12 64 当收到的是扩展帧报文时 过滤器对29位的标识符和RTR位进行过滤 为了成功接收一条报文 要求所有逐位的比较结果都满足接收的条件 应该注意的是 AMR3和ACR3的最低两位是未使用的 为了和将来的产品兼容 最低两位AMR3 1和AMR3 0应该设置为1 不相关 2 扩展帧 65 单过滤器接收扩展帧报文 66 2 双过滤器配置 当命令寄存器 MOD 中的AFM MOD 3 位为0时 SJA1000有两个过滤器 两个过滤器分别对报文进行过滤 只要报文可以通过其中的一个过滤器 SJA1000就接收该报文 过滤器字节和报文字节之间位的对应关系取决于当前接收帧格式 标准帧当接收到的报文为标准帧时 两个过滤器的作用是不同的 过滤器1不仅可以对标识符 包括RTR 进行过滤 还可以对接收到的第一个字节进行过滤 而过滤器2仅可对标识符 包括RTR 进行过滤 报文的接收与否 由两个过滤器过滤的结果相 或 决定 67 双过滤器配置接收标准帧报文 P163图5 14 68 2 扩展帧当接收到的报文为扩展帧时 两个过滤器的作用是一样的 都对标识符域的前16位进行过滤 为了成功接收一条报文 要求逐位比较后 至少其中一个过滤器表示 采用 69 双过滤器接收扩展帧报文 P164图5 15 70 5 4CAN驱动器82C250 82C251 PCA82C250 82C251驱动收发器是CAN控制器 如SJA1000 和物理传输线路之间的接口 它们可以用高达1Mb s的位速率实现在两条差动电压总线电缆上的传输数据 82C250的主要特性如下 与ISO DIS11898标准完全兼容 高速 最高可达1Mb s 具有抗汽车环境下的瞬间干扰 保护总线能力 降低射频干扰 RFI RadioFrequencyInterference 的斜率控制 过热保护 对电源或地的短路保护 支持低电流待机方式 某一个节点掉电不会影响总线 可连接110个节点 71 5 4 182C250的硬件结构及引脚定义 基本性能参数见P167表5 49 72 5 4 282C250的功能描述 PCA82C250器件向总线提供差动发送能力和向CAN控制器提供差动接收能力 它与ISO11898标准完全兼容 引脚8 Rs 允许选择3种不同的工作方式 高速 斜率控制和待机 如P167表5 50所示CAN收发器真值表如P168表551 73 5 4 382C250的应用实例 分CAN收发器不采用和采用电流隔离时的两种情况 CAN收发器不采用电流隔离时的应用实例图5 18 74 CAN收发器采用电流隔离时的应用实例图5 19 75 5 5基于CAN总线的远程工业电表抄表系统开发实例 5 5 1远程抄表系统概述基于CAN总线的远程抄表系统分为两个层次 一个是中央控制室的中央监控单元 一个是现场的远程采集单元 远程采集单元负责对现场的电能表进行实时脉冲采集 同时完成数据的统计 存储 中央监控单元可以定期或不定期地从远程采集单元获取所需数据 并完成数据统计 报表打印及数据库的管理 中央监控单元与远程采集单元之间通过CAN总线连接在一起 在这个网络中 中央监控单元处于主控位置 远程采集单元可以随时响应中央监控单元的命令 76 基于CAN总线的远程抄表系统结构图 77 远程采集单元 远程采集单元涉及CAN通信方面的一些功能特点如下 手动设定远程采集单元地址 用电量和时段可以通过中央监控单元设置 每个远程采集单元各自具有内部实时时钟 可以通过通信方式统一校正时钟 可随时响应中央监控单元的查询命令 在与上位机进行数据通信的同时不影响脉冲计数 远程采集单元主要由单片机80C552及采集 存储 显示 遥控

温馨提示

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

评论

0/150

提交评论