基于CAN控制器SJA1000的智能高速控制系统设计

发布者:MindfulYogi最新更新时间:2016-05-31 来源: elecfans关键字:CAN控制器  SJA1000  高速控制系统 手机看文章 扫描二维码
随时随地手机看文章
SJA1000的特点及功能

SJA1000是一种应用于汽车和一般工业环境的独立CAN总线控制器,经过简单总线连接可完成CAN总线的物理层和数据链路层的所有功能。其硬件与软件设计和PCA82C200的基本CAN模式BasicCAN兼容。同时,新增加的增强CAN模式PeliCAN还可支持CAN2.0B协议。SJA1000的主要特性如下 :1、管脚及电气特性与独立CAN总线控制器PCA82C200兼容 ;2、软件与PCA82C200兼容(缺省为基本CAN模式);3、扩展接收缓冲器(64字节FIFO);4、支持CAN2.0B时支持11和29位标识符;5、位通讯速率为1Mbits/s;6、增强CAN模式(PeliCAN);7、采用24MHz时钟频率;8、支持多种微处理器接口;9、可编程CAN输出驱动配置;10、工作温度范围为-40~+125℃。
CAN控制模块构成
CAN控制模块由接口管理逻辑、发送缓冲器、接收缓冲器(RXFIFO)、接收过滤器、位流处理器 (BSP)、位时序逻辑 (BTL)和错误管理逻辑(EML)组成。

图1 智能控制系统硬件原理图

新增功能
PeliCAN模式,将识别码从11位扩展到29位,使CAN总线的节点数大大地扩大,从而使得CAN总线的适用范围更加广泛。除了扩展了识别码,PeliCAN模式还有以下扩展功能:1、可读 /写访问的错误计数器;2、可编程的错误计数器;3、最近一次错误代码寄存器;4、对每一个CAN总线错误的中断;5、具体控制为控制的仲裁丢失中断;6、单次发送 (无重发);7、只听模式 (无确认,无活动的出错标志);8、支持热插拔 (软件位速率检测);9、接收过滤器扩展 (4字节代码,4字节屏蔽);10、自身信息接收 (自接收请求)。以上扩展功能为用户更好地识别和处理发送和接收错误、更好地应用和调试CAN控制器提供了方便。

智能控制系统硬件电路设计
根据SJA1000的功能特点以及课题的实际需要,我们选用SJA1000作为CAN控制器,并且使用了CAN控制器接口芯片PCA82C250,PCA82C250是CAN协议控制器和物理总线之间的接口。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力。整个系统以Intel 16位单片机80C196KC为核心。INTEL 80C196KC采用68脚PLCC封装形式,内部寻址采用寄存器结构,从而避免了以往8位单片机只能用累加器参与寻址而产生的瓶颈效应,大大提高了工作效率。其内部设有256个字节的RAM,带有28个中断源,可形成16个中断矢量。在16MHz的晶振下,16乘16位的乘法只需1.75ms,32除16位除法指令只需3.2ms,尤其适合于高采样频率快速控制系统,它本身还带有3路PWM输出引脚,可直接驱动三相电动机,内部设有3个H窗口和1个V窗口,使特殊功能寄存器的数量和保护功能倍增。由于采用的是CMOS工艺,其功耗小,并有掉电保护和闲置功能。因此,采用INTEL公司生产的16位单片机80C196KC机作为控制系统的主控制器是十分理想的选择。SJA1000在智能控制系统中的硬件配置与CAN总线接口的电路如图 1所示。硬件电路中使用 PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰,实现热防护等。
SJA1000在电路中是一个总线接口芯片,实现从上位机PC-CAN接口到现场微处理器之间的数据通信。对于微处理器而言,SJA1000是一个总线接口,SJA1000片内的存储单元相对80C196KC来说是片外的数据存储器,因此,可以按照扩展片外数据存储器的形式来访问SJA1000的寄存器地址。80C196KC是CAN控制器的微处理器,把80C196KC的ALE、RD、WR和 SJA1000的ALE、RD、WR相连就构成一个最小系统节点。80C196KC通过地址总线经GAL译码来选通 SJA1000,并由此决定CAN控制器各寄存器的地址,通过读、写外部数据存储器的形式来访问 SJA1000。在系统中我们将SJA1000的TX1脚悬空,RX1引脚接地,形成CAN协议所要求的电平逻辑。该电路的主要功能就是通过CAN总线接收来自上位机的数据进行分析组态,然后下传给下位机的控制电路实现控制功能,当智能控制系统接收到下位机的上传数据,SJA1000的中断输出INT脚就会被激活,出现一个由高电平到低电平的跃变,产生一个中断,从而引发微处理器80C196KC产生中断,通过中断处理程序接收每一帧信息并通过CAN总线上传给上位机进行分析,以便及时纠正误码、错码。
在进行电路设计时应当注意:为进一步提高系统抗干扰能力,在CAN控制器SJA1000和CAN控制器接口82C250之间加接6N137光电隔离芯片,并采用DC-DC变换器隔离电源;通信信号传输到导线的端点时会发生反射,反射信号会干扰正常信号的传输,因而总线两端两个124W的电阻对匹配总线阻抗起着相当重要的作用,忽略掉它们,会使数据通信的抗干扰性和可靠性大大降低,甚至无法通信;82C250第8脚与地之间的电阻RS称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式。在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式,上升和下降的斜率取决于RS的阻值。通常情况下,15KW~200KW为RS较理想的取值范围。在这种方式下,可以使用平行线或双绞线作总线。

