汽车电子开发中MAB规范的命名约定

原创 汽车电子与软件 2025-03-31 08:46


作者 | 不可说

出品 | 汽车电子与软件



#01

MAB规范


MAB规范,即Model-Based Design Across MathWorks Products建模规范,是MathWorks公司制定的用于提高MATLABSimulink模型可读性、可维护性和可重用性的标准。


在汽车电子行业的MBD开发过程中,通常会要求符合MAB规范。


MAB规范中的各项规则都是有固定的ID,规则ID是用于标识指南的唯一标识符,它由两个小写字母和一个四位数字组成,这两部分之间通过下划线分隔。例如,规则ID的格式可以是“xx_nnnn”。一旦分配,规则ID便是永久性的,不会发生变化。这样的设计确保了每个规则ID都能准确且唯一地代表其对应的指南。


MAB规范涉及命名约定、SimulinkStateflow等多个方面,本文将基于V6版本的规范介绍下各种模块的命名约定规则,并给出一定的实践建议。




#02

命名约定


命名约定分为两大类:


1. 一般命名约定(General Conventions这部分规定了在不同情境下(如变量、函数、文件等)命名时应遵循的一般性原则。这些原则旨在确保命名的清晰性、一致性和易于理解,从而提高代码的可读性和可维护性。


2. 内容命名约定(Content Conventions,这部分则更具体地针对特定类型的内容(如文档、数据库表、字段等)规定了命名规则。这些规则旨在确保内容的组织结构清晰,命名准确反映内容的本质,从而便于信息的查找、理解和使用。


通过遵循这些命名约定,开发团队可以确保项目中的命名规范统一,减少命名冲突和误解,提高团队协作效率和代码质量。




#03

一般命名约定


这部分含有四条规则:


ar_0001: 文件名中可用的字符


规则:


a) 文件名中应仅使用以下字符类型:


单字节英文字母(a-z, A-Z


单字节数字(0-9


单字节下划线(_


不得使用换行符、单字节空格、双字节字符和控制字符。(控制字符:ASCII码小于32的字符(如换行符、制表符等));


b) 文件名不得以数字开头。


c) 文件名不得以下划线开头。


d) 文件名不得以下划线结尾。


e) 文件名中不得出现连续的下划线。


f) 文件名不得仅为单个MATLAB保留字。


g) MATLAB路径中的文件名不得重复


这些规范旨在确保文件名的清晰性、一致性和唯一性,从而便于文件的识别、管理和访问。遵循这些规范可以提高代码的可读性和可维护性,减少潜在的命名冲突和误解。


错误示例:


同名文件将保存到MATLAB路径的文件夹中。



ar_0002: 文件夹名称可用字符


规则


a) 文件夹名称中仅允许使用以下字符类型:


单字节字母数字字符(a-zA-Z0-9


单字节下划线(_


不允许使用换行符、单字节空格、双字节字符和控制字符。


b) 文件夹名称不能以数字开头。


c) 文件夹名称不能以下划线开头。


d) 文件夹名称不能以下划线结尾。


e) 文件夹名称中不能使用连续的下划线。


f) 文件夹名称不能仅由 MATLAB 的单个保留字组成。


错误示例:


文件夹使用了MATLAB保留字/文件夹名称以数字开头了;




实践建议:


  • 使用空格:建议用下划线(_)或连字符(-)代替空格。


  • 保持简洁:文件夹名称应简短且具有描述性,避免使用过长或复杂的名称。


  • 统一命名规则:在项目中采用一致的命名规则,以提高可读性和可维护性。


jc_0241: 模型文件名长度限制


规则


a) 模型文件名长度不得超过63个字符(不包括点和扩展名)。


模型引用可能无法引用过长的文件名。


jc_0242: 文件夹名称长度限制


规则


a) 文件夹名称长度不得超过63个字符。


过长的文件夹名称可能导致完整路径名无法在用户界面中显示。




#04

内容命名约定


这部分含有十六条规则:


jc_0201: 子系统名称中可用的字符


jc_0231: 块名称中可用的字符


jc_0211: Inport块和Outport块名称中可用的字符


这三条的规则基本一致,放这里一起讲


规则


a) 结构化子系统//InportOutport名称中仅允许使用以下字符类型:


单字节字母数字字符(a-z, A-Z, 0-9


单字节下划线(_


不允许使用换行符、单字节空格、双字节字符和控制字符。


b) 子系统//InportOutport名称不能以数字开头。


c) 子系统//InportOutport名称不能以下划线开头。


d) 子系统//InportOutport名称不能以下划线结尾。


e) 子系统//InportOutport名称中不能使用连续的下划线。


f) 子系统//InportOutport名称不能仅由 MATLAB 的单个保留字组成。


有额外的说明如下:


在添加新的块名称时,不允许使用换行符和单字节空格。然而,当这些字符最初被用作保存在Simulink库中的块名称时,它们是允许的。双字节字符和控制字符则不应使用。


比如下面的示例就是正常的:



子系统的错误示例:




块的错误示例:



InportOutport错误示例:



实践建议


统一命名规范


比如对于InportOutport来讲,使用一致的命名规范,例如In_SignalNameOut_SignalName,这有助于快速识别输入和输出信号。


避免保留字


不要使用 MATLAB 的保留字作为 InportOutport 块的名称,例如 in, out, input, output 等,这可能会导致代码生成或模型解析时出现问题。


清晰的命名


使用有意义的名称来描述信号的内容或来源,例如In_Temperature 或 Out_Speed,而不是简单的In1Out1,这有助于快速理解信号的含义。


jc_0243: 子系统名称长度限制


jc_0247: 块名称长度限制


jc_0244: Inport 和 Outport 名称长度限制


这三条的规则一致,放这里一起讲:


规则:


a) 结构化子系统名称的长度不得超过63个字符。


实践建议


1简洁命名


尽量使用简洁明了的名称来描述子系统的功能,避免过长的名称。例如,使用 SpeedControlSubsystem而不是 SpeedControlSystemForVehicleManagementSubsystem


2避免不必要的描述


避免在子系统名称中包含不必要的描述性文字。例如,SubsystemForProcessingData可以简化为DataProcessingSubsystem


3使用缩写


对于较长的名称,可以使用合理的缩写来保持在长度限制内,但要确保缩写在项目团队中是通用且易于理解的。例如,VehicleControlSubsystem可以缩写为VehCtrlSubsystem


4分层命名


如果子系统具有层次结构,可以在名称中使用下划线来分隔层次,但要注意总长度不超过限制。例如,Level1_SubsystemName


jc_0222: 信号和总线名称中可用的字符


规则:


a) 信号和总线名称中仅允许使用以下字符类型:


单字节字母数字字符(a-z, A-Z, 0-9


单字节下划线(_


不允许使用换行符、单字节空格、双字节字符和控制字符。


b) 信号和总线名称不能以数字开头。


c) 信号或总线名称不能以下划线开头。


d) 信号和总线名称不能以下划线结尾。


e) 信号和总线名称中不能使用连续的下划线。


f) 信号和总线名称不能仅由 MATLAB 的单个保留字组成。


实践建议


1.统一命名规范


对于信号和总线,使用一致的命名规范,例如SignalName BusName,这有助于快速识别信号和总线的功能。


2.清晰的命名


使用有意义的名称来描述信号或总线的内容或功能,例如TemperatureSignalControlBus,而不是简单的Sig1Bus1,这有助于快速理解信号或总线的含义


jc_0232: 参数名称中可用的字符


规则:


a) 参数名称不能以下划线结尾。


b) 参数名称中不能使用连续的下划线。


c) 参数名称不能仅由 MATLAB 的单个保留字组成。


实践建议


避免下划线的误用


避免在参数名称中以下划线结尾或使用连续的下划线,这可能会导致可读性问题或与某些工具的命名规则冲突。


避免保留字


不要使用MATLAB的保留字作为参数名称,例如if,for,while等,这可能会导致代码生成或模型解析时出现问题。


清晰的命名


使用有意义的名称来描述参数的用途,例如GainValueThresholdLevel,而不是简单的 param1param2,这有助于快速理解参数的含义。


统一命名规范


在项目中统一使用字母、数字和下划线来命名参数,避免使用特殊字符或空格,这有助于提高模型的可读性和一致性。


jc_0245: 信号和总线名称长度限制


jc_0246: 参数名称长度限制


jc_0796: Stateflow数据名称长度限制


这三条的规则一致:


a) 信号总线/参数/Stateflow数据名称的长度不得超过63个字符。


虽然没有明确的最小长度限制,但建议名称至少包含一个字符以保持可读性。


实践建议


1简洁命名


尽量使用简洁的名称来描述信号和总线,避免冗长的名称。例如,使用 SpeedSignal 而不是 VehicleSpeedSignalForEngineControl


2层次化命名


如果需要更详细的描述,可以使用层次化的命名方式,例如Eng.Speed(表示发动机速度)或Ctrl.Bus(表示控制总线)。这样可以在不超出长度限制的情况下提供足够的信息。


3避免不必要的前缀或后缀


避免在信号和总线名称中添加不必要的前缀或后缀,除非它们对于理解信号的含义是必要的。例如,避免使用Sig_SignalNameBus_BusName,除非它们有助于区分不同的信号或总线。


4统一命名规范


在项目中统一参数名称的命名规范,例如使用驼峰命名法(CamelCase)或下划线分隔(snake_case),以提高可读性和一致性。


jc_0795: Stateflow 数据名称中可用的字符


规则:


a) Stateflow数据名称不能以下划线开头。


b) Stateflow数据名称不能以下划线结尾。


c) Stateflow数据名称中不能使用连续的下划线。


d) Stateflow数据名称不能仅由MATLAB的单个保留字组成。


jc_0791: 重复的数据名称定义


规则:


a) 在基础工作区和模型工作区中,数据名称定义不得重复。


b) 数据名称在基础工作区和数据字典(sldd)中不得重复定义。


c) 数据名称在模型工作区和数据字典(sldd)中不得重复定义。


实践建议


统一管理数据定义


在项目中使用数据字典(sldd)来集中管理数据定义,避免在不同工作区中重复定义相同的数据名称。


明确命名规范


制定清晰的数据命名规范,确保数据名称具有唯一性和描述性。例如,使用前缀或后缀来区分不同来源或用途的数据。


避免全局变量冲突


在定义全局变量时,确保其名称在模型的所有工作区中都是唯一的,避免因重复定义导致的意外行为。


使用工具检查重复定义


使用SimulinkModel Advisor检查工具来验证模型中的数据名称是否重复定义,确保数据名称的唯一性。


jc_0792: 未使用的数据


规则:


a) 数据字典(sldd)中仅定义在 Simulink 或 Stateflow Coder 模型中实际使用的数据。


b) 模型工作区中仅定义在 Simulink 或 Stateflow 模型中实际使用的数据。


实践建议


定期清理


定期检查和清理数据字典和模型工作区,移除未使用的数据定义。这有助于减少模型的复杂性,提高模型的可维护性。


明确需求


在定义数据时,确保每个数据项都有明确的用途。如果某个数据项在模型中没有被引用,应考虑将其删除。


使用工具辅助


利用Simulink提供的工具(如Model Advisor)来检测未使用的数据。这些工具可以自动识别并报告未使用的数据项。


版本控制


在进行数据清理之前,确保对模型进行版本控制备份。这可以防止意外删除重要数据。


jc_0700: Stateflow块中的未使用数据


规则:


a) 配置参数未使用的数据应设置为警告错误,以防止在Stateflow块中出现未使用的Stateflow数据、事件和消息。


Stateflow模块中,未使用的数据和事件可能会影响代码的可维护性和可重用性。具体来说,当在生成的代码中插入关于未使用数据的声明性语句时,这些未使用的数据和事件会对代码产生影响。


正确示例:



错误示例:


 

实践建议


定期清理未使用数据


在开发过程中,定期检查并清理未使用的Stateflow数据、事件和消息,以保持模型的整洁和高效。


启用警告或错误提示


在项目设置中,将未使用的数据配置参数设置为警告错误,以便在模型中出现未使用数据时能够及时发现并处理。


代码生成前的检查


在生成代码之前,确保所有未使用的数据都已被清理,以避免在生成的代码中出现不必要的声明,这可能会增加代码的复杂性和维护成本。


na_0019限制变量名


规则:


a) 应避免使用保留的C语言变量名作为变量名。举例来说,诸如constTRUEFALSEinfinitynildoublesingleenumC语言中的保留字,在MATLAB编程时应予以避免,以防止潜在的命名冲突或误解。


b) 应避免使用与MATLAB内置函数相冲突的变量名。例如,convMATLAB中的一个函数,用于执行卷积运算,因此,不应将conv用作变量名,以防止覆盖或混淆MATLAB的内置功能。为了保持代码的清晰性和可维护性,建议选择与MATLAB函数名不冲突的变量名。


通过这种要求,可以提高代码的可读性:这使得代码更加清晰易懂,便于维护和调试。




#05

小  结


MAB规范中对命名约定做出的规范具有重要的意义:


1. 提高代码的可读性和可维护性


统一标准:通过定义明确的命名规则,确保所有开发人员遵循相同的命名标准,减少因命名不一致导致的混淆。


清晰表达意图:规范的命名能够清晰地表达变量、信号、模块或参数的用途和功能,使代码更易于理解。


降低维护成本:统一的命名规则使得代码更易于维护和修改,尤其是在团队协作或长期项目中。


2. 避免命名冲突和错误


防止保留字冲突:通过限制使用系统或工具的保留字,避免因命名冲突导致的编译错误或运行时异常。


减少歧义:明确的命名规则可以减少因命名歧义导致的逻辑错误或误解。


3. 增强跨平台和跨工具的兼容性


工具兼容性:MAB规范考虑了不同工具(如MATLABSimulink)的命名限制,确保命名规则适用于多种开发环境。


跨平台一致性:规范的命名规则可以确保代码在不同平台(如WindowsLinux)上的兼容性,避免因平台差异导致的命名问题。


通过遵循这些规范,开发人员可以显著提升代码质量,降低开发成本,并确保项目的高效推进。



/ END /


汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论 (0)
  • REACH和RoHS欧盟两项重要的环保法规有什么区别?适用范围有哪些?如何办理?REACH和RoHS是欧盟两项重要的环保法规,主要区别如下:一、核心定义与目标RoHS全称为《关于限制在电子电器设备中使用某些有害成分的指令》,旨在限制电子电器产品中的铅(Pb)、汞(Hg)、镉(Cd)、六价铬(Cr6+)、多溴联苯(PBBs)和多溴二苯醚(PBDEs)共6种物质,通过限制特定材料使用保障健康和环境安全REACH全称为《化学品的注册、评估、授权和限制》,覆盖欧盟市场所有化学品(食品和药品除外),通过登
    张工13144450251 2025-03-31 21:18 102浏览
  • 引言随着物联网和智能设备的快速发展,语音交互技术逐渐成为提升用户体验的核心功能之一。在此背景下,WT588E02B-8S语音芯片,凭借其创新的远程更新(OTA)功能、灵活定制能力及高集成度设计,成为智能设备语音方案的优选。本文将从技术特性、远程更新机制及典型应用场景三方面,解析该芯片的技术优势与实际应用价值。一、WT588E02B-8S语音芯片的核心技术特性高性能硬件架构WT588E02B-8S采用16位DSP内核,内部振荡频率达32MHz,支持16位PWM/DAC输出,可直接驱动8Ω/0.5W
    广州唯创电子 2025-04-01 08:38 133浏览
  • 文/郭楚妤编辑/cc孙聪颖‍不久前,中国发展高层论坛 2025 年年会(CDF)刚刚落下帷幕。本次年会围绕 “全面释放发展动能,共促全球经济稳定增长” 这一主题,吸引了全球各界目光,众多重磅嘉宾的出席与发言成为舆论焦点。其中,韩国三星集团会长李在镕时隔两年的访华之行,更是引发广泛热议。一直以来,李在镕给外界的印象是不苟言笑。然而,在论坛开幕前一天,李在镕却意外打破固有形象。3 月 22 日,李在镕与高通公司总裁安蒙一同现身北京小米汽车工厂。小米方面极为重视此次会面,CEO 雷军亲自接待,小米副董
    华尔街科技眼 2025-04-01 19:39 68浏览
  • 文/Leon编辑/cc孙聪颖‍步入 2025 年,国家进一步加大促消费、扩内需的政策力度,家电国补政策将持续贯穿全年。这一利好举措,为行业发展注入强劲的增长动力。(详情见:2025:消费提振要靠国补还是“看不见的手”?)但与此同时,也对家电企业在战略规划、产品打造以及市场营销等多个维度,提出了更为严苛的要求。在刚刚落幕的中国家电及消费电子博览会(AWE)上,家电行业的竞争呈现出胶着的态势,各大品牌为在激烈的市场竞争中脱颖而出,纷纷加大产品研发投入,积极推出新产品,试图提升产品附加值与市场竞争力。
    华尔街科技眼 2025-04-01 19:49 73浏览
  • 据先科电子官方信息,其产品包装标签将于2024年5月1日进行全面升级。作为电子元器件行业资讯平台,大鱼芯城为您梳理本次变更的核心内容及影响:一、标签变更核心要点标签整合与环保优化变更前:卷盘、内盒及外箱需分别粘贴2张标签(含独立环保标识)。变更后:环保标识(RoHS/HAF/PbF)整合至单张标签,减少重复贴标流程。标签尺寸调整卷盘/内盒标签:尺寸由5030mm升级至**8040mm**,信息展示更清晰。外箱标签:尺寸统一为8040mm(原7040mm),提升一致性。关键信息新增新增LOT批次编
    大鱼芯城 2025-04-01 15:02 149浏览
  • 在智能交互设备快速发展的今天,语音芯片作为人机交互的核心组件,其性能直接影响用户体验与产品竞争力。WT588F02B-8S语音芯片,凭借其静态功耗<5μA的卓越低功耗特性,成为物联网、智能家居、工业自动化等领域的理想选择,为设备赋予“听得懂、说得清”的智能化能力。一、核心优势:低功耗与高性能的完美结合超低待机功耗WT588F02B-8S在休眠模式下待机电流仅为5μA以下,显著延长了电池供电设备的续航能力。例如,在电子锁、气体检测仪等需长期待机的场景中,用户无需频繁更换电池,降低了维护成本。灵活的
    广州唯创电子 2025-04-02 08:34 46浏览
  • 提到“质量”这两个字,我们不会忘记那些奠定基础的大师们:休哈特、戴明、朱兰、克劳士比、费根堡姆、石川馨、田口玄一……正是他们的思想和实践,构筑了现代质量管理的核心体系,也深远影响了无数企业和管理者。今天,就让我们一同致敬这些质量管理的先驱!(最近流行『吉卜力风格』AI插图,我们也来玩玩用『吉卜力风格』重绘质量大师画象)1. 休哈特:统计质量控制的奠基者沃尔特·A·休哈特,美国工程师、统计学家,被誉为“统计质量控制之父”。1924年,他提出世界上第一张控制图,并于1931年出版《产品制造质量的经济
    优思学院 2025-04-01 14:02 104浏览
  •        在“软件定义汽车”的时代浪潮下,车载软件的重要性日益凸显,软件在整车成本中的比重逐步攀升,已成为汽车智能化、网联化、电动化发展的核心驱动力。车载软件的质量直接关系到车辆的安全性、可靠性以及用户体验,因此,构建一套科学、严谨、高效的车载软件研发流程,确保软件质量的稳定性和可控性,已成为行业共识和迫切需求。       作为汽车电子系统领域的杰出企业,经纬恒润深刻理解车载软件研发的复杂性和挑战性,致力于为O
    经纬恒润 2025-03-31 16:48 79浏览
  • 引言在语音芯片设计中,输出电路的设计直接影响音频质量与系统稳定性。WT588系列语音芯片(如WT588F02B、WT588F02A/04A/08A等),因其高集成度与灵活性被广泛应用于智能设备。然而,不同型号在硬件设计上存在关键差异,尤其是DAC加功放输出电路的配置要求。本文将从硬件架构、电路设计要点及选型建议三方面,解析WT588F02B与F02A/04A/08A的核心区别,帮助开发者高效完成产品设计。一、核心硬件差异对比WT588F02B与F02A/04A/08A系列芯片均支持PWM直推喇叭
    广州唯创电子 2025-04-01 08:53 143浏览
  • 职场之路并非一帆风顺,从初入职场的新人成长为团队中不可或缺的骨干,背后需要经历一系列内在的蜕变。许多人误以为只需努力工作便能顺利晋升,其实核心在于思维方式的更新。走出舒适区、打破旧有框架,正是让自己与众不同的重要法宝。在这条道路上,你不只需要扎实的技能,更需要敏锐的观察力、不断自省的精神和前瞻的格局。今天,就来聊聊那改变命运的三大思维转变,让你在职场上稳步前行。工作初期,总会遇到各式各样的难题。最初,我们习惯于围绕手头任务来制定计划,专注于眼前的目标。然而,职场的竞争从来不是单打独斗,而是团队协
    优思学院 2025-04-01 17:29 87浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