can例程 ecu_ECU程序及CAN总线实现

内容介绍

原文档由会员 usactu 发布

ECU程序及CAN总线实现

1.3万字 34页

包括开题报告和任务书

摘 要

ECU程序就像汽车的大脑,控制着汽车的动力源泉心脏—发动机,控制着汽车底盘,控制着各个车门,控制着各个仪表盘,控制这整个汽车的一举一动。整个汽车的控制又是分模块控制的。各个模块之间为能相互传输信息,进而进行有效、准确控制整个汽车,需要高效、实时通信。CAN总线,作为现场总线一种,能够满足这种通信需求。

目前国内汽车电子行业还是比较落后,尤其是在车控电子方面。急需提高对车控电子研究和投入。只有对车控电子完全掌握,才能算是对汽车电子主要知识产权的掌握。

本文对ECU程序框架,典型设计进行研究,论述ECU是怎样控制着发动机。主要对CAN总线进行研究应用。首先探讨CAN总线技术的发展历史和应用。介绍微控制器的CAN模块。并根据CAN总线通信比串口通信快这一特点,设计实现通过CAN总线通信的ECU程序烧录项目。这是CAN总线的设计应用。即两个微控制器通过CAN模块进行传输ECU程序,并烧写。这其中包括串口通信和FLASH编程。

关键词:ECU,CAN总线,串口通信, FLASH编程

ECU Procedure and the Implement of CAN Bus

Abstract

ECU procedure likes car’s brain that controls the power source of motor vehicles heart-engine, controls the vehicle chassis, controls all doors ,controls of all instrument panels, and controls the entire vehicle's every move. The entire vehicle control is divided into modules. Effective and accurate control of the entire vehicle needs efficiently, real-time communication between the various modules. CAN bus meet these requirements.

At present, China's automotive electronic industry is still relatively backward. An urgent need is to improve automotive electronic industry research and investment.

In this paper, the ECU procedural framework, the typical design and how ECU controls the entire engine are discussed. The mainly study and application is CAN bus. This paper introduces the history and development of CAN bus technology. And then this paper introduces a CAN module. Because CAN bus is fast, there is the project-- design and implementation of programming of ECU procedure through the CAN bus . This is CAN Bus’s application. One microcontroller communicates with other microcontroller depending on CAN modules. This includes the serial communication and Flash programming.

Keywords: ECU, CAN bus, serial communication, Flash Programming

目录

1. 绪论1

1.1 课题背景及目的1

1.2 国内外研究现状1

1.3 课题研究的内容和意义1

2.ECU系统介绍3

2.1 ECU概述3

2.2 ECU对发动机控制3

3.ECU框架4

4.ECU典型程序设计5

5.CAN总线及其实现6

5.1 CAN总线概述6

5.1.1 现场总线6

5.1.2 CAN总线7

5.2 CAN总线技术规范8

5.2.1 CAN总线及基本概念介绍8

5.2.2 报文传输10

5.2.3 报文滤波11

5.2.4 报文校验11

5.2.5 编码11

5.2.6 错误处理11

5.3 CAN总线在汽车网络中的应用12

5.3.1 通信网络在汽车上的应用12

5.3.2 汽车网络设计12

5.3.3 CAN节点13

6.程序烧录箱设计与实现15

6.1 项目实际需求概述15

6.2 利用CAN程序烧录项目总体设计和功能15

6.2.1 功能设计15

6.2.2总体框架流程16

6.3 软件开发环境描述17

6.3.1 PC端软件开发环境描述17

6.3.2 上位机及下位机软件开发环境描述17

6.4 PC端软件18

6.4.1 读取HEX格式文件并转换18

6.4.2 通过串口与上位机交互传输19

6.5 上位机软件20

6.5.1 上位机与PC端的通过串口交互通信20

6.5.2 上位机收到数据向片外FLASH写21

6.5.3 上位机通过串口向下位机传输下位机要运行的可运行码21

6.5.4 上位机通过CAN模块交互传输ECU程序21

6.6 下位机软件21

6.6.1 下位机通过CAN模块接收数据21

