收藏 分享(赏)

CAN总线技术.ppt

上传人:精品资料 文档编号:10238074 上传时间:2019-10-23 格式:PPT 页数:74 大小:1.14MB
下载 相关 举报
CAN总线技术.ppt_第1页
第1页 / 共74页
CAN总线技术.ppt_第2页
第2页 / 共74页
CAN总线技术.ppt_第3页
第3页 / 共74页
CAN总线技术.ppt_第4页
第4页 / 共74页
CAN总线技术.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、第十章 CAN总线,第10章 CAN总线,10.1 CAN总线的性能特点 10.2 CAN的技术规范 10.2.1 CAN的物理层 10.2.2 CAN的数据链路层 10.2.3 报文的传送及其帧结构 10.3 典型CAN总线器件及应用,10.1 CAN总线的性能特点,1. 多主方式工作 2. 网络上的节点信息分成不同的优先级,可满足不同的实时要求。 3. 非破坏性总线仲裁技术,10.1 CAN总线的性能特点,4. 报文滤波 5.节点数主要取决于总线驱动电路 6.短帧结构 7.CRC校验及其他检错措施,10.2 CAN的技术规范,CAN技术规范(Version2.0)A和B: 2.0 A:CA

2、N报文标准格式 2.0 B:标准和扩展两种格式 CAN只采用了ISO/OSI模型中的物理层和数据链路层。,物理层: 物理信令(PLS,Physical Signalling) 物理媒体附件(PMA,Physical Medium Attachment) 媒体接口(MDI,Medium Dependent Interface) 数据链路层: 逻辑链路控制子层(LLC) 媒体访问控制子层(MAC),CAN协议的分层结构,10.2.1 CAN的物理层,定义信号怎样进行发送,因而涉及电气连接、驱动器/接收器的特性、位编码/解码、位定时及同步等内容。 对总线媒体装置,诸如驱动器/接收器特性未作规定,以便

3、在具体应用中进行优化设计。 CAN物理层选择灵活,没有特殊的要求,可以采用共地的单线制、双线制、同轴电缆、双绞线、光缆等。,总线的两种逻辑状态:隐性或显性,1993年形成的国际标准ISOll898基于双绞线的CAN总线媒体装置建议的电气连接,10.2.2 CAN的数据链路层,数据链路层子层的服务和功能: 逻辑链路控制子层(LLC):“目标层” 媒体访问控制子层(MAC)“传送层”,1.LLC子层的主要功能, 为数据传送和远程数据请求提供服务 确认要发送的信息 确认接收到的信息 为恢复管理和通知超载提供信息 为应用层提供接口 在定义目标处理时,存在许多灵活性,2.MAC子层的功能, 传送规则:即

4、控制帧结构、执行总线仲裁、错误检测、出错标定和故障界定。 确定:为开始一次新的发送,总线是否开放或者是否马上接收。MAC子层是CAN协议的核心,该子层特性不存在修改的灵活性。,CAN数据链路层:由一个CAN控制器实现,采用了CSMA/CD方式,但不同于普通Ethernet,采用非破坏性总线仲裁技术,网络上节点(信息)有高低优先级之分以满足不同的实时需要。 当总线上有两个节点同时向网上输送信息时,优先级高的节点继续传输数据,优先级低的节点主动停止发送,有效地避免了总线冲突以及负载过重导致网络瘫痪的情况。,CAN可以实现点对点、一点对多点(成组)以及全局广播等几种方式传送和接收数据。(报文滤波)

5、CAN采用短帧结构,每帧有效字节数为08个,因此传输时间短,受干扰概率低,重新发送时间短。 数据帧的CRC校验以及其他检查措施保证了数据出错率极低。,10.2.3 报文的传送及其帧结构,在进行数据传送时,发出报文的单元成为该报文的发送器。 该单元在总线空闲或丢失仲裁前始终为发送器。 如果一个单元不是报文发送器,并且总线不处于空闲状态,则该单元就是接收器。,构成一帧的帧起始、仲裁场、控制场、数据场和CRC序列均借助位填充规则进行编码。 当发送器在发送的位流中检测到5位连续的相同数值时,将自动地在实际发送的位流中插入一个补码位。 数据帧和远程帧的其余位场采用固定格式,不进行填充。,报文中的位流按照

6、非归零码(NRZ)方法编码。 报文传送由 4 种不同类型的帧表示和控制: 数据帧:携带数据由发送器至接收器; 远程帧:通过总线单元发送,以请求发送具有相同标识符的数据帧; 出错帧:由检测出总线错误的任何单元发送; 超载帧:用于提供当前的和后续的数据帧的附加延迟。,10.3 典型CAN总线器件及应用 10.3.1 SJA1000 CAN控制器 SJA1000是一个独立的CAN控制器,它在汽车和普通的工业应用上有先进的特征。由于它和PCA82C200在硬件和软件都兼容,因此它将会替代PCA82C200,SJA1000有一系列先进的功能,适合于多种应用特别在系统优化诊断和维护方面非常重要。SJA10

7、00在软件和引脚上都是与它的前一款PCA82C200独立控制器兼容的。在此基础上它增加了很多新的功能,为了实现软件兼容,SJA1000独立的CAN控制器有2个不同的操作模式: 1 BasicCAN模式:和PCA82C200兼容。BasicCAN模式是上电后默认的操作模式,因此用PCA82C200开发的已有硬件和软件,可以直接在SJA1000上使用而不用作任何修改。,2 PeliCAN模式:是新的操作模式。它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,使SJA1000能应用于更宽的领域。工作模式通过时钟分频寄存器中的CAN模式位来选择,复位时默认模式是Basic CAN模式

8、。 SJA1000控制器结构SJA1000控制器可以分为CAN核心模块、接口管理逻辑、发送缓冲器、验收滤波器、接收FIFO等五个功能模块,SJA1000控制器结构图如图9.16所示。由主控制器进行管理控制、将欲收发的信息(报文),转换为CAN规范的CAN帧,通过CAN收发器,在CAN BUS上交换信息。,图10.16 SJA1000 控制器结构图,CAN核心模块:根据CAN规范控制CAN帧的发送和接收。收到一个报文时,CAN核心模块将串行位流转换成用于的并行数据,发送一个报文时则相反。接口管理逻辑:用于连接外部主控制器。外部可以是微型控制器或任何其他器件,SJA1000通过复用的地址/数据总线

9、,与主控制器联系。发送缓冲器:用于存储一个完整的扩展的或标准的报文。当主控制器初始发送时,接口管理逻辑会使CAN核心模块从发送缓冲器读CAN报文。验收滤波器:通过这个可编程的滤波器能确定主控制器要接收哪些报文。接收FIFO:用于存储所有收到的报文,储存报文的多少由工作模式决定,最多能存储32个报文。因为数据超载可能性被大大降低,这使用户能更灵活地指定中断服务和中断优先级。SJA1000控制器功能框图CAN 控制模块SJA1000功能框图如图9.17所示,由以下部分组成,图10.17 SJA1000 控制器功能框图,(1) 接口管理逻辑(IML)接口管理逻辑解释来自CPU 的命令,控制CAN 寄

10、存器的寻址,向主控制器提供中断信息和状态信息。由8位并行地址/数据总线和片选、读、写、时钟、使能等控制信号线与主控制CPU相连接。(2) 发送缓冲器(TXB) 发送缓冲器是CPU 和BSP(位流处理器)之间的接口,能够存储发送到CAN网络上的完整信息,缓冲器长13个字节,由CPU 写入、BSP 读出。(3)接收缓冲器(RXB,RXFIFO) 接收缓冲器是验收滤波器和CPU之间的接口,用来储存从CAN 总线上接收的信息,接收缓冲器(RXB,13个字节)作为接收FIFO(RXFIFO,长64个字节)的一个窗口,可被CPU访问,CPU在此FIFO的支持下可以在处理信息的时候接收其它信息。(4) 验收

11、滤波器(ACF) 验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息。在纯粹的接收测试中,所有的信息都保存在RXFIFO中。,(5)位流处理器(BSP) 位流处理器是一个在发送缓冲器、RXFIFO 和CAN 总线之间,控制数据流的程序装置,它还在CAN 总线上执行错误检测、仲裁填充和错误处理。(6)位时序逻辑(BTL) 位时序逻辑监视串口的CAN总线和处理与总线有关的位时序。它在信息开头的总线传输时同步CAN 总线位流(硬同步),接收信息时再次同步下一次传送(软同步)BTL 还提供了可编程的间段来补偿传播延迟时间、相位转换(例如:由于振荡漂移)和定义采样点和一位时间内的采样

