3225.基于CAN总线的单片机监控系统.doc

上传人:文库蛋蛋多 文档编号:4150912 上传时间:2023-04-07 格式:DOC 页数:27 大小:646.50KB
返回 下载 相关 举报
3225.基于CAN总线的单片机监控系统.doc_第1页
第1页 / 共27页
3225.基于CAN总线的单片机监控系统.doc_第2页
第2页 / 共27页
3225.基于CAN总线的单片机监控系统.doc_第3页
第3页 / 共27页
3225.基于CAN总线的单片机监控系统.doc_第4页
第4页 / 共27页
3225.基于CAN总线的单片机监控系统.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《3225.基于CAN总线的单片机监控系统.doc》由会员分享,可在线阅读,更多相关《3225.基于CAN总线的单片机监控系统.doc(27页珍藏版)》请在三一办公上搜索。

1、基于CAN总线的单片机监控系统目录1 设计说明引言2 CAN总线特点及协议介绍2.1 CAN总线的特点 2.2 CAN总线的分层结构 2.3 报文传送及帧结构 2.3.1 帧格式 2.3.2 帧类型 2.4 CAN总线通信原理 3 CAN总线单片机监控系统硬件设计 3.1.1 SJA1000简介3.1.2 SJA在CAN总线系统节点的应用3. 2CAN总线硬件接口电路设计3.1.2 设计注意事项 3.1.3 PAC82C250简介 3.2 CAN通信电路设计 3.2.1 CAN总线接口电路3.2.2设计注意事项3.3 C8051F310简介3.4 PAC82C250简介4 CAN总线监控系统软

2、件设计 5 CAN总线的单片机监控系统程序设计6 CAN总线的单片机监控系统原理图设计7 总结设计说明1、 引言现场总线(Fieldbus)是用于过程自动化、制造自动化、楼宇自动化等领域的现场智能设备互连通讯网络。它作为工厂数字通信网路的基础,沟通了生产过程现场及控制设备之间及其与更高控制管理层次之间的联系。它不仅是一个基层网络,而且还是一种开放式、新型全分布控制系统。这是一项以智能传感、控制、计算机、数字通讯等技术为主要内容的综合技术。本课题在深入研究CAN现场总线协议后,力求能设计出符合CAN总线协议的现场智能节点模块,能够接收和处理现场信号并能将处理好的信号发送给现场控制器和现场执行器完

3、成转换任务。本课题的最终目的是达到对现场总线控制系统的掌握和应用,并且掌握用电子硬件开发的思路和方法,培养和提高个人的独立科研及设计能力。CAN-bus(Controller Area Network)即控制器局域网是国际上应用最广泛的现场总线之一。最初CAN-bus被设计作为汽车环境中的微控制器通讯工具,用于在车载各电子控制装置ECU之间交换信息,从而形成汽车电子控制网络。如今,CAN-bus作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到各个自动化控制系统中。而且CAN-bus总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离等方面较RS-485总

4、线有着明显的优势。因而用CAN总线取代RS-485总线将是大势所趋。CAN总线(Control Area Network,控制局域网络)最初是由德国Bosch公司为汽车内部的监控系统而设计的,世界上一些著名的汽车制造厂商,如BENZ , BMW , PORSCHE , ROLLS-ROYCE等都以采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。CAN是一种有效支持分布式控制和实时控制的总线式串行通信网络,具有物理层,数据链路层和应用层三层协议。CAN总线专用接口芯片中以固件形式集成了CAN协议的物理层和数据链路层功能:可完成对通信数据的成帧处理,包括:位填充、数据块编码、循

5、环冗余校验、优先级判别等多项工作。CAN总线各节点之间依据优先权进行总线访问,以广播的形式进行通信。CAN总线产品由于结构简单、应用灵活方便、可靠性强、通信距离相对较远、价格低廉等优点,越来越受到工业界青睐。据1992年成立的国际CAN用户和制造商非营利组织CiA(CAN in Automation)统计,在1998年销售了9700万个节点。其中80%安装于欧洲。CAN节点的80%应用于车辆,其余应用于嵌入式网络和工业控制系统,如工厂控制系统、机器人控制系统、监测系统、机床控制系统等。在欧洲高能物理项目CERN中也采用了CAN总线。由于CAN总线本身的特点,其应用范围已不再局限于汽车行业,而向

