汽车电子控制单元ECU 的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汽车电子控制单元ECU 的设计
李鸿强 刘志春 苗长云
(天津工业大学 信息与通信工程学院,天津300160)
摘要:本文给出了汽车电子控制单元ECU 的IP 核设计。

该IP 核基于RISC 技术的单指令、单周期的体系结构,并采用了自顶向下(top-down)的设计方法和硬件描述语言Verilog HDL ,给出了ECU 的体系结构以及各个功能模块的具体设计和仿真结果。

关键词:汽车电子;电子控制单元;精简指令集计算机;IP 核
中图分类号:TN492 文献标识码:A
The Design of Automotive Electronic Control Unit
LI Hong-qiang ,LIU Zhi-chun ,MIAO Chang-yun
(School of Information and Communication Engineering,
Tianjin Polytechnic University, Tianjin 300160,China)
Abstract :The paper proposes a ECU IP core design, which is based on one clock one instruction architecture and RISC technology. The design uses top-down method and verilog HDL. The architecture and all functional modules of ECU have been given in detail in this paper.
Keywords :Automotive Electron ;Electronic Control Unit ;RISC ;IP core
1 引言
2005年是中国汽车市场发生深刻变化的一年。

以国际汽车发动机研发中心向中国市场转移为契机,预示着中国汽车整车零部件的本土化水平和技术创新水平有望大幅度提高,中国汽车电子市场国际化的进程将迈上新的台阶。

新的变化促使我们以全球化的视野去看待中国汽车电子市场的发展水平。

目前,中国汽车电子厂商在核心技术上的经验积累和资金投入上还面临巨大的困难,中国最缺乏的是了解汽车工业且具有丰富的设计、应用和验证经验的汽车电子工程师,因此,在ABS (Anti-skid Brake System )和ECU (Electronic Control Unit )的本土化方面仍然面临很大的挑战。

对于汽车来说,ECU 负责接受各种信号,经由内建的基础程式判别后,来控制各个系统,以维持汽车正常的行驶。

对于ECU 电子控制单元,不同厂家的名称不尽一致,如日本电装公司叫ECU ,德国博士公司称为EDU ,威孚公司也称EDU ,还有叫做Engine Control Unit-发动机控制单元等。

ECU 广泛应用于各种电控系统中,例如:电控共轨系统、ECS 系统、电子调速器、电控分配泵、电控泵喷嘴等。

ECU 按照预先设计的程序计算各种传感器送来的信息,经过处理以后,再发送给各相关的执行机构,执行各种预定的控制功能。

2 ECU 体系结构
本设计中的ECU 采用top-down 的设计方法和哈佛总线结构,片内程序存储器容量为2k×12bit ,片内静态存储器SRAM 容量为72×8bit ,也可用作通用存储器,有7个硬件构成的专用寄存器和2级硬件堆栈,数据字长8位。

指令系统共有33条指令,指令字长为12位, 除了程序分支指令需要2个指令周期之外,其余指令都是单周期的。

寻址方式有直接、间接、相对和位寻址四种。

外围功能部件有:定时器/计数器RTCC 、8位可编程的预分频器、上电复位电路和监视定时器WDT 。

ECU 采用两级流水,在一个指令的执行周期中,片内ROM 的数据读取时间一般为几个纳秒,片外ROM 的读取时间则要100多纳秒的时间,快一点的也要七八十个纳秒,因此指令的读取是一个指令周期中占时最长的。

本文设计的ECU 中ROM 的地址在时钟下降沿送出,从下降沿到下一个时钟的上升沿为程序存储器ROM 的读取时间。

指令存储器在下一个时钟的上升沿取指令,其时序如图1所示。

第一条指令的地址由系统上电复位置数得到。

系统从上升沿取得指令开始,到指令执行完成,这中间的执行部件为逻辑器件,
与时钟无关。

当指令存储器读取下一
条指令的同时,指令执行结果写入专用存储器。

指令执行过程时序如图2,取指和回写数据均在时钟上升沿完
成。

严格来说,在一个指令执行周期图1 读取指令时序
中,一条指令的执行只有半个时钟周期,另外半个时钟周期作为ROM 读取数据的时间。

也就是说,从指令寄存器取得指令开始到指令执行结束只有半个时钟周期[1]。

2.1 运算单元(ALU )
运算单元是ECU 的算术和逻辑运
算单元,是一个由组合逻辑电路构成
的部分。

