版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、48X大学毕业设计CAN总线接口电路制作设计报告摘要:CAN总线是众多的现场总线标准之一,广泛应用于工业测控网络中。本文给出了基于CAN控制器82C250和 SJAl000的智能节点的硬件电路及软件结构,对设计中的难点及实现过程中应注意的问题进行了比较详细地介绍。 关键词:CAN ;SJA1000独立CAN器件;PCA82C250 CAN转换器Design of CAN Bus system terminal circuitAbstract:CAN (Controller Area Network) ,one of the most famous fieldbus protocol stand
2、ard ,was used widely in measurement and control network in industry field. In this paper a hard circuit and soft configuration of the intelligent node based on CAN controller 82C250 and SJA1000 have been presented Especially the crux in designing and the problems should be payed attention in realizi
3、ng are discussed in detailsKey words:CAN bus;SJAl000 standalone CAN contro11er;PCA82C250 CAN converter一、 总体概要 CAN总线(Contro11er Area Network控制器局域网)是现场总线的一种。90年代以来,以现场总线为基础的全数字式控制系统发展迅速,逐渐成为现代工业的主要控制技术。它的最大优点是可以大幅度节约连接导线,降低安装和维护费用;精度高,能远传多个过程变量。在目前的十几种现场总线中,CAN总线是一种应用范围较为广泛的现场总线。它是德国Bosch公司在1986年为解决现代
4、汽车中众多的控制与测试仪器之间的数据交换而开发的一种有效支持分布式控制和实时控制的串行通讯网络。从电器性能看,CAN现场总线接口采用一对平衡差分信号线进行半双工传送。在每个通信站点上,均有平衡驱动器和差分接收器。CAN现场总线接口的电气特性是:驱动器无负荷时输出电压为正负5V,有负荷时输出电压为正负15V。 CAN总线与其它通信网的不同之处:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下、不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。与主从
5、方式的现场总线不同,CAN Bus是一种对等式(Peer-to-Peer)的现场总线网,采用CAN Bus连接主控单元与IO单元,可以通过节点ID和ID掩码的选择,方便地实现点对点、点对多点和广播等多种传输方式;可以提高主控单元与IO单元,I/O单元之间的隔离性,便于实现模块的冗余和不停机拆装;可以实现无集中机柜的分散安装方式,系统控制功能可进一步向下分散。CAN总线通信控制器中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括零位的插入删除、数据块编码、循环冗余检验、优先级判别等。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种
6、方法的优点是可使网络内的节点个数理论上不受限制,数据块的标识码可由11位(按CAN技术规范20A)或29位(按CAN技术规范20B)二进制数组成,因此可以定义211或229个不同的数据块。这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。由于CAN总线具有较强的纠错能力,支持差分收发,因而特别适合高噪声且较远距离通讯。CAN总线具有下列主要特性:CAN总线可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,多主站依据优先机制进行总线访问。采用非破坏性总线仲裁技术,网络中的节点可以分成不同的优先级,当多个节点同时在网
7、络上传送信息时,优先级低的节点主动暂停数据发送,而优先级高的节点可不受影响继续传送数据。之后,按优先级高低,其它节点在总线空闲时依次进行被暂停的数据传送,有效地避免了总线冲突。借助接收滤波的多地址帧传送。CAN通信距离最远可达10km(速率5kBs以下) ,距离在40m以内时通信速率最高可达1Mbpss,传输介质为双绞线和光纤。CAN现场总线接口的驱动能力很强,节点数目可达ll0个。由于采用短帧结构发送数据,每一帧的有效字节数最多为8个,帧传送时间短,因此实时性高,检错效果好,每一帧信息都有CRC校验及其它检错措施,通信误码率低。远程数据请求配置灵活。 发送期间若丢失仲裁或由于出错而遭破坏的帧
8、可自动重发。暂时错误和永久性故障节点判别及故障节点自动脱离CAN总线。在网络节点的错误严重时,具有自动关闭总线接口的功能,避免影响总线上其它节点的正常操作。1、 CAN总线的基本工作原理图如下所示:图1 CAN总线的工作原理图CAN总线的工作原理如图1所示,这是一个典型的串行总线的结构形式。CAN总线以半双工的方式工作,一个节点发送消息,多个节点接收消息。但CAN总线的信息存取方式既不同于令牌方式的Arcnet,也不同于主从方式的Bit Bus,它采用一种称作广播式的存取工作方式。与其它网络不同,在CAN总线的通讯协议中,没有节点地址的概念,也没有任何与节点地址相关的消息存在。CAN总线支持的
9、是另一种基于数据的工作方式。消息可以在任何时候由任何节点发送到空闲的总线上,并被其它所有节点接收,判断后,决定是否使用这个消息。消息以消息包的形式出现,其格式如图2所示。它包括消息的标识符。这个标识符既用来表明消息的类型,也用来表明消息的优先级。由于每个节点的CAN总线接口必须接收总线上出现的所有消息,因此必然需要设置一个接收寄存器。先将消息接收,再根据接收的消息标识符决定是否需要读取消息包中的数据。同时为了避免不必要的频繁中断节点所在的主机来判断处理每一个总线上的消息,需要设置一个屏蔽寄存器来滤掉那些所在节点设备不感兴趣的消息。11Bit 消息标识符1Bit 远地传送请求4Bit 数据长度码
10、08Byte 数据图2 CAN数据格式 对于如何判断总线空闲以及如何处理多个节点设备同时发送消息的问题,CAN总线采取了一个与EtherNet不同的方法。EtherNet采用的是CSMACD协议,即检测到碰撞后,各节点均先退出发送,再经各自随机产生的时间延迟后再重新发送的办法。CAN总线则利用总线上信息比特具有的主导被动的作用属性,使优先级高的消息直接压倒优先级低的消息,从而确保相应的节点首先发出优先级高的消息。实现主导被动逻辑状态的电路很多,在低速和短距离通讯的情况下可以采电集电报开路的“线或”电路(见图3)。图3 CAN总线结构例如,若节点A、B、C同时发送消息标识符,CAN总线则要求它们
11、也同时接收总线上的实际状态。如果总线上的状态与节点发出的状态一致,说明该节点正有效地占据着总线;反之说明该节点已经失去了对总线的控制,应当立刻从发送消息的状态转回到接收消息的状态。由图3可见,节点C和B相继失去对总线的控制,而节点A则一直保持主导状态,直至最终发出整个消息包。由于系统中各种消息具有各不相同的消息标识符,是优先级越高,标识符取值越小,即二进制码中前面的“0”越多。因此多个节点同时发出消息标识符时,最终必有一个节点发出的消息自始至终地占据总线,实现其消息传送而不需重发的过程。显然正是这个节点此刻占据了总线。 由于CAN总线面向的是数据而不是节点,因此加入或撤销节点设备自然都不会影响
12、网络的工作。这样的方法十分适用于控制系统要求快速、可靠、简明的特点。2、 CAN总线接口规范的要点CAN总线共提供了四种消息包:数据消息包、RTR消息包、错误消息包和过载消息包。图2介绍的是数据消息包的帧格式,它由发送数据的节点设备产生,包括帧起始标志位、仲裁域、控制域、数据域、CRC检查域、ACK认可域和帧结束标志位。帧起始标志位以个比特的主导状态出现,这个状态将压倒总线空闲状态(被动状态),表明节点设备开始发送消息。仲裁域由消息标识符和CRC标志组成,由于CAN总线不使用标识解015。因此11位的二进制码将只产生2032个不同的标识符。在规范CAN20中,已把它扩展成29位。如图4所示,在
13、数据消息包中RTR位总是设成“0”(主导状态)。IDE作为标识符扩展标志位总是“1”。 1 2 3 4 5 6 7起始帧 仲裁+RTR控制数据CRCACK结束 Bit 数 1 11+1 6 064 16 2 7 图4 CAN总线的数据消息包RTR消息包被想要接收某种数据的节点用来请求要求总线上某个远地节点发送。在RTR消息包中,除了RTR位被设置成“l”(被动状态)外,其余部分与数据消息包并无不同。此时消息标识符表示的是将要送来的某种远地消息。具有发出这种远地消息能力的节点收到达个RTR消息包后,就应尽力相应这个远地传送要求。对RTR消息包本身来说,是没有数据域输出的。CAN总线使用Bit填充
14、规则,如果相同状态的5个Bit被连续发送就会自动地插入一个相反状态的Bit。出错消息包和过载消息包则例外,出错消息包是6个连续的“1”,使所有节点登录消息错误。CAN总线要求接收到出错消息的节点立即封锁数据传送,并强制重新发送被封锁的数据。过载消息包与出错消息包相似,但它仅发生在两帧之间,通过让各节点发送七个连续的“0”来延迟总线的动作。CAN总线没有具体地规定它的物理层实现方法,只要能够提供主导-被动状态的电路即可采用。常用的方法包括直流耦合、交流耦合、变压器耦合、单端和双端差分连接等形式。CAN总线规定传输速率为1Mbps,但这必须与所采用的传输媒体和噪声环境相适应。二、元器件介绍(一)S
15、JA1000 CAN接口电路由CAN控制器和CAN驱动器组成。CAN控制器选用Philips公司生产的SJAl000控制器,SJAl000是用于移动目标和一般工业环境中的区域网控制(CAN)的一种独立控制器。SJAl000是新型的CAN独立通讯控制器,它的引脚、电气特性和程序相关寄存器与PCA82C200完全兼容,具有比PCA82C200更先进的特性,支持CAN20A和20B两种规范,可完成物理层和数据链路层的所有功能,通讯波特率最高可达1Mbitss。另外,SJAl000可以工作在PeliCAN模式下,PeliCAN扩展了很多新功能,新扩展的功能更有利于系统的调试和检错,大大提高了系统开发的
16、效率,也改善了系统运行的性能。SJAl000的主要新功能如下:·标准结构和扩展结构报文的接收和发送;·64字节的接收FIF0:·标准和扩展帧格式都具有单双接收滤波器(含接收屏蔽和接收码寄存器);·可进行读写访问的错误计数器;·可编程的错误报警限制;·最近一次的错误代码寄存器;·每一个CAN总线错误都可以产生错误中断;·具有丢失仲裁定位功能的丢失仲裁中断:·单发方式(当发生错误或丢失仲裁时不重发):·只听方式(监听CAN总线,无应答,无错误标志):·支持热插拔(无干扰软件驱动位速率检测)
17、;·硬件禁止CLKOUT输出。SJA1000的结构如图5所示。CAN2.0B核心模块发送缓冲器接口管理逻辑验收滤波器接收FIFO 图5 SJA1000的结构其中,接口管理逻辑执行CPU的命令,控制SJA1000内部的寻址,并为CPU提供中断和状态信息。发送缓冲器可以存储由CPU写入的信息,SJA1000的发送缓冲器最多可以存储13个字节的信息。验收滤波器识别CAN网络中的帧标识,只有特定标识的信息才被通过并送入接收FIFO,接受的条件可以由CPU在对SJA1000初始化时写入相应的寄存器。SJA1000的接收FIFO为64个字节。CAN网络数据链路层的协议由核心模块CAN2.0B实现
18、。对于要发送的数据,核心模块将其封装成协议帧发送出去,对于来自CAN网络的数据帧,核心模块将其解封装并送到验收滤波器滤波。 SJA1000的引脚图如下所示:图6 SJA1000引脚图 SJA1000的引脚功能如下:(1)AD7AD0:脚2,1,2823,多路地址数据线。(2)ALE/AS:脚3,ALE输入信号(Intel模式),AS输入信号(Motorola模式)。(3)/CS:脚4。片选信号,低电平允许访问SJA1000。(4)BDE:脚5,微控制器的RD信号(Intel模式)或E使能信号(Motoro1模式)。(5)WR:脚6,微控制器的WR信号(Intel模式)或RD(/WR)信号(Mo
19、toro1a模式)。(6)CLKOUT:脚7,SJA1000产生的提供微控制器的时钟输出信号,时钟控制寄存器的时钟关闭位可禁止该引脚。 (7)VSS1:脚8,接地。(8)XTAL1,XTAL2:脚9,10,振荡器输入脚。(9)MODE:脚11,模式选择输入,1=lntel模式,0Motorola模式。(10)VDD3:脚12,输出驱动5V电压源。(11)TX0,TX1:脚13,14,从CAN输出驱动O、1到物理线路上。(12)VSS3:脚15,输出驱动器接地。(13)INT:脚16,中断输出,用于中断微控制器。(14)RST:脚17,复位输入。(15)VDD2:脚18,输入比较器的5V电压源。
20、(16)RX0,RX1:脚19,20,从物理的CAN总线输入到SJA1000的输入比较器。(17)VSS2:脚21,输入比较器的接地端。(18)VDDl:脚22,逻辑电路的5V电源。SJA1000功能框图如图7所示。图7 SJA1000的功能框图 从图7中可以看出,SJA1000型独立CAN总线控制器由以下几个部分构成:(1) 接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。(2) 发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由BSP读出。(3) 接收缓冲器(RX
21、B,RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。(4) 接收滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断该报文是否被接收。如果被接收,报文存入RXFIFO。(5) 位流处理器:它是一个控制发送缓冲器、RXFIFO(并行数据)和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。(
22、6) 位定时逻辑:它将SJA1000同步于CAN总线上的位流。(7) 错误管理逻辑:它按照CAN协议完成错误界定。下图是SJA1000与CPU的连接,其中MODE为模式选择位,MODE1是Intel模式。RX0、RX1和TX0、TXl是接收和发送驱动器,可利用控制字设置成推拉式以增强驱动能力。SJA1000内部设有地址和数据锁存器,所以只要将CPU的数据总线连接到SJAl000的数据地址总线而不必增加额外的地址和数据锁存器。(独立CAN器件SJA1000的应用) 图8 SJA1000与CPU的连接SJA1000采用地址/数据总线多路复用技术,由读信号控制。并且可以作为时钟源向外部输出时钟信号,
23、输出的时钟频率可以由用户编程确定,这样就可以为主控制器节省一个晶振。SJAl000具有两种不同的工作模式,BasicCAN工作模式和PeliCAN工作模式,模式的选择位在SJA1000内部的时钟分频寄存器中。BasicCAN模式与82C200控制器完全兼容,并且在速度和性能方面都作了改善,位速率高达1Mbps,覆盖了包括高速应用的所有频率范围。在PeliCAN模式中支持一些系统诊断、系统维护、系统优化等增强的功能,并提供了灵活有效的滤波方式。BasicCAN支持标准的CAN帧结构,PeliCAN支持CAN2.0B的扩展报文格式。复位后的缺省工作模式是BasicCAN。上述两种工作模式其内部存储
24、器的配置有所不同。在BasicCAN模式下,SJAl000的有效寻址范围为031,即为32个有效的寄存器空间,其中:控制段寄存器有10个,包括control、command等寄存器;而在PeliCAN模式下,则可寻址的有效空间为0111,其中有用的寄存器为110个,与BasicCAN相比,PeliCAN新增加了ALC、ECC、EWL、REC、TEC等CAN总线的功能寄存器。在基本型CAN方式下,SJAl000的地址区由控制区段和报文缓存区段组成。在初始化下载期间,控制段被编程以便配置通信参数(例如位定时),在CAN总线上的通信也通过此段由微控制器进行控制。初始化期间,CLKOUT信号也被编程以
25、便由微控制器确定其数值。一个被发送的报文必须被写入发送缓存器,成功接收后微控制器可由接收缓存器读出所接收报文,然后释放它,以便进一步使用。 在增强型CAN方式下,CAN控制器的内部寄存器以CPU在片存储器映象外设寄存器出现,由于CAN控制器可以运行复位两种方式出现,必须进行不同内部地址定义之间的识别。从CAN地址32开始,完整的内部RAM(80字节)被映象至CPU接口。(I)BasicCAN模式功能: 多主结构; 可连接各种类型微处理器接口; 总线访问优先权(取决于报文标识符); 2032种报文标识符; 对于高优先权报文确保等待时间; 强有力的错误处理能力; 数据长度为08个字节; 可组态的总
26、线接口; 可编程的时钟输出; 成组和广播报文功能; 无损结构的这位仲裁; 带有位填充功能的非归零编码解码; 传送速率可编程; 输出驱动器状态可编程; 24MHz时钟频率。(2)PeliCAN模式扩展功能: 可读写访问的错误计数器; 可编程的错误报警限制; 最近一次错误代码寄存器; 对每一个CAN总线错误的中断; 位仲裁丢失控制; 单次发送(失败后无重发); 支持热插拔。在PeliCAN方式下,SJAl000有一个重新设计的含很多新功能的寄存器组。PeliCAN模式的寄存器配置如下表所示:表1SJA1000寄存器列表CAN地址操作模式复位模式读写读写0模式模式模式模式1(00H)命令(00H)命
27、令2状态状态3中断中断4中断屏蔽中断屏蔽中断屏蔽中断屏蔽5(00H)6位定时0位定时0位定时07位定时1位定时1位定时18输出控制输出控制输出控制9测试测试测试测试10(00H)11仲裁丢失俘获仲裁丢失俘获12错误代码俘获错误代码俘获13报警线报警线14接收错误计数接收错误计数接收错误计数15传输错误计数传输错误计数传输错误计数1628接收信息发送信息接收代码及屏蔽0-3接收代码及屏蔽0-329接收信息计数器接收信息计数器30接收缓冲区地址接收缓冲区地址接收缓冲区地址31时钟分频器时钟分频器时钟分频器时钟分频器32111内部RAM地址09内部RAM地址079内部RAM地址079CAN网络最小节
28、点的结构如图9所示。微控制器处理来自SJA1000的数据并向网络发送信息,同时还承担SJA1000的初始化的任务。SJA1000根据控制器的命令将数据按协议封装成帧格式,收发器实现的是CAN网络的物理层,它将来自SJA1000的TTL电平转换成符合IEEE11898电气标准的差分电平在CAN总线上传送。 CAN总线收发器SJA1000微控制器图9 CAN网络最小节点结构图在本设计中,微控制器采用8032单片机,收发器采用82C250,选择SJA1000的工作模式为 BasicCAN模式。表2 SJA1000寄存器配置(复位模式)名称地址76543210模式寄存器0睡眠方式滤波方式自检方式监听方
29、式复位方式命令寄存器1自收请求清超限状态释放接收缓冲器夭折发送发送请求状态寄存器2总线状态错误状态发送状态接收状态发送缓冲器状态数据超限接收缓冲器状态接收缓冲器状态中断寄存器3总线错误中断仲裁丢失中断错误认可状态中断唤醒中断数据超限中断错误报警中断发送中断接收中断中断允许寄存器4总线错误中断允许仲裁丢失中断允许错误认可中断允许唤醒中断允许数据超限中断允许错误报警中断允许发送中断允许接收中断允许保留5总线定时器16SJM.1SJM.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0总线定时器27SAMTSEG2.2TESG2.1TESG2.0TESG1.3TESG1.2TESG1.1
30、TESG1.0输出控制寄存器8OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0测试控制寄存器9保留10仲裁丢失捕获11ALC.4ALC.3ALC.2ALC.1ALC.0出错码捕获12EOC.7EOC.6EOC.5EOC.4EOC.3EOC.2EOC.1EOC.0错误警告极限13EWL.7EWL.6EWL.5EWL.4EWL.3EWL.2EWL.1EWL.0RX出错计数14RXERR.7RXERR.6RXERR.5RXERR.4RXERR.3RXERR.2RXERR.1RXERR.0TX出错计数15TXERR.7TXERR.6TXERR.5TXERR.
31、4TXERR.3TXERR.2TXERR.1TXERR.0滤波码寄存器16/18AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.0滤波屏蔽寄存器0320/23AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0保留24/2800H00H00H00H00H00H00H00HRX报文个数29000RMC.4RMC.3RMC.2RMC.1RMC.0RX缓冲器起始地址3000RBSA.5RBSA.4RBSA.3RBSA.2RBSA.1RBSA.0时钟分配器31CAN模式CBPRSINTEN0Clock offCD.2CD.1CD.0内部RAM(FIFO)3295内部RAM(T
32、X)96108内部RAM(free)10911100H112127表3 SJA1000寄存器配置(工作模式)与表2不同之处名称地址76543210RX/TX帧信息TX帧(写)RX帧(读)16FFFFRTRRTRX0X0DLC.3DLC.3DLC.2DLC.2DLC.1DLC.1DLC.0DLC.0RX/TX报文缓冲器1728SJAl000控制器与微处理器的接口非常方便。图10是SJAl000与80C51接口的典型应用电路。用80C51的27口作为片选信号。使用CAN总线收发器PCA82C250目的是进一步提高SJAl000的总线驱动能力。图10 SJA1000的典型应用SJAl000复位,默认
33、为BasicCAN模式,或者通过时钟分频寄存器的CAN模式位来选择模式。当此位清零时,为BasicCAN模式;置位时,为Pe1iCAN模式。在BasicCAN模式下。对SJAl000进行控制以及收发数据,都是通过对SJAl000内部寄存器的读写访问来实现的。对于单片机而言,操作SJAl000就像访问外部RAM一样简单。有两种模式可以对SJAl000的内部寄存器访问,而在这两种模式下对其寄存器的访问是有区别的。这两种模式分别是复位模式和工作模式。当硬件复位,或控制器掉线,或置位复位请求位时,SJAl000进入复位模式;而当清除复位请求位时,SJAl000进入工作模式。SJAl000的寄存器分布于
34、031连续的地址空间中。这32个字节可分为控制段(10字节)、发送缓冲器段10字节、接收缓冲器段(10字节)、时钟分频器和1个无效字节。在复位模式下可写的寄存器为控制段的控制寄存器、命令寄存器、接收代码寄存器、屏蔽寄存器、总线时序0、总线时序1、输出控制寄存器,还包括接收缓冲器段和时钟分频器;而在工作模式下可写的寄存器为控制寄存器、命令寄存器、发送缓冲器段、接收缓冲器段和时钟分频器。SJA1000相对于主控制器相当于是一存储应象I/O设备,它的地址域由控制段和信息缓冲区段组成,在向下加载初始化期间,控制器可被编程以设定通信参数,如位定时,CAN总线上的通信可通过此段由CPU控制。在初始化期间,
35、始终输出(CLKOUT)端可通过CPU编程得到一个固定值。被发送的信息必须写入发送缓冲区,成功接收后,微控制器可从接收缓冲区读取信息、然后释放它以被后用。微控制器与SJA1000之间的状态、控制和命令信息的交换是在控制段进行的。SJA1000在向下加载初始化后,接收码寄存器、接收屏蔽码寄存器、总线定时器0、定时器l和输出控制寄存器中的内容不能改变,并且整个系统中的SJA1000内的总线定时器0、定时器1内容必须相同,否则通信无法进行。CAN节点是CAN网络上的数据处理单元,除了具有数据处理能力之外,还要具备与网络上其他设备通信的功能。通过对SJA1000的寄存器的操作,可以配置通信的速率方式等
36、参数。表4是SJA1000的寄存器地址和功能分配。表4 SJA1000寄存器的地址分配(BasicCAN模式)段名CAN地址寄存器控制段0控制寄存器1命令寄存器2状态寄存器3中断寄存器4验收代码寄存器5验收屏蔽寄存器6总线定时器07总线定时器18输出控制寄存器发送缓冲器1011发送ID1219数据字节18接收缓冲器2021接收ID2229数据字节1831时钟分频寄存器地址08是控制段,在对SJA1000初始化时对这个地址段内的寄存器进行配置,选择工作模式、验收滤波、总线速率、采样方式、输出模式等参数。初始化必须在复位期间进行,除控制寄存器和命令寄存器外,其他时间对该段内的其他寄存器的写操作都是
37、无效的。上电或脱离总线都会引起SJA1000各个中断的使能,包括发送中断、接收中断、错误中断、溢出中断和唤醒中断。命令寄存器可以产生发送请求,使SJA1000执行释放接收缓冲器、进入睡眠模式等操作。状态和中断寄存器中储存了控制器的状态和中断信息,在任何情况下CPU都不能对这两个寄存器进行写操作。地址1019是发送缓冲器,地址2029是接收缓冲器,前两个字节是信息的标识和长度,所发送和接收的信息的长度可以在08字节之间。节点发送信息有两种方式:中断方式和查询方式。采用中断方式发送数据时,必须在初始化时将发送中断位使能,同时将CPU的外部中断开放并置位高优先级。然后主程序等待或处理其他数据。一旦S
38、JA1000的发送缓冲器释放,相应的状态位由0变1,就会产生发送中断,中断信号作为CPU的外部中断使用,使程序转入中断服务程序执行发送。查询方式下SJA1000的发送中断信号无效,CPU时刻检测控制器的状态寄存器,相应的位置位时便认为发送缓冲器释放,执行发送程序。同样,SJA1000的接收也可以工作在查询方式和中断方式。下面根据应用需要具体介绍SJAl000的控制寄存器、命令寄存器、状态寄存器、中断寄存器。(1)控制寄存器(CR)控制寄存器位于SJAl000寄存器区的0地址,用来设置CAN总线的模式和各种中断。其各位的意义如表5所列。在硬启动或总线状态位设置为1(总线关闭)时,复位请求位被置为
39、1。在外部复位期间,微控制器不能把复位请求位置为0。如果要把复位请求位置为0,微控制器必须先检查这一位,以确定外部复位引脚不为低电平。复位请求位被设为0后,SJA1000将会等待:1个总线空闲信号(11个弱势位),如果前一次复位请求是硬件复位或CPU初始复位;等待128个总线空闲,如果前一次复位请求是CAN控制器在重新进入总线开启模式前初始化总线造成的。表5 控制寄存器各位说明(CR):CAN地址O位符号名 称值功 能CR.7保留CR.6保留CR.5保留CR.4OIE溢出中断使能1使能。如果置位数据溢出位,微控器接收溢出中断信号0禁止。微控器不从SJA1000接收溢出中断信号CR.3EIE错误
40、中断使能1使能。若出错或总线状态改变,此中断信号有效0禁止。微控器不从SJA1000接收错误中断信号CR.2TIE传输中断使能1使能。当信息被成功发送或发送缓冲器又被访问,产生中断信号0禁止。微控器不从SJA1000接收发送中断信号CR.1RIE接收中断使能1使能。信息被无错误接收时,产生此中断信号0禁止。此中断信号被禁止CR.0RR复位请求1当前。SJA1000检测到复位请求后,忽略当前发送/接收信息,进入复位模式0空缺。复位请求位接收到一个下降沿后,SJA1000回到工作模式(2)命令寄存器(CMR)命令寄存器对微控制器来说是只写存储器。在复位模式和工作模式下都可对此寄存器进行访问,但是读
41、这个地址返回值是“11111111”。表6是命令寄存器各位的说明。将睡眠模式位置为1,SJAl000进入睡眠模式,此时没有总线活动,没有中断等待。CMR.3位是用来清除由数据溢出状态位指出的数据溢出。如果致据溢出位被置位,就不会产生数据溢出中断了。在释放接收缓冲器命令的同时,可以发出清除数据溢出命令。读接收缓冲器之后,微控制器可以通过设置释放接收缓冲器为1,来释放接收队列当前信息的内存空间。表6 命令寄存器各位的功能说明(CMR):CAN地址1位符号名称值功能CMR.7保留CMR.6保留CMR.5保留CMR.4GTS睡眠1睡眠。若没有CAN中断等待和总线活动,SJA1000进入睡眠模式。0唤醒
42、。SJA1000正常工作模式CMR.3CDO清除数据溢出1清除。清除数据溢出状态位0无动作CMR.2RRB释放接收缓冲器1释放。接收缓冲器存放信息的内存空间将被释放0无动作CMR.1AT忽略发送1当前。若不是在处理过程中,等待处理的发送请求将取消0空缺。无动作CMR.0TR发送请求1当前。信息被发送0空缺。无动作 (3)状态寄存器(SR)状态寄存器对微控制器来说是只读存储器,表7是状态寄存器各位的功能说明。当传输错误计数器超过限制(255)(总线状态位置1,即总线关闭),CAN控制器就会将复位请求位置1,在错误中断允许的情况下,会产生一个错误中断。这种状态会持续到CPU清除复位请求位。对于错误
43、状态位,当至少有一个错误计数器满或超出CPU警告限制96时,错误状态位被置位。在中断使能的情况下,会产生错误中断。表7 状态寄存器各位的功能说明(SR):CAN地址2位符号名称值功能SR.7BS总线状态1总线关闭。SJA1000退出总线活动0总线开启。SJA1000加入总线活动SR.6ES出错状态1出错。至少出现一个错误计数器满或超过CPU报警限制0正常。两个错误计数器都在报警限制以下SR.5TS发送状态1发送。SJA1000在传送信息0空闲。没有要发送的信息SR.4RS接收状态1接收。SJA1000正在接收信息0空闲。没有可接收的信息SR.3TCS发送完毕状态1完毕。最后一次发送请求被处理完
44、毕0未完毕。当前发送请求未处理完毕SR.2TBS发送缓冲器状态1释放。CPU可以向发送缓冲器写信息0锁定。CPU不能访问发送缓冲器,有信息正在等待发送或正在发送SR.1DOS数据溢出状态1溢出。信息丢失,因为RXFIFO中没有足够的空间来存储0空缺。自从最后一次清除数据溢出命令执行,无数据溢出发生SR.0RBS接收缓冲器状态1满。RXFIFO中有可用信息0空。无可用信息(4)中断寄存器(IR)通过中断寄存器可识别中断源。当寄存器的1位或多位被置位时,INT低电平有效引脚被激活。寄存器被微控制器读过之后,所有会导致INT引脚上的电平变化的位被复位。中断寄存器对微控制器而言是只读存储器。中断寄存器
45、各位的功能说明如表8所列表8 中断寄存器各位的功能说明(IR):CAN地址3位符号名称值功能IR.7保留IR.6保留IR.5保留IR.4WUI唤醒中断1置位。退出睡眠模式时此位被置位0复位。微控制器的任何读访问将清除此位IR.3DOI数据溢出中断1设置。当数据溢出中断使能位被置为1时,向数据溢出状态位传送“01”,此位被置位0复位。微控制器的任何读访问清除此位R.2EI错误中断1置位。错误中断使能时,错误状态位或总线状态的变化会置位此位0复位。微控制器的任何读访问清除此位IR.1TI发送中断1置位。发送缓冲状态从0变为1(释放)和发送中断使能时,置位此位0复位。微控制器的任何读访问清除此位IR
46、.0RI接收中断1置位。当接收FIFO不空和接收中断使能时置位此位0复位。微控制器的任何读访问清除此位图11 CAN节点硬件原理图(二)CAN总线接口PCA82C250控制器与SJAl000配套的驱动器选用PCA82C250,PCA82C250具有限定的电流值以保护接收器输出级,避免阳极和阴极的短路,这个值将防止发送器输出级的毁坏。PCA82C250具有3种不同的工作模式:高速,备用,斜率控制。图12是SJA1000与CAN总线的连接,在图12中,PCA82C250是8引脚的CAN转换器,它是CAN总线的物理接口,与ISO/DISll898标准完全兼容,最多节点数可达ll0个。PCA82C25
47、0采用了差动输出和差动输入,所以其抗共模干扰能力大大增强。其斜坡控制功能也大大增强了抗无线电波频率干扰的能力。另外,它还有热保护功能、短路保护功能等,其通信速率可达1MHZ。图12 PCA82C250与SJAl000的连接图SJA1000通过光耦与82C250的连接是电流隔离的接法,这样可以防止线路间的串扰。在总线两端要接2个124的总线阻抗匹配电阻。忽略掉它们会降低总线的抗干扰能力,甚至导致无法通信。PCA82C250是CAN控制器与物理总线的接口,它是由PHILIPS公司设计生产,其通信介质是阻抗为120双绞线,信号传输方式是采用差动发送和差动接收,能以1Mbps的速率工作于恶劣的电气环境
48、下。按CAN总线物理层协议,采用双绞线布线。PCA82C250功能框图如下图所示。图13 PCA82C250功能框图82C250特性简介: 完全和“IS011898”标准兼容; 高速(最高通讯速率可达1M bps); 能抗汽车环境下的瞬间干扰; 斜率控制降低射频干扰; 不同的接收器都具有宽共模范围,有很强的抗电磁干扰(EMI)能力; 网络中的节点掉电不会影响整个网络的工作; 至少可挂接110个节点; 过热保护; 短路保护; 低功耗待机 差分发送与差分接收。CAN总线的传输距离远,通信速率高。当通信速率为lM bps时,其任意两个节点之间的最大距离为40m;当通信速率为5kbps时,其任意两个节
49、点之间的距离可达10km。82C250有8个管脚,其封装形式有DIP8和S08两种封装形式,下图为它的管脚图。 图14 82C250管脚图表9是它的管脚功能。表9 82C250管脚功能表管脚符号功能描述1TXD发送数据输出端,接控制器的串行数据输出端2GND地3Vcc电源电压:4.5V<Vcc<5.5V4RXD接收数据输出端,接控制器的串行数据接收端5Vref基准电压输出端6CANL低电平输入/输出端7CANH高电平输入/输出端8Rs斜率电阻输出端82C250的真值表如表10所列。表10 82C250真值表电源TXDCANHCANL总线状态RXD4.5V<Vcc<5.5
50、V0高电平低电平支配04.5V<Vcc<5.5V1或悬浮悬浮悬浮退让1Vcc<2V不定悬浮悬浮退让不定2V<Vcc<4.5V>0.75Vcc悬浮悬浮退让不定2<Vcc<4.5V不定悬浮 Vra>0.75Vcc悬浮 Vra>0.75Vcc退让不定在82C250中,两个信号输出端的电乎不是相异的在CANH端,它的两个状态是高电平和悬浮状态;而在CANL端,它的两个状态则分别为低电乎和悬浮状态。由于82C250采用了上述措施,由它构成的分布式测控系统,即使多个节点同时向网络发送数据,也不会发生短路现象。 在82C250组成的网络系统中,当8
51、2C250的TXD端输入为高电平,其输出端CANH和CANL均呈高阻状态,该82C250在此状态下,它不会对整个网络发生影响,我们称此节点处于退让状态;当TXD端输入为低电平时,CANH和CANL分别输出高电平和低电平,这时整个网络传输数据的性质由此节点决定,我们称此节点处于支配状态。从表10可以看出,82C250的RXD输出电平和网络中起支配节点的TXD端的电平是一致的。82C250第8脚与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式。在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式。上升和下降的斜率取决于Rs的阻。实验数据表明,15k200k为Rs较理想的取值范围;在这一种方式下,可以使用平行线或双绞线作总线。 (三)MAX2021、RS一232C标准接口RS一232C标准规定了双极性电平值数据“0”和“l”的含义由电压幅值和电压极性共同表示。在任何情况
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年福建省福鼎市高三数学下册期末考试模拟检测卷(模拟题)附答案
- 2026年湖南省耒阳市高三数学下册期末考试模拟考试卷附完整答案(必刷)
- 2026年海南省五指山市高三数学下册期末考试模拟考试卷附参考答案【综合题】
- 医院放射科防护操作规范手册
- 产品试用计划实施通知函(5篇范文)
- 催办付款单据提交延误函(3篇)
- 关于贵方延迟交货的纠正函(3篇范文)
- 40分写作规范练(七)
- 医疗卫生手术室护士手术操作及护理质量绩效衡量表
- 文艺演出活动安全防护方案
- 2025年八年级上学期地理早背晚默资料
- 云南民族大学附属高级中学2026届高三上学期联考(一)地理试卷(含解析)
- 中药材采购合同协议模板
- 企业内部控制系统模板
- 底商出租管理办法
- 水产工程技术人员岗位面试问题及答案
- 化工现场定置管理制度
- 五年级科学家长会教学课件
- 医院vi 设计合同标准文本
- 化工厂变换岗位考试题库
- 哲学类论文开题报告模板
评论
0/150
提交评论