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

2023-11-03 19:28

本文主要是介绍技术干货 | 基于Modelica的1553B总线模型设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、引言

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的装备信息物理融合模型奠定基础。后续的工作中,我们将继续完善这一系列总线模型,逐步对更大规模数据和更多通信方式下的总线模型构建方法进行分享。

这篇关于技术干货 | 基于Modelica的1553B总线模型设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/340372

相关文章

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll