技术干货 | 基于Modelica的1553B总线模型设计

news2024/11/26 0:51:30

一、引言

1553B总线是一种常用于航空航天领域的数据总线标准,广泛应用于各类航天器和航空器中。对1553B总线系统进行建模仿真,有助于验证设计、测试功能和排除潜在故障,帮助开发人员提高工作效率、降低开发成本,具有重要的工程意义。

MWORKS.Sysplorer作为面向多领域工业产品的系统建模仿真环境,完全支持多领域统一建模规范Modelica,遵循现实中拓扑结构的层次化建模方式,支撑基于模型的系统工程应用。本文以基于Modelica的1553B总线模型为例,对MWORKS.Sysplorer在信息域中的总线模型仿真方法进行介绍。

二、1553B协议简介

01  1553B总线结构 ✦

1553B总线上的设备主要分为两类,如图1所示,其中一个设备作为主机,负责控制整个总线的操作,称为总线控制器(Bus Controller,以下简称BC);其余设备则作为从机,进行数据的接收和发送,称为远程终端(Remote Terminal,以下简称RT);此外,在部分系统中还有监控总线上传输信息的总线监控器(Bus Monitor Terminal,一般称为BM或MT),本文模型不涉及。

图1 1553B总线拓扑模型

BC是1553B总线的主控设备,通常是计算机或其他主控设备,负责管理整个通信过程。BC控制总线访问权限,发起通信以及管理RT之间的数据交换,负责发送指令和请求,接收响应,并协调整个系统的操作。

RT是1553B系统中的被动设备,用于响应BC的指令和请求。RT可以是传感器、数据采集设备、显示器或其他外部设备。RT接收来自BC的指令或数据,并根据要求执行操作或提供所需的数据。由于1553B协议有5位地址位,因此,整个总线(包括BC在内)最多连接31个子设备(00000~11110,地址位为11111一般表示广播)。

02  1553B字格式 ✦

1553B总线上的消息由若干个字构成,分为指令字、数据字和状态字三种格式的字。每个字的字长为20位(比特),包括3位同步头、16位有效数据位和1位奇偶校验位,如图2所示。

图2 1553B的字格式

同步头用于标识一个字的开始,占用一个字的前三位,但仅由两个逻辑值组成,指令字和状态字的同步头相同,都是前1.5位为逻辑“1”,后1.5位为逻辑“0”,而数据字的同步头的逻辑值则与之相反。

4-19位为有效数据位,共16位,是各设备实际处理的指令和数据。最后一位对应图中的P位,是校验位,1553B协议的校验位是根据16位的有效数据位进行奇校验得出的。

03  1553B消息格式  ✦

1553B的每条消息由1或2个指令字、0~32个数据字和不多于2个状态字组成。其消息模式主要有三种:(1)BC-to-RT;(2)RT-to-BC;(3)RT-to-RT。如图3所示。此外,还有指令(仅指令字)、广播(一般是BC向所有RT发送消息,指令字中的地址为11111)等消息模式。

图3 1553B协议的消息格式

04  模型分层与建模思路  ✦

整个1553B协议可以分为三层建模:

(1)应用层:这是最高层,定义了与用户的接口和通信协议,主要是各个组件的概念模型。

(2)数据链路层:介于应用层和物理层之间,也是两者的接口,能将想要发送的指令和数据编成字,反过来也能将字恢复为原始数据。

(3)物理层:表示现实的高低电平或波形随时钟的变化。

为了便于理解,本文将详细介绍应用层的建模,并初步了解数据链路层建模。

三、 建模与仿真

结合Modelica建模经验,在创建1553B总线模型时,首先需要创建一套适配变量格式的接口模型,再从接口扩展出总线本身的模型以及BC、RT等设备的模型,最后将不同模型通过总线进行连接。总线系统建模过程如图4所示。

图4 总线系统建模过程

本文以某飞行器的1553B总线通讯场景为例,该总线上有主控计算机作为BC,以及三个系统设备(导航系统、通信系统和天气系统)作为RT,以BC-to-RT的形式,发送一条消息。

在这条消息中,有一个指令字和LengthData个数据字,总线上的导航、通信和天气三个系统都会收到这条消息,但仅有地址与指令字中目标地址一致的RT(导航系统)会读取数据字,其他RT不进行操作。

图5 模型连接

主控计算机作为BC,实例化名称为bC0_1,通过继承RT模型构造飞行器的导航、通信和天气三个系统设备,实例化后分别为rT0_1(地址00010)、rT0_2(地址00011)和rT0_3(地址00100)。

通常,信息在模型中的存储方式是数组,但如果将消息以数组的形式发送,在仿真中各变量的改变会瞬间完成,无法看到各变量随时间的变化。为了更直观地展示仿真结果,需要进一步设计数据链路层的模型。将有效数据编成字的步骤是其中的关键步骤,需要设计另一种接口类型,让消息能随时间“流”起来。

设计的接口需要输入原有模型中的数组,输出为消息流变量,且消息流的变化要根据1553B协议与时钟信号对齐。如图6所示,通过转换接口对数据进行读取。

图6 连接转换接口的1553B总线系统模型

仿真结果如图7所示,从上到下依次为时钟信号、主控计算机bC0_1发出的消息信号,导航系统rT0_1、通信系统rT0_2和天气系统rT0_3的指令读取和写入操作。

可以看到,通过此种建模方式可以直观地展示消息流每个字与时钟周期的对应关系和不同设备收到指令后的操作:导航系统在收到指令之后将数据字写入,而通信和天气系统收到指令后不进行写入操作,数据字中有效数据全为初始值0。

图7 各组件的信息流

图8 信息流的动态图

通过仿真结果,可以得知:MWORKS.Sysplorer能够准确地模拟1553B协议在总线中传输消息的过程,并且能够使组件模型根据消息中的指令执行相应的操作。这一结果证实了MWORKS.Sysplorer实现信息域仿真的可行性。

四、总结与展望

本文基于Modelica语言构建了1553B总线模型和信息流接口,并以某飞行器为背景对1553B总线模型数据通讯过程进行验证,为构建基于Modelica的装备信息物理融合模型奠定基础。后续的工作中,我们将继续完善这一系列总线模型,逐步对更大规模数据和更多通信方式下的总线模型构建方法进行分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1167416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一题】117. 填充每个节点的下一个右侧节点指针 II-2023.11.3

题目: 给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下&#xff…

【WSL/WSL 2-Redis】解决Windows家庭版/教育版无法安装WSL Ubuntu子系统与Redis安装

前言 在现代计算环境中,开发人员和技术爱好者通常需要在不同的操作系统之间切换,以便利用各种工具和应用程序。在这方面,Windows用户可能发现WSL(Windows Subsystem for Linux)是一个强大的工具,它允许他们…

Vue2组件化开发(路由与分页组件化)

组件化开发 组件化开发就是将一个页面拆分为多个不同的组件,每个组件依赖的Css,js,资源等放到一起进行开发,组件与组件之间可以进行嵌套,在组件化中,vue只有一个html文件,所有的组件都挂载在该文件上,这种单…

RabbitMQ 消息对象 序列化/反序列化 天坑!异常处理方案

目录 1. 报错的背景 2. 问题分析 3. 最佳解决办法 1. 报错的背景 a&#xff09;使用 RabbitMQ 发送消息时&#xff0c;发送消息的类型为 Map<String, Object>&#xff0c;map 里面我 put 了一个 <String, Long> 类型&#xff0c;如下图&#xff1a; b&#xff…

带你人工识别C#开源库BarcodeLib生成的一维码Code128

我们是做HIS系统开发的&#xff0c;前段时间发现某些处方的一维码出现无法识别的情况。看了一下一维码生成的逻辑&#xff0c;使用到了BarcodeLib库&#xff0c;经过反复确认&#xff0c;我们程序是没有问题的。后面不得不反编译看一下BarcodeLib生成一维码的逻辑。最后调整一维…

Techwalk攻略 | 来北京与OpenHarmony技术大会一起技术漫游!

去北京Citywalk已经不是新鲜事&#xff1f; 不如来第二届OpenHarmony技术大会一起Techwalk&#xff01; 大会即将开幕请速速收藏以下打卡攻略↓ 点击链接&#xff0c;观看线上直播

【从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程】

你是否曾读过一本让你欲罢不能的计算机书籍&#xff1f;它可能为你打开了新的技术世界大门&#xff0c;或者是帮助你解决了棘手的编程难题。 前言&#xff1a; 计算机技术的发展和互联网的普及&#xff0c;使信息处理和传输变得更加高效&#xff0c;极大地改变了金融、商业、…

服务器搭建:从零开始创建自己的Spring Boot应用【含登录、注册功能】

当然&#xff0c;你可以先按照IDEA搭建SSM框架【配置类、新手向】完成基础框架的搭建 步骤 1&#xff1a;设计并实现服务器端的用户数据库 在这个示例中&#xff0c;我们将使用MySQL数据库。首先&#xff0c;你需要安装MySQL并创建一个数据库以存储用户信息。以下是一些基本步…

分布式事务解决方案之Atomikos

这种方式只适用于 对于真正分布式应用不适用,原因在于 Atomikos需要获得所有数据源 统一进行事务管理 JTA(Java Transaction API)被称为Java事务API,是由Java语言提供的一套解决分布式事务的API标准 XA协议 1 2 31. XA协议是JTA的基础 2. XA协议最早由Tuxedo首先提出,并交给…

ChatGPT、Llama-2等大模型,能推算出你的隐私数据!

ChatGPT等大语言模型的推理能力有多强大&#xff1f;通过你发过的帖子或部分隐私数据&#xff0c;就能推算出你的住址、年龄、性别、职业、收入等隐私数据。 瑞士联邦理工学院通过搜集并手工标注了包含520个Reddit&#xff08;知名论坛&#xff09;用户的个人资料真实数据集Pe…

MySQL导入数据库报错Error Code: 2006

Error Code: 2006 - MySQL server has gone away 因为导入的某张表数据过大导致导入中途失败 , 修改max_allowed_packet 即可解决。 SET GLOBAL max_allowed_packet 1024*1024*200;

Pytest UI自动化测试实战实例

环境准备 序号库/插件/工具安装命令1确保您已经安装了python3.x2配置python3pycharmselenium2开发环境3安装pytest库pip install pytest4安装pytest -html 报告插件pip install pytest-html5安装pypiwin32库(用来模拟按键)pip install pypiwin326安装openpyxl解析excel文件库p…

享受户外的美好时光:花园吊椅的魅力

拥有舒适的花园吊椅&#xff0c;就像在家中创造了一个度假天堂。这些轻松摇摆的座位为您提供了一个完美的地方&#xff0c;既能舒适躺卧&#xff0c;又能让您在家中的花园或庭院中感受到度假的氛围。度过美好时光的吊椅&#xff0c;将成为家庭花园的一大亮点&#xff0c;为您带…

Python某建筑平台数据, 实现网站JS逆向解密

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: 首先我们先来安装一下写代码的软件&#xff08;对没安装的小白说&#xff09; Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器 专业版是付费的 <文章下方名片可获取魔法永久用~> 社区版是免费的 模块…

学生成绩管理神器

在信息化时代&#xff0c;你是否还在为处理大量的学生成绩数据而烦恼&#xff1f;是否还在用传统的方式&#xff0c;手动输入和整理成绩信息&#xff1f;今天&#xff0c;我将向你展示如何利用各种代码和Excel&#xff0c;打造一个学生自助查询成绩的神器&#xff0c;让数据管理…

ClickHouse 学习之基础入门(一)

第 1 章 ClickHouse 入 门 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用 C 语言编写&#xff0c;主要用于在线分析处理查询&#xff08;OLAP&#xff09;&#xff0c;能够使用 SQL 查询实时生成分析数据报告。 …

词典查询工具django-mdict

什么是 django-mdict &#xff1f; django-mdict 不是词典软件&#xff0c;是词典查询的脚本工具&#xff0c;主要目的是解决词典数量多&#xff0c;手机容量不足的问题&#xff0c;是对其他词典软件局域网在线查询功能的补充&#xff0c;是用 django 实现的 mdict 词典查询工具…

递归与快速算法

借鉴&#xff1a; 4分钟彻底掌握递归算法、斐波那契数列、快速排序&#xff0c;不再怕面试&#xff01;_哔哩哔哩_bilibili 可直接观看借鉴里的视频 快速算法

vcruntime140.dll在哪下载?vcruntime140.dll文件说明及其下载方法

vcruntime140.dll在哪下载&#xff1f;为啥还有这样的问题&#xff1f;其实就是你电脑的vcruntime140.dll文件丢失了&#xff0c;你需要重新去下载一个vcruntime140.dll文件&#xff0c;这时候你就会想这个东西到底要去哪里下载&#xff0c;今天我们就来给大家详细的解析一下&a…