0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于采用SJAl000的CAN/RS232智能电平转换器设计方案

电子设计 来源:郭婷 作者:电子设计 2018-12-30 07:29 次阅读

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所示。

基于采用SJAl000的CAN/RS232智能电平转换器设计方案

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引脚相连。

基于采用SJAl000的CAN/RS232智能电平转换器设计方案

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的连接电路。

基于采用SJAl000的CAN/RS232智能电平转换器设计方案

4 软件程序设计

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

基于采用SJAl000的CAN/RS232智能电平转换器设计方案

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总线的实际应用具有一定的参考价值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 转换器
    +关注

    关注

    27

    文章

    8624

    浏览量

    146848
  • 驱动器
    +关注

    关注

    52

    文章

    8152

    浏览量

    145965
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2715

    浏览量

    463345
收藏 人收藏

    评论

    相关推荐

    用单片机实现智能电平转换器设计方案解析

    时,需采用CAN/RS232接口标准转换。针对这一问题,提出了CAN/RS232
    发表于 10-25 09:57 1795次阅读
    用单片机实现<b class='flag-5'>智能</b><b class='flag-5'>电平</b><b class='flag-5'>转换器</b>的<b class='flag-5'>设计方案</b>解析

    如何使用89C51单片机设计和实现智能电平转换器硬件

    问题,提出了CAN/RS232智能电平转换器设计方案,以SJ
    发表于 09-25 15:58

    怎样去设计CAN总线控制sJAl000驱动程序?计

    CAN总线及控制工作原理是什么?流接口驱动程序工作机制是怎样的?怎样去设计CAN总线控制sJAl000驱动程序?
    发表于 04-27 06:41

    怎么实现RS232通信网络与CAN总线通信网络互联的设计?

    本文采用ATMega16、SJAl000、MCP2551和MAX232,设计开发了CAN总线转232的接口,完成了两种协议的
    发表于 06-02 06:30

    CANRS232转换节点的设计与实现

    CANRS232转换节点的设计与实现 介绍将CAN总线接口与RS232总线接口相互转换的设计
    发表于 03-30 16:39 75次下载

    CANRS232转换节点的设计与实现

    介绍将CAN总线接口与RS232总线接口相互转换的设计方法和2种总线电平转换关系,实现CAN总线
    发表于 04-15 09:26 44次下载

    CAN总线 RS232接口的软件设计

    采用独立CAN控制SJA1000作为CAN总线/RS232智能
    发表于 12-16 16:35 106次下载

    利用STC11F02E的RS232/RS485转换器设计方案

    利用STC11F02E的RS232/RS485转换器设计方案 为了便于对分布式的各个现场测控设备实现集中控制,现场总线技术得到了广泛的应用。RS
    发表于 03-17 10:49 7923次阅读
    利用STC11F02E的<b class='flag-5'>RS232</b>/<b class='flag-5'>RS</b>485<b class='flag-5'>转换器</b><b class='flag-5'>设计方案</b>

    RS232RS485三线转换器原理图

    RS232接口是一种用于近距离(最大30-60米)、慢速度、点对点通讯的通讯协议,RS232RS485三线转换器原理图.
    发表于 03-13 16:51 9180次阅读
    <b class='flag-5'>RS232</b>—<b class='flag-5'>RS</b>485三线<b class='flag-5'>转换器</b>原理图

    无源RS485和RS232转换器如何与终端可靠连接

    PLC一般使用RS485接口,和LCD终端的RS232接口连接需要使用一个RS232/RS485转换器,注意LCD终端的
    发表于 05-23 08:00 0次下载
    无源<b class='flag-5'>RS</b>485和<b class='flag-5'>RS232</b><b class='flag-5'>转换器</b>如何与终端可靠连接

    基于89C51单片机的智能电平转换器硬件电路设计

    时,需采用CAN/RS232接口标准转换。针对这一问题,提出了CAN/RS232
    发表于 07-25 15:56 1677次阅读
    基于89C51单片机的<b class='flag-5'>智能</b><b class='flag-5'>电平</b><b class='flag-5'>转换器</b>硬件电路设计

    运用CAN232B转换器实现RS232/CAN网络的数据智能转换

    使用RS232/RS485信号转换器。但是,由于RS485通讯本身的局限性,在实际应用中存在许多不足:总线效率低、系统的实时性差、通讯的可靠性低、网络工程调试复杂、传输距离不理想、单总
    发表于 03-30 09:33 3489次阅读

    【STM32笔记1】TTL、RS232RS485、CAN的主要区别(另有串口、COM口、UART口的说明)

    1、TTL、RS232是逻辑电平信号,而RS485、CAN是差分信号;2、从单片机芯片或者单片机软件编程的角度来分析,其实RS485、
    发表于 12-07 14:36 46次下载
    【STM32笔记1】TTL、<b class='flag-5'>RS232</b>、<b class='flag-5'>RS</b>485、<b class='flag-5'>CAN</b>的主要区别(另有串口、COM口、UART口的说明)

    RS232转TTL转换器使用方法

    用于连接计算机或具有RS232标准的外部设备,如调制解调、打印机等。 TTL接口 :用于连接采用TTL逻辑电平的设备,如单片机、低电平设备
    的头像 发表于 11-21 09:22 210次阅读

    如何选择RS232转换器RS232RS485区别

    如何选择RS232转换器 选择RS232转换器时,需要考虑以下几个关键因素: 传输速率 :RS232的传输速率通常较低,但
    的头像 发表于 11-21 09:28 129次阅读