第6章 CAN硬件设计2014_第1页
第6章 CAN硬件设计2014_第2页
第6章 CAN硬件设计2014_第3页
第6章 CAN硬件设计2014_第4页
第6章 CAN硬件设计2014_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

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

文档简介

大家先思考几个问题CAN总线“长”什么样?什么是CAN总线?CAN代表什么什么含义?现场总线包括基金会现场总线、Lonworks、PROFIBUS、HART、CAN,为何我们选择学习CAN总线?思考

TheAnswerCAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。

CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。是唯一有国际标准的现场总线,被认为到目前为止最有前途的现场总线。现场总线(Fieldbus)本质是计算机控制网络,因此网络技术是它的重要基础。计算机网络连接是各个PC,现场总线连接的是生产最底层的受控设备,传感器。思考思考思考6CAN的开发与设计

6.1概述SJA1000是一种具有高级功能的独立CAN控制器,它可以应用到汽车工业和其它工业领域。目前独立CAN控制器包括SJA1000和MCP2515,SJA1000应用比较广泛,性能较强,但是占IO较多。集成CAN控制器的MCU有PIC18F258/2580/4580/P8XC591/STM32/C8051F040等CAN收发器常用PCA82C250/TJA1050/MCP2551SJA1000是PCA82C200(BasicCAN)替代产品,因此其硬件和软件与PCA82C200完全兼容;而且SJA1000还增加一种新的操作模式-Pelican,这种模式支持很多新特性的CAN2.0B协议。概述系统构成CAN通信的控制CAN通信的应用

一、CAN总线结点结构一般而言,每一个CAN模块可以被分成不同的功能块;第一层:与CAN总线相联的部分,一般由CAN收发器构成。收发器将CAN控制器的逻辑电平信号转换为CAN总线上的实际电平,同时也将总线上的实际电平转换为CAN控制的逻辑电平。概述系统构成CAN通信的控制CAN通信的应用第二层就是CAN控制器,它完成CAN技术规范定义的完整的CAN协议,通常还包括报文的缓冲和认可滤波功能。第三层,所有的CAN功能完全由模块控制器来控制,它完成应用公共的控制功能,如控制一个执行机构,采集传感器的信息及处理人-机接口等等。一般是MCU概述系统构成CAN通信的控制CAN通信的应用如图6-1所示,SJA1000独立CAN控制的器一般均介于微控制器与收发器之间。

概述系统构成CAN通信的控制CAN通信的应用二、功能框图SJA1000的功能框图,如图6-2所示。

1)CAN核心模块:根据CAN技术规范完成帧的收发。2)接口管理逻辑单元:完成与外部主控制器的连接,该控制器可以是微控制器或其他装置,对SJA1000寄存器的读写及读写脉冲均由此单元来控制,并且增加了除BasicCAN基本功能外的PeliCAN功能,由此而增加的寄存器和控制逻辑也大多在此模块中完成。概述系统构成CAN通信的控制CAN通信的应用3)发送缓冲器:可以存放一个完整的报文(SFF/EFF)。只要外部控制器初始化一次发送过程,IML(管理逻辑接口单元)都要迫使CAN核心模块来读取发送缓冲器的报文。4)认可滤波器:当接收到一组报文CAN核心模块将其串/并转换后送到认可滤波器,利用这些可编程寄存器,SJA1000来确定哪些报文是主控制器要接收的。概述系统构成CAN通信的控制CAN通信的应用5)接收栈FIFO

:所有通过认可滤波的报文均存放在接收线中,根据运行方式和报文长度的不同,接收栈中最多只能存放32个报文。这给用户提供了更大的灵活性来处理中断优先权判定和中断服务程序,因此这大大降低了数据超载的可能性。

概述系统构成CAN通信的控制CAN通信的应用6.2系统构成

为了与主控制器相连,SJA1000提供了复用地址/数据总线和其他的读写控制信号,SJA1000可以被看作为面向存贮器寻址的外设I/O单元。

概述系统构成CAN通信的控制CAN通信的应用由于寄存器和输出管脚可组态使得SJA1000可以使用任何种类的集成或分立的