12、次数。(7)错误管理逻辑(EML) EML负责传送层模块的错误管制。它接收BSP 的出错报告。通知BSP 和IML 进行错误统计。,图10.18 SJA1000 DIP28引脚图,SJA1000 控制器引脚SJA1000 控制器有DIP28(塑质双列直插封装)和SO28(塑质小型外线封装)两种形式,DIP28引脚图如图9.18所示。SJA1000引脚排列与引脚功能见表10.2。,表10.2 SJA1000引脚排列与引脚功能表,表10.2 SJA1000引脚排列与引脚功能表,4. SJA1000的特征SJA1000的特征可以分成3组: 与PCA82C200完全兼容的功能。特征有: 灵活的微处理器

13、接口-允许接口大多数微型处理器或微型控制器。 可编程的CAN输出驱动器-对各种物理层的分界面。 CAN位频率高达1Mbit/s-SJA1000覆盖了位频率的所有范围,包括高速应用。 改良的PCA82C200功能,这组功能的部份已经在PCA82C200里实现,但是在SJA1000里这些功能在速度大小和性能方面得到了改良。特征有: CAN2.0B(passive)-SJA1000的CAN2.0B passive特征允许CAN控制器接收有29位标识符的报文。 64个字节接收FIFO-接收FIFO,可以存储高达21个报文,这延长了最大中断服务时间,避免了数据超载。,24MHz时钟频率-微处理器的访问更

14、快和CAN的位定时选择更多。 接收比较器旁路-减少内部延迟,由于改进的位定时编程,使CAN总线长度更长。 PeliCAN模式的增强功能,在PeliCAN模式里SJA1000支持一些错误分析功能,支持系统诊断,系统维护,系统优化。而且这个模式里也加入了对一般CPU的支持和系统自身测试的功能。特征有: CAN2.0B active-CAN2.0B active支持带有29位标识符的网络扩展应用。 发送缓冲器-有11位或29位标识符的报文的单报文发送缓冲器。 增强的验收滤波器-两个验收滤波器模式,支持11位和29位标识符的滤波。 可读的错误计数器、可编程的出错警告界限、错误代码捕捉寄存器、出错中断-

15、支持错误分析,在原型阶段和在正常操作期间可用于:诊断、系统维护、系统优化。,仲裁丢失捕捉中断-支持系统优化包括报文延迟时间的分析。 单次发送-使软件命令最小化和允许快速重载发送缓冲器。 仅听模式-SJA1000能够作为一个认可的CAN监控器操作,可以分析CAN总线通信或进行自动位速率检测。 自测试模式-支持全部CAN节点的功能自测试或在一个系统内的自接收。 5. BasicCAN模式SJA1000是一种I/O设备基于内存编址的微控制器,与其它控制器(CPU)之间的操作是通过象RAM一样的片内寄存器读写来实现的。示意图如图9.19所示。,SJA1000的地址区包括控制段和信息缓冲区。信息缓冲区又

16、分为发送缓冲器和接收缓冲器。控制段在初始化时载入,是可以被编程来配置通讯参数的。例如:位时序。,微处理器(CPU),CAN 收发器,控制寄存器,SJA1000 CAN控制器,命令寄存器,状态寄存器,中断寄存器,验收代码寄存器,验收屏蔽寄存器,.,.,CAN BUS,图10.19 CAN总线节点示意图,微控制器(CPU)通过这个段来控制CAN总线上的通讯的,在初始化时,CLKOUT信号可以被微控制器(CPU)编程指定一个值,应发送的信息会被写入发送缓冲器,成功接收信息后,微控制器(CPU)从接收缓冲器中读取接收的信息,然后释放空间以做下一步应用。微控制器(CPU)和SJA1000之间状态、控制和

