开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 71|回复: 1

汽车功能软件开发 02 变量 标定和接口管理

[复制链接]

1

主题

3

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-12-4 18:04:49 | 显示全部楼层 |阅读模式
[7 软件开发]
系列相关文章跳转请点击以下链接:
汽车功能软件开发 01 概述
汽车功能软件开发 02 变量 标定和接口管理
汽车功能软件开发 03 matlab模型实现
1 变量

数据存储类型从Auto切换到ImportedExtren,意为Simulink生成的代码不会重新申明变量,而是使用extren标志为外部引用变量。
手工创建接口变量、Simulnk信号线等。在实际工程中,输入输出信号可能会有几十上百个。如果都用手工创建信号及移植代码,这工作量无疑是惊人的,而且整个过程容不得半点错误。因此实际工作中需要一些自动化的生成工具,直接把这部分繁琐的工作取代掉。
2 标定

3 接口

3.1 功能接口


3.2 函数接口

每个功能模块的Simulink模型最终都可得到相应的函数接口。
得到每个功能模块的函数接口后,需要将其部署在OS中,让OS在不同的任务(Task)下调用对应的函数接口,即可实现该子模块的功能。

嵌入式系统中,从应用层的角度看,任务(Task)主要分为如下几种:
(1)周期性任务:这是最常见的,按固定频率周期性执行的任务。
根据需要可能有多个不同频率,比如 1ms, 5ms,10ms,20ms,50ms,100ms,1000ms任务。
(2)一次性任务
比如控制器的上电初始化任务(initialize任务):initialize任务主要对某些变量赋合理的初值,
下电switch off任务:如发动机风扇在发动机熄火后依然需要运转直至发动机水温降低到设定的温度才会退出。
(3)中断任务
实时性要求特别高的,受中断调度的任务,如按键中断点亮LED灯,再如发动机的点火喷油任务是通过定时器中断任务去触发的。
(4)事件型任务
如某些CAN信号是事件型,只有在事件发生接收到该CAN信号时才会进行相应处理。

利用Simulink生成不同任务的函数接口的常见的方式主要有两种:
1 采用不同的采样周期进行建模
当每个Subsystem分别以不同采样率建模后,每个Subsystem将会根据采样率的不同的生成对应的函数入口。
2 使用FunctionCall Subsystem进行建模
当使Functioncall Subsystem进行建模时,需要使用Stateflow构建一调度器。
回复

使用道具 举报

1

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-4 18:05:37 | 显示全部楼层
用stateflow进行软分频调度的多一些吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-18 05:11 , Processed in 0.104005 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表