CAN收发器。在图3中给出了包括80C51和PCA82C250/1收发器的SJA1000的应用框图。CAN控制器给8051提供时钟,由外部复位电路提供复位信号。在这个例子中,SJA1000由8051的端口P2.7来控制,也可以将此脚接到Vss。该脚也可以通过地址译码器来控制。//定义SJA1000的基址#defineSJA_BaseAdr0X7F00决定CS接到P2口的那个管脚,这样定义就是P2.7#defineSJA_BaseAdr0XFE00决定CS接到P2口的那个管脚,这样定义就是P2.0概述系统构成CAN通信的控制CAN通信的应用6.2.1SJA1000的应用

CAN总线系统智能节点硬件设计SJA1000有3组电源脚供给不同的内部数字或模拟功能块VDD1/VSS1内部逻辑(数字)VDD2/VSS2输入比较器(模拟)VDD3/VSS3输出驱动器(模拟)这组电源是相互独立的,以提高芯片的抗干扰能力。在某些应用场合VDD2可以联接一个RC去偶网络,以抑制比较器的噪声干扰。概述系统构成CAN通信的控制CAN通信的应用6.2.2电源6.2.3复位SJA1000的正常复位过程,要求在XTAL1脚上加以稳定的振荡器时钟脉冲,Pin17上外部复位信号起同步作用,并在CAN控制器内部被延长为15个时钟周期的脉宽,这样就可以保证SJA1000内部寄存器的可靠复位。此外在上电复位时,也应将振荡内的起振时间考虑在内。

概述系统构成CAN通信的控制CAN通信的应用6.2.4振荡器及时钟的提供方法SJA1000可使用内部振荡器或外部振荡器CLKOUT可被置有效,给主控制器提供时钟,图6-4给出了4种SJA1000的时钟供给方法。思考有一幅图有问题?若CLKOUT不使用,可通过使时钟分频寄存器的时钟关断位置1,使之无效,这样做可提高CAN接点的电磁兼容性。概述系统构成CAN通信的控制CAN通信的应用

上电复位或硬复位后,时钟分频系数取决于接口方式。接口方式由11脚模式位(Mode)决定。所以若振荡的频率为16MHz,在Intel方式,fclkout=8MHz;在Motorola方式,fclkout=1.33MHz。

概述系统构成CAN通信的控制CAN通信的应用在没有总线活动和发出中断申请的情况下,在BasicCAN模式中置Gotosleep位;在PeliCAN模式置SleepMode位可使CAN控制器进入睡眠状态,振荡器要再持续工作15个系统时钟时间。这段时间微控制器可用来处理善后事务,并进入其低功耗待机状态。唤醒条件之一发生,振荡器将起振,并发出唤醒中断,并且一旦振荡器稳定,CLKOUT就有有效输出。概述系统构成CAN通信的控制CAN通信的应用6.2.5CPU接口控制

SJA1000可以直接与两种著名的CPU系列相联,80C51、68XX,两种CPU系列的选择通过模式脚(Mode,Pin11)来选择。图6-5给出了Intel和Motorola方式下的地址/数据线及读写控制信号线的连线图。概述系统构成CAN通信的控制CAN通信的应用6.2.6物理层接口

6.3CAN通信的控制

6.3.1控制SJA1000通信的基本功能和控制寄存器

主控制器通过应用程序来设定SJA1000的功能,因此我们将对SJA1000进行编程以满足不同性能的CAN总线系统的要求。主控制器通过寄存器(控制段)和RAM(报文缓冲器)与SJA1000交换数据。这些控制寄存器和接收及发送缓冲器--RAM的可寻址窗口,对主控制器而言均为外设寄存器。概述系统构成CAN通信的控制CAN通信的应用表2将这些寄存器按使用功能进行了分组。要注意,有些寄存器只能在PeliCAN方式中使用,而另一些只能在BasicCAN方式中使用;有些为只读而另一些为只写,还有一些寄存器只能在复位状态下才能进行读写操作。概述系统构成CAN通信的控制CAN通信的应用SJA1000独立的CAN控制器有2个不同的操作模式:

1

BasicCAN模式:和PCA82C200兼容。BasicCAN模式是上电后默认的操作模式,因此用PCA82C200开发的已有硬件和软件,可以直接在SJA1000上使用而不用作任何修改。

2PeliCAN模式:是新的操作模式。它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,使SJA1000能应用于更宽的领域。PeliCAN