17、命令信号的交换都是在控制段中完成的。表10.3 是BasicCAN 各寄存器地址表。在以下两种不同的模式中访问寄存器是不同的。复位模式:当硬件复位或控制器掉线总线状态位时会自动进入复位模式。工作模式:是通过置位控制寄存器的复位请求位激活的。,表10.3 BasicCAN 地址表,(1) 控制寄存器(CR)控制寄存器的各位内容(CR.0-CR.7)是用于改变CAN控制器的行为的,这些位可以被微控制器(CPU)设置或复位,微控制器(CPU)可以对控制寄存器进行读/写操作。 (2) 命令寄存器(CMR)命令寄存器的各命令位(CMR.0-CMR.7)决定SJA1000传输层上的动作,命令寄存器对微控制

18、器(CPU)来说是只写存储器。如果去读这个地址返回值是11111111,两条命令之间至少有一个内部时钟周期,内部时钟的频率是外部振荡频率的/。 (3) 状态寄存器(SR)状态寄存器的各位内容(SR.0-SR.7)内容反映了SJA1000的状态。状态寄存器对微控制器(CPU)来说是只读存储器。,(4) 中断寄存器(IR)中断寄存器各位内容(IR.0-IR.7)能够识别中断源,当寄存器的一位或多位被置位时,/INT(低电平有效)引脚就被激活了,寄存器被微控制器(CPU)读过之后,所有导致/INT引脚上的电平漂移的位被复位,中断寄存器对微控制器(CPU)来说是只读存储器。(5) 发送缓冲器发送缓冲器

19、是用来存储微控制器(CPU)要SJA1000发送的信息的。可以分为描述符区和数据区,发送缓冲器的读/写只能由微控制器(CPU)在工作模式下完成,在复位模式下读出的值总是FFH。1)描述符区识别码 有11位(ID0-ID10)。ID10是最高位在仲裁过程中是最先被发送到总线上的识别码。就象信息的名字,它在接收器的验收滤波器中被用到,也在仲裁过程中决定总线访问的优先级。识别码的值越低,其优先级越高。这是因为在仲裁时有许多支配控制位开头的字节。,远程发送请求RTR 如果此位置1,总线将以远程帧发送数据,这意味着此段中没有数据字节,尽管如此也需要同识别码相同的数据帧来识别正确的数据长度。如果RTR位没

20、有被置,位数据将以数据长度码规定的长度来传送。数据长度码DLC 信息数据区的字节数根据数据长度码编制。在远程帧传送中,因为RTR被置位,数据长度码是不被考虑的。这就迫使发送/接收数据字节数为0。总之,数据长度码必须正确设置,以避免两个CAN控制器用同样的识别机制启动远程帧传送而发生总线错误。数据字节数是0-8,是以如下方法计算的: 数据字节数=8DLC.3+4DLC.2+2DLC.1+DLC.0 为了保持兼容性,数据长度码不超过8。如果选择的值超过8,则按照DLC规定的8字节发送。,图10.20 RXFIFO中信息存储示例,2)数据区传送的数据字节数由数据长度码决定。发送的第一位是地址12单元

21、的数据字节1的最高位。,(6) 接收缓冲器图10.20 RXFIFO中信息存储示例用来存储从总线上接收道德信息。接收缓冲器与发送缓冲器类似,接收缓冲器是RXFIFO中可访问的部分,位于CAN地址的20-29之间。 识别码远程发送请求位和数据长度码,同发送缓冲器的相同,只不过是地址不同。,RXFIFO共有64字节的信息空间,图9.20 是 RXFIFO中信息存储示例,在任何情况下,FIFO中可以存储的信息数取决于各条信息的长度,如果RXFIFO中没有足够的空间来存储新的信息,CAN控制器会产生数据溢出。数据溢出发生时,已部分写入RXFIFO的当前信息将被删除。这种情况将通过状态位或数据溢出中断反

22、应到微控制器(CPU)。(7)验收滤波器在验收滤波器的帮助下,CAN控制器能够允许RXFIFO只接收同识别码和验收滤波器中预设值相一致的信息。验收滤波器通过验收代码寄存器ACR和验收屏蔽寄存器AMR来定义。1)验收代码寄存器(ACR)复位请求位被置高(当前)时,这个寄存器是可以访问(读/写)的,如果一条信息通过了验收滤波器,的测试而且接收缓冲器有空间,那么描述符和数据将被分别顺次写入RXFIFO,当信息被正确的接收完毕。就会:,接收状态位置高(满)接收中断使能位置高(使能)接收中断置高(产生中断)。 验收代码位(AC.7-AC.0)和信息识别码的高8位(ID.10-ID.3)相等,且与验收屏蔽

