最近看到几篇关于Simulink及AutoSar的Blog和Paper,感觉比较有意思,转载备忘之。

1. 看衰Simulink及AutoSar

From:Tumiz的技术天地

https://blog.csdn.net/tumiz/article/details/48660191

作者:Tumiz

其实Simulink和AutoSar的开发流程现在是越来越流行,这篇文章里的一些观点还是有失偏颇;

毕竟技术的惯性还是很厉害的,一些不适用Simulink/AutoSar的软件可以通过在系统设计的过程中合理划分各模块来最大程度地适配相应标准。

原文内容

simulink做为领域特定语言DSL,仅适合和数学相关的算法开发,不适合扩大应用范围,而现在的情况是simulink被滥用,而工具开发商还在推波助澜。

汽车领域内simulink的适用的开发范围是有限的,那就是算法开发。

除此之外,用simulink开发并不合适,如ADC、CAN收发、故障管理、网络管理等,对于这些与底层相关的IO处理程序无论是开发效率或是运行效率simulink都不及C/C++。

领域特定语言在特定的领域才有其优势,在此领域之外反而是弄巧成拙。

很多汽车工程师都用simulink建模并生成代码,认为其学习门槛低、可读性强、基于模型建模和自动代码生成是未来趋势应该完全simulink开发;

其实是一种误解,simulink作为一种图形化语言的确学习门槛低可读性强,这是因为simulink屏蔽了底层信息仅体现数理逻辑的缘故。

也正因此simulink缺乏了表现底层的能力,可以说专业性不够。

描述相同的底层功能,simulink的工作量要比C/C++多得多,运行效率却要差不少。

很多汽车工程师醉心于研究各种Matlab/Simulink的使用技巧,本来用C/C++很容易解决的问题,为了使用Matlab/Simulink而耗费了更多时间。

m语言和simulink作为数值计算领域内的特定语言,用其做算法开发十分容易,但是它并不能在所有领域通用,开发底层它不如C/C++,开发界面不如Java,开发网页不如HTML/Javascript。

当前,汽车控制器的软件除了硬件驱动、简单的调度之外就是控制算法了,功能性方面的开发并不是很多。

换句话说,现在的汽车控制器偏向于计算,而且计算量还不大,相对于手机或PC来说可以是很小,几乎没有存储功能,人机交互、机机交互的工作量(广义的IO处理)也很小,所以用simulink开发大部分上层程序是没有问题的,但是随着汽车控制器承担的功能越来越多,交互的工作会越来越多,随着智能化的发展,存储的需求会越来越多,而这些都不是Matlab/Simulink所擅长的,因为这些不是数学问题。

再谈autosar。

autosar作为宝马等整车厂提出的控制器软件架构标准,目的是为了切割划分控制器软件的层次,便于把软硬件包给不同的供应商来做,意图改变当前供应商软硬一体的格局,降低对某一供应商的依赖。

但是据我的实际使用体验,autosar的层次划分不清晰,架构设计实在糟糕。

首先,层次划分,ADC、CAN收发、故障管理、网络管理、传感器驱动等都是放在应用层来做,这些通常是放在底层完成的工作,却因为便于底层软件的固化(开发应用软件过程中不用改动)而被放在了应用层,这类似于windows的驱动安装,本来是底层的驱动被当成应用软件安装。但是windows驱动安装后仍然位于底层,而autosar里面这些程序生来就在应用层。

然后,这种架构设计糟糕在哪里呢,to be continued....

个人观点

Simulink/AutoSar偏向于算法仿真,我们在开发过程中可以用来快速验证算法,生成的代码也是可以优化的嘛。

算法验证完毕,封装算法,底层操作则可以通过C/C++来实现。

