CAN总线接口电路制作设计报告.doc

上传人:文****钱 文档编号:22247 上传时间:2018-04-28 格式:DOC 页数:47 大小:4.56MB
下载 相关 举报
CAN总线接口电路制作设计报告.doc_第1页
第1页 / 共47页
CAN总线接口电路制作设计报告.doc_第2页
第2页 / 共47页
CAN总线接口电路制作设计报告.doc_第3页
第3页 / 共47页
CAN总线接口电路制作设计报告.doc_第4页
第4页 / 共47页
CAN总线接口电路制作设计报告.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、X大学毕业设计1CAN总线接口电路制作设计报告摘要CAN总线是众多的现场总线标准之一,广泛应用于工业测控网络中。本文给出了基于CAN控制器82C250和SJAL000的智能节点的硬件电路及软件结构,对设计中的难点及实现过程中应注意的问题进行了比较详细地介绍。关键词CAN;SJA1000独立CAN器件;PCA82C250CAN转换器DESIGNOFCANBUSSYSTEMTERMINALCIRCUITABSTRACTCANCONTROLLERAREANETWORK,ONEOFTHEMOSTFAMOUSFIELDBUSPROTOCOLSTANDARD,WASUSEDWIDELYINMEASUREM

2、ENTANDCONTROLNETWORKININDUSTRYFIELDINTHISPAPERAHARDCIRCUITANDSOFTCONFIGURATIONOFTHEINTELLIGENTNODEBASEDONCANCONTROLLER82C250ANDSJA1000HAVEBEENPRESENTEDESPECIALLYTHECRUXINDESIGNINGANDTHEPROBLEMSSHOULDBEPAYEDATTENTIONINREALIZINGAREDISCUSSEDINDETAILSKEYWORDSCANBUS;SJAL000STANDALONECANCONTRO11ER;PCA82C2

3、50CANCONVERTER一、总体概要CAN总线CONTRO11ERAREANETWORK控制器局域网是现场总线的一种。90年代以来,以现场总线为基础的全数字式控制系统发展迅速,逐渐成为现代工业的主要控制技术。它的最大优点是可以大幅度节约连接导线,降低安装和维护费用;精度高,能远传多个过程变量。在目前的十几种现场总线中,CAN总线是一种应用范围较为广泛的现场总线。它是德国BOSCH公司在1986年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种有效支持分布式控制和实时控制的串行通讯网络。从电器性能看,CAN现场总线接口采用一对平衡差分信号线进行半双工传送。在每个通信站点上,均有

4、平衡驱动器和差分接收器。CAN现场总线接口的电气特性是驱动器无负荷时输出电压为正负5V,有负荷时输出电压为正负15V。CAN总线与其它通信网的不同之处一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下、不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特X大学毕业设计2别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。与主从方式的现场总线不同,CANBUS是一种对等式PEERTOPEER的现场总线网,采用CANBUS连接主控单元与IO单元,可以通过节点ID和ID掩码的选择,方便地实现点对点、点对多点

5、和广播等多种传输方式;可以提高主控单元与IO单元,I/O单元之间的隔离性,便于实现模块的冗余和不停机拆装;可以实现无集中机柜的分散安装方式,系统控制功能可进一步向下分散。CAN总线通信控制器中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括零位的插入删除、数据块编码、循环冗余检验、优先级判别等。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点是可使网络内的节点个数理论上不受限制,数据块的标识码可由11位按CAN技术规范20A或29位按CAN技术规范20B二进制数组成,因此可以定义211或229个不同的数据块。这种按数据

6、块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。由于CAN总线具有较强的纠错能力,支持差分收发,因而特别适合高噪声且较远距离通讯。CAN总线具有下列主要特性CAN总线可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,多主站依据优先机制进行总线访问。采用非破坏性总线仲裁技术,网络中的节点可以分成不同的优先级,当多个节点同时在网络上传送信息时,优先级低的节点主动暂停数据发送,而优先级高的节点可不受影响继续传送数据。之后,按优先级高低,其它节点在总线空闲时依次进行被暂停的数据传送,有效地避免了总线冲突。借助接收滤波的多地址帧传

7、送。CAN通信距离最远可达10KM速率5KBS以下,距离在40M以内时通信速率最高可达1MBPSS,传输介质为双绞线和光纤。CAN现场总线接口的驱动能力很强,节点数目可达LL0个。由于采用短帧结构发送数据,每一帧的有效字节数最多为8个,帧传送时间短,因此实时性高,检错效果好,每一帧信息都有CRC校验及其它检错措施,通信误码率低。远程数据请求配置灵活。发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发。暂时错误和永久性故障节点判别及故障节点自动脱离CAN总线。在网络节点的错误严重时,具有自动关闭总线接口的功能,避免影响总X大学毕业设计3线上其它节点的正常操作。1、CAN总线的基本工作原理图如下所