23、位(AM.7-AM.0)的相应位相或为1。即如果满足以下方程的描述,则被接收。(ID.10-ID.3)(AC.7-AC.0)(AM.7-AM.0)111111112)验收屏蔽寄存器(AMR)如果复位请求位置高(当前),这个寄存器可以被访问(读/写)。验收屏蔽寄存器定义验收代码寄存器的相应位对验收滤波器是“相关的”或“无影响的”(即可为任意值)。,(8) 总线定时寄存器0(BTR0)总线定时寄存器0,定义了波特率预设值(BRP)和同步跳转宽度(SJW)的值。复位模式有效时这个寄存器是可以被访问(读/写)的。在BasicCAN模式中总是FFH。波特率预设值(BRP) CAN系统时钟tSCL的周期是

24、可编程的,而且决定了相应的位时序。CAN系统时钟由如下公式计算:tSCL=2tCLK(32BRP.5+16BRP.4+8BRP.3+4BRP.2+2BRP.1+BRP.0+1)这里tCLK=XTAL的频率周期=1/fXTAL,同步跳转宽度(SJW) 为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号边沿重新同步。同步跳转宽度,定义了每一位周期可以被重新同步,缩短或延长的时钟周期的最大数目: tSJW=tSCL(2SJW.1+SJW.0+1)(9) 总线定时寄存器1(BTR1))总线定时寄存器1定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目。

25、在复位模式中,这个寄存器可以被读/写访问,在PeliCAN模式的工作模式中,这个寄存器是只读的,在BasicCAN模式中总是FFH。(10) 时间段1(TSEG1)和时间段(TSEG2)TSEG1和TSEG2决定了每一位的时钟数目和采样点的位置。,(11) 输出控制寄存器(OCR)输出控制寄存器实现了由软件控制不同输出驱动配置的建立。在复位模式中此寄存器可被读/写访问,在PeliCAN模式的工作模式中这个寄存器是只读的,在BasicCAN模式中总是FFH。当SJA1000在睡眠模式中时TX0和TX1引脚根据输出控制寄存器的内容输出隐性的电平在复位状态复位请求=1或外部复位引脚/RST被拉低时输

26、出TX0和TX1悬空。发送的输出阶段可以有不同的模式。SJA1000有四种输出模式,由OCR的BIT0和BIT1设置。1).正常输出模式 正常模式中位序列(TXD)通过TX0和TX1送出输出驱动引脚TX0和TX1的电平取决于被OCTPx,OCTNx(悬空、上拉、下拉、推挽)编程的驱动器的特性和被OCPOLx编程的输出端极性。,2).时钟输出模式 TX0引脚在这个模式中和正常模式中是相同的。但是,TX1上的数据流被发送时钟(TXCLK)代替了。发送时钟(不翻转)的上升沿标志着一位的开始。时钟脉冲宽度是1tscl。3).双相输出模式相对于正常输出模式,这里的位代表着时间的变化和触发。如果总线控制器

27、被发送器从总线上通电退耦,则位流不允许含有直流元件。用TX0或TX1电平发送例如第一位在TX0上发送第二位在TX1上发送第三位在TX0上发送等等。 4).测试输出模式在测试输出模式中,RX上的电平在下一个系统时钟的上升沿映射到TXn上,系统时钟(fOSC/2)与输出控制寄存器中定义的极性一致。,12时钟分频寄存器(CDR)时钟分频寄存器为微控制器控制CLKOUT的频率以及屏蔽CLKOUT引脚,而且它还控制着TX1上的专用接收中断脉冲、接收比较通道和 BasicCAN模式与PeliCAN模式的选择。硬件复位后寄存器的默认状态是Motorola模式(00000101)是12分频和Intel模式(0

28、0000000)是2分频。软件复位(复位请求/复位模式)时,此寄存器不受影响。保留位(CDR.4)总是0。应用软件总是向此位写0以与将来可能使用此位的特性兼容.CD.2-CD.0 复位模式和工作模式中一样,CD.2-CD.0是可以无限制访问的。这些位是用来定义外部CLKOUT引脚上的频率的。,时钟关闭 设置这一位可禁能SJA1000的外部CLKOUT引脚只有在复位模式中才可以写访问如果置位此位CLKOUT引脚在睡眠模式中是低而其它情况下是高RXINTEN 此位允许TX1输出用来做专用接收中断输出。当一条已接收的信息成功的通过验收滤波器,一位时间长度的接收中断脉冲就会在TX1引脚输出。 CBP