【2018.05.11 智能驾驶/汽车电子】非技术向:关于Simulink和AutoSar的几种观点的更多相关文章

  1. 【2018.05.10 智能驾驶/汽车电子】AutoSar Database-ARXML及Vector Database-DBC的对比

    最近使用python-canmatrix对can通信矩阵进行编辑转换时,发现arxml可以很容易转换为dbc,而dbc转arxml却需要费一番周折,需要额外处理添加一些信息. 注意:这里存疑,还是需要 ...

  2. 【2017.12.05 智能驾驶/汽车电子】转载:如何成为一名无人驾驶工程师 By刘少山

    之前对无人驾驶的理解就是通过刘少山老师的书:第一本无人驾驶技术书 通读之后,对智能驾驶有了一个初步的认识,如感知.决策.控制都涉及哪些领域,有哪些可以利用的技术: 但经过一段时间的实践,发现即使是在我 ...

  3. 【2017.09.15 智能驾驶/汽车电子】汽车高级驾驶辅助ADAS常用传感器厂商:激光雷达篇

    不定期更新,主要是汇总Internet上的激光雷达厂商资讯,不涉及技术,以备参考. 1. Innoviz:固态激光雷达公司 新闻链接:http://36kr.com/p/5092055.html 激光 ...

  4. 2018/05/11 PHP 设计模式之 适配器模式

    什么是适配器模式? 简单来说,我想买一根充电线,我买一根安卓的?还是买一根苹果的? 我也不确定,因为我以可能会换手机,对于我的形式我也不确定. 所以,我要买一根可以同时适配 安卓/苹果 的线. 所谓适 ...

  5. Microsoft Artificial Intelligence Conference(2018.05.21)

    时间:2018.05.21地点:北京嘉丽大酒店

  6. c++11 智能指针 unique_ptr、shared_ptr与weak_ptr

    c++11 智能指针 unique_ptr.shared_ptr与weak_ptr C++11中有unique_ptr.shared_ptr与weak_ptr等智能指针(smart pointer), ...

  7. 20172319 2018.04.11 《Java程序设计教程》第7周课堂测验(补写博客)

    20172319 2018.04.11 <Java程序设计教程>第7周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  8. Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

    2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache ...

  9. C++11——智能指针

    1. 介绍 一般一个程序在内存中可以大体划分为三部分——静态内存(局部的static对象.类static数据成员以及所有定义在函数或者类之外的变量).栈内存(保存和定义在函数或者类内部的变量)和动态内 ...

随机推荐

  1. 使用VSCode如何调试C#控制台程序_2_加深总结

    要想使用调试,必须创建项目 1-你要调式的类,控制台类等等,你需要放在一个项目下,这个项目最好是由使用.net core创建的,VSCode对应的命令为: dotnet new console(这里以 ...

  2. 第一册:lesson twenty-one.

    原文:Which book? A:Give me a book please,B. B:Which book? This one? A:No,not that one. The red one. B: ...

  3. 将汉字转化为拼音的js插件

    /*---------------------------------------------------------------- // 文件名:chinese2pinyin.js // 文件功能描 ...

  4. C#窗体越界时鼠标还能回到初始坐标位置

    对窗体加越界限制后,鼠标拖动窗体越界时,窗体不能动,鼠标位置可动,但窗体不再越界时,鼠标位置还能回到鼠标按下时相对窗体的坐标:1.首先创建一个窗体Form1,然后在窗体上拖一个button1按钮(主要 ...

  5. composer Content-Length mismatch

    今天在执行 :composer update 时一直提示: 本地 package.json如下: { "private": true, "scripts": { ...

  6. 雪碧图和如何实现浏览器中title的小图标

    background-position 雪碧图 我们的html和css中有三个属性可以向服务器发送请求 ser href url 2.overflow (1) 值hidden 超出就隐藏 (2)值sc ...

  7. Laravel篇二之本地版本库关联github

    以往的工作中都是使用svn作为版本控制,对git分布式的有些陌生,本篇主要记录的本地存储myWeb-laravel的git版本库与github建立关联. 1.首先进入本地myWeb-laravel,执 ...

  8. meta标签的http-equiv与content解析

    meta是html语言head区的一个辅助性标签,以下是meta的http-equiv属性和content属性的一些介绍. http-equiv属性 指示服务器在发送实际的文档之前,要在传送给浏览器的 ...

  9. [待优化笔记]原生JS实现验证框架 checkFun

    ;(function(){ /** 验证框架 checkFun * 使用方法: * <input class="required" type="text" ...

  10. 2018-09-28 用Python3和tkinter开发简单图形界面程序

    源码库: program-in-chinese/wubi_code_editor 起因在这里. 由于此项目和汉字相关, 个人也想尝试Python的图形界面开发, 于是开始尝试. 遇到的一个坑. 用户测 ...