主要内容

可以包

将单个信号打包成CAN消息

  • 库:
  • 万博1manbetxSimulink Real-Time / CAN / CAN MSG block

    车载网络工具箱/ CAN通信

    嵌入式编码器/嵌入式目标/主机通信

  • 可以包块

描述

在模拟过程中,CAN Pack块以指定的间隔将信号数据加载到消息中。

要使用此块,您必须有Simulink的许可证万博1manbetx®软件

可以包块支持:万博1manbetx

  • 万博1manbetx仿真软件加速器™快速加速模式。您可以加速Simulink模型的执行。万博1manbetx

  • 模型参考。您的模型可以包括其他的Simulink模型作为模块化组件。万博1manbetx

有关更多信息,请参见为有效加速设计你的模型

提示

  • 要使用J1939消息,请使用J1939 Communication块库中的块而不是这个块。

港口

输入

全部展开

CAN包块默认有一个输入端口。块输入的数量是动态的,取决于您为块指定的信号数量。例如,如果你的区块有四个信号,它就有四个区块输入。

块支持的输入信号数据万博1manbetx类型有:single, double, int8, int16, int32, int64, uint8, uint16, uint32, uint64, boolean。该块不支持定点数据类型。万博1manbetx

生成代码以将模型部署到目标。如果您的信号信息由长度大于32位的有符号或无符号整数组成,则不支持代码生成。万博1manbetx

输出

全部展开

这个块有一个输出端口,CAN Msg。CAN Pack块接受指定的输入参数并将信号打包到消息中。

参数

全部展开

  • 原始数据:输入数据作为uint8矢量数组。如果选择此选项,则只指定消息字段。所有其他信号参数字段不可用。这个选项只打开区块上的一个输入端口。

    换算公式为:

    raw_value = (physical_value - Offset) /因子
    在哪里physical_value信号的原始值是和吗raw_value为压缩后的信号值。

  • 手动指定信号:指定数据信号定义。如果选择此选项,请使用信号表创建您的信号。块输入的数量取决于您指定的信号数量。

  • CANdb指定信号:允许指定包含消息和信号定义的CAN数据库文件。如果选择此选项,请选择一个CANdb文件。块输入的数量取决于在CANdb文件中为所选消息指定的信号数量。

编程使用

块参数:DataFormat

属性中的CANdb文件输入数据时,此选项是可用的数据输入为列表。点击浏览查找系统上的CANdb文件。在CANdb文件中指定的消息列表填充消息对话框的一部分。CANdb文件还填充信号所选消息的表。

包含非字母数字字符(如等号、与号等)的文件名不是有效的CAN数据库文件名。您可以在数据库名称中使用句点。在使用CAN数据库文件之前,请将它们重命名为非字母数字字符。

编程使用

块参数:CANdbFile

属性中的CANdb文件输入数据时,此选项是可用的数据输入为字段中选择一个CANdb文件CANdb文件字段。中选择要显示信号详细信息的消息信号表格

编程使用

块参数:MsgList

为CAN消息指定一个名称。默认值是可以味精.如果您选择输入原始数据或手动指定信号,则可以使用此选项。如果您选择使用来自CANdb文件的信号,则此选项不可用。

编程使用

块参数:MsgName

指定CAN消息标识符是否为标准或者一个扩展类型。默认值是标准.标准标识符为11位标识符,扩展标识符为29位标识符。如果您选择输入原始数据或手动指定信号,则可以使用此选项。为CANdb指定信号,标识符类型从数据库继承类型。

编程使用

块参数:MsgIDType

指定您的CAN消息ID。对于标准标识符,该数字必须是0到2047之间的正整数,对于扩展标识符,该数字必须是0到536870911之间的正整数。属性也可以指定十六进制值hex2dec函数。如果您选择输入原始数据或手动指定信号,则可以使用此选项。

编程使用

块参数:MsgIdentifier

指定CAN消息的长度,从0到8字节。如果你正在使用CANdb指定信号对于您的数据输入,CANdb文件定义消息的长度。如果没有,该字段默认为8.如果您选择输入原始数据或手动指定信号,则可以使用此选项。

编程使用

块参数:MsgLength

指定CAN消息为远程帧。

编程使用

块参数:远程

为模块选择这个选项以Simulink总线信号输出CAN消息。万博1manbetx有关Simulink总线对象的更多信息,请参见万博1manbetx复合信号

编程使用

块参数:BusOutput

在信号表中添加一个信号。

编程使用

块参数:AddSignal

从信号表中移除一个信号。

编程使用

块参数:DeleteSignal

如果您选择手动指定信号或使用CANdb文件定义信号,则会出现此表。

如果您使用的是一个CANdb文件,那么文件中的数据将填充这个表,您不能编辑字段。如果需要编辑信号信息,请切换到手动指定的信号。

如果您选择手动指定信号,请在该表中创建您的信号。你创建的每个信号都有以下值:

的名字

为信号指定一个描述性名称。模型中的万博1manbetxSimulink块显示这个名称。默认值是信号(行号)

起始位

指定数据的起始位。起始位是从消息数据开始计算的最低有效位。起始位必须为0 ~ 63之间的整数。

长度(字节)

指定消息中信号占用的位数。长度为1 ~ 64之间的整数。

字节顺序

选择以下任一选项:

  • 字节顺序为小端格式(Intel®).在这种格式中,从最低有效位到最高有效位进行计数。例如,如果以小端格式打包一个字节的数据,起始位为20,数据位表类似下图。

    小端字节顺序从最低有效位到最高地址计数

    小端字节顺序从最低有效位到最高地址的图像

  • :其中字节顺序为大端格式(Motorola®).在这种格式中,从最低有效位数到最高有效位数。例如,如果以大端格式打包一个字节的数据,起始位为20,数据位表类似下图。

    从最低有效位到最低地址的大端字节顺序

    从最低有效位到最低地址的大端字节顺序的图像

数据类型

指定信号如何在分配的位中解释数据。选择:

  • 签署(默认)

  • 无符号

多路传输类型

指定块如何在每个时间步骤将信号打包到CAN消息中:

  • 标准:信号在每个时间步进被压缩。

  • 多路复用器:多路复用器信号,或模式信号被打包。只能指定一个多路复用器每个消息的信号。

  • 多路复用:信号被打包,如果多路复用器信号(模式信号)在运行时匹配配置多路复用的价值这个信号。

例如,消息具有以下类型和值的信号。

信号的名字 多路传输类型 多路复用的价值
一个信号 标准 不适用
Signal-B 多路复用 1
Signal-C 多路复用 0
Signal-D 多路复用器 不适用

在这个例子中:

  • 该模块在每个时间步骤中封装signal - a(标准信号)和signal - d(多路信号)。

  • 如果Signal-D在某一特定时间步长的值为1,则该块将Signal-B与该时间步长的Signal-A和Signal-D一起打包。

  • 如果Signal-D在一个特定的时间步长的值为0,则该块将Signal-C与该时间步长的Signal-A和Signal-D一起打包。

  • 如果Signal-D的值不为1或0,则该块不封装该时间步长的多路复用信号中的任何一个。

多路复用的价值

此选项仅在您已选择多路传输类型多路复用.所提供的值必须匹配多路复用器的块在运行时的信号值多路复用信号。的多路复用的价值必须是一个正整数或零。

因素

指定因素值,用于将物理值(信号值)转换为打包在消息中的原始值。有关更多信息,请参见数据输入参数转换公式。

抵消

指定抵消值,用于将物理值(信号值)转换为打包在消息中的原始值。有关更多信息,请参见数据输入参数转换公式。

最小值马克斯

定义信号值的范围。默认设置为(负无穷),分别。为CANdb指定信号,则从CAN数据库读取这些设置。为手动指定信号,可以指定信号的最小值和最大值。默认情况下,这些设置不会裁剪超过设置的信号值。

编程使用

块参数:SignalInfo
介绍了R2009a