6.6.2 下位机把接收到的数据烧写到片内FLASH22

6.7 ST10F269 CAN 模块22

6.7.1 CAN控制器22

6.7.2 CAN 中断处理23

6.8 ST10F269 FLASH编程24

6.8.1 在ST10内 Flash 内存的映射空间24

6.8.2 编程命令24

6.8.3 擦除命令26

7 总结27

致谢28

参考文献29

参考文献

[8]饶运涛.现场总线CAN原理与应用技术[M]. 北京.北京航天航空大学出版社.

[9]秦赞和.车上网络技术.[M].北京.机械工业出版社.

[10] Pro.Dr.-Ing.K.Etschberger.基于CAN的较高层协议和子协议[C].

[11]沈秀娟,卢珞先,黄涛.基于CAN总线的多ECU通信平台设计[J].单片机与嵌入式系统应用.

[12]邓立康,董桂菊.基于CAN总线的多点通信系统[J].东北农业大学学报.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 禁用smb服务,Samba 4.11 发布,更好的可扩展性与默认禁用SMB1

Samba 4.11是这个SMB/CIFS/AD实现的最新大功能更新,用于提供与Linux和其他平台更好的Windows互操作性。 Samba 4.11的变化非常多,我们有点惊讶它没有被称为Samba 5.0。也许最令人兴奋的是Samba 4.11具有很大的可扩展性改进,它应该能够扩展到1…

airtest测试网页_Airtest自动化测试超级详细教程

Airtest自动化测试1. 安装AirtestIDEAirtestIDE下载地址。我下载的是AirtestIDE_2019-09-10_py3_Mac10-12.dmg。下载完成之后,直接安装即可。2. 设备连接2.1 部署iOS-Tagentgit clone gitgithub.com:AirtestProject/iOS-Tagent.git把手机连接到电脑上然后 打开Xcode…

linux git命令如何简写,简写Git用法,基本命令

git的简单介绍安装首先,你可以试着输入git,看看系统有没有安装Git:graceWIN-VIMIDCOQM7L:/var/www/html/BBB$ gitThe program git is currently not installed. You can install it by typing:sudo apt-get install git若显示,代表已安装grac…

elementui table渲染不出来_测试开发不会前端?ElementUI你需要了解一下

在测试部门内平台类工具的开发需求越来越多,因此也推动了测试开发职位薪水逐步升高。如果开发一个web测试平台,前端技术是必不可少的,像是js、css等。一般在企业内,一个正式产品的前后端开发是职责分明的。端开发只负责业务逻辑&a…

python 画图 线标注_最简洁的Python时间序列可视化实现

TUSHARE 金融与技术学习兴趣小组 翻译整理、编辑 | 一只小绿怪兽译者简介:北京第二外国语学院国际商务专业研一在读,目前在学习Python编程和量化投资相关知识。作者:DataCamp时间序列数据在数据科学领域无处不在,在量化金融领域也…

linux伙伴系统接口,Linux伙伴系统(一)--伙伴系统的概述

伙伴系统的概述Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生。Linux采用伙伴系统解决外部碎片的问题,采用slab解决内部碎片的问题,在这里我们先讨论外部碎片问题。避免外部碎片的方法有两种&#xff1…

c# 创建委托 消息订阅_C#面向对象之委托和事件

委托1.定义:委托也叫代理,就是把事情交给别人来做。2.声明委托语法: delegate 返回类型 委托名称();委托使用步骤1.声明委托public delegate int CalculatorDelegate(int a,int b);2.根据委托类型创建方法3.创建委托对象并指定方法Calculator…

linux 集群 lvs,linux集群--LVS集群

拓扑图:1、LVS配置脚本:需要安装:ipvsadm-1.24-10.i386.rpmvi /etc/rc.d/init.d/lvsdr#!/bin/bashvip192.168.0.116web1192.168.0.104web2192.168.0.114./etc/rc.d/init.d/functionscase "$1" instart)echo "startlvs-dr&quo…

服务器连接工具mat_将个人笔记本改造成Linux简易服务器