ALU 连接一个工作寄存器(W 寄存器),它是通过W 寄存器对数据进行算术和逻辑运算,也可对W 寄存器
或任何文件寄存器的操作量单独操
作。

运算包括加、减、与、或、非、左移、右移、循环移位、换位这9种运
算。

具体进行什么运算由指令译码器输出的运算控制码决定。

运算单元是指令执行的最坏路径上的一个主要环节,且是影响最坏路径上延时的最主要的部件。

因此,应尽可能的使ALU 的延时降到最小。

在ALU 的9种运算中,加法器又是最关键的部件,它的延时是最大的。

为了尽可能的提高ECU 的工作频率,在加法器的设计中,我们设计了8位超前进位加法器 [2]。

为了减小系统的功耗,整个ALU 采用了低功耗设计。

具体设计方法是:先对操作控制码ALUOP 进行译码,产生控制信号。

在系统复位或不工作时各运算单元处于休眠状态,根据译码产生的控制信号只唤醒需要工作的单元模块进行运算,然后输出运算结果。

其工作原理框图如图3所示[3]。

图3中ALUOP[2:0]是ALU 运算控制信号,ALUOUT[7:0]是ALU 输出,OPRA[7:0]是操作数输入,其中ADD 、SUB 、AND 、OR 、XOR 的输入是两个8位的操作数,其他4种运算只有一个操作数。

图中的三角形
是三态门,用于操作数输入的选
通。

选通信号由译码器给出。

加运
算和减运算可以用一个8位的全加
器实现,减运算时最低位的进位输
入为“1”,且减数取反输入。

2.2 PC 和堆栈
为了保证程序能够连续地执
行下去,ECU 必须具有某些手段
来确定下一条指令的地址,而程序
计数器PC 正是起到这种作用,所以通常又称其为指令计数器。

在程
序开始执行前,必须将它的起始地
址,即程序的第一条指令所在的内存单元地址送人PC ,这时,PC 的
内容就是要从内存提取的一条指令的地址。

当指令执行时,ECU
将自动修改PC 的内容,其内容总是保持为将要提取的下一条指令的地址。

由于指令通常是顺序执行的,所以修改的过程通常只是简单的PC 加1。

但是,当遇到调用指令CALL 时,将PC 的下一条指令压人堆栈,PC 的内容改变。

同样,当遇到转移指令GOTO 和返回指令RETLW 时,PC 的内容也要改变[4]。

堆栈是以后进先出(LIFO )的规则存取信息的。

当信息存入堆栈(压栈:主要在程序调用时,即执行CALL 指令)时,堆栈指针将从栈顶开始自动递减,把数据压栈;当要从堆栈读取信息(出栈:子程序执行完返回)时,堆栈指针将从栈顶开始自动递增。

本文设计的ECU 提供了两层11位的硬件堆栈,为子程序嵌套提供了方便。

2.3 ROM
程序存储器容量为2k×12bit ,采用的是片内ROM ,其地址由程序计数器PC 在时钟下降沿送出,ROM 的数据读取时间为半个时钟周期。

指令寄存器在时钟上升沿读取指令。

指令的执行周期从指令寄存器读取指图2 指令执行过程时序图
图3 ALU 原理图
令开始。

2k 的ROM 寻址采用分页寻址方式,512字节为一页,页面地址由状态寄存器f3的PA1、PA0选择。

每一页内可直接寻址,当涉及到页面之间跳转时(GOTO 、CALL 指令),必须先把f3的PA1、PA0置成相应的页面。

程序由PC 自动加1控制。

程序控制操作支持直接、间接、相对寻址方式,能由位测试和跳转指令、子程序调用指令、转移指令或把算出的地址装入PC 来实现。

2.4 指令寄存器和译码器
8位ECU 的指令长度为12位,由12个带异步复位端的D 触发器构成。

指令寄存器在时钟上升沿锁入从ROM 读取的指令,并保持到时钟的下一个上升沿。

一条指令的执行从指令寄存器锁入指令开始。

指令译码器是ECU 的核心部分,指令寄存器锁入指令后,译码器开始工作,对指令进行译码,给出其它各单元的操作控制信号,包括ALU 的运算控制信号、RAM 的读写控制、总线控制器的选择信号、专用寄存器的数据更新控制、PC 的寻址等。