系统软件设计
系统软件设计的指导思想是系统上电后首先对80C196KC和SJA1000进行初始化,以确定工作主频、波特率、输出特性等,然后通过查询方式获取模数转换采样值,并把该值通过SJA1000传送到CAN总线上由上位PC机进行显示控制,而对CAN总线上来的信息则采用中断方式,系统每接收到一帧信息,便产生一次中断以触发微处理器进入中断,在中断服务程序中读取该帧信息并传送到现场。为防止出现死机和干扰,程序中还采用看门狗技术进行定时监控。以下CAN总线的初始化设计,假设SJA1000的首址是A000H:
CR EQU A 0 0 0H ;控制寄存器
CMR EQU A 0 0 1H ;命令寄存器
SR EQU A 0 0 2H ;状态寄存器
IR EQU A 0 0 3H ;中断寄存器
ACR EQU A 0 0 4H ;验收码寄存器
AMR EQU A 0 0 5H ;验收屏蔽寄存器
BTR0 EQU A 0 0 6H ;总线定时寄存器 0
BTR1 EQU A 0 0 7H ;总线定时寄存器 1
OCR EQU A 0 0 8H ;输出控制寄存器
DI
LDB CL , # 03H
STB CL ,CR ;开放接收中断,复位
请求位置1,以开始初始化。
LDB CL , # 01H  
STB CL ,ACR ;将节点1标识符送ACR
LDB CL , # 0FEH 
STB CL ,AMR ;验收滤波
LDB CL , # 0 0H 
STB CL ,BTR0 ;传送波特率为
250kbps
LDB CL , # 1 4H   
STB CL ,BTR1 ;定义位周期宽度 ,
采样点位置及采样次数选
LDB CL , # 0AAH  
STB CL ,OCR ;选择正常输出方式 
,建立输出驱动器的配置。
LDB CL, # 1AH 
STB CL,CR ;复位请求位置0,初
始化结束
EI
对CAN控制器进行初始化,实际上就是对ACR、AMR、BTR0、BTR1、OCR这些寄存器进行访问。只有当控制寄存器CR中的复位请求位为高时,访问才被允许,否则既写不进去,也读不出正确的内容。对CR进行第一次写操作,要设定将要开放的中断类型,并置位复位请求,允许初始化开始。对ACR、AMR进行写操作,要界定对什么样的报文予以接收,因此有时称它们为验收滤波器。当满足以下两个条件之一,并存在空的接收缓存器(RBF)时,完整报文可被正确接收。
条件一 :ACR与报文标识符的高 8位在AMR为“0”相关位上对应相等。
条件二 :AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位。
这两个寄存器也是编排标识符的基本依据。
对BTR0进行操作,可决定波特率预分频器 (BRP)和同步跳转宽度(SJW)的数值;对BTR1进行写操作,可决定位周期的宽度,采样点的位置及在每个采样点进行采样的次数。这两个寄存器的内容,可唯一确定波特率及同步跳转宽度。例如:程序中BTR0 =00H ,BTR1=14H ,晶振频率为16MHz时,采样时钟周期tSCL等于两倍的振荡器时钟周期。波特率刚好为1Mbps,同步跳转宽度为一个tSCL。
在编写程序时,还需特别注意的是,一个系统中的所有节点BTR0和BTR1的内容都应相同,否则控制系统将无法和上位机进行通信。对OCR进行写操作,可确定CAN控制器的输出方式,并建立起CAN总线要求的电平逻辑所需输出驱动器的配置。对CR进行第二次操作主要是清复位请求位,使SJA1000返回正常运行状态。成功的初始化SJA1000后,系统就可以应用它来传输报文。系统总体程序框图及中断服务程序框图见本刊网站。

