《基于CAN总线的蓄电池状态监测设备的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于CAN总线的蓄电池状态监测设备的设计与实现.doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 学号: 常 州 大 学 毕业设计(论文)(2012届)题 目 学 生 学 院 专业班级 校内指导教师 专业技术职务 校外指导老师 专业技术职务 二一二年六月基于CAN总线的蓄电池状态监测设备的设计与实现摘 要: 蓄电池作为直流备用电源,对系统的安全可靠运行有非常重要的作用。为避免蓄电池在长期使用中因质量问题出现故障而引发事故带来经济损失,需对蓄电池进行实时在线监测。本设计主要是基于CAN总线的对蓄电池状态进行检测设备的设计,通过ADC0832这一A/D转换设备采集状态数值,通过LCD1602显示出数值,并在电压较低的时候显示警报。此设计完成了A/D转换电路的设计,单片机控制电路的设计,LCD
2、1602显示电路的设计,并且完成了CAN总线部分的硬件设计。完成了A/D转换部分、单片机控制部分、LCD显示部分的软件程序编写与这些部分的系统调试,在CAN总线部分完成了硬件制作。实现了对大部分蓄电池的电压数值实时显示的功能,运用电子技术长时间检测蓄电池的电压水平,省去了人工检测的工作并且能够在电压值较低时,提供警示显示。关键词:蓄电池;单片机;LCD1602;ADC0832;CAN总线The Design and Implementation for Battery State Monitoring Equipment Based on CAN BusAbstract:Battery as
3、dc standby power, and the safe and reliable operation of the system is a very important role.To avoid battery in use for a long time because of quality problems have problems and cause accidents bring economic loss, accumulator must to on-line monitoring.This paper is designed to detect the battery
4、status of equipment design based on CAN bus, through the ADC0832 A/D conversion equipment acquisition battery state of the numerical, through the LCD1602 showed numerical value and in low voltage when display alerts.This design completed the A/D converter circuit design, the design of the single chi
5、p microcomputer control circuit, LCD1602 display circuit design, and completed the CAN bus part of the hardware design.Completed the A/D conversion parts and single-chip microcomputer control part, LCD display part of the software programming in these parts of the system commissioning, in the CAN bu
6、s part completed the hardware production.Realize the most storage battery voltage values real-time display function, the use of electronic technology long time test battery voltage level, tell the artificial detection and be able to work in voltage value is lower, that provide warning.Key words:Batt
7、ery;MCU 89C51; LCD1602; ADC0832;CAN Bus目录摘要 I目录III1 绪论12 总体方案32.1方案可行论证32.2 系统功能综述52.3 设计方案53 蓄电池检测硬件设计63.1 单片机电路设计63.2 蓄电池数据处理部分电路设计93.2.1 ADC数据采集转换电路设计93.2.2 LCD数据显示电路设计104 CAN总线模块设计124.1 CAN总线简介124.2 CAN总线芯片选择134.3 CAN总线接口硬件设计155 软件设计195.1 单片机C语言简介195.2 软件设计总体方案205.3 数据采集子程序设计方案225.4 数据显示子程序设计方案2
8、46 硬件制作与调试286.1 硬件制作方法与过程296.2 制作调试过程中的一些错误与问题317 结论327.1设计结论327.2 设计中一些不足与扩展32参考文献33致谢34IV常州大学本科生毕业设计(论文)1 绪论 近二十年来,以计算机科学,信息学,生命科学为代表的各门新兴学科的迅猛发展,极大限度的刺激了全球经济的发展,在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,电能是人们日常生活和工业生产中的重要能源之一,在现代社会中起着越来越重要的作用,而电压、电流是其中最关键
9、的两个因素,是否准确的测量电压、电流对我们的生活和生产有着至关重要的影响,特别是经常要对电量进行采样测试以了解工作电压的工作情况。与此同时,蓄电池作为一种重要的电能储存的工具,已经在人们日常生活中起到越来越重要的作用。蓄电池作为直流备用电源,对系统的安全可靠运行有非常重要的作用。为避免蓄电池在长期使用中因质量问题出现故障而引发事故带来经济损失,需对蓄电池进行实时在线监测。就目前的蓄电池国内外最新的研究成果与方向,主要集中在一些蓄电池组中,单个蓄电池的工作状态的检测。其中,对于单个蓄电池的电压检测就是这些工作的难点与重点。有人提出用继电器来切换电池组中的每只电池。用触点式继电器切换的缺点是:体积
10、大、成本高、寿命短、速度慢,且其电压值计算比较麻烦;有人提出另外一种方法:在多路输入信号的选择上采用模拟开关进行选通,在模拟信号的转换上采用可编程定时器的V/F 转换器。其中,在解决输入信号电压高于芯片的最大工作电压的问题上存在技术难点,且采用V/F转换作为A/D转换器。其缺点是响应速度慢、在小信号范围内线性度差、精度低。关于在线测量单只电池电压的方法,还有人提出用光电隔离器件和大电解电容器构成采样,保持电路来测量蓄电池组中单只电池电压。此电路的缺点是:在A/D转换过程中,电容上的电压能发生变化,使其精度趋低,而且电容充放电时间及晶体管和隔离芯片等器件动作延迟等因素,决定采样时间长等缺点。国内
11、研制并投产的ZXJ24/2-1型蓄电池组智能监测仪,采用浮动地技术测量蓄电池组中各单电池电压,测量的参数还包括电池组电压、2路电流、2路温度。 美国蓄电池监测系统技术(Battery Monitoring System,BMS)发展于电力应用工业。1989年,美国电力研究所与国家电能研究公司合作,共同研究了无人值守场站PBWC 铅酸蓄电池综合在线状态监测系统。经过4年的研究与开发,耗资200万美元,于1994年完成样机的现场试验。测定的参数包括:电池组电压、单体电压、(浮充电)维持电流、电池内部温度、电池组环境温度、电解液比重、电解液液面高度以及电极利用情况等。其方法是采用安装在每一只电池上的
12、多传感器电池监测模块(叫“电池监测器”,是真空密封的)。这种模块通过光缆将状态数据传输到蓄电池组监测器,每一电池组监测器可监测256 个单电池。远程控制中心通过MODEMS和公用电话线对电池组监测器进行监测,可监测的电池组监测器的数量不受限制。控制中心PC机能定期查询所有运行组的监测器,下载并处理储存的数据,存储和显示电池状态及其趋势的信息,能获得每一节电池的参数。在当今,计算机技术、通讯技术、大规模集成电路的飞速发展,对远程监测或者多点检测的数据通信提出了更高的要求。CAN总线就是为了适应这种要求孕育而生的。CAN是控制器局域网络(Controller Area Network, CAN)的
13、简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发,并最终成为国际标准(ISO11808)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。运用CAN总线技术能够方便的将电池的工作情况进行远程调控或者是多点数据相互传输。现在,在全球环境日益恶化的情况下,对于能源的节约使用,以及对环境的保护工作已刻不容缓。世
14、界上各个国家都在积极的将一些一次能源淘汰掉,大力使用可循环使用的能源,蓄电池就是一种清洁的电能载具。然而一些蓄电池再生产的过程中难免会加入一些有害,有毒的物质,因而,对蓄电池的合理使用变得尤为重要。如果能够有效的,实时的对蓄电池进行必要的监控,不仅可以确保其工作的正常,保证不因过度使用对蓄电池造成损伤,更能使蓄电池的使用寿命延长,在一定程度上面,减少的报废蓄电池中的有毒有害物质对环境的影响。本文的设计,主要是运用51系列的单片机作为控制芯片,ADC0832作为8位A/D转换芯片,加上LCD1602的显示,组成一个能够实时显示蓄电池电压数值的蓄电池检测设备。它能够显示出当前工作蓄电池的工作电压值
15、,根据这一数值,判断其蓄电池的电量水平,以确定是否需要充电。或者在出现电压数值变化的异常,来确定其蓄电池是否已损坏。2 总体方案2.1方案可行论证 本文设计是通过检测蓄电池的电压来确定蓄电池的工作情况,这在原理上是可行的。 蓄电池的种类很多,主要有以下几种: 铅酸蓄电池:铅酸蓄电池已有100多年的历史,广泛用作内燃机汽车的起动动力源。它也是成熟的电动汽车蓄电池,它可靠性好、原材料易得、价格便宜;比功率也基本上能满足电动汽车的动力性要求。但它有两大缺点;一是比能量低,所占的质量和体积太大,且一次充电行驶里程较短;另一个是使用寿命短,使用成本过高。镍氢蓄电池:镍氢蓄电池属于碱性电池,镍氢蓄电池循环
16、使用寿命较长,无记忆效应,但价格较高。它的初期购置成本虽高,但由于其在能量和使用寿命方面的优势,因此其长期的实际使用成本并不高。锂离子电池:锂离子二次电池作为新型高电压、高能量密度的可充电电池,其独特的物理和电化学性能,具有广泛的民用和国防应用的前景。其突出的特点是:重量轻、储能大、无污染、无记忆效应、使用寿命长。在同体积重量情况下,锂电池的蓄电能力是镍氢电池的1.6倍,是镍镉电池的4倍,并且目前人类只开发利用了其理论电量的20%30%,开发前景非常光明。同时它是一种真正的绿色环保电池,不会对环境造成污染。 镍镉电池:镍镉电池的应用广泛程度仅次于铅酸蓄电池,其比能量可达55Wh/kg,比功率超
17、过190W/kg。可快速充电,循环使用寿命较长,是铅酸蓄电池的两倍多,可达到2000多次,但价格为铅酸蓄电池的45倍。它的初期购置成本虽高,但由于其在能量和使用寿命方面的优势,因此其长期的实际使用成本并不高。缺点是有“记忆效应”,容易因为充放电不良而导致电池可用容量减小。须在使用十次左右后,作一次完全充放电,如果已经有了“记忆效应”,应连续作35次完全充放电,以释放记忆。另外镉有毒,使用中要注意做好回收工作,以免镉造成环境污染。 另外还有钠硫蓄电池、镍锌蓄电池、锌空气蓄电池、飞轮电池。在这些蓄电池中,各个方面使用比较广泛的铅蓄电池(车用12V铅蓄电池)就电压与电量而言,放电之后,电压就会下降。
18、根据电路公式:V=E-I.R(V:端子电压(V)I:放电电流(A)E:开路电压(V)R:内部阻抗();放电时,电解液比重下降,电压也降低;放电时,电池内部阻抗即随之增强,完全充电时若为1倍,则当完全放电时,即会增强23倍。鉴于这些原因,电压与电量的关系 一般有如下经验值表2.1:表2.1 12V蓄电池剩余电量与工作电压的关系电压(v) 剩余电量12.712.512.412.312.212.111.911.811.611.310.5100%90%80%70%60%50%40%30%20%10%0% 还有一种电压与电量测量的实际应用:那就是手机蓄电池锂离子蓄电池,在一些比较老式的手机电量是通过屏幕
19、上电量显示格数来表示的。这其实就是检测出蓄电池的电压,再根据其最大电量是的电压值与最低电量的电压值按一定比例进行划分出来的。之所以这么设计,很大一部分原因是因为锂蓄电池经过放电之后,电压会随着电量的下降而下降,并且斜率会很大,较其他蓄电池明显。当然,现在手机中的蓄电池种类繁多,一些新型的智能手机的蓄电池的满额电压与电量都有了明显提高。各个蓄电池的生产厂家所规定一些标准参数也不尽相同,所以本文在这里只能给一种常见的手机蓄电池电压与电量的关系,如表2.2所示。这个表在这里只是起到说明锂电池的电压值能比较准确反应出电量的变化与剩余数值,并不是说这个表就是各种蓄电池电压与电量之间的具体关系。表2.2
20、一般手机锂蓄电池电压与电量关系表电压(V) 电量(%)4.204.063.983.923.873.823.793.773.743.683.45100%90%80%70%60%50%40%30%20%10%5% 2.2 系统功能综述本设计能实现对工作蓄电池的电压的实时显示,并且在电压较低时提供警示显示。主要分为3个部分:数据采集A/D转换部分,显示部分,CAN总线通讯部分。A/D转换部分实现了对实地电压采集模拟量到数字量的转变,使单片机可以将这一数据进行处理与传送。显示部分的作用是使数据直观的表示出来,方便对数据进行的分析与记录。CAN总线的作用是通过使用CAN总线通讯技术对数据进行的运程传输或
21、者是多点数据互传。2.3 设计方案 总体设计方案框图如图.所示: 显示模块 单片机 A/ D 转换电压实地采集CAN总线模块图2.1 设计总体方案 首先,实地电压采集了以后,通过ADC芯片转换后,进入单片机进行传输,经单片机处理后,在LCD上进行显示,通过电压这一数值,就能大体确定蓄电池的使用状况,与是否发生异常。 另外,将单片机与CAN模块连接,就能通过CAN通讯技术,经行数据的通讯与接收。电池电压检测的功能是实现对单体电池电压的检测和网络传输。该单元由电压信号变换、单片机系统、CAN总线接口和电源组成。该单元是基于CAN通信的电压检测模块,检测到的电压模拟信号经处理并数字化后,通过CAN总
22、线传输给控制管理单元。检测终端采集到蓄电池单体电压信号后,进行放大,滤波、模/数转换和隔离后,送入单片机,单片机将通过CAN总线与上位机进行数据通信。3 蓄电池检测硬件设计3.1 单片机电路设计 单片机电路主要的作用是控制各个芯片和设备的工作状态和接收ADC采集且转换好的数字信号,对此信号做传输和储存,并将此信号发送到LCD显示设备上,让LCD做后续现实工作。本设计采用89C51单片机,89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片
23、机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3.1为89C51引脚图。 图3.1 89C51引脚图图3.1中的管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器
24、,它可以被定义为数据/ 地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将
25、输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P
26、3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出
27、的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高
28、电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 单片机最小系统如图3.2所示: 图 3.2 单片机最小系统 图中主要包括了复位电路与晶振电路。复位电路是从单片机RESET引脚接入电容与电阻后,用一个按钮开关控制电容的充放电,来达到RESET引脚电位的高低变化,达到复位目的。晶振电路则是在X1与X2引脚接入12M晶振,为单片机提供时序。3.2 蓄电池数据处理部分电路设计3.2.1 ADC数据采集转换电路设计 ADC主要是采集目标的模拟信号,并将这个信号转换为数
29、字信号,传输到单片机。目前主要的ADC有ADC0832、ADC0809、ADC0804、ADC0808等等。本设计选用的芯片为ADC0832。ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。ADC0832 具有以下特点:8 位分辨率;双通道 A/D 转换;输入输出电平与 TTL/CMOS 相兼容;5V 电源供电时输入电压在 05V 之间;工作频率为 250KHZ,转换时间为 32S;一般功耗仅为 15mW;8P、14PDIP(双列直插)、PICC 多种封装;商用级芯片
30、温宽为0C +70C,工业级芯片温宽为40C +85C。图3.3为ADC0832的引脚图。 图3.3 ADC0832引脚图管脚说明:CS_片选使能,低电平芯片使能。CH0模拟输入通道 0,或作为 IN+/-使用。CH1模拟输入通道 1,或作为 IN+/-使用。GND芯片参考 0 电位(地)。DI数据信号输入,选择通道控制。DO数据信号输出,转换数据输出。CLK芯片时钟输入。Vcc/REF电源输入及参考电压输入(复用)。ADC电路如图3.4所示:图 3.4 ADC电路设计原理图 图中,ADC0832的1号端口为CS端,它与单片机的P22相接,由单片机的P22脚作为ADC0832的使能控制端。2号
31、端口为CH0端,作为电压采集的端口,4号与8号分别为电源端与接地端。5号、6号端口为D1与D0端,分别连接到单片机的P23与P24端口,控制ADC的读写。7号端口为CLK端,作为ADC的时序输入端。3.2.2 LCD数据显示电路设计字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。本设计选择LCD1602这一LCD来作为LCD设备。一般LCD1602字符型液晶显示器引脚如图3.5:图3.5 LCD1602引脚图 引脚接口说明:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正
32、电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。 LCD1602主要技术参数: (1)显示容量:162个
33、字符;(2)芯片工作电压:4.55.5V(3)工作电流:2.0mA(5.0V)(4)模块最佳工作电压:5.0V(5)字符尺寸:2.954.35(WH)mmLCD显示与单片机连接电路如下图3.6:图3.6 LCD1602与单片机连接电路原理图 图3.6中,LCD1602的4、5、6号端口分别为R/S、RW、E端,分别由单片机的P30、P31、P32控制,714号端口为DB0DB7,与单片机的P1端口相连。用作数据的传输。4 CAN总线模块设计4.1 CAN总线简介 CAN是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系
34、统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据
35、通信提供了强有力的技术支持。 CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。CAN总线特点: (1)完成对通信数据的成帧处理:CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。 (2)使网络内的节点个数在理论上不受限制:CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理
36、论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义2或2个以上不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。 (3)可在各节点之间实现自由通信:CAN总
37、线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。CAN总线插卡可以任意插在PC AT XT兼容机上,方便地构成分布式监控系统。 (4)结构简单:只有2根线与外部相连,并且内部集成了错误探测和管理模块。4.2 CAN总线芯片选择CAN总线中,主要有控制芯片与收发器芯片。控制芯片的作用主要是带有CAN协议,在整个CAN总线模块里控制数据的传
38、输与接收,对这些数据做存储。本文设计选用的芯片是SJA1000。SJA1000是PHILIPS公司推出的一款独立的CAN控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是PCA82C200型CAN控制器(BasicCAN)的替代产品,而且增加了一种新的操作模式-PeliCAN,这种模式支持具有很多新特征的CAN2.0B协议。 SJA1000的基本特征如下:(1)引脚与PCA2C200型CAN控制器兼容。(2)有扩展的接收缓冲器(64字节,先进先出FIFO)。(3)支持CAN2.0A和CAN2.0B协议。(4)支持11位和29位标识码。(5)通信位速率可达1Mb/s。(6)可与不同的微
39、处理器接口。(7)可编程的CAN输出驱动器配置。图4.1为SJA1000的引脚图。 图4.1 SJA1000引脚图引脚功能说明: AD7AD0:地址数据复用线。 ALE/AS:ALE输入信号(Intel模式)或AS输入信号(Motorola模式)。 CS:片选信号,低电平允许访问SJA1000。 RD/E:来自微控制器的RD信号(Intel模式)或E使能信号(Motorola模式)。 WR:来自微控制器的WR信号(Intel模式)或RD/WR使能信号(Motorola模式)。 CLKOUT:SJA1000产生用于微控制器的时钟输出信号;时钟信号由内置晶体振荡器通过可编程除法器产生;时钟除法寄存
40、器中的时钟停止位能使该引脚无效。 VDD1和VSS1:逻辑电路5V电源和逻辑电路地。 XTAL:晶体振荡器放大器输入,外部晶体振荡器信号由该脚输入。 XTAL2:晶体振荡器放大器输出,当使用外部晶体振荡器信号时,该输出引脚必须开路。 VDD3和VSS3:输出驱动5V电源和输出驱动地。 TX0和TX1:CAN输出驱动器0和1输出到物理总线。 INT:中断输出,用于触发微控制器中断;内部中断寄存器的任何位置位,INT将低电平输出;INT为开环输出;该引脚为低电平将电路从睡眠状态激活。 RST:复位输入,用于复位CAN接口(低电平有效)。 VDD2和VSS2:输入比较器5V电源和输入比较器地。 RX
41、0和RX1:从物理CAN总线输入到SJA1000的输入比较器。在CAN总线中,收发器的作用在于提升CAN控制芯片的数据差动接收与传输的能力,并能在数据传输是,提供一定的硬件保护,避免芯片因温度过高等原因而损坏。CAN总线收发器也是CAN控制器和物理总线间的接口,提供对总线的差动发送能力和对CAN控制器的差动接收能力。限定的电流值保护接收器输出级,避免阳极和阴极的短路,尽管在默认的条件下功率消耗是增加的,这个特征值将防止发射器输出级的损坏。如果结点温度超过160,发送器限定的电流值输出被降低,因为发送器被占去大部分的功率消耗,这将导致降额功耗和较低的片面温度,IC中的其它部分在使用中将保持不变。
42、当总线短路的时候,热保护非常的需要。本文选择的收发器芯片为82C250。选择它的原因有以下几点:(1)与ISO/DIS 11891标准完全兼容; (2)最高速可达1Mbps; (3)很强的抗瞬间干扰和保护总线的能力 在自动化环境中总线保护瞬间 ;(4)降低射频干扰(Radio Frequency Interference,RFI)的斜率控制;(5)具有一定的热防护;(6)防护电池与地之间发生短路; (7)低电流备用模式; (8)某一个节点掉电不会影响总线; (9)至少有110个节点相连接; (10)不同的接收器都具有宽共模范围,有很强的抗电磁干扰(EMI)能力。 该芯片的引脚与功能如下图4.2
43、。 图4.2 82C250引脚图引脚功能说明:TXD:发送数据输入; GND:接地; Vcc:提供电压;RXD:接收数据输出; Vref:参考电压输出; CANL:低电平CNA电压输出/输入 ;CANH:高电平CNA电压输出/输入 ;Rs:Slope电阻输入。4.3 CAN总线接口硬件设计SJA1000与单片机的相连比较简单,单片机以访问外部存储器的方式来访SJA1000。由于SJA1000的内部寄存器分布在连续的地址内,所以完全可以把SJA1000当作外部RAM。在设计接口电路时,SJA1000的片选地址应与其他外部存储器的片选在逻辑上无冲突。为了确保SJA1000的正常运行,以保证在进行数
44、据通信的时候不受其他电信号干扰,加入了光耦隔离芯片,组成了光耦隔离电路。其中主要的芯片是6N137。6N137芯片是一款用于单通道的高速光耦合器,其内部有一个850 nm波长AlGaAs LED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。具有温度、电流和电压补偿功能,较高的输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd),5mA的极小输入电流。该芯片的特点是:转换速率高达10MBit/s;摆率高达10kV/us;扇出系数为8;逻辑电平输出;集电极开路输出。工作参数:最大输入电流,低电平:250uA 最大输入电流,高电平:15mA 最大允许低电平电压(输出高):0.8v 最大允许高电平电压:Vcc 最大电源电压、输出:5.5V 扇出(TTL负载):8个(最多) 工作温度范围:-40C +85C 典型应用:高速数