CAN总线/RS232接口的设计

发布者:真诚的友谊最新更新时间:2015-06-19 来源: eepw关键字:CAN总线  RS232接口 手机看文章 扫描二维码
随时随地手机看文章
1 引言

  CAN,全称为“Controller Area Network”,即控制器局域网,是一种国际标准的,高性价的现场总线,在自动控制领域具有重要作用。CAN是一种多主方式的串行通讯总线,具有较高的实时性能,因此,广泛应用于汽车工业、航空工业、工业控制、安全防护等领域。

  由于PC机无CAN接口,因此,PC机与智能节点构成CAN总线系统可采用RS232/CAN、并口/CAN、USB/CAN、ISA卡/CAN以及PCI卡/CAN方式接入。而采用RS232/CAN接入时,需采用CAN/RS232接口标准转换。针对这一问题,提出了CAN/RS232智能电平转换器设计方案,以SJAl000作为独立CAN控制器,完成CAN通信协议。并在SJAl000与驱动器之间连接高速光耦,从而实现总线各点间的电气隔离。

2 硬件电路设计

  CAN/RS232智能电平转换器硬件电路主要由微处理器AT89C52、独立CAN通讯控制器SJAl000、CAN总线驱动器82C250、高速光电耦合器6N136、TTL电平与RS232电平转换器ICL232、LED数码管显示电路以及为SJAl000提供初始地址的拨码电路组成,其结构框图如图1所示。

3 CAN控制器SJAlOOO

  SJAl000是一款独立CAN控制器,应用于移动目标和工业局域区域网控制领域。该器件是Philips公司CAN控制器PCA82C200的替代产品。SJAl000具有两种工作模式,本设计采用PeliCAN工作模式。

3.1 SJAl000与AT89C52的接口设计

  SJAl000与AT89C52的接口电路如图2所示。AT89C52负责sJAl000的初始化,控制SJAl000来实现数据的接收和发送等通讯任务。SJAl000的ADO~AD7连接至AT89C52的P0端口,CS连接至AT89C52的P3.4(AT89C52的定时器T0不起作用)。当P3.4为0时,AT89C52选中SJAl000,并通过访问外部RAM低地址区实现P0端口的读/写操作,从而对SJAl000相应寄存器执行读/写操作。SJAl000的RD、WR、ALE引脚分别与AT89C52的对应引脚相连,SJAl000的INT引脚接AT89C52的INTO引脚。AT89C52还可通过中断方式访问SJAl000。为了增强系统的稳定性,采用双晶体振荡器,AT89C52采用11.059 2 MHz的晶体振荡器,SJAl000选用16 MHz的晶体振荡器。复位电路可选用DSl232,其输出引脚ARES与SRES分别与AT89C5l的RESET引脚和SJAl000的RESET引脚相连。

3.2 SJAl000与驱动器的连接

  SJAl000的TX0、RX0引脚不是直接与82C250的TXD、RXD引脚相连,而是通过高速光耦6N136与82C250相连,这样可增强CAN总线节点的抗干扰能力,从而实现总线各节点间电气隔离。高速光耦6N136用于保护SJAl000型CAN总线控制器,该光耦两侧采用5 V的DC—DC电源.可使器件的VCC与VCCl完全隔离,提高系统的抗干扰能力以及节点的稳定性和安全性。图3所示为SJAl000与CAN驱动器82C250的连接电路。[page]


4 软件程序设计

  系统软件程序设计包括:主程序、CAN节点初始化子程序、RS232报文发送子程序、RS232报文接收子程序、CAN报文接收子程序以及CAN报文发送子程序。其主程序流程图如图4所示。

4.1 CAN节点初始化

  独立CAN控制器SJAl000必须在上电或硬件复位后设置CAN通讯。上电后SJAl000的17引脚得到一个复位电平(低电平),使其进入复位模式。初始化包括设置工作方式、接收滤波方式、接收屏蔽寄存器和接收代码寄存器、波特率参数和中断允许寄存器。初始化设置完成后,SJAl000则进入工作状态,开始执行通讯任务。

  SJAl000寄存器初始化,首先要将其模式寄存器(MOD)复位模式位置为l,再通过时钟分频寄存器(CDR)选择PeliCAN工作模式,同时关闭时钟输出(CLOCKOUT);通过中断允许寄存器(IER)开启发送中断、溢出中断和错误警告中断;向接收屏蔽寄存器(AMR)和接收代码(ACR)寄存器赋初值;通过总线定时寄存器0 (BTR0)和总线定时寄存器1(BTRl)设置波特率;为输出控制寄存器(OCR)赋初值;通过接收缓冲器起始地址寄存器(RBSA)来设置接收缓冲器FIF0的起始地址;清除发送错误计数寄存器(TXERR);清除错误代码捕捉寄存器(ECC),最后再次选择方式寄存器(MOD),设置单滤波,并返回工作状态。

