image
<figcaption >汽车⾏业⾥整车⼚和供应商的关系(图⽚来源:AUTOSAR官⽹)</figcaption>
汽车⾏业⾥有众多的整车⼚(OEM)和供应商。⼀般来说,每⼀家OEM会⽣产不⽌⼀种车型,每⼀家OEM对不同⼦系统和零部件会选择不⽌⼀个供应商,每个供应商也会向不⽌⼀家OEM供货。减少开发成本最有效的办法就是,尽可能让产品可重复利⽤,⽤数量来分摊开发成本。OEM希望可以让同⼀套系统和部件⽤在不同的车型上;同⼀辆车上来⾃不同供应商的的各个系统和部件可以相互兼容;⽽供应商希望开发出来的部件和算法可以通过简单的软件调整就供给不同的OEM。
另⼀⽅⾯,各个供应商的开发进度往往是不同步的。⼈们希望可以在供应商开发的过程中就可以测试该部件能否与整车上的其它系统正确配合。因此需要⼀种统⼀的、标准化的系统描述⽅法。
这便是AUTOSAR的初衷,即通过提升OEM以及供应商之间软件模块的可复⽤性和可互换性来改进对复杂汽车电⼦电⽓架构的管理。
为此,AUTOSAR做了以下3件事情:
对应⽤软件与底层软件之间以及应⽤软件之间的接⼝进⾏标准化
给出⼀个控制器软件参考架构
规范分布式开发流程中的交换格式
通过这些⼿段,AUTOSAR希望可以做到:
提⾼软件的可扩展性和灵活性,⽅便应⽤功能的集成和转换,以及控制器⽹络的优化
提升软件的可复⽤性
降低产品和流程的复杂度和风险
提升软件的开发和更新速度
降低软件开发和维护成本
AUTOSAR提出了⼀个⼝号,叫做“Cooperate on standards, compete on implementation”。意思就是汽车⾏业的整车⼚和供应商共同合作开发⼀套汽车电⼦系统的软件开发标准,这样⼤家就可以专注于功能的开发,⽽⽆需顾虑⽬标硬件平台。
打个简单的⽐⽅。整车和零部件就好⽐是电脑和外设的关系,它们之间通过标准的USB接⼝来连接。⽆论是联想的电脑,还是戴尔的电脑,⽆论是100块的⿏标,还是1000块的⿏标,它们都互相可以即插即⽤。电脑⼚家可以专注做⾃⼰的电脑,⽽⽆需考虑会外接什么样的⿏标键盘;相应的,外设⼚可以专注做⾃⼰的⿏标键盘,⽽⽆需考虑会⽤在什么样的电脑上。它们之间的接⼝和交换格式,已经由USB标准规定了。这就是标准化带来的便利。
3. AUTOSAR的基本思想
在⼀个汽车控制器中,除了实现具体功能及算法的应⽤软件,还有许多底层软件来保证控制器的正常运⾏,⽐如CAN总线信号的收发、任务进程的调度、Flash数据的读写等等。⼀⽅⾯,不同控制器中这部分底层软件的功能重复度很⾼;⽽另⼀⽅⾯这部分底层软件⼜跟硬件紧密相连,在⼀个处理器平台上写好的软件,换⼀个处理器平台就不能⽤了。去为每⼀个控制器项⽬专门写⼀套底层软件显然是⾮常低效的,⽽且也容易出错。
于是⼈们就想通过标准化应⽤软件和底层软件之间的接⼝,来让应⽤软件开发者可以专注于具体应⽤功能的开发,⽽⽆需考虑控制器底层的运⾏过程。这样即使更换了处理器硬件,应⽤软件也⽆需做太多修改就可以被移植过去。⽽底层软件的开发则交给专门的公司,他们为每⼀个处理器硬件写好驱动,并封装成标准化接⼝提供给上层。这样底层软件就可以被⾼效地集成到不同项⽬中。⽽由于同⼀
套底层软件被⼤量重复使⽤,发现bug 的概率⼤⼤提⾼,从⽽可以很快得到修补,并且通过更新对其它项⽬进⾏同步修补。
image
<figcaption >AUTOSAR的基本思想:软硬件分离(图⽚来源:AUTOSAR官⽹)</figcaption>
为了让⼤家更直观地理解这套思想,我再打个⽐⽅。
image
box sizing
<figcaption >简单的寄信流程</figcaption>
假如⼩明现在要给⼩红寄⼀封信,需要分⼏步?我想⼤致可以分成以下⼏个步骤:
1. ⼩明把写好的信装进信封⾥,写上收信⼈和寄信⼈的姓名地址邮编,封好⼝,并贴上邮票。
2. ⼩明把信投⼊家附近的邮筒⾥。
3. 邮递员把信从邮筒收集到当地邮局,并按⽬的地进⾏分类。
4. 信件通过长途交通运输⼯具运送到⽬的地邮局。
image
image