Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226241
  • 博文数量: 181
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 422
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-09 15:34
个人简介

你好 世界

文章分类

全部博文(181)

文章存档

2016年(181)

我的朋友

分类: 嵌入式

2016-06-05 21:52:38

CAN总线简介
    CAN[Control(Controller) Area Network]是控制(器)局域网的简称。CAN是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。目前CAN 总线规范已被国际标准化组织ISO制订为国际标准ISO11898,并得到了Motorola,Intel ,Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品。目前CAN总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹车系统(ABS)和抗滑系统等。BENZ、BMW等著名汽车上已经采用CAN来满足上述功能。在工业过程控制领域,CAN也得到了广泛的应用。

1.1.1 CAN协议 CAN总线采用分层结构,规范规定了任意两个节点之间的兼容性。包括电气特件利数据解释协议。
    CAN协议可分为:目标层、传送层、物理层。其中目标层和传送层包括了ISO/OSI定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;位应用层提供接口。传送层功能包括:数据帧组织:总线仲裁:检错、错误报告、错误处理。
    CAN总线以报文为单位进行信息交换,报文中含有标示符(ID),它既描述了数据的含义又表明了报文的优先权。CAN总线上的各个协点都可主动发送数据。当同时有两个或两个以上的节点发送报文时,CAN控制器采用ID进行仲裁。ID控制节点对总线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发送,总线空闲后,这些节点将自动重发报文。
CAN支持四类信息帧类型。
    (1)数据帧 CAN协议有两种数据帧类型标准2.0A和标准2.0B。两者本质的不同在于ID的长度不同。在2.0A类型中,ID的长度为l l位;在2.0B类型中ID为29位。一个信息震中包括7个主要的域: 帧起始域——标志数据帧的开始,由一个显性位组成。仲裁域——内容由标示符和远程传输请求位(RTR)组成,RTR用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。当2.0A的数据帧和2.0B的数据帧必须在同一条总线上传输时,首先判断其优先权,如果ID相同,则非扩展数据帧的优先权高于扩展数据帧。控制域——r0、r1是保留位,作为扩展位,DLC表示一帧中数据字节的数目。 数据域——包含0~8字节的数据。校验域——检验位错用的循环冗余校验域,共15位。应答域——包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间将总线值为显性电平。 帧结束——由七位隐性电平组成。

    (2)远程帧接受数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。

    (3)错误指示帧由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。

    (4)超载帧由超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送超载帧。

    (5)帧间空隙位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。帧间空隙是必要的,在此期间, CAN不进行新的帧发送,为的是CAN控制器在下次信息传递前有时间进行内部处理操作。当总线空闲时CAN控制器方可发送数据。


1.1.2电气参数及信号表示
    总线上的数据采用不归零编码方式(NRZ),可具有两种互补的逻辑值之一:显性及隐性。CAN总线中各节点使用相同的位速率。它的每位时间由同步段、传播段、相位缓冲段1及相位缓冲段2组成。发送器在同步段前改变输出的位数值,接受器在两个相位缓冲段间采样输入位值,而两个相位缓冲段长度可自由调节,以保证采样的可靠性。另外,CAN总线采用时钟同步技术来保证通讯的同步。


1.2 CAN的主要技术特点
    CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统,CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的"调度" CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。 CAN上的节点数主要决定于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。


1.3 CAN总线通信系统拓扑结构
CAN在物理结构上属于总线式通信网络。系统的组成如下图:

CAN总线(一)

                        图1 CAN总线系统结构图

    该系统由上位监控PC机、智能节点和现场设备三部分组成。上位监控PC机主要负责对系统数据的接受与管理、控制命令的发送以及各控制单元动态参数和设备状态的实时显示;智能节点可以使现场设备方便地连接到CAN总线上,主要负责对现场的环境参数和设备状态进行监测,对采集来的数据进行打包处理并将处理后的数字信号通过CAN通信控制器SJA1000发送到CAN总线。智能节点的设计和选择,对通信信号的传输发送有很的影响,系统中的数据传送和接收,都是通过CAN总线接口实现。CAN总线接口电路的设计,对CAN总线很是重要。本文正是基于此,对CAN总线接口电路进行设计分析,给出一种设计方案。

 

2 CAN总线接口电路设计