8、示图1CAN总线的工作原理图CAN总线的工作原理如图1所示,这是一个典型的串行总线的结构形式。CAN总线以半双工的方式工作,一个节点发送消息,多个节点接收消息。但CAN总线的信息存取方式既不同于令牌方式的ARCNET,也不同于主从方式的BITBUS,它采用一种称作广播式的存取工作方式。与其它网络不同,在CAN总线的通讯协议中,没有节点地址的概念,也没有任何与节点地址相关的消息存在。CAN总线支持的是另一种基于数据的工作方式。消息可以在任何时候由任何节点发送到空闲的总线上,并被其它所有节点接收,判断后,决定是否使用这个消息。消息以消息包的形式出现,其格式如图2所示。它包括消息的标识符。这个标识符

9、既用来表明消息的类型,也用来表明消息的优先级。由于每个节点的CAN总线接口必须接收总线上出现的所有消息,因此必然需要设置一个接收寄存器。先将消息接收,再根据接收的消息标识符决定是否需要读取消息包中的数据。同时为了避免不必要的频繁中断节点所在的主机来判断处理每一个总线上的消息,需要设置一个屏蔽寄存器来滤掉那些所在节点设备不感兴趣的消息。11BIT消息标识符1BIT远地传送请求4BIT数据长度码08BYTE数据图2CAN数据格式对于如何判断总线空闲以及如何处理多个节点设备同时发送消息的问题,CAN总线采取了一个与ETHERNET不同的方法。ETHERNET采用的是CSMACD协议,即检测到碰撞后,

10、各节点均先退出发送,再经各自随机产生的时间延迟后再重新发送的办法。CAN总线则利用总线上信息比特具有的主导被动的作用属性,使优先级高的消息直接压倒优先级X大学毕业设计4低的消息,从而确保相应的节点首先发出优先级高的消息。实现主导被动逻辑状态的电路很多,在低速和短距离通讯的情况下可以采电集电报开路的“线或”电路见图3。图3CAN总线结构例如,若节点A、B、C同时发送消息标识符,CAN总线则要求它们也同时接收总线上的实际状态。如果总线上的状态与节点发出的状态一致,说明该节点正有效地占据着总线;反之说明该节点已经失去了对总线的控制,应当立刻从发送消息的状态转回到接收消息的状态。由图3可见,节点C和B

11、相继失去对总线的控制,而节点A则一直保持主导状态,直至最终发出整个消息包。由于系统中各种消息具有各不相同的消息标识符,是优先级越高,标识符取值越小,即二进制码中前面的“0”越多。因此多个节点同时发出消息标识符时,最终必有一个节点发出的消息自始至终地占据总线,实现其消息传送而不需重发的过程。显然正是这个节点此刻占据了总线。由于CAN总线面向的是数据而不是节点,因此加入或撤销节点设备自然都不会影响网络的工作。这样的方法十分适用于控制系统要求快速、可靠、简明的特点。2、CAN总线接口规范的要点CAN总线共提供了四种消息包数据消息包、RTR消息包、错误消息包和过载消息包。图2介绍的是数据消息包的帧格式

12、,它由发送数据的节点设备产生,包括帧起始标志位、仲裁域、控制域、数据域、CRC检查域、ACK认可域和帧结束标志位。帧起始标志位以个比特的主导状态出现,这个状态将压倒总线空闲状态被动状态,表明节点设备开始发送消息。仲裁域由消息标识符和CRC标志组成,由于CAN总线不使用标识解015。因此11位的二进制码将只产生2032个不同的标识符。在规范CAN20中,已把它扩展成29位。如图4所示,在数据消息包中X大学毕业设计5RTR位总是设成“0”主导状态。IDE作为标识符扩展标志位总是“1”。1234567起始帧仲裁RTR控制数据CRCACK结束BIT数111160641627图4CAN总线的数据消息包R

