导航:全球石油化工网 >> 产品频道 >> 工业自动化 >> 集成电路 >> 单片机
该公司还有5条同类“单片机”供应商机
详细信息
 型号:   双极型  品牌:   SJA1000
 静态功耗:   中规模 (mW)  工作温度:   厂家直销 (℃)
 集成程度:   NXP  规格尺寸:   模拟信号 (mm)
 制作工艺:   半导体集成  导电类型:   DIP
 处理信号:   新品  特色标志:   08

CAN控制器SJA1000及其应用 2009.07.06   恒欣科瑞总代理 摘要:介绍CAN控制器SJA1000的特点、内部结构以及SJA1000的寄存器结构及地址分配;CAN协议通信格式。并以独立CAN控制器SJA1000为例,结合CAN协议说明了一种通用型CAN总线的开发与设计。s0100    关键词:CAN总线SJA1000单片机    1SJA1000简介    SJA1000是PHILIPS公司早期CAN控制器PCA82C200的替代品,功能更强,具有如下特点:    ①完全兼容PCA82C200及其工作模式,即BASICCAN模式;    ②具有扩展的接收缓冲器,64字节的FIFO结构;    ③支持CAN2.0B;    ④支持11位和29位识别码;    ⑤位速率可达1Mbit/s;    ⑥支持peliCAN模式及其扩展功能;    ⑦24MHz的时钟频率;    ⑧支持与不同微处理器的接口;    ⑨可编程的CAN输出驱动配置;    ⑩增强了温度范围(-40℃~+125℃)。    图1SJA1000内部结构    2SJA1000内部结构    SJA1000的内部结构如图1所示,主要由接口管理逻辑IML、信息缓冲器(含发送缓冲器TXB和接收缓冲器RXFIFO)、位流处理器BSP、接收过滤器ASP、位时序处理逻辑BTL、错误管理逻辑EML、内部振荡器及复位电路等构成。IML接收来自CPU的命令,控制CAN寄存器的寻址并向控制提供中断信息及状态信息。CPU的控制经IML把要发送的数据写入TXB,TXB中的数据由BSP处理后经BTL输出到CANBUS。BTL始终监视CANBUS,当检测到有效的信息头“隐性电平-控制电平”的转换时启动接收过程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤,只有当接收的信息的识别码与ASP检验相符时,接收信息才最终被写入RXB或RXFIFO中。RXFIFO最多可以缓存64字节的数据,该数据可被CPU读龋EML负责传递层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计。    3SJA1000的寄存器结构及地址分配    表1是工作在BASICCAN模式下的SJA1000的寄存器结构及地址分配表。CAN控制器工作模式的设定、数据的发送和接收等都是通过这些寄存器来实现的。时钟分频寄存器OCR用于设定SJA1000工作于BASICCAN还是PeliCAN,还用于CLKOUT引脚输出时钟频率的设定,在上电初始化控制器时必须首先设定;在工作模式下,控制寄存器CR用于控制CAN控制器的行为,可读可写;命令寄存器CMR只读写;状态寄存器SR只能读;而IR、ACR、AMR、BTR0、BTR1、OCR在工作模式下读写无意义。通常,在系统初始化时,先使CR.0=1,SJA1000进入复位模式。在此模式下IR、ACR、AMR、BTR0、BTR1及OCR均可读可写,此时设置相应的初值。当退出复位模式时,SJA1000即按复位时设定的相应情况工作于工作模式,除非再次使芯片复位,否则上次设定的值不变。当需要发送信息时,若发送缓冲器空闲,由CPU控制信息写入TXB,再由CMR控制发送;当接收缓冲器RXFIFO未满且接收信息通过ASP,则接收到的信息被写入RXFIFO。可通过两种方法读取接收到的信息。一种方法是,在中断被使能的情况下,由SJA1000向CPU发中断信号,CPU通过SR及IR可以识别该中断,并读取数据释放接收缓冲器;另一种方法是直接读取SR,查询RXFIFO的状态,当有信息接收时,读取该信号自并释放接收缓冲器。当接收缓冲器中多条信息时,当前的信息被读取后,接收缓冲器有效信号会再次有效,通过中断方式或查询方式可以再次读取信息,查到RXFIFO中的信息被全部读出止。当RXFIFO已满,如还有信息被接收,此接收信息不被保存,且发出相应的缓冲器溢出信号供CPU读取处理。    表1SJA1000的寄存器结构及地址分配表寄存器地址寄存器名地址寄存器名地址控制寄存器CR0测试寄存器9    接    收    缓    冲    器RDID020命令寄存器CMR1发TXID010RDID121状态寄存器SR2送TXID111RXDATA122中断寄存器IR3缓TXDATA112··接收代码寄存器ASR4冲····接收屏蔽寄存器AMR5器····位定时寄存器BTR06T··RXDATA929位定时寄存器BTR17XTXDATA819时钟分频寄存器OCR31输出控制寄存器OCR8B    4CAN协议通信格式    CAN协议通信格式中有四种帧格式:数据症远程症出错帧和超载郑其中数据帧和远程帧的发送需要在CPU控制下进行,而出错帧和超载帧的发送则是在错误发生或超载发生时自动进行的。因此人们更关心前两个帧的结构。数据帧结构如图2所示。    一个完整的数据帧格式,除仲裁尝控制尝数据场外都是CAN控制器发送数据时自动加上去的,而仲裁尝控制尝数据场则必须由CPU控制给出。用SJA1000时,写出发送缓冲器的TXID0、TXID1即设定了相应的仲裁场和控制常TXID0即为仲裁场的高8位,TXID1的高3位为仲裁场的低3位,仲裁场共11位。TXID1的第5位为RTR位,即远程请求位,在数据帧中为“0”;TXID1低四位标示数据场所含字节数的多少,称为DLC。RTR与DLC共同构成控制常发送的数据组成数据场,最多不超过8个字节。远程帧与数据帧的形式差别在于没有数据常除此形式上的差别外,在远程帧中RTR位须置“1”,表示请求数据源节点向它的目的点(即发送远程帧的节点)发送数据。源节点接收到该帧后,把要发送数据用数据帧发给目的节点,完成数据请求。CRC场与ACK场都是在低层次上为提高传输的可靠性而自动进行的。任何帧与帧之间是帧间空间。    5设计实例    5.1整体设计思路    这里用SJA1000与AT89C51芯片设计一种具有通用性的工业测试控制,系统的结构图如图3所示。    CAN总线是一种多主总线,理论上任何一个节点都可以作为主节点。在本系统中设置与上位PC机相连的节点1和节点2为上位节点,其它节点为底层节点。在任务比较简单的系统中,也可以只设置一台上位PC机,PC机通过串口与节点上的CPU通信,CPU再与CAN控制器SJA1000通信,实现信息在CANBUS上的发送与接收。节点1与节点2的结构相同,而底层节点根据应用的不同具有不同的功能。但它们都具有与CANBUS通信的能力,上传数据和接收数据。    5.2电路原理图    节点1与节点2的原理图如图4所示。AT89C51通过MAX232与PC机串行通信。设置SJA1000工作于Intel模式,由PC机发送的数据写入SJA1000并通过CAN收发器发送。接收数据是通过中断进行的,CANBUS的数据经CAN接口芯片82C250接收并写入SJA1000的RXFIFO,然后通过中断提请CPU读龋读取的数据由RS232口上传送给PC机。    在本系统中其它节点不与PC机通信,此时AT89C51除与SJA1000相接的口线外还剩余口线,可以做其它用途。如用于数据的采集,则与A/D转换芯片相接即可;如与控制相关,则与控制口相接即可,这样一来可以灵活地构成各种系统。    5.3软件设计 该系统的软件设计分为两方面:(1)PC机软件设计,可以用VC++、VB,也可以使用工控软件完成。如只用于监视系统,设计的重点在于PC机与节点之间的通信。(2)节点上CPU的软件设计。不论是节点1、2或是其它底层节点,都要用到CAN通信,因此都要设置CAN控制器。其初始化的流程图如图5所示。    图4节点1和节点2的电路原理图    具体的例程如下:    MOVDPTR,#CR;控制寄存器CR的地址送DPTR    MOVA,#01H    MOVX@DPTR,A;进入复位模式    MOVDPTR,#CDR    MOVA,#00H    MOVX@DPTR,A;选择BASICCAN模式、时钟不输出    MOVA,#NODECODE    MOVX@DPTR,A;节点号NODECODE写入ACR    MOVXDPTR,#AMR    MOVA,#00H    MOV@DPTR,A;AMR置为0,当且仅当RXID0=ACR时接收数据。    MOVDPTR,#BTR0;设定总线时序寄存器BTR0,系统采用12MHz晶振    MOVA,#85H;分频后总线时钟频率为2MHz    MOVX@DPTR,A;同步跳转宽度为3tscl    MOVDPTR,#BTR1;设定总线时序寄存器BTR1    MOVA,#0B4H;位同步时间为1个tscl,采样开始位置TSEG1=5tscl    MOVX@DPTR,A;TSEG2=4tscl,每一位时间10tscl(200kHz),每位采样3次    MOVDPTR,#OCR;设置输出控制寄存器    MOVA,#1AH;数据从TX0按正常输出模式同极性输出    MOV@DPTR,A;TX1不用    MOVDPTR,#CR;初始化完成,使控制器退出复位模式,进入工作模式工作。    MOVA,#06H    MOV@DPTR,A    该初始化程序使SJA1000工作在BASICCAN模式下,CAN总线位速率为200kHz。根据总线传输的距离不同速度可以调整。为提高其抗干扰性能,还可以在SJA1000与CAN总线收发器之间加光隔。各节点CPU的其它软件设计应视节点的功能而定,不再多述。    该系统用于城市区域交通中心信息采集及处理,已取得很好效果。由于传输距离较远,设定速率为10kHz,但可靠性较强,系统成本低廉。    CAN总线以其优良的性能使其应用方兴未艾,以SJA1000为控制器构成各种CAN总线系统方便、简单、成本低廉,这也是开发与应用其它CAN总线产品的基矗ImgLoad(document.getElementById("BodyLabel"));
其它相关产品
相关搜索推荐
找不到合适信息?

留下您的采购意愿,我们将帮您推荐诚信供应商!
注:此功能仅对企业用户开放,如果您不是企业用户请点击注册.

免责说明
本网所展现的公司信息、产品信息及其他相关信息均由企业自行提供,信息的真实性、准确性和合法性由商铺所属企业完全负责。全球石油化工网对此不承担任何保证责任。
关于我们 | 会员服务 | 电子样本 | 邮件营销 | 网站地图 | 诚聘英才 | 意见反馈
Copyright @ 2012 CIPPE.NET Inc All Rights Reserved 全球石油化工网 版权所有
京ICP证120803号 京ICP备05086866号-8 京公网安备110105018350