毕业设计(论文)CAN总线接口电路硬件设计_第1页
毕业设计(论文)CAN总线接口电路硬件设计_第2页
毕业设计(论文)CAN总线接口电路硬件设计_第3页
毕业设计(论文)CAN总线接口电路硬件设计_第4页
毕业设计(论文)CAN总线接口电路硬件设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要介绍了采用philip公司生产的控制器局域网的高度集成的通信控制器sja1000和82c250作为收发器的can总线接口电路的硬件设计方法,介绍了控制器和收发器及看门狗芯片的特点、内部结构、寄存器结构及地址分配,说明一种通用型can总线的设计和开发.探讨应用中需注意的一些问题。关键词:can总线;控制器;收发器;电路设计 a design of the interface circuit of can busstudent:zhong yu-qiang teacher:liu dian-tingabstract:a method of the design of interface cir

2、cuit of can bus is introduced in this paper, in which high integration communication controller sja1000, and transceiver 82c250 are used, which are produce in philip corporation. the characteristic, the internal structure, the register structure and the address allocation of the controller and the t

3、ransceiver and the watch-dog chip are introduce. the general method of the design and the development of can bus is showed, and some problems in the application are discussed.key words: can bus ;controller ;transceiver ;circuit design目次摘要iabstractii1 绪论11.1 can总线简介11.1.1 can协议11.1.2电气参数及信号表示21.2 can

4、的主要技术特点21.3 can总线通信系统拓扑结构32 can总线接口电路设计32.1 总体方案设计32.2 各模块电路的设计42.2.1单片机最小系统42.2.2 can总线接口控制电路设计52.2.2.1sja1000简介62.2.2.2基于sja1000的控制电路设计112.2.3 can总线收发电路设计122.2.3.1can总线收发器82c250介绍122.2.3.2基于82c250收发电路设计162.2.4复位、监控电路设计162.2.4.1x5045p简介162.2.4.2基于x5045p的电路设计192.2.5电源设计202.3 接口电路总体电路原理图213 结束语23致谢24

5、参考文献25附录1: 接口电路总体电路原理图261 绪论1.1 can总线简介cancontrol(controller)areanetwork是控制(器)局域网的简称。can是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。目前can 总线规范已被国际标准化组织iso制订为国际标准iso11898,并得到了motorola,intel ,philips等大半导体器件生产厂家的支持,迅速推出各种集成有can协议的产品。目前can总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(asc)、抗锁定刹车系

6、统(abs)和抗滑系统等。benz、bmw等著名汽车上已经采用can来满足上述功能。在工业过程控制领域,can也得到了广泛的应用。1.1.1 can协议 can总线采用分层结构,规范规定了任意两个节点之间的兼容性。包括电气特件利数据解释协议。 can协议可分为:目标层、传送层、物理层。其中目标层和传送层包括了iso/osi定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;位应用层提供接口。传送层功能包括:数据帧组织:总线仲裁:检错、错误报告、错误处理。can总线以报文为单位进行信息交换,报文中含有标示符(id),它既描述了数据的含义又表明了报文的优先权。can总线上的各个协点都可主

7、动发送数据。当同时有两个或两个以上的节点发送报文时,can控制器采用id进行仲裁。id控制节点对总线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发送,总线空闲后,这些节点将自动重发报文。can支持四类信息帧类型。 (1)数据帧 can协议有两种数据帧类型标准2.0a和标准2.0b。两者本质的不同在于id的长度不同。在2.0a类型中,id的长度为l l位;在2.0b类型中id为29位。一个信息震中包括7个主要的域:帧起始域标志数据帧的开始,由一个显性位组成。仲裁域内容由标示符和远程传输请求位(rtr)组成,rtr用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。当

8、2.0a的数据帧和2.0b的数据帧必须在同一条总线上传输时,首先判断其优先权,如果id相同,则非扩展数据帧的优先权高于扩展数据帧。控制域r0、r1是保留位,作为扩展位,dlc表示一帧中数据字节的数目。数据域包含08字节的数据。校验域检验位错用的循环冗余校验域,共15位。应答域包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间将总线值为显性电平。帧结束由七位隐性电平组成。(2)远程帧 接受数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。(3)错误指示帧 由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出

