基于μPD780822型单片机的客车CAN总线灯光节点设计与实现

发布者:创新驿站最新更新时间:2013-03-21 来源: dzsc关键字:单片机  CAN总线  灯光节点 手机看文章 扫描二维码
随时随地手机看文章
  引言
  
  CAN(Controller Area Network)是德国Bosch公司最先提出的,是目前汽车控制器局域网中最流行、最常用的总线。它的主要特点是:CAN总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活;CAN总线采用独特的非破坏性总线仲裁技术,优先级高的节点先传送数据,能满足实时性要求;CAN总线具有点对点、一点对多点及全局广播传送数据的功能;CAN总线上每帧有效字节数最多为8个,并有CRC及其他校验措施,数据出错率极低,某个节点出现严重错误,可自动脱离总线,总线上的其他操作不受影响;CAN总线只有2条导线,系统扩充时可直接将新节点挂在总线上,因此走线少,系统容易扩充,改型灵活;CAN总线传输速度快,在传输距离小于40 m时,最大传输速率可达1 Mb/s。CAN总线的应用不仅能简化线束,实现传感器共享,降低系统成本,而且能大大降低车辆的故障率。CAN总线在汽车上的应用是现代汽车技术的发展趋势。

  2 CAN总线在汽车中的应用
  
  目前,汽车中的网络连接主要采用2条CAN总线,一条是驱动系统的高速CAN总线,速率达500 kb/s,另一条是车身系统的低速CAN总线,速率是100 kb/s。驱动系统的CAN主要连接对象是发动机控制器(ECU)、ASR及ABS控制器、安全气囊控制器、组合仪表等,其基本特征相同,都是控制与汽车行驶直接相关的系统。车身系统的CAN主要连接对象是4门以上的中控门锁、电动车窗、后视镜和车厢内照明灯等。有些先进的轿车除了上述2条CAN总线外,还会有第3条CAN总线,它的主要连接对象是卫星导航及智能通信系统。
   
  在国外尤其是在欧洲,CAN已成为现代汽车中必不可少的装置,CAN总线技术正日趋成熟,应用也越来越广,奔驰、宝马、大众、沃尔沃、雷诺等汽车都采用CAN作为控制器联网的技术。国内对CAN总线的研究刚刚起步,到目前为止还没有较成功的应用。但我国对车辆局域网络总线技术的研究与开发非常重视,最近国家有关部门对CAN总线在豪华大客车上的应用做出明确规定。相信这一政策的出台必将大大促进相关企业和科研单位对汽车CAN总线的研究与开发应用。本文讨论客车车身CAN总线系统中的车灯节点设计,它属于低速CAN总线上的节点设计。

  3 单片机及其CAN总线模块
  
  NEC是仅次于Freescale的世界第二大车用单片机制造商,由于其在中国推广的比较晚,国内企业使用得并不多。CAN总线模块是μPD780822型单片机的一个外设,是一个完整的CAN控制器。可满足车身CAN总线网络的要求。除了具有CAN的基本功能外,还包括一些特有功能,如时间同步功能、可编程的CAN总线唤醒和CPU唤醒功能、可编程的总线关闭时发送底层复位功能等。对CAN总线的访问分为控制/状态寄存器的访问和发送/接收缓冲器的访问。

  CAN控制器发送的信息帧分为二种:发送数据帧和发送远程帧。有二个发送缓冲器,其中一个为16字节,一个为8字节。16字节的缓冲器可以存储标准帧和扩展帧二种格式的数据帧,8字节的缓冲器可以用来存储要发送的数据。发送数据帧时,在数据写到发送缓冲器后,如果相应的发送请求位使能,则数据被发送到CAN总线上,数据帧的数据可以用软件设置成1~8个字节。数据帧的格式如图1所示。

  CAN控制器接收信息时首先要将接收信息的标识符与相应缓冲器的标识符进行比较,只有标识符相同的信息才能被接收。μPD780822型单片机的CAN模块有2个独立的发送缓冲器,2个缓冲器共用1个16字节的数据区来存储最多8字节数据的CAN帧。发送区和接收区的结构相似,当标志位和控制位没有设置为CAN专用时,CPU可以把其作为普通的数据存储区使用。[page]

  控制器接收缓冲器有16个,接收信息帧时用的缓冲器区由信息数量寄存器(MCNT)决定。从总线上接收的信息被直接存储在发送缓冲区中。工作中没有使用的接收缓冲区可以被CPU作为普通的RAM使用。每个接收缓冲器都有其可编程的中断使能位。

  4 网络结构和节点
  
  客车车身CAN系统包括主控节点、灯光节点、空调节点、车门节点和仪表节点等,如图2所示。其中,前车灯节点控制包括前左、右示廓灯,前左、右位灯,前左、右遇险报警灯,前左、右驻车灯,左、右前照灯远光,左、右前照灯近光,前左、右雾灯和前左、右转向灯等16个控制单位。后车灯节点控制包括后左、右示廓灯,后左、右转向灯,后左、右制动灯,后左、右位灯,后左、右雾灯和后左、右倒车灯等12个控制单位。主控节点主要接收来自驾驶员的一些开关输入信号。仪表节点主要通过接收总线上的数据来控制方向、水温、机油压力、制动、车门、车灯、ABS/ARS和除霜等指示灯和控制仪表,以显示车速、发动机转速、水温、燃油、机油、电压、步进电机等数值。空调节点控制空调的开关和车内温度的设定等。车门和后视镜节点控制车门电磁阀开关、后视镜调整开关和后视镜加热开关。安全节点监控ABS和ECAS的电源。

  5 硬件电路设计
  
  灯光节点的硬件结构如图3所示,它包括灯光控制模块和CAN接口模块。灯光控制模块由TLP521-4型光电隔离器和BTS442、BTS740型智能开关组成。

  TLP521-4是4路光电隔离器,8个TLP521-4组成32路光电隔离,把传递到开关和开关反馈的信号与单片机连接起来。BTS442是Infineon公司生产的单路输出智能开关(PROFET),具有允许较大瞬态电流(140 A以上)和较宽泛的温度范围(-55℃~+150℃)等优点,6个BTS442组成6路控制开关,控制大灯和雾灯等6个大电流负载。BTS740是lnfineon公司生产的4路输出智能开关,把输出的2路并作1路用,使其通过较大的瞬时电流。5个BTS740组成10路控制开关用以控制其余的小电流负载。BTS442和BTS740都有诊断反馈功能,如果出现错误,BTS442的第4引脚和BTS740的第4引脚与第8引脚上会出现一个低电平信号,通过光电隔离器把该信号接入单片机,实现端点检测功能,并通过CAN信息帧反馈到仪表节点上。所有节点的硬件CAN接口模块都相同,包括灯光节点在内。由于这种单片机带有CAN总线模块,所以不需专门的CAN控制器,单片机没有CAN收发器,需要外接82C250型收发器,中间是6N137型光电隔离器。单片机、光电隔离器和CAN收发器硬件接口电路如图4所示。[page]

  6 节点软件设计
  
  节点软件流程如图5所示。程序采用查询方式,节点初始化并报告正常工作后将一直处于查询状态,直到主控节点发送的灯光控制命令到达灯光节点时,单片机才可判断控制的是哪一路灯光或哪几路灯光,并通过开关的诊断反馈功能检测相应的开关是否正常。如果正常,则向相应的高/低端开关发送相应的控制命令,然后回到查询状态。如果不正常,则向仪表节点发送相应端点的不正常信息帧,继续检测相应的端点。


  
  节点初始化主要是单片机初始化,包括端口初始化和CAN控制模块的初始化。单片机端口初始化主要对用到的I/O口上电复位。CAN模块的初始化主要是设置所用的特殊功能寄存器,主要包括协议模式、验收滤波方式、CAN通信速率和中断寄存器的设置等。将验收代码和验收屏蔽代码写入验收代码寄存器和验收屏蔽寄存器。
  
  CAN总线的软件设计主要包括CAN节点的初始化、数据的发送和接收程序,掌握了这3个模块的设计,基本上就完成了CAN通信的软件设计。

  7 结束语
  
  虽然本节点是为控制客车车灯设计的,但对其他一些节点也有借鉴作用,尤其是CAN总线的硬件接口部分,可以通用到客车其他CAN网络节点上,甚至可以用在其他非汽车领域的CAN网络上,如工业自动化等领域。