中文含义?53工作模式通过时钟分频寄存器中的CAN模式位来选择,复位时默认模式是BasicCAN模式。(1)BasicCAN模式地址分配SJA1000对微处理器而言是存储器寻址方式的I/O装置,由于寄存器的设计是按RAM方式设计的。SJA1000的地址范围包括控制段和报文缓冲器。在初始化时对控制段进行编程,以便组态通信参数。位处理器也是通过此段实现对CAN总线通信的控制。在初始化时位处理器还可对CLKOUT信号的频率进行编程。要发送的报文,必须写入SJA1000的发送缓冲器;正确接收的报文,微处理器可以从接收缓冲器中读取,并将接收缓冲器释放以备将来使用。概述系统构成CAN通信的控制CAN通信的应用BasicCAN模式微处理器与SJA1000的状态、控制和命令信号的交换都是在控制段完成的。此段的地址分配如表5-12所示,在初始化完成后,认可码寄存器、认可码屏蔽寄存器、总线定时寄存器0和1以及输出控制寄存器的内容不应再发生变化,所以这些寄存器只能在控制寄存器的复位请求位被置为高时,才可对其写操作。概述系统构成CAN通信的控制CAN通信的应用对寄存器的操作必须区分两种模式:复位模式运行模式在硬件复位或总线关断状态(见表5-16,状态寄存器)时,芯片自动进入复位模式(见表5-14,控制寄存器);将控制寄存器中的复位请求位清零就可进入运行模式。

概述系统构成CAN通信的控制CAN通信的应用(2)复位值若检测到‘复位请求’位为1,芯片将终止当前报文的发送/接收而进入复位状态;在‘复位请求’位的‘1-0’跳变,CAN控制器返回到运行模式。(3)控制寄存器(CR)控制寄存器的内容可以改变CAN控制器的响应,寄存器的内容可以由与其相接的微处理器来改变。

概述系统构成CAN通信的控制CAN通信的应用注:1、CR.7:对控制寄存器的任何写操作此位必须置零(复位值为0)。2、CR.6:在PCA82C200中此位被用来选择同步模式,由于SJA1000中不再使用此模式,设置该位对微处理器没有任何影响。但为了软件的兼容性,将此位置1是允许的,硬件或软件复位对此位没有影响。读操作的返回值为用户软件的写入值。3、CR.5:此位读回的值为1概述系统构成CAN通信的控制CAN通信的应用4、复位请求:

在硬件复位或总线状态被置1(总线离线)期间,复位请求位被置为1。复位请求位被置零后SJA1000将等待:a)若复位请求是由硬件或CPU的上电复位引起的,SJA1000将等待一个总线空闲信号(连续11个隐性电平);b)若复位请求是由CAN控制器的总线离线状态引起的,SJA1000要重新进入总线在线状态,必须等待128个总线空闲状态。应注意的是在复位请求过程中,几个寄存器的内容被改变了。概述系统构成CAN通信的控制CAN通信的应用(4)命令寄存器(CMR)一个命令位引发SJA1000传输层的一个过程,命令寄存器对微处理器而言是一个只写寄存器,若对命令寄存器执行读操作,其返回值为‘11111111’。两个命令之间至少需要一个内部时钟周期对命令进行处理。概述系统构成CAN通信的控制CAN通信的应用注:1、进入睡眠GTS被置1,若没有中断申请及总线无活动,SJA1000将进入睡眠状态;2、清除数据过载CDO命令位用来清除由数据过载位指示的数据过载状态;一旦数据过载位置1,就不再产生其它的过载中断了。清除数据过载命令也可作为接收缓冲器释放命令来使用。概述系统构成CAN通信的控制CAN通信的应用3、释放接收缓冲器RRB读出接收缓冲器的内容后,微处理器可以将释放接收缓冲器置1,以释放RX栈的存储空间,此命令可以使接收缓冲器中的报文立即有效。如果中断开放,该事件会引发另外一个接收中断。若接收缓冲器中没有报文存在,就不会产生其它的接收中断,接收缓冲器状态位将被清零。概述系统构成CAN通信的控制CAN通信的应用4、终止发送ATCPU需要推迟以前的发送请求时,也就是有更紧急的报文发送前,使用终止发送位。此命令不会终止已开始的发送过程,我们通过读取发送完成状态位的值,可以检验原报文是被成功发送还是被终止。这个检验过程应在发送缓冲器状态位置1或发送中断发出后进行。5、发送请求TR若第一个命令为使发送请求位置1,不能用使发送请求位清零来取消第一个命令。请求的发送过程可以用使终止发送位置1来取消。