结语
实践表明,SJA1000是一种较好的CAN总线控制器件,在PeliCAN模式下,其识别码达29位,因而可满足各种应用场合。在自动化控制系统中,合理安排这29位识别码可以使许多问题得以简化。此外PeliCAN模式增加的各种功能,如:各种错误处理功能大大地提高了用户程序处理各种通信错误的能力;支持热插拔和自身信息接收功能,使用户不必事先知道预设的波特率,从而大大地方便了通信的调试。

关键字:CAN控制器  SJA1000  高速控制系统 引用地址:基于CAN控制器SJA1000的智能高速控制系统设计

上一篇:基于虚拟仪器的CANopen协议监控面板设计
下一篇:四轮独立驱动电动车高速CAN网络数据分析技术

推荐阅读最新更新时间:2024-05-03 00:25

CAN总线在商用车上数据采集的实现
    控制器局域网(CAN,Controller Area Network)是一种支持分布式实时控制的串行通讯网络系统,具有很高的安全性,主要应用于嵌入式控制器的通讯系统和智能装置的开放式通讯系统,据统计,应用CAN总线后,整车线束连线可缩短200~1000 m,质量可减轻9-17kg,布线明显简化,可靠性和实时性显著提高。 1 商用车控制系统及其拓扑结构     商用车控制系统的控制对象包括:底盘系统、车身系统、发动机。如图1所示。 图1 商用车控制系统拓扑结构 2 商用车CAN总线数据的采集硬件设计 2.1 车身节点的数据采集     商用车车身系统需要采集的信号有左右门集控锁,电控车窗、雨刮