9、“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。(4)超载帧 由超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送超载帧。(5)帧间空隙 位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。帧间空隙是必要的,在此期间, can不进行新的帧发送,为的是can控制器在下次信息传递前有时间进行内部处理操作。当总线空闲时can控制器方可发送数据。1.1.2电气参数及信号表示总线上的数据采用不归零编码方式(nrz),可具有两种互补的逻辑值之一:显性及隐性。can总线中各

10、节点使用相同的位速率。它的每位时间由同步段、传播段、相位缓冲段1及相位缓冲段2组成。发送器在同步段前改变输出的位数值,接受器在两个相位缓冲段间采样输入位值,而两个相位缓冲段长度可自由调节,以保证采样的可靠性。另外,can总线采用时钟同步技术来保证通讯的同步。1.2 can的主要技术特点can网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统 can只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的调度can的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1mbp

11、s(此时通信距离最长为40m)。can上的节点数主要决定于总线驱动电路,目前可达110个;报文标识符可达2032种(can2.0a),而扩展标准(can2.0b)的报文标识符几乎不受限制。1.3 can总线通信系统拓扑结构can在物理结构上属于总线式通信网络。系统的组成如下图:图1 can总线系统结构图该系统由上位监控pc机、智能节点和现场设备三部分组成。上位监控pc机主要负责对系统数据的接受与管理、控制命令的发送以及各控制单元动态参数和设备状态的实时显示;智能节点可以使现场设备方便地连接到can总线上,主要负责对现场的环境参数和设备状态进行监测,对采集来的数据进行打包处理并将处理古的数字信号

12、通过can通信控制器sja1000发送到can总线。智能节点的设计和选择,对通信信号的传输发送有很的影响,系统中的数据传送和接收,都是通过can总线接口实现。can总线接口电路的设计,对can总线很是重要。本文正是基于此,对can总线接口电路进行设计分析,给出一种设计方案。2 can总线接口电路设计2.1 总体方案设计can 总线接口电路主要包括:单片机、控制器接口、总线收发器和看门狗电路等。采用philips公司生产的sja1000控制器和与其配套的82c250can收发器。按照can总线物理层协议选择总线介质,设计布线方案,连接成can网络。双绞屏蔽线可设两套,在两套介质上同时进行信息传输

13、,接收方只用一个介质。在冗余和非冗余段的连接临界点处进行总线切换。硬件电路的设计主要是can 通信控制器与微处理器之间和can总线收发器与物理总线之间的接口电路的设计。can通信控制器是can总线接口电路的核心,主要完成can的通信协议,而can总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(rfi),实现热防护等。看门狗电路主要是实现对电路的监控和复位作用。目前广泛流行的can总线器件有两大类:一类是独立的can控制器,如82c200、sja1000及intel82526/82527等,另一类是带有在片can的微控制器,如p8xc582及16位微控制器8

14、7c196ca/cb等。本课题选取philips公司的sja1000 can控制器以及82c250总线收发器,主要是考虑到sja1000支持can 2.0a/b规约。而82c250可以支持110个can节点,并且国内市场上philips的产品型号比较多,购买比较方便。在本次设计中,接口电路简单表示如下图:图2-1 接口电路总体框图2.2 各模块电路的设计2.2.1单片机最小系统本设计中,应用到单片机为atmel公司51系列的89c51,该型号的单片机应用广泛,技术成熟,市场上价格便宜,而且在学习中所学到的多为该型号,在本次设计中是首选的芯片。89c51单片机作为系统的核心控制部分,但在本设计中

15、不是重点讲解内容,其相关技术应用和引脚特点功能等,可参照其他相关资料。设计的电路原理方框大致如下图2-2所示。设计中为避免出现时钟信号的冲突,对单片机的外接晶振引脚xtal1、xtal2不接上外围电路,而是通过控制器sja1000的时钟信号脚反馈给单片机。同时,对单片机的复位信号处理,rst引脚接上x5045p的rst脚,复位信号可由x5045p输出,在x5045p芯片看门狗外围电路的作用下,减少了以往由电阻、电容组成的简易复位电路造成的不精确、延时高等不良作用,使单片机回复到初始状态,完成复位操作。由于在该电路中要用到单片机的存储作用,存储由sja1000传输过来的处理数据。因此,脚/ea接

16、上高电平,选用片内rom。对ale脚,也即地址锁存有效信号除数端是和控制器sja1000的ale脚接通。 图2-2 单片机最小系统2.2.2 can总线接口控制电路设计sja1000 在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间的数据通信。该电路的主要功能是通过can总线接收来自上位机的数据进行分析组态然后下传给下位机的控制电路实现控制功能,当can总线接口接收到下位机的上传数据,sja1000就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一帧信息并通过can总线上传给上位机进行分析。at89c51是can总线接口电路的核心,其承担can控制器的初始化、can的

17、收发控制等任务。2.2.2.1sja1000简介philips公司的pca82c200是符合can2.0a协议的总线控制器,sja1000是它的替代产品,它是应用于汽车和一般工业环境的独立can总线控制器。具有完成can通信协议所要求的全部特性。经过简单总线连接的sja1000可完成can总线的物理和数据链路层的所有功能。其硬件与软件设计和pca82c200的基本can模式(besiccan)兼容。同时,新增加的增强can模式(pelican)还可支持can2.0b协议。sja1000的主要特性如表1所示。表1 sja1000寄存器配置(复位模式)名称地址76543210模式寄存器0-睡眠方式

18、滤波方式自检方式监听方式复位方式命令寄存器1-自收请求清超限状态释放接收缓冲器夭折发送发送请求状态寄存器2总线状态错误状态发送状态接收状态发送完成状态发送缓冲器状态数据超限接收缓冲器状态中断寄存器3总线错误中断仲裁丢失中断错误认可状态中断唤醒中断数据超限中断错误报警中断发送中断接收中断中断允许寄存器4总线错误中断允许仲裁丢失中断允许错误认可中断允许唤醒中断允许数据超限中断允许错误报警中断允许发送中断允许接收中断允许保留5总线定时器16sjm.1sjm.0brp.5brp.4brp.3brp.2brp.1brp.0总线定时器27samtseg2.2tseg2.1tseg2.0tseg1.3tse

19、g1.2tseg1.1tseg1.0输出控制寄存器8cotp1octn1ocpol1octp0octn0ocpol0ocmode1ocmode0测试寄存器9保留10仲裁丢失捕获11-alc.4alc.3alc.2alc.1alc.0出错码捕获12ecc.7ecc.6ecc.5ecc.4ecc.3ecc.2ecc.1ecc.0错误警告极限13ewl.7ewl.6ewl.5ewl.4ewl.3ewl.2ewl.1ewl.0rx出错计数14rxerr.7rxerr.6rxerr.5rxerr.4rxerr.3rxerr.2rxerr.1rxerr.0tx出错计数15txerr.7txerr.6txe

20、rr.5txerr.4txerr.3txerr.2txerr.1txerr.0滤波码寄存器131618ac.7ac.6ac.5ac.4ac.3ac.2ac.1ac.0滤波屏蔽寄存器032023am.7am.6am.5am.4am.3am.2am.1am.0保留242800h00h00h00h00h00h00h00hrx报文个数29000rmc.4rmc.3rmc.2rmc.1rmc.0rx缓冲器起始地址3000rbsa.5rbsa.4rbsa.3rbsa.2rbsa.1rbsa.0时钟分配器31can模式cbprxinten0clock offfcd.2cd.1cd.0内部ram(fifo)3

21、295内部ram(tx)96/108内部ram(free)109/11100h112/127管脚及电气特性与独立can总线控制器pca82c200兼容;软件与pca82c200兼容(缺省为基本can模式);扩展接收缓冲器(64字节fifo);支持can2.0b协议; 同时支持11位和29位标识符;位通讯速率为1mbits/s; 增强can模式(pelican);采用24mhz时钟频率;支持多种微处理器接口;可编程can输出驱动配置; 工作温度范围为-40+125。图2-3 sja1000引脚配置sja1000的功能框图如表1所示,图2-3是其引脚图。从表1可以看出,sja1000型独立can总

22、线控制器由以下几部分构成;(1)接口管理逻辑:它接收来自微处理器的命令,控制can寄存器的地址,并为微处理器提供中断和状态信息。(2)发送缓冲器:有13字节长。它位于cpu和位流处理器(bsp)之间,能存储一条将在can总线上发送的完整的报文,报文由cpu写入,由sbp读出。(3)接收缓冲器(rxb、rxfifo):它是cpu和接收滤波器之间的接口,用来存储从can总线接收并通过了滤波的报文。接收缓冲器rxb是提供给cpu可访问的13字节的窗口,这个窗口是属于接收fifo(rxfifo)的一部分,共由64字节长。有了这个fifo,可以在cpu处理一个报文的同时继续接收其他到来的报文。(4)接收

23、滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。如果被接收,报文存入rxfifo。(5)位流处理器:它是一个控制发送缓冲器、rxfifo并行数据和can总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和can总线错误处理功能。(6)位定时逻辑不:它将sja1000同步于can总线上的位流。(7)错误管理逻辑:它按照can协议完成错误界定。由于sja1000与pca82c2000兼容,因此sja1000的缺省工作方式即基本can模式与82c200相同。下面介绍sja1000工作在增强can模式(pelican)下的寄存器配置。在初始化

24、期间,芯片在复位模式(reset mode)时的寄存器配置如表1所列,在工作期间的运行模式(operating mode)下,部分寄存器的定义将有所更改,具体见表2。表2 sja1000寄存器配置(工作模式)与表1不同之外名称地址76543210rx/tx帧信息tx帧(写)rx帧(读)16ffffrtrrtrx0x0dlc.3dlc.3dlc.2dlc.2dlc.1dlc.1dlc.0dlc.0rx/tx报文缓冲器1728sja1000的新增功能如下:(1)支持can2.0b协议sja1000完全支持can2.0b协议,这意味着实现了扩展的振荡器容差和处理扩展帧报文,在基本can方式中,仅可发

25、送和接收标准帧报文(11位标识符),若检测到can总线上的扩展帧报文(29位标识符),他们将允许,并在确认报文正确后给予应答,但不会产生接收中断。标识符作为报文的名称将被用于接收器的验收滤波过程中,同时在仲裁处理期间,也用来确定总线访问的优先权。标识符二进制数值愈低,其优先权愈高。(2)扩展的接收缓冲器利用sja1000可将原有的pac82c200双接收缓冲器被接收fifo替代,并可用来存储来自can总线上被接收和滤波的报文,作为cpu能访问的一个fifo的13字节窗口,接收fifo总长度为64字节。通过fifo,cpu可以在处理一个报文的同时接收其它报文。(3)增强的错误处理能力在增强can

26、模式功能中,sja1000为增强错误处理功能增加了一些新的特殊功能寄存器,包括:仲裁丢失捕捉寄存器(alc),出错码捕捉寄存器(ecc),错误警告极限寄存器(ewlr),rx出错计数寄存器(rxerr)和tx出错计数寄存器(txerr)等。借助于这些错误寄存器可以找到丢失仲裁位的位置,分析总线错误类型和位置,定义错失仲裁位的位置,分析总线错误类型和位置,定义错误警告极限值以及记录发送和接收时出现错误的个数等。(4)增强的验收滤波功能sja1000带有验收滤波器功能,它的作用是自动检查报文中的标识符和数字节。通过设置滤波,与该总线节点不相关的一个报文或一组报文净不被sja1000所接收,这样可以

27、提高cpu的利用效率。在增强型can方式中,sja1000还增加了单滤波方式和双滤波方式,可以对标准帧和扩展帧实现更复杂的滤波功能2.2.2.2基于sja1000的控制电路设计控制器sja1000作为本接口电路中的控制部分,应用本设计中,对于sja1000和单片机的连接,引脚ad0ad7是和89c51的输出输入脚p0.0p0.7相接;sja1000的片选信号脚/cs必须由微控制器的p2.7口控制否则这个片选输入必须接到vss 也可以通过地址解码控制例如当地址/数据总线用于其他外围器件,ale对应ale,读/写输入脚/wr、/rd,/int和单片机的/int0连接,由于在该系统中要用到相同的时钟

28、频率,所以我们要时钟信号引脚clkout和单片机的xtal1脚相连,达到频率一致的目的;而在复位信号的处理,可以在看门狗外围电路的rst信号输出后再通过和非门电路的相连,很好的实现了电路的复位作用。而对于控制器的收发引脚tx0,tx1与rx0,rx1,在本系统中tx0、rx0可和收发器82c250的txd、rxd接通。同时,在和cpu接口中sja1000 支持对两个著名的微型控制器系列的直接连接80c51 、68xx 。通过sja1000 的mode 引脚可选择接口模式intel 模式 mode 高;motorola 模式 mode 低。在intel 模式和motorola 模式里地址/数据总

29、线和读/写控制信号的连接。本设计中,正是使用intel模式。对sja1000的vdd1vdd3电源输入脚,外接上驱动+5v电压;而vss1vss3输出接地。设计中,对sja1000提供16mkz的晶振。电路设计如下图2-4 sja1000控制电路2.2.3 can总线收发电路设计2.2.3.1can总线收发器82c250介绍82c250是can控制器与物理总线间的接口,可以提供对总线的差动发送和接收能力,与is011898标准完全兼容,并具有抗汽车环境下的瞬间干扰、保护总线的能力。为了提高系统的可靠性和抗干扰能力,在can控制器和can收发器之间采用光耦6n137进行隔离pca82c250提供

30、对物理总线的符合can电气协议的差动发送和接收功能,另外,它具有的电流限制电路,还提供了对总线的进一步的保护功能。通过82c250与物理图2-5 82c250引脚结构总线进行连接,可使总线支持多达110个节点的挂接。上图给出pca82c250的功能方框图。对于can控制器及带有can总线接口的器件,82c250并不是必须使用的器件,因为多数can控制器均具有配置灵活的收发接口并允许总线故障,只是驱动能力一般只允许2030个节点连接在一条总线上。而82c250支持多达110个节点,并能以1mbps的速率工作于恶劣电气环境。图2-6 pca82c250配置82c250有8个管脚,其封装形式在本设计

31、中采用dip形式,各引脚功能如表3:表3 82c250引脚功能说明管脚符号功 能 描 述1txd发送数据输入端,接控制器的串行数据输出端2gnd地3vcc电源电压:4.5v vcc 5.5v4rxd接收数据输出端,接控制器的串行数据输入端5vref基准电压输出端6canl低电平输入/输出端7canh高电平输入/输出端8rs斜率控制电阻输入端表4 82c250真值电源txdcanhcanl总线状态rxd4.5vcc5.50高电平低电平支配04.5vcc5.51或悬浮悬浮悬浮退让1vcc2v不定悬浮悬浮退让不定2vvcc0.75vcc悬浮悬浮退让不定2vvcc2.5v时,电源导通;当第脚加低电平0

32、.4v时,电源被关闭。可以用电路来控制或手动控制,若不需控制时,第脚与第脚连接。2.3 接口电路总体电路原理图见附录1在本电路原理中,控制单元以单片机at89c51为核心,选用器件sja1000作为can控制器,并选用芯片82c250和6n137、x5045p作为can控制器接口和光耦合隔离、复位电路。在实际中,应注意以下几个问题1. sja1000的中断请求信号int在中断允许且有中断发生时,由高电来此跳变到低电平,所以int和at0c51的int0直接相连。片选信号cs和单片机引脚p2.7相连,当cs接到低电平时,sja1000被选中,cpu可对sja1000进行读/写操作。为了增强can

33、总线节点的抗干扰能力。sja1000的tx1脚悬空,rx1引脚的电位必须维持在约0.5vcc上,否则,将不能形成can协议要求的电平逻辑。2. sja1000的txd和rxd并不是直接与82c250的txd和rxd相连而是通过高速光耦合6n137后与82c250相连,这样就可以很好的实现了总线上个can节点的电气隔离,不过应该特别说明一点的是光耦部分电路所采用的两个电源vcc和vdd必须完全隔离,否则采用光耦也就失去了意思。电源的完全隔离可采用小功率电源隔离模块或带多5v隔离输出的开关电源模块实现,这些部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性,保护can控制器正常工作。3.

34、由于单片机和sja1000所用的工作频率不同,给设计带来麻烦。因此,在本次设计中将sja1000的clockout的时钟信号接至at89c51的时钟电路输入端,作为at89c51的外部时钟输入,解决了时钟同步问题。4. 82c250是can总线收发器,是can控制器sja1000正常工作与can总线的接口器件,是对can总线以差分方式发送,txd和rxd引脚分别发送经过驱动后的发送和接收信号。其引脚rs用于选择82c250的工作模式(高速、斜率或等待)。rs脚接地,82c250工作于高速方式,rs脚串接一个电阻r后再接地,若82c250处于can总线的网络终端,总线接口部分必须加一个120的匹配电阻,以保护82c250免受过激的冲击忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。本设计中,82c250的canh和canl引脚与地之间并联了两个30pf的小电容可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力5. 另外在两根can总线接入端与地之间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论