2.1 总体方案设计
    CAN 总线接口电路主要包括:单片机、控制器接口、总线收发器和看门狗电路等。采用Philips公司生产的SJA1000控制器和与其配套的82C250CAN收发器。按照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN网络。双绞屏蔽线可设两套,在两套介质上同时进行信息传输,接收方只用一个介质。在冗余和非冗余段的连接临界点处进行总线切换。
    硬件电路的设计主要是CAN 通信控制器与微处理器之间和CAN总线收发器与物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。看门狗电路主要是实现对电路的监控和复位作用。

    目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。本课题选取PHILIPS公司的SJA1000 CAN控制器以及82C250总线收发器,主要是考虑到SJA1000支持CAN 2.0A/B规约。而82C250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。在本次设计中,接口电路简单表示如下图:

CAN总线(一)
                       图2-1 接口电路总体框图


2.2 各模块电路的设计


2.2.1单片机最小系统
    本设计中,应用到单片机为ATMEL公司51系列的89C51,该型号的单片机应用广泛,技术成熟,市场上价格便宜,而且在学习中所学到的多为该型号,在本次设计中是首选的芯片。89C51单片机作为系统的核心控制部分,但在本设计中不是重点讲解内容,其相关技术应用和引脚特点功能等,可参照其他相关资料。设计的电路原理方框大致如下图2-2所示。
    设计中为避免出现时钟信号的冲突,对单片机的外接晶振引脚XTAL1、XTAL2不接上外围电路,而是通过控制器SJA1000的时钟信号脚反馈给单片机。同时,对单片机的复位信号处理,RST引脚接上X5045P的RST脚,复位信号可由X5045P输出,在X5045P芯片看门狗外围电路的作用下,减少了以往由电阻、电容组成的简易复位电路造成的不精确、延时高等不良作用,使单片机回复到初始状态,完成复位操作。由于在该电路中要用到单片机的存储作用,存储由SJA1000传输过来的处理数据。因此,脚/EA接上高电平,选用片内ROM。对ALE脚,也即地址锁存有效信号除数端是和控制器SJA1000的ALE脚接通。
CAN总线(一)
                     图2-2 单片机最小系统


2.2.2 CAN总线接口控制电路设计
    SJA1000 在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间的数据通信。该电路的主要功能是通过CAN总线接收来自上位机的数据进行分析组态然后下传给下位机的控制电路实现控制功能,当CAN总线接口接收到下位机的上传数据,SJA1000就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一帧信息并通过CAN总线上传给上位机进行分析。AT89C51是CAN总线接口电路的核心,其承担CAN控制器的初始化、CAN的收发控制等任务。


2.2.2.1SJA1000简介
    PHILIPS公司的PCA82C200是符合CAN2.0A协议的总线控制器,SJA1000是它的替代产品,它是应用于汽车和一般工业环境的独立CAN总线控制器。具有完成CAN通信协议所要求的全部特性。经过简单总线连接的SJA1000可完成CAN总线的物理和数据链路层的所有功能。其硬件与软件设计和PCA82C200的基本CAN模式(BesicCAN)兼容。同时,新增加的增强CAN模式(PeliCAN)还可支持CAN2.0B协议。

●管脚及电气特性与独立CAN总线控制器PCA82C200兼容;
●软件与PCA82C200兼容(缺省为基本CAN模式);
●扩展接收缓冲器(64字节FIFO);
●支持CAN2.0B协议;
●同时支持11位和29位标识符;
●位通讯速率为1Mbits/s;
●增强CAN模式(PeliCAN); 7
●采用24MHz时钟频率;
●支持多种微处理器接口;
●可编程CAN输出驱动配置;
●工作温度范围为-40~+125℃。
CAN总线(一)
      图2-3 SJA1000引脚配置


SJA1000的功能框图如表1所示,图2-3是其引脚图。SJA1000型独立CAN总线控制器由以下几部分构成;
(1)接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。
(2)发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。
(3)接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。
(4)接收滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。如果被接收,报文存入RXFIFO。
(5)位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。
(6)位定时逻辑不:它将SJA1000同步于CAN总线上的位流。
(7)错误管理逻辑:它按照CAN协议完成错误界定。
由于SJA1000与PCA82C2000兼容,因此SJA1000的缺省工作方式即基本CAN模式与82C200相同。下面介绍SJA1000工作在增强CAN模式(PeliCAN)下的寄存器配置。在初始化期间,芯片在复位模式(RESET MODE)时的寄存器配置如表1所列,在工作期间的运行模式(OPERATING MODE)下,部分寄存器的定义将有所更改,具体见表2。

CAN总线(一)
                   表2 SJA1000寄存器配置(工作模式)


SJA1000的新增功能如下:
(1)支持CAN2.0B协议
    SJA1000完全支持CAN2.0B协议,这意味着实现了扩展的振荡器容差和处理扩展帧报文,在基本CAN方式中,仅可发送和接收标准帧报文(11位标识符),若检测到CAN总线上的扩展帧报文(29位标识符),他们将允许,并在确认报文正确后给予应答,但不会产生接收中断。标识符作为报文的名称将被用于接收器的验收滤波过程中,同时在仲裁处理期间,也用来确定总线访问的优先权。标识符二进制数值愈低,其优先权愈高。
(2)扩展的接收缓冲器
    利用SJA1000可将原有的PAC82C200双接收缓冲器被接收FIFO替代,并可用来存储来自CAN总线上被接收和滤波的报文,作为CPU能访问的一个FIFO的13字节窗口,接收FIFO总长度为64字节。通过FIFO,CPU可以在处理一个报文的同时接收其它报文。
(3)增强的错误处理能力
    在增强CAN模式功能中,SJA1000为增强错误处理功能增加了一些新的特殊功能寄存器,包括:仲裁丢失捕捉寄存器(ALC),出错码捕捉寄存器(ECC),错误警告极限寄存器(EWLR),RX出错计数寄存器(RXERR)和TX出错计数寄存器(TXERR)等。借助于这些错误寄存器可以找到丢失仲裁位的位置,分析总线错误类型和位置,定义错失仲裁位的位置,分析总线错误类型和位置,定义错误警告极限值以及记录发送和接收时出现错误的个数等。
(4)增强的验收滤波功能
    SJA1000带有验收滤波器功能,它的作用是自动检查报文中的标识符和数字节。通过设置滤波,与该总线节点不相关的一个报文或一组报文净不被SJA1000所接收,这样可以提高CPU的利用效率。在增强型CAN方式中,SJA1000还增加了单滤波方式和双滤波方式,可以对标准帧和扩展帧实现更复杂的滤波功能


2.2.2.2基于SJA1000的控制电路设计
    控制器SJA1000作为本接口电路中的控制部分,应用本设计中,对于SJA1000和单片机的连接,引脚AD0~AD7是和89C51的输出输入脚P0.0~P0.7相接;SJA1000的片选信号脚/CS必须由微控制器的P2.7口控制否则这个片选输入必须接到VSS 也可以通过地址解码控制例如当地址/数据总线用于其他外围器件,ALE对应ALE,读/写输入脚/WR、/RD,/INT和单片机的/INT0连接,由于在该系统中要用到相同的时钟频率,所以我们要时钟信号引脚CLKOUT和单片机的XTAL1脚相连,达到频率一致的目的;而在复位信号的处理,可以在看门狗外围电路的RST信号输出后再通过和非门电路的相连,很好的实现了电路的复位作用。而对于控制器的收发引脚TX0,TX1与RX0,RX1,在本系统中TX0、RX0可和收发器82C250的TXD、RXD接通。同时,在和CPU接口中SJA1000 支持对两个著名的微型控制器系列的直接连接80C51 、68xx 。通过SJA1000 的MODE 引脚可选择接口模式Intel 模式 MODE 高;Motorola 模式 MODE 低。在Intel 模式和Motorola 模式里地址/数据总线和读/写控制信号的连接。本设计中,正是使用Intel模式。对SJA1000的Vdd1~Vdd3电源输入脚,外接上驱动+5V电压;而Vss1~Vss3输出接地。设计中,对SJA1000提供16Mkz的晶振。电路设计如下

CAN总线(一)
                      图2-4 SJA1000控制电路


2.2.3 CAN总线收发电路设计


2.2.3.1CAN总线收发器82C250介绍
    82C250是CAN控制器与物理总线间的接口,可以提供对总线的差动发送和接收能力,与IS011898标准完全兼容,并具有抗汽车环境下的瞬间干扰、保护总线的能力。为了提高系统的可靠性和抗干扰能力,在CAN控制器和CAN收发器之间采用光耦6N137进行隔离
    PCA82C250提供对物理总线的符合CAN电气协议的差动发送和接收功能,另外,它具有的电流限制电路,还提供了对总线的进一步的保护功能。通过82C250与物理总线进行连接,可使总线支持多达110个节点的挂接。上图给出PCA82C250的功能方框图。对于CAN控制器及带有CAN总线接口的器件,82C250并不是必须使用的器件,因为多数CAN控制器均具有配置灵活的收发接口并允许总线故障,只是驱动能力一般只允许20~30个节点连接在一条总线上。而82C250支持多达110个节点,并能以1Mbps的速率工作于恶劣电气环境。

CAN总线(一)

       图2-5 82C250引脚结构
CAN总线(一)
    图2-6 PCA82C250配置
82C250有8个管脚,其封装形式在本设计中采用DIP形式,各引脚功能如表3:

CAN总线(一)
               表3 82C250引脚功能说明

CAN总线(一)
                           表4 82C250真值
    从表4中可看出,CAN总线驱动器82C250和RS485驱动器的主要区别在于传输信号的电平上。RS485驱动器的两个输出端分别向总线发送一对相异的电平,即一端为高电平,另一端则为低电平。而82C250输出端的电平不是相异的,在CANH端,它的两个状态是高电平和悬浮状态;而在CANL端,它的两个状态则分别为低电平和悬浮状态,这样一来即使多个节点同时向网络发送数据,也不会像RS485那样发生短路现象。

CAN总线(一)
                图2-7 PCA82C250/251 收发器的应用举例

应用举例
    PCA82C250/251 收发器的典型应用如图2-7所示协议控制器通过串行数据输出线TX 和串行数据输入线RX 连接到收发器收发器通过有差动发送和接收功能的两个总线终端CANH 和CANL 连接到总线电缆输入Rs 用于模式控制参考电压输出VREF的输出电压是额定VCC 的0.5倍其中收发器的额定电源电压是5V。
    协议控制器输出一个串行的发送数据流到收发器的TxD 引脚内部的上拉功能将TxD 输入设置成逻辑高电平也就是说总线输出驱动器默认是被动的在隐性状态中见图2-7CANH 和CANL 输入通过典型内部阻抗是17k 的接收器输入网络偏置到2.5V 的额定电压另外如果TxD 是逻辑低电平总线的输出级将被激活在总线电缆上产生一个显性的信号电平。输出驱动器由一个源输出级和一个下拉输出级组成CANH 连接到源输出级CANL 连接到下拉输出级在显性状态中CAN_H 的额定电压是3.5V CAN_L是1.5V。


2.2.3.2基于82C250收发电路设计
    82C250是CAN控制器与物理总线间的接口,可以提供对总线的差动发送和接收能力,与IS011898标准完全兼容,并具有抗汽车环境下的瞬间干扰、保护总线的能力。
    设计中,收发器的接受、发送脚原理上要和SJA1000的发送、接受脚相连接。但这样一来,两者的电气不一致,造成电气隔离,给通信带来麻烦。为此,在它们之间接上高速光耦合器6N137,避开了电气隔离,更好的实现通信联系。82C250的TXD、RXT就对应接上6N137的输出脚OUT和输入脚IN;脚Rs作为斜率控制电阻输入端,电阻的大小可以割据总线通信速度适当调整一般在16~140KΩ之间,设计中Rs阻值为47KΩ。在通过接一个47K电阻分流之后,可以接地。电压引脚Vcc,其电源电压:4.5V〈 Vcc〈 5.5V,在设计中采用5V电压。Vref作为基准电压输出端,设计中可以接地。而CANH,CANL脚是信号的输入输出,实现对电平信号的传送,通过它们连接上双绞线,完成通信传输。电路大致如下
CAN总线(一)
              图2-8 82C250收发电路


2.2.4复位、监控电路设计


2.2.4.1X5045P简介
    本设计中,所应用到的复位电路采用Xicor公司产品X5045P。X5045P把四种常用的功能:上电复位、看门狗定时器、电源电压监控和块锁(Block Lock TM )保护的串行EEPROM存储器组成在一个封装之内。这种组合降低了系统成本、减少了电路板空间和增加了可靠性。下图2-9为引脚图:

CAN总线(一)
  图2-9 X5045P引脚配置


CS/WDI:片选输入/看门狗复位输入;
SO:串行输出;
WP:写保护输入;
Vss:地;
Vcc:电源;
RESET:复位输出; 15
SCK:同步时钟输入;
SI:串行输入。
X5045P的状态寄存器描述器件的当前状态,各位意义如表5所列。

CAN总线(一)
                     表5 X5045P状态寄存器
    其中,WD1、WD0是看门狗定时时间设置位;BL1、BL0是存储单元写保护区设置位;WEL是只读标志,1表明写使能开关打开;WIP也是只读标志,1代表芯片内部正处于写周期。电复位时,各位都被清零。
X5045P芯片功能包括以下4种:
(1)上电复位控制。在对X5045P通电时,ERSET引脚输出有效的复位信号,并保持至少200ms,使CPU有效复位。
(2)电源电压监控。当检测到电源电压低于内部门槛电压VTRIP时,RESET输出复位信号,直至电源电压高于VTRIP并保持至少200ms,复位信号才被撤消。VTRIP的出厂值根据芯片型号不同共有5个级别的电压范围。对于需要电源电压精确监控的应用,用户可以搭建编程电路,对芯片内VTRIP电压进行微调。
(3)看门狗定时器。芯片内部状态寄存器的WD1、WD0是看门狗定时设置位,通过状态寄存器写指令WRSR修改这2个标志位,就能在3种定时间隔中进行选择或关闭定时器。对看门狗的复位由CS输入电平的下降沿完成。表6是WD1、WD0组合的含义

CAN总线(一)
                    表6 内部寄存器WD1、WD0含义


(4)串行E2PROM。芯片内含512字节存储单元,10万次可靠写,数据保持时间100年。XICOR设计了3种保护方式防止误写。包括:WP写保护引脚,当引脚被拉低时,内部存储单元状态寄存器都禁止写入;存储区域写保护模式,通过对状态寄存器的BL1、BL0位的设置,可以选择对不同的存储区域进行写保护;在进行任何写操作前都必须打开写使能开关,而且在上电初始化写操作完成时,写使能开关自动关闭。显然,在几方面的保护之下,产生误写的可能性极小,表7是BL1、BL0组合的含义。

CAN总线(一)
                      表7串行E2PROM的BL1、BL0含义


    对X5045P的操作是通过4根口线CS、SCK、SI和SO进行同步串行通信来完成的。SCK是外部输入的同步时钟信号。在对芯片定改指令或数据时,时钟前沿将SI引脚信号输入;在读邮数据时,时钟后沿将数据位输出到SO引脚上。数据的输入/输出都是高位在先。
芯片内部共有6条指令,如表8所列。

CAN总线(一)
                          表8 X5045P内部指令


(1)WREN和WRDI是写使能开关的开/关指令。它们都是单字节指令。
(2)RDSR和WRSR是状态寄存器的读/写指令。在从SI输入指令后,RDSR的执行结果,即状态寄存器内容须从SO读出;而WRSR需要紧接着输入修改数据。
(3)READ和WEITE是存储单元的读/写指令。输入指令后(指令码第三代表存储单元地址的最高位),接着输入低八位地址,最后就可以连续读出或写入数据。其中,读指针和写指针的工作方式完全不同,读指针的全部8位用来计数,0FFH溢出后变成00H;写指针只用最低两位计数,XXXXXX11B溢出后变成XXXX XX00B,所以连续写的实际结果是在4个单元中反复写入。另外,由于E2PROM的写入时间长,所以在连续两条写指令之间应读取WIP状态,只有内部写周期结束时才可输入下一条写指令。
    X5045P中的看门狗对系统提供了保护功能。当系统发生故障而超过设置时间时,电路中的看门狗将通过RESET信号向CPU 作出反应。X5045提供了三个时间值供用户选择使用。它所具有的电压监控功能还可以保护系统免受低电压的影响,当电源电压降到允许范围以下时,系统将复位,直到电源电压返回到稳定值为止。X5045P的存储器与CPU 可通过串行通信方式接口,共有4096个位,可以按512 x 8个字节来放置数据。