6、机械工业、数控机床及传感器等领域发展,因此对其通信格式的标准化提出了要求。1991年9月Philips Semiconductors制订并发布了CAN技术规范(Version2.0)。该技术规范包括了A和B两部分。2.0A给出了CAN报文标准格式,而2.0B给出了标准的和扩展的两种格式。此后,1993年11月ISO正式颁布了道路交通运输上数据信息交换一高速通信控制器局域网(CAN)国际标准ISO11898,为控制器局域网的标准化、规范化铺平了道路。2、 CAN总线特点及协议介绍2.1 CAN总线的特点CAN总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接

7、收站根据报文中反映数据性质的标识符来过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化数据安全,可满足控制系统及其它较高数据要求的系统需求。CAN具有以下主要技术特性: (1)CAN遵从ISO模型,采用了其中的物理层、数据链路层与应用层。采用双绞线,通信速率最高可达到1 Mbps40 m,直接传输距离最远可达10 kin5 kbps。同一段总线内最多可挂接110个设备。 (2)CAN的信号传输采用短帧结构,每一帧有效字节数为8个。因而传输时间短,受干扰的概率低。当节发生严重错误时,CAN可自动关闭该节点,同时切断与总线的联系,以使总线上其它节点不受

8、影响,因此CAN总线具有很强的抗干扰能力。 (3)CAN可支持多主工作方式,网络上任一节点在任何时候均可主动向其它节点发送信息,同时也支持点点、一点对多点和全局广播方式来接收发送数据。处于优先级低的节点会主动停止发送,以此来避免总线冲突。 CAN属于总线式串行通信网络,由于其采用了许多新技术及其独特的设计,与一般的通信总线相比,C总线的数据通信具有突出的可靠性、实时性和灵活性,因而一些世界著名的汽车厂商如BENZ,BMW,ROLLS-ROYCE等都采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。其特点可概括如下:l CAN为多主工作方式,也就是说网络上的任何一节点均可在任意

9、时刻主动地向网络上其他节点发送信息,而不分主从,通信方式比较灵活,而不用站点地址等节点信息。l CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。l CAN总线采用非破坏性总线仲裁技术。当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁的时间。l CAN总线只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。l CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1 Mbps(此时通信距离最长为40m)。l

10、 CAN上的节点主要取决于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。l CAN总线采用短帧结构,传输时间短,受干扰概率小,具有极好的检错效果。l CAN的每帧信息都有CRC检验及其他检错措施,保证了数据出错率极低。l CAN 的通信介质可为双绞线、同轴电缆或光纤,选择灵活。2.2 CAN总线的分层结构CAN的遵从OSI模型,按照OSI基准模型,CAN结构划分为两层:数据链路层和物理层,其中数据链路层包括逻辑链路层LLC和媒体访问控制层MAC。如图2-1所示:图2-1 CAN结构图LLC子层的主要功能是:为数

11、据传送和远程数据请求提供服务,确认由LLC子层接收的报文已被接收,并为恢复管理和通知超载提供信息。MAC子层的功能主要是传送规则,亦即控制帧的结构、执 行仲裁、错误检测、出错标定和故障界定。物理层的功能是有关全部电气特性在不同节点间的实际传送。CAN技术规范2.0B定义了数据链路中的MAC子层和LLC子层的一部分,并描述与CAN有关的外层。物理层定义了信号怎样进行发送,因而,涉及位定时、位编码元和同步的描述。在这部分技术规范中,未定义物理层中的驱动器/接收器特性,以便允许根据具体应用,对发送媒体和信号电平进行优化,使信号传输更加方便。MAC子层子层是CAN协议的核心,它描述由LLC子层接收到的

12、报文和对LLC子层发送的认可报文。MAC子层可响应报文帧、仲裁、应答、错误检测标定。MAC子层有称为故障界定的一个管理实时监控,它具有识别永久故障或短暂扰动的自检机制。LLC子层的主要功能是报文滤波、超载通知和恢复管理。2.3 报文传送及帧结构2.3.1 帧格式规范中有两种不同的帧格式,不同之处在于每帧的标识符的长度不同。标准帧的标识符长度为位而扩展帧的长度则为29位。2.3.2 帧类型CAN总线的数据传输由以下4个不同的帧类型所表示和控制:数据帧:数据帧将数据从发送器传送到接收器。远程帧:总线单元发出远程帧,请求发送具有相同标识符的数据帧。错误帧:任何节点检测到总线错误就发出错误帧。超载帧:

13、超载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。数据帧和远程帧可以使用标准帧及扩展帧两种格式,它们用一个帧空间与前面的帧分开1、 数据帧 数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。数据帧的结构如图2-2所示:图2-2 数据帧1) 帧起始(SOF)标志数据帧和远程帧的起始,它仅由一个显性位构成。只有在总线处于空闲状态时才允许站开始发送。所有站都必须同步于首先开始发送的那个站的帧起始前沿。 2) 仲裁场由标识符ID和远程发送请求位(RTR)组成。对于CAN2.0B,标准格式和扩展格式的仲裁场格式不同。在标准格式中,仲裁场由11位标识符

14、和远程发送请求位RTR组成,标识符为ID.28ID.18,如图2-3所示:图2-3 仲裁场而在扩展格式中,仲裁场由29位标识符、远程请求SRR位、标识位(IDE)和远程发送请求位(RTR)组成,标识符位为ID.28ID.0,如图2-4所示:图2-4 仲裁场3) 控制场由6位组成。其结构如图2-5所示:图2-5 控制场IDE位及保留位r0;扩展格式里的控制场包括数据长度代码和两个保留位r1和r0。保留位必须发送显性位。数据长度码DLC指出数据场的字节数目。数据长度码为4位,在控制场中被发送。数据字节的允许使用数目为08,不通用其他数值。4) 数据场由数据帧中被发送的数据组成,它可包括08个字节,

15、每个字节8位。首先发送的是最效位。2、 远程帧远程帧由6个不同的位场组成:帧起始、仲裁场、控制场CRC场、应答场和帧结束。与数据帧相反,远程帧的RTR位是隐性位。远程帧不存在数据场。DLC的数据值是没有意义的,它可以是0-8中的任何数值,这一数值为对应数据帧的DLC,如图2-6所示:图2-6 远程帧3、 出错帧 出错帧由两个不同的场组成,如图2-7所示:图2-7 出错帧第一个场由来自各站的错误标志叠加得到。第二个场是出错界定符。为了能正确地终止错误帧,一种“错误认可”的节点要求总线至少有长度为3个位时间的总线空闲(如果“错误认可”的接收器有本地错误的话)。因此,总线的载荷不应为100%。有两种

16、形式的错误标志,一种是活动错误标志,另一种是认可错误标志。活动错误标志由6个连续的“显性”位组成,认可错误标志由6个连续的“隐性”的位组成,除非被其他节点的“显性”位重写。4、 超载帧超载帧包括两个位场:过载标志和过载界定符。如图2-8所示:图2-8 超载帧三种超载条件都会导致超载标志传送:1、接收器的内部条件(此时接收器对于下一数据帧或远程帧需要有一延时)。2、间歇场期间检测到显性位。3、如果CAN节点在错误界定符或超载界定符的第8位(最后一位)采样到一个显性位,节点会发送一载帧(不是错误帧)。错误计数器不会增加。2.4 CAN总线通信原理通过对上述的介绍,下面可以对CAN总线的组织和通信过

17、程作一简单归纳:CAN控制器只能在总线空闲状态期间启动发送过程,总线上的所有的控制器同步于帧起始的前沿,这个过程由硬同步来完成。若有两个或更多的CAN控制器同时开始发送,总线访问冲突时通过仲裁场发送期间位仲裁处理方法予以解决。仲裁期间,每个进行发送的CAN控制器都将发送的位电平与监控总线电平进行比较,任何发送一个隐性位而监视到一个显性位电平的CAN控制器立即变成总线上较高优先权报文的接收器,而不破坏总线上的任何信息。每段报文包括一个唯一的标识符和在报文中含描述数据类型的RTR位。标识符和RTR位最先发送。标识符和RTR位对应二进制数值最低的报文具有最高的优先权。由于数据帧的RTR位为显性电平,