[嵌入式]
基于CAN总线的家庭控制器的设计与实现
引言   CAN(Controller Area Network)总线是德国Bosch公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1Mbps,通信距离可达10km,CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,使网络内的节点个数在理论上不受限制。由于CAN总线具有较强的纠错能力,支持差分收发,因而适合高干扰环境,并具有较远的传输距离。因此,CAN协议对于许多领域的分布式测控是很有吸引力的。目前CAN已成为ISO11898标准,其特性如下:   (1)CAN是一种有效支持分布式控制和
[安防电子]
基于<font color='red'>CAN</font>总线的家庭<font color='red'>控制器</font>的设计与实现
基于STM32F105微控制器的双CAN冗余设计方案
控制器局域网( Contro llerA reaN etwo rk, CAN)是一种多主方式的串行通讯总线。CAN 总线具有较高的位速率, 很强的抗电磁干扰性, 完善的错误检测机制, 在汽车、制造业以及航空工业领域中得到广泛应用 。由于船舶机舱环境极为恶劣, 且船舶航行过程中维修条件不如陆上, 对CAN 通信的可靠性要求很高, 采取双CAN 冗余总线提高通信可靠性。本文提出一种基于STM32F105微控制器的双CAN 冗余设计方案。   1 硬件平台组成   STM32F105是STM icroe lectron ics公司推出的一款基于ARM Co rtex- M3内核的32位微控制器, 其内核是专门设计于满足高性能、低
[工业控制]
基于STM32F105微<font color='red'>控制器</font>的双<font color='red'>CAN</font>冗余设计方案
基于CAN Bus MCU的电梯控制器和监测应用设计
CAN Bus(Controller Area Network),控制器区域网,起源于80年代,由国际标准化组织(ISO)所发布,因为利用双线差动(two-wired differential),使其即使在电器条件恶劣环境下,也可正常运作的一种传输总线。又因双线沟通的特性,大幅缩减了其应用线路的使用量,也降低传统线路复杂易造成错误的发生机会。 基于以上特性,CAN Bus一大应用层面即被导入于汽车工业,因传统的汽车使用线路复杂,使得早期汽车内部线路易于发生故障时且较难以排除。因此双线差动讯号式CAN Bus的电器特性即被快速导入并广泛运用在各交通工具领域(航空、轮船与汽车)或是工业控制。 强健的协议与其编码格式 CAN
[嵌入式]
车载CAN总线网络用32位微控制器FR Family MB91F467BA
这是一款行业内最高速度级,在最大工作频率为100MHz的CPU核心上内置了6通道的CAN控制器的微处理器。这款产品除了拥有强大的基础性能,并且富有通用性,它是针对未来汽车网络的需求会不断的增加而研发的微控制器。其核心采用富士通面向车载的32位微处理器的核心,是“MB91460系列”的主力产品。 概要 近年来,在汽车的车身和行驶控制上,CAN系统的使用越来越普及,车内网络速度越来越快,连接的设备也不断多样化。在控制各设备的ECU中,控制车身的ECU开始朝着制控制整个车内网络的方向发展。 富士通微电子开发的32位微控制器“MB91F467BA”针对未来汽车网络控制的需求不断增加,内置行业内最多的6通道的CAN控制器,还考虑
[嵌入式]
基于CAN总线的四路舵机控制器的研究
舵机是导弹飞控组织的重要部分。随着高性能稀土电机技术和高能电池的发展,精确制导武器上高性能舵机系统的研究被重视,各利新型的电机伺服系统的控制技术不断出现,提高舵机伺服系统的性能成为当前的迫切需要。为此,设计者在考虑了谐波传动的随速度波动和低阻尼特点,以提高舵机系统控制品质为目标,提出了一种新型舵机控制系统。该硬件系统以主控芯片DSP TMS320F2812 为核心,结合82C250(CAN总线收发器)和射极跟随器(以INA114为核心),并通过CAN2.0A总线接口实现了PC机与DSPTMS320F2812之间的参数传送。 由于舵机系统对定位精度、频率响应特性、阶跃响应特性和震荡次数等因素有着非常高的要求,因此其测试数据、分析曲线
[工业控制]
基于<font color='red'>CAN</font>总线的四路舵机<font color='red'>控制器</font>的研究
单片机与SJA1000 CAN控制器接口电路
图为C8051F020型单片机与SJA1000型控制器的硬件连接电路原理。SJA1000占用了0x8000-0x80FF的外部RAM空间。当单片机访问以上空间时片选信号会选中SJA1000。 C8051F020有高低2个外部存储器接口。因此,SJA1000的AD0-AD7连接到C8051F020的高端口P7口,CS连接到基址为0x8000的外部存储器片选信号。当C8051F020访问地址0x8000-0x80FF时,CPU可对SJA1000执行相应的读/写操作。SJA1000的RD、WR和ALE分别与C8051F020的对应引脚相连,INT接C8051F020的INT0引脚,于是C8051F020可通过中断方式访问SJA10
[单片机]
单片机与<font color='red'>SJA1000</font> <font color='red'>CAN</font><font color='red'>控制器</font>接口电路
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved