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

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

3天内不再提示

CAN总线与RS-232接口设备的数据传输电路设计

电子设计 来源:网络整理 作者:佚名 2020-02-06 07:02 次阅读

CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。但是目前PC机普遍配置RS232串行通信接口,没有CAN总线接口。实际中很多设备带有RS-232接口没有CAN总线接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机ATMega16控制的CAN总线与RS-232转换器电路设计和软件设计,实现了CAN总线数据与RS-232接口设备的数据传输。

一、简述CAN总线与RS232协议

CAN作为一种多主方式的串行通讯总线,其基本设计规范要求高位速率和较高的抗电磁干扰性能,而且要能够检测出通讯总线上产生的任何错误。当信号传输距离达10km时,CAN仍可提供高达5kbit/s的数据传输速率。表1为CAN总线上任意两个节点之间最大传输距离

与其位速率之间的对应关系。

由此可见,无论从实时性、适应性、灵活性,还是可靠性上来看,CAN总线都是一种比较优秀的串行总线。当两台串口设备的相距较远,不能直接用RS-232把它们连接起来时,就可以把RS-232转换为CAN,通过CAN总线来实现串口设备的网络互连。

CAN总线与RS-232接口设备的数据传输电路设计

表1 CAN总线系统任意两节鼎足之势之间的最大距离

RS-232和CAN在电平和帧格式上都是很大的不同。具体表现如下:RS-232标准电平±(3V~15V)之间。而CAN信号则使用差分电压传送,两条信号线称为“CAN_H”和“CAM_L”,静态时均为2.5V左右;RS-232串口的帧格式为:一位起始位,八位数据位,一位可编程的第九位,一位停止位。而CAN的数据帧格式为:帧信息+ID+数据。

二、CAN总线转RS232总体设计

CAN总线转2 3 2 的接口硬件电路, 主要选用MAX232、ATMega16、SJAl000和MCP2551设计实现。

其原理框图如图1所示。

CAN总线与RS-232接口设备的数据传输电路设计

三、转换器硬件设计

3.1 主控制器设计

主控制器选择ATMEL公司的ATMega16作为主处理器,该芯片是一个低电压,高性能单片机,片内含可反复擦写的EEPROM和随机存取数据存储器(RAM),兼容标准MCS-51指令系统。

ATMega16有44个引脚,32个外部双向I/0端口,同时内含3个外中断口,2个8位和1个16位可编程定时计数器,1个全双工串行通信口,ATMega16可按常规方法进行编程,也可在线编程。ATMega16的4脚接复位电路,低电平有效;9,10脚接MAX232的数据接收/发送端;PD口脚接SJAl000的控制端端;7,8脚接晶振电路;PB口接SJAl000的复用地址/数据总线。

3.2 MAx232电路设计

选择MAX232芯片作为RS232与CAN总线的电平转换器。MAX232是一种电平转换驱动器,提供TTL与RS232电平的转换。其13、14脚接到232接口的2、3针;11、12脚接到单片机的接收、发送端。

3.3 CAN控制器电路设计

选用Phi l ip公司的SJAl000芯片实现CAN控制器和CAN总线驱动器。SJAl000控制器与单片机硬件连接电路设计,如图2、3所示。

CAN总线与RS-232接口设备的数据传输电路设计

CAN总线与RS-232接口设备的数据传输电路设计

为使SJAl000正确复位,CAN控制器必须连接一个稳定的振荡器时钟,这里选择16MHz的晶振。

3.4收发器电路设计

收发器是协议控制器和物理传输线路之间的接口,这里由MCP2551实现。协议控制器通过串行数据输出线(Tx)和串行数据输入线(RX)连接到收发器,收发器通过有差动发送和接收功能的两个总线终端CANH和CANI。连接到总线电缆,实现CAN总线的数据通信。如图4所示。

CAN总线与RS-232接口设备的数据传输电路设计

四、主程序设计

在微处理控制下,RS-232和CAN进行数据交换时,采用CAN查询方式和串口发送可提高工作效率。其主程序流程图如图5所示。SJA1000的初始化在复位模式下才可以进行,主要包括工作方式的设置、时钟分频和验收滤波寄存器的设置、波特率参数的设置以及中断允许寄存器的设置等。数据能否准确传递还取决于波特率和流量控制,这也是软件设计时不可忽略的地方。

CAN总线与RS-232接口设备的数据传输电路设计

串口波特率采用9600 bit/s,系统上电初始化后CAN控制器查询发送标志位,一旦发送缓冲区空就发送数据。同时也检测状态寄存器的接收标志位,当有数据接收时读取接收缓冲区,然后判断接收数据帧,当接收帧为错误帧就丢掉数据并将CAN控制器复位,如果数据帧是正确帧就将该帧打包成符合RS232协议的帧结构,通过串口发送出去。

五、结束语

本文采用ATMega16、SJAl000、MCP2551和MAX232,设计开发了CAN总线转232的接口,完成了两种协议的转换,实现了CAN总线与RS232通信接口设备之间的通信。测试和实际使用表明该接口运行稳定、可靠,达到了设计要求。

