370 likes | 537 Views
第四章 CAN 网络控制器及其相关芯片. CAN 总线收发器 PCA82C250/PCA82C251 独立的控制芯片 SJA1000 及其使用 带有 CAN 接口芯片的 DSP2407 及其使用. CAN 总线收发器 PCA82C250/PCA82C251. PCA82C250/251 是 CAN 协议控制器和物理总线的接口。此器件对总线提供差动发送能力,对 CAN 控制器提供差动接收能力。又称为总线驱动器。 PCA82C251 有更高的击穿电压,而且在隐性状态小拉电流更小,在掉电情况小总线的输出特性有一定改善. 收发器主要特性. 完全符合 ISO11898 标准;
E N D
第四章 CAN网络控制器及其相关芯片 • CAN总线收发器PCA82C250/PCA82C251 • 独立的控制芯片SJA1000及其使用 • 带有CAN接口芯片的DSP2407及其使用
CAN总线收发器PCA82C250/PCA82C251 • PCA82C250/251是CAN协议控制器和物理总线的接口。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力。又称为总线驱动器。 • PCA82C251有更高的击穿电压,而且在隐性状态小拉电流更小,在掉电情况小总线的输出特性有一定改善
收发器主要特性 • 完全符合ISO11898标准; • 高速率(最高达1Mbps); • 具有抗汽车环境中的瞬间干扰,保护总线能力; • 斜率控制,降低射频干扰(RFI); • 差分接收器,抗宽范围的共模干扰,抗电磁干扰(EMI) • 热保护; • 防止电池和地之间的发生短路; • 低电流待机模式; • 未上电的节点对总线无影响; • 可连接110个节点。
保护电路 接收器 斜率 /等待 驱动器 基准电压 PCA82C250功能框图
符号 管脚 功能描述 TXD 1 发送数据输入 GND 2 地 VCC 3 电源电压 RXD 4 接收数据输出 Vref 5 参考电压输出 CANL 6 低电平CAN电压输入/输出 CANH 7 高电平CAN电压输入/输出 RS 8 斜率电阻输入 硬件结构 PCA82C250管脚图
工作模式 • 高速模式 • 管脚8接地。在高速工作模式下,发送器输出级晶体管将以尽可能快的速度打开、关闭。在这种模式下,不采取任何措施用于限制上升斜率和下降斜率。建议使用屏蔽电缆以避免射频干扰RFI问题。 • 斜率控制模式 • 对于较低速度或较短总线长度,可使用非屏蔽双绞线或平行线作为总线。为降低射频干扰RFI,应限制上升斜率和下降斜率。上升斜率和下降斜率可通过由管脚8接至地的连接电阻进行控制。斜率正比于管脚8的电流输出。
工作模式 • 准备模式 • 管脚8如果接至高电平,则电路进入低电流待机模式。在这种模式下,发送器被关闭,而接收器转至低电流。
在RS管脚上强制条件 模式 管脚上电压和电流 VRS>0.75VCC 待机模式 IRS<|10μA| -10μA<IRS<-200μA 斜率控制模式 0.3VCC<VRS<0.6VCC VRS<0.3VCC 高速模式 IRS<-500μA 管脚RS选择的三种不同工作模式
独立的控制芯片SJA1000及其使用 • SJA1000是一个独立的CAN控制器,它在汽车和普通的工业应用上有先进的特征。由于它和PCA82C200在硬件和软件都兼容,因此它将会替代PCA82C200,SJA1000有一系列先进的功能,适合于多种应用特别在系统优化诊断和维护方面非常重要。
操作模式 • BasicCAN模式 • 和PCA82C200兼容。BasicCAN模式是上电后默认的操作模式,因此用PCA82C200开发的已有硬件和软件,可以直接在SJA1000上使用而不用作任何修改。 • PeliCAN模式 • 是新的操作模式。它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,使SJA1000能应用于更宽的领域。 工作模式通过时钟分频寄存器中的CAN模式位来选择,复位时默认模式是Basic CAN模式。
由主控制器进行管理控制、将欲收发的信息(报文),转换为CAN规范的CAN帧,通过CAN收发器,在CAN BUS上交换信息。 主控制器 CAN收发 器 接口 管理 逻辑 发送 缓冲器 CAN 核心 模块 接收FIFO 验收 滤波器 CAN BUS SJA1000控制器结构图
SJA1000控制器结构 • CAN核心模块 • 根据CAN规范控制CAN帧的发送和接收。收到一个报文时,CAN核心模块将串行位流转换成用于的并行数据,发送一个报文时则相反。 • 接口管理逻辑 • 用于连接外部主控制器。外部可以是微型控制器或任何其他器件,SJA1000通过复用的地址/数据总线,与主控制器联系。
SJA1000控制器结构 • 发送缓冲器 • 用于存储一个完整的扩展的或标准的报文。当主控制器初始发送时,接口管理逻辑会使CAN核心模块从发送缓冲器读CAN报文。 • 验收滤波器 • 通过这个可编程的滤波器能确定主控制器要接收哪些报文。 • 接收FIFO • 用于存储所有收到的报文,储存报文的多少由工作模式决定,最多能存储32个报文。因为数据超载可能性被大大降低,这使用户能更灵活地指定中断服务和中断优先级。
SJA1000的内部结构及功能 • 接口管理逻辑(IML) • 接口管理逻辑解释来自CPU 的命令,控制CAN 寄存器的寻址,向主控制器提供中断信息和状态信息。由8位并行地址/数据总线和片选、读、写、时钟、使能等控制信号线与主控制CPU相连接。 • 发送缓冲器(TXB) • 发送缓冲器是CPU 和BSP(位流处理器)之间的接口,能够存储发送到CAN网络上的完整信息,缓冲器长13个字节,由CPU 写入、BSP 读出。
SJA1000的内部结构及功能 • 接收缓冲器(RXB,RXFIFO) • 接收缓冲器是验收滤波器和CPU之间的接口,用来储存从CAN 总线上接收的信息,接收缓冲器(RXB,13个字节)作为接收FIFO(RXFIFO,长64个字节)的一个窗口,可被CPU访问,CPU在此FIFO的支持下可以在处理信息的时候接收其它信息。 • 验收滤波器(ACF) • 验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息。在纯粹的接收测试中,所有的信息都保存在RXFIFO中。
SJA1000的内部结构及功能 • 位流处理器(BSP) • 位流处理器是一个在发送缓冲器、RXFIFO 和CAN 总线之间,控制数据流的程序装置,它还在CAN 总线上执行错误检测、仲裁填充和错误处理。 • 位时序逻辑(BTL) • 位时序逻辑监视串口的CAN总线和处理与总线有关的位时序。它在信息开头的总线传输时同步CAN 总线位流(硬同步),接收信息时再次同步下一次传送(软同步)BTL 还提供了可编程的间段来补偿传播延迟时间、相位转换(例如:由于振荡漂移)和定义采样点和一位时间内的采样次数。 • 错误管理逻辑(EML) • EML负责传送层模块的错误管制。它接收BSP 的出错报告。通知BSP 和IML 进行错误统计。
SJA1000控制器引脚 SJA1000 控制器有DIP28(塑质双列直插封装)和SO28(塑质小型外线封装)两种形式 SJA1000 DIP28引脚图
SJA1000的特征 • 与PCA82C200完全兼容的功能。 • 灵活的微处理器接口---允许接口大多数微型处理器或微型控制器。 • 可编程的CAN输出驱动器----对各种物理层的分界面。 • CAN位频率高达1Mbit/s----SJA1000覆盖了位频率的所有范围,包括高速应用
SJA1000的特征 • 改良的PCA82C200功能 • CAN2.0B(passive)----SJA1000的CAN2.0B passive特征允许CAN控制器接收有29位标识符的报文。 • 64个字节接收FIFO----接收FIFO,可以存储高达21个报文,这延长了最大中断服务时间,避免了数据超载。 • 24MHz时钟频率----微处理器的访问更快和CAN的位定时选择更多。 • 接收比较器旁路----减少内部延迟,由于改进的位定时编程,使CAN总线长度更长。
SJA1000的特征 • PeliCAN模式的增强功能 • CAN2.0B active----CAN2.0B active支持带有29位标识符的网络扩展应用。 • 发送缓冲器----有11位或29位标识符的报文的单报文发送缓冲器。 • 增强的验收滤波器-----两个验收滤波器模式,支持11位和29位标识符的滤波。 • 可读的错误计数器、可编程的出错警告界限、错误代码捕捉寄存器、出错中断-----支持错误分析,在原型阶段和在正常操作期间可用于:诊断、系统维护、系统优化。
SJA1000的特征 • PeliCAN模式的增强功能 • 仲裁丢失捕捉中断----支持系统优化包括报文延迟时间的分析。 • 单次发送----使软件命令最小化和允许快速重载发送缓冲器。 • 仅听模式---SJA1000能够作为一个认可的CAN监控器操作,可以分析CAN总线通信或进行自动位速率检测。 • 自测试模式----支持全部CAN节点的功能自测试或在一个系统内的自接收。
BasicCAN模式 SJA1000是一种I/O设备基于内存编址的微控制器,与其它控制器(CPU)之间的操作是通过象RAM一样的片内寄存器读写来实现的。 微处理器 (CPU) 控制寄存器 命令寄存器 SJA1000 CAN控制器 状态寄存器 CAN 收发器 中断寄存器 验收代码寄存器 验收屏蔽寄存器 …. …. CAN BUS
BasicCAN模式 • 复位模式 • 当硬件复位或控制器掉线总线状态位时会自动进入复位模式。 • 工作模式 • 是通过置位控制寄存器的复位请求位激活的
段 CAN地址 寄存器名称(符号) 控制 0 控制寄存器 1 命令寄存器 2 状态寄存器 3 中断寄存器 4 验收代码寄存器 5 验收屏蔽寄存器 6 总线定时寄存器0 7 总线定时寄存器1 8 输出控制寄存器 9 测试寄存器 发送缓冲器 10 识别码(ID10-3) 11 识别码ID2-0)+RTR和DLC 12-19 数据字1-节8 接收缓冲器 20 识别码(ID10-3) 21 识别码ID2-0)+RTR和DLC 22-29 数据字节1-8 30 31 时钟分频器 BasicCAN 地址表
波特率设定 • 总线定时寄存器0 • 定义了波特率预设值(BRP)和同步跳转宽度(SJW)的值。复位模式有效时这个寄存器是可以被访问(读/写)的。在BasicCAN模式中总是FFH。波特率预设值(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
波特率设定 • 同步跳转宽度(SJW) • 为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号边沿重新同步。同步跳转宽度,定义了每一位周期可以被重新同步,缩短或延长的时钟周期的最大数目: tSJW=tSCL×(2×SJW.1+SJW.0+1)
波特率设定 • 总线定时寄存器1(BTR1) • 总线定时寄存器1定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目。在复位模式中,这个寄存器可以被读/写访问,在PeliCAN模式的工作模式中,这个寄存器是只读的,在BasicCAN模式中总是FFH。
波特率设定 • 时间段1(TSEG1)和时间段(TSEG2) • TSEG1=tSCL×(8×TSEG1.3+4×TSEG1.2+2×TSEG1.1+TSEG1.0+1) • TSEG2=tSCL×(4×TSEG2.2+2×TSEG2.1+TSEG2.0+1)
CAN总线通讯程序 CAN总线通讯程序由三大部分组成:SJA1000初始化、接收和发送 ,右图为初始化流程
CAN总线数据接收 查询控制接收数据流程 中断控制接收数据流程
CAN模块结构 • CAN规格2.0B • 0B-8B数据长度设计的6个信箱 • 可配置的标准或扩展标识符 • 可编程的波特率 • 可编程的中断表 • 可读的错误计数器 • 自测试模块