实验过程1、开启Ubuntu系统的ssh服务开启之后其他电脑就可以通过ssh登录Ubuntu服务器,通过安装openssh-server就可以达到目的。(1)查看主机有没有ssh服务在Ubuntu系统桌面右击后点击“打开终端”,输入一下命令:ssh localhost若出现&#xff1…

c语言存储结构的实现,(C语言)栈的链式存储结构的实现

#includetypedef struct Stack_Linklist{int data;struct Stack_Linklist *next;}Node,*pNode;typedef struct Stack{pNode pTop;pNode pBottom;}Stack,*pStack;void Initstack();//初始化;int Isempty();//判断栈是否为空void Push();//压栈int Pop();//出栈int Ge…

以下对c语言函数的描述中正确的是,以下对C语言函数的有关描述中,正确的是

摘要:它决习定于的学后天,下语密切关系的能与社力是会文化有。关描透性的是起渗利尿可引。认的r默链接路径是(,述中在建点时立站。...它决习定于的学后天,下语密切关系的能与社力是会文化有。函数人感型的偏好感受觉很丰富。关描透…

创建前缀一样的文件_SpringBoot:配置文件属性读取

SpringBoot中默认加载的是application.properties或者application.yaml文件,当然也支持自定义的属性文件。我们可以在此文件中写一些自己想要的配置信息,然后在用的地方读取。默认属性文件在application.properties文件中添加配置信息,如下&a…

c语言降序多项式加法,数据结构算法(多项式加法)的C语言完美实现

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*数据结构多项式加法用C语言的完美实现,书43页 算法 2.23[ 数据结构(C语言版) 严尉敏主编]*//*注释就不加了,本程序的所有函数书上都有说明*//*本程序Tourboc 2.0编译通过*/#include #include #include #in…

c语言 算术平均滤波法_单片机数字滤波的算法

单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。在单片机进行数据采集时,会遇…

非顺序控制结构的c语言语法是怎样的,流程控制语句:顺序结构和选择结构

流程控制语句概述:控制程序的执行流程分类:顺序结构选择结构循环结构顺序结构语句顺序结构语句:从上往下,依次执行选择结构if语句:switch语句:if语句:格式1:格式2:格式3:if语句的格式:if(比较表达式){语句体;}执行流程:先计算比较表达式的值,看其返回值是true还是fa…

python3 asyncio 爬虫_python3 asyncio异步新浪微博爬虫WeiboSpider

一些废话之前写的用python3urllib写的多线程微博(传送门),后面发现登录账号频繁被403,所以解决登录问题迫在眉睫。而且python的“多线程”并不那么多线程,最近因为刚需,需要稳定的微博爬虫,所以琢磨了一下使用selenium…

linux .forward,linux forward的实现

对于linux的数据包流向,大家应该是比较了解,如果还不是很了解,可以参考《OReilly.Understanding.Linux.Network.Internals.Dec.2005》,其中有一个图非常清楚的描述了数据包的流向。ip的数据包接收函数是ip_rcv()>ip_rcv_finish…

参数 携带 跳转_微信小程序:页面跳转及参数传递

本文首发自个人自有博客:【FaxMiao个人博客】,一个关注Web前端开发技术、关注用户体验、记录前端点滴,坚持更多原创,为大家提供高质量技术博文!前言小程序的跳转方法有很多种,有的人一直只用wx.navigateTo跳…

android+apk启动过程,Android Apk的运行过程(一)—— Activity启动与页面事件传递...

最近在看一本书--《Android 内核剖析》。看名字很唬人,内核剖析,看起来是讲很深入的东西,其实作者自己在前言里也说了对于Android内核深度的一些见解。此书其实只是一些抛砖引玉,对于更深度与更细节的东西并没有涉猎,但…

python在数字后添加字符_Python在字符前后补字符

def addForLR(voldStr, vaddStr, vlength, vleftTrue):"""数字前补0可以补"0"也可以补""# print(tools.addForLR(1123,0,6));# print(tools.addForLR(1123,0,6,False));param voldStr 旧字符串param vaddStr 添加字符串param vlength 字符长…