29、置位CDR.6可以中止CAN输入比较器,但这只可在复位模式中。这主要用于SJA1000外接发送接收电路时。此时内部延时被减少,这将会导致总线长度最大可能值的增加。如果CBP被置位,只有RX0被激活。没有被使用的RX1输入应被连接到一个确定的电平(例如VSS)。CAN模式 CDR.7定义了CAN模式。如果CDR.7是0,CAN控制器工作于BasicCAN模式,否则CAN控制器工作于PeliCAN模式,只有在复位模式中是可以写的。,10.4.2 PCA82C250 CAN 收发器 PCA82C250是CAN协议控制器和物理总线的接口。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力。又

30、称为总线驱动器。主要特性有: L 完全符合ISO11898标准; l 高速率(最高达1Mbps); l 具有抗汽车环境中的瞬间干扰,保护总线能力; l 斜率控制,降低射频干扰(RFI); l 差分接收器,抗宽范围的共模干扰,抗电磁干扰(EMI) l 热保护; l 防止电池和地之间的发生短路; l 低电流待机模式; l 未上电的节点对总线无影响; l 可连接110个节点。,1.硬件结构 PCA82C250器件为DIP8塑料双列直插封装,管脚图见图10.21,管脚功能描述见表10.4,功能框图见图10.22。片内管脚配置图见图10.23,表10.4 PCA82C250管脚功能描述,图10.21 P

31、CA82C250管脚图,图10.22 PCA82C250功能框图,图10.23 PCA82C250内管脚配置图,表 10.5 PCA82C250基本性能数据,PCA82C250基本性能数据见表 10.5,PCA82C50有一个限流电路可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过160时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。IC的其他所有部分将继续工作。当总线短路时,热保护十分重要。CANH、CANL两条线也防止在汽车环境下可能发生的电气瞬变现象。管脚8

32、(RS)允许选择三种不同的工作模式:高速、待机、斜率控制,如表10.6所示。,表10.6 管脚RS选择的三种不同工作模式,高速模式:管脚8接地。在高速工作模式下,发送器输出级晶体管将以尽可能快的速度打开、关闭。在这种模式下,不采取任何措施用于限制上升斜率和下降斜率。建议使用屏蔽电缆以避免射频干扰RFI问题。斜率控制模式:对于较低速度或较短总线长度,可使用非屏蔽双绞线或平行线作为总线。为降低射频干扰RFI,应限制上升斜率和下降斜率。上升斜率和下降斜率可通过由管脚8接至地的连接电阻进行控制。斜率正比于管脚8的电流输出。管脚8如果接至高电平被,则电路进入低电流待机模式。在这种模式下,发送器被关闭,而

33、接收器转至低电流。若在总线上检测到显性位(差动总线电压0.9V),RXD将变为低电平。微控制器应将收发器转回至正常工作状态(通过管脚8),以对此信号作出响应。由于处在待机方式下,接收器是慢速的,因此,第一个报文将被丢失。CAN收发器的真值表如表10.7所示。,表10.7 CAN 收发器真值表,PCA82C50的主要电气特性:工作电压 VCC4.55.5V;环境温度 Tamb=40+125;RL60;L810A;除非另外说明,所有电压均以接地点(管脚2)为参考,正输入电流。所有参数在所设计的环境温度范围内均可确保,但100被测试仅在+25时下进行。,CAN 控制器,CAN 发送器,CAN 总线,