18、因此数据帧比远程帧具有更高的优先权。以上介绍的CAN总线的一些概念,说明了CAN的工作原理和为什么能形成高效率和高可靠性现场总线网络的原因。推出CAN总线标准的同时己经为其发展提供了强有力的技术和物质支持。有关厂家推出的CAN控制器芯片和微处理器(如Philips的PCX82C250及其升级产品)可完成物理层和数据链路层的全部功能,因此以上操作对CAN的设计者一来说是透明的,设计者主要考虑应用层的问题,只要通过相对简单的设计和编程就可能开发出适用的CAN总线系统。3、 CAN总线单片机监控系统硬件设计3.11 SJA1000简介目前市场上比较流行的CAN总线器件有两大类:一是独立的CAN总线通

19、信控制器,如SJA1000。二是集成了CAN总线通信控制器的微处理器,如P87C591等。本课题选取了PHILIPS公司的SJA1000CAN总线通信控制器和PCA82C250总线收发器,主要是考虑到SJA1000支持CAN 2.0规范,而且可支持多达110个节点,且这两种器件价格适宜。本设计所采用的Philips公司的独立CAN控制器SJA1000主要用于移动目标和一般工业环境中的区域网络控制,其内部结构如图3-1所示: 图3-1 SJA1000内部结构图1. 接口管理逻辑(IML)解释来自CPU的命令,控制CAN寄存器的寻址,向主控制器(CPU)提供中断信息和状态信息。 2. 接收缓冲器(

20、RXB、RXFIFO)是接收滤波器和CPU之间的接口,用来存储从CAN总线上接收并被确认的信息。 3. 发送缓冲器(TXB)是CPU和位流处理器BSP之间的接口,能够存储发送到CAN网络上的完整信息,缓冲器长13个字节,由CPU写入BSP读出。 4. 验收滤波器(AFC)把它的内容和接收到的标识码相比较,以决定是否接收这条报文,在验收测试通过后,如果接收则这条完整的报文就被保存在RXFIFO中。 5. 位流处理器(BSP)是一个在发送缓冲器、RXFIFO和CAN总线之间控制数据流的队列(序列)发生器,它还执行总线上的错误检测、仲裁、填充和错误处理。 6. 位时序逻辑(BTL)监视串行的CAN总

21、线和位时序,它是在一条报文开头,总线传输出现隐性到显性时同步于CAN总线上的位流(硬同步),并且在其接收一条报文的传输过程中再同步(软同步)。 7. 错误管理逻辑(EML)负责限制传输层模块的错误。它接收来自位流处理器(BSP)的出错报告,然后将有关错误统计通知位流处理器(BSP)和接口管理逻辑(IML)。SJA1000全面支持CAN2.0A和CAN2.0B协议,SJA1000的主要功能还包括:1、展的接收缓冲器64字节(FIFO)。 2、11位和29位标识码。 3、的位速率最高可达1Mbps。 4、不同的微处理器接口。 图3-2 SJA1000管脚图SJA1000的芯片引脚如图3-2所示,

22、微处理器以访问外部存储器的方式来访问SJA1000。设计中,SJA1000的地址/数据总线AD0AD7分别连接到C8051F310的P2口,CS连接到C8051F310的P3.3,微处理器以访问外部存储器的方式来访问SJA1000,可对SJA1000执行相应的读/写操作,SJA1000的RD、WR、ALE分别与C8051F310的P3.2,P3.1,P3.4引脚相连,INT接C8051F310的P1.6引脚,RST接C8051F310的P1.7引脚。要使SJA1000CAN控制器正常工作,最主要的是要对SAJ1000的工作模式及其各寄存器要进行正确的初始化。要对寄存器作出正确的初始化,首先要了

23、解各寄存器的功能及结构。下面对SJA1000CAN控制器的各寄存器作详细的说明。SJA1000有两种工作模式:BasicCAN模式(基本模式)和PeliCAN模式(扩展模式)。在PeliCAN模式下主要对下面一些寄存器操作:模式寄存器、命令寄存器、状态寄存器、中断寄存器、验收代码寄存器、验收屏蔽寄存器、总线定时寄存器0、总线定时寄存器1、输出控制寄存器、发送缓冲器、接收缓冲器、时钟分频器。1、模式寄存器(MOD)的内容是用来改变CAN控制器的行为的,这些位可以被微控器设置或复位,微控制器可以对控制寄存器进行读/写操作,保留位读值为逻辑 0。2、命令寄存器(CMR)是命令位初始化 CAN 控制器

24、传输层的一个动作,这个寄存器是只写的,所有位的读出值都是逻辑 0,因处理需要,两条命令之间至少有一个内部时钟周期,内部时钟周期的频率是外部振荡器的一半。3、状态寄存器(SR)的内容反映了SJA1000的状态,状态寄存器对微控制器来说是只读存储器。4、发送缓冲器被分为描述符区和数据区,描述符区的第一个字节是帧信息字节(帧信息),它说明了帧格式(标准帧格式SFF或扩展帧格式EFF)、远程或数据帧和数据长度。SFF有两个字节的识别码,EFF 有四个字节的识别码,数据区最多长8个数据字节,发送缓冲器长13个字节。在CAN地址的16-28 。 发送缓冲器的结构图如表3-1:表3-1 发送缓冲器结构数据区

25、的信息字节长度由数据长度代码编制,在远程帧发送开始时由于 RTR位被置位(远程)数据长度代码是不被考虑的,这使接收/发送的数据字节数目为0,如果有两个CAN控制器使用同一个识别码同时启动远程帧传送,数据长度代码必须正确说明以避免总线错误。数据字节长度范围是0-8编码形式如下:数据字节数=8DLC.3+4DLC.2+2DLC.1+DLC.0标准帧格式(SFF)的识别码有11位(ID.28-ID.18),ID.18是最高位,在总线仲裁过程中最先发送到总线上,别码就象信息的名字一样,使用在验收滤波器中,而且在仲裁过程中决定了总线访问的优先权,识别码的二进值越低优先权越高。5、接收缓冲器是RXFIFO

26、的可访问部分,和发送缓冲器结构一样。位于CAN 地址的16和28,每条信息都分为描述符和数据区,接受缓冲器结构图如表3-1。 RXFIFO共有64个信息字节的空间,一次可以存储多少条信息取决于数据的长度,如果RXFIFO中没有足够的空间来存储新的信息,CAN控制器会产生数据溢出条件,此时信息有效且接受检测为肯定发生数据溢出情况时,已部分写入RXFIFO的信息将被删除,这种情况可以通过状态寄存器和数据超限中断(中断允许)反应到CPU。6、接收过滤器由接收代码寄存器(ACR)和接受屏蔽寄存器(AMR)组成,在接受过滤器的帮助下,只接收识别码和接受过滤器中预设值相等时,CAN控制器能够允许RXFIF

27、O。本课题采用的是单滤波模式。7、总线定时寄存器0(BTR0)定义了波特率预设值(BRP)和同步跳转宽度(SJW)的值,复位模式有效时这个寄存器是可以被访问(读/写)。在工作模式中只能读。 总线定时寄存器0的位功能说明:CAN地址是6,BRP.0BRP.5为波特率预设值位;CAN的系统时钟tSCL的周期是可编程的,而且决定了各自的位时序,CAN系统时钟周期由如下公式计算:tSCL=2tCLK*(32*BRP.5+16*BRP.4+8*BRP.3+4*BRP.2+2*BRP.1+BRP.0+1)这里 tCLK =XTAL 的频率周期=1/fXTAL,本课题中设置是tSCL=12tCLK。SJW.

28、0、SJW.1为同步跳转宽度位,为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号边沿重新同步,同步跳转宽度定义了每一位周期可以被重新同步缩短或延长的时钟周期的最大数目:tSJW=tSCL(2SJW.1+SJW.0+1)本课题中设置的是tSJW = 3tSCL8、总线定时寄存器1(BTR1)定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目,在复位模式中,这个寄存器可以被读/写访问, 在工作模式中只能读。 SAM为采样位;SAM=1,三倍,总线采样三次;建议在低/中速总线(A级和B级)上使用,这对过滤总线上的毛刺波是有益的;SAM=0,单倍,总

