引言
现场总线技术已经广泛应用于工业控制中,尤其是CAN(Controler Area Nerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线实际工程应用中占有了较大份额。伴随着总线技术发展,LIN(Local Interconnect Network)总线作为一种低成本串行通信网络,其目标是为现有现场总线控制网络提供辅助功能,特别是汽车控制网络中总线应用,因此必然存在一个LIN总线和其它总线通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机CAN-LIN网关设计方案。
LIN是一种低成本串行通讯网络用于实现汽车中分布式电子系统控制,LIN目标是为现有汽车网络(例如CAN总线)提供辅助功能,因此LIN总线是一种辅助总线网络,在不需要CAN总线带宽和多功能场合比如智能传感器和制动装置之间通讯,使用LIN总线可大大节省成本。LIN通讯是基于SCI(UART)数据格式,采用单主控制器/多从设备模式,仅使用一根12V信号总线和一个无固定时间基准节点同步时钟线。
网关硬件设计
整个网关模块包括LIN接口、CAN接口、CAN波特率设置、LIN波特率设置、电源模块、状态灯六个子模块(图1)。
图1 系统结构框图
AT89C51CC03是Atmel公司一款内嵌CAN控制器8位单片机。本设计中以AT89C51CC03单片机为基础,选择TJA1020作为LIN总线收发器,采用单片机UART接口,在CAN模块设计部分选择PCA82C250作为CAN总线收发器,具体电路连接如图2、图3、图4所示。
图2 单片机电路
图3 CAN接口电路
图4 LIN接口电路
在电路中我们设计了一个5位拨码开关,由于在各个不同工作系统中,LIN总线和CAN总线传输是不一样,这就需要改换软件,因此在此设计中用一个5位拨码开关用于波特率设置,三位用于LIN波特率设置,两位用于CAN波特率设置。同时为了展示网关工作状态,特意设计了工作指示灯,在接收和发送信号时分别以一定频率闪烁,当有故障出现时,两个灯同时点亮。
为增强CAN节点抗干扰能力,单片机TXDC和RXDC引脚并不是直接与PCA82C250ATXD和RXD引脚相连,而是通过高速光耦6N137相连(图3)。这样很好实现了总线上各个节点间电气隔离,光耦部分电路所采用两个电源VCC和VDD必须是完全隔离,否则采用光耦也就失去了意义。
网关软件设计
网关软件设计主要包括主控程序模块和CAN模块软件设计以及LIN模块软件设计,CAN模块软件设计主要有三个子函数,一个是CAN初始化CAN_INIT(),另外两个是CAN_RE_ISR()和CAN_SEND()。CAN_INIT()主要是设置CAN通信波特率和CAN基本设置,波特率可以根据拨码开关值来设定,在系统上电之后通过自检程序自动扫描,查预先设定好波特率表格,设定CAN通信波特率。
CAN_RE_ISR()负责信息接收和处理,CAN_SEND()负责信息发送。
LIN模块软件设计主要包括几个文件:LIN.H、LIN.C、TEMR0.H TEMRO.C,其中LIN.H、LIN.C分别实现LIN规范设定以及UART波特率设定和LIN信息接收与发送,TEMR0.H TEMRO.C用于产生LIN总线波特率。主控程序设计主要完成整个网关信息转发功能,当CAN接收中断发生时,置LIN发送标志位,准备转发CAN信息到LIN网络;同样,当LIN接收中断生时,置CAN发送标志位,准备发送LIN信息到CAN网络。[page]
整个软件以C51编写,并利用KEIL公司仿真软件进行软件调试,最后将完整程序烧写到AT89C51CC01flash空间。
结语
本文提出了基于AT89C51CC01单片机CAN-LIN网关设计,解决了现场总线控制中CAN总线控制网络和LIN总线控制网络之间信息传输问题,为现场总线灵活应用提供了基础。本设计经过现场实验,实验结果表明网关运行良好,工作可靠稳定,并已应用到实际工作中。
关键字:AT89C51 CAN LIN 网关设计
引用地址:
基于AT89C51单片机的CAN/LIN网关设计
推荐阅读最新更新时间:2024-03-16 12:36
基于CAN总线的城市客车信息集成控制系统
1 引言 随着电子技术的不断发展,汽车电子技术也迅速的发展了起来,汽车上各种电子控制单元的数目也不断地增加,连接导线显著增多,因而提高控制单元间通信的可靠性和降低导线成本已成为迫切需要解决的问题。在20世纪80年代,以研发和生产汽车电子产品著称的德国bosch 公司针对此问题开发了can总线协议,这种多主网络协议,它的基础是无破坏性仲裁机制,使得总线能以最高优先权访问报文而没有任何延时。can作为标准车载网络技术,其在汽车网络化应用的进程中起着桥梁和纽带的作用,将城市客车信息集成采集提高到一个新的层次。 2 城市客车信息集成控制系统概述 城市客车信息集成控制系统是建立在汽车网络控制技术的基础上,从控制对象分,可
[汽车电子]
CAN/GPRS无线车载网关的设计与实现
1 引言 随着汽车电子技术的不断发展,车上的电子装置越来越多,并与传感器和执行器一起共同组成了许多复杂的电子控制系统。结果连接这些电子装置的电子线路迅速膨胀,布线变得越来越困难,导致了车身重量明显增加,车辆运行的可靠性降低。传统点对点的连接方式已经无法满足现代汽车电子技术发展的要求,多路传输的车载网络技术成为解决这些问题的必然选择。德国BOSCH 公司 推出的控制局域网CAN(Controller Area Network)依靠其稳定的性能、低廉的价格和很高的可靠性和实时性,现在已经被广泛地应用于汽车内部网络。CAN总线的采用使汽车内部的信息数据共享成为现实。然而,现在信息数据的共享不仅仅局限于汽车内部,许多数据信息需要与外界进行交
[单片机]
STM32系统时钟 CAN UART
在调试USB-CAN的适配器的过程中,采用库函数开发,在调试串口的过程中串口数据始终乱码。 思考一番,发现由于外部晶振的原因,在 Keil 中Ctrl + Shift + F 查找 HSE_VALUE: #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_VALUE ((uint32_t)25000000) /*! Value of the External oscillator in Hz */ #else #define HSE_VALUE ((uint32_t)8000000) /*! Value of the External oscil
[单片机]
OLED多电子图文广告屏设计
1 引言 新一代显示器件有机电致发光显示器件OLED(OrganicLightEmittingDiode)厚度为LCD的1/3,响应速度是LCD 元件的1000倍,低温特性好,在-40℃能正常显示。设计开发一套能在多个公共场合(如厂区、校区)同步发布电子公告的多电子图文 广告屏 。该系统基于通用串行总线(USB)传输,速度快、 可靠性高,有效地克服了传统广告图文传输的缺陷。 2系统设计 多场合同步发布电子广告屏系统由位于Internet网络的PC机(上位机)和位于各LED控制器上的单片机(下位机)组成,采用USB总线进 行主从式通信。图1为控制系统的逻辑结构框图。上位机主要完成图文编辑、字模提取与保存、图
[单片机]
AT89C51单片机实现全自动洗衣机功能的设计方案
51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣、经济洗衣、单独洗衣以及排水四种洗衣等四种方式,有强洗、弱洗及运行/暂停、显示及报警功能,程序利用利用Protues仿真软件观察洗衣机的运行状态和过程。整个设计能达到预想的设计效果。 #include ‘reg51.h’ #define uchar unsigned char #define uint unsigned int #define Enable(); EA=1; #define Disable(); EA=0; #define BIAOZHUN 0 #define JINGJI 1 #define DAND
[单片机]
MATHWORKS设计工具助Scania开发出节油驾驶辅助系统
MathWorks近日宣布,重型卡车、公共汽车、大客车、工业和船用发动机制造商Scania使用MathWorks工具(包括MATLAB和Simulink)进行基于模型的设计,开发出节油型驾驶辅助系统。借助基于模型的设计,Scania比原计划提前完成了开发任务。自2009年9月首次面市以来,该系统已改进了驾驶技术,使得驾驶更安全,刹车和其它部件磨损更小,燃油消耗更低。 低效的驾驶技术会增加10%的碳排放量和燃油消耗。为解决这一问题,Scania开发了实时的驾驶员分析系统,向卡车司机提供关于其驾驶技术的即时反馈。为降低开发成本,Scania工程师使用MATLAB、Simulink、 MATLAB Compiler和Re
[汽车电子]
一种基于ARM和智能手机的蓝牙CAN分析仪设计
针对CAN总线通信质量、测试和验证的需要,以及传统CAN分析仪的复杂性,且必须选择PC机作为显示终端的不足,论证了一种基于ARM单片机和智能手机的CAN总线分析仪设计。该分析仪采用以ARM单片机为核心的硬件电路完成对CAN网络的实时数据收集和监控;采用蓝牙通信方式实现分析仪与智能手机的通信并以智能手机为终端完成数据分析。文章对分析仪硬件、软件和智能手机页面进行了具体设计,提出了一种新的波特率自动检测方法,最后给出了所设计的 CAN总线分析仪的实际试验结果,可实现CAN总线波特率自动检测、正常监测以及CAN总线状态分析的功能。 CAN(controller area network)控制器局域网络是一种实时性强、灵活性好
[测试测量]
CAN总线故障分几种?如何检测
由于CAN网络采用多种协议,每个控制模块的端口在正常的情况下都有标准电压,因此电压测量法可用于判断线路是否有对地或电源短路、相线间短路等问题。 为了确定CAN H 或CAN L 导线是否损坏或信号是否正常,可以测量其对地电压(平均电压)。测量点通常在OBD诊断接口处,如下图所示。 诊断接口的6号针脚连接CAN H 导线,14号针脚连接CAN L 导线。如果诊断接口上连接有两组CAN总线,那么动力CAN总线使用6号和14号针脚,舒适总线使用3号和11号针脚。诊断接口的针脚含义如下图所示。 正常情况下,当CAN总线唤醒后,CAN H 对地电压约为2.656V,CAN L 对地电压约为2.319V,而且两者相加为4.975V
[汽车电子]