基于can总线的电动汽车仪表控制系统的设计_第1页
基于can总线的电动汽车仪表控制系统的设计_第2页
基于can总线的电动汽车仪表控制系统的设计_第3页
基于can总线的电动汽车仪表控制系统的设计_第4页
基于can总线的电动汽车仪表控制系统的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书电动汽车仪表控制系统的设计专业电气工程及其自动化学生姓名吴金班级BD电气071学号0720601123指导教师孙宏国完成日期2011年6月5日电动汽车仪表控制系统的设计摘要设计了一款基于CAN总线的汽车仪表控制系统。该汽车仪表控制系统主要由专用电源芯片、单片机STC89C52、CAN独立控制器SJA1000、CAN收发器PCA82C250、光耦芯片6N137、MAX232电平转换芯片等元器件组成。专用电源芯片用于为整个系统提供稳定电源,汽车各个目标电气节点可以通过CAN总线将参数传输给单片机STC89C52,单片机STC89C52主要负责分析处理数据,并通过液晶显示相关信息。系统还可通过RS232把单片机系统的相关数据上传给PC机来进一步对数据的分析或对数据的存储。系统使用CAN总线实现显示信息的传送,共享车上其它模块处理的信息,使车内布线简单、传输及显示信息可靠、仪表体积小、系统扩展能力强、实时性好、精确度高、显示信息全面直观。关键词仪表;CAN总线;单片机THEDESIGNOFELECTRICVEHICLESINSTRUMENTATIONCONTROLSYSTEMABSTRACTTHISSTUDYWASUNDERTAKENTODESIGNANINSTRUMENTATIONCONTROLSYSTEMBASEDONCANBUSTHECONTROLSYSTEMMAINLYCONSISTSOFSPECIALPOWERSUPPLYMODULE,SINGLECHIPCOMPUTERSTC89C52,CANINDEPENDENTCONTROLLERSJA1000,CANTRANSCEIVERPCA82C250,LIGHTCOUPLER6N137,ANDMAX232LEVELTRANSITIONCHIPANDSOONSPECIALPOWERSUPPLYCHIPISUSEDFORSUPPLYINGSTABLEPOWERFORTHEWHOLESYSTEM,CANBUSISRESPONSIBLEFORTRANSMITTINGDATANEEDEDBYDISPLAYSYSTEMTOTHEMICROPROCESSORSTC89C52,STC89C52ISMAINLYRESPONSIBLEFORTHEANALYSISOFDATAPROCESSING,ANDTHROUGHTHELCDRELATEDINFORMATIONTHEWHOLESYSTEMCANUPLOADRELEVANTDATAOFTHESINGLECHIPCOMPUTERSYSTEMTOTHEPCWHICHCANANALYZETHEDATAORTHEDATASTORAGEFURTHERTHROUGHRS232THESYSTEMHASREALIZEDTHESHAREOFINFORMATIONOFTHEELECTRICVEHICLEBYTHECANBUS,WHICHMAKETHELAYOUTOFTHEELECTRICVEHICLESWIREBECOMESIMPLE,DECREASETHEDEPENDENCEOFINSTRUMENTTOWIRES,ANDINCREASETHESTABILITYOFTHEELECTRICVEHICLEKEYWORDSINSTRUMENTATIONCANBUSSINGLECHIPCOMPUTER目录1概述111课题研究背景及意义112本课题在国内外的研究概况113本课题研究内容12总体方案设计221系统的功能与要求222系统组成及介绍23车用仪表控制系统的硬件设计531单片机最小系统532RS232串行通信接口电路733温度传感器及其硬件接口电路设计934光电测速传感器及其硬件接口电路设计1035液晶显示模块硬件设计1136CAN通信原理及其实现1337电源电路硬件电路设计184车用数字仪表系统的软件设计1841开发语言简介1842软件总体设计1843部分模块程序设计介绍195系统安装与调试2151系统硬件调试2152系统软件调试226结束语23参考文献25致谢26附录26附录1程序清单28附录2设计图纸37附录3元器件目录表39电动汽车仪表控制系统的设计1概述11课题研究背景及意义汽车走过了100多年的发展历程,汽车仪表也在不断开发和发展之中。汽车仪表发展,按其工作原理上取得的重大技术创新来分,经过了4代第1代汽车仪表是基于机械作用力而工作的机械式仪表,即机械机心表;第2代汽车仪表的工作原理基于电测原理,即通过各类传感器将被测的非电量变换成电信号加以测量,称之为电气式仪表;第3代为模拟电路电子式;第4代为步进电动机式全数字汽车仪表。目前汽车仪表正在经历由第3代向第4代转型时期。第4代汽车用仪表工作原理与电气式仪表基本相同,只是用电子器件取代原来的电气器件。由于现代汽车仪表所要显示的内容和信息种类越来越多,精度越来越高,传统电气式仪表难以满足更高层次要求,因而汽车仪表的电子化和数字化将成为必然趋势。同时为了满足各子系统的实时性要求,有必要对汽车公共数据实行共享,如发动机转速、车轮转速、油门踏板位置等。但每个控制单元对实时性的要求是因数据的更新速率和控制周期不同而不同的。这就要求其数据交换网是基于优先权竞争的模式,且本身具有较高的通信速率,CAN总线正是为满足这些要求而设计的。本课题通过仪表与微处理器,基于CAN总线网络的数字电子器件代替原有的机械机芯表、电气式仪表和模拟电路电子仪表,把各参数的测量数字化,有利于和汽车其它的电子集中控制系统进行数据交换,有利于汽车集中控制系统的发展和实现,此外还使得汽车仪表的功耗、安全性、可靠性、舒适性得到更好的提高。通过调整电路参数还可适应不同种类和量程的产品需求,使得汽车仪表在结构的通用化、模块化、标准化、系列化程度大大提高,进而简化了生产工艺和制造设备。12本课题在国内外的研究概况我国的汽车仪表与国外发达国家相比,技术水平有相当大的差距。例如,当今国外发达国家普遍使用全数字式汽车仪表,而且绝大部分是基于CAN总线的步进电动机式汽车仪表,并且正积极准备向更高方向发展。而国内真正民族汽车仪表厂,还没有批量生产出该类型的仪表,只有德国VDO公司和美国德科公司在我国设厂生产。虽然国内汽车仪表界一致看好全数字式汽车仪表,特别是步进电动机式汽车仪表。但我国民族汽车仪表生产厂家从事汽车仪表设计的工程技术人员,绝大部分还不具备这方面的知识能力,自主开发还不具备技术条件,汽车仪表机心技术便是其中一例。现在可以肯定地说,带ECU的全数字式汽车仪表,特别是步进电动机式汽车仪表,是当今和未来一段时间汽车仪表的主导技术。13本课题研究内容本课题研究内容是以单片机为核心的仪表控制系统的设计与实现,车辆仪表是驾驶员与汽车进行信息交流的重要接口和界面,是车辆安全行驶的重要保证。本文中提出用单片机、数字式温度传感器DS18B20,速度传感器、CAN总线等设计了一种车用仪表控制系统,具体研究内容如下A仪表控制系统的相关资料查询和设计要求的分析。B)设计控制系统的总体方案,画出整个系统的原理框图。C)系统硬件设计包括CPU型号、传感器的选择、检测电路的设计、CAN通信接口电路的设计、电源电路等。D)系统软件设计要求设计系统各个模块的流程图和相关软件设计,如温度、速度、CAN通信模块程序等。E对所设计的汽车仪表控制系统进行功能测试,查找并修改系统错误。F分析总结系统设计过程中遇到的问题。2总体方案设计本次设计的是车用仪表控制系统的解决方案。此仪表系统要求显示直观、准确,使用方便、可靠,同时展现车用仪表系统未来的发展趋势和广阔开发空间。单片机是整个系统的核心,与汽车仪表密切相关的一些汽车基本行驶信息(车速、温度)是单片机所需要处理的信息,系统的整个CAN通信也由单片机来控制。系统软件是实现系统功能最根本的手段,系统的抗干扰能力是系统能否稳定可靠工作的基本保证。通过对它们的一些理论分析和研究,最终对系统方案做出一个总体的设计。21系统的功能与要求设计一套车载智能仪表,用于显示和记录汽车行驶过程中的各种状态信息,具体实现功能应达到如下要求A采用通用单片机,用软件实现对系统的控制。B汽车在行驶过程中各状态参量的数据采集,主要包括以温度为代表的模拟量和以车速为代表的脉冲量的采集。C车载信息的LCD显示,具有汽车速度、温度等汽车行驶过程中的动态数据的功能D利用CAN总线进行数据通信,将采集的数据汇总进行处理,首先必须进行可靠的数据传输。本系统采用CAN总线作为数据的通信网络。对CAN总线兼容的硬件、软件进行设计。22系统组成及介绍本系统由单片机模块、测温模块、测速模块、显示模块、电源模块、串口通信模块、CAN通信模块等部分构成。系统组成如图21所示。单片机模块电源模块串口通信模块LCD显示CAN控制器温度信号车速信号CAN收发器测温模块测速模块图21系统组成框图221单片机模块单片机模块是整个系统的核心,完成以下功能输入数据的采集转换,驱动液晶显示,控制CAN通信等功能。根据系统的要求和现实的考虑,选用宏晶公司生产的STC89C52RC通用单片机。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器FPEROM(FLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,它是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。与INTEL公司的MCS51系列单片机相兼容,是广泛应用的单片机之一。222串口通信模块单片机的串口通信模块主要是用于扩展单片机的功能,使其功能更加强大,操作更加方便,在有串口通信模块的情况下,可以实现在电脑上直接对整个系统进行操作,如监控该系统,直接获取相关信息到电脑上,如车速,温度;也可以在计算机上直接对该系统的单片机进行读写控制,如可以直接写入本设计需要的程序,直接控制与测温相关的温度调节。串口通信模块最主要的功能是用于后续功能扩展,以使单片机具备更多的功能。223CAN通信模块根据CAN通信原理,本系统所选MCU不带CAN控制器。因此采用了传统的CAN通信模块即采用51系列的单片机作为中心处理器,SJA1000作为CAN控制器,PCA82C250作为CAN驱动器。这种方案虽然选用芯片多,所占空间大,外围接口扩展局限,但其使用更为灵活、方便。224测温与测速模块车速、温度是汽车的基本信号之一,都是通过传感器来采集。A温度传感器温度传感器主要用于检测发动机温度、吸入气体温度、冷却水温度、燃油温度以及催化温度等。温度用传感器有线绕电阻式、热敏电阻式和热偶电阻式三种主要类型。三种类型传感器各有特点,其应用场合也略有区别。线绕电阻式温度传感器的精度高,但响应特性差;热敏电阻式温度传感器灵敏度高,响应特性较好,但线性差,适应温度较低;热偶电阻式温度传感器的精度高,测量温度范围宽,但需要配合放大器和冷端处理一起使用。而本系统却选择了DALLAS公司生产的一线式数字温度传感器DS18B20。因为其不需复杂的信号调理电路和A/D转换电路能直接与单片机完成数据采集和处理,实现方便、精度高,并能够使制板的成本降低。B转车速传感器转速传感器的类型很多,因为光电传感器具有线性度好、分辨率高、噪音小和精度高等优点,所以我们选择光电转速传感器来进行转速的检测。光电转速传感器原理光电转速传感器是根据光敏二极管工作原理制造的一种感应接收光强度变化的电子器件,当它发出的光被目标反射或阻断时,则接收器感应出相应的电信号。它包含调制光源,由光敏元件等组成的光学系统、放大器、开关或模拟量输出装置,光电式传感器由独立且相对放置的光发射器和收光器组成。当目标通过光发射器和收光器之间并阻断光线时,传感器输出信号。它是效率最高、最可靠的检测装置。225电源及LCD显示模块A电源模块电源是整个系统能正常工作的保证,电源的稳定性决定着系统工作的稳定性。系统选择了一种固定电压5V三端集成稳压器78L05,其适用于很多应用场合。像牵涉到单点稳压场合需要限制噪声和解决分布问题的。此外它们还可以和其它功率转移器件一起构成大电流的稳压电源,如可驱动输出电流高达100毫安的稳压器。BLCD显示模块(LCM)当前市场上液晶显示器种类繁多,按排列形状可分为字段型、点阵字符型和点阵图形型。字段型以长条状组成的字符显示,主要用于数字显示。但在单片机应用系统中,比较常用的是点阵字符型LCD显示器。要使用点阵字符型LCD显示器,必须有相应的LCD控制器、驱动器,来对LCD显示器进行扫描、驱动,以及一定空间的RAM和ROM来存储写入的命令和显示字符的点阵。现在人们已将LCD控制器、驱动器、RAM、ROM和LCD显示器用PCB连接到一起,称为液晶显示模块LCM(LIQUIDCRYSTALDISPLAYMODULE)。用户只需向LCM送入相应的命令和数据就可实现所需要的显示内容,与单片机接口简单,使用灵活方便。本系统采用的液晶显示模块为ATM12864D,主要用来显示温度、车速等相关信息,完全能够达到设计的要求,并且对以后系统的扩展显示留有一定的余地。3车用仪表控制系统的硬件设计31单片机最小系统单片机作为微型计算机的一个重要分支,应用面很广,发展很快。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括单片机、时钟电路、复位电路等。311单片机的时钟电路硬件设计单片机的时钟信号用来提供单片机内各种微操作的时间基准,这个时钟信号可由单片机内时钟电路产生,可以直接使用外部时钟信号。因此,单片机时钟电路通常可以有两种形式内部振荡方式和外部振荡方式。A外部振荡方式外部振荡方式就是把外部自己有时钟信号引入单片机内。这种方式是用来使单片机的时钟与外部信号保持同步。外部振荡方式电路接法如图31所示。B内部振荡方式MCS单片机内有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接就构成了内部自激振荡器并产生振荡时钟脉冲。这种方式为内部振荡方式,如图32所示。图31外部振荡方式图32内部振荡方式本系统中利用内部振荡方式,电路如图32,图中C1,C2起稳定振荡频率,快速起振的作用,其容值一般在530PF。在这里选C1C215PF,取晶振FOSC为典型值110592MHZ(因为可以准确地得到9600波特率或19200波特率,用于有串口通讯的场合)312单片机的复位电路硬件设计复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,计算机在启动时,都需要复位,使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作。在振荡器正在运行的情况下,复位是靠在RST引脚处至少保持2个机器周期24个振荡器周期的高电平而实现的。单片机复位电路包括片内,片外两部分。片外复位信号通过引脚RST加到内部复位电路上。内部复位电路在每个机器周期S5P2对片外复位信号采样一次,当RST引脚出现连续两个机器周期的高电平时,单片机就能完成一次复位。RST端的外部复位电路有两种复位操作形式上电自动复位和按键手动复位。A上电自动复位对于MCS51系列来说,最简单的上电复位电路如图33所示,就是由一个电阻和一个电容构成的。在系统上电时,经C1与R1充电,使RST端为高电平,持续时间大于两个机器周期完成复位。电容充电结束后,系统复位结束,开始正常工作。在图33中,RC时间常数越大,上电时RST保持的高电平的时间越长。当晶振频率为12MHZ时,典型值为C110F,R182K。B按键手动复位按键手动复位有电平方式和脉冲方式两种。在本系统中采用按键手动电平自动复位如下图34所示。图33上电自动复位电路图34手动电平复位电路上电瞬间R1C1电路充电,RST引脚出现正脉冲,只要RST端保持10MS以上高电平,就能使单片机复位。为使其可靠复位,RST引脚上电复位时间应保持20MS以上的高电平。按键复位时,R2阻值选择不能过小,那样的话只要碰到就会复位;选择过大时,按键按下去很久才能复位,所以要选择适中的阻值为1K左右的电阻。本系统所选的电阻电容参数如图34中所示。此复位电路具有上电复位和手动复位的功能。上电时,C1充电,在10K电CV阻上出现电压,使得单片机复位;几个毫秒后,C1充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下SW,C1放电。SW松手,C1又充电,在10K电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。经以上分析设计,有关系统中STC89C52单片机最小系统硬件设计原理图如图35所示。图3589C52单片机的最小系统硬件电路原理图32RS232串行通信接口电路单片机的串行口是非常有用的,我们可以通过它把单片机系统的数据传回电脑处理或者接受电脑传过来的数据而进行相应的动作。微控制器有许多标准的通信方法,但在主/从嵌入式系统中,最常用的是RS232串行接口、SPI和I2C。52单片机有一个全双工的串行通信口,非常适合与电脑进行通信,本系统设计,采用的是RS232出行接口方式。321MAX232介绍MAX232是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口RS232电平是10V、10V,而一般的单片机应用系统的信号电压是TTL电平0、5V,MAX232就是用来进行电平转换的,该器件包含两驱动器、两接收器和一个电压发生器电路提供TIA/EIA232F电平。MAX232引脚图如图36所示。图36MAX232引脚图该器件符合TIA/EIA232F标准,每一个接收器将TIA/EIA232F电平转换成5VTTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA232F电平。其主要特点为A符合所有的RS232C技术标准B只需要单一5V电源供电C片载电荷泵具有升压、电压极性反转能力,能够产生10V和10V电压D功耗低,典型供电电流5MAE内部集成两个RS232C驱动器F内部集成两个RS232C接收器322串行通信接口电路串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。在WINDOWS环境(WINDOWSNT、WIN98、WINDOWS2000)下,串口是系统资源的一部分。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。本次系统设计的串行通信接口电路如图37所示。图37串行通信接口电路33温度传感器及其硬件接口电路设计331温度传感器DS18B20简介DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达00625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到三根或两根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。主要特点及技术指标有A用户可自设定非易失性的报警上下限温度值。B1085范围内的测温准确度为05。C可用数据线供电,电压范围3055V。D支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。E负压特性,电源极性接反时,温度传感器不会因发热而烧毁,但不能正常工作。332DS18B20与单片机的硬件接口设计DS18B20与STC89C52的接口电路如图38所示,其中DS18B20工作在外部电源供电方式,单片机STC89C52采用P34口和DS18B20通信。图38DS18B20与STC89C52的接口电路通过预先对DS18B20可编程温度传感器的编程,完成转换位数,精度,高、低温报警触发器TH,TL的温度设置。进入测温模式后,DS18B20可编程温度传感器将所测的温度值直接转换成数字量,通过其独有的单总线协议,实现与单片机的数据传输,完成数据采集。再结合软件及相应外围电路进行实时监控。34光电测速传感器及其硬件接口电路设计341光电测速传感器简介它分为投射式和反射式两类。投射式光电转速传感器的读数盘和测量盘有间隔相同的缝隙。测量盘随被测物体转动,每转过一条缝隙,从光源投射到光敏元件上的光线产生一次明暗变化,光敏元件即输出电流脉冲信号。反射式光电传感器在被测转轴上设有反射记号,由光源发出的光线通过透镜和半透膜入射到被测转轴上。转轴转动时,反射记号对投射光点的反射率发生变化。反射率变大时,反射光线经透镜投射到光敏元件上即发出一个脉冲信号;反射率变小时,光敏元件无信号。在一定时间内对信号计数便可测出转轴的转速值。反射式光电测速主要由被测旋转部件、反光片(或反光贴纸)、反射式光电传感器组成,在可以进行精确定位的情况下,在被测部件上对称安装多个反光片或反光贴纸会取得较好的测量效果。在本系统中,由于测试距离近且测试要求不高,仅在被测部件上只安装了一片反光贴纸,因此,当旋转部件上的反光贴纸通过光电传感器前时,光电传感器的输出就会跳变一次。通过测出这个跳变频率F,就可知道转速N。342ST188红外光电传感器这里我们选用工作性能较好的ST188红外光电传感器作为测速用传感器。特点A采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。B检测距离可调整范围大,413MM可用。C采用非接触检测方式。其广泛应用于IC卡电度表脉冲数据采样、集中抄表系统数据采集、传真机纸张检测、与ST288A结合使用可判别被测物的运动方向及正反转速测量、行程测量等。其光电特性如表31表31光电特性项目符号测试条件最小典型最大单位正向压降FV20MAFI12515V输入反向电流RI3VR10A集电极暗电流CEO20VCE1AL3030MAL4040MA输出集电极亮电流L15V8MAFIL5050MA饱和压降CEV8MA,015MAFIRI04V续表31项目符号测试条件最小典型最大单位TR10S传输特性响应时间F20MA,5VFICEV100CR10S342ST188红外光电传感器与单片机的硬件接口设计ST188与STC89C52的接口电路图如图39所示。图39ST188与STC89C52的接口电路图与发射管相接的限流电阻为510欧姆固定电阻,由于ST188输出的是模拟信号,而单片机能直接接收的是数字信号,因此在这里选用了比较器作为一个一位的模数转换器。通过调节比较电压的值,找到一个合适的比较电压,在输出端获得一组脉冲通过非门使脉冲更加标准化。通过单片机测量产生脉冲的频率,就可以得出被测体的转速。35液晶显示模块硬件设计351液晶显示模块ATM12864D简介本系统采用ATM12864D点阵式液晶作为主要显示工具。该芯片自带双控制芯片,自动完成液晶控制。该液晶屏具有众多控制字,程序开始时,先对液晶初始化。之后,每次先通过控制字指定开始位置,然后顺序写入点的信息。该液晶屏由两块控制芯片来控制,各为(6464)方阵,图像点信息按照纵向每8个点组成一个字节。设定一个字符或数字由88个点阵来表示,也就是说每个字符由8个字节组成,将这8个字节作为一个数组存入RAM里。在需要显示这个字符时,只要从液晶的数据口顺序输出数组里面的内容就可以了。其引脚说明如表32所示。表32液晶引脚说明管脚号管脚名称LEVER管脚功能描述1VSS0电源地2VDD50V电源电压3V0液晶显示器驱动电压4D/IRSH/LD/I“H”,表示DB7DB0为显示数据D/I“L”,表示DB7DB0为显示指令数据5R/WH/LR/W“H”,E“H”数据被读到DB7DB0R/W“L”,E“HL”数据被写到IR或DR6EH/LR/W“L”,E信号下降沿锁存DB7DB0R/W“H”,E“H”DDRAM数据读到DB7DB0714DB0DB7H/L数据线15CS1H/LH选择芯片右半屏信号16CS2H/LH选择芯片左半屏信号17RETH/L复位信号,低电平复位18VOUT10VLCD驱动负电压19LEDLED背光板电源20LEDLED背光板电源352液晶显示模块ATM12864D与STC89C52硬件接口设计液晶屏与单片机的接线如图310所示。图310液晶显示模块与STC89C52接口电路液晶的8位数据线DB0DB7连接到单片机的P1口,5根控制线分别连接到单片机的P21P25,VDD和VSS是最基本的电源,在这里接5V即可,第三个引脚V0的接法如上图所示即可,当LCD与单片机接线以及电源供给完毕以后,需要调节可变电阻的阻值。只有阻值在特定的位置区域内才会显示。一般情况下厂家已设定好,可不再调节。引脚A和K是液晶屏的背光电源,在这里加了一个小电阻来限流,以防电压过高损坏液晶屏。36CAN通信原理及其实现361CAN总线简介CANCONTROLLERAREANETWORK总线,又称控制器局域网,是BOSCH公司在现代汽车技术中领先推出的一种多主机局部网,由于其卓越的性能,极高的可靠性,独特灵活的设计和低廉的价格,现已广泛应用于工业现场控制、智能大厦、小区安防、交通工具、医疗仪器、环境监控等众多领域。CAN已被公认为几种最有前途的现场总线之一。CAN总线规范已被ISO国际标准组织制订为国际标准,CAN协议也是建立在国际标准组织的开放系统互连参考模型基础上的,主要工作在数据链路层和物理层。用户可在其基础上开发适合系统实际需要的应用层通信协议,但由于CAN总线极高的可靠性,从而使应用层通信协议得以大大简化。CAN总线与其它几种现场总线比较而言,是最容易实现、价格最为低廉的一种,但其性能并不比其它现场总线差。CAN总线由于其采用了许多新技术及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其特点可概括如下ACAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其它节点发送信息,通信方式灵活,且无需占地址等节点信息。BCAN网络上的节点信息根据其报文ID号的不同分成不同的优先级,可满足不同的实时要求;CCAN采用非破坏性具有优先级控制的载波侦听及碰撞检测机制CSMA/CD总线仲裁技术,信道中传输的是基带信号,并规定0为显性位,1为隐性位,前者能覆盖后者。DCAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”;ECAN上的节点数主要取决于总线驱动电路,目前可达110个。报文标识符11位,可达2032种CAN20A,而扩展标准CAN20B的报文标识符为29位;FCAN的直接通信距离最远可达10KM速率5KBPS以下;通信速率最高可达1MBPS此时通信距离最长为40M。除了上述提到的特点外,CAN总线还有一些其它的特点,如传输时间短、数据出错率低等。这也是目前CAN总线在众多领域被广泛采用的原因。节点是网络上信息的接收和发送站,所谓智能节点是由微处理器和可编程的CAN控制芯片组成,它们有两者合二为一的,也有如本文介绍的,独立的通信控制芯片SJA1000与单片机接口,后者的优点是比较灵活。362CAN通信控制器SJA1000功能简介CAN的通信协议主要由CAN控制器完成。CAN控制器主要由实现CAN总线协议的部分和实现与微处理器接口部分的电路组成。对于不同型号的CAN总线通信控制器,实现CAN协议部分电路的结构和功能大多相同,而与微处理器接口部分的结构和方式存在一些差异。这里主要以SJA1000为代表对CAN控制器的功能作一个简单介绍。SJA1000是一种独立CAN控制器,它是PHILIPS公司的PCA82C200CAN控制器的替代产品。SJA1000具有两种工作方式BASICCANPCA82C200兼容方式和PELICAN扩展特性方式,工作方式通过时钟分频寄存器中的CAN方式位来选择。上电复位默认工作方式是BASICCAN方式。PELICAN工作方式支持具有很多新特性的CAN20B协议。SJA1000在软件和引脚上都是与它的前一款PCA82C200独立CAN控制器兼容的,不过在此基础上增加了很多新的功能。SJA1000引脚功能如表33所示。表33SJA1000引脚功能符号引脚功能AD0AD72328,1,2地址/数据复用总线ALE3ALE信号INTEL方式或AS信号MOTOROLA方式/CS4片选输入,低电平允许访问SJA1000/RD5微控制器的读信号INTEL方式或E信号MOTOROLA方式/WR6微控制器的写信号INTEL方式或读写信号MOTOROLA方式CLKOUT7SJA1000产生的,提供给微控制器的时钟输出信号,此信号由内部振荡器经可编程分频器得到。可编程禁止该引脚VSS18逻辑电路地XTAL19振荡放大器输入,外部振荡放大器信号经此引脚输入XTAL210振荡放大器输出,使用外部振荡信号时此引脚必须开路MODE11方式选择输入端1INTEL方式,0MOTOROLA方式VDD312输出驱动器5V电源TX013由输出驱动器0至物理总线的输出端TX114由输出驱动器1至物理总线的输出端VSS315输出驱动器地/INT16中断输出端,用于向微控制器提供中断信号/RST17复位输入端,用于重新启动CAN接口(低电平有效)VDD218输入比较器5V电源RX0,RX119,20由物理总线至SJA1000输入比较器的输入端。显性电平将唤醒处于睡眠方式的SJA1000。当RX0高于RX1时,读出为隐性电平,否则为显性电平VSS221输入比较器地VDD122逻辑电路5V电源363CAN总线系统硬件电路设计本文中所设计的CAN总线系统智能节点,采用89C52作为节点的微处理器,在CAN总线通信接口中,采用PHILIPS公司的SJA1000和82C250芯片。SJA1000是独立CAN通信控制器,82C250为高性能CAN总线收发器。如图311所示为CAN总线系统智能节点硬件电路原理图。图311CAN总线系统智能节点硬件电路原理图从图311中可以看出,电路主要由四部分所构成微控制器89C52、独立CAN通信控制器SJA1000、CAN总线收发器82C250和高速光电耦合器6N137。微处理器89C52负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。SJA1000的AD0AD7连接到89C52的P0口,连接到89C52的P20,P20为0的CSCPU片外存贮器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作。SJA1000的、ALE分别与89C52的对应引脚相连,接89C52的RDWINT,89C52也可通过中断方式访问SJA1000。0INT为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RXO并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离。不过,应该特别说明的一点是光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块实现。这些部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性。PCA82C250与CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5的电阻与CAN总线相连,电阻可起到一定的限流作用,保护PCA82C250免受过流的冲击。CANH和CANL与地之间并联了两个30PF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外在两根CAN总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。本系统采用斜率控制模式,斜率电阻RS可根据总线通讯速度适当调整,这里选择了47K。A6N137的介绍其典型特性有转换速率高达10MBIT/S、摆率高达10KV/US、扇出系数为8、逻辑电平输出、集电极开路输出。6N137的内部结构原理如图312所示,信号从脚2和脚3输入,发光二极管发光,经片内光通道传到光敏二极管,反向偏置的光敏管光照后导通,经电流电压转换后送到与门的一个输入端,与门的另一个输入为使能端,当使能端为高时与门输出高电平,经输出三极管反向后光电隔离器输出低电平。当输入信号电流小于触发阈值或使能端为低时,输出高电平,但这个逻辑高是集电极开路的,可针对接收电路加上拉电阻或电压调整电路。图3126N137的内部结构光耦合器6N137的真值表如表34所示。表346N137真值表输入使能输出HHHLHHHLHLLHHNCLLNCH需要注意的是,在6N137光耦合器的电源管脚旁应有个01UF的去耦电容。在选择电容类型时,应尽量选择高频特性好的电容器,如陶瓷电容或钽电容,并且尽量靠近6N137光耦合器的电源管脚;另外,输入使能管脚在芯片内部已有上拉电阻,无需再外接上拉电阻。6N137的第6脚VO输出电路属于集电极开路电路,必须上拉一个电阻;6N137光耦合器的第2脚和第3脚之间是一个LED,必须串接一个限流电阻。BPCA82C250的介绍CAN控制器接口芯片PCA82C250是协议控制器和物理传输线路之间的接口,对总线提供差动发送能力,对CAN控制器提供差动接收能力。其主要特性有与“ISO11898”标准(高速通信控制器局域网国际标准)完全兼容、高速率(可达1MB/S)、具有抗汽车环境中瞬间干扰,保护总线的能力、采用斜率控制,以降低射频干扰(RFI)、采用差分收发器,抗宽范围的共模干扰,抗电磁干扰(EMI)、热保护、电源和地之间的短路保护、低电流待机模式、未上电节点不影响总线、总线可连接110个节点等。PCA82C250的功能框图如图313所示。其基本性能参数和引脚功能分别见表35和表36。图313PCA82C250功能框图表35PCA82C250基本性能参数符号参数条件最小值典型值最大值单位VC电源电压4555V显性位,V11V70MA隐性位,V14V14MAI电源电流待机模式100170AVCANCANH,CANL脚直流电压0VDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINET_CONT00625UCHARCODEWELCOME“HIGHSENSORTEMP“UCHARCODEWELCOME1“DESIGNBYLJH“UCHARCODETEMP“TEMP“UCHARCODEDS18B20“SPEEDOKM/S“BITT_SIGNSBITDSP34FLOATTEMP10UCHART_BAI,T_SHI,T_GE,T_FENG,T_MIAOSBITLCDENP23SBITLCDRSP21SBITLCDRWP22/VOIDDELAYUINTZUINTX,YFORXZX0XFORY110Y0YVOIDDSRESETVOID/SENDRESETANDINITIALIZATIONCOMMANDUINTI/DS18B20初始化DS0I103WHILEI0IDS1I4WHILEI0IBITTMPREADBITVOID/READABIT读一位UINTIBITDATDS0I/IFORDELAY小延时一下DS1IIDATDSI8WHILEI0IRETURNDATUCHARTMPREADVOID/READABYTEDATE读一个字节UCHARI,J,DATDAT0FORI1I1/读出的数据最低位在最前面,这样刚好/一个字节在DAT里RETURNDAT/将一个字节数据返回VOIDTMPWRITEBYTEUCHARDAT/WRITEABYTETODS18B20/写一个字节到DS18B20里UINTIUCHARJBITTESTBFORJ1J1IFTESTB/WRITE1写1部分DS0IIDS1I8WHILEI0IELSEDS0/WRITE0写0部分I8WHILEI0IDS1IIVOIDREADTEMPERATUREUINTYUCHART_L0UCHART_H0UCHARKDSRESETDELAY1TMPWRITEBYTE0XCCTMPWRITEBYTE0X44DSRESETDELAY1TMPWRITEBYTE0XCCTMPWRITEBYTE0XBET_LTMPREADT_HTMPREADKT_HIFK0X08T_SIGN1ELSET_SIGN0T_HT_HTEMP1T_H256T_LT_CONTTEMP1TEMP1100T_BAIUINTTEMP1/10000YUINTTEMP110000T_SHIY/1000YUINTY1000T_GEY/100YUINTY100T_FENGY/10T_MIAOUINTY10/VOIDWRITE_COMUCHARCOMLCDRS0P1COMDELAY5/延时LCDEN1/下三行表示E高脉冲到来就开始转换DELAY5LCDEN0VOIDWRITE_DATAUCHARDATELCDRS1P1DATEDELAY5LCDEN1DELAY5LCDEN0VOIDINITLCDRW0LCDEN0WRITE_COM0X38WRITE_COM0X0EWRITE_COM0X06WRITE_COM0X01VOIDPRINTUCHARA,UCHARSTRWRITE_COMAWHILESTR0WRITE_DATASTRSTR0VOIDPRINT1UCHARA,UCHARTWRITE_COMAWRITE_DATATVOIDMAININITPRINT0X80,WELCOMEPRINT0XC0,WELCOME1DELAY1000INITWHILE1READTEMPERATUREPRINT0X80,DS18B20PRINT0XC0,TEMPIFT_SIGN1PRINT10XC7,0X2DELSEPRINT10XC7,0X2BIFT_BAI0PRINT10XC8,T_BAI0X30ELSEPRINT10XC8,0X20PRINT10XC9,T_SHI0X30PRINT10XCA,T_GE0X30PRINT10XCB,0X2EPRINT10XCC,T_FENG0X30PRINT10XCD,T_MIAO0X30PRINT10XCE,0X43附录12CAN通信模块程序清单CANINIMOVDPTR,MODE;方式寄存器MOVA,09H;进入复位模式,对SJA1000进行初始化MOVXDPTR,AMOVDPTR,CDR;时钟分频寄存器MOVA,88H;选择PELICAN模式,关闭时钟输出CLKOUTMOVXDPTR,AMOVDPTR,IER;中断允许寄存器MOVA,0DH;开放发送中断、超载中断和错误警告中断MOVXDPTR,AMOVDPTR,AMR;接收屏蔽寄存器MOVR6,4MOVR0,DAMR;接收屏蔽寄存器内容在片内RAM中的首址AMRINIMOVA,R0MOVXDPTR,A;接收屏蔽寄存器赋初值INCDPTRDJNZR6,AMRMOVDPTR,ACR;接收代码寄存器MOVR6,4MOVR0,DACR;接收代码寄存器内容在片内RAM中的首址ACRINIMOVA,R0MOVXDPTR,A;接收代码寄存器赋初值INCDPTRDJNZR6,ACRMOVDPTR,BTR0;总线定时寄存器0MOVA,03HMOVXDPTR,AMOVDPTR,BTR1;总线定时寄存器1MOVA,0FFH;16MHZ晶振情况下设置波特率为80KBPSMOVXDPTR,AMOVDPTR,OCR;输出控制寄存器MOVA,0AAHMOVXDPTR,AMOVDPTR,RBSA;接收缓存器起始地址寄存器MOVA,0;设置接收缓存器FIFO起始地址为0MOVXDPTR,AMOVDPTR,TXERR;发送错误计数寄存器MOVA,0;清除发送错误计数寄存器MOVXDPTR,AMOVDPTR,ECC;错误代码捕捉寄存器MOVXA,DPTR;清除错误代码捕捉寄存器MOVDPTR,MODE;方式寄存器MOVA,08H;设置单滤波接收方式并返回工作状态MOVXDPTR,ARETTDATAMOVDPTR,SR;状态寄存器MOVXA,DPTR;从SJA1000读入状态寄存器值JBACC4,TDATA;判断是否正在接收,正在接收则等待TS0MOVXA,DPTRJNBACC3,TS0;判断上次发送是否完成,未完成则等待发送完成TS1MOVXA,DPTRJNBACC2,TS1;判断发送缓冲区是否锁定,锁定则等待TS2MOVDPTR,CANTXB;SJA1000发送缓存区首址MOVA,88H;发送数据长度为8个字节的扩展帧格式报文MOVXDPTR,AINCDPTRMOVA,ID0;4个字节的标识符ID0ID3,依据实际情况赋值MOVXDPTR,AINCDPTRMOVA,ID1MOVXDPTR,AINCDPTRMOVA,ID2MOVXDPTR,AINCDPTRMOVA,ID3MOVXDPTR,AMOVR0,TRDATA;CPU发送数据区首址,数据内容由用户定义MTBFMOVA,R0INCDPTRMOVXDPTR,AINCR0CJNER0,TRDATA8,MTBF;向发送缓冲区写8个字节MOVDPTR,CMR;命令寄存器地址MOVA,01HMOVXDPTR,A;启动SJA1000发送RETSEARCHMOVDPTR,SR;状态寄存器地址MOVXA,DPTRANLA,0C3H;读取总线脱离错误状态接收溢出有数据等位JNZPROCRET;无上述状态,结束PROCJNBACC7,PROCIBUSERRMOVDPTR,IR;IR中断寄存器出现总线脱离MOVXA,DPTR;读中断寄存器清除中断位MOVDPTR,MODE;方式寄存器地址MOVA,08HMOVXDPTR,A;将方式寄存器复位请求位清0LCALLALARM;调用报警子程序RETNOPPROCIMOVDPTR,IR;总线正常MOVXA,DPTR;读取中断位JNBACC3,OTHEROVERMOVDPTR,CMR;数据溢出中断置位MOVA,0CHMOVXDPTR,A;在命令寄存器中清除数据溢出和释放接收缓冲区RETNOPOTHERJBACC0,RECE;IR01,接收FIFO未满或接收中断使能LJMPRECOUT;IR00,接收缓冲区无数据退出接收NOPRECEMOVDPTR,CANRXB;接收缓冲区首地址16准备读取数据MOVXA,DPTR;首字节是接收帧格式字JNBACC6,RDATA;RTR1是远程请求帧无数据MOVDPTR,CMRMOVA,04H;CMR21,释放接收缓冲区MOVXDPTR,A;只有接收了数据才能释放接收缓冲区LC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论