29、线采样一次,建议在高速总线上(C级)上使用。TSEGl.0TSEG1.3与TSEG2.2TSEG2.0分别为时间段1(TSEG1)和时间段2(TSEG2)的位;TSEG1和TSEG2决定了每一位的时钟数目和采样点的位置。每一位的时钟数目:tTSEG1 =tSCL(8TSEG1.3 + 4TSEG1.2 + 2TSEG1.1 + TSEG1.0 + 1)本课题设置的是tTSEG1 = 5tSCL。采样点的位置:tTSEG2 =tscl (4TSEG2.2 + 2TSEG2.1 + TSEG2.0 + 1)本课题中设置的是tTSEG2 =3tSCL。9、输出控制寄存器(OCR)实现了由软件控制不同

30、输出驱动配置的建立,在复位模式中此寄存器可被读/写访问,在PeliCAN模式的工作模式中,此寄存器只读。发送的输出阶段可以有不同的模式,OCMODE1与OCMODE0是输出模式控制的设置位,表3-2列出了输出控制寄存器的设置。表3-2 输出控制寄存器的设置本课题设置的是正常输出模式,在正常输出模式中位序列(TXD)通过TX0和TX1送出,输出驱动引脚TX0和TX1的电平取决于被OCTPX,OCTNX(悬空,上拉,下拉,推挽)编程的驱动器的特性和被OCPOLX编程的输出端极性。10、时钟分频寄存器(CDR)控制着CLKOUT的频率以及屏蔽CLKOUT引脚;而且它还控制着TX1上的专用接收中断脉冲

31、,接收比较通道和BasicCAN模式的选择,硬件复位后寄存器的默认状态是Motorola模式(00000101,12分频)和Intel模式(00000000,2分频)。软件复位(复位请求/复位模式)时,此寄存器不受影响。 课题中CAN 控制器工作于PeliCAN模式,只有接收引脚TX0被激活,禁能SJA1000的外部CLKOUT引脚。3.1.2 SJA1000在CAN总线系统节点的应用 2006-05-07 15:50:07作者:北京理工大学 岑雪松 朱 丹来源:互联网 摘要:介绍CAN总线控制器SJA1000;给出其在CAN总线系统节点中的应用方法、节点电路原理图及初始化程序;针对用户SJA

32、1000容易出现的问题进行了解说。 关键词:CAN总线 SJA1000 节点 单片机CAN总线是德国Bosch公司20世纪80年代初,为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发一种串行数据通信协议。1993年11月,ISO正式颁布了道路交通运载工具,进行数据信息交换用的高速通信控制局部网(CAN)的国际标准(ISO11898)。PHILIPS、Intel、MOTOROLA等公司出品了很多支持CAN协议的集成芯片,如82526、SJA1000、68HC05X4/X16/X32和具有片内CAN的电磁兼容微控制器P8XCE598、16位微控制器87C196CA/CB等。下面介绍PHIL

33、IPS半导体公司推出的CAN总线控制器SJA1000,并给出其应用实例。1 CAN总线控制器SJA1000芯片介绍SJA1000是一种独立的CAN总线控制器。PHILIPS半导体公司将它作为PCA82C200 CAN控制器(Basic CAN)的替代产品。SJA1000增加了一种新的工作模式(Peli CAN),这种模式支持具有很多新特性的CAN 2.0B协议。1.1 SJA1000引脚介绍图1是SJA1000引脚图。SJA1000具有28个引脚,下面对部分引脚进行介绍。MODE:模式选择输入,1(高电平)=Intel模式;0(低电平)=Motorola模式。TX0、TX1:从CAN输出驱动器

34、0,1输出到物理总线上。RX0、RX1:从物理CAN总线输入到SJA1000的输入比较器。INT:中断输出,用于中断微控制器。INT在内部中断寄存器各位都置位时,低电平有效。INT是开漏输出。CLKOUT:SJA1000产生的提供给微控制器的时钟输出信号,时钟信号来源于内部振荡器且通过编程驱动,时钟控制寄存器的时钟关闭位可禁止该引脚。SJA1000的其他引脚分别为:AD0AD7,数据/地址复用总线;ALE/AS,Intel模式/Motorola模式的地址锁存信号;(RD)/E、WR,读写控制信号;CS,片选信号输入,低电平有效;XTAL1,输入到振荡器放大电路,外部振荡信号由此输入;XTAL2

