汽车电子系统的设计必须考虑一些约束条件。首先,车辆的性能、质量和安全取决于在软件中实现的功能,此外也取决于这些功能之间的紧密合作(第1章)。其次,车载嵌入式系统是通过原始设备制造商(OEMs)和供应商之间共享的、复杂的、合作的、多方研发过程产生的。为了提高组件及其集成的生产效率,必须解决两个重要问题:①从一个ECU到另一个ECU的组件的可移植性,它能使组件在架构设计中具有灵活性;②平台间的组件重新使用,尤其是对ECU供应商而言,这是个关键点。因此,合作的研发过程提出了组件互操作性的问题。一个缓和软件组件集成问题的经典方法是实施一个中间件层,来提供有公共服务和一个通用接口的应用程序。特别的是,该通用接口允许应用程序的设计忽视硬件平台和分布,并因此使设计师专注于开发和验证实现一个功能的软件组件和软件架构。
在一套通常由中间件提供的公共服务中,那些涉及多个应用程序组件之间的通信是至关重要的。它们必须满足以下几个目标:
•通过服务和接口的利用率来隐藏分布,这些服务和接口对于ECU内、ECU间,以及无论什么样的底层协议的域间通信而言是相同的。
•通过提供一个独立于底层协议和CPU架构(如8/16/32位、字节顺序)的界面来隐藏平台(即微控制器、协议、操作系统等)的不统一。(www.daowen.com)
•通过验证服务(如工作模式管理、冗余管理、成员服务等)的重新使用,提供高层次的服务来缩短开发时间和提高质量。该功能的一个很好的例子是“帧封装”(有时候也称为“信号多路切换”),它使应用程序组件可以交换“信号”(如每分钟转数、车速、灯光的状态等),而在运行时“帧”通过网络传输;因此,中间件的帧封装服务表现为将信号包装到帧内,并且在正确的时间点发送帧,以确保每个包含信号的截止期限约束。
•确保应用程序所需的QoS属性;特别的是,它对于提高QoS是必要的,其中QoS通过较低水平的协议提供,例如,当由网络协议规定的CRC代码间距在可靠性目标方面不够充分时,提供额外的对应用程序透明的CRC。其他的例子是,在较低级别协议下的“错误”校正,比如CAN的“不一致信息复制”(见第6章和文献[47])、在CAN上提供可靠的确认服务、由应用程序组件所消耗的数据上的状态信息(例如,在最后读取后数据被刷新,不遵守数据的刷新约束等)或过滤机制(例如,每k次接受或当数据值显著改变时,通知应用程序)。
需要注意的是,有一个更先进的功能将赶上自适应通信服务,这是由于算法在运行时,会根据当前应用程序的要求(例如,市内驾驶或高速公路驾驶)或改变的环境条件(例如,电磁干扰水平)来修改通信协议的参数(例如,优先级、传输频率等)。目前据我们所知,在汽车嵌入式系统里还没有这样的功能。事实上,这一关键需要一个对于该功能设计的协调方法(如控制律参数的定义、功能鲁棒性的参数的识别等)和实现该功能软件架构的部署(特别是通信参数)。通过增加应用程序的效率和鲁棒性,这样一种自适应策略肯定会减轻可重用性问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。