34、图10.24 CAN 收发器的应用,PCA82C250收发器的典型应用如图图10.24所示。控制器通过串行数据输出线(TX)和串行数据输入线(RX)连接到PCA82C250收发器。,PCA82C250的基本应用,收发器通过有差动发送和接收功能的两个总线终端CANH和CANL连接到总线电缆,输入Rs用于模式控制,参考电压输出VREF的输出电压是额定VCC的0.5倍,其中收发器的额定电源电压是5V。协议控制器输出一个串行的发送数据流到收发器的TxD引脚,内部的上拉功能将TxD输入设置成逻辑高电平,也就是说总线输出驱动器默认是被动的,在隐性状态中,CANH和CANL输入通过典型内部阻抗是17k的接收

35、器输入网络,偏置到2.5V的额定电压,另外如果TxD是逻辑低电平,总线的输出级将被激活,在总线电缆上产生一个显性的信号电平(见图10.24),输出驱动器由一个源输出级和一个下拉输出级组成,CANH连接到源输出级,CANL连接到下拉输出级,在显性状态中CAN_H的额定电压是3.5V,CAN_L是1.5V。,如果没有一个总线节点传输一个显性位,总线处于隐性状态,即网络中所有TxD输入是逻辑高电平。另外如果一个或更多的总线节点传输一个显性位,即至少一个TxD输入是逻辑低电平,则总线从隐性状态进入显性状态(线与功能)。接收器的比较器将差动的总线信号转换成逻辑信号电平,并在RxD输出,接收到的串行数据流

36、传送到总线协议控制器译码。,接收器的比较器总是活动的,也就是说当总线节点传输一个报文时,它同时也监控总线,这就要求有诸如安全性和支持非破坏性逐位竞争等CAN策略,一些控制器提供一个模拟的接收接口。(RX0,RX1)RX0一般需要连接到RxD输出RX1需要偏置到一个相应的电压电平,这可以通过VREF输出或一个电阻电压分配器实现。图10.25中收发器直接连接到协议控制器及其应用电路。如果需要电流隔离,光耦可以如图上一样放置,在收发器和协议控制器之间使用光耦时,要注意选择正确的默认状态,特别是在隔开的协议控制器电路一边没有上电时。这种情况下,连接到TxD的光耦应该是“暗”的,即LED关断,当光耦是断

37、开/暗时,收发器的TxD输入是逻辑高电平,可以达到自动防故障的目的,使用光耦还要考虑到将Rs模式控制输入连接到高电平有效的复位信号,例如当本地收发器电源电压在斜率上升和下降过程中没有准备好的情况下,禁能收发器。,图10.25电气隔离的应用,10.4.3 CAN BUS节点设计举例 1.0网络拓朴 CAN-bus采用总线网络拓朴结构,在一个网络上至少需要有2个CAN-bus 节点存在。在总线的2个终端,各需要安装1个120的终端电阻;如果节点数目大于2个,中间节点就不要求安装120终端电阻。网络拓朴示意图见图10.26。,图10.26 CAN总线网络拓朴示意图,虽然每一个节点根据应用系统的任务有

38、各自控制功能,但完成CAN-bus信息交换的功能是相同的。CAN bus节点一般由微处理器、CAN控制器、CAN收发器三部分组成。CAN bus节点示意图见图10.27。,图10.27 CAN bus节点示意图,2.硬件设计 如图10.28所示为CAN 总线系统节点硬件电路原理图。从图中可以看出,电路主要由三部分所构成,微控制器89C51、 独立CAN通信控制器SJA1000、CAN总线收发器82C250。微处理器89C51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。SJA1000的AD0-AD7连接到80C51的P0口,/CS连接到80C51的P2.7,

39、P2.7为0的CPU片外存贮器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作,SJA1000的/RD、/WR、ALE分别与80C51的对应引脚相连,/INT接80C51的0INT,80C51也可通过中断方式访问SJA1000。SJA1000的CLKOUT信号作为80C51的时钟源,复位信号由外部复位电路产生。,图10.28 CAN 总线系统节点硬件电路原理图,1) 电源SJA1000有三对电源引脚,用于CAN控制器内部不同的数字和模拟模块。 VDD1/VSS1:内部逻辑(数字) VDD2/VSS2:输入比较器(模拟) VDD3/VSS3:输出驱动器(模拟)为了

