基于CAN总线的电动汽车蓄电池管理系统设计设计.doc_第1页
基于CAN总线的电动汽车蓄电池管理系统设计设计.doc_第2页
基于CAN总线的电动汽车蓄电池管理系统设计设计.doc_第3页
基于CAN总线的电动汽车蓄电池管理系统设计设计.doc_第4页
基于CAN总线的电动汽车蓄电池管理系统设计设计.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计(论文)I基于基于 CAN 总线的电动汽车蓄电池管理系统设计设计总线的电动汽车蓄电池管理系统设计设计摘 要电动汽车已成为未来汽车技术发展的趋势,有效合理的电池管理系统能够最优的利用有限的电池能量,最大化的延长电池生命周期。因此,动力蓄电池管理系统成为电动车技术重要课题之一。本次要求设计基于 CAN 总线的电动汽车蓄电池能量管理系统,以 AT89C52 单片机为核心,采用多通道温度采集电路和电压采集电路组成。通讯部分包括 CAN通讯和串口通讯,CAN 通讯与车内其他控制器通讯。温度采集电路有电阻R3、R4、R5 和热敏电阻 RT 组成全桥,由运放 A1 提供桥路一个恒压,根据所测温度的起始点,选择桥路各臂电阻;所测温度值有运放 A2 组成差动放大电路输出;电压采集电路的信号是电池组两端的相对电压。为了保证高压动力蓄电池电组的电压不影响测量系统的工作,利用光电耦合器件进行隔离,因此构成了悬浮采样系统;CAN 通讯接口电路由 C8051F040 单片机内部嵌入满足 CAN2.0B 规范的 CAN控制器,不必扩展 CAN 控制器。82C250 是 CAN 总线收发器,它是 CAN 控制器与总线之间的接口器件,实现对总线的差动发送和差动接收,6N173 为高速隔离器件,用于保护总线控制器,从而实现实时检测电池运行状态,对电池组电压、温度等动态测量。在此的基础上,判断电池运行状态及运行性能,完成系统的软硬件设计。关键词关键词:CAN 总线;蓄电池;在线监测;单片机 本科生毕业设计(论文)II本科生毕业设计(论文)IIIAbstractElectric vehicles have become the trend of future automotive technology, effective and reasonable battery management system can best use the limited battery power, maximize battery life cycle. Therefore, the power battery technology for electric vehicle management system has become an important issue.The subject of the request design is based on CAN bus automotive battery energy management system to AT89C52 microcontroller core, with the current acquisition circuit, multi-channel temperature acquisition circuitry and voltage acquisition circuit. Communication part, including CAN communications and serial communications, CAN communication with other controllers vehicle communications. Temperature measurement circuit resistors R3, R4, R5, and the composition of the thermistor RT full-bridge, bridge from the operational amplifier A1 provides a constant pressure, according to the measured temperature of the starting point, select the arm resistance bridge; the measured temperature values A2 op amp differential amplifier circuit composed of the output; voltage acquisition circuit signal is relatively voltage across the battery. To ensure the high-voltage electric power battery voltage does not affect the groups work measurement system using optical coupling device isolation, and therefore constitutes suspension sampling system; CAN communication interface circuit by the C8051F040 microcontroller embedded within the norms of the CAN controller to meet CAN2.0B without extended CAN controller. 82C250 CAN bus transceiver is that it is between CAN controller and bus interface device to realize the transmission and differential bus and differential receive, 6N173 for the high-speed isolation device, used to protect the bus controller. In order to achieve real-time detection of the battery running on battery voltage, temperature, dynamic measurement. In this basis, determine the battery operation status and operation performance. Completion of system design.Key words: CAN bus;Batteries; On-line monitoring; Single chip microcomputer 本科生毕业设计(论文)IV目 录第 1 章 绪 论.11.1 设计目的及意义.11.2 主要内容及研究方法.1第 2 章 CAN 总线原理.32.1 CAN 总线.32.1.1 CAN 的性能特点.32.1.2 CAN 技术规范.42.2 CAN 通信控制器 SJA1000.92.2.1 BasicCAN 功能说明.9第 3 章 总体设计方案.123.1 系统功能描述.123.2 设计方案.123.3 设计要点.133.4 芯片的选择.14第 4 章 系统硬件设计.174.1 单片机电路设计.174.2 CAN 控制器电路设计.214.2.1 SJA1000 介绍 .214.2.2 SJA1000 管脚说明 .224.2.3 SJA1000 与单片机连接电路 .234.2.4 PCA82C250 收发器与 SJA1000 连接电路.244.3 LED 显示电路.244.4 看门狗监控电路.254.5 硬件抗干扰设计.26第 5 章 系统软件设计.285.1 主程序流程图.285.2 CAN 控制器初始化程序.295.3 CAN 发送报文程序.305.4 中断程序.32本科生毕业设计(论文)V5.5 CAN 接收报文程序.32第 6 章 结 论.34参考文献.35致 谢.37附 录.38附 录.48附 录.49附 录.52 本科生毕业设计(论文)1第 1 章 绪 论1.1 设计目的及意义目的:进行该研究的目的是利用现场总线中的 CAN 总线技术,设计一种通用的基于 CAN 总线的电动汽车蓄电池管理系统,通过对各组电池进行监测、诊断和维护,最大限度的提高蓄电池的寿命。意义:计算机技术、通讯技术和大规模集成电路技术的飞速发展,促进了电子控制技术在汽车上的应用。为了解决汽车中众多控制器与测量仪器间的互联数据通讯,德国 BOSCH 公司开发了一种通用串行数据通讯协议CAN 总线,又称控制器局域网。CAN 总线是一种有效支持分布式控制或实时控制的串行通讯网络,它采用多主方式,网络上任意接点都可以主动向其他接点发送消息。电动汽车相对与传统的内燃机汽车,应用了更多的控制器。现代社会能源危机和生态环境的日益恶化,使人们认识到必须利用可再生的绿色能源代替传统的一次性能源。能源消耗在汽车中的比例占主要工业国家能源消耗的 24%。因电池在充电和使用过程中无污染,应用在汽车上可实现零排放,有助于解决汽车造成的环境污染,并且可对电池反复多次充电,因此,纯电动汽车和混合动力汽车成为世界各国研究的重点。电动汽车技术发展不断成熟,但还存在一些关键的技术需要解决,例如,蓄电池的管理技术、电机控制技术、电子控制技术等。此次设计的蓄电池管理系统能实时的监测蓄电池组在充放电过程中各组电池的电压和温度,避免过放电,同时对各组电池进行定期自动监测、诊断和维护,最大限度的提高蓄电池的寿命,通过 CAN 总线与其它控制器通讯。1.2 主要内容及研究方法这次设计的电动汽车蓄电池组的标称电压是 312 伏,由 156 个标称 2.0 伏的单体电压组成。为了更好的控制各个单体电池的均衡性,应该采集每个单体电池的电压和温度,但这样会增加采集电路的成本,也不易于硬件设计。由于软件每查询一次电压和温度,均需要等待很长的时间,降低了系统的实时性。因此,将156 个单体分成 2 组,采集每组蓄电池组的电压和温度。然后经单片机C8051F040 处理之后传送到 CAN 总线,然后经 CAN 总线送到单片机 AT89C52 进行显示控制等处理。一方面在实际应用中蓄电池的温度和电压是分组测试的,如果本科生毕业设计(论文)2用同一个单片机进行数据处理和控制的话,就不能实时监测电池的工作温度和电压,降低了实用性;另一方面在实际生活中对蓄电池的监测是多方面的,所以采用两个单片机。在本设计中只涉及监测蓄电池的电压和温度,但也采用了实际应用中的监测方法,所以单片机的引脚有些空置。本科生毕业设计(论文)3第 2 章 CAN 总线原理2.1 CAN 总线2.1.1 CAN 的性能特点CAN 总线即控制器局域网络(Controller Area Network) 。由于其高性能、高可靠性、及独特的设计,CAN 越来越受到人们的重视。其应用范围目前已不再局限于汽车行业,而向过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN 已经形成国际标准,并己被公认为几种最有前途的现场总线之一。CAN 属于总线式串行通信网络,由于其采用了许多新技术及独特的设计,与一般的通信总线相比,CAN 总线的数据通信具有突出的可靠性、实时性和灵活性。其特点可概括为:1CAN 为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其它节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一特点可方便地构成多机备份系统。2CAN 网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在 134us 内得到传输。3CAN 采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况。4CAN 只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度” 。5CAN 的直接通信距离最远可达 10Km(速率 5Kbps 以下) ;通信速率最高可达 1 Mbps(此时通信距离最长为 40m) 。6CAN 上的节点数主要取决于总线驱动电路,目前可达 110 个;报文标识符可达2032 种(CAN2.0A) 。7采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。8CAN 每帧信息都有 CRC 校验及其它检错措施,保证了数据出错率极低。9CAN 的通信介质可为双绞线、同轴电缆或光纤,选择灵活。本科生毕业设计(论文)410CAN 节点在错误严重的情况下具有自动关闭输出功能,以使总线上其它节点的操作不受影响。2.1.2 CAN 技术规范1CAN 节点的分层结构为使设计透明和执行灵活,遵循 ISO/OSI 标准模型,CAN 分为数据链路层(包括逻辑链路控制子层 LLC 和媒体访问控制子层 MAC)和物理层,而在 CAN 技术规范 2.0A 的版本中,数据链路层的 LLC 和 MAC 子层的服务和功能被描述为“目标层”和“传送层” 。 LLC 子层的主要功能是:为数据传送和远程数据请求提供服务,确认由 LLC子层接收的报文实际已被接收,并为恢复管理和通知超载提供信息。在定义目标处理时,存在许多灵活性。MAC 子层的功能主要是传送规则,亦即控制帧结构、执行仲裁、错误检测、出错标定和故障界定。MAC 子层也要确定,为开始一次新的发送,总线是否开放或者是否马上开始接收。位定时特性也是 MAC 子层的一部分。MAC 子层特性不存在修改的灵活性。2报文传送及其帧结构在进行数据传送时,发出报文的单元称为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器。如果一个单元不是报文发送器,并且总线不处于空闲状态,则该单元为接收器。对于报文发送器和接收器,报文的实际有效时刻是不同的。对于发送器而言,如果直到帧结束末尾一直未出错,则对于发送器报文有效。如果报文受损,将允许按照优先权顺序自动重发送。为了能同其它报文进行总线访问竞争,总线一旦空闲,重发送立即开始。对于接收器而言,如果直到帧结束的最后一位一直未出错,则对于接收器报文有效。 构成一帧的帧起始、仲裁场、控制场、数据场和 CRC 序列均借助位填充规则进行编码。当发送器在发送的位流中检测到 5 位连续的相同数值时,将自动地在实际发送的位流中插入一个补码位。数据帧和远程帧的其余位场采用固定格式,不进行填充。出错帧和超载帧同样是固定格式,也不进行位填充。报文中的位流按照非归零(NRZ)码方法编码,这意味着一个完整位的位电平要么是“0” ,要么“l” 。报文传送由 4 种不同类型的帧表示和控制:数据帧携带数据由发送器至接收器;远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;出错帧由检测出总线错误的任何单元发送;超载帧用于提供当前的和后续的数据帧的附加时间延迟。(1)数据帧数据帧由 7 个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC本科生毕业设计(论文)5场、ACK 场和帧结束。CAN2.0A 数据帧的组成如图 2.1 所示。 帧起始(SOF)标志数据帧和远程帧的起始,它仅由一个“1”位构成。只有在总线处于空闲状态时,才允许节点开始发送。所有节点都必须同步于首先开始发送的那个节点的帧起始前沿。仲裁场由标识符和远程发送请求位(RTR)组成。仲裁场如图 2.2 所示。 标识符:标识符的长度为 11 位,这些位以从高位到低位的顺序发送,最低位为 ID.0,其中最高 7 位(ID.10ID.4)不能全为“1” 。RTR 位为“0”代表是数据帧,为“1”代表远程帧。为“0”还是为“1”是由用户填写的。控制场由 6 位组成,如图 2.3 所示。 由图 2.3 可见,控制场包括数据长度码和两个保留位,这两个保留位必须发送“0” 。帧间空间仲裁场控制场标识符RTR 位帧起始控制场仲裁场数据场或 CRC 场R1R0DLC3DLC2DLC1DLC0保留位数据长度码帧间空间数据帧帧间空间帧起始仲裁场控制场数据场CRC 场ACK 场帧结束或帧超载图 2.1 数据帧组成图 2.2 仲裁场组成图 2.3 控制场组成本科生毕业设计(论文)6数据长度码数据字节数目DLC3DLC2DLC1DLC0012345678000000001000011110001100110010101010数据场由数据帧中被发送的数据组成,它可包括 08 个字节,每个字节 8 位。首先发送的是最高有效位。CRC 场包括 CRC 序列,后随 CRC 界定符。CRC 场结构如图 2.4 所示。为实现 CRC计算,被除的多项式系数由包括帧起始、仲裁场、控制场、数据场在内的位给出,其 15 个最低位的系数为 0。此多项式被发生器产生的多项式除(系数为模 2 运算),该多项式除法的余数即为发向总线的 CRC 序列。CRC 界定符必须为“1” 。应答场(ACK)为两位,包括应答间隙和应答界定符,如图 2.5 所示。CRC 场ACK 场CRC 序列CRC 界定符图 2.4 CRC 场结构CRC 场ACK 场帧结束ACK 间隙ACK 界定符图 2.5 应答场组成表 2.1 数据长度码中数据字节数目本科生毕业设计(论文)7在应答场中,发送器送出“1 1” ,即发送时 ACK 间隙是“1”位,且 ACK 界定符也是“1”位。一个正确地接收到有效报文的节点,在 ACK 间隙期间,将正确接收的信息通过填写一个“0”位而覆盖了 ACK 间隙的“1”位来报告给发送节点。同理,所有正确地接收到有效报文的节点,通过在应答间隙内把“0”位写入应答场的 ACK 间隙的“1”位来报告。ACK 界定符是应答场的第二位,并且必须是“1” ,因此,ACK 间隙被两个“1” (CRC 界定符和 ACK 界定符)包围。应答场的位填充由硬件自动确定。帧结束:每个数据帧和远程帧均由“1111111”组成的标志序列界定。这也由硬件来自动填充。(2)远程帧需要获得数据的节点可以借助于传送一个远程帧来请求对应的节点发送数据给它。远程帧由 6 个不同分位场组成:帧起始、仲裁场、控制场、CRC 场、应答场和帧结束。同数据帧相比较,不同的是:远程帧的 RTR 位是“1” (这须由用户用程序填充) ;远程帧不存在数据场。DLC 的数据值是独立的,它可以是 08 中的任何数值。远程帧的组成如图 2.6 所示。 (3)出错帧出错帧由两个不同场组成,第一个场由来自各站的错误标志叠加得到,后随的第二个场是出错界定符。出错帧的组成如图 2.7 所示。 数据帧出错帧错误标志帧间空间或超载帧错误叠加标志错误界定符图 2.7 出错帧组成帧间空间远程帧帧间空间或超载帧帧起始仲裁场控制场CRC 场ACK 场帧结束 图 2.6 远程帧组成本科生毕业设计(论文)8错误标志具有两种形式,一种是活动错误标志(active error flag) ,一种是认可错误标志(Passive error flag) ,活动错误标志由“000000”组成,而认可错误标志由“111111”组成。一个检测到出错条件的“错误激活”节点通过发送一个活动错误标志进行标注。同理,其它节点若同样也检测到出错条件,则也发送出错标志。这样,在总线上被监视到的“0”序列是由各个站单独发送的出错标志叠加而成的。该序列的总长度在最小值 6 和最大值 12 位之间变化。一个检测到出错条件的“错误认可”站发送一个认可错误标志进行标注。该错误认可站以发送出认可错误标志为起点,当检测到总线上有 6 个相同的连续位后,认可错误标志即告完成。出错界定符包括“11111111。错误标志发送后,每个站都送出“1” ,并监视总线,直到检测到“1” 。此后开始发送剩余的“1111111” 。以上错误帧的位填充由节点硬件自动控制。(4)超载帧超载帧包括两个位场:超载标志和超载界定符,如图 2.8 所示。(5)帧间空间数据帧和远程帧同前面的帧相同,不管是何种帧(数据帧、远程帧、出错帧或超载帧)均被称为帧间空间的位场分开。帧间空间包括间歇场和总线空闲场,对于“错误认可”节点还有暂停发送场。对于非“错误认可”的接收器,其帧间空间如图 2.9 所示;对于“错误认可”节点,其帧间空间如图 2.10 所示。 帧间空间总线空间帧帧间歇场帧结束或超载界定符错误界定符超载帧超载错误帧间空间或超载帧超载界定符超载叠加标志图 2.8 超载帧组成图 2.9 非“错误认可”帧间空间本科生毕业设计(论文)9 间歇场由“111”组成。间歇期间,不允许启动发送数据帧或远程帧。总线空闲周期可为任意长度。此时,总线是开放的,因此任何需要发送的站均可访问总线。暂停发送场是指:“错误认可”节点发完一个报文后,在开始下一次报文发送或总线空闲之前,它紧随间歇场后送出“11111111” 。如果其间由其它站引起一次发送,则本节点将变为报文接收器。2.2 CAN 通信控制器 SJA1000CAN 的通信协议主要由 CAN 控制器完成。CAN 控制器主要由实现 CAN 总线协议部分和微控制器接口部分组成。不同型号的 CAN 总线通信控制器,实现 CAN 协议部分电路的结构和功能大都相同,而与微控制器接口部分的结构及方式存在一些差异。2.2.1 BasicCAN 功能说明1地址分配SJA1000 的地址域由控制段和报文缓冲器组成。在 SJA1000 被初始化时,控制段可被设置通信参数,CAN 总线上的通信可通过此段由 CPU 控制。被发送的报文必须被写入发送节点的发送缓冲器,接收节点成功接收后,微控制器可从接收节点的接收缓冲器读取报文,然后释放它,准备下次用。注:(1)寄存器在高端 CAN 地址区被重复(8 位 CPU 地址的最高位是不参与解码的;CAN 地址 32 是和 CAN 地址 0 连续的)(2)测试寄存器只用于产品测试。正常操作中使用这个寄存器会导致设备不可意料的结果。(3)许多位在复位模式中是只写的(CAN 模式和 CBP)2控制寄存器(CR):CAN 地址 0控制寄存器的内容是用于改变 CAN 控制器的行为的。这些位可以被微控制器帧间空间间歇场暂停发送场总线空间帧帧图 2.10 “错误认可”帧间空间本科生毕业设计(论文)10设置或复位,用户可以对控制寄存器进行读/写操作。3命令寄存器(CMR):CAN 地址 1命令位初始化 SJA1000 传输层动作。命令寄存器对微控制器来说是只写存储器,用户可以对之进行操作。如果去读这个地址,返回值是11111111 。4状态寄存器(SR):CAN 地址 2状态寄存器内容反映了 SJA1000 的状态。状态寄存器对用户来说是只读存储器。5中断寄存器(IR):CAN 地址 3中断寄存器允许中断源的识别。当寄存器的一位或多位被置位时,INT(低电平有效)引脚就被激活了。寄存器在被控制器读过之后,所有会导致 INT 引脚上的电平漂移的位被复位。中断寄存器对用户来说是只读存储器。6识别码(ID)识别码有 11 位(ID.0ID.10) 。ID.10 是最高位,在仲裁过程中是最先被发送到总线上。识别码就像信息的名字。它在接收器的接收过滤器中被用到,也在仲裁过程中决定总线访问的优先级。识别码的值越低,其优先级越高。该识别码由用户填写。7远程发送请求(RTR)如果此位是“1” ,总线将以远程结构发送数据,这意味着此段中没有数据字节。尽管如此,也需要同识别码相同的数据结构来识别正确的数据长度。如果 RTR 位没有被置位,数据将以数据长度码规定的长度来传送。8数据长度码(DLC)信息数据区的字节数根据数据长度码编制。在远程结构传送中,因为 RTR 被置位数据长度码是不被考虑的。这就迫使发送、接收数据字节数为 0。总之,数据长度码必须正确设置以避免两个 CAN 控制器用同样的识别机制启动远程结构传送而发生总线错误。数据字节数是 08,是以如下方法计算的:数据字节数=8DLC. 3+4DLC. 2+2DLC.1+DLC. 0为了保持兼容性,数据长度码不超过 8,如果选择的值超过 8,则按照 DLC规定认为是 8。它的各位由用户填写。9数据区传送的数据字节数由数据长度码决定。发送的第一位是地址 12 单元的数据字节的最高位。由用户填写所要发送的数据。10接收缓冲器接收缓冲器的全部列表和发送缓冲器类似。接收缓冲器是 RXFIFO 中可访问的部分,位于 CAN 地址的 2029 之间。本科生毕业设计(论文)11识别码、远程发送请求位和数据长度码同发送缓冲器的相同,只不过是在地址 2029。RXFIFO 共有 64 字节的信息空间。在任何情况下,FIFO 中可以存储的信息数取决于各条信息的长度。如果 RXFIFO 中没有足够的空间来存储新的信息,CAN 控制器会产生数据溢出。数据溢出发生时,己部分写入 RXFIFO 的当前信息将被删除。这种情况将通过状态位或数据溢出中断反应到微控制器。接收缓冲器的内容是本节点有效接收的数据。11接收过滤器在接收过滤器的帮助下,CAN 控制器能够允许 RXFIFO 只接收同识别码和接受过滤器中预设值相一致的信息。接收过滤器通过接收代码寄存器和接收屏蔽寄存器来定义。该接收过滤器由用户填写。12接收代码寄存器(ACR) CAN 地址 4复位请求位被置高(当前)时,这个寄存器是可以访问的。如果一条信息通过了接收过滤器的测试而且接收缓冲器有空间,那么描述符和数据将被分别顺次写入 RXFIFO。当信息被正确的接收完毕,就会:收状态位置高(满)收中断使能位置高(使能)接收中断置高(产生中断) 。接收代码位(AC.7AC.0)和信息识别码的高 8 位(ID.10ID.0)相等,且与接收屏蔽位(AM.7AM.0)的相应位相等或为 1。即如果满足以下方程的描述,则被接收:ID.10ID.3=AC.7AC.0AM.7AM.01111111113接收屏蔽寄存器(AMR) CAN 地址 5如果复位请求位置高(当前) ,这个寄存器可以被访问(读/写) 。验收屏蔽寄存器定义验收代码寄存器的哪些位对接收过滤器是“相关的”或“无关的” 。本科生毕业设计(论文)12第 3 章 总体设计方案3.1 系统功能描述在汽车中,有很多信号的采集。这些信号需要共享,而不仅仅是用于某一个控制单元。使用 CAN 总线就可以很简单的将这些信号采集单元组成网络,从而共享数据。CAN 总线系统中所有的信号传输都通过总线传输。电动汽车已成为未来汽车技术发展的趋势,有效合理的电池管理系统能够最优的利用有限的电池能量,最大化的延长电池生命周期。因此,动力蓄电池管理系统成为电动车技术重要课题之一。本次设计以单片机为核心,设计了一种高精度、低价格的电池管理系统,实现了对电动汽车多组蓄电池组的温度和电压的实时监测。应用 CAN 总线与动力总成控制器通讯,性能可靠,开放性强,抗电磁干扰能力强,特别适用于复杂的车辆环境监测。本系统就是要用 CAN 总线技术来实现。纯电动汽车以车载动力蓄电池为电源,而蓄电池是一种化学反应装置,内部的化学反应一般不易觉察,日常使用中的缺陷不会立即反应出来。为了延长蓄电池的寿命,必须避免过充电或过放电,并且能显示电监测各单体蓄电池的工作电压和温度,降低蓄电池组各单体蓄电池的不均衡性,并且能通过 CAN 总线与车用动力总控制器通讯,将蓄电池组的温度、电压等参数实时传给动力总控制器。传感器采集蓄电池的电压和温度,并进行处理后通过 CAN 总线将采集来的数据发送到汽车的其它控制单元中,而且可以接收 CAN 总线中其它节点或控制单元的数据。要求系统的软硬件能够协同工作实现功能。3.2 设计方案系统工作过程是:单元中的单片机 C8051F040 把来自信号采集电路采集的信号采集进来,对其进行处理后,发向 CAN 控制器的发送缓冲区,然后启动 CAN 控制器的发送命令,此时 CAN 控制器将自动向总线发送数据。CAN 控制器通过信息帧中的标识符来进行仲裁,标识符数值最小的 CAN 控制器具有对总线的优先使用权。CAN 控制器检测到总线上有数据时会自动接收总线上的所需数据,存入其接收缓冲区,并向单片机 AT89C52 发送接收中断,启动单片机的接收服务程序,单片机通过执行接收服务程序从 CAN 控制器的接收缓冲区读取数据,然后进行显示本科生毕业设计(论文)13控制等。系统结构框图如图 3.1 所示。温度传感器电压隔离采样电路单片机C8051F040信号放大放大电压变换CAN 收发器CAN BUSCAN 收发器光电隔离CAN 控制器单 片 机AT89C52LED 显示键盘图 3,.1 系统结构框图3.3 设计要点(1)在设计微处理器与 SJA1000 的接口电路时,首先要根据微处理器选择SJA1000 的接口模式。其次要注意 SJA1000 的片选地址应与其它的外部寄存器无冲突,还应注意 SJA1000 的复位电路应为低电平有效。(2)微处理器对 SJAI000 的控制访问,是以外部寄存器方式来访问 SJA1000 的内部寄存器,所以在微处理器访问 SJA1000 时,应该正确定义 SJA1000 内部寄存器的访问地址。(3)微处理器可以通过中断和查询的方式来访问 SJA1000。(4)微处理器访问 SJA1000 时,有两种不同的模式:工作模式和复位模式。对SJA1000 的初始化只能在 SJA1000 的复位模式下进行。初始化包括设置验收滤波器、总线定时器、输出控制、时钟分频中的特定控制等,设置复位请求后,一定要校验,以确保设置成功。(5)向 SJA1000 的发送缓冲区写入数据时,一定要检查发送缓冲区是否处于锁定状态,如锁定,这时写入的数据将丢失。(6)对 SJA1000 的操作难点在于总线定时器的设置,设置总线定时器包括:设置总线波特率、同步跳转宽度、位周期的长度、采样点的位置和每个采样点的数本科生毕业设计(论文)14目。本科生毕业设计(论文)153.4 芯片的选择1单片机 本次设计用到两个单片机:C8051F040 和 AT89C52。Cygnal 公司的 51 系列单片机 C8051F040 是集成在一块芯片上的混合信号系统级单片机,在一个芯片内集成了构成一个单片机数据采集或控制的智能节点所需要的几乎所有模拟和数字外设以及其他功能部件,代表了目前 8 位单片机控制系统的发展方向。芯片上有 1 个 12 位多通道 ADC,2 个 12 位 DAC,2 个电压比较器,1 个电压基准,1 个 32kB 的 FLASH 存储器,与 MCS51 指令集完全兼容的高速 CIP51 内核,峰值速度可达 25MIPS,并且还有硬件实现的 UART 串行接口和完全支持 CAN2.0A 和 CAN2.0B 的 CAN 控制器。C8051F040 内部嵌入一个 8 路 12 位 ADC 和一个 8 路 8 位 ADC,可满足多组电池组电压和温度信号的输入要求。内部有 4352 字节 RAM 和 64K FLAH 程序存储器,可省去扩展存储器的工作;并且内部嵌入满足 CAN2.0B 规范的 CAN 控制器,可方便实现 CAN 通讯。AT89C52 芯片内部有 6 个中断源,在本次设计中涉及到 AT89C52 芯片的中断源有三个,分别是外部中断 INT0、INT1、定时/计数器 T0。其中外部中断 INT0优先级别最高,定时/计数器 T0 次之,然后是 INT1 中断。下面就这四个中断源介绍如下:(1)关于外部中断外部中断的激活方式分为两种:一种是电平激活,另一种是边缘激活。这两种方式可以靠 TCON 寄存器中的中断方式位 IT1 或 IT0 来控制。若 ITx=0(X 为 0或 1) ,则采用电平激活方式:在 INTX 引脚上检测到低电平,将触发外部中断。若 ITx=1,则采用边沿激活方式:在相继的 2 个周期中,对 ITx 引脚进行连续 2次采样,若第一次采样值为高,第二次为低,则 TCON 寄存器中的中断请求标志IEx 被置 1,以请求中断。由于外部中断引脚每个机器周期被采样一次,为确保采样由引脚 INTX 输入的信号至少保持一个机器周期,即 12 个振荡周期。如果外部中断为边缘激活方式,则引脚处的高电平和低电平值至少各保持一个机器周期,才能确保 CPU 检测到电平的跳变,而把中断请求标志 IEx=1。如果采用电平激活外部中断方式,外部中断源应一直保持中断请求有效,直至所请求的中断得到响应时为止。(2)关于定时/计数器 T1、T0 和 T2AT89C52 有三个定时计数器,本系统中使用了一个定时/计数器 T0。本科生毕业设计(论文)16在专用寄存器 TMOD(定时器方式)中,各有一个控制为(C/T) ,分别用于控制定时/计数器 0 和 1 是工作在定时器方式还是计数器方式。选择定时器工作方式时,计数输入信号是内部时钟,每隔机器周期使寄存器的值增 1。每个机器周期等于 12 个振荡器周期,故计数速率为振荡器频率的 1/12。当采用 I2MHz 晶振时,计数速率为 1MHz。当选择计数器工作方式时,计数脉冲来自相应的外部引脚T0 或 T1。当输入信号产生由 1 至 0 的跳变时,计数寄存器(TH0、TL0 或TH1、TH0)的值增 1。每个定时/计数器还有 4 种操作模式。模式 0:通过 TMOD 寄存器把定时/计时器 0 或 1 置为模式 0。在这种模式下,16 位寄存器 TH1/0+TL1/0 只用了 13 位,TL1/0 的高三位未用。模式 1:定时/计数器 0 或 1 以全 16 位参与操作的。模式 2:这种模式是把定时计数器 TL0 或 TL1 配置成一个可以自动重装载的8 为计数器。TL1 计数溢出时,不仅使溢出标志 TF1 置 1,而且还自动把 TH1 中的内容重装载到 TL1 中。TH1 的内容可以靠软件预置,重装载后内容不变。模式 3:操作模式 3 对定时/计数器 0 和定时/计数器 1 是不同的。对于定时/计数器 1,设置为模式 3 将使它保持原有的计数值,其作用如同使 TR1=0。对于定时/计数器 0,模式 3 将使 TL0 和 TH0 成为 2 个互相独立的 8 位计数器。(3)串行口AT89C52 单片机内有一个全双工串行口,可同时发送和接收数据。该口在接收数据时具有缓冲作用。串行口的中断是由串行口控制寄存器 SCON 中的发送标志 TI 或接收中断标志 RI 产生。在中断相应的过程中,此二标志位均不会被硬件清 0。通常,串行口中断服务程序往往需要查清此次中断究竟由何种标志所致。串行口有四种运作方式。方式 0:在这种方式下,串行数据的发送与接收均通过 RXD 引脚进行。RXD引脚来输出移位脉冲。以 8 位数据为一帧,每个机器周期发送或接收一位,波特率为振荡频率的 1/12。方式 1:数据发送通过 TXD 引脚,接收通过 RXD 引脚进行。10 位为一帧:一个起始位(0) ,8 个数据位(最低位优先)和一个停止位(1) 。接收时,停止位进入专用寄存器 SCON 的 RB8。波特率可变。方式 2:数据的发送和接收分别通过 TXD 和 RXD 引脚进行。11 位为一帧:一个起始位(0) ,8 个数据位(最低位优先) ,一个可编程的第九数据位和一个停止位(1) 。发送时,第九数据位来自专用寄存器 SCON 的 TB8,可为 0 或 1 波特率可编程为振荡频率的 1 /32 或 1/64。方式 3:在此方式下,波特率是可任意安排的,除此之外,方式 3 和方式 2本科生毕业设计(论文)17完全相同。2CAN 控制器作为一种非常成熟的现场总线技术,目前市面上有许多 CAN 控制器和 CAN 总线驱动器产品。有独立 CAN 控制器,也有和 CPU 集成到一起的非独立 CAN 控制器。生产 CAN 控制器和驱动器产品的厂家也很多,几乎所有半导体生产厂家都有 CAN总线器件,这也是选择 CAN 总线构成本系统的因素之一。 考虑到本系统中 CPU 的负荷较重,所以设计 CAN 通信电路时,选择硬件实现的独立 CAN 控制器。目前应用较多的就是 Philips 公司的 SJA1000,考虑到该产品的应用十分普遍,设计参考资料也很丰富,市场上也容易购置,价格也相对比较便宜,所以本设计选用该芯片。3通用 CAN 收发器PCA82C50 是 CAN 协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达 1Mbps)应用而设计。此器件对总线提供差动发送能力,对 CAN 控制器提供差动接收能力,完全符合“ISO11898”标准。一个限流电路可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过 160时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。IC 的其它所有部分将继续工作。当总线短路时,热保护十分重要。CANH、CANL 两条线也防止在汽车环境下可能发生的电气瞬变现象。PCA82C250 共有三种不同的工作模式控制,通过 Rs 控制引脚提供:第一种模式是高速模式。它支持最大的总线速度和长度。第二种是斜率模式。当使用非屏蔽的总线电缆时,可以考虑使用这种模式。这种模式的输出转换速度可被故意降低,以减少电磁辐射。第三种是准备模式。这种模式在电池供电的应用要求系统功率消耗非常低的应用中非常有用。在准备模式中传输一个报文就可以将系统激活。本科生毕业设计(论文)18第 4 章 系统硬件设计4.1 单片机电路设计本系统因为应用于汽车中,周围信号干扰强,最好系统使用尽可能少的外围扩展芯片,提高系统运行的可靠性,所以要求使用的单片机具有片内足够大的ROM 和 RAM。目前 AT89C52 是应用最广的单片机之一,它具有很高的性能价格比。而 C8051F040 内部嵌入一个 8 路 12 位 ADC 和一个 8 路 8 位 ADC,可满足多组电池组电压和温度信号的输入要求。内部有 4352 字节 RAM 和 64K FLAH 程序存储器,可省去扩展存储器的工作;并且内部嵌入满足 CAN2.0B 规范的 CAN 控制器,可方便实现 CAN 通讯。完全满足设计本系统的要求,因此在众多的单片机类型中选取了 ATMEL 公司的 AT89 系列单片机 AT89C52 和 Cygnal 公司的 C8051F040 单片机。AT89C52 单片机是的一种低功耗、高性能内含 8K 字节闪电存储器(Flash Memory)的 8 位 CMOS 微控制器,与工业标准 MCS-51 指令系列和引脚完全兼容。有超强的加密功能,其片内闪电存储器的编程与擦除完全用电实现,数据不易挥发,编程/擦除速度快,全 4K 字节编程只需 3s,擦除时间约用 10ms;它的主要特点有:(1)内部程序存储器为电擦除可编程只读存储器 EEPROM,容量 8KB,内部数据存储器容量 256B(不包括专用寄存器) ,外部数据存储器寻址空间 64KB,外部程序存储器寻址空间 64KB;(2)有三个 16 位的定时器/计数器;(3)可利用两根 I/O 口线作为全双工的串行口,有四种工作方式,可通过编程选定;(4)内部 ROM 中开辟了四个通用工作寄存器区,共 32 个通用寄存器,以适应多种中断或子程序嵌套的情况;(5)内部有 6 个中断源,分为两个优先级,每个中断源优先级是可编程的;(6)堆栈位置是可编程的,堆栈深度可达 128 字节;(7)内部有一个由直接可寻址位组成的布尔处理机,在指令系统中包含了一个指令子集,专用于对布尔处理机的各位进行各种布尔处理,特别适用于控制目的和解决逻辑问题;(8)AT89C52 的状态周期由振荡器 2 分频后获得,作为芯片工作的基本时间本科生毕业设计(论文)19单位。采用 12MHz 时,AT89C52 的状态周期为(2/12)10-8=167ns。设计 SJA1000 控制器与 CPU 的硬件连接电路,主要是 SJA1000 控制器的片选CS 和中断 INT 两个引脚的连接设计。片选 CS 连接决定 SJA1000 控制器内的地址寄存器占用的数据存储空间范围,中断 INT 连接决定 SJA1000 通讯中断的优先级和中断向量以及中断服务程序的调用。本设计分配给 SJA1000 控制器的中断源使用 AT89C52 基本 I/O 端口 3 提供的一个外部中断 INT0,分配给 SJA1000 控制器的数据地址空间,通过基本 I/O 端口2 的 P2.7 提供控制线。在进行 CAN 控制器和 CPU 的连线设计之前,必须先设计 CPU 访问 CAN 控制器的方式。本系统采用查询和中断相结合的方式访问 CAN 控制器,且通过 CPU 的数据地址空间,访问 CAN 控制器中的各种寄存器。设计 SJA1000 控制器的硬件连接电路时,要进行 Intel 和 Motorola CPU 器件类型的选择。AT89C52 是与 Intel 兼容的芯片,所以本设计选择 Intel 模式。C8051F040单片机是由美国Cygnal公司生产的完全集成的混合信号系统级SoC(System on Chip),具有与8051指令集完全兼容的CIP-51内核。它在一块芯片上集成了构成一个单片机数据采样或控系统所需要的几乎所有模拟和数字外设及其它功能部件。它具有64K Bflash、4352B RAM、CAN控制器2.0、2个串行接口、5个16位定时器、12位A/D转换器、8位A/D转换器及12位D/A转换器等,它内部还带有JTAG接口,使调试变得非常方便。C8051F040 CAN控制器构成及访问方式:C8051F040内部集成的CAN 控制器为Bosch CAN控制器。此CAN控制器有以下几部分构成:CAN内核、报文RAM(与C8051 RAM相互独立)、报文处理状态机制和CAN控制寄存器。在 CAN 控制器里只有三个寄存器可通过 CIP-51 中的特殊功能寄存器直接访问,其它的寄存器只能通过 CAN 0ADR、CAN 0DATH 和 CAN 0DATL 寄存器以地址索引的方式间接访问。在使用 CAN 控制器时,重点和难点是对 CAN 控制器的寄存器的使用,其内部寄存器的分类及其主要功能如下:(a)CAN 控制器协议寄存器该协议寄存器是用来配置 CAN 控制器,处理各种中断,监控总线状态以及置控制器为测试模式。CAN 控制器协议寄存器可使用 C8051 MCU 特殊功能寄存器通过索引方式间接访问,其中有些还可以很方便的通过 C8051 内部特殊功能寄存器直接寻址来访问。这部分的寄存器有:CAN 控制寄存器(CAN0CN)、CAN 状态寄存器(CAN0STA)、CAN 测试寄存器(CANTST)、错误计数寄存器、位定时寄存器和波特率预比列因子扩展寄存器。其中,CAN0CN、CAN0STA 和 CANTST 可通过 C8051 MCU 特殊功能寄存器直接访问,其它的只能通过间接访问。本科生毕业设计(论文)20(b)报文对象接口寄存器CAN 控制器中有两组报文对象接口寄存器,它们用来配置报文 RAM 中 32 个报文对象是用来向 CAN 总线发送数据,还是从 CAN 总线接收数据。当其中的一组被设置为向报文 RAM 中写数据,另一组则从报文 RAM 中读取数据。利用此接口寄存器可以避免 CPU 访问报文 RAM 与 CAN 报文接收和发送缓冲转移之间的冲突。所有的报文对象都存储在报文 RAM 里面,通过报文对象寄存器对其进行访问和配置, 这些寄存器要通过 C8051

温馨提示

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

评论

0/150

提交评论