2.2.4.2基于X5045P的电路设计
    X5045P在本设计中做为复位、监控电路使用,虽然增加了电路连接的复杂和成本,但对于电路的稳定和可靠性有起到很大的作用,是系统中不可缺少的部分。
    对X5045的操作是通过4根口线CS、SCK、SI和SO进行同步串行通信来完成的。SCK是外部输入的同步时钟信号。在对芯片定改指令或数据时,时钟前沿将SI引脚信号输入;在读邮数据时,时钟后沿将数据位输出到SO引脚上。数据的输入/输出都是高位在先。在设计中,/CS脚和单片机P1.0、SI、SCK、SO、RST分别与单片机的引脚P1.0~P1.3、RST连接。对于不用到的引脚,可以直接和地相连。电路设计如下:

CAN总线(一)
                   图2-10 X5045P电路监控、复位电路


2.2.5电源设计
    设计中,对系统的电源都一致采用DC+5V电压,光耦部分电路所采用的两个电源Vcc和Vdd必须完全隔离。为此,设计电源如下所示:

CAN总线(一)

                       图2-11 电源电路


    它由AH805升压模块及FP106升压模块组成。AH805是一种输入1.2~3V,输出5V的升压模块,在3V电池供电时可输出100mA电流。FP106是贴片式升压模块,输入4~6V,输出固定电压为29±1V,输出电流可达40mA,AH805及FP106都是一个电平控制的关闭电源控制端。两节1.5V碱性电池输出的3V电压输入AH805,AH805输出+5V电压,其一路作5V输出,另一路输入FP106使其产生28~30V电压,经稳压管稳压后输出+12V电压。从图中可以看出,只要改变稳压管的稳压值,即可获得不同的输出电压,使用十分灵活。FP106的第⑤脚为控制电源关闭端,在关闭电源时,耗电几乎为零,当第⑤脚加高电平>2.5V时,电源导通;当第⑤脚加低电平<0.4V时,电源被关闭。可以用电路来控制或手动控制,若不需控制时,第⑤脚与第⑧脚连接。


2.3 接口电路总体电路原理图

CAN总线(一)


    在本电路原理中,控制单元以单片机AT89C51为核心,选用器件SJA1000作为CAN控制器,并选用芯片82C250和6N137、X5045P作为CAN控制器接口和光耦合隔离、复位电路。在实际中,应注意以下几个问题

1. SJA1000的中断请求信号INT在中断允许且有中断发生时,由高电来此跳变到低电平,所以INT和AT0C51的INT0直接相连。片选信号CS和单片机引脚P2.7相连,当CS接到低电平时,SJA1000被选中,CPU可对SJA1000进行读/写操作。为了增强CAN总线节点的抗干扰能力。SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5VCC上,否则,将不能形成CAN协议要求的电平逻辑。

2. SJA1000的TxD和RxD并不是直接与82C250的TxD和RxD相连而是通过高速光耦合6N137后与82C250相连,这样就可以很好的实现了总线上个CAN节点的电气隔离,不过应该特别说明一点的是光耦部分电路所采用的两个电源Vcc和Vdd必须完
全隔离,否则采用光耦也就失去了意思。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块实现,这些部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性,保护CAN控制器正常工作。

3. 由于单片机和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总线接入端与地之间分别反接了一个保护二极管。当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用,82C250的Rs脚上接一个斜率电阻。电阻大小可以根据总线通信速度适当调整一般在16—140KΩ之间。

6. 另外,在本系统中应用到的芯片X5045P具有电源监控、看门狗等功能,还同时输出高低电平的复位信号,分别输出到AT89C51和SJA1000的复位端,以满足本次设计的要求。

结束语
    现场总线标准及其技术日益成为国际自动控制领域关注的一大焦点,其原因是它改变了传统控制系统的结构,形成了全新的网络集成分布式控制系统。在我国,现场总线已经发展到推广应用阶段,中国已经成为各种现场总线激烈争夺的重要战场。因此研究现场总线技术及其产品就显得尤为重要。本文正是基于控制器SJA1000和82C250收发器的基础上,外接上看门狗电路芯片X5045P及高速光耦合器6N137,设计CAN总线接口电路,该电路理论上很好的实现了设计原理要求。该设计简单明了,在电路实现时,还需考虑各模块间的接地、屏蔽等诸多问题。

阅读(1092) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~