




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
§5
控制系统的
设/计Software
Design
of
AECs本章要求/Requirement
of
this
section控制
的架构/
Architecture
of
AECs
Software学习
:汽车
工程/Learn
theReference:AutomotiveSoftware
Engineering了解汽车开发式系统架构的概念和含义/Understand
theConcept
of
AUTomotive
Open
System
ARchitecture
(AUTOSAR)掌握
实时系统的编程方法和
/
Master
thedevelopment
methods
ofembedded
real
time
system学习参考资料/Study
references:SAE关于
可靠性
/
SAE
software
reliabilitystandards;的
/
SAE
diagnosis
standards;Joseph第1页编程技术北航SAE关于故障OSEK/VDXLemieux等著§5
控制系统的
设
/计Software
Design
of
AECs
控制
的架构/
Architecture
of
AECs
Software§5.1第2页驾驶员-车辆-环境系统/The
Driver-Vehicle-EnvironmentSystemNetworked
ECUsDriverEnviron-mentSetpointGeneratorsSensorsOpen/ClosedLoop
ControlMonitoringActuatorsPlantVehicle第3页自适应巡航控制系统/Adaptive
Cruise
Control
SystemESPECUACCECUEngineECUTransmission
ECURadarSensor第4页SensorsActuatorsSetpointGeneratorsSensorsActuatorsSetpointGeneratorsSensorsActuatorsSetpointGeneratorsBusHierarchy
Level
1Hierarchy
Level
2The
ACC
ECU
and
ACC
Systemsf1f2f3f4ECU1ECU2ECU3VehicleFunctionsControl
UnitVehicle第5页ECUs
Onboardthe
VehicleFunction
and
ECU
networks
of
the
vehicle电子控制系统开发流程任务分解系统集成ECU的硬件设计ECU的软件设计执行器开发给定信号和传感器开发第6页供应商管理质量控制体系车辆电子控制系统项目管理流程平台配置管理需求管理开发流程ysis
of
User
Requirements&
Specification
of
Logic
System
Architectureysis
ofLogical
System
Architecture&
Specification
ofTechnical
System
ArchitectureSystem
DevelopmentSoftwareDevelopmentysis
ofSoftware
Requirements&
Specification
of
Software
ArchitectureSpecificationof
Software
ComponentsDesign
&
Implementation
of
Software
ComponentsAcceptance
Test&
System
TestCalibrationSystem
Integration
TestIntegration
of
System
ComponentsSoftware
Integration
TestIntegration
ofSoftware
ComponentsTesting
of
Software
ComponentsLogic
System
Architecturef1
f2ECU3Control
Unitf3f4FunctionTechnical
System
ArchitectureECU1ECU2Software电子控制系统与的开发流程需求支持开发流程第7页ysis
ofUser
Requirements&
Specification
ofLogic
System
Architectureysis
ofLogical
System
Architecture&
Specification
ofTechnical
System
ArchitectureSystemDevelopmentSoftwareDevelopmentysis
ofSoftware
Requirements&
Specification
ofSoftware
ArchitectureSpecificationof
Software
ComponentsDesign
&
Implementationof
Software
ComponentsAcceptance
Test&
SystemTestCalibrationSystemIntegration
TestIntegration
ofSystem
ComponentsSoftware
Integration
TestIntegration
ofSoftware
ComponentsTesting
of
SoftwareComponentsf1f2f3
f4Logical
System
ArchitectureFunctionControl
UnitTechnical
System
ArchitectureECU1
ECU2ECU3Software第8页电路转换和BIOS的分配和设置发驾驶员、
和变速器的协调控制发速器的模型和控制策略部件解释信号的输出和功能函数的服务要求ServiceRequirementsof
Function逻辑通道数的服务要求ServiceRequirementsof
logic
channelnumber逻辑通道服务要求ServiceRequirementsof
logic
channel(in
Ticks)部件的测量
ComponentsMeasurement控制算法的要求Requirement
ofcontrol
strategyI/O
电路处理器模块驾驶员发变速器部件操作
层SUL(SupervisorLayer)整车抽象层VAL(VehicleionLayer)部件抽象层CAL(ComponentionLayer)硬件抽象层HAL(HardwareionLayer)控制器抽象层PAL(ProcessorionLayer)基本输入输出BIOS(Basic
Input/Output
System)硬件部件测量结果(物理值)ComponentsMeasurement(Physical
MeasureValue)ECU引脚电气信号ECU
Plug
(electricMeasure
value:V,R,I)单片机引脚电气信号
MCUPin
(fromMCUreceivedelectric
measurevalue:V)模连接到
块Connection
toperipheral
module(peripheralspecific)驾驶员意图Driver’s
desire电路转换特性和参数功能模块配置和参数整车特性和参数发变速器的特性和参数传感器和执行器的特性和参数寄存器地址和定义器寄存
和操作要求Access
&OperationRequirementsof
RegistersBIOS分配要求
Requirementsof
BIOS
Config被控对象的
特性要求Requirementsof
Plants传感器和执行器部件的参数要求Requirementsof
Sensors
andActuators信号处理要求
Requirementsof
SignalCircuitin
ECUSoftware
layers数据层次第9页1.2.3.ysis
of
user
requirements
and
specification
of
logical
system
architecture;在逻辑层次解决客户需求和指标ysis
of
the
logical
system
architecture
and
specification
of
technical
systemarchitecture;分析逻辑层次的构架,确定技术层次的解决方案;ysis
of
software
requirements
and
specification
of
software
architecture;确定
部分的解决方案和技术指标Specification
of
software
components;
确定
模块的指标Design,implementation,and
tests
of
software
components;设计和测试模块Integration
of
software
components
and
software
integration
tests;集成模块和
集成测试Integration
of
system
components
and
system
integration
tests;系统集成和测试Calibration;标定System
test
and
acceptance
test;系统测试和检验第10页传统的
设计框架/
Traditional
Architecture
of
AECs
Software前
模式/
Foreground
and
background
Mode前/
系
个大循环,循环查询各种标志位。如果标志位置位,就执行相应的服务程序。/
The
foreground
and
background
mode
is
a
super
loop,which
inquiry
every
flags
to
implement
corresponding
service
routine.标志位就是标志事件的发生,事件响应延时处于不可
状态。/
The
Flagpresents
the
events
happened.
The
response
delay
is
un-predicable.中断服务虽然能即时/优先响应,但是它们和主循环的通讯,也是通过置主循环中相应的标志位来完成的。/The
interrupt
mechanism
providesthepriority
and
real-time
to
response,but
they
need
the
flags
to
communicate
withthe
main
loop.的情况是循环中所有其他的事件服务程序执行完,才响应当前事件。/
In
the
worst
case,
the
response
current
event
can
only
happened
after
all
theother
events
have
been
implemented.第11页设计框架/Traditional
Architecture
of传统的AECs
Software,
前台?:应用程序是一个无限循环,巡回地执行多个事件,完成相应的操作,这一部分
称为
,通常在主程序main()中被调用。/Background
is
an
infini oop,
generally
is
called
bymain.前台:一般由中断服务程序组成,中断服务程序处理异步事件,这一部分可以看成是前台。/Foreground
generally
consists
of
interrupt
serviceroutine.因此,
也可称为任务级,而前台则被称为中断级。/Hence
background
is
tasks
andForeground
is
interrupts.第12页设计框架/Traditional
Architecture
of
AECs
Software/* 程序*/while
(1){action1();action2();...actionn();}}传统的前
设计main(){/*硬件初始化*/action1(){ /*执行操作1
*/...}action2(){ /*执行操作2
*/...}...actionn(){ /*执行操作n
*/...}isr1(){ /*中断1的中断服务程序
*/...}isr2(){ /*中断2的中断服务程序*/...}...isrn(){ /*中断n的中断服务程序*/...}前台第13页控制周期/Control
PeriodAction1Action2...ActionNAction1Action2设计框架/Traditional
Architecture
of
AECs
Software传统的前
设计优先级/
Priority时间/Time巡回服务系统中,处理器总是处于全速运行状态(即通常所说的Poll轮循方法),处理器的开销比较大,带来的问题是能耗高。如果系统的外部事件不是发生得很频繁,那么可以降低处理器服务事件的频率,同时这样也不会降低响应时间,这时就采用定时器驱动的巡回服务系统。同时这种巡回服务系统,控制周期不是很精确,为保证控制周期的精确度,例如标准的10ms控制周期,往往采用定时器触发,每隔10ms产生一次定时器中断,一般又叫Period
Interrupt
Timer,简称PIT。第14页设计框架/Traditional
Architecture
of
AECs
Software设计,其主程序只有初始化函数,任务调度放在定传统的采用定时器触发的时器中断服务程序中。main(){/*系统初始化*//*设置定时器*/while
(1)enter_low_power();}isr_timer()/*定时器的中断处理程序*/{action1();/*执行事件1的处理*/action2();/*执行事件2的处理*/...actionn();/*执行事件n的处理*/}第15页设计框架/Traditional
Architecture
of
AECs
Software传统的前
设计采用定时器配置的
配置/
The
background
of
triggered
by
timer.控制周期可以由定时精确控制;/Period
is
precisely
controlled
by
timer.没有任务时可以进入睡眠模式;/CPU
enter
standbymode
without
task.Action1Action2...ActionNAction1Action2控制周期/Control
Period时间/Time优先级/
isr_timerPriority休眠/Standbyisr_timer第16页传统的
设计框架/
Traditional
Architecture
of
AECs
Software前台的设计,就转变为中断的配置,通常在定时器中断服务程序中要重新开中断允许,并且中断的优先级要高于定时器中断ISR_timer,这样前台的程序ISR1~ISR3等就可以得到及时的响应。...Action1Action2...ActionN控制周期/Control
Period优先级/Priority时间/TimeISR1Action2ISR2ISR4ISR3前台的优先级Priority
ofForeground对事件的响应延迟Delay
of
eventresponseisr_timer第17页传统的
设计框架/
Traditional
Architecture
of
AECs
Software前
举例:转速信号测量
(实验二)/*
模板*/main(){/*硬件初始化*//* 程序*/while
(1){action1();action2();...actionn();}}void
main(void){REMOVE
THIS
CODE!!!
***/PE_low_level_init();/***
End
of
Processor
Exper***//*
Write
your
code
here
*/Cap1_Enable();/***
Processor
Expert
end
oMODIFY
THIS
CODE!!!
***/for(;;){}/***
Processor
Expert
end
offO***/byte
Cap1_Enable(void)/***
Processor
Expert
intern{T1SC_TSTOP
=
0;/*
Run
counter
*//*T1SC0:CH0F=0,CH0IE=1,MS0B=0,MS0A=0,ELS0B=0,ELS0A=1,TOV0=0,CH0MAX=0
*/T1SC0
=
0x44;/*Enable
both
interrupt
andcapture
function
*/return
ERR_OK;WRITE
CODE
BELOW!!!
***/
/*OK
*/}
/***
End
of
main
routine.D
}第18页传统的
设计框架/
Traditional
Architecture
of
AECs
Software前
举例:转速信号测量
(实验二)volatile
unsigned
int
Capturevalue0;volatile
unsigned
intCaptureDiff;volatile
unsigned
int
;void
Cap1_OnCapture(void){static
unsigned
char
CaptureFlag
=
1;if(CaptureFlag
==
1)
{Capturevalue0
=
Cap1_GetCaptureValue();}
else
{CaptureDiff
=
Capturevalue0
-
Cap1_GetCaptureValue();}CaptureFlag
=
1-CaptureFlag
;Cap1_Enable();/*
Write
your
code
here
...
*/}/*
END
Events
*/}ISR(Cap1_Interrupt){T1SC0_CH0F
=
0;/*
Reset
interrupt
request
flag
*/Cap1_OnCapture();/*
Invoke
user
event
*//*
END
Cap1.
*/第19页设计框架/Traditional
Architecture
of现代的AECs
Software采用
实时操作系统的模式/
EmbeddedReal-TimeOperatingSystem实时系统(uCOS):整个程序分成一个个看起来好象是并行的任务,每个任务都在等待事件的发生。因为uCOS不支持时间片轮转,除了最低优先级任务(在uCOS中是IDLE任务)是死循环以外,其他的任务都不能死循环,只能在驱动事件驱动下工作。任何驱动事件的产生,都使优先级最高的就绪任务运行。任务和任务/任务和中断的通讯,是通过相应事件驱动来完成的。:OSEK
实时操作系统介绍第20页OSEK
/VDXSULCALVALHALPALBIOSConfigurationCoordinationDriver-Engine-GearboxEngine-StrategyHardwareion
&FunctionIllustrationGearbox-StrategyOSEKOSLibrabiesComponents
Components-ControlControl
Sensor
Sensor
ysisysis
vehicle
GearboxComponents-Control/Sensorysis
EngineError
Handling&
FunctionillustrationOSEK
COM/NMInteraction
Layer
NetworkNetworkLayerProcessor
ion
InstrumentationPeripheral
Module-DriverData
Link
Layer第21页OSEK原文来自德语“Offene
Systeme
und
deren
Schnitts len
fürdie
Elektronik
im
Kraftfahrzeug”的缩写,英文的意思为“Open
systems
and
the
corresponding
interfacesfor
automotive
electronics”,中文可译为“
开放式系统及其接口”。OSEK最初由欧洲的汽车制造商于1994年提出,后来逐步发展为汽车工业的全球标准。OSEK主要包括了四个部分:OSEK
OS,操作系统OSEK
OIL,可执行语言OSEK
COM,通信管理OSEK
NM,网络管理第22页操作系统(OS)包括操作系统功能元素的描述和定义,例如任务(Tasks)、中断(Interrupts)、事件(Events)、计数器(Counters)、警报(Alarms)、资源(Resources)和
钩子(Hooks)等基本要素;以及如何定义应用程序接口(ApplicationProgrammingInterface,简称API),例如功能定义(Functions),类型定义(Type
definitions),常数变量定义(Constants)等;还包括进程调度(Scheduling)和优先级(Priority)如何确定和优化的方法;通过操作系统的调度,可以很灵活地适应汽车控制系统中的各种任务之间的嵌套。典型的OSEK
OS系统:Winder
River公司的OSEKWorks操作系统;ETAS公司的RTA-OSEK;Freescale公司的OSEK-Turbo;上述操作系统均满足OSEK的指标规范(Specification),而且覆盖了
控制系统中广泛采用了各种8位、16位和32位单片机型号。第23页可执行语言(OSEK
Implementation
Language,简称OIL)它在OSEKOS的基础上,帮助用户如何具体定义自己的应用(Application)。只要通过OIL来静态地配置各个任务属性、占有的资源、定义事件等工作,就能够确定程序跑起来之后,操作系统就能够实现动态调度任务的功能。也就是操作系统本身,包括调度的机制、中断嵌套、底层驱动都已经写好,只要解决了操作系统的应用配置(Application
Configuration)就可以让操作
系统进行任务管理了。通过OIL的配置文件,实现用户对OS的缩放(Scaling)和裁剪,从而使得操作系统能够适应各种各样的
控制系统的要求。OIL代表了用户对操作系统的配置文件,OSEK的创建工具(MakeTool)可将其通过SystemGenerator转化为C文件,结合OSEKOS的C文件与用户自己编程的C文件,一起由单片机的编辑器(例如Codewarrior等)编译、连接成可执行代码文件。第24页可执行语言(OSEK
Implementation
Language,简称OIL)第25页通信管理(COM)主要负责在任务之间的数据通信服务或者通过中断服务进行的通信服务,不同的任务通信可以发生在同一个ECU,也可以是多个ECU之间的外部通信服务。通信服务只能通过特殊的应用程序接口(ApplicationProgramInterface,简称API)进行接口;OSEK
COM的目标是为了使得应用
具有良好的开放接口(Portability)、良好的复用性能(Reusability)和良好的协调操作的性能(Interoperability)。而且通过API能够将
和外部通信之间的差别,以及不同的底层通讯协议、总线类型和网络的差别隐
,使得上层的应用(Application)独立于底层的通信。这个思路对后面介绍的AUTOSAR也是适用的!第26页通信管理(COM)CPU2CPU1InterProcessorInterProcessorOSEK
Application应用TASKATASKBCOM
APIInteractionLayerNetwork
Layer
网络层Data
Link
Layer
数据链路层Physical
Layer
物理层COM
APIInteractionLayerNetwork
Layer网络层Data
Link
Layer数据链路层Physical
Layer
物理层OSEK
Application应用TASKC总线例如CAN第27页InterTask网络管理(NM)网络管理的基本目标是为了保证ECU之间的通信的安全性和可靠性,网络管理具有下述的几个功能:OSEK各个层次之间的接口,例如与API接口;的
和
之间的交互接口等;适应不同总线协议的要求,例如CAN、LIN、J1850,K-Bus等协议,以及相应的错误处理、状态统计算法等;适应不同的节点资源,例如功能根据节点的要求对NM进行缩放,或者根据应用对网络管理服务进行定制等;还能够适应硬件设计需求,例如适应协议电路或者物理层电路的特性等;此
络管理还能够适应非OSEK规范的网络通信管理(StationManagement)和节点的管理策略等。第28页网络管理(NM)API(应用程序接口);连接到微控制器的各种总线接口;和动态
库(DLL)的接口;和通信管理COM接口;5)非OSEK标准类型的通信站点管理算法;OSEK管理算法;协议制定的网络管理算法Operating
SystemOSEK
COMNetworkManagmentApplicationStation
5)ManagementProtocol
7)SpecificAlgorithmsOSEK
6)AlgorithmsInteractionLayerNetworkLayerData
Link
Layer3)4)1)2)Bus
Communication
Hardware第29页Running/运行Suspended暂停Ready
/就绪Waiting/等待Terminate/终止Activate/激活Wait/等待Release/Start/启动Preempt/抢占OSEK问题1:任务状态如何标志?Running:In
the
running
state,the
CPU
is
assigned
to
the
task;Ready:
All
functionalprerequisites
for
a
transition
intothe
running
state
exist,
and
thetask
only
waits
for
allocation
ofthe
processor.Waiting:
A
task
cannot
continueexecution
because
it
shall
wait
forat
least
one
event.Suspended:
In
the
suspendedstate
the
task
is
passive
and
canbe
activated.扩展任务才有Waiting,基本任务只有另外三种状态!第30页OSEK问题2:任务是如何调度的?(1)Full
preemptive
scheduling/完全先占式调度模式在下图中,当优先级比较低的TaskT2正在运行时,TaskT1被一个事件激活,于是T1立刻由暂停(挂起,Suspended)状态转入就绪(Ready)状态,T2立刻由Running转入Ready状态。然后处理器响应T1,即T1进入运行状态,而T2处于就绪状态;当T1终止后,处理器继续运行T2状态。任务T1实时性重要得多,可随时打断别的任务!第31页OSEK问题2:任务是如何调度的?(1)Fullpreemptivescheduling/完全先占式调度模式用事件触发扩展任务的同步方式:第32页OSEK问题2:任务是如何调度的?(2)Non
preemptive
scheduling/非先占式调度模式在下图中,当优先级比较低的TaskT2正在运行时,TaskT1被一个事件激活,于是T1立刻由暂停(挂起,Suspended)状态转入就绪(Ready)状态,但是由于T2任务还没有结束,这时处理器继续执行T2,当T2终止后,处理器才能把T1转入运行状态。就算任务T1来了,我也执行完任务T2先!第33页OSEK问题2:任务是如何调度的?(2)Nonpreemptivescheduling/非先占式调度模式用事件触发扩展任务的同步方式:第34页同步/Synchronization事件的作用:在下例中,任务A和B通过事件X和Y实现状态同步Task
BTask
AState
A1State
B1Send
Event
XReceive
Event
XState
A2State
B2Event
XEvent
YState
A3State
B3Send
Event
YReceive
Event
YtState
A3State
A1Send
Event
XState
A2State
B1Receive
Event
XState
B2Send
Event
YState
B3第35页协同/CooperationTaskBTask
AWritingVariable
XGlobalVariable
XTimeReadingVariable
XTaskBTaskAWritingVariable
XGlobalVariable
XTimeReadingVariable
X读写例如X为2字节变量,X的初值=0xC066;TaskA中给X赋值,赋值指令为:X_High_Byte=0x80;X_Low_Byte=0x33;Task
B中
X的值,指令为:Temp1=X_High_Byte;Temp2=X_Low_Byte;X=Temp1*256+Temp2;Task
B读的结果为:X=0x8066B中断第36页协同/CooperationTaskBTask
AWritingVariable
XGlobalVariable
XTimeReadingVariable
XTask
BTask
AWritingVariable
XGlobalVariable
XTimeReadingVariable
XTask
A写X前,先禁止TaskB中断,写完之后再开中断例如X为2字节变量,X的初值=0xC066;TaskA中给X赋值,赋值指令为:X_High_Byte=0x80;X_Low_Byte=0x33;Task
B中
X的值,指令为:Temp1=X_High_Byte;Temp2=X_Low_Byte;X=Temp1*256+Temp2;Task
B读的结果为:X=0x8033中断第37页AUTOSAR:AUTomotive
Open
System
ARchitecture供应商之间可互换性车辆平台之间可互换性整车应用之间可互换性第38页AUTOSAR的层次/Layers
of
AUTOSARSW-C:Atomic
SoftWare
Component,
cannot
be
distributedover
several
ECUs.RTE:
Implements
the
VFB
functionality
on
a
specific
ECUBSW:
Basic
SoftWareSW-C服务应用ECU抽象层控制器抽象层复杂驱动(ComplexDrivers,间称CD)指发动机控制中的曲轴同步,点火和喷射控制,以及电磁阀驱动等。实时运行环境第39页系统服务内存服务硬件输入输出抽象层TheSW-C
is
independent
from
the
infrastructure:/SW-C
部件在源代码(Source
Code)上能够独立于:The
Type
of
microcontrollerof
ECU
onwhich
the
SW-C
isMapped/SW-C将要
到的目标ECU中单片机的类型;The
typeof
ECU
onwhich
the
SW-C
is
Mapped/SW-C将要到的目标ECU的类型;The
location
of
theotherSW-C
with
which
the
SW-C
interacts./和本SW-C进行通信交互的其它SW-C所在的ECU位置,也就是不管进行通信交互的SW-C是否在同一个ECU中;The
Number
of
times
aSW-C
is
instantiated
in
a
system
or
withinone
ECU/本SW-C在同一个系统或ECU中实现次数的多少。第40页TheSW-C
is
independent
from
the
infrastructure:第41页AUTOSAR的思路功能被定义一个个
部件(Software
Components,简称SW-C);以
部件的说明为输入,在进行代码开发之前,先采用虚拟功能总线(VirtualFunctional
Bus,简称VFB)来验证各之间和对外接口的有效性;将各个
部件配置到各个ECU中,并配置各个ECU的基本
模块(BasicSoftware,间称BSW);实时运行环境(Real
Time
Environment,简称RTE)负责SW-C和BSW之间的接口;SW-C与ECU无关,只有BSW才与ECU有关,功能独立于底层的软硬件,便于移植!第42页AUTOSAR的接口第43页OSEK/VDXAUTOSAR:MAL功能:是BSW的最底层,为微控制器(MCU)模块的驱动
,直器模块;接
MCU
的各个
模块,以及MCU作用:使得上层的其它
独立与控制器的硬件;代码执行特点:与MCU直接相关;上层接口:与MCU独立的标准化接口分为:处理器驱动,
器驱动,通讯驱动和输入输出驱动处理器驱动内存驱动通讯驱动输入输出驱动第44页AUTOSAR:ECU
ALECU抽象层与控制器抽象层接口,也包括了MCU外部设备的驱动;ECU抽象层通过API接口
MCU的模块和模块,而不用考虑模块的物理地址(MCU的还是外部),也不用考虑模块与MCU的接口方式(并口,SPI,串口等);功能:ECU
AL的目标是更上层独立于ECU的硬件;代码执行特点:与MCU无关,但与ECU有关;上层接口:与MCU和ECU硬件都无关,只有信号的类型有关。包括:通讯硬件抽象层,COM
HW输入输出硬件抽象层,I/O
HW器硬件抽象层,Memory
HW片上设备硬件抽象层,OnboardHW第45页;;AUTOSAR:CD复杂驱动(Complex
Drivers,简称CD)CD主要执行检测复杂的传感器和控制执行器,通过直接
微处理器的特殊中断或其
的复杂周边模块,例如TPU,PCP等;主要用于喷射控制,电磁阀控制,曲轴位置检测等,功能:接口传感器和执行器完成特定功能和定时要求代码执行特点:和MCU、ECU及应用程序都高度无关上层接口:根据AUTOSAR接口定义和执行。CD的技术标准并没有给出第46页AUTOSAR:SL是基本
BSW的最上层,通过ECU的抽象层
底层的I/O信号;SL包括了:操作系统功能,车辆网络通讯和管理服务, 器服务,服务,ECU的状态管理;功能:为上层应用提供基本服务和基本的
模块;代码执行特点:部分和单片机、ECU和应用系统相关;上层接口:与单片机和ECU都无关。第47页AUTOSAR:RTERTE是专门为上层应用程序(包括提供通讯服务的实时运行环境;部件、传感器部件和执行器部件)架构就从层(Layered)转为(Component
style);在RTE的上层AUTOSAR的部件(SW-C)通过RTE服务与ECU
或者外部的
部件(SW-C)建立通讯;功能:使得AUTOSAR
部件独立于所处的ECU。代码执行特点:由ECU和应用指定(一般和所在ECU相关);上层接口:完全独立所处的ECU,基于ECU无关;第48页AUTOSAR:ICCImplementation
Conformance
Classis第49页满足AUTOSAR的开发工具RTA-Real-Time
AUTOSARRTA-OSEKRTA-RTERTA-PDURTA-CAN第50页Introduction
to
OSEKturboVersion
01.000Patrick
S
ySenior
Field
ApplicationsEngineer第51页§5
控制系统的
设/计Software
Design
of
AECs§5.1A单片机运行的基础知识/Basic
background
of
MCU本节帮助大家掌握单片机的程序组织结构/This
section
help
youto
master
the
structure
of
programMC68HC908GZ16的CPU结构第1页§5
控制系统的 设计/
Software
Design
of
AECs问题1:MCU是如何开始运行的?上电之后,MCU的RESET脚有效(即复位状态,一般低电平有效),等待时钟稳定,因为晶振起振,频率稳定需要一点时间,几个到几十个毫秒。A
power-on
reset
(POR)
is
an
internal
reset
caused
by
a
positive
transition
on
theVDD
pin.
VDD
at
the
POR
must
go
below
VPOR
to
reset
the
MCU.
This
distinguishesbetween
a
reset
and
a
POR.对MC68HC908GZ16单片机,上电复位发生以下过程:Holds
the
clocks
to
the
central
processor
unit
(CPU)
and
modules
inactive
for
anoscillator
stabilization
delay
of
4096
CGMXCLK
cyclesDrives
the
RST
pin
low
during
the
oscillator
stabilization
delay.Releases
the
RST
pin
32
CGMXCLK
cycles
after
the
oscillator
stabilization
delay.Releases
the
CPU
to
begin
the
reset
vector
sequence
64
CGMXCLK
cycles
afterthe
oscillator
stabilization
delay.Sets
the
POR
and
LVI
bits
in
the
SIM
reset
status
register
and
clears
all
otherbits
in
the
register.第2页§5
控制系统的 设计/
Software
Design
of
AECs问题1:MCU是如何开始运行的?上电时序图第3页§5
控制系统的 设计/
Software
Design
of
AECs问题1:MCU是如何开始运行的?复位结束后,CPU主动到一个固定的地址取程序
。问题:CPU的是如何运行程序的?PC程序计数器专门用来单片机下一条要运行的程序物理地址。第4页§5
控制系统的 设计/
Software
Design
of
AECs问题1:MCU是如何开始运行的?复位结束后,CPU主动到一个固定的地址取程序
。问题:CPU的是如何运行程序的?CPU每运行一条指令,就自动把PC指向下一条程序的物理地址,因此又叫程序指针。PC=0x18A7物理地址程序指令第5页§5
控制系统的 设计/
Software
Design
of
AECs问题1:MCU是如何开始运行的?复位结束后,CPU主动到一个固定的地址取程序
,这个固定的地址就是存放复位向量的地方(POR
Vector),地址是$FFFE:
$FFFF;在Codewarrior下面,利用Memory窗口可以看见该地址存放的数值。在$FFFE的地方,存放着数据$18A7于是,复位结束后,CPU中的PC就从FFFE的地方得到了0x18A7的数值,于是MCU下一步就跳到物理地址是$18A7的地方,运行程序,而在该地址,存放的单片机复位之后第一次需要运行的程序_Startup()函数。第6页§5
控制系统的 设计/
Software
Design
of
AECs在这个例子里,地址$18A7地方存放是函数_Startup(void)的代码,所以复位之后CPU运行的第一条的指令就是机器码$450150,对应汇编指令为LDHX#0x0150,对应C语言的指令是INIT_SP_FROM_STARTUP_DESC();//即初始化堆栈指针。第7页复位后第一个执行的是启动程序,复位向量存贮了_startup()所在位置在这个例子里,地址$F08C地方存放是函数_Startup(void)的代码。于是引导单片机初始化的工作,就由_Startup(void)函数来完成。§5
控制系统的 设计/
Software
Design
of
AECsStartupCode一般用汇编语言写的,并且会连接到你编译过的可执行的模块中.它为执行C语言写的程序做准备。关闭中断把初始化过的数据从ROM中拷贝到RAM中将未初始化数据区清零给堆栈分配空间并初始化创建并初始化堆栈开放中断调用main()但是也可以和上述配置不一致第9页§5
控制系统的 设计/
Software
Design
of
AECs在这个例子里,_Startup()函数中只对堆栈进行了配置就转到了Main函数了。于是自己的编写的Main函数就接管CPU的运行。第10页§5
控制系统的 设计/
Software
Design
of
AECs问题2:MCU是如何响应中断的?例如在运行主循环任务时,在PC=0x2000发生了定时器中断IF3,于是PC下一步从物理地址为$FFF6:$FFF7的地方获得中断服务程序的
地址这里=$18BEmain(){/*硬件初始化*//* 程序*/while
(1){action1();action2();...actionn();}}PC=0x1000PC=0x1002…………PC=0x2000PC=0x3000§5
控制系统的 设计/
Software
Design
of
AECs问题2:MCU是如何响应中断的?于是PC=0x18BE,下一步CPU完成了进入的中断的规定动作之后(把寄存器的内容存入堆栈),就跳到物理地址是0x18BE的地方开始运行,也是运行中断服务程序。中断向量和复位向量是类似的,只是存放对应的物理地址不同。第12页§5
控制系统的 设计/
Software
Design
of
AECs问题2:MCU是如何响应中断的?为了把CPU的寄存器内容保留,响应中断之前,需要把寄存器的内容存入堆栈,等中断服务程序结束,返回主程序时,在把堆栈里的内容恢复到寄存器中。第13页§5
控制系统的 设计/
Software
Design
of
AECs问题2:MCU是如何响应中断的?为了把CPU的寄存器内容保留,响应中断之前,需要把寄存器的内容存入堆栈,等中断服务程序结束,返回主程序时,在把堆栈里的内容恢复到寄存器中。所以,在开中断之前,一定设置好堆栈指针!第14页§5
控制系统的 设计/
Software
Design
of
AECs问题2:MCU是如何响应中断的?每个单片机都会指定中断向量存
放表的物理地址!第15页§5
控制系统的 设计/
Software
Design
of
AECs问题2:MCU是如何响应中断的?所以,一定要查阅对照单片机说明资料,查到对应中断源的中断向量位置在什么地方,同时要看看中断优先级的排序。第16页§5
控制系统的 设计/
Software
Design
of
AECs问题3:如何在Codewarrior中配置中断?从网络学堂参见Codewarrior使用的PPT文件!第17页§5
控制系统的 设计/
Software
Design
of
AECs§5.2控制算法/ControlAlgorithm控制算法为带输入和输出逻辑模块/The
control
algorithm
is
theblocks
ofinput-output
system单片机的计算能力决定能够采用的控制算法的复杂程度/The
complexity
ofalgorithm
is
restricted
by
the
computational
capability
of
the
MCU
of
AECs典型的控制算法包括/The
typical
algorithm
blocks
include:简单的加减乘除数学逻辑/Simple
math
operation
such
as+-x/,…与、或、非等逻辑/Simple
logic
operation
such
asand,or,not,…信号滤波逻辑/The
filtering
algorithm
of
inputs
oroutputsPID等控制逻辑/The
PID
control
algorithm查MAP图和插值逻辑/The
interpolation
or
look
up
tables限制和饱和逻辑/The
non-linear
blocks
such
assaturation,limitation
et
al.实际的控制算法都要考虑物理意义的极限边界值/
The
actual
control
algorithmshould
considered
the
absolu imitation
of
physical
models.第1页§5.2控制算法/Control
Algorithm比例控制P/Proportional
element(P)输入参数:x输出参数:y标定参数:Kp,KpPos,KpNeg,WinPos,WinNegxk
WinPos,
yk
Kp
WinPos
KpPos
(xk
WinPos)xk
WinNeg,
yk
Kp
WinNeg
KpNeg
(xk
WinNeg)xyWinNegWinPosKpKpPosKpNegWinNeg
xk
WinPosyk
Kp
xk第2页§5.2控制算法/Control
Algorithm积分控制I/Integral
element(I)输入参数x,输出参数y,T0为采样时间,ix为初值;标定参数为Ki,KiPos,KiNeg,WinPos,WinNeg
Q
Ki
T
0Q
z11
z1
,Kisxk
WinPos,
Q
KiPos
T
0xk
WinNeg,
Q
KiNeg
T
0WinNeg
xk
WinPos,
Q
Ki
T
0yk
yk
1
Q
xkxQ*xkWinNegWinPosKi*T0KiPos*T0KiNeg*T0第3页§5.2控制算法/Control
Algorithm比例积分控制PI/Porportional
and
integral
element(PI)输入参数x,输出参数y,输出参数yp,输出参数yi,T0为采样事件,ix为初值;标定参数为Ki,KiPos,KiNeg,Kp,KpPos,KpNeg,WinPosI,WinNegI,WinPosP,WinNegP,以及标定参数lim(边界限制值),pv(输出的预置初值)ypk
Kp
xkWinNegP
xk
WinPosPxk
WinPosP,
yk
Kp
WinPosP
KpPos
(xk
WinPosP)xk
WinNegP,
yk
Kp
WinNegP
KpNeg
(xk
WinNegP)xk
WinPosI,
Q
KiPos
T
0xk
WinNegI
,
Q
KiNeg
T
0WinNegI
xk
WinPosI
,
Q
Ki
T
0yik
yik
1
Q
xk
,
Q
Ki
T
0yk
yik
ypkyLimNeg
yk
yLimPos第4页§5.2控制算法/Control
Algorithm比例积分控制PI/Porportional
and
integral
element(PI)第5页§5.2控制算法/Control
Algorithm带1阶延迟的比例环节PT1/Proportional
element
with
1storder
time
delay(PT1)又叫一阶滤波器输入参数x,输出参数y,T0为采样时间,Ix为初值;标定参数为Q11
T1
s1(1
Q)
z1,
Q
eT
0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生猪高热性疾病治疗的注意事项及对策研究
- 致密化不全心肌病超声诊断规范
- 兰山叉车培训资料
- 婴幼儿护理的任务和范围
- 离婚财产分割详细协议书模板
- 《场投标策略制定与中标合同变更合同》
- 仓储货物安全监控承包服务协议
- 餐饮行业员工劳动合同解除赔偿标准合同
- 家政擦窗服务合同范本含清洁工具与设备租赁条款
- 课程顾问年度工作总结
- 2024年河北唐山国控港口管理有限公司招聘笔试真题
- 2025新七年级语文下册期末字音字形专题复习课件
- 荆州中学2024-2025学年高二下学期6月月考语文试题(定)
- 脑机接口硬件优化-洞察及研究
- 2025年上海市中考数学真题试卷及答案
- 预算与绩效管理制度
- 理论联系实际谈一谈如何传承发展中华优-秀传统文化?参考答案
- T/SFABA 2-2016食品安全团体标准食品配料焙烤食品预拌粉
- T/CI 307-2024用于疾病治疗的间充质干细胞质量要求
- 《新生儿高胆红素血症诊治指南(2025)》解读课件
- 《艺术家心中的自画像》课件
评论
0/150
提交评论