责任编辑:gt


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

    关注

    27

    文章

    8621

    浏览量

    146828
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2714

    浏览量

    463330
  • 总线
    +关注

    关注

    10

    文章

    2864

    浏览量

    87973
收藏 人收藏

    评论

    相关推荐

    串口通信发展史 RS-232有哪些优点

    定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输接口信息,合理安排了接口的电
    发表于 10-16 10:01

    USB数据传输接口电路设计

      USB数据传输接口电路设计  USB接口数据传输速度快、连接简单、兼容性好等特点。汽车行驶记录仪国家标准考虑到
    发表于 06-17 05:00

    怎样去设计RS-485远距离通信接口数据传输接口

    本设计综合实现了PC主机与DSP从机的RS-485远距离通信接口和DSP从机与CAN现场总线数据传输
    发表于 06-03 06:52

    通过RS485总线或者CAN总线的方式达到数据传输

    引言在一般的项目开发过程中,往往需要两块或以上单片机进行通信完成数据传输,例如四旋翼无人机在飞行过程中无线传输数据回到地面站,治疗仪器需要实时将患者和机器运转情况传回上位机平台,粮仓温控装置需将各种传感器通过
    发表于 08-23 09:01

    使用自动选向控制的隔离式RS-232RS-485转换器

    接口,而且本身极易受噪声影响。它的总线最大长度被限定在20米(60英尺)左右。尽管允许进行全双工数据传输(通过一些单独的信号导线同时发送和接收数据),但是
    发表于 11-23 07:05

    基于单片机的CANRS-232转换器设计

    本文完成了基于单片机控制的CANRS-232 转换器的研究与设计,设计了AT89C51单片机对RS-232 接口CAN 模块的控制,解
    发表于 08-31 11:45 62次下载

    RS-232CAN总线协议适配器的设计

    本文介绍一种设计RS-232CAN 总线协议适配器的方法,采用STC89C51 作为微处理器,MCP2510 作为CAN 总线控制器。详
    发表于 01-13 14:09 87次下载

    基于CAN总线RS-232串口设备远程通信

    基于CAN总线RS-232串口设备远程通信 阐述了CAN总线
    发表于 09-27 16:07 1435次阅读
    基于<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的<b class='flag-5'>RS-232</b>串口<b class='flag-5'>设备</b>远程通信

    RS-232 接口,RS-232 接口是什么意思

    RS-232 接口,RS-232 接口是什么意思 电缆长度限制 RS-232的最初标准建议将电缆长度限制在50 ft以内,对于≤20 00
    发表于 03-09 10:57 6.1w次阅读

    RS-232接口实现串口数据传输的点对点通信设计

    单片机在控制本地的外围期间时,信息的交互是通过8位并行数据总线进行的,但是在较大规模的现代控制系统中,单片机还需要控制远端的设备,可以利用单片机的串行通信模块,在学习了RS-232串口
    发表于 03-03 15:19 3708次阅读
    <b class='flag-5'>RS-232</b><b class='flag-5'>接口</b>实现串口<b class='flag-5'>数据传输</b>的点对点通信设计

    实现RS-232数据传输的一些工业用数据链路

    高达±13V的高信号摆幅,但RS-232仍然是一种非平衡或单端接口,而且本身极易受噪声影响。它的总线最大长度被限定在20米(60英尺)左右。尽管允许进行全双工数据传输(通过一些单独的信
    的头像 发表于 11-23 10:54 1205次阅读

    为恶劣的工业应用设计可靠的隔离式RS-232数据接口

    工业和仪器仪表(I&I)应用的一个关键要求是通过诊断端口检查连接系统的可靠数据接口RS-232总线标准是I&I应用中最古老,使用最广泛的物理层总线
    的头像 发表于 01-17 09:26 3424次阅读
    为恶劣的工业应用设计可靠的隔离式<b class='flag-5'>RS-232</b><b class='flag-5'>数据</b><b class='flag-5'>接口</b>

    RS-232总线CAN-Modbus网络的连接技术

    YC-CAN-RTU是一款用于CAN-Modbus现场总线RS-232总线RS-485
    发表于 10-15 10:30 1561次阅读
    <b class='flag-5'>RS-232</b><b class='flag-5'>总线</b>与<b class='flag-5'>CAN</b>-Modbus网络的连接技术

    RS232RS485和CAN究竟能传输多远距离?

    RS-232/422/485和CAN总线是物联网应用中比较常见的通讯方式,可用于不同设备间进行数据传输和通信。不同的通讯线具有不同的
    的头像 发表于 12-15 08:20 2330次阅读
    <b class='flag-5'>RS232</b>、<b class='flag-5'>RS</b>485和<b class='flag-5'>CAN</b>究竟能<b class='flag-5'>传输</b>多远距离?

    CANRS-232网关的参数介绍

    波特率(Baud Rate):波特率是指数据传输的速率,表示每秒传输的位数。CAN总线RS-232总线
    的头像 发表于 01-18 10:08 803次阅读