汽车电子课程设计

上传人:痛*** 文档编号:66691433 上传时间:2022-03-29 格式:DOC 页数:26 大小:509.50KB
收藏 版权申诉 举报 下载
汽车电子课程设计_第1页
第1页 / 共26页
汽车电子课程设计_第2页
第2页 / 共26页
汽车电子课程设计_第3页
第3页 / 共26页
资源描述:

《汽车电子课程设计》由会员分享,可在线阅读,更多相关《汽车电子课程设计(26页珍藏版)》请在装配图网上搜索。

1、课程设计(论文)基于CAN总线的汽车转速信号控制系统学 院 信息工程学院 专 业 信息工程(应用电子技术方向) 年级班别 信息工程(应用电子技术方向)0702 学生姓名 周威 指导教师 冯 桑 2010 年 6 月 11 日目录一、绪论2二、汽车ECU与CAN42.1 CAN总线简介42.2硬件连接52.2.1系统总体框图及工作原理分析52.2.2 转速信号调制电路62.2.3 AT89C51单片机72.2.4 SAJ1000CAN总线控制器82.2.5 PCA82C250CAN接收发送器82.3系统软件设计92.3.1单片机读取转速方式92.3.2 控制器的初始化102.3.3 信息的发送1

2、1三、CAN总线的数据传输123.1 报文123.2错误检测手段143.3 CAN总线的通信协议143.3.1 J1939协议143.3.2 数据传转协议153.3.3 J1939的参数格式163.3.4 协议的制定16四、结论17五、课程设计心得体会18六、附录18七、参 考 文 献29一、绪论1.1背景随着车用电气设备越来越多,从发动机控制到传动系统控制,从行驶、制动、转向系统控制到安全保证系统及仪表报警系统,从电源管理到为提高舒适性而作的各种努力,使汽车电气系统形成一个复杂的大系统,而且这一系统都集中在驾驶室控制。另外,随着近年来ITS的发展,以3G(GPS、GIS和GSM)为代表的新型

3、电子通信产品的出现,对汽车的综合布线和信息的共享交互提出了更高的要求。CAN总线正是为满足这些要求而设计的。早在1992年,Mercedes-Benz公司就将CAN用于客车的发动机管理系统,并用于传递驾驶信息。随着Volvo、Saad、Audi、BMW、Volkswagen、Renault和Fiat等汽车厂商纷纷效仿,CAN逐被欧洲接纳为汽车行业标准,并延伸到工业控制、航空航天、医疗器械、娱乐设备、楼宇自动化领域。目前,欧洲绝大多数新款客车的动力传动系统和车身电子系统都分别参照ISO 11989和ISO 11519-2来进行设计。基于CAN的故障诊断系统也在大力推进,其协议草案ISO/DIS

4、15765有望很快转为正式标准,届时CAN的车用规模将更加可观。在欧洲带动下,CAN也逐渐得到其他地区的认同。如过去在美国,其车载网络Daimler-Chrysler、Fordt和GM三大汽车公司各成体系,协议标准主要是汽车工程师协会(SAE)的J1850和J1922。但这些标准对网络各层协议的规定及工作性能与CAN相差甚远,很难被欧洲接受。因此,三大公司已全部转向CAN,SAE也新颁布了J1939、J2411、J2284和J2480等一系列基于CAN的车用通信协议标准。ECU(Electronic Control Unit)电子控制单元,又称“行车电脑”、“车载电脑”等。从用途上讲则是汽车专

