基于光纤的汽车CAN总线研究(电子信息技术本科毕业论文)_第1页
基于光纤的汽车CAN总线研究(电子信息技术本科毕业论文)_第2页
基于光纤的汽车CAN总线研究(电子信息技术本科毕业论文)_第3页
基于光纤的汽车CAN总线研究(电子信息技术本科毕业论文)_第4页
基于光纤的汽车CAN总线研究(电子信息技术本科毕业论文)_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计〔论文〕题目:基于光纤的汽车CAN总线研究系别:电子信息科学系专业:电子信息科学与技术班级:学生姓名:学号:指导教师:

学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承当。作者签名:学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保存并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或局部内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于保密□,在_________年解密后适用本授权书。不保密√。〔请在以上相应方框内打“√〞〕作者签名:导师签名:

摘要 本文提出了基于SJA1000CAN控制器的Fiber-CAN接口和CAN通信的设计。采用光纤作为传输介质提高了CAN通信网抗干扰能力。详细分析了Fiber-CAN通信的接口设计的可行性,并设计出了点对点网络通信的Fiber-CAN接口。 其主要有单片机控制局部、单片机外设局部和CAN通信接口局部组成。单片机和其外设共同工作产生了CAN通信所传输的信息,另一个节点通过显示局部显示通信的结果。Fiber-CAN通信的光电转换局部采用了SDH收发一体的光电转换模块,比拟容易的实现了光纤接口局部,减少了设计的复杂程度,并提高系统的性能。光纤的使用不仅大大提高通信的抗干扰能力,而且增大了节点间的传输距离。 本设计方案应用于汽车总线,能在汽车中极其恶劣的现场稳定的传输汽车各个部件的参数,完成各个局部协调合作的任务。关键词:汽车总线;光纤;CAN控制器;Fiber-CAN

AbstractThisarticleproposedbasedonSJA1000CANcontrollerFiber-CANinterfaceandthecorrespondencedesign.TheopticalfiberusedtosharpentheCANcommunicationsnetworkantigamblingabilityasthetransmissionmedium.DetailedsubdividedFiber-CANcorrespondenceconnectiondesignfeasibility,anddesignedpoint-to-pointnetworkcorrespondenceFiber-CANconnection.

Itmainlyhasoutsidethemonolithicintegratedcircuitcontrolsection,themonolithicintegratedcircuitsupposespartiallywiththeCANcorrespondenceconnectionpartialcompositions.ThemonolithicintegratedcircuitandbesidessupposedworkstogetherhashadtheCANmessagecentertransmissioninformation,anotherpitchpointthroughdemonstrationpartialdemonstrationscorrespondenceresult.Fiber-CANcorrespondencephotoelectricitytransformedpartiallyusesSDHtoreceiveanddispatchabodythephotoelectricitytransformationmodule,tohavebeenpartialcomparedwiththeeasyrealizationopticalfiberconnection,reducedthedesigncomplexdegree,andenhancedthesystemtheperformance.Theopticalfiberusenotonlyenhancesthecorrespondencegreatlytheantigamblingability,moreoverhasincreasedthepitchpointtransmittingrange.

Thisdesignproposalappliesintheautomobilebusline,canintheautomobiletheextremelybadscenestabletransmissionautomobileeachpartparameters,completeeachpartofcoordinatedcooperationtheduty.

Keywords:Automobilebusline;Fiber;CANcontroller;Fiber-CAN目录第一章概述 1第二章汽车总线技术 32.1汽车网络技术的开展历史 32.2汽车网络技术的作用 32.3汽车网络技术的开展趋势 4在汽车应用中迅速普及 42.3.2高速、实时、容错网络控制技术 42.3.3多媒体、高带宽的网络 4丰富的软件设计 52.3.5统一网络协议 52.4车用网络的拓扑结构 52.4.1总线拓扑 52.4.2星型拓扑 62.4.3环形拓扑 62.5汽车CAN总线 72.5.1CAN总线的特点 72.5.2CAN总线技术的优点 8第三章方案比照 93.1Wire-LIN,Wire-CAN 93.1.1Wire-LIN 93.1.2Wire-CAN 103.2Fiber-CAN 103.2.1Fiber-CAN节点 113.2.2光纤的选择 113.2.3Fiber-CAN的网络拓扑结构 123.3方案选择 12第四章系统硬件设计 134.1系统设计的根本任务 134.2系统的硬件外设原理设计 134.2.1CAN控制器SJA1000 134.2.2控制器原理图 154.2.3CAN光纤接口原理 164.2.4CPU、RAM扩展和ROM扩展局部 174.3系统的硬件外设PCB设计 234.3.1PCB设计中的流程和抗干扰措施 234.3.2PCB制作 27第五章系统CAN通信软件设计 295.1BasicCAN节点的主程序设计 295.2程序设计说明 31系统宏定义 315.2.2CAN接口配置子程序 34自动发送 37第六章系统的安装及测试设计 386.1PCB板的安装 386.2PCB板的测试 38焊接测试 38单元测试 39CAN接口通信测试 396.3系统的改良 40结束语 42致谢 43参考文献 44附录A〔主要模块源代码〕 45附录B〔PCB板设计截图〕 69第一章概述在当今的中高档汽车中都采用了汽车总线技术。汽车总线为汽车内部各种复杂的电子设备、控制器、测量仪器等提供了统一数据交换渠道。一些汽车专家认为,就像在20世纪70年代引入集成电路、80年代引入微处理器一样,近10年来数据总线技术的引入也将是汽车电子技术开展的一个里程碑。20世纪90年代以来,汽车上由电子控制单元(ECU)控制的部件数量越来越多,例如电子燃油喷射装置、防抱死制动装置、平安气囊装置、电控门窗装置、主动悬架等等。随着集成电路和单片机在汽车上的广泛应用,车上的ECU数量越来越多。因此,一种新的概念--车上控制器局域网络CAN〔ControllerAreaNetwork〕的概念也就应运而生了。CAN最早是由德国BOSCH公司为解决现代汽车中的控制与测试仪器之间的数据交换而开发的一种数据通信协议,按照ISO有关标准,CAN的拓扑结构为总线式,因此也称为CAN总线。CAN协议中每一帧的数据量都不超过8个字节,以短帧多发的方式实现数据的高实时性;CAN总线的纠错能力非常强,从而提高数据的准确性;同时CAN总线的速率可到达1Mbit/s,是一个真正的高速网络。总之,将CAN总线应用在汽车中使用有很多优点:(1)用低本钱的双绞线电缆代替了车身内昂贵的导线,并大幅度减少了用线数量;提高可靠性,平安性、降低本钱。(2)具有快速响应时间和高可靠性,并适合对实时性要求较高的应用如刹车装置和气囊;控制平台、信息平台、驾驶平台的互连根底。(3)CAN芯片可以抗高温和高噪声,并且具有较低的价格,开放的工业标准。在现代轿车的设计中,CAN已经成为必须采用的装置,奔驰、宝马、群众、沃尔沃、雷诺等汽车都采用了CAN作为控制器联网的手段。据报道,中国首辆CAN网络系统混合动力轿车已在奇瑞公司试装成功,并进行了初步试运行。在上海群众的帕萨特和POLO汽车上也开始引入了CAN总线技术。但总的来说,目前CAN总线技术在我国汽车工业中的应用尚处于试验和起步阶段,绝大局部的汽车还没有采用汽车总线的设计,因而存在着不少弊端。比方,众所周知汽车的核心设备就是发动机,发动机的运行参数,例如发动机转速、机油压力、冷却剂温度等等是和汽车驾驶是紧密相关的。传统汽车仪表的设计方法是:通过放置在汽车部件〔如发动机〕内部的传感器,将机械信号转换成电信号,如电压、电流、脉冲信号,再经过D/A转换或计数器等,将电信号转换成可视的指针信号显示在模拟仪表盘上。随着汽车总线技术的开展,不少进口的发动机已经不再直接向外提供传感器信号,而改用CAN总线通信接口。一旦发动机出现故障时,由于缺乏基于CAN总线的测试维修设备,目前我们的维修人员使用的方法只能是在发动机上钻孔,将传感器直接放进发动机内部进行测量,操作繁琐、设备复杂,且不利于保护发动机的整体结构。又比方,现有的局部汽车仪表使用了专用的总线设计,由于硬件标准不统一,通信协议也不兼容,为甲公司汽车生产的仪表完全不能在乙公司的汽车上使用,生产本钱难以降低、故障维修很不方便。如果能将各种专用总线统一到CAN总线标准上来,就可以解决问题。再比方,在手动挡汽车中,驾驶员的换挡是依照经验进行的,有可能发生应该加高挡位而没能及时加挡的情况,即低档高速行驶,既不利于降低油耗,又容易造成汽车传动部件磨损。如果能实现自动换挡提示,车辆就能始终保持在经济时速行驶。根据ISO(国际标准化组织)定义的OSI模型,CAN协议定义了物理层及数据链路层标准,这为不同的汽车厂商制定符合自身需要的应用层协议提供了很大的便利。如果需要建立更加完善的系统,还需要在CAN的根底上选择适宜的应用层协议。如CANOpen、DeviceNet、SAEJ1939等。现代汽车是一个智能化网络计算平台。汽车网络贯穿整车的每个单元即控制系统、信息系统、驾驶系统和传感执行系统均由控制局域网CAN-BUS互连,掌握应用层网络标准并开发嵌入式软件是关键技术。将车内的控制网络与信息网络如故障信息检测系统,车况自动纪录系统,实时驾驶信息显示系统〔智能化数字仪表〕与嵌入式因特网互连〔支持IPv4及IPv6〕,使每个汽车有一个Web网页,将会是今后汽车计算平台的关键核心技术。第二章汽车总线技术2.1汽车网络技术的开展历史早期的汽车网络中,通用网络标准并未得到广泛的认同和应用,用户通常利用自己制定的电路和通用异步收发器(UART)设备来实现简单的串行通信。由于没有统一标准,各汽车制造商都有一套独立定义的接口标准和专用供给商。这样,供给商虽然纵向紧密地与汽车制造商合作,却缺乏与其他供给商的横向联系,导致生产的同类产品不能兼容互换。采用标准化网络技术以后,各供给商按照统一的标准生产部件,提高了同类产品的兼容性和互换性。而汽车制造商可以委托任意一家合格的供给商开发符合标准的模块。国际著名汽车制造商和零部件供给商于二十世纪八十年代就致力于汽车网络技术的研究与应用,迄今己推出多种网络标准,如J1850,VAN,CAN,ABUS等。在各种汽车网络中,CAN以其独特的设计,优异的性能和极高的可靠性得到了最为广泛的应用。尤其在欧洲,DaimlerC、hrysler及Volvo公司等都将CAN作为他们电子系统控制器网络化的手段。美国的制造商也正逐步将他们的汽车网络系统由J1850过渡到CAN。2.2汽车网络技术的作用目前,汽车电子控制己经从初期的“电子——机械替代〞阶段过渡到“独立系统的精确量化反应控制〞阶段,并朝着“多目标综合控制和智能化控制〞的方向开展,即把整体上相关、功能上相对独立而位置上分布安装的电子系统或装置组成一个协调控制的综合系统。为了实现多目标的优化控制,进一步全面提高汽车的整体性能,根据智能化的要求和综合协调控制的特点,综合控制系统将更多地依赖系统内、外部信息的获取,这要求互相独立的电子系统和装置间进行数据交换和信息传递。因此,现代汽车采用网络技术解决分布式控制是一种必然,使用汽车网络不仅可以减少线束,而且能够提高各控制系统的运行可靠性,减少冗余的传感器及相应的软硬件配置,实现各子系统之间的资源共享,便于集中实现各子系统的在线故障诊断。2.3汽车网络技术的开展趋势在汽车应用中迅速普及短短几年内,汽车网络技术的开展速度令人瞳目结舌,仅以上海群众的两款引进车型为例,两年前,人们还惊叹作为中档车的PassatB5采用了CAN总线控制技术,如今作为经济型轿车推出的Pol。也己全面采用网络控制技术。从目前情况看,世界各大汽车公司的车身网络控制和动力系统网络控制技术平台均己根本建立,在新推出的车型中,全面采用网络控制技术己成为可能。可以断言,近几年内网络技术在汽车中的应用将会迅速普及。高速、实时、容错网络控制技术线控概念(x-by-wire)是一种新的汽车工程概念,目前己有使用线控系统的概念车出现。2002年1月初在底特律举行的北美国际车展上,展出的跑车Autonomy就首次在汽车中使用了x-by-wire技术。x-by-wire技术在未来将是十分重要的技术,该技术极大改善了汽车的可操纵性、平安性、设计的灵活度及总体结构。驾驶员和方向盘之间将没有任何机械局部的连接,使用这种技术使汽车的操纵系统、制动系统及其它辅助系统能够通过电子方式进行控制,这就是说,像汽车内的刚性传动件将会被基于网络控制的各种传感器、控制器和电液式电动执行器所组成的线控系统取而代之。x-by-wire技术必将促进高速、实时、容错网络通信技术的开展。多媒体、高带宽的网络未来汽车网络同时将是一个多媒体、高带宽的网络。它能使车主生活更轻松,并在某种程度上将办公室移入车内。假设从长远来看,汽车甚至可以成为一个网站,人们可以下载软件以提高汽车的性能。目前,此类技术尚处研发阶段,与蜂窝移动技术相结合,如全球定位系统(GPS)和导航系统等少数技术己在高档汽车中得到应用。作为最早的汽车电子产品的汽车收音机,现在不止是一种娱乐工具,还可以适配导航系统、RDS,DAB,ARI和RKE等的接口。丰富的软件设计未来汽车将成为软件产品,此断言可能是一种梦想,因为现在无法想象除了机械之外,还有什么能使汽车运动、关闭车窗和天窗、翻开气门或电动机。然而,这说明在未来的汽车中软件主导硬件的趋势是不可防止的,软件在汽车设计中已无处不见,可以说未来汽车市场竞争的热点之一就是软件的竞争。这也正是OSEK产生的原因,使用OSEK将大大缩短开发新型模块的周期。将来,汽车制造商必须与配件制造商、芯片供给商紧密协作,三方各尽所能以确保汽车工程工程的成功。在汽车设计过程中,软件开发正变得与发动机或者车身设计一样重要。据估计,在不久的将来,会出现汽车专用软件供给商,现有零部件供给商可能转移研发的重点和方向。一方面,汽车软件设计的分工会更明细和模块化,另一方面,专用软件的开发也是一个趋势。统一网络协议目前汽车行业中存在许多网络通信协议,由于缺乏全世界统一的标准,实际上提高了汽车的制造本钱。虽然建立一个统一的汽车网络协议体系是一件十分复杂和困难的工作,但在汽车制造商和供给商之间己逐渐对这一问题达成一致:A类网络使用LIN;B类网络使用低速CAN,C类网络使用高速CAN己作为事实上的统一标准;在采用x-by-wire技术的下一代汽车中,TTP或者FIexRay协议将是一种必然的选择。此外,大多数汽车公司和零配件厂商对统一开发环境常感兴趣。可以预见,在不久的将来,各类网络标准将被合并成为一个。假设真的形成这种天下一统的局面,那么汽车及其相关工业将受益匪浅,从而大大加快汽车技术的开展。2.4车用网络的拓扑结构在汽车网络拓扑结构中,常见的结构有总线型网络、星型网络以及环形网络。总线拓扑在总线拓扑中,传输介质为一条总线,节点通过相应的硬件接口接至总线上。当一个节点发送消息时,其他节点均可接收该消息。由于所有的节点共享同一个信道。因此任一时刻只允许一个节点发送消息。该网络拓扑必须使用总线访问机制,这样当两个或多个节点同时准备发送消息时,能确定哪个节点优先获得总线的访问权。目前在汽车控制网络中使用最多的是总线拓扑结构。如图2.1所示。节点节点节点节点节点图2.1总线拓扑星型拓扑在星型拓扑结构中,每个节点通过点对点的方式连接到中央节点,因此任何两个节点之间的通信都必须通过中央节点。如图2.2所示。节点节点节点节点节点节点图2.2星型拓扑环形拓扑在环形拓扑结构中,有许多中继器进行点到点的链路连接,使整个网络构成一个封闭式的环路。如图2.3所示。节点节点节点节点节点节点节点节点节点图2.3环形拓扑2.5汽车CAN总线CAN总线是德国BOSCH公司在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。它的短帧数据结构、非破坏性总线性仲裁技术以及灵活的通讯方式适应了汽车的实时性和可靠性要求。汽车CAN总线的技术背景来源于工业现场总线和计算机局域网这样非常成熟的技术,因此具有很高的可靠性,抗干扰性。2.5.1CAN总线的特点CAN作为一种多主总线,支持分布式实时控制的通讯网络。其通讯介质可以是双绞线、同轴电缆或光纤。在汽车发动机控制部件、传感器、抗滑系统等应用中,总线的位速率最大可达1Mbit/s。CAN总线属于总线式串行通讯网络,由于其采用了许多新技术及独特的设计,与一般的通讯总线相比,CAN总线的数据通讯具有突出的可靠性、实时性和灵活性。其特点可以概括如下:CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一点可方便地构成多机备份系统。CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。CAN采用非破坏性总线性仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况〔以太网那么可能〕。CAN只需通过帧滤波即可实现点对点、一点对多点及全局播送等几种方式传送接受数据,无需专门的“调度〞。CAN采用NRZ编码,直接通信距离最远可达10km〔速率5kbps〕;通信速率最高可达1Mbps(此时通信距离最长为40m)。CAN上的节点数主要取决于总线驱动电路,目前可达110个;标示符可达2032种〔CAN2.0A〕,而扩展标准(CAN2.0B)的标示符几乎不受限制。采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。CAN的每帧信息都有CRC效验及其他检错措施,保证数据出错率极低。CAN的通信介质可为双铰线、同轴电缆或光纤,选择灵活。CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。2.5.2CAN总线技术的优点国内汽车品牌中已经有几款车型应用了总线技术,这些技术完全来自国外。目前应用总线的国产车中大多采用两套独立的CAN总线:一套是动力CAN数据传输系统,另一套是舒适CAN数据传输系统。使用CAN总线后,对其优点进行了总结,得出以下结论:1)如果数据扩展以增加新的信息,只需升级软件即可。2)控制单元对所传输的信息进行实时检测,检测到故障后存储故障码。3)使用小型控制单元及小型控制单元插孔可节省空间。4)使传感器信号线减至最少,控制单元可做到高速数据传输。5)CAN总线符合国际标准,因此可应用不同型号控制单元间的数据传输。第三章方案比照 这次设计的主要目的是在选定的网络拓扑根底上,通过一种选定的通信介质完成汽车通信网络的组建,有以下几种方案:3.1Wire-LIN,Wire-CAN3.1.1Wire-LIN本地互连网络(LIN)是一个低本钱、单线串行总线,能执行全双工串行通信。LIN用在汽车的分布式电子系统中,例如与智能传感器和传动器的通信。LIN协议能采用低本钱的UART/SCI接口来实现,几乎所有的微控制器都提供这些接口。LIN网络由一个主控和多个从器件组成,主控器件发起所有的通信。所有节点执行包括发送和接收任务在内的附属通信任务。此外,主节点执行主控发送任务,主控任务能决定什么时候、哪一个帧将在总线上传输。在该方式中,没有总线仲裁,并且在最坏情况下每个消息的时间很容易计算。当一个消息帧发送时,在接收和过滤标识符后,仅有一个从器件得到激活。如图3.1所示。总线上的所有消息以帧的形式发送,帧由一个帧头和响应字段(responsefield)组成。主控器件始终在总线上发送帧头,帧头至少由一个13位字段、一个同步字节和一个6位标识符组成,该标识符的范围为0到63。响应字段由两个、四个和八个数据字节和具有倒置8位和的校验和字段,以及所有的数据字节和标识符组成。图3.1显示了在一个消息帧上所有字段的排列顺序只有很少微控制器集成有专用的LIN硬件,大多数供给商用SCI或UART来提供支持。因为LIN物理层是一个从汽车自诊断用ISO9141标准引出的单线12V总线,所以需要一个外部LIN收发器来转换电平。例如当前市场上已有供货的摩托罗拉IMC33689LIN和英飞凌公司的TLE6259-2G收发器。3.1.2Wire-CAN 在传统的CAN总线系统中主要采用微处理器、CAN控制器和CAN总线驱动器模式,如图3.2所示。图3.2根本电路 SJA1000的AD0~AD7连接到微处理器8051的P0口,CS连接到8051的P2.0。P2.0为0时CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。SJA1000的RD、WR、ALE分别与8051的对应的引脚相连,INT接8051的INT0,8051页可以通过中断方式访问SJA1000。 为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0并不直接与82c250相连,而是通过高速光耦6N137后与82C250相连,这样就很好的实现了总线上的各CAN节点间的电气隔离。不过,应该特别说明的一点是,光耦局部电路所采用的两个电源VCC和VDD必须完全隔离,否那么采用光耦也就失去了意义。电源的完全隔离可采用小功率的电源隔离模块或带多5V隔离输出的开关电源模块实现。这些局部虽然增加了接口电路的复杂性,但是却踢过了节点的稳定性和平安性。82C250与CAN总线的接口局部野采用了一定的平安和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5欧的电阻与CAN总线相连,电阻起到了一定的限流的作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了两个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。为了减少反射,在总线的两端加了120欧的电阻已到达阻抗匹配的目的。82C250的Rs脚3.2Fiber-CAN在现代通讯网中为了解决大容量.高速率、远距离数据传输问题,产生了光纤通讯网。与双绞线和同轴电缆相比,光缆还具有不辐射、不导电、不存在光信号相互干扰的影响,也不会有在线路“接头处〞感应耦合导致的平安问题。目前光纤的另一优越性能——强大的抗EMI能力,引起人们的关注.所以为进一步提高CAN网络的性能,采用光纤作传输介质十分必要。3.2.1Fiber-CAN节点Fiber-CAN的节点连接方式和Wire-CAN大致相同,只是物理数据发送的介质是光纤,发送器为光电转换器。其原理图如图3.3所示。单片机单片机CAN控制器光纤收发器光纤总线图3.3CAN接口原理图3.2.2光纤的选择 塑料光纤(POF)具备了有利于大量生产的假设干优点。首先,它是柔韧的并能在行车车辆中承受振动。其次,因为POF是大直径光纤,它能传输的光通量大。另外,这种光纤可允许中心轴线错位,不需要高度精密的接头,能容易与光源连接。第-,POF易于切断和加工。汽车工程师们发现,选择最适用于汽车内部环境的光纤类型是更可取的,而不是在汽车中信号传输网络中仅采用单一种类的光纤。目前有两种类型的塑料光纤:PMMA(聚甲基丙烯酸甲酯)和PC(聚碳酸酯)。PMMAPOF耐热85℃到105℃,具有低的传输损耗,可在座舱中使用。PCPOF耐热120℃或更高,可在发动机机舱中应用,但传输损耗高。因此,工程师们推荐,耐热POF必须仅限于在高温环境内使用。在网络中使用耐热的PCPOF最长为5米,对于超过10米长的网络,主要使用低传输损耗的PMMAPOF。这种网络当通过高温环境时,可选用PCPOF。当不处于极端高温下时,PMMAPOF芯显示有许多突出的性能。其透明度和机械强度极高,同时能承受潮湿、热及恶劣天气。它具有良好的综合质量稳定性,并已证明具有高可靠性。POF纤芯和包层组成。通常纤芯直径0.5mm到1.5mm,包层厚度5μm到50μm。纤芯和包层的界面结构是影响POF可靠性的一个重大因素。由电子显微镜观察到的芯包界面的图象,可看到界面有两种根本类型。一种类型是界面上纤芯和包层产生明显粘结另一种类型是在纤芯和包层间形成了一种中间层。中间层是纤芯和包层=者表层的融台,生成了一种均匀的透明层。3.2.3Fiber-CAN的网络拓扑结构 光纤CAN网作为一种工业底层控制局域网,其拓扑结构与常用局域网一样,根本拓扑结构有总线形、环形和星形。3.3方案选择Wire-CAN的特点是:技术上容易实现,造价低廉,理论上节点数无限制,对环境电磁辐射有一定抑制能力。但随着频率的增高,双绞线的衰减迅速增高;双绞线在发送线对和接收线对之间存在电磁耦合干扰。由于电动汽车现场情况较为复杂,一旦双绞线CAN网络装车,由于车辆电气系统产生强电磁干扰,有时导致CAN网络不能正常工作。燃料电池电动汽车X~CAN数据传输和传输介质提出了更高的要求。因此我们选用Fiber-CAN方案,由于是初步研究我们选用最简单的点对点的网络拓扑。第四章系统硬件设计4.1系统设计的根本任务1、完成通信所需要的硬件电路的设计 2、完成通信所需要的软件设计3、应用硬件电路实现根本的CAN通信4.2系统的硬件外设原理设计 为了增强硬件电路的实用性,在设计中参加了A/D,ROM扩展,RAM扩展,键盘和显示。4.2.1CAN控制器SJA1000 根据选择的方案,采用CAN控制器SJA1000和光电转换接口进行CAN接口的组建。1、特性 ●和PCA82C200独立CAN控制器引脚兼容●和PCA82C200独立CAN控制器电气兼容 ●PCA82C200模式即默认的BasicCAN模式 ●扩展的接收缓冲器64字节先进先出FIFO ●和CAN2.0B协议兼容PCA82C200兼容模式中的无源扩展帧 ●同时支持11位和29位识别码 ●位速率可达1Mbits/s●PeliCAN模式扩展功能--可读/写访问的错误计数器--可编程的错误报警限制--最近一次错误代码存放器--对每一个CAN总线错误的中断--具体控制位控制的仲裁丧失中断--单次发送无重发--只听模式无确认无活动的出错标志--支持热插拔软件位速率检测--验收滤波器扩展4字节代码4字节屏蔽--自身信息接收自接收请求●24MHz时钟频率 ●对不同微处理器的接口 ●可编程的CAN输出驱动器配置 ●增强的温度适应-40℃-+125℃2.总体说明SJA1000是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN它是PHILIPS半导体PCA82C200CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议3.SJA1000原理结构图SJA1000原理结构图如图4.1所示。图4.1SJA1000原理结构图4.BasicCAN模式地址分配表在本次设计当中,主要使用BasicCAN模式。SJA1000是一种I/O设备基于内存编址的微控制器。双设备的独立操作是通过象RAM一样的片内存放器修正来实现的。SJA1000的地址区包括控制段和信息缓冲区。控制段在初始化载入是可被编程来配置通讯参数的〔例如位时序〕微控制器也是通过这个段来控制CAN总线上的通讯的。在初始化时,CLKOUT信号可以被微控制器编程指定一个值。应发送的信息会被写入发送缓冲器。成功接收信息后,微控制器从接收缓冲器中读取接收的信息,然后释放空间以做下一步应用。微控制器和SJA1000之间状态、控制和命令信号的交换都是在控制段中完成的。初始载入后存放器的验收代码验收屏蔽总线定时存放器0和1以及输出控制就不能改变了只有控制存放器的复位位被置高时才可以访问这些存放器。在以下两种不同的模式中访问存放器是不同的●复位模式●工作模式当硬件复位或控制器掉线时会自动进入复位模式。工作模式是通过置位控制存放器的复位请求位激活的。4.2.2控制器原理图图4.2控制器原理图 控制器原理如图4.2所示。CAN接口控制信号和数据信号都是直接连接单片机的端口。SJA1000采用独立晶振,复位端连接单片机的复位键,和单片机同步复位。在RX1处连接一个分压网络,使RX1的电平处在1/2Vcc左右,有利于接受信号的判断。4.2.3CAN光纤接口原理 1、首先我们从Wire-CAN接口来分析Fiber-CAN的可行性。图4.3Wire-CAN总线接口82C250是CAN收发器,它是CAN控制器(SJAl000)与物理总线之间的接口,它提供向总线的差动发送能力和对CAN控制器的差动接受能力,CAN收发器的真值表见表4.1和图4.3中82C250中各管脚的功能分别是:TxD为发送数据输入端,V为电源电压,RxD为接收数据输出端,髓为基准电压输出端,CANH为高电平CAN电压输入/输出端,CANL为低电平CAN电压输入/输出端。图中SJA1000个管脚的功能分别是:TXO为CAN输出驱动器0输出。TX1为CAN输出驱动器1输出,RX1为输入比拟器输入端1,RX0为输入比拟器输入端。表4.1CAN收发器82C250的真值表TxDCANHCANL总线状态RxD0高电平低电平显性01(或悬浮)悬浮状态悬浮状态隐性1由图4.3和表4.1可见,当SJA1000的TX0端输出0电平时,82C250的TxD端也为0电平,此信号经82C250差动发送后,使cANH为高电平,cANL为低电平,总线状态呈显性。在这种情况下,接在总线上其它节点的82C250进行差动接收,其RxD端输出0电平。由于SJA1000与82C250的连接关系是:RX0接RxD,RX1接VREF(当V=5V时,VREF一2.5V)。此时对SJA1000而言,RX1>RX0,那么SJA1000读入显性电平,或者说总线上的任一节点接收到的都是显性位。反之,当SJA1000的TX0为1电平时,82C250的RXD=1,有RX1<RX0,总线上任一个节点接收到的都是隐性位。综上所述,只要某一个SJA1000的TX0端输出0电平时,总线呈显性,总线上所有SJA1000将收到显性位;反之,假设TX0端输出1电平时,总线呈隐性,其它SJA1000也将接收隐性位。可见基于这一原那么,即使去掉82C250,整个通讯仍然遵循CAN的通信协议.也就是说,当去掉82C25o,而将所有SJA1000的RX1端都接2.5V电压(V一5V时),当某一个SJA1000的TX0端输出0电平(显性)时,所有SJA1000的RX0端收到0电平,必有RX>RX0,即所有A1000收到显性位。反之,当某一SJA1000的TX0端输出1电平(隐性)时,所有SjA1000的RX0端收到1电平,必有RX1<RX0,即所有SJA1000收到隐性位。这一原那么就是Fiber-CAN总线接口必须满足的接口协议。 2、Fiber-CAN接口原理图图4.4Fiber-CAN接口原理图Fiber-CAN接口原理图如图4.4所示。Fiber-CAN接口主要采用SDH光收发一体模块作为光电转换模块,SDH收发模块内部集成了光电转换、增益控制、电平转换等功能,使得我们使用变的比拟容易。SDH光收发一体模块5、6脚是模块的电源引脚,分别给发送单元和接收单元供电。为了滤出电源中的高频干扰,使用了LC滤波网络。TXD_C和RXD_C端分别是信号的输入和输出。4脚是光纤无光指示,当光纤中没有光的时候发光二极管发光。4.2.4CPU、RAM扩展和ROM扩展局部 采用AT89S52作为整个设计的控制芯片,在设计中参加了ISP,可以方便的在线下载程序,简化了调试的过程。如图4.5所示。图4.5CPU、RAM、ROM扩展图4.2.2.2CPU局部AT89S52是ATMEL公司研制的通用单片机。它在AT89S51单片机的根底上为P1口定义了第二功能,有六个外部中断、三个定时/计数器,以及四个全双工的串行通信口,同时在指令上与AT89S51兼容,对控制系统较为适用。由于AT89S52具有32个IO端口,再考虑到整个设计的情况,采用了对外设直接控制和片选的方式。在外部参加12MHz的晶振,系统的指令执行速度可以到达1MHz。其中P0主要用来作为数据口,是单片机和外设数据交换的重要通道。P1口作为控制口,主要用来控制外设,比方对键盘、显示、ROM的控制。P2口主要用来作为地址译码,其中A15是CAN控制芯片SJA1000的片选,其余的作为RAM扩展的高位地址。P3口主要用来作为第二功能口,它的RD、WR和INT0等第二功能都作为对外设的控制。4.2.2.3RAM扩展 由于在CAN总线通信的速率可以到达1MHz,在通信过程中有大量的数据交换,而在AT89S52中只有256字节的RAM,为了使通信有更多的缓冲空间,采用了MCM52648K的RAM芯片。在RAM扩展局部中,使用74HC573作为地址锁存,74HC573的OE端接地,使其始终处于输出允许的状态,MCM5264可以实时得到低位地址的译码信号。根据单片机对外部RAM读取的时序〔图4.6〕,采用AT89S52的ALE信号作为锁存时钟。图4.6单片机外部RAM的读写时序图4.2.2.4ROM扩展 AT24C系列串行E2PROM具有I2C总线接口功能,功耗小,宽电源电压(根据不同型号2.5V~6.0V),工作电流约为3mA,静态电流随电源电压不同为30μA~110μA。 对AT24C系列E2PROM的读写操作完全遵守I2C总线的主收从发和主发从收的规那么,其主要读写时序图如图4.7所示。图4.7I2C总线读写时序图AT24C系列片内地址在接收到每一个数据字节地址后自动加1,故装载一页以内规定数据字节时,只须输入首地址,假设装载字节多于规定的最多字节数,数据地址将“上卷〞,前面的数据被覆盖。AT89S52内部不具有I2C接口,所以应用P15和P16作为SCL和SDA的接口来模拟I2C时序。4.2.2.5键盘和显示 由于CAN总线的通信速度快、数据量大,为了防止占用太多的CPU资源,对显示采用了静态显示,而键盘采用动态扫描的方式,其原理图如图4.8所示。 图4.8显示原理图 AT89S52主要P11、P12和串行口对显示进行控制,P11用作对显示的去除,P12用作对显示的使能控制,串行口主要是为显示送数据。 显示采用三级串行移位存放器串联的方式,串行口以方式0的工作模式给移位存放器74LS164发送信号,三次串行发送可完成对三个数码管的显示。 其显示程序如下:voidDisplay(uintvalue){ P11=1; P12=1; SBUF=DispCode[value&0x00f]; while(!TI); TI=0; SBUF=DispCode[(value&0x0f0)>>4]; while(!TI); TI=0; SBUF=DispCode[(value&0xf00)>>8]; while(!TI); TI=0;} 图4.9键盘原理图 如图4.9所示。对键盘的控制主要采用动态扫描的方式。首先串行口发全零信号,使QA-QH全为0,而此时P10为高电平,假设由按键按下,那么P10必为0。判断P10假设为零,那么确定有建按下,然后通过串行口发送扫描码,8位扫描码的中只有一位为零,其他为高电平,开始行扫描,读取P10检测到P10为零,那么确定有键按下,根据扫描码可以判断是哪一个键。具体键盘扫描程序如下:ucharkeyscan(void){ucharcode_h;//行扫描值ucharcode_l;//列扫描值P2_5=0;//关闭显示器P2_6=0;SBUF=0X00;//8行发全“0”,准备读列状态while(!TI);TI=0;if(P10==0)//如果P2_4==0,可能有键按下{delay();//延时去抖动if(P10==0)//重读P2_4,假设还为0,定有键按下{code_h=0xfe;//置最后一行为0,开始行扫描while(code_h!=0xff)//判断是否为最后一行,假设不是,继续扫描{SBUF=code_h;//串口发行扫描值while(!TI);TI=0;if(P10==0)//如果P2_4==0,该code_h行有键按下{return(code_h);}else//假设该code_h行无键按下,行扫描值左移,扫描下一行code_h=(code_h<<1)|0x01;}}}4.3系统的硬件外设PCB设计4.3.1PCB设计中的流程和抗干扰措施在PCB设计中,布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的,在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。PCB布线有单面布线、双面布线及多层布线。布线的方式也有两种:自动布线及交互式布线,在自动布线之前,可以用交互式预先对要求比拟严格的线进行布线,输入端与输出端的边线应防止相邻平行,以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。自动布线的布通率,依赖于良好的布局,布线规那么可以预先设定,包括走线的弯曲次数、导通孔的数目、步进的数目等。一般先进行探索式布经线,快速地把短线连通,然后进行迷宫式布线,先把要布的连线进行全局的布线路径优化,它可以根据需要断开已布的线。并试着重新再布线,以改良总体效果。1、电源、地线的处理既使在整个PCB板中的布线完成得都很好,但由于电源、地线的考虑不周到而引起的干扰,会使产品的性能下降,有时甚至影响到产品的成功率。所以对电、地线的布线要认真对待,把电、地线所产生的噪音干扰降到最低限度,以保证产品的质量。对每个从事电子产品设计的工程人员来说都明白地线与电源线之间噪音所产生的原因,现只对降低式抑制噪音作以表述:〔1〕、众所周知的是在电源、地线之间加上去耦电容。〔2〕、尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:地线>电源线>信号线,通常信号线宽为:0.2~0.3mm,最经细宽度可达0.05~0.07mm,电源线为1.2~2.5mm。对数字电路的PCB可用宽的地导线组成一个回路,即构成一个地网来使用(模拟电路的地不能这样使用)〔3〕、用大面积铜层作地线用,在印制板上把没被用上的地方都与地相连接作为地线用。或是做成多层板,电源,地线各占用一层。2、数字电路与模拟电路的共地处理现在有许多PCB不再是单一功能电路〔数字或模拟电路〕,而是由数字电路和模拟电路混合构成的。因此在布线时就需要考虑它们之间互相干扰问题,特别是地线上的噪音干扰。数字电路的频率高,模拟电路的敏感度强,对信号线来说,高频的信号线尽可能远离敏感的模拟电路器件,对地线来说,整人PCB对外界只有一个结点,所以必须在PCB内部进行处理数、模共地的问题,而在板内部数字地和模拟地实际上是分开的它们之间互不相连,只是在PCB与外界连接的接口处〔如插头等〕。数字地与模拟地有一点短接,请注意,只有一个连接点。也有在PCB上不共地的,这由系统设计来决定。3、信号线布在电〔地〕层上在多层印制板布线时,由于在信号线层没有布完的线剩下已经不多,再多加层数就会造成浪费也会给生产增加一定的工作量,本钱也相应增加了,为解决这个矛盾,可以考虑在电〔地〕层上进行布线。首先应考虑用电源层,其次才是地层。因为最好是保存地层的完整性。4、大面积导体中连接腿的处理在大面积的接地〔电〕中,常用元器件的腿与其连接,对连接腿的处理需要进行综合的考虑,就电气性能而言,元件腿的焊盘与铜面满接为好,但对元件的焊接装配就存在一些不良隐患如:①焊接需要大功率加热器。②容易造成虚焊点。所以兼顾电气性能与工艺需要,做成十字花焊盘,称之为热隔离〔heatshield〕俗称热焊盘〔Thermal〕,这样,可使在焊接时因截面过分散热而产生虚焊点的可能性大大减少。多层板的接电〔地〕层的处理相同。5、布线中网络系统的作用在许多CAD系统中,布线是依据网络系统决定的。网格过密,通路虽然有所增加,但步进太小,图场的数据量过大,这必然对设备的存贮空间有更高的要求,同时也对象计算机类电子产品的运算速度有极大的影响。而有些通路是无效的,如被元件腿的焊盘占用的或被安装孔、定孔所占用的等。网格过疏,通路太少对布通率的影响极大。所以要有一个疏密合理的网格系统来支持布线的进行。标准元器件两腿之间的距离为0.1英寸(2.54mm),所以网格系统的根底一般就定为0.1英寸(2.54mm)或小于0.1英寸的整倍数,如:0.05英寸、0.025英寸、0.02英寸等。6设计规那么检查〔DRC〕布线设计完成后,需认真检查布线设计是否符合设计者所制定的规那么,同时也需确认所制定的规那么是否符合印制板生产工艺的需求,一般检查有如下几个方面:〔1〕、线与线,线与元件焊盘,线与贯穿孔,元件焊盘与贯穿孔,贯穿孔与贯穿孔之间的距离是否合理,是否满足生产要求。〔2〕、电源线和地线的宽度是否适宜,电源与地线之间是否紧耦合〔低的波阻抗〕?在PCB中是否还有能让地线加宽的地方。〔3〕、对于关键的信号线是否采取了最正确措施,如长度最短,加保护线,输入线及输出线被明显地分开。〔4〕、模拟电路和数字电路局部,是否有各自独立的地线。〔5〕后加在PCB中的图形〔如图标、注标〕是否会造成信号短路。〔6〕对一些不理想的线形进行修改。〔7〕、在PCB上是否加有工艺线?阻焊是否符合生产工艺的要求,阻焊尺寸是否适宜,字符标志是否压在器件焊盘上,以免影响电装质量。〔8〕、多层板中的电源地层的外框边缘是否缩小,如电源地层的铜箔露出板外容易造成短路。7、传输线效应 PCB板上的走线可等效为下列图所示的串联和并联的电容、电阻和电感结构。串联电阻的典型值0.25-0.55ohms/foot,因为绝缘层的缘故,并联电阻阻值通常很高。将寄生电阻、电容和电感加到实际的PCB连线中之后,连线上的最终阻抗称为特征阻抗Zo。线径越宽,距电源/地越近,或隔离层的介电常数越高,特征阻抗就越小。如果传输线和接收端的阻抗不匹配,那么输出的电流信号和信号最终的稳定状态将不同,这就引起信号在接收端产生反射,这个反射信号将传回信号发射端并再次反射回来。随着能量的减弱反射信号的幅度将减小,直到信号的电压和电流到达稳定。这种效应被称为振荡,信号的振荡在信号的上升沿和下降沿经常可以看到。〔1〕、基于上述定义的传输线模型,归纳起来,传输线会对整个电路设计带来以下效应。●反射信号Reflectedsignals●延时和时序错误Delay&Timingerrors●屡次跨越逻辑电平门限错误FalseSwitching●过冲与下冲Overshoot/Undershoot●串扰InducedNoise(orcrosstalk)●电磁辐射EMIradiation〔2〕、防止传输线效应的方法针对上述传输线问题所引入的影响,我们从以下几方面谈谈控制这些影响的方法。●严格控制关键网线的走线长度如果设计中有高速跳变的边沿,就必须考虑到在PCB板上存在传输线效应的问题。现在普遍使用的很高时钟频率的快速集成电路芯片更是存在这样的问题。解决这个问题有一些根本原那么:如果采用CMOS或TTL电路进行设计,工作频率小于10MHz,布线长度应不大于7英寸。工作频率在50MHz布线长度应不大于1.5英寸。如果工作频率到达或超过75MHz布线长度应在1英寸。对于GaAs芯片最大的布线长度应为0.3英寸。如果超过这个标准,就存在传输线的问题。●合理规划走线的拓扑结构解决传输线效应的另一个方法是选择正确的布线路径和终端拓扑结构。走线的拓扑结构是指一根网线的布线顺序及布线结构。当使用高速逻辑器件时,除非走线分支长度保持很短,否那么边沿快速变化的信号将被信号主干走线上的分支走线所扭曲。通常情形下,PCB走线采用两种根本拓扑结构,即菊花链(DaisyChain)布线和星形(Star)分布。对于菊花链布线,布线从驱动端开始,依次到达各接收端。如果使用串联电阻来改变信号特性,串联电阻的位置应该紧靠驱动端。在控制走线的高次谐波干扰方面,菊花链走线效果最好。但这种走线方式布通率最低,不容易100%布通。实际设计中,我们是使菊花链布线中分支长度尽可能短,平安的长度值应该是:StubDelay<=Trt*0.1.例如,高速TTL电路中的分支端长度应小于1.5英寸。这种拓扑结构占用的布线空间较小并可用单一电阻匹配终结。但是这种走线结构使得在不同的信号接收端信号的接收是不同步的。星形拓扑结构可以有效的防止时钟信号的不同步问题,但在密度很高的PCB板上手工完成布线十分困难。采用自动布线器是完成星型布线的最好的方法。每条分支上都需要终端电阻。终端电阻的阻值应和连线的特征阻抗相匹配。这可通过手工计算,也可通过CAD工具计算出特征阻抗值和终端匹配电阻值。在上面的两个例子中使用了简单的终端电阻,实际中可选择使用更复杂的匹配终端。第一种选择是RC匹配终端。RC匹配终端可以减少功率消耗,但只能使用于信号工作比拟稳定的情况。这种方式最适合于对时钟线信号进行匹配处理。其缺点是RC匹配终端中的电容可能影响信号的形状和传播速度。串联电阻匹配终端不会产生额外的功率消耗,但会减慢信号的传输。这种方式用于时间延迟影响不大的总线驱动电路。串联电阻匹配终端的优势还在于可以减少板上器件的使用数量和连线密度。最后一种方式为别离匹配终端,这种方式匹配元件需要放置在接收端附近。其优点是不会拉低信号,并且可以很好的防止噪声。典型的用于TTL输入信号(ACT,HCT,FAST)。此外,对于终端匹配电阻的封装型式和安装型式也必须考虑。通常SMD外表贴装电阻比通孔元件具有较低的电感,所以SMD封装元件成为首选。如果选择普通直插电阻也有两种安装方式可选:垂直方式和水平方式。垂直安装方式中电阻的一条安装管脚很短,可以减少电阻和电路板间的热阻,使电阻的热量更加容易散发到空气中。但较长的垂直安装会增加电阻的电感。水平安装方式因安装较低有更低的电感。但过热的电阻会出现漂移,在最坏的情况下电阻成为开路,造成PCB走线终结匹配失效,成为潜在的失败因素。●抑止电磁干扰的方法很好地解决信号完整性问题将改善PCB板的电磁兼容性(EMC)。其中非常重要的是保证PCB板有很好的接地。对复杂的设计采用一个信号层配一个地线层是十分有效的方法。此外,使电路板的最外层信号的密度最小也是减少电磁辐射的好方法,这种方法可采用"外表积层"技术"Build-up"设计制做PCB来实现。外表积层通过在普通工艺PCB上增加薄绝缘层和用于贯穿这些层的微孔的组合来实现,电阻和电容可埋在表层下,单位面积上的走线密度会增加近一倍,因而可降低PCB的体积。PCB面积的缩小对走线的拓扑结构有巨大的影响,这意味着缩小的电流回路,缩小的分支走线长度,而电磁辐射近似正比于电流回路的面积;同时小体积特征意味着高密度引脚封装器件可以被使用,这又使得连线长度下降,从而电流回路减小,提高电磁兼容特性。●其它可采用技术为减小集成电路芯片电源上的电压瞬时过冲,应该为集成电路芯片添加去耦电容。这可以有效去除电源上的毛刺的影响并减少在印制板上的电源环路的辐射。当去耦电容直接连接在集成电路的电源管腿上而不是连接在电源层上时,其平滑毛刺的效果最好。这就是为什么有一些器件插座上带有去耦电容,而有的器件要求去耦电容距器件的距离要足够的小。任何高速和高功耗的器件应尽量放置在一起以减少电源电压瞬时过冲。如果没有电源层,那么长的电源连线会在信号和回路间形成环路,成为辐射源和易感应电路。走线构成一个不穿过同一网线或其它走线的环路的情况称为开环。如果环路穿过同一网线其它走线那么构成闭环。两种情况都会形成天线效应(线天线和环形天线)。天线对外产生EMI辐射,同时自身也是敏感电路。闭环是一个必须考虑的问题,因为它产生的辐射与闭环面积近似成正比。4.3.2PCB制作 根据以上的流程、布线规那么和系统设计的要求,进行了系统布线。在布局和布线的过程当中,我们特别注意了电源线的布线,使板子能够承受一定的电流和具有一定的抗干扰能力。PCB布线见附录。第五章系统CAN通信软件设计 CAN通信控制器的主要任务是实现CAN通信节点间的数据转发,由于通信对时间的要求以及CAN节点控制CPU的内部容量有限,所以在进行软件设计时要求做到应答及处理数据尽量短。为了到达以上的要求,CPU采用中断方式检测CAN控制器通信。 CAN通信主要包括:初始化子程序、定时中断子程序、显示子程序、存储子程序、接收中断子程序、发送中断子程序、错误中断处理子程序、超载中断子程序和唤醒中断子程序等。 CAN通信的软件设计比拟复杂,在设计过程中,我们尽量采用模块化的思想,使程序有比拟好的结构,给程序的分块和分析带来了很大的便利。下面就其主要程序进行分析。5.1BasicCAN节点的主程序设计 说明:主程序主要包括初始化子程序、定时中断子程序、接收中断子程序、发送中断子程序、错误中断处理子程序、超载中断子程序和唤醒中断子程序 流程图如图5.1所示。启动延时启动延时配置CAN控制器初始化CPU配置有错启动定时定时时间到接受中断发送中断错误中断超载中断唤醒中断开始自动发送启动定时接受处理发送错误处理超载处理唤醒处理YYYYYYNNNNYNNN图5.1主程序流程图具体实现:/*main程序*/void main(void){ucharstatus; //状态字 Delay_50us(100); //50us*100=5ms status=Config_SJA(); //配置sja1000 InitCPU(); //初始化 if(status!=0) Dispaly(status);//配置sja1000出现错误 else{ Dispaly(0x0ca); //无措显示CAN1 } //设置并行方式 TimeOut_Start(20); //20*50us=1ms,定时周期1ms while(1) { if(_testbit_(T0IR)) //1ms时间到 { AutoSendDataToCanBus(); TimeOut_Start(200); //200*50us=10ms,定时周期10ms } if(_testbit_(CanRcv_Good)) CanRcv_Prg(); //是接收中断标志 if(_testbit_(CanSend_Good)) CanSend_Prg(); //是发送中断标志 if(_testbit_(CanErrFlag)) CanErr_Prg(); //是错误中断标志 if(_testbit_(CanDtOverFlag)) CanDtOver_Prg();//是超载中断标志 if(_testbit_(CanWuiFlag)) CanWui_Prg(); //是唤醒中断标志 }}5.2程序设计说明系统宏定义说明:由于CAN控制器SJA1000的存放器比拟复杂,所以为了更好的定义每个存放器的意义,我们把所有的存放器访问地址全部以宏定义的方式列举出来,这样更有利于存放器的使用。定义如下:/*************************************************************************SJA1000与微处理器的接口是以外部存储器的方式,所以以下的基址定义,用户**应根据自己的实际电路来进行调整*************************************************************************/#defineSJA_BaseAdr0xEF00//定义sja1000的片选基址//计算SJA1000在电路中的实际地址:基址+内部存放器地址/*************************************************************************以下的定义为SJA1000的内部存放器的地址,不可修改**各存放器的具体功能清参阅sja1000的数据手册*************************************************************************/#defineREG_CONTROLSJA_BaseAdr+0x00//内部控制存放器#defineREG_COMMANDSJA_BaseAdr+0x01//命令存放器#defineREG_STATUSSJA_BaseAdr+0x02//状态存放器#defineREG_INTERRUPTSJA_BaseAdr+0x03//中断存放器#defineREG_ACRSJA_BaseAdr+0x04//验收代码存放器#defineREG_AMRSJA_BaseAdr+0x05//验收屏蔽存放器#defineREG_BTR0SJA_BaseAdr+0x06//总线定时存放器0#defineREG_BTR1SJA_BaseAdr+0x07//总线定时存放器1#defineREG_OCR

温馨提示

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

评论

0/150

提交评论