35、,振荡器放大电路的输出,使用外部振荡信号时左开路输出;VDD1、VDD2、VDD3,5V电压端;VSS1、VSS2、VSS3,与上述电压端相对的接地端。SJA1000有两种封装形式,分别是塑质双列直插封装和塑质小型线外封装。1.2 SJA1000芯片功能介绍SJA1000与它的前一款-PCA82C200独立控制器是兼容的。SJA1000具有很多新的功能,修改了两种模式:Basic CAN模式、PCA82C200兼容模式;增加了Peli CAN模式,此模式支持CAN 2.0B协议规定的所有功能(29字节的识别码)。SJA1000的主要新功能:*标准结构和扩展结构信息的接收和发送;*具有64字节长

36、度的接收队列;*在标准和扩展格式中,都有单/双接收过滤器(含屏蔽和代码寄存器);*读/写访问的错误计数器,可编程的错误限制报警,最近一次的误码寄存器;*每一个CAN总线错误的错误中断;*由功能位定义的仲裁丢失中断;*一次性发送(当错误或仲裁丢失时不重发);*只听模式(CAN总线监听,无应答,无错误标志);*支持热插拔(无干扰软件驱动位速检测);*硬件禁止CLKOUT输出。下面只介绍Basic CAN模式,对于Peli CAN模式请查看参考文献1。SJA1000复位,默认为Basic CAN械,或者通过时钟分频寄存器的CAN模式位来选择模式。此位清零时,为Basic CAN模式;置位时,为Pel

37、i CAN模式。在Basic CAN模式下,对SJA1000进行控制以及收发数据,都是通过对SJA1000内部寄存器的读/写访问来实现的。对于单片机而言,操作SJA1000就像访问外部RAM一样简单。有两种模式可以对SJA1000的内部寄存器访问,而在这两种模式下对其寄存器的访问是有区别的。这两种模式分别是复位模式和工作模式。当硬件复位,或控制器掉线,或置位复位请求位时,SJA1000进入复位模式;而当清除复位请求位时,SJA1000进入工作模式。SJA1000的寄存器分布于031连续的地址空间中。这32个字节可分为控制段(10字节)、发送缓冲器段(10字节)、接收缓冲器段(10字节)、时钟分

38、频器和1个无效字节。在复位模式下可写的寄存器为控制段的控制寄存器、命令寄存器、接收代码寄存器、屏蔽寄存器、总线时序0、总线时序1、输出控制寄存器,还包括接收缓冲器和时钟分频器;而在工作模式下可写的寄存器为控制寄存器、命令寄存器、发送缓冲器段、接收缓冲器段和时钟分频器。下面根据应用需要具体介绍SJA1000的控制寄存器、命令寄存器、状态寄存器、中断寄存器。(1)控制寄存器(CR)控制寄存器位于SJA1000寄存器区的0地址,用来设置CAN总线的模式和各种中断。其各位的意义如表1所列。表1 控制寄存器各位说明(CR):CAN地址0位符号名称值功 能CR7-保留CR6-保留CR5-保留CR4OIE溢

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

40、回到工作模式在硬启动或总线状态位设置为1(总线关闭)时,复位请求位被置为1.在外部复位期间,微控制器不能把复位请求位置为0。如果要把复位请求位置为0,微控制器必须先检查这一位,以确定外部复位引脚不为低电平。复位请求位被设为0后,SJA1000将会等待:1.1个总线空闲信号(11个弱势位),如果前一次复位请求是硬件复位或CPU初始复位;2.等待128个总线空闲,如果前一次复位请求是CAN控制器在重新进入总线开启模式前初始化总线造成的。(2)命令寄存器(CMR)命令寄存器对微控制来说是只写存储器。在复位模式和工作模式下都可对此寄存器进行访问,但是读这个地址返回值是“11111111”。表2是命令寄