5、用微机控制器,也叫汽车专用单片机。它和普通的单片机一样,由微处理器(CPU)、存储器(ROM、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成。电控单元的功用是根据其内存的程序和数据对空气流量计及各种传感器输入的信息进行运算、处理、判断,然后输出指令。目前在一些中高级轿车上,不但在发动机上应用ECU,在其它许多地方都可发现ECU的踪影。例如防抱死制动系统、4轮驱动系统、电控自动变速器、主动悬架系统、安全气囊系统、多向可调电控座椅等都配置有各自的ECU。随着轿车电子化自动化的提高,ECU将会日益增多,线路会日益复杂。为了简化电路和降低成本,汽车上多个EC

6、U之间的信息传递就要采用一种称为多路复用通信网络技术,将整车的ECU形成一个网络系统,也就是前述的CAN数据总线。CAN总线以其组网自由,扩展性强;自动错误界定,简化了电控单元对通信的操作;可根据内容确定优先权,解决通信的实时性等优点,不公在汽车控制和通信网络中被广泛采用,在工业控制中也有广阔的应用前景。1.2 CAN的国内外发展状况及遇到的问题目前全球各大汽车制造商在上世纪90年代后期研发的汽车(乘用车和商用车)都采用了CAN总线或者车中的部分零部件具有CAN总线通信功能。以CAN总线为代表的车用总线技术已成为全球各大汽车制造商实施平台战略和模块化战略的重要措施之一。此时,总线对于全球汽车工

7、业的意义已远远超过节省线束和连接插件。总线已成为现代汽车传输整车控制信息的神经网络。基于CAN的汽车内联网体现了车用多路总线的发展趋势,只是目前还存在一些问题,阻碍了它的全面推广。首先,CAN的技术规范还存在一些缺陷,最突出的是无法实时和非实时性数据动态配置优先权。由于现代车用通信基本上采用的是网络事件触发方式,其仲裁是根据预定的标识符来进行的,较为优先的消息一旦送出来就不受干扰,所以常会出现两种情形:(1)某参数从全局来看实时性较低,一开始分配到的优先权就不高。但控制策略对各参数的要求并不是一成不变的,当急需这个参数时,别的节点恰好送出一个优先权较高的信息,CAN死板的仲裁机制就会拒绝传递这

8、个参数。(2)即使分配给该参数优先权最高,当节点着手发送该数据时,却发现前一个非实时性数据还没有传完,于是必须等到下一次总线空闲时才能通信,实际上这个参数还是被搁置了起来。此外,还有两个因素制约着CAN在汽车中的应用:(1)CAN是多主总线,每个节点都能自主建立通信。而目前只能以事件触发方式工作的CAN控制器根本无法应付“暴风骤雨”式的中断请求。(2)汽车内联网所涉及到的节点种类繁多,通信繁忙。本文将设计一个控制器网络采集发动机传感器的传来的转速信息并通过处理计算之后发送到CAN总线传输出去。二、汽车ECU与CAN2.1 CAN总线简介一个由CAN总线构成的单一网络中,理论上可以挂无数个节点,

9、实际应用中,节点数目受网络硬件的电气特性所限制。目前汽车上的网络连接方式主要采用2条CAN,一条用于驱动系统的高速CAN,速率达到500kb/s,即动力总线;另一条用于车身系统的低速CAN,速率是100kb/s,也称为娱乐总线。驱动系统CAN主要是连接发动机控制器(ECU)、ASR及ABS控制器、安全气囊控制器、组合仪表等,它们的基本特征相同,都是控制与汽车行驶直接相关的系统,。车身系统CAN主要连接对象是四门以上的集控锁、电动车窗、后视镜和厢内照明灯等。有些先进的轿车除了上述两条总线,还会有第三条CAN总线,它主要负责卫星导航及智能通讯系统。CAN总线是一个三层网络,包括物理层、数据链路层及

10、应用层。物理层、数据链路层已经由硬件实现,目前都已经标准化,有现成的部件(CAN控制器和收发器)选择。因此在单片机上加上CAN控制器、收发器,软件实现相应的驱动程序就基本实现了CAN的通讯功能。但是这对于汽车电子上的应用还是远远不够的,因为数据链路层有很多功能没有定义如具有逻辑关系的消息之间的功能实现、网络管理等等。因此通讯协议的程序代码的结构应该是底层驱动+应用代码(通讯功能的应用代码)。设计CAN底层节点离不开与CAN协议相关的专用芯片,主要可分为以下几类:(1)收发器用于将TTL信号转换为驱动CAN所需的差分电压信号,高速CAN一般采用Philips的PCA82C250,低速容错CAN可

11、以使用Motorola的MC33388。(2)独立CAN控制器仅集成有CAN模块的控制芯片,例如Philips的SJA1000,它全部的处理器资源均用于实现CAN协议所规定的功能。(3)嵌有CAN微控制器嵌有CAN协议控制模块,并能用于其他工控目的的通用微控制器,例如ST的ST7/9与Motorola的MC68HC908AZ系列等。一般,“CAN微控制器+收发器”或“通用微控制器+独立CAN控制器+收发器”这样的组合,配上相应的外围电路就构成节点。它们既能承担一定的测控任务,又能收/发处理协议信息,经导线连接就形成所谓的“控制器网络”。本文的设计就是一个典型的“通用微控制器+独立CAN控制器+

12、收发器”的组合,并且简单地设计了一个总线协议的报文。2.2硬件连接2.2.1系统总体框图及工作原理分析图2.1是设计总框图:图2.1 设计原理框图工作原理分析:从发动机传感器传来的转速信号,经过转速信号缓冲调理电路将原较小的正弦模拟信号转化为矩形脉冲信号,再将该信号送入单片机的外部中断/INT0引脚,将其设定为边沿触发方式,用T1作定时器对方波信号进行脉冲测量,在一定时间内所得脉冲经查表在ROM存储器读取对应的转速信号再传送到CAN控制器中,CAN控制器执行完整的CAN协议,完成通信功能,之后CAN接收发送器接收到CAN控制器的信号,将CAN控制器的逻辑电平信号转换为总线上的物理电平,再由事先

13、约定好的总线协议以报文的形式从CAN总线上发送出去。2.2.2 转速信号调制电路信号调理是把来自传感器的模拟信号转换为用于数据采集、控制过程、执行计算、显示读出和其他目的的数字信号。模拟传感器可测量很多物理量,如温度、压力、力、流量、位置、pH值、光强等。通常,传感器信号不能直接变换为数字量,这是因为传感器输出是相当小的电压、电流或电阻变化,因此在转换为数字量之前必须进行调理。调理就是放大、缓冲或标定模拟信号,使其适合于模数转换器(ADC)的输入。然后,ADC对模拟信号进行数字化,并把数字信号送到微控制器或其他数字器件中,以便用于系统的数据处理。此链路工作的关键是选择运算放大器,运算放大器要正

14、确地接口被测的各种类型传感器。由发动机转速传感器的特性可知,发动机转速信号是一个调频信号,幅度不为常数,且动态范围较大。磁感应式传感器所测得的信号幅值将随发动机的转速不同而不同。从某种意义上说,它就相当于是一个波形发生器。发动机转速信号缓冲调理电路如图2.3所示。发动机转速传感器输出的正弦波信号,经过R1和VD组成的削波电路,再由R2和C2进行RC滤波,输入LM293反相端,最后输出方波。该电路的施密特特性如下,当LM293输出为高电平时,相当于R4和R5并联,然后与R6分压,此时 (2.1)而当LM293输出为低电平时,相当于R4和R6并联,然后与R4分压,此时有 (2.2)这样就产生一个回

15、差电压;UT=UH-UL,使得电路有很强的抗干扰能力,只要输入信号的幅度大于U5H,即可在输出端得到同频率的矩形脉冲信号。即使传感器输出的正弦波不规则,在传输过程中加入了噪声,也不影响最后的输出矩形脉冲信号。图2.2 发动机转速调制电路2.2.3 AT89C51单片机所谓单片机,即把组成微型计算机的各个功能部件,如中央处理器CPU、随机存储器RAM、只读存储器ROM、输入/输出接口电路、定时器/计数器以及串行通信接口等集成在一块芯片中,构成一个完整的微型计算机。单片机的独特结构决定了它具有如下特点: 高集成度、高可靠性 控制功能强 低电压、低功耗 优异的性能价格比AT89C51是一种带4K字节

16、闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位的单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.

17、2.4 SAJ1000CAN总线控制器 PHILIPS公司的PCA82C200是符合CAN2.0A协议的总线控制器,SJA1000是它的替代产品,它是应用于汽车和一般工业环境的独立CAN总线控制器。具有完成CAN通信协议所要求的全部特性。经过简单总线连接的SJA1000可完成CAN总线的物理和数据链路层的所有功能。其硬件与软件设计和PCA82C200的基本CAN模式(BesicCAN)兼容。同时,新增加的增强CAN模式(PeliCAN)还可支持CAN2.0B协议。2.2.5 PCA82C250CAN接收发送器PCA82C250是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力

18、并对CAN控制器提供差动接收能力。如在ISO11898标准中描述的,它们可以用高达1Mbit/s的位速率在两条有差动电压的总线电缆上传输数据。这是全世界使用最广泛的CAN收发器之一。2.3系统软件设计CAN接口通信程序主要包括CAN控制器的初始化、数据接收和数据发送程序。(由于是要将转速信号发送到CAN收发器,故不描述数据接收的部分)主程序通过调用函数来实现数据的接收和发送,流程图如图2.3所示,在数据接收程序中,通过查询方式读取相应消息对象中的数据。 2.3.1单片机读取转速方式在本设计里,外部信号送入单片机的外部中断/INT0引脚,将其设定为边沿触发方式,用T1作定时器对方波信号进行周期测

19、量,经查表得到转速。程序流程图如图2.4所示。发动机启动时,每转过一个轮齿,传感器会产生一个正弦信号,此信号经过处理后接到单片机INT0引脚,在定时器一个规定时间内对信号脉冲进行和计算,从ROM存储器中读取此时对应的转速数值,送至CAN总线控制器等待发送。具体源程序见附录2中的查表程序。对于脉冲信号,在对其进行采集时需要进行整形处理,如转速传感器获取发动机飞轮旋转时轮齿的信号,是正弦交流信号,将其整形为方波信号,利用定时器/计数器模块采集方波的频率来完成速度采集。为提高转速采集的实时性,通常采集脉冲信号的周期(两个脉冲信号上升沿或下降沿之间的时间)来计算其频率,并计算发动机转速,计算公式如下公

20、式(3.1)所示。 (3.1)式(3.1)中fosc为系统时钟周期,k为分频系数,为发动机飞轮齿圈齿数(对于康明斯发动机为为轮齿脉冲两次上升(或下降)沿的计数器值。可根据此公式计算出单片机查表所需的数据,并将其放在存储器。2.3.2 控制器的初始化初始化程序主要是通过对CAN控制器控制段中的寄存器写入控制字,从而确定CAN控制器的工作方式等。有3种方式进入初始化程序:一是上电复位;二是硬件复位;三是软件复位,即运行期间通过给CAN控制器发一个复位请求,置复位请求为1。在复位期间,必须初始化的寄存器有:MR模式寄存器、CDR时分寄存器、ACR接收代码寄存器、AMR屏蔽寄存器、BTR总线定时定时器

21、及OCR输出控制寄存器等。需要注意的是,这些寄存器仅能在复位期间写访问。因此,在对这些寄存器初始化前,必须确保系统进入了复位状态。初始化程序的流程图如图2.5所示。源程序见附录2。2.3.3 信息的发送信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。发送程序只须所被发送的信息帧送到CAN的发送缓冲区,且启动发送命令即可。发送程序可采用查询方式或中断方式。本文中用的是中断方式。对于中断方式,发送程序分为两部分:一是主程序;二是中断服务程序。主程序主要用于控制信息的发送及当发送缓冲区满时,把要发送的信息暂存到临时存储区;中断服务程序负责把临时存储区中的暂存信息发送出去。发送主程序如图

22、2.6所示。源程序见附录2。三、CAN总线的数据传输 CAN总线中,各节点应使用相同的位速率。它的每位时间由同步段、传播段、相位缓冲段1和相位缓冲段2组成。发送器在同步段前改变输出的位数值。接收器在两个相位缓冲段之间采样输入位值。而两个相位缓冲段长度可自由控制,以保证采样的可靠性。除此之外,由于各节点的时钟总有小的差异,CAN总线使用时钟同步技术来保证通信的同步性,并在实际传送中,遇到连续发送的五位相同时,将自动插入一个补码位。3.1 报文CAN总线以报文为单位进行信息传送。报文中包含标识符ID,它也标志了报文的优先权。CAN总线上各个节点都可以主动发送。如同时有两个或更多节点开始发送报文,采

23、用标识符ID来仲裁,发送具有高优先权报文节点赢得总线使用权,而其它节点自动停止发送。在总线再次空闲后,这些节点将自动重发原报文。CAN系统中,一个CAN节点不使用有关系统结构的任何信息(如站地址等)。报文中的标识符ID并不指出报文的目的地址,而是描述数据的含义。网络中的所有节点都可由ID来自动决定是否接收该报文。每个节点都有ID寄存器和屏蔽寄存器,接收到的报文只有与该屏蔽的功能相同时,该节点才开始正式接收报文,否则它将不理睬ID后面的报文。这使CAN系统非常灵活,可任意扩展或改变网络组成。(1)帧、数据帧数据帧用于在各个节点之间传送数据或命令,它由7个不同的位场组成:帧起始、仲裁场、控制场、数

24、据场、CRC场、应答场和帧结束,其表示为帧起始仲裁场控制场数据场CRC场应答场帧结束SOF11位标识符RTRr1r2DLC(4)n8*n位16位2位7位表1 帧起始(SOF) 标志数据帧的开始。它由一个主控位构成。 仲裁场 由11位标识符(ID)和远程发送请求(RTR)组成,其中最高7位不能完全是隐性位。ID决定了报文的优先权。如主插位为0,隐性位为1,则ID的数值越小,优先线越高。对数据帧,RTR为主控电平。 控制场 r1和r0为保留位,应发送主控电平。DLC为数据长度码n,它为08。 数据场 允许的数据字节长度为08,由n决定。 CRC场 采用15位CRC,其生成多项式为X15+X14+X

25、10+X8+X7+X4+X3+1CRC场的最后一位为CRC分隔符,它为隐性电平。 应答场 包括应答位和应答分隔符。发送站发出的这两位均为隐性电平。而正确地接收到有效报文的接收站,在应答位期间应传送主控电平给发送站。应答分隔符应为隐性电平。 帧结束 由7位隐性电平组成。以上为标准格式的数据帧,除此之外,在CAN规范2.0B中,还定义了扩展格式的数据帧,它的标识符扩展为29位。它的前11位标识符后的两位为SRR和IDE,它们均为隐性电平(这使它的优先级低于标准格式的数据帧(在前11们标识符相同时),后面为新增的18位标识符,其余与标准格式相同。、远程帧接收数据的站可发送远程来要求源节点送数据。它由

26、6个位场组成:帧起始、伸裁场、控制场、CRC场、应答场和帧结束。除了没有数据场和仲裁场的RTR位为隐性电平外,远程帧与数据完全相同。它也有标准和扩展两种格式。、出错帧出错帧由错误标志表和错误分隔符组成。接收站在发现总线上的报文出错时,将自动发出“活动错误志”,它为6个连续的主控位。由于各个接收站发现错误的时间可能不同,总线上的实际错误标志可能由612位主控位所组成。在错误标志后为8个隐性位组成的错误分隔符。每个站发送错误标志后,开始发送隐性电平,并监视总线,在检测到出错误条件时,将发送“认可错误标志”,它为6个连续的隐性位。、超载帧超载帧由超载标志和超载分隔符组成。超载帧只能在一个帧的结束开始

27、。在一个接收站要求延迟下一个数据帧或远程帧,或在帧间空间的间歇场的第1、2位检测到主控位及在错误、超载分隔符的最后一位采样到主控位,开始发送超载帧。超载标志由6个主控位组成,而总线上的实际超载标志为67位。超载分隔符为8个隐性位。、帧间空间数据帧和远程帧与前面的任何帧用帧间空间分隔开。它包括歇场和总线空闲场。间歇场由3个隐性位组成。总线空闲场可为任何长度,此时总线处于空闲状态,允许发送站发送新报文。对于已发送“认可错误标志”的站,它在间歇场后还将送出8个隐性位。3.2错误检测手段CAN为了提高干扰能力和数据的可靠性,采用了多种错误检测手段。、发送监视发送站时刻检测它发送的每一位数值,如监视到的

28、总线数值与送出的数值不同时,则为位错误。、填充错误在应用位填充方法进行编码的报文字段中,出现第6个连续相同的位电平。、CRC错误接收站计算得出的CRC序列与接收到的不同。、格式错固定格式的位场的格式与规定不同。、应答错误在应答位期间,发送站未检测到主控位。发现出错误时,接收站将发送活动出错标志,而发送站将发送认可出错标志。3.3 CAN总线的通信协议3.3.1 J1939协议J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表2则给出了J1939年的一

29、个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。表1 CAN2.0的标准和扩展格式及J1939协议所定义的格式。 表2 J1939协议报文单元的具体格式3.3.2 数据传转协议J1939通信中的核心是负责数据传输的传输协议。它的功能分为两部分:数据的拆分打包和重组。一个J1939的报文单元只有8个字节的数据场。因此如果所要发送的数据超过了8字节,就应该分成几个小的数据包分批发送

30、。数据场的第一个字节从1开始作为报文的序号,后7个字节用来存放数据。所以可以发送2557=1785个字节的数据。报文被接收以后按序号重新组合成原来的数据。连接管理。主要对节点之间连接的建立和关闭,数据的传送进行管理。其中定义了5种帧结构:发送请求帧、发送清除帧、结束应答帧、连接失败帧以及用来全局接收的广播帧。节点之间的连接通过一个节点向目的地址发送一个发送请求帧而建立。在接收发送请求帧以后,节点如果有足够的空间来接收数据并且数据有效,则发送一个发送清除帧,开始数据的传送。如果存储空间不够或者数据无效等原因,节点需要拒绝连接,则发送连接失败帧,连接关闭。如果数据接收全部完成。则节点发送一个结束应

31、答帧,连接关闭。3.3.3 J1939的参数格式J1939中还定义了参数的具体格式,如标识符、优先级、数据长度、参数的范围等。参数又划分为状态参数和测量参数。状态参数表示具有多态信号的某一种状态,如发动机刹车使能/禁能、巡航控制激活/关闭,扭矩/速度控制超载模式、错误代码等。而测量参数则表示所接收到的信号的值的具体大小,如缸内爆发压力、最大巡航速度、发动机转速等。 3.3.4 协议的制定从上面的J1939内容看出,其11位标识符决定了CAN总线中报文接发的情况。本设计中采用CAN2.0B标准11位ID。设发动机ECU单元接发器为接点1,到CAN总线的另一边接发器为接点2,如下表所示,将ID0I

32、D10中标识符的高7位ID4ID10定义为地址段,标记CAN总线中不同的通讯站点;标识符的低4位ID0ID3为指令段,标记各站点的不同数据后,后4位用0填补,采用16位制描述数据标识ID10ID9ID8ID7ID6ID5ID4标记简号站点00011110x1E00JD1接点100101000x2800JD2接点2CAN总线上传输的报文以各种形式的帧组成,对于接点1和接点2之间传输的数据帧,参照前面CAN介绍中报文有关数据帧的格式,假定接点1中发送的数据帧结构如下:报文发送到CAN总线上,任何接点都可以接收到,但只有仲裁场标识符为0x2800的接点才能接收并解读这帧信息。这样就完成数据从接点1到

33、接点2的传送。四、结论1、基于CAN总线的发动机转速传感器具有测量准确度高、实用性和抗干扰性强、工作可靠等优点,适合在汽车运动环境中使用,且易于与其它测控节点组成网络,实现传感器数据的网络化传输。2、CAN总线具有以下优点: 组网自由,扩展性强; 自动错误界定,简化了电控单元对通信的操作; 可根据数据内容确定优先权,解决通信的实时性问题。3、使用CAN控制器或带有CAN控制器的单片微机实现多接点通信,与使用异步串行通信口(UART)和软件来实现多接点通信相比,具有以下优点:(1)可实现全分布式多接点系统无主、从接点之分,各节点均可主动发送报文;(2)不需软件干预,可自动完成一帧报文的发送,并有

34、总线仲裁和重发功能;(3)具有强有力的错误检测功能,能自动完成出错处理和应答处理;(4)不需软件干预,可自动完成报文滤波功能,仅在符合时才进行报文接收,并能在一帧报文接收完成唤醒CPU进行处理;(5)通信速率可高至1Mbps,大部分通信处理由硬件完成,减轻CPU的负载、减少成本的开支,大大加快通信速度;(6)本身带总线接口电路可直接与CAN总线接口,省去RS-485等电平接口电路,降低系统成本4、本设计只针对发动机中某一信号(如转速)的传送过程进行设计与测试,电路框图相对简单,但其具有重要的参考价值。当需要同时测试发动机多个状态信号时,在本设计基础上适当添加ECU处理单元,其传输的报文格式和协

35、议是一样的。由于CAN的MAC层协议采用的是CSMA/CA协议,它的时态特性是不确定的。即使是具有最高优先权的信息也可能会产生小的延迟;信息的优先权越低,介质访问所产生的延时抖动就越高。因此,在一些对网络延时特别敏感的NCS系统中,标准CAN协议并不是很适合的传输网络。时间触发的TTCAN在时间确定性和柔性操作方面都有很大的提高。采用TTCAN作为通信主干可以减少延时抖动;保证总线上的确定性通信;更加有效地利用网络带宽。根据TTCAN提供的服务质量QoS,下一步对NCS的研究工作将集中在设计出满足性能质量QoP要求的高级控制器。五、课程设计心得体会两周的汽车电子课程设计结束了,作为一名应用电子

36、技术大三的学生,我觉得能做这样的课程设计是十分有意义。在已度过的两年半大学生活里我们大多数接触的是专业基础课。我们在课堂上掌握的仅仅是专业基础课的理论面,如何去面对现实中的各种电子设计?如何把我们所学到的专业基础理论知识用到实践中去呢?我想做类似的大作业就为我们提供了良好的实践平台。在做本次课程设计的过程中,我感触最深的当属查阅了很多次设计书和指导书。为了让自己的设计更加完善,一次次翻阅相关书籍是十分必要的,同时也是必不可少的。我们做的是课程设计,而不是艺术家的设计。艺术家可以抛开实际,尽情在幻想的世界里翱翔,我们是学生,一切都要有据可依.有理可寻,不切实际的构想永远只能是构想,永远无法升级为

37、设计。另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,这也是我作本次课程设计的第二大收获。整个设计我基本上还满意,由于水平有限,难免会有错误,还望老师批评指正。六、附录附录1 各IC资料1、 AT89C51单片机引脚功能:VCC:供电电压GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上

38、拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八

39、位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚备选功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时

40、器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有

41、在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路

42、的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2、SJA1000CAN控制器引脚功能:AD7AD0:地址数据复用线。ALE/AS:ALE输入信号(Intel模式)或AS输入信号(Motorola模式)。CS:片选信号,低电平允许访问SJA1000。RD/E:来自微控制器的RD信号(Intel模式)或E使能信号(Mo

43、torola模式)。WR:来自微控制器的WR信号(Intel模式)或RD/WR使能信号(Motorola模式)。CLKOUT:SJA1000产生用于微控制器的时钟输出信号;时钟信号由内置晶体振荡器通过可编程除法器产生;时钟除法寄存器中的时钟停止位能使该引脚无效。VDD1和VSS1:逻辑电路5V电源和逻辑电路地。XTAL:晶体振荡器放大器输入,外部晶体振荡器信号由该脚输入。XTAL2:晶体振荡器放大器输出,当使用外部晶体振荡器信号时,该输出引脚必须开路。VDD3和VSS3:输出驱动5V电源和输出驱动地。TX0和TX1:CAN输出驱动器0和1输出到物理总线。INT:中断输出,用于触发微控制器中断;

44、内部中断寄存器的任何位置位,INT将低电平输出;INT为开环输出;该引脚为低电平将电路从睡眠状态激活。RST:复位输入,用于复位CAN接口(低电平有效)。VDD2和VSS2:输入比较器5V电源和输入比较器地。RX0和RX1:从物理CAN总线输入到SJA1000的输入比较器。3、PCA82C250CAN接收发送器功能框图附录图3 PCA82C250功能框附录2 具体程序查表程序:从发动机转速信号缓冲调理电路传来的矩形脉冲信号,直接接在80C51单片机的外部中断INT0上。设用定时器T1模式2对转速信号进行采集。对于一般发动机的齿轮数为173齿。TI的计数初值:X=TL1的初值为53H,重装初值寄

45、存器TH1的初值也为53H程序清单如下:MAIN:Mov TMOD, #60H ;置T1为模式2计数方式工作 Mov TL1, #53H ;赋初值 Mov TH1,#53H Mov IE, #88H ;定时器T1开中断 SETB TR1 ;启动定时器 Mov R0,#00H ;设置中断脉冲计数器 Mov R1,#FFH ;设置计数时间HERE:SJMP HERE ORG 00BH;T1 ;T1中断入口 INC R0 DJNZ R1,HERE ;计数时间未结束,继续计数转速脉冲根据脉冲的个数,从表中可查出此时对应的转速,查表程序如下: Mov DPTR, #TAB ;查表首地址值送DPTR Mo

46、v A, R0 ;查表参数送累加器A CLR C MOVC A,A+DPTR ;查表获取转速 Mov P0,A ;送转速信息至CAN控制器 RETTAB:DB ;转速数据表格SJA1000初始化子程序:CANINI: MOV DPTR,#MODE ;读入方式寄存器单元 MOV A,#09H ;赋值累加器A MOVX DPTR,A ;进入复位模式,对SJA1000进行初始化 MOV DPTR,#CDR ;读入时钟分频寄存器 MOV A,#88H ;赋模式值给A MOVX DPTR,A ;选择PeliCAN模式,关闭时钟输出(CLKOUT) MOV DPTR,#IER ;读入中断允许寄存器 MOV

47、 A,#0DH MOVX DPTR,A ;开放控制器发送中断、超载中断和错误警告中断 MOV DPTR,#AMR ;读入接收屏蔽寄存器 MOV R6,#4 ;接收屏蔽寄存器为4位 MOV R0,#DAM ;接收屏蔽寄存器内容在片内RAM中的首地址AMR: MOV A,R0 ;读接收屏蔽寄存器首地址 MOVX DPTR,A ;接收屏蔽寄存器赋初值 INC DPTR DJNZ R6,AMR ;赋值未完成,继续赋值操作 MOV DPTR,#ACR ;读入接收代码寄存器 MOV R6,#4 ;赋值位数 MOV R0,#DACR 接收代码寄存器内容在片内RAM中的首址ACR: MOV A,R0 ;读入接

48、收代码寄存器首址 MOVX DPTR,A ;给接收代码寄存器赋初值 INC DPTR DJNZ R6,ACR ;是否赋值完,否则继续赋值 MOV DPTR,#BTR0 ;读入总线定时寄存器0 MOV A,#03H ;总线定时寄存器赋值 MOVX DPTR,A MOV DPTR,#BTR1 ;读入总线定时寄存器1 MOV A,#0FFH ;16MHz晶振情况下,设置波特率为80kbps MOVX DPTR,A MOV DPTR,#OCR ;读输出控制寄存器 MOV A,#0AAH MOVX DPTR,A MOV DPTR,#RBSA ;读接收缓存器起始地址寄存器 MOV A,#0 ;设置接收缓存

49、器FIFO起始地址为0 MOVX DPTR,A MOV DPTR,#TXERR ;发送错误计数器寄存器 MOV A,#0 ;清除发送错误计数寄存器 MOVX DPTR,A MOV DPTR,#ECC ;读错误代码捕捉寄存器 MOVX A,DPTR ;清除错误代码捕捉寄存器 MOV DPTR,#MODE ;读方式寄存器 MOV A,#08H ;设置单滤波接收方式,并返回工作状态 MOV DPTR,A RET发送子程序TDATA: MOV DPTR,#SR ;读状态寄存器 MOVX A,DPTR ;从SJA1000读入状态寄存器值 JB ACC.4,TDATA ;判断是否正在接收,正在接收则等待T

50、S0: MOVX A,DPTR JNB ACC.3,TS0 ;判断上次发送是否完成,未完成则等待发送完成TS1: MOVX A,DPTR JNB ACC.2,TS1 ;判断发送缓冲区是否锁定,锁定则等待TS2: MOV DPTR,#CANTXB ;读SJA1000发送缓存区首地址 MOV A,#88H ;发送数据长度为8个字节的扩展帧格式报文 MOVX DPTR,A INC DPTR MOV A,#ID0 ;4个字节的标识符(ID0ID3),依据实际情况赋值 MOVX DPTR,A INC DPTR MOV A,#ID1 MOVX DPTR,A INC DPTR MOV A,#ID2 MOVX

51、 DPTR,A INC DPTR MOV A,#ID3 MOVX DPTR,A MOV R0,#TRDATA ;CPU发送数据区首址,数据内容由用户定义MTBF: MOV A,R0 INC DPTR MOVX DPTR,A INC R0 CJNE R0,#TRDATA+8,MTBF ;向发送缓冲区写8个字节 MOV DPTR,#CMR ;命令寄存器地址 MOV A,#01H MOVX DPTR,A ;启动SJA1000发送数据报文 RETSJA1000查询方式接收子程序SEARCH: MOV DPTR,#SR ;读状态寄存器地址 MOVX A,DPTR ANL A,#0C3H ;读取总线脱离、

52、错误状态、接收溢出、有数据等位 JNZ PROC RET ;无上述状态,结束PROC: JNB ACC.7,PROCIBUSERR: MOV DPTR,#IR ;IR中断寄存器,出现总线脱离 MOVX A,DPTR ;读中断寄存器,清除中断位 MOV DPTR,#MODE ;读方式寄存器地址 MOV A,#08H MOVX DPTR,A ;将方式寄存器复位,请求位清0 LCALL ALARM ;调用报警子程序 RET NOPPROCI: MOV DPTR,#IR ;总线正常 MOVX A,DPTR ;读取中断位 JNB ACC.3,OTHEROVER: MOV DPTR,#CMR ;数据溢出中

53、断置位 MOV A,#0CH MOVX DPTR,A ;在命令寄存器中清除数据溢出和释放接收缓冲区 RET NOPOTHER: JB ACC.0,RECE ;IR.0=1,接收FIFO未满或接收中断使能 LJMP RECOUT ;IR.0=0,接收缓冲区无数据,退出接收 NOP RECE: MOV DPTR,#CANRXB ;接收缓冲区首地址(16),准备读取数据 MOVX A,DPTR ;首字节是接收帧格式字 JNB ACC.6,RDATA ;RTR=1是远程请求帧,无数据 MOV DPTR,#CMR MOV A,#04H ;CMR.2=1释放接收缓冲区 MOVX DPTR,A ;只有接收了数据才能释放接收缓冲区 LCALL TDATA ;发送对方请求的数据 LJMP RECOUT ;退出接收 NOPRDATA: MOV DPTR,#CANRXB ;读取并保存接收缓冲区的数据 MOV R1,#CPURBF ;CPU片内接收缓冲区首址 MOVX A,DPTR ;读取CAN缓冲区的2个字节 MOV R1,A ;保存 ANL A,#0FH ;截取低4位是数据长度(08) ADD A,#4 ;加4个字节的标识符(ID) MOV R6,ARDATA: INC DPTR

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!