1、随着石油等化石燃料的日益枯竭、环境问题越来越严峻与人们环保意识的渐渐增加,准绿色新型产品-混合动力汽车登上历史舞台,电池是电动汽车的动力,也是电动汽车的关键部件,也是制约电动汽车发展的关键,新能源动力电池产业伴同动力汽车获得飞速发展。制约电动汽车发展的重要因素之一是:1、动力电池的运用寿命和平安性;2、动力汽车的生产成本。动力电池的运用寿命能大大降低动力汽车的生产成本。电池管理系统即BMS通过测量电池组工作时其电压、电流、温度等对电池组进行监测,保证电池组的工作运行良好高效,从而保证整个系统的正常运作。本文介绍了以飞思卜尔单片机VC9S12XS128为主控单片机芯片,通过传感器DS2438对动
2、力电池组进行电池电压、电流、温度测量、完成AD转换,STC89C52单片机对DS2438传输过来的数据进行读取和处理,通过CAN总线传输到主控单片机MC9S12XS128,MC9S12XS128单片机通过读取的数据完成对电池的SoC状态估计,同时,主控芯片将读取的数据通过RS232串口通信传输到VB界面显示。在系统的设计过程中,为建立简洁有效的系统,须要建立良好的电池内部模型,以便于对系统做SimU1.ink系统仿真时,主控单片机芯片对电池做SOC状态估计。关健词DS2438STC89C52飞思卡尔单片机MC9S12XS128VB人机界面ABSTRACTWiththeincreasingdep
3、1.etionofoi1andotherfossi1.fue1.s,environmenta1.issuesbecomemoreandmoreseriousandthegradua1.increaseoftheawarenessofenvironmcnta1.protection,newquasi-greenproducts-hybridcarswi1.1.beonthehistorica1.stageandthebatteryisnoton1ythepowerofe1.ectricvehic1.e,buta1.soakeycomponentofthee1.ectriccar.Atthesam
4、etimeitisthekeytorestrictingthedeve1.opmentofe1.ectricvehic1.es,newenergypowerbatteryindustry,a1.ongwiththedeve1.opmentof.e1.ectricvehic1.erapid.Animportantfactorrestrictingthedeve1.opmentofe1.ectricvehic1.esarebattery1.ife,securityande1.ectricvehic1.eproductioncosts.The1ifeofthepowerbatterypoweredv
5、ehic1.escangreat1.yreducethecostofproduction.BMSbatterymanagementsystemsworkbymeasuringthebatteryvo1.tage,current,andtemperaturemonitoringofthebatterypack.Sothatthebatterypackcanensureagoodandefficientoperationofthework,soastoensurethenorma1.operationofthesystem.ThispaperintroducestheFreesca1.eMCUMC
6、9S12XS128asthemaincontro1.chipmicrocontro1.1.erthroughthesensorDS2438batterypackforbatteryvo1.tage,current,temperaturemeasurement,thecomp1.etionofDconversion,STC89C52DS2438microcontro1.1.ertoreadthedatatransmittedandprocessedthroughCANbustothehostmicrocontro1.IerMC9S12XS128,MC9S12XS128microcontro1.I
7、erthroughthereaddatatocomp1.etetheSOCofthebatterystateestimation,whiIethemasterchipwi1.1.readthedatathroughtheRSmunicationtransmittedtotheVBinterfacedisp1.ay.Inthesystemdesignprocess,inordertoestab1.ishasimp1.eandeffectivesystem,theneedtoestab1.ishagoodbatteryinterna1.mode1.,inordertomakethesystemSi
8、mu1.inksystemsimu1.ation,thehostmicrocontro1.1.erchiponthebatterydoSOCstateestimates.KeywordsDS2438STC89C52Freesca1.emicrocontro1.1.erVBinterface摘要11.1 课题探讨背景11.2 电池管理系统BMS在国内外的发展41.3 设计总体方案的确立51.4 小章总结6其次章系统方案的确立72.1传感器72.2光电隔离92.3数据采集部分处理器102.4主限制器112.5数据传输122.6动力电池放电模型与SOC估计算法142.7VB人机界面182.8本章小结
9、18第三章硬件电路模块203.1数据采集模块DS2438203.2STC89C52模块233.3CAX与RS232串行通信模块263. 4本章小结29第四章数据采集系统软件部分314. 1DS2438数据采集程序314.2VeP2515软件程序部分374.3本章总结40第五章数据采集系统设计成果40第六章展望总结43参考文献46附录50第一章绪论1.1 课题探讨背景自从英国工业革命起先,煤炭等不行再生的化石能源渐渐代替了传统能源,汽车也逐步取代传统的交通工具,在人们的口常生活中占据越来越重要的。然而,随着世界范围内人类无节制的开采与运用,煤炭、石油等化石燃料渐渐匮竭,能源危机正在加剧,与此同时
10、科学技术的不断进步与提高,人们的环保意识渐渐增加,环境问题越来越严峻,都促使人们去找寻一种更加符合现代化社会须要的新型能源,取代旧的传统燃料电池为汽不供应动力。因此,世界范围内,传统的燃料为动力的汽车渐渐被人们所淘汰,动力电池产业获得r发展的新的转折点,有了质的突破;而新型的以动力电池为动力驱动的动力汽车也获得了各国汽车行业的领头人的重视,飞速的发展,混合动力汽车和纯动力汽车逐步走向人们的视野与生活。1886年德国制造了世界上第一辆汽车,不过百余年历史,全球范围内汽车保有量已达到7亿辆,汽车逐步取代其他交通工具,与人们的口常生活与工作休戚相关。然而众多内燃机汽车(ICEV)每天排放的污染是全
11、球气候变迁的重要缘由之一,与此同时,石油资源的渐渐匮乏也使得汽车行业面临严峻考验。因此,因此,汽车行业领头人渐渐意识到探讨开发以可再生能源作为动力驱动如酒精,太阳能等的新兴动力汽车是汽车行业发展的必定趋势,也是形势所迫。在这种状况下,混合动力汽车与纯动力汽车以其独特的高性能,环保绿色无污染受到人们的青睐,1.1.1 混合动力汽车国内外发呈现状所谓新型动力汽车即是以可再生能源作为全部或者部分动力驱动的汽车,主要也即是电动汽车。电动汽车目前主流的有三种:1、是以传统的燃料电池如镉电池等作为动力驱动的传统动力汽车;2、同时能够运用燃油和动力电池作为动力驱动的混合型动力汽车;3、全部以新型动力电池作为
12、动力驱动的纯动力汽车。然而,尽管近几十年以来,尤其是进入二十一世纪以来世界范围内的经济与科技获得了E速发展,动力汽车行业并未能取得较大的突破,纯动力汽车并没能够批量生产,反而,混合动力汽车有了重大突破。亳无疑问,各国的汽车行业的领军企业在各个国家政府的支持卜.,凭借着远超同行的科学技术,在新兴动力汽车行业先后取得突破,纯动力汽车和混合动力汽车逐步取代r传统燃料电池为动力的动力汽车。1893年,波舍尔公司也即现在的保时捷公司的创始人费尔南德波舍尔造出了世界上第一车用电动马达,1898年制造出了两轮电动汽车即保时捷。目前世界范围内,动力汽车特殊是纯电动汽车技术发展较为成熟,技术远超同行的的几个国家
13、美国、日本与德国这几个国家,而只有R本的本田汽车公司和E田公司能够实现混合动力汽车的批量化生产销售,主导着世界上混合动力汽车市场形势;反观美国,三大汽车公司通用、福特、克莱斯勒-戴勒姆公司相较于日本汽车公司的蓬勃发展在混合动力汽车和蓄电池电动汽车行业则显得有些萧瑟,技术落后很多,仅仅实现了小批量生产。我国的动力汽车行业起步较晚,但是国家和政府投入了大量的人力、物力、财力用于自主研发拥有H己品牌的动力汽车,我国电动汽车项目实施以来在燃料电池动力汽车和混合动力汽车方面均取得了重要突破。纯动力汽车已经通过国家的相关体系认证,实现了小规模批量生产;混合动力汽车方面实际生产后动力性能方面接近理论值,在污
14、染气体排放方面降低很多。1.1.2 电动汽车发展面临的问题虽然目前国际汽车市场上已有部分公司实现了混合动力汽车的规模化批量生产,但是相对于大多数消费者而言,现有的混合动力汽车无论是在性价比还是车辆性能方面,远远无法满意市场须要,主要是以下几个缘由:1、电动汽车的行驶里程有限,无法满意长远距离形行驶要求:2、市场油价过高,由于石油资源的口益枯竭,国际油价始终居高不下;3、电动汽车的动力电池系统运用寿命过于短暂,电动汽车电池管理系统随着电池的损耗,要实时的监控电池的相关信息,缺乏优秀的电池管理系统保障系统的高性能运行;4、电动汽车价格过高,目前市场上投入的电动汽车,由于电池管理系统的研发费用过高,
15、电池运用寿命短暂以与设计的相关技术缘由致使电动汽车价格偏高。车载数据采集系统应用的另一个市要方面是车辆运行工况记录仪,又称汽车“黑匣子”。随着科学技术的飞速发展,美国、欧洲相继不断推出性能优良的车载数字式记录仪,其功能也日趋完善。美国国家运输平安委员会始终在剧烈要求汽车生产厂商安装记录仪,在它的推动下GM、FORD等大公司已为数百万出厂车安装了行车记录仪。木汽车探讨所研制出的“黑匣子”不仅能够记录车辆事故发生的各种数据,而且它还能自动收入事故发生前10秒和后5秒之间从驾驶室看到的画面。在我国随着汽车电子工业的不断壮大,在车载记录仪产品方面也有大的发展,由北京森泰克数据通信技术有限公司研制的“绿
16、匣子”多功能汽车行驶监控记录仪,通过了公安部交通平安产品质量监督检测中心和公安部平安与警用电子产品质量检测中心的严格测试,并已正式投入运用。1.2 电池管理系统BMS在国内外的发展BMS也即动力电池系统数据采集系统的工作原理是通过对动力也池组进行实时监测,从而将检测的动力电池工作电流、各单体电池电乐、电池组运行过程中总电压与电池工作时表面温度等电池相关信息采集并处理,并将采集到的数据传输到预处理单片机芯片中,预处理单片机对数据进行处理和分析,依据温度、电压、电流传感器检测的信息、分析结果,从而对系统各模块发送相应的限制指令,从而实现对于电池组的实时监控,并且将处理后的实时数据显示在人机界面,保
17、证电池组的正常高效运行。制约电动车发展的主要因素之一是动力电池的运用寿命与平安性和运用成本问题,而电池的运用寿命是降低成本的重要途径之一。为保证动力电池在正常运用的过程中,能够高效稳定的为电动汽车供应动力,降低动力电池由于内部各物质成分之间发生化学变更,造成的电池结构的损坏而导致的寿命,从而降低动力汽车的生产运用成本,从而须要对电池进行良好的管理和维护,从而延长其运用寿命,为此,世界各国汽车行业的领军企业均投入了大量人力、物力、财力对电池管理系统进行探讨开发。美国三大汽车公司均将电池管理系统作为技术研发的工作重点。目前国内外电动汽车数据采集系统普遍存在的问题是数据采集的牢靠性和抗干扰性问题。由
18、于电动汽车数据采集要求其硬件装置稳定性好,便携性好,同时其工作环境的困难也给数据采集工作提出了较高的要求,系统的抗筏性,抗干扰性以与对数据的存储实力、系统综合性能等都是须要考虑的重要因素。1.3 设计总体方案的确立动力电池系统数据采集系统通过温度、电压、电流数字传感器DS2438完成对于电池组充放电电流各单体电池电压、电池正常工作时表面温度、与电池组供电总电压的测量,完成AD转换,在DS2438内部完成光电耦合隔离,传输到STC89C52单片机预处理,STC89C52单片机预处理后的数据经由CAN总线传输到MC9S12XS128主控单片机芯片,主控单片机完成最终数据的反馈,各限制指令的发送,限
19、制各模块完成动力电池系统的监控反馈工作,必要时显示在人机界面,其限制系统图如图IT所示。图IT数据采集系统1.4 小章总结本章主要介绍了一些关于动力电池系统数据采集系统的相关信息主要由以下内容:1)动力电池系统数据采集系统相关课题的探讨背景;2)混合动力汽车的发展历程与现在国内外发呈现状与现在面临的问题;3)电池管理系统BMS在国内外的发呈现状;4)课题最终的方案的确立,将别业设计设探讨的课题的相关内容的大体框架勾画了出来。通过本章关于动力汽车系统数据采集系统的一些信息的简要介绍,明确了课题探讨的重点与难点,为后续的相关工作明确的方向。存器中,然后,通过对SPI内部限制寄存器的相关位进行设置操
20、作,或者通过对使能引脚进行操作,从而实现数据的起先发送。通过读取相应的限制寄存器的各个位的值,了解数据传输的相关状态,如是否正常发送与接收,数据接收是否完成,能否起先下一轮的数据传输等等信息。CAN总线发送数据和主控单片机一样,有数据发送优先级,是指MCP2515内部等待发送的接收到的存储在缓存空间的数据的优先级,在发送起始SOF之前,MCP2515将存储的等待发送的信息进行优先级的比较,假如两个缓存空间的数据优先级相同,则优先发送数据存储编号较高的。O一4CAN总线通信在系统中的硬件电路连接图如下图3-11所示。TXCANVRXCANRHSENTC1.OvTSOFCSTXORTSSOxmsi
21、TX2RTSSCK0SC2IKTSCP2515OSC1.BXOBFVSSRXIBFPesdicanCANH12CAN1.TXCANOVDao2rxca5TCAN1.XDRSVsSCANHDDCANIRXDVRfrEr0第四章数据采集系统软件部分本章主要介绍了动力电池系统数据采集系统的软件部分,即DS2438电压电流温度监测模块数据采集程序、CAN总线通信模块MCP2515软件部分与主程序部分。4.1 DS2438数据采集程序4.1.1 DS2438的软件工作电量采集流程图如图4-1所示。图47电量采集程序流程图电压电流温度的测量流程图如图4-2所示。图4-2电压电流温度程序采集流程图/Send
22、Str(temp_V);Vo1.tage=(temp_V4&0x03)*256+tempV3;return(Vo1.tage);4.2 MCP2515软件程序部分MCP215作为一种独立限制其局域网络CAN协议限制器,自带有两个验收屏蔽寄存器和留个验收滤波寄存器能完成过滤不想要的报文任务,所以大大削减了主控单片机MCU的开销。MCP2515中断处理过程流程图如图4-3所示。图4-3MCP2515中断处理流程voidmcp2515_write_can_id(unsignedcharmcp_addr,unsignedcharext,unsigned1.ongcan_id)图4-4SPI度指令操作软
23、件过程相应的软件处理过程如下所示:voidSPISendByte(unsignedchardat)unsignedchari;CS=0:*整个过程CS为低电平,可在外部限制写多个字节数据*/DeIay_US(10);*CS建立时间,大于50ns即可*/for(i=0;i8:i+)(SCK=0;/*低电平常允许总线数据变更,上升沿VCP2515接收数据*/De1.ay_Us(1.):if(dat&0x80)S1.=1;/*向总线输出数据*/e1.seSI=O;De1.ay_Us(1.):*数据建立时间,大于IonS即可*/SCK=1;dat=dat1.:De1.ay-Us(I);/*数据保持时间
24、大于IOns即可*/)4.3本章总结本章主要介绍了DS2438在动力电池系统数据采集系统中,其正常工作时内部各个部分如电池正常工作时表面温度、电池组向外界供电时总体电压、各单体电池电压等在DS2438内部的工作流程,以与MCP2515在进行CAN总线传输时内部处理过程。第五章数据采集系统设计成果动力电池系统数据采集系统最终实现的功能是通过电池电压、充放电电流与电池表面温度等数据传感器监控电池组,并且将采集到的数据传输到数据限制中心,最终由MCU即主控单片机实现对于数据的相关处理操作,并且主控单片机依据收集到的信息发出相应的限制指令到各个模块,从而实现对于动力电池组的实时监控,在必要时还须要将
25、处理后的数据发送到人机界面,从而便利操作人员更好的知道电池组的工作运行状态。本次设计中,由于各个方面的缘由,数据采集系统在简洁易于实现方面同时兼顾好用性,最终完成了系统的设计,是系统能够良好的对与电池组进行数据采集,并且显示在结果。下图5-1显示了数据采集系统对于采集到的电池正常运行时工作的相关信息,在人机界面的显示,操作人员能够很清楚的了解电池而的工作状态,通过电池组之间的数据对比,知道是否工作在正常状图57电池组运行状态在VB界面显示卜图56显示的是电池组的相关运行状态。ITfS1.Sc)tMVJP.U电,Mf9ttK现界M电池管理模块监测界面ea%。总电压:25689V。总电流力3556
26、AQ平均温度:西前-C9SSOC:.7892总控搐块状态恁柠蒜串口线状态陞接正常一CAN总线状态疝核F承电池伏态充电机状态风扇1状态Sa风摩2W态丽风扇3状态痢历CJBaeiKZ总放电次数0总充电次景O放电时间就讨26h。充电时间统计卜6h11MI图5-2数据采集系统人机界面显示结果数据采集系统采集到的电池组的相关信息如下表5-1所示.25125I0克路电压侑(V)nr-r-J,二.,1,_一=r-ITr-1.-1.9五U12”MJ5-三jU18I9J31.KN232425121518212初3336399s的5i“s606366692195TS125062522222293TS223T2S5
27、3T2S53.W73.KS1.312553T2S53,310593TU31M72.2.N比二孤电k(22222V)37373T3TJT2525:52S25QT2222222222H,222322222表51数据采集系统信息采集生成表格第六章展望总结在经过大四接近一年的学习中,对于整个动力电池系统数据采集系统,有些硬件部分如人机界面VB与主控单片机VCSI2XS128的数据交换部分虽然整体任务完成,但是仍存在部分问题,总体上完成了数据采集系统的硬件电路的焊接等,如温度、电压、电流传感器DS2438的选择,预处理单片机MC89C52的选择,以与在实际中运用数据采集系统时由于实际的须要,对于每一处动
28、力电池系统都用一个单片机处理极与显示不经济合理,故此采纳了总线结构等等问题,再上面的论述中均有解决。现对课题完成的主要工作与成果总结如下:(1)完成了监测集成系统硬件和软件的设计,使系统能够依据预期的目标通过电压监测限制其充电程序。(2)数据采集器采纳专用电池监测芯片DS2438和单片机为核心组成,实现数据的传输,开发成本低,通信质量牢匏。(3)本系统采纳集成开发环境,它集程序的编辑、编译、链接、调试以与仿真等功能为一体。具有友好的交互界面、下拉菜单、快捷键和快速访问吩咐列表等,使人们的编程、调试工作更加便利且高效。(4)全部程序均采纳模块化设计思想,程序的注释和文档也比较足够,不仅在设计时结
29、构清楚,易于检查和修改,而且为以后软件的维护和改进供应了便利。须要说明的是,尽管系统设计已经完成。但是由于时间以与阅历的限制,探讨中还存在诸多不足,该系统还有待进一步完善和深化探讨:(I)进一步学习单总线技术理论,驾驭单总线程序设计的思想和方法,在今后的工作中能将其更敏捷地运用。(2)深化学习单片机原理,在程序编写方向作深化探讨。(3)了解蓄电池的在线监测手段。致谢在论文即将完成之际,由衷感谢马彦老师在毕业设计完成过程中给与的悉心指导,在毕业设计遇到问题的时候,马彦老师总会给出珍贵的建议与教育,从而使问题得到圆满的解决,正是在马老师的指导下,毕业设计才能一步步地完成,所设计的系统才能呈现在大家
30、面前。在我大四将近一年的生活中,马老师无论在学习上还是在日常生活中,都赐予了我很大的帮助,令我受益良多。这次毕业设计,我们学到的不仅是毕业设计上面的东西,更是从马老师的为人上受益匪浅,马老师在工作上肃穆仔细,让我们在高校四年养成的悟性在这次做毕业设计的时候完全消逝了,就拿毕业设计的开题报告说吧,一般别的同学只须要在须要交开题报告的前些天摘抄一些相关的资料复制粘贴在报告中就完成.了毕业设计的开题,但是马老师对我们严格要求,在我们从跟随马老师做毕业设计的那一天起先,马老师就让我们起先学习探讨毕业设计须要用到的全部技术,并且每过一周,马老师都会对我们的进度进行检查,让我们不敢懈怠,让我们在一起先就打
31、下了坚实的基础,这也就造成了我们这一组在做毕业设计的时候很多同学都来询问我们学术上的问题,而对我们来说这些问题已经早就解决过了,在此特殊感谢我们的马老师。在此向马老师表示深深的感谢!其次感谢周秀文、姜守坤、杨荣斌等四周同学在毕业设计过程中给与的帮助,在毕业设计的过程中,常常会遇见各种困难与细微环节性的错误,他们都会耐性的指正,从而使问题得已解决处理,正是在他们的帮助下,我的毕业设计能够更好的完成!参考文献1秦祖荫,霍尔电流传感器的性能与其运用,电力电子技术1994年4期2郭海帆等,基于DS2438芯片的智能电池监测系统,西安电子科技高校3李丹荣,杜维.光电藕合器的好用技巧J.自动化仪表,200
32、3(6):58-61.4齐志才,赵继印.MCS-51系列单片机原理与接口技术,中国建筑工业出版社,2005.65薛涛等,单片机与嵌入式系统开发方法,清华高校出版社,2009.106缪学勤,现场总线技术的最新进展,F1.动化仪表,2006.67王黎明等,CAN现场总线系统的设计与应用,计算机科学与技术,2008.38来清民,手把手教你学CAN总线,北京航空航天高校出版社,2010.99张生,RS-232RS-422RS-485的根本区分,2007.1110林成涛,仇斌,陈全世.电流输入电动汽车电池等效电路模型的比较.机械工程学报.2005,41(12):76-81.C1.1P.Sabine,P.
33、Marion,J.Andreas.MethodsforSta1.e-Of-ChargCDeterminationandThcirApp1.ications.Journa1.ofPowerSources.2001,96(1):113120.12 S.Rodrigues,N.Munichandraiah,A.K.Shuk1.a.ReviewofState-of-chargeIndicationofBatteriesbymeansofImpedanceMeasurements.Journa1.ofPowerSources.2000,87:1220.13 F.Huet.AReviewofImpedan
34、ceMeasurementsforDeterminationoftheState-of-chargeorState-of-hea1.thofSecondaryBatteries.Journa1.ofPowerSources.1998,70(1):5969.14 W.X.Shen,C.C.Chan,E.W.C.1.o,andK.T.Chau.Adaptiveneurofuzzymode1.ingofbatteryresidua1.capacityfore1.ectricvehic1.es.IEEETrans.Ind.E1.ectron.June2002,-49(3):677-684.15 A.S
35、a1.kind,C.Fennie,P.Singh,T.AtwaterandD.Reisner.Determinationofstate-of-chargeandstate-of-hea1.thofbatteriesbyfuzzy1.ogicmethodo1.ogy.Journa1.ofPowerSources.1999,80(1):293-300.16 S.Grewa1.,andD.A.Grant.Aworks.InProc.IEEEITEC,Bristo1.Univ.UK,2001:174-179.17 YoshifumiMorita,SouYamamoto,SatoshiKakogawaa
36、ndNaokiMizuno.On-1.ineDetectionSystemofState-Of-Chargein1.eadAcidBatteryUsingMu1.tip1.eDetectors.The33rdAnnua1.ConferenceoftheIEEEIndustria1.E1.ectronicsSociety(IECON).TaipciTaiwan,5-8Nov2007:2493-2498.E18C.Ehret,S.Pi1.1.er,W.Schroer.State-of-chargeDeterminationfor1.ead-acidBatteriesinPV-app1.icatio
37、ns.EuropeanPhotovo1.taicSo1.arEnergyConference.2000:1-4.19 G.P1.ett.ExtendedKa1.manfi1.teringforbatterymanagementsystemsof1.iPB-basedHEVbatterypacks.Part3:Stateandparameterestimation.Journa1.ofPowerSources.2004,134(2):277-292.20 D.DiDomenico,G.Fiengo,and.Stefanopou1.ou.1.ithium-ionbatterystateofchar
38、geestimationwithaka1.manfi1.terbasedonae1.ectrochemica1.mode1.Proceedingsof2008IEEEConferenceonContro1.pp1.ications.2008:702-707.主程序模块/inc1.ude*commondefinesandmacros*/#inc1.ude“derivative,h*derivative-specificdefinitions*/#inc1.ude*Initia1.hinc1.ude”mcp2515.h”#inc1.ude*mcp2515-bittime.h*unsignedcha
39、ri,1.en,res,StaInt;unsignedintj;unsignedcharsendbuf4=1,1,1,1);unsignedcharrecbuf8;unsignedcharSendF1.ag;unsignedcharrecbuf_wendu18,recbuf_dianya18voidmain(void)(unsignedcharCount:P1.1._Init();IRQJnitO;Init_CanO;/PITJnitO;P0RTB=0x55;Send_F1.ag=1;Enab1.eInterrupts;for(;;)(if(SendF1.ag=1)(mcp2515SetReg
40、isterS(MCPTXB0CTR1.+6,sendbuf,4);/将要发送的数据写到SendbUf数组中,4个字节mcp2515SetRegiSter(MCPTXB0CTR1.+5,4);/填写要发送的字节数mcp2515writecanid(MCPTXBOSID1.I,0,0x001);/设置ID号为:一号机0x001二号机0x002三号机0x004mcp2515ModifyRegister(MCPTXBOCTR1.,OxOB,OxOB);/TXBoCTR低四位为:1011,缓冲0发送,优先级为:11,最高P0RTB=0x02;dores=mcp2515_KeadRegister(MCP_
41、TXBOCTR1.);/读发送缓存0限制寄存器/视res=res&0x08;察发送恳求位whi1.e(res);若为1,说明仍在发送,断续等待PORTB=OX01;De1.ay_Ms(200);mcp2515_setRegisterS(MCP_TXB0CTR1.+6,sendbuf,4);/将要发送的数据写到SendbUf口数组中,4个字节mcp2515_setRcgister(MCP_TXB0CTR1.+5,4);/填写要发送的字节数mcp2515_write_can_id(MCP_TXB0SIDH,0,0x002);/设置ID号为:一号机OxOO1.二号机0x002三号机0x004mcp2
42、515J1.odifyRegister(MCP_TXBOCTR1.,OxOB,OxOB);/TXBoeTR低四位为:1011,缓冲0发送,优先级为:I1.最高P0RTB=0x02;dores=mcp2515_ReadRegister(MCP_TXB0CTR1.);/读发送缓存。限制寄存器res=res&0x08:/视察发送恳求位whi1.e(res);若为1,说明仍在发送,断续等待P0RTB=0x01;De1.ay_Ms(200);mcp2515_setRegisterS(MCP_TXB0CTR1.+6,sendbuf,4):/将要发送的数据写到SCndbUf数组中,4个字节mcp2515_s
43、etRegister(MCP_TXB0CTR1.+5,4):/填写要发送的字节数mcp2515_write_can_id(MCP_TXB0SIDH,0,0x004):/设置ID号为:一号机OXOO1.二号机OXOo2三号机OXoO4mcp2515JfodifyRegister(MCP_TXBOCTR1.,OxOB,OxOB):/TXBOCTR低四位为:10I1.缓冲0发送,优先级为:11,最高P0RTB=0x02;do(res=mcp2515_ReadRcgister(MCPTXBOCTR1.);/读发送缓存0限制寄存器res=res&0x08;视察发送恳求位whiIe(res);若为1,说明
44、仍在发送,断续等待PORTB=OX01;De1.ay_Ms(200);#PragmaCODE,SEG_NEAR_SEGNON_BANKEDvoidinterrupt6IRQO(Portb=OxOf:Sta_Int=mcp2515_ReadRegister(MCP_CANINTF);*读中断标记寄存器*/*假如为接收缓冲器0中断-一*/if(StaJnt&MCP_RXOIF)(清除相关中断标记位-mcp2515J1.odifyRegister(MCP_CANINTF,0x01,0x00);/*清零接收缓冲。中断标记位*/*获得接收数据的长度-一*/Ien=mcp2515_ReadRegister
45、MCB_KXB0CTR1.+5);/*读取数据长度*/j=mcp2515_ReadRegister(MCP_RXB0SIDH);portb=oxfo:for(i=0;i7;i+)/*打印接收到的数据*/recbufi=mcp2515_ReadRegister(MCP-RXB0CTR1.+6+i);if(recbuf1.en-1.=1.)(for(i=0;i7-1.;i+)recbuf_wendui=recbufi:Send_F1.ag=0;)e1.seif(recbuf7-1.=2)(for(i=0;i7-1.;i+)recbuf_dianyai=recbufi;Send_F1.ag=1;)印接收到的数据*/(recbufimcp2515_ReadRegister(MCP-RXB0CTR1.6+i):if(recbuf7-1.=1.)(for(i=0;i7-1.:i+)recbuf_wendui+6=recbufi;Send_F1.ag=0:e1.seif(recbuf7-1=2)for(i=0;i7-1.;i+)recbuf_dianyai+6=recbufi;Send_F1.ag=1;e1.seif(j=7)打印接收到的数据*/(recbufimcp2515_RcadRcgister(MCPRXB0CTR1.