版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 南 京 理 工 大 学毕业设计说明书(论文)作 者:学 号:0101140132学院(系):机械工程学院专 业:机械设计制造及其自动化题 目:汽车can总线技术研究 教授 常思勤指导者: (姓 名) (专业技术职务)陈效华副教授评阅者: (姓 名) (专业技术职务) 2005 年 6月毕业设计说明书(论文)中文摘要对正在迅速发展之中的汽车can总线技术进行了研究。自行设计、研制了一个典型的能实际运行的汽车电控系统,包括can总线、电控单元以及控制元件(电机)等。该系统总共由三个节点组成,并通过控制器局域网(can-bus)连接起来,形成一个基于can总线的通信网络。第一个can节点是由计算机
2、构成的控制平台,接收用户指令,通过can总线控制另两个节点上的电机,并实时显示它们反馈的运行情况。第二个can节点保持与节点1的通信,根据节点1的要求实时监控一个电机。第三个节点的id不同于第二个can节点,监控另一个电机。整个系统已经完成并调试通过,测试证明完全符合车上通信网络的需要。针对实际应用,提出了一个在摩托车中应用can技术的解决方案,分析了方案的特点及工作原理,并完成了初步设计。对包括can总线的汽车电控系统研发的步骤、方法以及规律性等进行了探索,并为我校本科教学中开设相关实验进行了准备工作,提出了具体的设想与方案。关键词 汽车 电子控制 can总线 通信 网络毕业设计说明书(论文
3、)外文摘要title study of vehicles can-bus technique abstractvehicles can-bus technique which is in quick development is thorough studied. a typical and operable vehicles electrical control system is designed and developed and the system includes the can-bus, the electrical unit and the control component
4、etc. three nodes in the system communicate through a can-bus. the system uses commands from a can node and sends this message through a can-bus to other two can nodes. they are controlling a dc motor separately. the first can node acts like a user control panel. it monitors all user inputs and displ
5、ays the real time motor speed. the second can node is responsible for generating various signals for motor control, and responsible for monitoring the feedback signal and relays its data to the first can node. the third node runs like the second can node, but the id is different form the second can
6、node. the whole system was already completed and can properly operate. more important, the system verifies that the can-bus can meet the demand of the communication in vehicle completely. aiming at the practical application, a solution for applying the technique of can-bus in motorcycle was put forw
7、ard, its characteristics and work principles are analyzed, and the preliminary design is done. the development procedure, method and rules etc. of vehicles electrical control system that includes can-bus are investigated. setting up the related experiment for education purpose is prepared, and some
8、proposal is given.key words: vehicle electrical control can-bus communications network 目 次 1 绪论 41.1 汽车can总线技术的研究意义 41.2 汽车can总线技术的发展现状 41.3 本课题的主要研究内容和方法 62 can总线系统总体方案设计 82.1 系统方框图 82.2 can总线主要参数的选择 92.3 can总线应用层的定义122.4 程序设计方法选择 123 基于单片机的can节点的can接口设计133.1 接口硬件设计 143.1.1接口元器件选择153.1.2 接口电路图设计153
9、.2 接口软件设计 153.2.1 初始化子程序的设计153.2.2 发送子程序的设计163.2.3 接收子程序的设计164 基于单片机的can节点的功能部分设计184.1功能部分硬件设计 184.1.1元器件的选择 184.1.2电路图的设计 184.2功能部分软件设计 194.2.1 pwm调速软件设计194.2.2计数测速软件设计 195 基于pc机的can节点的设计215.1 lpt-can接口卡 215.2 接口函数库215.3应用软件的mfc设计 216 系统构建与性能检测236.1 系统构建和调试 236.2 系统性能检测247 汽车车身can解决的方案268 摩托车can总线解
10、决方案289 can总线本科教学建议30结论 31致谢 32参考文献34 附录a 节点电路图 36 附录b 部分源码 37 附录c 系统调试 411 绪论1.1 汽车can总线技术研究的意义随着汽车电子技术的不断发展,汽车上的电子装置越来越多。较高档的汽车中,电子系统的成本已经超过总成本的20%,并且增长很快。汽车上新的技术增长点几乎无一不与电子技术和信息技术的相关。车上电子装置不断增加,使得连接这些装置的电子线路迅速膨胀,线束越来越复杂,布线就越来越困难,在汽车设计,装配,维修中的负担甚至到了无法忍受的程度;而且线路以及接头的增加是引起安全问题的巨大隐患。另外,线的质量和占用的空间也都成为值
11、得考虑的问题。质量的增加意味着降低汽车的效率;线路直径太大,在相当运动部分过线非常的困难,如车窗的线束等。因此,在电子装置不断增加的情况下,减少线束成为一个必须要解决的问题。使用传统的点对点并行连接方法,显然无法摆脱这种困境,基于串行信息传输的网络结构成为一种必然的选择。众多国际知名汽车公司早在80年代就积极致力于汽车网络技术的研究以及应用。而我国目前对汽车网络技术的应用研究还处于起步阶段。为缩短同国外汽车技术水平的差距,提高自身的竞争力,单靠技术引进不利于长期发展。消化,吸收,研究,开发自己的汽车网络技术势在必行。本课题正是对汽车can总线技术进行深入的研究,通过设计一个典型的基于can总线
12、的车上通信网络, 对包括can总线的汽车电控系统研发的步骤、方法以及规律性等进行探索。1.2 汽车can总线技术的发展现状汽车can总线技术又称为汽车can网络技术。汽车网络已经经历了大约二十年的发展,汽车工程师协会(sae)按照汽车网络系统的性能,从底到高划分a级,b级,c级,d级网络。a级网络产生最早,主要应用于要求价格底,数据传输速度,实时性,可靠性要求较低的情况。如车身系统的门窗和后备箱网络系统,也可以作为一些传感器和执行器级别的底层局部连接总线使用。uart就是典型的a级网络。b级网络用于对数据传输速度要求较高的系统,包括一些车身控制系统,仪表盘,低档的实时控制系统以及故障诊断系统等
13、。典型的b级网络是j1850。c级网络主要用于可靠性和实时性要求较高的系统,如高档的发动机和动力传动系统的实时控制系统,线控系统等。can2.0就是典型的c级网络。can 全称为controller area network, 即控制器局域网,是国际上应用最广泛的现场总线之一,最初can 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ecu 之间交换信息形成汽车电子控制网络。比如:发动机管理系统,变速箱控制器,仪表装备,电子主干系统中,均嵌入can 控制装置。汽车要求安全、使用方便、操作不能太复杂、对价格敏感、性能可靠;汽车又是应用环境最差的设备,所以可能的道路、电磁以及气候环境几乎
14、都可以遇到。专门为汽车设计的can总线当然是最理想的汽车总线选择,can总线主要具有以下的优点:1)高速串行数据接口功能。can支持从几千到1mbps的数据传输速度。2)使用廉价物理介质,can可以使用屏蔽或非屏蔽的双胶线,同轴电缆以及光纤作为网线。3)数据帧短,短的数据帧利于减小延时,提高实时性;但降低可有效数据传输速度。4)反应速度快,发送时不需要等待令牌,对请求反应迅速。5)多站同时发送,优先数据获取总线。6)错误检测和校正能力强,保证系统的可靠性。7)无破坏基于优先权的仲裁。8)通过接收过滤的方式实现多地址帧传送。9)具有远程数据请求功能。10)具有全系统数据兼容性。11)具有丢失仲裁
15、或出错的帧自动重发的功能。当提到can时,我们需要理解iso 11898 标准中的功能性7。这个标准包括由iso 参考模型的物理层(第一层)和数据链路层(第二层),没有规定应用层。现在,数据链路层有两种形式现在都被广泛使用,一种是具有11 位id 标识符的basiccan,另一种是带有扩展成29 位id 标识符的高级形式pelican,各使用者根据不同的要求有不同的选择。由于can 也在非汽车自动化中被广泛使用,几乎同时产生了几个较高层协议和开放式系统方法。今天,devicenet15, canopen10 和sds15 这三种基于can 的开放式系统已经成熟其标准已经形成。这三个标准给人留下
16、一个印象,那就是它们具有相同的功能性,虽然这三个标准采用的方法不尽相同,最明显的不同是信息标示符的使用。信息标示符的使用在sds 里是基于完整的预定义方式,而在canopen 里信息标示符的使用是向系统设计者或综合者保持开放,devicenet 的信息标示符的使用也自由但相对有些限制。尽管can 协议已经有15 年的历史,但它仍处在改进之中。现在,can 在全球市场上仍然处于起始点,当得到重视时谁也无法预料can 总线系统在下一个10-15 年内的发展趋势。需要强调的一个现实,近几年美国和欧洲的汽车厂商将会在他们所生产汽车的串行部件上使用can 。1.3 本课题的主要研究内容和方法本课题要对汽
17、车can总线技术进行研究。自行设计,研制一个典型的汽车电控系统,组建一个由三个can节点组成的can网络。第一个can节点是由计算机构成的控制平台,通过can总线设定电机的运行参数,并实时显示反馈的电机运行情况。第二个can节点和第三个can节点分别由89c51系列的单片机构成,保持与node_1的通信,根据node_1的要求实时监控一个直流电机,并反馈电机的运行情况。 完成系统的详细设计,各个节点的电气图,程序的流程图和所有源代码(所有硬件和软件都需采用模块化的设计思想,提高其可移植性,为后续研究做好准备)。完成系统的搭建且调试通过,并进行系统性能检测。针对实际应用,提出一个在摩托车中应用c
18、an技术的解决方案,分析方案的特点及工作原理,并完成初步设计。最后提出关于can总线本科教学的建议。本课题按照下列步骤进行研究:复习有关基础知识,主要包括:数电、模电、数控、pc原理、mcu原理、c语言、ddk/wdm、mfc等。补充学习未掌握的知识,主要是学习车上网络和can总线协议。通过查找并整理资料,进一步了解车上电控系统和can总线网络的构建,主要包括电控系统的组建,can总线的组建,can总线的初始化,电机的pwm调速和转速测量,设备驱动程序的编写,ui的设计等等。在对相关知识全面掌握的基础上,借鉴现有的相关应用,并结合新的技术水平,完成系统的总体方案设计,绘制系统方框图。通过查相关
19、资料确定出所需要的硬件,通过调研确定硬件的购置(包括购买地址和价格的确定),以此为依据完成硬件电路的设计,绘制出系统电路图。在硬件的基础上,完成软件和用户界面的设计。然后完成系统的调试和改进,并进行系统性能检测。最后编写出相关文档,完成毕业设计说明书的撰写,总结汽车can总线网络的开发方法,步骤和规则性。2 总体方案设计2.1系统方框图虽然汽车电控系统是一个相当复杂的系统,但主要是用来进行通信和参数共享的,所以对一个三节点典型系统的研究可以说明问题。本汽车can总线系统由三个节点(至少三个节点才能说明通信网络的正确性)组成,并通过控制器局域网(can-bus)连接起来,形成一个基于can总线的
20、通信网络。第一个can节点(node_1)是由计算机构成的控制平台,通过can总线设定电机的运行参数,并实时显示反馈的电机运行情况。首先制作一块can到lpt的转接卡,实现can总线接入计算机,然后编写总线驱动程序和低层的接口函数库,最后完成控制平台的应用程序。第二个can节点(node_1)和第三个can节点(node_3) 分别由89c51系列的单片机构成,保持与node_1的通信,根据node_1的要求实时监控一个直流电机,并反馈电机的运行情况。单片机通过can控制器和can驱动器接入can总线,要为can控制器编写正确的初始化程序。can总线 pcnode_1id:0101can-pc
21、i转接卡控制平台接口函数驱动程序can控制器驱动器mcunode_2id:0202电机2驱动器传感器can控制器驱动器mcunode_3id:0303电机3 驱动器 传感器 图2-1系统方框图对小型直流电机的速度控制采用pwm调速,控制平台接收操作人员给出的pwm的占空比,然后把含有占空比的控制信息发送给指定的节点。节点mcu接收到控制信息后,首先分析该控制信息的性质,然后根据控制信息做出相应的操作。当接收到含有占空比的控制信息,mcu就改变输出的pwm信号的占空比,该pwm信号经放大后用来驱动电机,达到调速的目的。速度的测量使用霍尔效应传感器。霍尔效应传感器感应的电机的转动产生脉冲信号,经放
22、大后送mcu计数,mcu计数一秒得到电机的转速, mcu把数据打包上传到can总线。node_1从总线上接收到数据,控制平台实时显示,系统方框如图2-1所示。2.2 can总线主要参数的选择对can总线的参数进行选择,首先要了解can总线的网络协议。当提到“can 标准”或“can 协议”,我们需要理解iso 11898 标准中1和2各自的功能性。这个标准包括由iso 参考模型的物理层(第一层)和数据链路层(第二层)。其中,第一层负责譬如物理信号传输,译码,位时序和位同步等的功能,而第二层负责像总线仲裁,信息分段以及数据安全,数据确认,错误检测,信号传输和错误控制的功能。can 标准没有规定媒
23、体的连接单元以及其驻留媒体,也没有规定应用层。 控制线 地址线 数据线 tx rx can-h can-l 节点微控制器 can控制器 can驱动器 图2-2 can节点的构成物理层定义了物理数据在总线上各节点间的传输过程.设计一个can网络,物理层有很大的选择余地,但必须保证can总线的非破坏性仲裁,即出现竞争时有高优先权标识符的数据获取仲裁的原则;所以要求物理层必须支持can总线中隐性位(高电平1)和显性位(底电平0)的状态特征,显性位的发送会覆盖隐性位的状态。当两个节点同时发送信息的时候先出现底电平的数据获得仲裁。从物理结构上看,一个can接点的构成如图2-2。can总线的数据链路层是c
24、an协议的核心内容,它定义了四种不同的信息帧:数据帧,远程帧,错误帧,超载帧。其中数据帧是最重要的,如图3所示。起始域为一个显性位(0),当总线空闲时,一个隐性到显性的变化表示一个帧的开始,进行硬同步。标识符有29位和11位两种,11位的是标准can格式,19位的是扩展can格式。我们选择29位的是扩展can格式。rtr为远程传送请求位。控制域给出要传送的数据的长度,最多8个字节。数据域给出要传送的数据。接收数据的节点在应答域给出应答(一个显性位0),表示正确接收到了数据。如果没有节点在应答域给出应答,就表示数据发送错误,发送数据的节点会重发该帧。7个连续的隐性位表示帧结束。表2-1 数据帧格
25、式帧结束应答域crc校验数据域控制域rtr标识符帧起始can总线的传输层是由物理层和数据链路层共同决定的。can总线上的信息以一定的格式发送,当总线空闲时,任何网上节点都可以发送信息,要发送的信息有特征标识符,信息以广播的方式发送,所有的节点都可以接收。节点接收到一帧数据后通过标识符判定是否接收这个信息。不同的can系统可以有不同的数据传送速率,但同一网络的节点传输速度必须一致。我们选择最高的波特率1mbps。理论上can总线上的节点没有数量的限制,而实际应用中受限于总线上的数据延时和电气负载能力。can使用广播信息发送,各节点采用验收码和屏蔽码组合的方法来决定是否接收某一个数据帧。除去屏蔽码
26、屏蔽掉的位外,当某个帧的发送标识符和验收码一致时,该数据被接收。本设计屏蔽码都设定为0000ffff,即把后两个字节屏蔽掉另做它用。前两个字节用于识别,用节点的节点号的重复作为识别可以大大提高系统的稳定性。倒数第二个字节用作发送节点的节点号。最后一个字节只有高五位有效,用作指令。这样,当一帧的标识符为01010210时,说明:该帧是由2号节点发给1号节点的,指令信息为01。根据分析,结合本汽车can总线系统设计的内容和目的, can总线的重要参数,标识符和数据域的选择和分配如表2-2。表2-2 系统参数项目node_1node_2node_3帧格式扩展帧扩展帧扩展帧发送格式正常发送正常发送正常
27、发送滤波方式单滤波单滤波单滤波波特率1mbps1mbps1mbps验收码010100000202000003030000屏蔽码0000ffff0000ffff0000ffff发送帧类型数据帧数据帧数据帧发送标识符020201xx010102xx010103xx发送数据0pwm占空比速度l速度l发送数据1未用速度h速度h2.3 can总线应用层的定义 node_2通道1 node_2测量的实时速度数据上传到node_1;node_1对电机二的控制指令下传到node_2;速度测量实时速度 显示2 通道2pwm调速电机速度 控制2 通道3速度测量实时速度显示3通道4 pwm调速电机速度 控制3总线
28、node_1 node_3 图2-3系统功能图 从应用层的角度来看,本汽车can总线系统主要实现如图2-3所示的四个数据通道:node_2测量电机2的实时速度上传到node_1;node_1对电机2控制指令下传到node_2; node_3测量电机3的实时速度上传到node_1;node_1对电机3控制指令下传到node_3。四个通道都是建立在can总线上,因为can总线是一种对等总线(不像rs-232或者usb2.0是主从总线),上传和下传只是相对的。在通道1上,每一秒钟node_2上传一次测量的电机2的实时速度到node_1,发送标识符01010200(表示由node_2发送到node_1
29、,指令为00),含有两个字节的数据,data0是电机2的实时速度的底字节,data1是电机2的实时速度的高字节。node_1采用查询方式(使用一个进程)接收数据并显示电机2的实时速度。在通道2上,控制指令的传输是事件触发的,当操作人员有指令的时候,node_1就会实时的把它下传到node_2,发送标识符02020100(表示由node_1发送到node_2,指令为00),含有一个字节的数据data0。data0是pwm的占空比,范围1到255。node_2采用中断方式(外部中断1,interrupt0)接收数据,并改变电机的占空比,从而改变电机2的速度。在通道3上,每一秒钟node_3上传一次
30、测量的电机3的实时速度到node_1,发送标识符01010300(表示由node_3发送到node_1,指令为00),含有两个字节的数据,data0是电机3的实时速度的底字节,data1是电机3的实时速度的高字节。node_1采用查询方式(使用一个进程)接收数据并显示电机3的实时速度。在通道4上,控制指令的传输是事件触发的,当操作人员有指令的时候,node_1就会实时的把它下传到node_3,发送标识符03030100(表示由node_1发送到node_2,指令为00),含有一个字节的数据data0。data0是pwm的占空比,范围1到255。node_3采用中断方式(外部中断1,interr
31、upt0)接收数据,并改变电机的占空比,从而改变电机3的速度。2.4 程序设计方法选择基于mcu的can节点的程序设计采用前/后台系统,模块化设计方法。每一个功能让一个子程序完成,所以功能通过子程序调用。设计软件keil c51,使用c语言完成。基于pc的can节点程序设计成windows程序。驱动程序和接口函数库的编写使用c+语言编写,其中接口函数库生成动态链接库,供编写的windows应用程序调用。应用程序使用mfc编程生成windows应用程序。3 基于单片机的can节点的接口设计3.1 接口硬件设计3.1.1 接口元器件选择基于mcu的can 总线智能节点由四部分组成:单片机,can控
32、制器,can驱动器和高速光电耦合器。主要考虑到can总线是车载的,其抗干扰和稳定性要求都很高。所以在can 总线通信接口中采用philips 公司的sja1000 和tja1050芯片。sja1000 是独立can 控制器,tja1050 为高性能can 总线收发器(总线驱动器)。基于mcu的can 总线智能节点采用p89c668 作为节点的微处理器,高速光电耦合器选用6n137。p89c668是增强型80c51系列的单片机。p89c668 单片机内带64kb flash 存储器,该存储器既可并行编程也可以串行在系统编程(isp)。在boot rom程序中可通过一个默认的串行下载器uart 对
33、flash存储器作isp编程,而在flash 代码区中并不需要有调用下载器的代码。用户程序可通过调用在boot rom 中的标准子程序对flash存储器擦写和再编程即iap。该器件在6个时钟周期内执行一条指令,是传统的80c51 的两倍。该器件用advanced cmos 工艺制造是80c51 单片机家族的衍生品其指令集和80c51 相同。该器件有四个8 位i/o 口,三个16 位定时器/计数器,多中断源,四个优选级,可嵌套中断结构,一个增强型uart 和片内振荡器以及时序电路。p89c668 新增特性使其成为一个功能强大的单片机,为某些应用提供pwm ,高速的i/o 和加/减计数,如汽车控制
34、。此外,选择p89c668主要基于以下几个原因:它使用flash 存储器,isp编程和iap编程,开发方便快捷;其64kb的程序存储器和8kb的数据存储器足够我们的需求,无须外部扩展;其功能强大,提供pwm,符合系统的要求。sja1000 是一个独立的can 控制器,它在汽车和普通的工业应用上有先进的特征。特别适合于轿车内的电子模块传感器,制动器的连接和通用工业应用中。特别是系统优化,系统诊断和系统维护时特别重要。sja1000它是philips半导体pca82c200 can 控制器basiccan 的替代产品而且它增加了一种新的工作模式pelican ,这种模式支持具有很多新特性的can
35、2.0b 协议。总之,sja1000是车上专用的can控制器,起稳定性和抗干扰能力很好。tja1050高速can收发器是控制器局域网can控制器和物理总线之间的接口。它主要有以下特征:与“iso 11898”标准完全兼容;速度高(最高可达1m 波特);低电磁辐射(eme);可抗电磁干扰(emi);没有上电的节点不会对总线造成干扰;热保护;可以连接至少110个节点。3.1.1 接口总体设计综上所述,接口电路主要由四部分所构成,微控制器89c668, 独立can控制器sja1000,can 总线收发器tja1050和高速光电耦合器6n137。微处理器89c668 负责sja1000 的初始化通过控
36、制sja1000 实现数据的接收和发送等通信任务。sja1000 的ad0-ad7 连接到89c668 的p0 口,cs 连接到89c668 的p2.0。p2.0 为0 时,cpu 片外存贮器地址可选中sja1000,cpu 通过这些地址可对sja1000 执行相应的读写操作。sja1000 的rd,wr,ale分别与89c668 的对应引脚相连。int 接89c668 的0int。 89c668 也可通过中断方式访问sja1000,本汽车can总线系统所使用的就是这种方式。为了增强can 总线节点的抗干扰能力,sja1000 的tx0 和rxo 并不是直接与sja1000 的txd 和rxd
37、 相连,而是通过高速光耦6n137 后与sja1000 相连。这样就很好的实现了总线上各can 节点间的电气隔离。不过应该特别说明的一点是光耦部分电路所采用的两个电源vcc 和vdd 必须完全隔离否则采用光耦也就失去了意义。电源的完全隔离采用小功率电源隔离模块实现。这些部分虽然增加了节点的复杂但是却提高了节点的稳定性和安全性。tja1000与can 总线的接口部分也采用了一定的安全和抗干扰措施,tja1000 的canh 和canl 引脚各自通过一个阻值为5 的电阻与can 总线相连。电阻可起到一定的限流作用,保护tja1000 免受过流的冲击。canh 和canl与地之间并联了两个30p 的
38、小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外在两根can 总线接入端与地之间分别反接了一个保护二极管,当can 总线有较高的负电压时通过二极管的短路可起到一定的过压保护作用。 图3-1 can接口电路图3.1.2 接口电路图根据总体设计思想和选择的芯片,使用绘图软件protel绘制基于mcu的can节点can总线接电路原理图,如图3-1。3.2 接口软件设计can 总线节点的软件设计包括三大部分:can 节点初始化,报文发送和报文接收。有了这三个部分程序的设计就能编写出利用can 总线进行通信的一般应用程序。要将can 总线应用于通信任务比较复杂的系统中,需详细了解有关c
39、an 总线错误处理,总线脱离处理,接收滤波处理,波特率参数设置和自动检测,以及can 总线通信距离和节点数的计算等方面的内容。3.2.1 初始化子程序设计 图3-2 初始化子程序流程图sja1000 的初始化只有在复位模式下才可以进行,初始化主要包括:工作方式的设置,接收滤波方式的设置,接收屏蔽寄存器amr 和接收代码寄存器acr 的设置,波特率参数设置,中断允许寄存器ier 的设置,等等。在完成sja1000 的初始化设置以后sja1000 就可以回到工作状态,进行正常的通信任务。图3-2提供了sja1000 初始化的流程图。在已经具有基本流程图的前提下,整个初始化程序就可以轻松编写源代码了
40、,其具体程序见附录b。3.2.2 报文发送子程序设计进行完初始化程序后,can器件便能进行正常的can报文发送和接收了。发送子程序负责节点报文的发送。发送时,用户将待发送的数据按can报文的格式组合成一帧报文送入sja1000发送缓存区中,然后启动sja1000相应的发送命令。在往sja1000发送缓存区送报文之前,必须先作判断。发送程序可以发送can报文的远程帧和数据帧。远程帧与数据帧相比无数据场,掌握数据帧的发送就能掌握远程帧的发送。下面就以发送数据帧为例进行分析。图3-3提供了报文发送子程序的流程分析,具体的程序实现见附录b。 图3-3报文发送子程序流程图3.2.3 报文接收子程序设计c
41、an控制器收到的报文是存放在接收缓冲区。接收子程序负责读取接收缓冲区的值以及其它情况处理。报文的接收可以使用查询方式和中断方式。两者在思路上相似,不过采用中断方式进行接收,在实时性方面要大大优于查询方式。本汽车can总线系统使用的是中断方式接收报文。图3-4提供了报文接收子程序的流程分析,具体的程序实现见附录b。 图3-4:报文接受子程序流程图从流程图可以看出,在确定can节点的接收缓冲区有接收数据后,读取接收缓冲区的数据并保存,然后释放接收缓冲区。4 基于单片机的can节点的功能部分设计4.1 功能部分硬件电路的设计4.1.1 元器件的选择基于单片机的功能部分包括两块,pwm调速和霍尔效应传
42、感器测量转速。mcu根据要求输出pwm信号,mcu输出的pwm信号大约只有200ua,该pwm信号经放大后用来驱动一个5伏,200ma的电机。选择uln200a作为放大器件。霍尔效应接近开关感应到的电机的转动,产生脉冲信号,该脉冲信号经过经光电耦合后无须放大直接送给mcu计数,mcu计数一秒得到电机的转速。霍尔接近开关选用hkk5002c,光电耦合器使用tlp512。uln2003a是耐高压,高集成度的达林顿管(darlington)阵列,每片由七个 npn型的darlington组成,并且共用一个续流二极管。 工作电压5伏时,一个darlington 的集电级额定电流是500ma,并且dar
43、lington可以进行并联。hkk5002c是hk系列的霍尔接近开关,它是一种用磁场讯号来驱动的新型自动开关。其工作电压5伏,负载电流20ma,工作距离5mm,最高响应频率50khz,足够用来测量直流电机转速。4.1.2 电路图的设计单片机使用p1.3口产生pwm信号,pwm出来后接到uln2003a的7b口(使用第七个达林顿管)进行放大,经过放大后从7c口输出驱动电机,ula2003a的com口接9伏电源。霍尔接近开关使用5伏电源vcc,输出的信号经过一个390欧的限流电阻后,接到tlp512的9端,经过光电耦合后,经过一个390欧的上拉电阻接到mcu的p3.5进行计数。390欧的上拉电阻的
44、电源使用信号源(vcc电源必须先经过一个电源转换器b0505),以达到完全的隔离。电路图见附录a,图4-1只给出框图:mcuula2003a电机 p1.3b0505390欧 hkk5002c390欧tlp512 图4-1 功能电路方框图4.2 功能部分软件的设计can节点node_2和node_3功能部分的软件设计完全相同,包括两大部分:pwm调速软件设计和计数测速的软件设计。4.2.1 pwm调速软件设计pwm调速的软件设计,主要利用中断方式接收can总线上的调速指令,根据指令设置p89c668的可编程计数器阵列pca。程序源码见附录b,图4-2为pwm调速软件设计流程图。 图4-2 pwm
45、调速软件设计4.2.2 计数测速软件设计计数测速的软件设计,首先让定时/计数器t1工作于16位计数,计数p3.5口的霍尔接近开关的方波信号。定时/计数器t2工作于16位常数自动再装入方式,产生25ms的计时。每25ms会产生一次中断(interrupt 7),中断服务子程序中的一个全局变量会加1,计数40个25ms就是1s,每1s读出t1计数器的值(即转速),并清零。程序源码见附录b,图4-3为pwm调速软件设计流程图。中断服务入口t2初始化t1初试化清中断标志设定工作方式16位计时设定工作方式16位计数计数值time加1设定计数初值清零1s n设定中断允许设定中断禁止 yt2停止计数 启动
46、启动读计数值到发送缓冲区data=0,重新开始完成初始化完成初始化中断出口 图4-3 计数测速的软件流程 5 基于pc机的can节点的设计基于pc机的can节点(node_1)的设计,首先制作一块can到lpt的转接卡,实现can总线接入计算机。然后编写总线驱动程序和低层的接口函数库,最后完成控制平台应用程序。为了缩短项目的开发周期,选用广州周立功单片机发展有限公司的canmini 微型can 接口卡,驱动和接口函数库,此基础上设计本系统的ui应用程序。5.1 lpt-can接口卡canmini 微型can 接口卡是一款便携式can 总线通讯适配卡,通过计算机并行接口,使pc 机方便地连接到c
47、an 总线,实现can2.0b(a)协议的数据通讯。canmini 微型can 接口卡能自动检测系统中可用的并口资源,采用epp 传输模式及中断机制实现接收/发送,更快的传输速率、更低的计算机cpu 资源占用。canmini 硬件小巧,直接插在计算机的lpt上即可使用,软件使用通用的zlgvci 驱动程序接口。 5.2 接口函数库在接口函数库里,定义了4个数据结构,14个接口函数,应用程序通过调用他们来对can总线进行操作。接口库函数使用,首先,把库函数文件都放在工作目录下。总共有三个文件controlcan.h ,controlcan.lib,controlcan.dll 和一个文件夹ker
48、neldlls。然后,vc+ 调用动态库,在.cpp 中包含controlcan.h 头文件;在工程文件中加入controlcan.lib 文件。这14个函数分别是:打开设备函数;关闭设备函数;初始化can函数;读取设备信息函数;获取错误信息函数;读取can 状态函数;读取设备参数函数;设置设备参数函数;返回缓冲区未读取的帧数函数;清空指定缓冲区函数;启动can 函数;复位can 函数;发送数据函数和接收数据函数。5.3 应用软件的mfc设计根据2.3节对本can总线系统应用层的定义,在接口函数库的基础上编写windows应用程序。在vc+中使用mfc应用程序向导建立一个工程项目名为node-
49、1的基本对话框项目,并把库函数文件都放在工作目录下。总共有三个文件controlcan.h ,controlcan.lib,controlcan.dll 和一个文件夹kerneldlls。在.cpp 中包含controlcan.h 头文件;在工程文件中加入controlcan.lib 文件。制作如图5-2的应用程序主窗口。读取设备信息函数打开设备函数获取错误信息函数数复位can 函数初始化can函数读取can 状态函数数读取设备参数函数数接收数据函数启动can 函数读取设备信息函数发送数据函数关闭设备函数设置设备参数函数数返回未读取数函数 图5-1 接口函数使用流程 6 系统构建与性能检测6.
50、1 系统构建和调试在本can总线系统设计完成后,进行构建调试和性能检测。通常情况下,设计一个系统,应该先开发硬件再进行软件设计。在有仿真实验仪的前提下,可以先开发软件,确保软件可以实现,再做硬件,这样可以降低开发风险和成本,提高开发速度,减小开发周期。用keil c51编写node_2的软件,并进行软件仿真(keil c51具有软件仿真的功能)。再进行硬件仿真,使用dp-668仿真实验仪,上位机使用can测试软件模拟应用层协议。功能部分硬件暂时没有,使用示波器观察p1.3口的pwm信号,它是不是根据指令调整了pwm的占空比。使用函数信号发生器产生方波信号输入到p3.5口,模拟霍尔接近开关产生的转速信号,不断改变方波信号的频率, node_2采集的转速是不是和方波信号的频率一致。 图5-2 应用程序主窗口node_2的程序调通后,改变一下id得到node_3的软件程序。下位机的程序调通后,再通过下位机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生意电子合同范本
- 租商铺的租赁合同范本
- 代理类合同范本
- 重庆开州区教育事业单位赴外招聘真题
- 2023年石嘴山市档案馆招聘考试真题
- 混凝土结款合同范本
- 2023年铜陵市南部城区建设投资有限公司招聘工作人员考试真题
- 2023年江西传媒职业学院招聘考试真题
- 电力检测合同范本
- 2023年大唐山西发电有限公司招聘考试真题
- 旅游景区消防安全培训
- 2024年税务新政培训
- 电商行业直播带货营销策略方案
- 糖尿病健康知识宣教
- 八上历史全册知识梳理
- 2024秋期国家开放大学《公共部门人力资源管理》一平台在线形考(形考任务1至4)试题及答案
- 2024年银行考试-招商银行考试近5年真题集锦(频考类试题)带答案
- 中小学-校园文明礼仪-课件
- 期中考试试题(1-4单元)(试题)-2024-2025学年二年级上册数学青岛版
- 浙教版(2023)四年级上册信息科技-教学计划
- (新版)糖尿病知识竞赛考试题库300题(含答案)
评论
0/150
提交评论