13、TR消息包被想要接收某种数据的节点用来请求要求总线上某个远地节点发送。在RTR消息包中,除了RTR位被设置成“L”被动状态外,其余部分与数据消息包并无不同。此时消息标识符表示的是将要送来的某种远地消息。具有发出这种远地消息能力的节点收到达个RTR消息包后,就应尽力相应这个远地传送要求。对RTR消息包本身来说,是没有数据域输出的。CAN总线使用BIT填充规则,如果相同状态的5个BIT被连续发送就会自动地插入一个相反状态的BIT。出错消息包和过载消息包则例外,出错消息包是6个连续的“1”,使所有节点登录消息错误。CAN总线要求接收到出错消息的节点立即封锁数据传送,并强制重新发送被封锁的数据。过载消

14、息包与出错消息包相似,但它仅发生在两帧之间,通过让各节点发送七个连续的“0”来延迟总线的动作。CAN总线没有具体地规定它的物理层实现方法,只要能够提供主导被动状态的电路即可采用。常用的方法包括直流耦合、交流耦合、变压器耦合、单端和双端差分连接等形式。CAN总线规定传输速率为1MBPS,但这必须与所采用的传输媒体和噪声环境相适应。二、元器件介绍(一)SJA1000CAN接口电路由CAN控制器和CAN驱动器组成。CAN控制器选用PHILIPS公司生产的SJAL000控制器,SJAL000是用于移动目标和一般工业环境中的区域网控制CAN的一种独立控制器。SJAL000是新型的CAN独立通讯控制器,它

15、的引脚、电气特性和程序相关寄存器与PCA82C200完全兼容,具有比PCA82C200更先进的特性,支持CAN20A和20B两种规范,可完成物理层和数据链路层的所有功能,通讯波特率最高可达1MBITSS。另外,SJAL000可以工作在PELICAN模式下,PELICAN扩展了很多新功能,新扩展的功能更有利于系统的调试和检错,大大提高了系统开发的效率,也改善了系统运行的性能。X大学毕业设计6SJAL000的主要新功能如下标准结构和扩展结构报文的接收和发送;64字节的接收FIF0标准和扩展帧格式都具有单双接收滤波器含接收屏蔽和接收码寄存器;可进行读写访问的错误计数器;可编程的错误报警限制;最近一次

16、的错误代码寄存器;每一个CAN总线错误都可以产生错误中断;具有丢失仲裁定位功能的丢失仲裁中断单发方式当发生错误或丢失仲裁时不重发只听方式监听CAN总线,无应答,无错误标志支持热插拔无干扰软件驱动位速率检测;硬件禁止CLKOUT输出。SJA1000的结构如图5所示。图5SJA1000的结构其中,接口管理逻辑执行CPU的命令,控制SJA1000内部的寻址,并为CPU提供中断和状态信息。发送缓冲器可以存储由CPU写入的信息,SJA1000的发送缓冲器最多可以存储13个字节的信息。验收滤波器识别CAN网络中的帧标识,只有特定标识的信息才被通过并送入接收FIFO,接受的条件可以由CPU在对SJA1000

17、初始化时写入相应的寄存器。SJA1000的接收FIFO为64个字节。CAN网络数据链路层的协议由核心模块CAN20B实现。对于要发送的数据,核心模块将其封装成协议帧发送出去,对于来自CAN网络的数据帧,核心模块将其解封装并送到验收滤波器滤波。SJA1000的引脚图如下所示接口管理逻辑发送缓冲器接收FIFO验收滤波器CAN20B核心模块X大学毕业设计7ALE/AS3CS4RD/E5WR6MODE11XTAL210CLKOUT7XTAL19VDD122VDD218VDD312VSS18VSS315VSS221RX019AD023AD124AD225AD326AD427AD61AD72AD528TX