概述系统构成CAN通信的控制CAN通信的应用(5)状态寄存器(SR)状态寄存器的内容反映了SJA1000的工作状态,状态寄存器对微处理器而言为只读存储器。

概述系统构成CAN通信的控制CAN通信的应用(6)中断寄存器(IR)中断寄存器用来识别中断源。此寄存器的一位或多位置1,将变为低电平。微处理器对此寄存器读出后,此寄存器的所有位将清零,使变为悬浮电平。此寄存器为只读寄存器。

概述系统构成CAN通信的控制CAN通信的应用(7)发送缓冲器布局表5-18给出了发送缓冲器的总体布局,发送缓冲器用来存放从微处理器来并将被SJA1000发送的报文。发送缓冲器可分为描述符区和数据区,微处理器只能在运行模式读/写发送缓冲器,若在复位模式下读发送缓冲器其返回值为‘FFH’。

概述系统构成CAN通信的控制CAN通信的应用①

标示符(ID)标示符由11位组成(ID.10~ID.0),ID.10为最高位,在仲裁过程中它首先被发送到总线上。标示符的作用类似于报文的名字,在接收端它被用来进行认可滤波;在仲裁过程中它也用来决定访问总线的优先权。标示符所代表的二进制数值越小,其优先权越高,这是由于二进制数越小,其高位的显性位就越多。概述系统构成CAN通信的控制CAN通信的应用②

远程发送请求(RTR)如果此位置1,将通过总线发送一远程帧。在远程帧中不包含数据字节,虽然这样,也必须给出与具有相同标示符的数据帧相同的数据长度码。如果RTR没有置1,将发送一帧数据帧。

概述系统构成CAN通信的控制CAN通信的应用③

数据长度码(DLC)报文数据区中的数据字节数由数据长度码给出编码。在开始发送远程帧时,由于RTR为1,这强制发送/接收的数据字节为零,所以不需要考虑数据长度码。概述系统构成CAN通信的控制CAN通信的应用

数据长度的有效字节数为0~8,数据长度编码由下式给出:

考虑到兼容性,不能使用大于8的数据长度编码。如果选择了大于8的DLC编码,在后续的数据帧中只发送8个字节的数据。概述系统构成CAN通信的控制CAN通信的应用④

数据区发送的数据字节数由数据长度码确定。发送数据的第一位是位于CAN地址12的数据字节1的最高位。概述系统构成CAN通信的控制CAN通信的应用(8)接收缓冲器接收缓冲器的总体布局与5.3.7节描述的发送缓冲器的类似。接收缓冲器是RX栈的可访问的部分,CAN地址范围为20~29。标示符、远程发送请求位和数据长度编码所处的位置和意义与发送缓冲器的完全一样,只是所处的地址范围为20~29。RX栈共有64字节。在任何时刻栈中所存储的报文个数,由报文的长度决定。如果RX栈中没有足够的空间来存放一个新的报文,CAN控制器将发出数据过载信息。当发生数据过载时,部分已写入RX栈中的报文将被删除。概述系统构成CAN通信的控制CAN通信的应用(9)认可滤波器具有认可滤波器,CAN控制器就可以只让那些标示符与认可滤波寄存内容相符的报文进入RX栈中。认可滤波器由认可码寄存器(ACR)和认可屏蔽寄存器(AMR)组成。①

认可码寄存器(ACR)

概述系统构成CAN通信的控制CAN通信的应用

此寄存器只能在复位模式下才可进行读/写操作。当一个报文通过了认可检验,并且接收缓冲器中空间足够,则该报文的描述区和数据区将被顺序地存储到RX栈中。当一个报文完整无误的接收下来,CAN控制器将完成下述工作:

•接收状态位置1;

•若中断开放,将产生接收中断。概述系统构成CAN通信的控制CAN通信的应用报文标示符的8个高位(ID.10~ID.3)必须与(AC.7~AC.0)相等,而这些位是被验收屏蔽位(AM.7~AM.0)相应位屏蔽的,即满足下式给出的条件之一,报文就通过了认可,被接受:

概述系统构成CAN通信的控制CAN通信的应用

此寄存器只能在复位状态才可对其读/写操作。认可屏蔽寄存器确定相应的认可码位的相关性(AM.X=0),或无关性(AM.X=1)。概述系统构成CAN通信的控制CAN通信的应用②

认可屏蔽寄存器(AMR)概述系统构成CAN通信的控制CAN通信的应用(1)总线定时寄存器0(BTR0)总线定时寄存器0(BTR0)定义波特率预分频和同步跳转宽度的数值。BTR0在复位方式下,为读/写方式;在运行模式下为:5.3.1.5通用寄存器

概述系统构成CAN通信的控制CAN通信的应用①

波特率予分频器(BRP)

CAN系统时钟周期tSCL的大小是可编程的,该数值也用来确定CAN的位定时。CAN的系统时钟的周期由下式给出:

同步跳转宽度(SJW)为了补偿不同CAN控制器时钟振荡器的相移,任何总线控制器都必须根据当前传送报文相关边沿进行重同步,同步跳转宽度定义了在一次重同步操作中,位周期缩短或延长的最大系统时钟数目。同步跳转宽度由下式给出:

概述系统构成CAN通信的控制CAN通信的应用(2)总线定时寄存器1(BTR1)所谓总线定时寄存器1(BTR1)定义了位周期的长度和数据采样点的位置和个数。在复位模式下BTR1为读/写方式;在运行模式下,若为PeliCAN模式,该寄存器为只读方式;

在BasicCAN模式下,对此寄存器进行读操作,其返回值为0FFH。概述系统构成CAN通信的控制CAN通信的应用②

时间段1(TSEG1)和时间段2(TSEG2)TSEG1和TSEG2定义了每个位周期中含有的系统时钟的个数和采样点的位置。其中:

BTR0和BTR1主要涉及到波特率,具体使用时候建议大家直接利用计算软件。(3)输出控制寄存器(OCR)输出控制寄存器(OCR)使总线控制器通过软件控制输出驱动器的不同组合。在复位模式下OCR为读/写方式;在运行模式下,若为PeliCAN模式,该寄存器为只读方式,在BasicCAN模式下,对此寄存器进行读操作,其返回值为0FFH。概述系统构成CAN通信的控制CAN通信的应用若SJA100在睡眠状态,TX0和TX1脚上输出隐性电平,在复位状态或者在外部复位脚为低时,TX0与TX1处于悬浮态,根据输出控制寄存器设置的内容不同,发送的输出级可以工作在不同的运行方式

①正常输出方式在正常输出方式,位流序列TXD通过TX0和TX1输出,输出驱动器脚TX0和TX1的电平值不仅取决于可编程位OCTPx和OCTNx,而且也取决于输出极性位OCPOLx的编程值。②时钟输出模式在这种方式下,TX0与正常输出模式一样,输出位流序列,而TX1则输出发送时钟(TXCLK),发送时钟的上升沿标注一个位周期的开始,时钟的输出宽度为一个系统时钟tSCL

。概述系统构成CAN通信的控制CAN通信的应用③双相输出模式与正常输出模式不同,在双相输出模式时,位的输出是随时间变化的,而且TX0和TX1交替输出。若总线控制器是用变压器与线路隔离的,则位流中就不允许包含有直流成份,这一点可以通过下述方法实现:在发送隐性位时,所有的输出被关闭(悬浮态),而显性位则交替地输出到TX0和TX1,即第一个显性位送到TX0,第二个显性位则送到TX1,第三个又送到TX0,依次类推。

概述系统构成CAN通信的控制CAN通信的应用④

测试输出模式在测试输出方式,RX的接收电平将在下一个系统时钟的上升沿输出到TXn,而且此输出电平要受输出控制寄存器可编程极性位的控制。概述系统构成CAN通信的控制CAN通信的应用时钟分频器寄存器(CDR)控制时钟输出脚CLKOUT的输出频率,并且允许关断此位的输出。另外,该寄存器还可以控制是否在TX1上增加了一个接收中断脉冲、旁路接收比较器、选择BasicCAN还是PeliCAN模式。在硬件复位后时钟分频数的默认值为00000101、12分频(Motorola)或为00000000、2分频(Intel)。软复位对此寄存器没有影响,保留位CDR.4在写入时必须为0,以便与将来的功能上保持兼容。

