CAN通信控制器SJA1000

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

工业控制网络(现场总线)4.2独立CAN控制器SJA1000CAN控制器SJA1000的作用实现网络层次结构中的数据链路层和物理层功能。PHILIPS公司生产,是PCA82C200的升级产品CAN控制器SJA1000在系统中的位置传感器执行元件模块控制器CAN控制器CAN收发器TXRX传感器执行元件微控制器SJA100082C250TXRXCAN总线分布模块1分布模块21特性与PCA82C200独立CAN控制器引脚和电气兼容;具有PCA82C200模式(即默认的BasicCAN模式);扩展的接收缓冲器(64字节FIFO);(有什么好处?可以在处理报文的时候接收其他报文)支持CAN2.0A和CAN2.0B协议;既支持11位标识符,也支持29位标识符;1特性位速率最高可达1Mbps;支持PeliCAN扩展模式:最高24MHz时钟频率;方便与各种微控制器接口;可编程的CAN输出驱动器配置;增强的环境温度范围(-40—125℃)。2一般说明SJA1000有两种工作模式:BasicCAN模式——与PCA82C200兼容的模式PeliCAN模式——扩展功能模式工作模式通过时钟分频寄存器中的CAN模式位来选择,复位默认模式是BasicCAN模式。两种封装形式:一种为28引脚的塑质双列式封装(DIP28)一种为28引脚的塑质小型线外封装(SO28)2一般说明3方框图接口管理逻辑错误管理逻辑位定时逻辑复位振荡器位流处理器接受过滤器发送缓冲器RXFIFO接收缓冲器报文缓冲器内部总线地址/数据控制VDD3VSS3VSS2VDD2TX0TX1RX0RX1VDD13-7,11,162,1,28-2378228121513141920211817910SJA1000XTAL1XTAL2AD7-AD0VSS1RSTALE/AS、/CS、(/RD)/E、/WR、CLKOUT、MODE/INT解释来自CPU的命令,控制CAN寄存器的寻址,向主控制器提供中断信号和状态信息4引脚排列引脚定义5、BasicCAN地址分配SJA1000对微控制器而言是内存管理的I/O器件,所以对SJA1000的编址是通过I/O统一编址的。(单片机对SJA1000的操作是通过操作SJA1000中的寄存器来实现的。)SJA1000的地址区包括控制段和报文缓冲器(发送缓冲器和接收缓冲器,见表4-3BasicCAN地址分配表)。BasicCAN地址分配由AD7~AD0确定的地址控制段在初始化加载期间(复位模式)是可被编程的,以配置通信参数(比如位定时、地址过滤等)CAN总线上的通信过程也由微控制器通过控制段来控制BasicCAN地址分配最多10字节发送方将一个要发送的报文写入发送缓冲器BasicCAN地址分配最多10字节微控制器从接收缓冲器中读取接收的报文,然后释放接收缓冲器以作后续使用。对寄存器的访问,有两种不同的模式:复位模式:在硬件复位后或控制器掉电时,会自动进入复位模式。运行模式(工作模式):是通过控制寄存器中的复位请求位的复位来激活的。控制寄存器(CR)用于改变CAN控制器的状态。这些位可以被相连接的微控制器置位或复位,微控制器可以对控制寄存器进行读/写操作。位符号名称值功能CR.0RR复位请求1复位请求置位,中止当前的报文发送/接收,进入复位模式0在复位请求位‘1-0’跃变时,SJA1000返回工作模式各个位的功能如下:工作过程:复位请求置位——初始化——复位请求复位,进入工作模式位符号名称值功能CR.7---保留;CR.6---保留;CR.5---保留;CR.4OIE溢出中断使能1使能;如果数据溢出位被置位,微控制器接收一个溢出中断信号(见状态寄存器—数据溢出状态位)0禁止;微控制器不从SJA1000接收溢出中断信号CR.3EIE错误中断使能1使能;如果出错或总线状态改变,微控制器接收一个错误中断信号(见状态寄存器—出错状态位)0禁止;微控制器不从SJA1000接收错误中断信号CR.2TIE发送中断使能1使能;当一个报文被成功发送或发送缓冲器可再次被访问时(例如,中止发送命令后),SJA1000发送一个发送中断信号给微控制器0禁止;SJA1000不向微控制器发送中断信号CR.1RIE接收中断使能1使能;当一个报文被无错接收时,SJA1000发出一个接收中断信号给微控制器0禁止;SJA1000不向微控制器发送中断信号对微控制器来说是只写存储器。如果对该地址进行读访问,返回值为“11111111”。位符号名称值功能CMR.4GTS进入睡眠1睡眠;如果没有CAN中断等待,且没有总线活动,SJA1000进入睡眠状态0唤醒;SJA1000运行正常CMR.3CDO清除数据溢出1清除;清除数据溢出状态位0无动作CMR.2RRB释放接收缓冲器1释放;释放RXFIFO接收缓冲器中的报文存储空间0无动作CMR.1AT中止发送1出现;将取消等待处理的发送请求。(注:正在进行的发送是不能被中止的)0空缺;无动作CMR.0TR发送请求1出现;一个报文将被发送0空缺;无动作命令寄存器(CMR)各个位的功能如下:位符号名称值功能CMR.7---保留CMR.6---保留CMR.5---保留状态寄存器(SR)状态寄存器的内容反映SJA1000的状态。状态寄存器对微控制器来说是只读存储器。提供给用户以查询的方式来处理数据传输。位符号名称值功能SR.3TCS发送完成状态1完成;最近的请求发送被成功完成0未完成;先前的请求发送仍未被完成SR.2TBS发送缓冲器状态1释放;CPU可以向发送缓冲器写一个报文0锁定;CPU不能访问发送缓冲器;一个报文正在等待发送或已在处理中SR.1DOS数据溢出状态1溢出;一个报文被丢失,因为RXFIFO中没有足够的空间来存储该报文(用以指示当前报文丢失了,建议反馈延迟重发)0未溢出SR.0RBS接收缓冲器状态1满;RXFIFO中有可用报文0空;无可用报文各个位的功能如下:位符号名称值功能SR.7BS总线状态1总线脱离;SJA1000不参与总线活动0总线在线;SJA1000参与总线活动SR.6ES错误状态1错误;0正常;SR.5TS发送状态1发送;SJA1000正在发送一个报文0空闲;没有报文在发送中SR.4RS接收状态1接收;SJA1000正在接收一个报文0空闲;没有报文在接收中中断寄存器(IR)1、中断寄存器用作中断源的识别;2、当寄存器的一位或多位被置位时,/INT引脚有效(低),引起中断;3、中断寄存器对微控制器来说是只读存储器;4、该寄存器被微控制器读过之后,所有位被复位,则/INT为1,中断信号自动清除,以免重新引起中断。位符号名称值功能IR.2EI错误中断1错误中断使能时,错误状态位或总线状态位的变化会置位此位0微控制器的任何读访问可自动清除此位IR.1TI发送中断1发送缓冲器状态从逻辑0至逻辑1跳变(释放总线),且发送中断使能位被置为逻辑1(使能)时,此位被置位,表示发送完成0微控制器的任何读访问可自动清除此位IR.0RI接收中断1当接收FIFO不空且接收中断使能位被置为逻辑1(使能)时,此位被置位,表示有数据待接收0微控制器的任何读访问可自动清除此位各个位的功能如下:位符号名称值功能IR.7---保留IR.6---保留IR.5---保留IR.4WUI唤醒中断1退出睡眠模式时此位被置位0微控制器的任何读访问可自动清除此位IR.3DOI数据溢出中断1当数据溢出中断使能被置为逻辑1(使能)时,一旦数据溢出状态位‘0-1’跃变,此位即被置位0微控制器的任何读访问可自动清除此位发送缓冲区用来存储微控制器要发送的一个报文。发送缓冲区只有在工作模式下才可被微控制器写入和读出。在复位模式下读出的值是“FFH”。CAN地址场名称位7654321010描述符标识符字节1ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.311标识符字节2ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.012数据TX数据1发送数据字节113TX数据2发送数据字节214TX数据3发送数据字节315TX数据4发送数据字节416TX数据5发送数据字节517TX数据6发送数据字节618TX数据7发送数据字节719TX数据8发送数据字节8ID0~ID10为报文标识符,在仲裁过程中决定总线访问的优先级,值越低,优先级越高;其中ID10~ID3还用作地址过滤远程发送请求位:1——远程帧;0——数据帧数据长度码:决定数据区的长度,采用8421编码,最大为8接收缓冲区几点说明:1、接收缓冲区的整体配置和发送缓冲区相似,因为接收缓冲区的数据即是由发送缓冲区发送过来的数据;2、接收缓冲区是RXFIFO中可访问的部分,位于CAN地址的20—29之间;3、标识符、远程发送请求位、数据长度码和数据,除地址不同之外,具有与在发送缓冲区中所描述的相同含义和配置;4、RXFIFO共有64字节的报文空间。如果RXFIFO中没有足够的空间来存储新的报文,CAN控制器就会产生数据溢出。数据溢出发生时,已部分写入RXFIFO的当前报文将被删除,这种情况会通过状态位或数据溢出中断指示给微控制器。利用接收过滤器,CAN控制器只允许接收标识符位(ID10—ID3)与接收过滤寄存器中预设值相一致的报文进入RXFIFO中。接收过滤器通过接收码寄存器和接收屏蔽寄存器来定义。(1)接收码寄存器(ACR)(预设本地节点地址)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.0接收过滤器(2)接收屏蔽寄存器(AMR)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0定义接收码寄存器与接收滤波的对应位的哪些位是“相关的”(AM.X=0)或“不予关心的(AM.X=1)地址过滤方法:接收码位(AC.7—AC.0)(本地节点地址,需预先设定)和报文标识符的高8位(ID.10—ID.3)必须在被接收屏蔽位(AM.7—AM.0)标定为相关的那些位的位置上相等,报文才被接收。思考题:CAN总线的发送器和接收器均使用SJA1000,采用CAN2.0A规范,发送器发送的4个报文的ID分别为:(1)11001100001;(2)11001101001;(3)11001000001;(4)11001001001。欲使接收器只接收报文(1)、(3),应如何设置接收器SJA1000的ACR和AMR?总线定时寄存器0的内容确定波特率预置器(BRP)和同步跳转宽度(SJW)的值。在复位模式下,此寄存器是可以被访问(读/写)的。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SJW.1SJW.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0总线定时寄存器0(BTR0)(1)波特率预置器(BRP)——决定CAN的系统时钟和位定时可见:系统时钟频率最大只能为振荡频率的1/2(2)同步跳转宽度(SJW)为了补偿在不同总线控制器(SJA1000)的时钟振荡器之间的相移,任何总线控制器必须重同步于当前发送的任何相关信号沿。同步跳转宽度确定一个位时间可以被一次重同步所缩短或延长的时钟周期的最大数目:总线定时寄存器1的内容确定位周期的长度、采样点的位置和在每个采样点欲获取的采样数目。在复位模式,可读/写。各个位的定义如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0总线定时寄存器1(BTR1)采样位时间段1时间段2(1)采样位(SAM)位值功能SAM1三倍;总线被采样三次,可以有效过滤总线上的毛刺;建议用于低/中速总线上使用0单倍;总线被采样一次;建议用于高速总线上(2)时间段1(TSEG1)和时间段2(TSEG2)TSEG1和TSEG2决定每一位的时钟周期数目(即传送一个位的时间)和采样点的位置,这里定义:同步段因为tscl=4tCL

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功