41、存器各位的说明。将睡眠模式位置为1,SJA1000进入睡眠模式,此时没有总线活动,没有中断等待。CMR.3位是用来清除由数据溢出状态位指出的数据溢出。如果数据溢出位被置位,就不会产生数据溢出中断了。在释放接收缓冲器命令的同时,可以发出清除数据溢出命令。读接收缓冲器之后,微控制器可以通过设置释放接收缓冲器为1,来释放接收队列当前信息的内存空间。(3)状态寄存器(SR)状态寄存器对微控制器来说是只读存储器,表3是状态寄存器各位的功能说明。当传输错误计数器超过限制(255)(总线状态位置1,即总线关闭),CAN控制器就会将复位请求位置1,在错误中断允许的情况下,会产生一个错误中断。这种状态会持续到C

42、PU清除复位请求位。对于错误状态位,当至少有一个错误计数器满或超出CPU警告限制(96)时,错误状态位被置位。在中断使能的情况下,会产生错误中断。表2 命令寄存器各位的功能说明(CMR):CAN地址1位符号名称值功 能CMR.7-保留CMR.6-保留CMR.5-保留CMR.4GTS睡眠1睡眠。若没有CAN中断等待和总线活动,SJA1000进入睡眠模式0唤醒。清除数据溢出状态位CMR.3CDO清除数据溢出1清除。清除数据溢出状态位0无动作CMR.2RRB释放接收缓冲器1释放。接收缓冲器存放信息的内存空间将被释放0无动作CMR.1AT忽略发送1当前。若不是在处理过程中,等待处理的发送请求将取消0空

43、缺。无动作CMR.0TR发送请求1当有。信息被发送0空缺。无动作表3 状态寄存器各位的功能说明(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完毕。最近一次发送请求被成功处理0未完毕。当前发送请求未处理完毕SR.2TBS发

44、送缓冲器状态1释放。CPU可以向发送缓冲器写信息0锁定。CPU不能访问发送缓冲器,有信息正在等待发送或正在发送SR.1DOS数据溢出状态1溢出。信息丢失,因为RXFFIFO中没有足够的空间来存储0空缺。自从最后一次清除数据溢出命令执行,无数据溢出发生SR.0RBS接收缓冲器状态1满。RXFIFO中有可用信息0空。无可用信息(4)中断寄存器(IR)通过中断寄存器可识别中断源。当寄存器的1位或多位被置位时,INT(低电平有效)引脚被激活。寄存器被微控制器读过之后,所有会导致INT引脚上的电平变化的位被复位。中断寄存器对微控制而言是只读存储器。中断寄存器各位的功能说明如表4所列。表4 中断寄存器各位

45、的功能说明(IR):CAN地址3位符号名称值功 能IR.7-保留IR.6-保留IR.5-保留IR.4WUI唤醒中断1置位。退出睡眠模式时此位被置位0复位。微控制器的任何读访问将清除此位IR.3DOI数据溢出中断1设置。当数据溢出中断使能位被置为1时,向数据溢出状态位传送“0-1”,此位被置位0复位。微控制器的任何读访问清除此位IR.2EI错误中断1置位。错误中断使能时,错误状态位或总线状态位的变化会置位此位0复位。微控制器的任何读访问清除此位IR.1TI发送中断1置位。发送缓冲器状态从0变为1(释放)和发送中断使能时,置位此位0复位。微控制器的任何读访问清除此位IR.0RI接收中断1置位。当接

46、收FIFO不空和接收中断使能时置位此位0复位。微控制器的任何读访问清除此位2 SJA1000在节点中的应用实例该节点的微控制器选用了8位单片机AT89C51,SJA1000作为CAN总线控制器,并且使用了CAN接口芯片82C250。此节点可直接运用到CAN总线网络系统中,或者对此节点电路稍加变动来满足设计的要求。下面从硬件电路和软件设计两部分来介绍。2.1 节点硬件电路设计图2是节点的电路原理图。注意SJA1000复位端的连接,AT89C51是高电平复位,而SJA1000是低电平复位,因此复位信号要通过一个反相器与SJA1000的复位端相连。另外SJA1000的11脚MODE接高电平,选择Intel二分频模式。SJA1000的16脚是中断信号输出端,在中断允许情况下,有中断发生时,16脚出现由高电平到低电平的跳变,因此16脚可以直接与AT89C51的外部中断输入脚相连接。该设计中之所以选择82C250芯片,是因为其具有高速性(最高可达1 Mbps),具有抗瞬间干扰保护总线的能力

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号