4.2 RS232报文发送

  AT89C52内含一组全双工串行传输界面,可同时接收或传输外部数据,其信号为TTL电平。由于与标准的RS232界面不兼容,须加电平准转换IC才可与RS232相连。AT89C52串行发送及接收数据均是通过特殊功能暂存器SBUF完成,在设定通讯协议模式后,通过指令“MOV SUBF,A”就可将存储在SBUF暂存器内的数据由引脚TXD串行传输。

4.3 RS232报文接收

  AT89C52串行传输控制暂存器是由特殊控制暂存器SCON控制,SCON设定串行传输工作模式,发送接收时其第9位及发送接收时中断指示工作。通过指令“MOV A,SBUF”则将外界串行信号经由RXD引脚读入,并转换成并列数据存入暂存器A。

4.4 CAN报文发送

  根据CAN协议,报文传输是由独立CAN控制器SJAl000完成。主控制器必须将要发送的数据按特定格式组合成一帧报文传输到发送缓冲器,将命令寄存器中的“发送请求”置1,然后启动SJAl000发送即可。

4.5 CAN报文接收

  CAN报文接收子程序负责节点的报文接收和其他情况的处理。接收子程序在结构上要比发送子程序复杂一些,因为在接收报文时,要对同处理诸如总线关闭、错误报警、接收溢出等情况。SJAl000报文接收和发送有两种方式:中断方式和查询方式。查询方式应禁止接收中断使能,而中断方式一般用于实时性要求较高的情况。

  在中断方式下,如果SJAl000已接收一个报文,而且报文通过验收滤波器并存入接收FIFO,则产生一个接收中断。因此主控制器立刻工作,将收到的报文发送到报文存储器中,再通过置位命令寄存器的相应标志“RRB”发送一个释放接收缓冲器命令。接收FIF0里的更多报文将产生一个新的接收中断,因此不能将所有接收FIF0中的有效信息在一个中断周期内读出。接收缓冲器释放后,SJAl000会检查状态寄存器中接收缓冲器状态(RBS)是否有更多报文,所有有效信息都将循环读出。


5 结语

  本系统设计采用SJAl000作为CAN独立控制器,以CAN/RS232智能电平转换器为实例,论述了CAN总线与单片机之间的接口连接,对CAN总线的实际应用具有一定的参考价值。

关键字:CAN总线  RS232接口 引用地址:CAN总线/RS232接口的设计

上一篇:RS485总线接口电路及设计
下一篇:RS485接口引脚定义及说明

推荐阅读最新更新时间:2024-05-02 23:45

can协议_can总线协议
can协议   sja1000 原创经典:调试好的can总线程序(c语言) 程序中的两个头文件:        #include SJA_nnyt.H   //SJA存储器定义头文件        #include SJA_nnyt.C   //SJA子程序文件 大家需要的话联系我: nnyt@tom.com 同时提供can协议实验开发板给初学者 1     CAN控制器为SJA1000,驱动器为TJA1050,电源隔离; 2     提供详尽的源程序,可根据用户需求编写程序 联系我:13106551527(短信联系,QQ详谈)              QQ: 531706356   调试好的can总线程序(c
[嵌入式]
基于嵌入式CAN总线的远程工业监控系统设计
1 引言     Internet飞速发展,已成为信息交流的重要渠道,而基于Web B/S(Browser/Server)的远程监控技术应用也越来越广泛。将这种技术应用于工业现场控制,用户在Internet接人的地方,实现对工业现场设备进行远程监控,是当前倍受关注和研究热点的真正意义上的工业控制远程监控系统。 2 监控系统整体结构     本文设计了基于CAN总线的嵌入式远程监控系统,可以把工业现场的实时控制数据通过HTTP协议发送到远程浏览器,用于把工业设备接入Internet以实现在远程监控。系统的整体结构如图1所示。 图1 监控系统整体结构图     嵌入式CAN-HTTP转换与现场数据采集节点组成主从
[嵌入式]
CAN总线在啤酒发酵过程控制系统中的应用
引言     随着人们对啤酒品质的要求越来越高,传统的生产操作或控制方式已不再适应当今的生产规模和生产要求,发酵过程作为啤酒生产过程中至关重要的一环,其控制系统则尤其重要。CAN总线具有结构简单、通信方式灵活、错误检验处理等特点尤其基于优先权的无破坏性总线仲裁技术,特别适合工业过程监控设备的互联。因此,针对当前啤酒企业的设备现状和生产需要,本文将介绍一种采用CAN总线技术进行通信的啤酒发酵分布式控制系统。 图1  现场智能节点结构框图 图2  智能节点CAN总线接口电路 图3 节点查询发送(左)和中断接收(右)流程  图4  智能适配器USB—CAN硬件原理电路 控制系统总体结构     基于CAN总线的啤酒发
[嵌入式]
基于双层CAN总线的声纳数据通信系统设计
随着数字式声纳系统的发展,声纳基阵越来越大,系统功能日趋复杂,一部现代声纳要对几十路甚至几百路的数据进行采集,大容量数据的远距离传输成为声纳设计的重要课题。以往采用的以太网传输方式为超时重发机制,单点的故障容易扩散,造成整个网络系统的瘫痪。由于CAN总线传输距离远、速度快,有较强的抗电磁干扰能力,已成为国际上应用最广的现场总线之一。CAN为多主方式工作,其节点分成不同的优先级,采用非破坏仲裁技术,报文采用短帧结构,数据出错率极低,节点在错误严重的情况下可自动关闭输出。本系统利用双层CAN总线实现声纳数据通信,具有突出的可靠性、实时性和灵活性。 1 设计原理 本数据通信系统要同时对多区域、多单元的数据信息进行传输及管理控制,
[嵌入式]
CAN总线技术在工业码垛机器人控制系统中的应用研究
目前在用的工业码垛机器人种类繁多,但根据其多轴控制系统的技术特点一般可分为三种类型:1)基于PLC的多轴控制系统;2)基于PC的多轴控制系统;3)基于总线的多轴控制系统。其中,总线控制系统具有数字信号传输、系统完全开放等优点,得到广泛的应用。笔者通过研究发现,基于现场总线,尤其是CAN总线的工业码垛机器人在实际应用中具有便于组网、性价比高、扩展性强等特点,在大工业生产中具有广阔的发展前景。 工业码垛机器人 笔者所在科研团队开发的新型工业码垛机器人(机构简图如图1所示),其主体机械结构是基于平衡吊原理的七杆机构,具有承载力大、稳定性好、结构紧凑、节省能耗等特点。机器人的动力由四台交流伺服电机提供,分别负责机器人沿水平方向、沿垂直
[嵌入式]
车载空调压缩机CAN总线通讯采用隔离方案的原因
摘要:炎炎夏日,车内空调系统的稳定可靠运行显得尤为重要。本文将为您介绍如何通过总线隔离避免因通信不畅引起的车载空调故障。 一、为什么要用隔离 从能源种类来看,目前公路上的车型主要可以分为两类,一类是使用传统汽油、柴油作为燃料的车辆,另一类是使用电池的新能源车。这两类车型的车载空调系统有什么区别呢?传统的燃油车辆,空调压缩机是由发动机直接将动能传递给空调压缩机,而新能源车的空调压缩机则是由车内的电池驱动的。 图1 动力电池 将新能源汽车的动力电池驱动压缩机需要几个步骤,首先要将直流电转化为交流电(逆变),然后调整交流电频率使其能稳定驱动压缩机中的电机,该部分的功能部件在车辆中以空调驱动单元存在。说到高压、逆变、
[汽车电子]
车载空调压缩机<font color='red'>CAN总线</font>通讯采用隔离方案的原因
基于CANopen协议在车载设备中的应用研究
引言 在现代战争中,随着武器装备系统的机动化、自动化和信息化程度的不断提高,军用车辆上的车载设备也不断增多,其中很多设备如车载雷达、车载 光学 瞄准设备、车载武器设备等,都需要一个稳定的水平平台作为基座,以保证武器系统的瞄准、跟踪和精确打击。同时,随着网络技术的不断发展,车辆系统中的网络化程度也越来越高,这就要求一个车载装置能和其它的设备进行互连,从而有利于形成整车 监控 系统。目前,在车辆中大多数设备都通过 CAN 总线进行连接,但是其应用层协议的不统一给不同厂商之间的设备互连带来了困难。 CANopen 是基于CAN(Controller Area Network)总线的应用层协议,它最初由从事工业控制的CiA (CA
[汽车电子]
基于CANopen协议在车载设备中的应用研究
基于CAN总线的电力抄表系统设计
  作者:忻龙彪,桂垣,武斌来源:时间:2007-5-1 13:25:40阅读次数:372阅读等级:需要积分:0       摘要: 介绍了一种基于CAN总线的电力抄表方案,设计了系统的软硬件,并详细地阐述了其工作原理。该系统利用AT89C52微处理器与多片8259A中断控制器配合,实现分布式的电表数据的实时采集、传输、存储以及显示等功能。针对采集数据准确度低的问题,采用了中断采集方式,不仅提高了采集数据的准确度,而且提高了系统的可靠性。    关键词: CAN总线;中断方式;准确度;电力抄表系统    CAN总线简介   CAN为多主方式工作,网络上任一节点均可以在任意时刻主动向网络上其他节点发送信息;CAN网络上的节
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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