40、有更好的EME性能电源应该分隔开来,例如为了抑制比较器的噪声,VDD2可以用一个RC滤波器来抑制噪声。 2) 复位为了使SJA1000正确复位,CAN控制器的XTAL1管脚必须连接一个稳定的振荡器时钟,引脚17的外部复位信号要同步并被内部延长到15个tXTAL。这保证了SJA1000所有寄存器能够正确复位。要注意的是必须要考虑上电后的振荡器的起振时间。,3) 振荡器和时钟方案 SJA1000能用片内振荡器或片外时钟源工作。另外CLKOUT管脚可被使能,向主控制器输出时钟频率。图10.29显示了SJA1000应用的四个不同的定时原理。如果不需要CLKOUT信号,可以通过置位时钟 分频寄存器(Cl

41、ockOff=1)关断。示例中采用的是CPU的时钟由SJA1000提供方案。CLKOUT信号的频率可以通过时钟分频寄存器改变:fCLKOUT=fXTAL/时钟分频因子(1、2、4、6、8、10、12、14)。上电或硬件复位后时,钟分频因子的默认值由所选的接口模式(引脚11)决定。如果使用16MHz的晶振,Intel模式下CLKOUT的频率是8MHz,Motorola模式中复位后的时钟分频因子是12,这种情况CLKOUT会产生1.33MHz的频率。,图10-29振荡器和时钟方案,4) 睡眠和唤醒置位命令寄存器的进入睡眠位(BasicCAN模式)或模式寄存器(PeliCAN模式)的睡眠模式位后,如

42、果没有总线活动和中断等待,SJA1000就会进入睡眠模式,振荡器在15个CAN位时间内保持运行状态。此时,微型控制器用CLKOUT频率来计时,进入自己的低功耗模式,如果出现三个唤醒条件之中的一个,振荡器会再次启动并产生一个唤醒中断,振荡器稳定后,CLKOUT频率被激活。 5) CPU接口SJA1000支持直接连接到两个微型控制器系列:80C51和68xx。通过SJA1000的MODE引脚可选择接口模式: Intel模式: MODE=高 Motorola模式:MODE=低地址/数据总线和读/写控制信号在Intel模式和Motorola模式的连接如图10.30所示。Philips基于80C51系列

43、的8位微控制器和XA结构的16位微型控制器都使用Intel模式。,图10.30 SJA1000在Intel 模式和Motorola 模式的连接图,为了和其他控制器的地址/数据总线和控制信号匹配,必须要附加逻辑电路。但是必须确保在上电期间不产生写脉冲。另一个方法在这个时候使片选输入是高电平,CAN控制器无效。,3 . 软件设计 1) CAN BUS通信的总体流程 通过CAN 总线建立通讯的步骤是: 系统上电后的任务: 根据SJA1000的硬件和软件连接设置主控制器; 设置CAN 控制器用于通讯的各控制器,如模式、验收滤波器、位定时等数值。 在应用的主过程中的任务: 准备要发送的报文,并激活SJA

44、1000发送它们; 处理CAN控制器接收的报文信息; 在通讯期间对发生的错误进行处理。图10.31 表示了程序的总体流程。,图10.31 通信的总体流程,2) 通信软件设计CAN 总线节点的通信软件设计主要包括三大部分:CAN 节点初始化程序;报文发送程序;报文接收程序。熟悉这三部分程序的设计,就能编写出利用CAN 总线进行通信的一般应用程序。如果通信任务比较复杂,还要需详细了解有关CAN 总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN 总线通信距离和节点数的计算等方面的内容。 下面就初始化程序和报文发送程序的设计进行简要介绍。 初始化子程序SJA1000 的初始

45、化只有在复位模式下才可以进行。初始化主要包括:工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器AMR 和接收代码寄存器ACR 的设置、波特率参数设置、和中断允许寄存器IER的设置等,在完成SJA1000 的初始化设置以后,JA1000 就可以回到工作状态进行正常的通信任务。初始化子程序框图见图10.32。,图10.32 初始化子程序框图, 发送子程序发送子程序负责节点报文的发送。发送子程序框图见图10.33,发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000 发送缓存区中,然后启动SJA1000 发送即可。在向SJA1000发送缓存区送报文之前,必须先作一些判断,图10.33 发送子程序框图,第二部分 第10章复习题 1. CAN总线的报文传送由几种不同类型的帧表示和控制?请分别叙述其不同的组成和作用。 2. CAN总线报文传送的优先级是如何确定的?(由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报