18、114TX013RX120RST17INT16SJA1000/RESET图6SJA1000引脚图SJA1000的引脚功能如下1AD7AD0脚2,1,2823,多路地址数据线。2ALE/AS脚3,ALE输入信号INTEL模式,AS输入信号MOTOROLA模式。3/CS脚4。片选信号,低电平允许访问SJA1000。4BDE脚5,微控制器的RD信号INTEL模式或E使能信号MOTORO1模式。5WR脚6,微控制器的WR信号(INTEL模式或RD/WR信号MOTORO1A模式。6CLKOUT脚7,SJA1000产生的提供微控制器的时钟输出信号,时钟控制寄存器的时钟关闭位可禁止该引脚。7VSS1脚8,接

19、地。8XTAL1,XTAL2脚9,10,振荡器输入脚。9MODE脚11,模式选择输入,1LNTEL模式,0MOTOROLA模式。10VDD3脚12,输出驱动5V电压源。11TX0,TX1脚13,14,从CAN输出驱动O、1到物理线路上。12VSS3脚15,输出驱动器接地。13INT脚16,中断输出,用于中断微控制器。X大学毕业设计8(14)RST脚17,复位输入。(15)VDD2脚18,输入比较器的5V电压源。16RX0,RX1脚19,20,从物理的CAN总线输入到SJA1000的输入比较器。17VSS2脚21,输入比较器的接地端。18VDDL脚22,逻辑电路的5V电源。SJA1000功能框图

20、如图7所示。图7SJA1000的功能框图从图7中可以看出,SJA1000型独立CAN总线控制器由以下几个部分构成1接口管理逻辑它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。2发送缓冲器有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由BSP读出。3接收缓冲器(RXB,RXFIFO)它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIF

21、O,可以在CPU处理一个报文的同时继续接收其他到来的报文。X大学毕业设计94接收滤波器它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断该报文是否被接收。如果被接收,报文存入RXFIFO。5位流处理器它是一个控制发送缓冲器、RXFIFO(并行数据)和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。6位定时逻辑它将SJA1000同步于CAN总线上的位流。7错误管理逻辑它按照CAN协议完成错误界定。下图是SJA1000与CPU的连接,其中MODE为模式选择位,MODE1是INTEL模式。RX0、RX1和TX0、TXL是接收和发送驱动

22、器,可利用控制字设置成推拉式以增强驱动能力。SJA1000内部设有地址和数据锁存器,所以只要将CPU的数据总线连接到SJAL000的数据地址总线而不必增加额外的地址和数据锁存器。独立CAN器件SJA1000的应用图8SJA1000与CPU的连接SJA1000采用地址/数据总线多路复用技术,由读信号控制。并且可以作为时钟源向外部输出时钟信号,输出的时钟频率可以由用户编程确定,这样就可以为主控制器节省一个晶振。SJAL000具有两种不同的工作模式,BASICCAN工作模式和PELICAN工作模式,模式的选择位在SJA1000内部的时钟分频寄存器中。BASICCAN模式与82C200控制器完全兼容,

23、并且在速度和性能方面都作了改善,位速率高达1MBPS,覆盖了包括高速应用的所有频率范围。在PELICAN模式中支持一些系统诊断、系统维护、系统优化等增强的功能,并提供了灵活有效的滤波方式。BASICCAN支持标准的CAN帧结构,PELICAN支X大学毕业设计10持CAN20B的扩展报文格式。复位后的缺省工作模式是BASICCAN。上述两种工作模式其内部存储器的配置有所不同。在BASICCAN模式下,SJAL000的有效寻址范围为031,即为32个有效的寄存器空间,其中控制段寄存器有10个,包括CONTROL、COMMAND等寄存器;而在PELICAN模式下,则可寻址的有效空间为0111,其中有

24、用的寄存器为110个,与BASICCAN相比,PELICAN新增加了ALC、ECC、EWL、REC、TEC等CAN总线的功能寄存器。在基本型CAN方式下,SJAL000的地址区由控制区段和报文缓存区段组成。在初始化下载期间,控制段被编程以便配置通信参数例如位定时,在CAN总线上的通信也通过此段由微控制器进行控制。初始化期间,CLKOUT信号也被编程以便由微控制器确定其数值。一个被发送的报文必须被写入发送缓存器,成功接收后微控制器可由接收缓存器读出所接收报文,然后释放它,以便进一步使用。在增强型CAN方式下,CAN控制器的内部寄存器以CPU在片存储器映象外设寄存器出现,由于CAN控制器可以运行复

25、位两种方式出现,必须进行不同内部地址定义之间的识别。从CAN地址32开始,完整的内部RAM80字节被映象至CPU接口。IBASICCAN模式功能多主结构;可连接各种类型微处理器接口;总线访问优先权取决于报文标识符;2032种报文标识符;对于高优先权报文确保等待时间;强有力的错误处理能力;数据长度为08个字节;可组态的总线接口;可编程的时钟输出;成组和广播报文功能;无损结构的这位仲裁;带有位填充功能的非归零编码解码;传送速率可编程;输出驱动器状态可编程;24MHZ时钟频率。(2)PELICAN模式扩展功能可读写访问的错误计数器;可编程的错误报警限制;最近一次错误代码寄存器;对每一个CAN总线错误

26、的中断;X大学毕业设计11位仲裁丢失控制;单次发送失败后无重发;支持热插拔。在PELICAN方式下,SJAL000有一个重新设计的含很多新功能的寄存器组。PELICAN模式的寄存器配置如下表所示表1SJA1000寄存器列表CAN地址操作模式复位模式读写读写0模式模式模式模式1(00H)命令(00H)命令2状态状态3中断中断4中断屏蔽中断屏蔽中断屏蔽中断屏蔽5(00H)6位定时0位定时0位定时07位定时1位定时1位定时18输出控制输出控制输出控制9测试测试测试测试10(00H)11仲裁丢失俘获仲裁丢失俘获12错误代码俘获错误代码俘获13报警线报警线14接收错误计数接收错误计数接收错误计数15传输

27、错误计数传输错误计数传输错误计数1628接收信息发送信息接收代码及屏蔽03接收代码及屏蔽0329接收信息计数器接收信息计数器30接收缓冲区地址接收缓冲区地址接收缓冲区地址31时钟分频器时钟分频器时钟分频器时钟分频器32111内部RAM地址09内部RAM地址079内部RAM地址079X大学毕业设计12CAN网络最小节点的结构如图9所示。微控制器处理来自SJA1000的数据并向网络发送信息,同时还承担SJA1000的初始化的任务。SJA1000根据控制器的命令将数据按协议封装成帧格式,收发器实现的是CAN网络的物理层,它将来自SJA1000的TTL电平转换成符合IEEE11898电气标准的差分电平

28、在CAN总线上传送。CAN总线图9CAN网络最小节点结构图在本设计中,微控制器采用8032单片机,收发器采用82C250,选择SJA1000的工作模式为BASICCAN模式。表2SJA1000寄存器配置(复位模式)名称地址76543210模式寄存器0睡眠方式滤波方式自检方式监听方式复位方式命令寄存器1自收请求清超限状态释放接收缓冲器夭折发送发送请求状态寄存器2总线状态错误状态发送状态接收状态发送缓冲器状态数据超限接收缓冲器状态接收缓冲器状态中断寄存器3总线错误中断仲裁丢失中断错误认可状态中断唤醒中断数据超限中断错误报警中断发送中断接收中断中断允许寄存器4总线错误中断允许仲裁丢失中断允许错误认可

29、中断允许唤醒中断允许数据超限中断允许错误报警中断允许发送中断允许接收中断允许保留5总线定时器16SJM1SJM0BRP5BRP4BRP3BRP2BRP1BRP0总线定时器27SAMTSEG22TESG21TESG20TESG13TESG12TESG11TESG10微控制器SJA1000收发器X大学毕业设计13输出控制寄存器8OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0测试控制寄存器9保留10仲裁丢失捕获11ALC4ALC3ALC2ALC1ALC0出错码捕获12EOC7EOC6EOC5EOC4EOC3EOC2EOC1EOC0错误警告极限13EWL7

30、EWL6EWL5EWL4EWL3EWL2EWL1EWL0RX出错计数14RXERR7RXERR6RXERR5RXERR4RXERR3RXERR2RXERR1RXERR0TX出错计数15TXERR7TXERR6TXERR5TXERR4TXERR3TXERR2TXERR1TXERR0滤波码寄存器16/18AC7AC6AC5AC4AC3AC2AC1AC0滤波屏蔽寄存器0320/23AM7AM6AM5AM4AM3AM2AM1AM0保留24/2800H00H00H00H00H00H00H00HRX报文个数29000RMC4RMC3RMC2RMC1RMC0RX缓冲器起始地址3000RBSA5RBSA4RB

31、SA3RBSA2RBSA1RBSA0时钟分配器31CAN模式CBPRSINTEN0CLOCKOFFCD2CD1CD0内部RAM(FIFO)3295内部RAM(TX)96108内部RAM(FREE)10911100H112127X大学毕业设计14表3SJA1000寄存器配置(工作模式)与表2不同之处名称地址76543210RX/TX帧信息TX帧(写)RX帧(读)16FFFFRTRRTRX0X0DLC3DLC3DLC2DLC2DLC1DLC1DLC0DLC0RX/TX报文缓冲器1728SJAL000控制器与微处理器的接口非常方便。图10是SJAL000与80C51接口的典型应用电路。用80C51的

32、27口作为片选信号。使用CAN总线收发器PCA82C250目的是进一步提高SJAL000的总线驱动能力。图10SJA1000的典型应用SJAL000复位,默认为BASICCAN模式,或者通过时钟分频寄存器的CAN模式位来选择模式。当此位清零时,为BASICCAN模式;置位时,为PE1ICAN模式。在BASICCAN模式下。对SJAL000进行控制以及收发数据,都是通过对SJAL000内部寄存器的读写访问来实现的。对于单片机而言,操作SJAL000就像访问外部RAM一样简单。有两种模式可以对SJAL000的内部寄存器访问,而在这两种模式下对其寄存器的访问是有区别的。这两种模式分别是复位模式和工作

33、模式。当硬件复位,或控制器掉线,或置位复位请求位时,SJAL000进入复位模式;而当清除复位请求位时,SJAL000进入工作模式。SJAL000的寄存器分布于031连续X大学毕业设计15的地址空间中。这32个字节可分为控制段10字节、发送缓冲器段10字节、接收缓冲器段10字节、时钟分频器和1个无效字节。在复位模式下可写的寄存器为控制段的控制寄存器、命令寄存器、接收代码寄存器、屏蔽寄存器、总线时序0、总线时序1、输出控制寄存器,还包括接收缓冲器段和时钟分频器;而在工作模式下可写的寄存器为控制寄存器、命令寄存器、发送缓冲器段、接收缓冲器段和时钟分频器。SJA1000相对于主控制器相当于是一存储应象

34、I/O设备,它的地址域由控制段和信息缓冲区段组成,在向下加载初始化期间,控制器可被编程以设定通信参数,如位定时,CAN总线上的通信可通过此段由CPU控制。在初始化期间,始终输出CLKOUT端可通过CPU编程得到一个固定值。被发送的信息必须写入发送缓冲区,成功接收后,微控制器可从接收缓冲区读取信息、然后释放它以被后用。微控制器与SJA1000之间的状态、控制和命令信息的交换是在控制段进行的。SJA1000在向下加载初始化后,接收码寄存器、接收屏蔽码寄存器、总线定时器0、定时器L和输出控制寄存器中的内容不能改变,并且整个系统中的SJA1000内的总线定时器0、定时器1内容必须相同,否则通信无法进行

35、。CAN节点是CAN网络上的数据处理单元,除了具有数据处理能力之外,还要具备与网络上其他设备通信的功能。通过对SJA1000的寄存器的操作,可以配置通信的速率方式等参数。表4是SJA1000的寄存器地址和功能分配。表4SJA1000寄存器的地址分配(BASICCAN模式)段名CAN地址寄存器控制段0控制寄存器1命令寄存器2状态寄存器3中断寄存器4验收代码寄存器5验收屏蔽寄存器6总线定时器07总线定时器18输出控制寄存器发送缓冲器1011发送ID1219数据字节18接收缓冲器2021接收ID2229数据字节1831时钟分频寄存器地址08是控制段,在对SJA1000初始化时对这个地址段内的寄存器进

36、行配置,选择工作模式、验收滤波、总线速率、采样方式、输出模X大学毕业设计16式等参数。初始化必须在复位期间进行,除控制寄存器和命令寄存器外,其他时间对该段内的其他寄存器的写操作都是无效的。上电或脱离总线都会引起SJA1000各个中断的使能,包括发送中断、接收中断、错误中断、溢出中断和唤醒中断。命令寄存器可以产生发送请求,使SJA1000执行释放接收缓冲器、进入睡眠模式等操作。状态和中断寄存器中储存了控制器的状态和中断信息,在任何情况下CPU都不能对这两个寄存器进行写操作。地址1019是发送缓冲器,地址2029是接收缓冲器,前两个字节是信息的标识和长度,所发送和接收的信息的长度可以在08字节之间

37、。节点发送信息有两种方式中断方式和查询方式。采用中断方式发送数据时,必须在初始化时将发送中断位使能,同时将CPU的外部中断开放并置位高优先级。然后主程序等待或处理其他数据。一旦SJA1000的发送缓冲器释放,相应的状态位由0变1,就会产生发送中断,中断信号作为CPU的外部中断使用,使程序转入中断服务程序执行发送。查询方式下SJA1000的发送中断信号无效,CPU时刻检测控制器的状态寄存器,相应的位置位时便认为发送缓冲器释放,执行发送程序。同样,SJA1000的接收也可以工作在查询方式和中断方式。下面根据应用需要具体介绍SJAL000的控制寄存器、命令寄存器、状态寄存器、中断寄存器。1控制寄存器

38、CR控制寄存器位于SJAL000寄存器区的0地址,用来设置CAN总线的模式和各种中断。其各位的意义如表5所列。在硬启动或总线状态位设置为1(总线关闭)时,复位请求位被置为1。在外部复位期间,微控制器不能把复位请求位置为0。如果要把复位请求位置为0,微控制器必须先检查这一位,以确定外部复位引脚不为低电平。复位请求位被设为0后,SJA1000将会等待1个总线空闲信号11个弱势位,如果前一次复位请求是硬件复位或CPU初始复位;等待128个总线空闲,如果前一次复位请求是CAN控制器在重新进入总线开启模式前初始化总线造成的。表5控制寄存器各位说明CRCAN地址O位符号名称值功能CR7保留CR6保留CR5

39、保留CR4OIE溢出中断使能1使能。如果置位数据溢出位,微控器接收溢出中断信号X大学毕业设计170禁止。微控器不从SJA1000接收溢出中断信号CR3EIE错误中断使能1使能。若出错或总线状态改变,此中断信号有效0禁止。微控器不从SJA1000接收错误中断信号CR2TIE传输中断使能1使能。当信息被成功发送或发送缓冲器又被访问,产生中断信号0禁止。微控器不从SJA1000接收发送中断信号CR1RIE接收中断使能1使能。信息被无错误接收时,产生此中断信号0禁止。此中断信号被禁止CR0RR复位请求1当前。SJA1000检测到复位请求后,忽略当前发送/接收信息,进入复位模式0空缺。复位请求位接收到一

40、个下降沿后,SJA1000回到工作模式2命令寄存器CMR命令寄存器对微控制器来说是只写存储器。在复位模式和工作模式下都可对此寄存器进行访问,但是读这个地址返回值是“11111111”。表6是命令寄存器各位的说明。将睡眠模式位置为1,SJAL000进入睡眠模式,此时没有总线活动,没有中断等待。CMR3位是用来清除由数据溢出状态位指出的数据溢出。如果致据溢出位被置位,就不会产生数据溢出中断了。在释放接收缓冲器命令的同时,可以发出清除数据溢出命令。读接收缓冲器之后,微控制器可以通过设置释放接收缓冲器为1,来释放接收队列当前信息的内存空间。表6命令寄存器各位的功能说明CMRCAN地址1位符号名称值功能

41、CMR7保留CMR6保留CMR5保留CMR4GTS睡眠1睡眠。若没有CAN中断等待和总线活动,SJA1000进入睡眠模式。0唤醒。SJA1000正常工作模式X大学毕业设计18CMR3CDO清除数据溢出1清除。清除数据溢出状态位0无动作CMR2RRB释放接收缓冲器1释放。接收缓冲器存放信息的内存空间将被释放0无动作CMR1AT忽略发送1当前。若不是在处理过程中,等待处理的发送请求将取消0空缺。无动作CMR0TR发送请求1当前。信息被发送0空缺。无动作(3)状态寄存器SR状态寄存器对微控制器来说是只读存储器,表7是状态寄存器各位的功能说明。当传输错误计数器超过限制255总线状态位置1,即总线关闭,

42、CAN控制器就会将复位请求位置1,在错误中断允许的情况下,会产生一个错误中断。这种状态会持续到CPU清除复位请求位。对于错误状态位,当至少有一个错误计数器满或超出CPU警告限制96时,错误状态位被置位。在中断使能的情况下,会产生错误中断。表7状态寄存器各位的功能说明SRCAN地址2位符号名称值功能SR7BS总线状态1总线关闭。SJA1000退出总线活动0总线开启。SJA1000加入总线活动SR6ES出错状态1出错。至少出现一个错误计数器满或超过CPU报警限制0正常。两个错误计数器都在报警限制以下SR5TS发送状态1发送。SJA1000在传送信息0空闲。没有要发送的信息SR4RS接收状态1接收。

43、SJA1000正在接收信息0空闲。没有可接收的信息SR3TCS发送完毕状态1完毕。最后一次发送请求被处理完毕0未完毕。当前发送请求未处理完毕SR2TBS发送缓冲器状态1释放。CPU可以向发送缓冲器写信息0锁定。CPU不能访问发送缓冲器,有信息正在等待发送或正在发送X大学毕业设计19SR1DOS数据溢出状态1溢出。信息丢失,因为RXFIFO中没有足够的空间来存储0空缺。自从最后一次清除数据溢出命令执行,无数据溢出发生SR0RBS接收缓冲器状态1满。RXFIFO中有可用信息0空。无可用信息4中断寄存器IR通过中断寄存器可识别中断源。当寄存器的1位或多位被置位时,INT低电平有效引脚被激活。寄存器被

44、微控制器读过之后,所有会导致INT引脚上的电平变化的位被复位。中断寄存器对微控制器而言是只读存储器。中断寄存器各位的功能说明如表8所列表8中断寄存器各位的功能说明IRCAN地址3位符号名称值功能IR7保留IR6保留IR5保留IR4WUI唤醒中断1置位。退出睡眠模式时此位被置位0复位。微控制器的任何读访问将清除此位IR3DOI数据溢出中断1设置。当数据溢出中断使能位被置为1时,向数据溢出状态位传送“01”,此位被置位0复位。微控制器的任何读访问清除此位R2EI错误中断1置位。错误中断使能时,错误状态位或总线状态的变化会置位此位0复位。微控制器的任何读访问清除此位IR1TI发送中断1置位。发送缓冲

45、状态从0变为1(释放)和发送中断使能时,置位此位0复位。微控制器的任何读访问清除此位IR0RI接收中断1置位。当接收FIFO不空和接收中断使能时置位此位0复位。微控制器的任何读访问清除此位X大学毕业设计20图11CAN节点硬件原理图(二)CAN总线接口PCA82C250控制器与SJAL000配套的驱动器选用PCA82C250,PCA82C250具有限定的电流值以保护接收器输出级,避免阳极和阴极的短路,这个值将防止发送器输出级的毁坏。PCA82C250具有3种不同的工作模式高速,备用,斜率控制。图12是SJA1000与CAN总线的连接,在图12中,PCA82C250是8引脚的CAN转换器,它是C

46、AN总线的物理接口,与ISO/DISLL898标准完全兼容,最多节点数可达LL0个。PCA82C250采用了差动输出和差动输入,所以其抗共模干扰能力大大增强。其斜坡控制功能也大大增强了抗无线电波频率干扰的能力。另外,它还有热保护功能、短路保护功能等,其通信速率可达1MHZ。X大学毕业设计21图12PCA82C250与SJAL000的连接图SJA1000通过光耦与82C250的连接是电流隔离的接法,这样可以防止线路间的串扰。在总线两端要接2个124的总线阻抗匹配电阻。忽略掉它们会降低总线的抗干扰能力,甚至导致无法通信。PCA82C250是CAN控制器与物理总线的接口,它是由PHILIPS公司设计

47、生产,其通信介质是阻抗为120双绞线,信号传输方式是采用差动发送和差动接收,能以1MBPS的速率工作于恶劣的电气环境下。按CAN总线物理层协议,采用双绞线布线。PCA82C250功能框图如下图所示。图13PCA82C250功能框图X大学毕业设计2282C250特性简介完全和“IS011898”标准兼容;高速最高通讯速率可达1MBPS;能抗汽车环境下的瞬间干扰;斜率控制降低射频干扰;不同的接收器都具有宽共模范围,有很强的抗电磁干扰(EMI)能力;网络中的节点掉电不会影响整个网络的工作;至少可挂接110个节点;过热保护;短路保护;低功耗待机差分发送与差分接收。CAN总线的传输距离远,通信速率高。当

48、通信速率为LMBPS时,其任意两个节点之间的最大距离为40M;当通信速率为5KBPS时,其任意两个节点之间的距离可达10KM。82C250有8个管脚,其封装形式有DIP8和S08两种封装形式,下图为它的管脚图。RXD4TXD1GND2VCC3VR5CL6CH7RS8图1482C250管脚图表9是它的管脚功能。表982C250管脚功能表管脚符号功能描述1TXD发送数据输出端,接控制器的串行数据输出端2GND地3VCC电源电压45V075VCC悬浮悬浮退让不定2075VCC悬浮VRA075VCC退让不定在82C250中,两个信号输出端的电乎不是相异的在CANH端,它的两个状态是高电平和悬浮状态;而

49、在CANL端,它的两个状态则分别为低电乎和悬浮状态。由于82C250采用了上述措施,由它构成的分布式测控系统,即使多个节点同时向网络发送数据,也不会发生短路现象。在82C250组成的网络系统中,当82C250的TXD端输入为高电平,其输出端CANH和CANL均呈高阻状态,该82C250在此状态下,它不会对整个网络发生影响,我们称此节点处于退让状态;当TXD端输入为低电平时,CANH和CANL分别输出高电平和低电平,这时整个网络传输数据的性质由此节点决定,我们称此节点处于支配状态。从表10可以看出,82C250的RXD输出电平和网络中起支配节点的TXD端的电平是一致的。82C250第8脚与地之间的电阻RS称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式。在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式。上升和下降的斜率取决于RS的阻。实验数据表明,15K200K为RS较理想的取值范围;在这一种方式下,可以使用平行线或双绞线作总线。三MAX2021、RS一232C标准接口RS一232C标准规定了双极性电平值

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。