概述系统构成CAN通信的控制CAN通信的应用(4)时钟分频器寄存器(CDR)②

时钟关断将此位置1可以使CLKOUT脚输出无效,此位的写操作只能在复位模式。将此位置1,CLKOUT脚在睡眠状态输出低电平,否则输出高电平。

RXINTEN(接收增强位)此位置1可允许TX1作为一个专用的接收中断输出脚,当一个报文通过认可滤波,在帧结束符的最后一位期间,TX1输出一位宽度的接收中断脉冲。发送输出级应该工作在正常模式,输出极性和输出驱动控制由输出控制寄存器来决定。此位只能在复位状态下写入。概述系统构成CAN通信的控制CAN通信的应用④CBP(比较器旁路位)将CDR.6(CBP)位置1,可以使CAN的输入比较器旁路,此位只能在复位方式下写入。一般当SJA1000联接有一个外部收发器电路时,才使用此功能。这样可以减少SJA1000的内部延时,并能延长总线的最大长度。若CBP=1,则只有RX0有效,而未使用的RX1输入端应联接到一个固定电平(如VSS)。概述系统构成CAN通信的控制CAN通信的应用⑤CAN模式

CDR.7定义了CAN的运行方式:此位只能在复位模式下写入。

概述系统构成CAN通信的控制CAN通信的应用发送/接收缓冲器

要通过CAN总线发送的数据,存贮在SJA1000的发送缓冲器,而CAN总线上接收到的报文存放在接收缓冲器。这些缓冲器包含有2、3或5个标示符和帧信息字节(依据不同的模式和帧结构)和至多8个字节的数据。BasicCAN模式

缓冲器10字节:

2字节标示符

至多8个字节数据PeliCAN模式

缓冲器13字节:

1字节帧信息

2~4字节标示符

至多8字节数据概述系统构成CAN通信的控制CAN通信的应用认可滤波器

CAN控制器SJA1000配备有一个通用的认可滤波器,该滤波器能够自动检验标示符和数据字节。利用这种滤波方法,可以有效的防止不需要接收的报文或报文组进入接收缓冲器,就可以减少主控制器数据处理的负荷。概述系统构成CAN通信的控制CAN通信的应用若认可码和认可码屏蔽寄存器根据一定的算法来控制滤波器的工作,接收到的数据与认可码寄存器的内容逐位比较,而认可码屏蔽寄存器定义接收数据的那些位与比较相关(0=相关、1=不相关)。只有接收到的所有相关位与认可码寄存器的对应位相同,接收的报文才通过了认可滤波。

概述系统构成CAN通信的控制CAN通信的应用BasicCAN模式的接收滤波在这种模式下,SJA1000可以直接代替PCA82C200。接收滤波器由两个8位宽度的寄存器-接收码寄存器和接收码屏蔽寄存器组成,接收报文标示符的高8位与ACR和AMR的位进行比较,见图6-8。概述系统构成CAN通信的控制CAN通信的应用

AMR=1的位对应的ID符可为任意值,最低位的三个ID符也可为任意值,所以在此例中共有64个不同的标示符(ID符)可以被该节点接收。

PeliCAN的认可滤波在PeliCAN方式下,认可滤波器进行了扩展,有4个8位宽的认可码寄存器(ACR0、ACR1、ACR2、ACR3)和认可码屏蔽寄存器(AMR0、AMR1、AMR2、AMR3)都参与报文的滤波。

概述系统构成CAN通信的控制CAN通信的应用6.4CAN的通信功能的应用

通过CAN总线建立通信的过程:系统上电后设置主控制器与SJA1000相关的硬件及软件在SJA1000上电复位后,设置CAN控制器的通信功能,包括方式选择、认可滤波器的设置、位定时信息等。在应用主程序中准备要发送的数据并激活SJA1000将数据发出处理CAN控制器接收到的报文处理在通信过程中发生的错误

概述系统构成CAN通信的控制CAN通信的应用打开ppt2概述系统构成CAN通信的控制CAN通信的应用6.4.1初始化

SJA1000在上电或硬复拉后,必须对其初始化以便进行通信。而且在运行过程中还可以通过主控制器对其组态进行修改(重新组态),在进行重新组态时,首先要进入复位状态。图6-12给出了初始化程序的流程。概述系统构成CAN通信的控制CAN通信的应用概述系统构成CAN通信的控制CAN通信的应用

上电复位后,主控制器要运行其复位子程序,然后进入初始化SJA1000的子程序,因为要组态的寄存器只有在复位模式(ResetMode)下,才能被写入。1)主控制器必须在复位模式下对控制段的下列寄存器进行设置。模式寄存器(仅对PeliCAN模式)选择下列运行方式:接收滤波器方式自检模式监听模式概述系统构成CAN通信的控制CAN通信的应用时钟分频寄存器:BasicCAN或PeliCAN模式时钟输出(CLKOUT)是否有效接收比较器是否旁路TX1输出脚是否用作专用接收中断输出认可码与认可码屏蔽寄存器:定义要接收报文的认可码定义认可码与报文进行比较的相关位

概述系统构成CAN通信的控制CAN通信的应用总线定时寄存器定义总线的波特率定义在位周期中的采样点位值定义采样点数目输出控制寄存器定义CAN总线输出脚

TX0和TX1的输出方式正常输出方式

时钟输出方式

双相输出方式或测试方式。概述系统构成CAN通信的控制CAN通信的应用采用的是最典型的CAN控制器芯片SJA1000。SJA1000CAN控制器的CAN通讯波特率由寄存器BTR0、BTR1晶振等参数共同决定。下表A.1列出了一组推荐的BTR0、BTR1设置值。标注*符号的值是由国际CiA协会推荐的标准值。将上述的组态信息写入SJA1000的控制段后,就可以通过清除R/R标志进入运行状态,但必须检验这个标志位是否真正被清除了,并且确已进入运行模式,否则程序不应继续往下执行。在设置SJA1000寄存器前,主控制器应该通过读R/R(Resetmode/Request)标志来确认SJA1000确在复位方式,因为要组态的寄存器只有在复位模式(ResetMode)下,才能被写入。(RR复位请求在控制寄存器(CR)中)概述系统构成CAN通信的控制CAN通信的应用报文的发送是CAN控制器SJA1000依据CAN协议规范自动进行的;主控制器要将发送的报文写入SJA1000的发送缓冲区,并将发送请求位(TransmitRequest)置1;发送过程既可以采用中断方式,也可以采用查询方式(查询SJA1000控制段的状态标志)。概述系统构成CAN通信的控制CAN通信的应用6.4.2数据的发送1)采用中断方式的数据发送

根据图6-13给出的主流程,CAN的发送中断和主控制器的外部中断(用来联接SJA1000的INT信号)应在报文发送开始前开放。中断允许标志在控制寄存器中定义(BasicCAN)或在中断允许寄存器中定义(PeliCAN方式)。一旦SJA1000开始发送报文,发送缓冲器就被封锁,不能写入新的报文。因此主控制器必须查询“发送缓冲器的状态标志”(状态寄存器)是否可以将新的报文写入。

概述系统构成CAN通信的控制CAN通信的应用发送缓冲器闭锁

主控制器将新报文暂存在它自己的存贮器中,并设置一个标志,标明一个报文等待发送。如何处理报文暂存器,由程序设计决定。这个暂存器也可以设计为暂存多个报文。当发送完当前报文后,CAN控制器将发出中断请求,并进入中断服务程序处理暂存报文的发送。

概述系统构成CAN通信的控制CAN通信的应用

针对CAN控制器中断的响应,主控制器要查询中断的类型,是否是发送中断,要查询是否还有报文要发送。等待发送的一个报文将拷贝到发送缓冲器,并清除报文等待标志。置发送请求标志,启动SJA1000的发送过程。发送缓冲器释放主控制器将要发送的新报文写入发送缓冲器,并置“发送请求“标志,启动SJA1000的发送过程。当成功发送完一个报文后,CAN控制器就会发出一个发送中断。

概述系统构成CAN通信的控制CAN通信的应用查询方式的报文发送图6-14是查询方式的报文发送流程,在查询方式下CAN发送中断应被屏蔽。一但报文开始发送,发送缓冲器写闭锁,因此主控制器要查询“发送缓冲器状态”标志,确定是否可以将一个新的报文写入发送缓冲器(TXBuffer)

概述系统构成CAN通信的控制CAN通信的应用概述系统构成CAN通信的控制CAN通信的应用若发送缓冲器写闭锁循环查询状态寄存器,主控制器进入等待状态,直到发送缓冲器空。若发送缓冲器空主控制器将新报文写入发送缓冲器TXBuffer,并置发送请求标志TR=1,启动报文的发送过程。发送状态TS和接收状态RS可以用来检测CAN控制器是否在空闲状态,发送缓冲器状态TBS和发送完成状态TCS标志可以用来检测报文是否成功发送。概述系统构成CAN通信的控制CAN通信的应用6.4.3中止发送

请求发送的报文可以用“中止发送”命令来中止发送过程,这一特性可以用来发送一个比已写入发送缓冲器TXBuff中的报文更紧急的报文。图6-15给出了中断方式下的中止发送程序流程图,这个流程图演示了中止当前报文而发送一个优先级别高的报文,由于其它原因也要中止发送报文的程序流程可能有所不同。

概述系统构成CAN通信的控制CAN通信的应用

6.4.4接收报文接收报文是CAN控制器依据CAN协议规范自动进行,接收报文被放在接收缓冲器RXBuffer中。一个报文是否可以传送给主控制器,由状态寄存器的接收缓冲器状态RBS和接收中断标志确定(若中断开放)。主控制器要将有效数据读入其内存,释放接收缓冲器RXBuffer,并对报文进行处理。传送过程既可由中断控制,也可通过查询状态寄存器标志来完成。

概述系统构成CAN通信的控制CAN通信的应用1)查询方式的接收过程图6-16给出了查询方式接收报文程序流程图。CAN控制器的接收中断应屏蔽,主控制器读SJA1000状态寄存器(周期性的)、查询接收缓冲器状态标志RBS,看接收缓冲器中是否有报文存在。

·若接收缓冲器空,主控制器继续其它的程序,直到下一个查询接收缓冲器状态命令。·若接收缓冲器状态标志指示“满”,则接收缓冲器中已接收到一个或多个报文。

概述系统构成CAN通信的控制CAN通信的应用概述系统构成CAN通信的控制CAN通信的应用主控制器,读取第一个报文然后发送释放接收缓冲器RXbuffer命令,主控制器可以在处理完一个报文后,再查询其他报文的存在,如图6-16所示。但是主控制器也可以将所有报文通过查询读出后,再一起对报文进行处理。在这种情况下,主控制器内的报文存贮器应有足够的空间,可以存入多个报文。在传输并处理一个报文或所有报文后,主控制器可以继续执行其它的程序。

概述系统构成CAN通信的控制CAN通信的应用2)中断方式的接收由图6-17给出的程序流程图可以看出,CAN控制器的接收中断和主控制器用于连接CAN控制器接收中断信号的外部中断源,应在接收报文开始前开放。接收中断允许标志在控制寄存器(BasicCAN模式)或在中断允许寄存器(PeliCAN模式)。

概述系统构成CAN通信的控制CAN通信的应用若SJA1000已经接收到了报文,也就是说该报文已经通过认可滤波并已存放到接收栈中,此时就会产生接收中断。主控制器可以立即响应中断,将接收报文读入主控制器的报文缓冲器中,发出释放CAN接收缓冲器命令。若接收栈(ReceiveFIFO)中还有报文,CAN控制器将产生新的接收中断。因此,我们没有必要在一次接收中断响应中,将接收栈中的所有报文一次性读出。

概述系统构成CAN通信的控制CAN通信的应用图6-18中给出的程序流程是在一次接收中断响应循环中,将接收栈中的所有报文读出。与图6-17给出的流程不同之处在于,该程序流程在发出释放缓冲器命令后,检验状态寄存器中接收缓冲器状态位RBS,若状态位为1(满状态),则继续读出下一报文,而不是直接中断返回。正如图6-17中所示,报文的全部接收过程均可以在中断子程序中完成,不需要与主程序交换信息。如果方便的话,对接收报文的处理程序也可以在中断子程序中完成。

概述系统构成CAN通信的控制CAN通信的应用概述系统构成CAN通信的控制CAN通信的应用数据过载处理如果接收栈已满,而此时

温馨提示

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

评论

0/150

提交评论