根据指令的特性,译码器的设计采用分段译码,即把12位的指令分成3段,每段4位,用的比较多的是2-4译码器和3-8译码器这两种[5]。

2.5 通用寄存器(SRAM )和特殊寄存器
通用寄存器的设计本文采用静态读写存储器(SRAM ),其基本存储单元是由6个MOS 管构成。

通用寄存器的大小为72×8bits ,它由7条地址线、8位输入数据线、读写控制信号、8位输出数据线组成。

7条地址线的寻址范围为128个单元,但是存储器单元只有72个单元,所以必须通过组合电路将7条地址线寻址范围控制在72个单元之内,再通过动态译码将7条地址线译成72个地址控制线和产生片选信号。

读控制信号是由写控制信号取反获得。

为了与整个系统配合,对SRAM 进行读写操作时,采用前半周期进行读操作,后半周期进行写操作。

特殊寄存器是由状态寄存器STATUS 、选择寄存器OPTION 、体选寄存器FSR 、工作寄存器W 、3个I/O 口寄存器、3个控制寄存器组成。

2.6 监视定时器WDT (Watch Dog Timer )
监视定时器用于当系统进入休眠状态或因外界干扰处于失控状态时,WDT 超时溢出产生一个复位信号,来激活系统继续正常工作。

本文设计的WDT 是用一个8位的计数器实现的,其中计数器的时钟输入前接了一个2选1,2选1的作用是用来选择对内部时钟计数还是对从预分频器过来的时钟计数。

对时钟的选择是由OPTION 寄存器的PSA 位来实现的,预分频器的分频率是由OPTION 寄存器的PS2~PS0位来定义的,可以实现2~256分频,以满足不同的定时精度。

在WDT 需要完成一个精确的或是时间较长的定时时,可以通过
软件控制写OPTION 寄存器,把预分频器分配给WDT 。

如要用WDT
来实现对系统的定时复位,则要根据内部振荡器的频率以及设计的定时复位周期来决定计数器的位
数[6]。

2.7 振荡电路
本文利用振荡电路产生内部时钟,与外部时钟相配合构成整个时钟系统,当使用外部时钟时,内
部时钟处于省电状态。

EN 使能端
为高,使用内部时钟,反之,用外
部时钟。

2.8 总体框图 总体框图见图4。

图4 总体框图
3 仿真结果
本设计用QUARTUS II、Synopsys DC对各模块的Verilog HDL代码进行了综合、编译、仿真[7]。

由于篇幅有限,下面仅列出了ALU的仿真波形。

图5 ALU的仿真波形
4 结束语
20世纪90年代以来,汽车上由电子控制单元ECU控制的部件数量越来越多,因此,一种新的概念--车上控制器局域网络CAN(Controller Area Network)的概念也就应运而生了。

本项目在提出单周期单指令的RISC结构的ECU同时,在设计时也考虑到了CAN总线连接,由于篇幅所限,关于CAN IP核在ECU 中的集成就不再介绍了。

本文对汽车工业领域中的汽车电子控制单元ECU设计进行了大胆的尝试,由于RISC和ECU的设计有很多相同之处,本文创新点在于首次将RISC设计技术应用于ECU的设计中,逻辑综合与仿真测试结果表明该ECU完全达到了设计指标。

设计的关键是流水线的实现和数据总线的控制,设计使用Verilog HDL语言描述,可读性好,易于增减资源和修改功能,为下一步进行汽车电子控制单元ECU的集成电路版图设计、验证、流片打下了基础。

参考文献
[1] Ulrich Golze.大型RISC处理器设计[M]. 北京:北京航空航天大学出版社,2004-04.
[2] 拉贝.数字集成电路:设计透视(影印版)[M].北京:清华大学出版社,1998-10.
[3] 李家荣.8位ECU IP核的具体设计与实现方法[M].西安:西安电子科技大学,2003-03.
[4] A.Paterson.计算机体系结构量化研究方法[M].北京:机械工业出版社,1999-10.
[5] John L.Hennessy,A.Paterson.计算机组织与设计:硬件/软件接口[M].北京:机械工业出版社,1999-07.
[6] Rubin puter Aided for VLSI Design[M]. Addison-Wesley,1979-01.
[7] 濮津,林孝康.内嵌ARM9E内核系统级芯片的原型验证方法[J]. 微计算机信息,2005,10-2:162-164。

相关文档
最新文档