参考文献:

[1]. TLP521-4 datasheet http://www.dzsc.com/datasheet/TLP521-4_652802.html.
[2]. 6N137 datasheet http://www.dzsc.com/datasheet/6N137_91364.html.

关键字:单片机  CAN总线  灯光节点 引用地址:基于μPD780822型单片机的客车CAN总线灯光节点设计与实现

上一篇:基于PSoC的车用单片机试验装置设计
下一篇:基于MSP430的声音定位系统的设计

推荐阅读最新更新时间:2024-03-16 13:20

基于单片机的智能低电阻测量仪
低电阻测量仪按其测试电流的大小可分为两类:一类测试电流较大,主要用于接插件、开关、导体等产品的直流低电阻的测量;另一类测试电流很小(一般为1 mA左右),用于电雷管、点火具或其他危险易爆场合的接插件、开关等元器件的直流低电阻的测量。低电阻测量仪对安全性能要求很高,必须增加多种保护电路;在PCB板设计布线时也要考虑安全性和可靠性。1989年至今,我们不断改进和完善电路设计,设计生产了4个型号的低电阻测量仪,以下是最新的DZC-4型智能低电阻测量仪。   1 总体方案和技术指标   如图1所示,该仪器由5个部分组成:电源供应、精密恒流源、精密电压放大器、A/D 转换器、单片机控制器。其主要技术指标如下:测试范
[单片机]
基于<font color='red'>单片机</font>的智能低电阻测量仪
单片机8051F的数字音频信号源的幅度控制及系统结构图
音频模拟信号电路常需要在很大范围内调节电平,而高精度电路的调节范同达100 dB以上.相当于二进制线性数字18位,同时也要求具有较高的调节步进值。使用数字信号源直接改变幅值,一般只有几dB的分辨率。市面上很多音频衰减器的衰减量、衰减量步进值、特性阻抗都是特定的。但在实际应用中,需要音频衰减器具有不同的参数;而且在一些应用中还希望衰减量能够按照需要随意设计,并且可以随时调整。针对这些需求,介绍了一种基于单片机由电阻衰减器和模拟开关组成的音频控制系统。该系统可通过单片机及上位PC机设置音频信号的衰减量,控制衰减量的增减。该系统具有适用广泛,使用方便,移植性高等特点。 系统总体设计 基于805lF330的音频控制系统结构如图l所
[单片机]
<font color='red'>单片机</font>8051F的数字音频信号源的幅度控制及系统结构图
恩智浦推出业内首款多协议无线微控制器解决方案
美国加州圣克拉拉 2016年10月18日 恩智浦半导体(NXP Semiconductors N.V.)(纳斯达克代码:NXPI)今日宣布业内首款单片式多协议无线连接微控制器(MCU)开始供货, Kinetis KW41Z微控制器(MCU)系列全面推出。该微控制器(MCU)系列支持同时运行Bluetooth 低能耗(BLE) v4.2和基于IEEE 802.15.4的Thread协议,且具备足够存储容量(512 KB闪存和128 KB SRAM),可运行所有应用程序。Kinetis KW41Z微控制器(MCU)系列采用ARM Cortex -M0+内核,提供经过认证的BLE和预认证Thread协议栈,旨在降低智能设备无缝互联网络构建
[物联网]
Small RTOS51实现基于8位单片机的温控器设计
目前,8位单片机在测控领域和智能化电子产品应用中仍占有重要地位.而应用嵌入式实时操作系统(ERTOS)会对8位单片机的软件开发带来极大方便。在此简要介绍嵌入式实时操作系统及其在程序设计中的优越性,重点介绍了适合于小RAM单片机的嵌入式实时操作系统Small RTOS51,以及基于8位单片机的硬件和软件的设计方法和过程。 1 嵌入式实时操作系统Small RTOS51简介 嵌入式系统已成为当今的热门话题之一,从消费类电子产品到各种工业设备,嵌入式系统已渗透到日常生活的各个角落。对于嵌人式系统,一个重要的特征是实时性,即在确定的时间内完成规定的功能,并能对外部异步事件做出正确响应。确保系统的实时性,需要软硬件配合来完成
[单片机]
PIC系列单片机程序设计基础一
1、PIC单片机程序的基本格式   先介绍二条伪指令:   EQU ——标号赋值伪指令   ORG ——地址定义伪指令   PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:    PIC16C54/55:1FFH    PIC16C56:3FFH    PIC16C57/58:7FFH   一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考。   TITLE This is …… ;程序标题   ;--------------------------------------   ;名称定义和变量定义
[单片机]
SAM4E单片机之旅——24、使用DSP库求向量数量积
DSP(Digital Signal Processing,数字信号处理)中会使用大量的数学运算。Cortex-M4中,配置了一些强大的部件,以提高DSP能力。同时CMSIS提供了一个DSP库,提供了许多数学函数的高效实现。 这次就先做一个简单的尝试,求两个向量的数量积。 一、 硬件 MAC单元 MAC(Multiply-ACcumulate,乘积累加),是DSP中常用的一种运算。Cortex-M4配置了一个32位的MAC单元,它能在1个周期里实现最高难度为32位乘32位再加64位的运算,或是两个16位乘16位的运算。Cortex-M4支持的MAC指令如下,这些指令都能在1个周期内完成: SIMD SIMD(S
[单片机]
SAM4E<font color='red'>单片机</font>之旅——24、使用DSP库求向量数量积
视频解码芯片SAA7113的初始化与控制
   引言:   SAA7113是飞利浦公司视频解码系列芯片的一种,非常具有代表性,在很多视频产品如电视卡、MPEG2、MPEG4中都有应用,熟悉了7113的原理后,对其它系列芯片SAA7114、7115、7118就会很容易理解。SAA7113的主要作用是把输入的模拟视频信号解码成标准的“VPO”数字信号,相当于一种“A/D”器件。7113兼容全球各种视频标准,在我国应用时必须根据我国的视频标准来配置内部的寄存器,即初始化,否则7113就不能按要求输出,可以说对7113进行研发的主要工作就是如何初始化。对7113初始化需要通过I2C总线进行,本文给出用51单片机控制的例子。   1.SAA7113的基本原理与应用   SAA71
[家用电子]
基于单片机的电梯自动控制系统的设计与实现
伴随着社会的发展与进步,人们的生活水平的提高和节约用地的倡导,越来越多的高楼耸立,使人们的生活和工作受到很大的影响,垂直运输的问题也随之出现,人们迫切需要一套安全、快捷、高效、稳定的电梯控制系统。电梯控制模型的设计主要涉及数电、模电、单片机及接口技术、C51的编程等知识,可谓知识面含量非常广,但因现代的微电子技术、计算机技术和嵌入式微控制器技术等的飞速发展,让我们做出应用型的电梯已成为可能。目前各小区居民楼都已经安装上了快捷、方便的电梯系统,但某些方面如安全性和稳定性还有待提高,用户也给出了更高的要求。 目前电梯控制主要有继电器控制、可编程控制器控制、微机控制(单片机控制)这3种控制方式。利用单片机控制电梯具有成本低、高精度的重量检
[单片机]
基于<font color='red'>单片机</font>的电梯自动控制系统的设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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