可以包
将单个信号打包成CAN消息
- 库:
车载网络工具箱/ CAN通信
嵌入式编码器/嵌入式目标/主机通信
德州仪器C2000处理器/目标通信的嵌入式编码器支持包
Simulink实时/ CAN / CAN MSG块
描述
的可以包块在模拟过程中以指定的间隔将信号数据加载到CAN消息中。
要使用此块,您必须拥有Simulink的许可证®软件
的可以包块支持:
仿真软件加速器™快速加速模式。您可以加快Simulink模型的执行速度。
模型参考。您的模型可以包括其他Simulink模型作为模块化组件。
有关更多信息,请参见为有效加速度设计模型(模型).
提示
这个块可以用来编码J1939参数组的信号,最多8个字节。但是,要处理J1939消息,最好使用J1939 Communication块库中的块,而不是这个块。看到J1939通讯.
港口
输入
数据
- CAN消息信号输入
Single | double | int8 | int16 | int32 | int64 | uint32 | uint64 |布尔值
的可以包Block默认有一个输入端口。块输入的数量是动态的,取决于你为块指定的信号的数量。例如,如果消息有四个信号,则块可以有四个输入端口。
block支持如下输入信号数据类型:single、double、int8、int16、int32、int64、uint8、uint16、uint32、uint64、boolean。该块不支持定点数据类型。
将模型部署到目标的代码生成。如果信号信息由大于32位的有符号或无符号整数组成,则不支持代码生成。
输出
可以味精
- CAN消息输出
CAN_MESSAGE
|CAN_MESSAGE_BUS
该块有一个输出端口CAN Msg。CAN Pack块接受指定的输入信号并将它们打包到CAN消息中。类型决定输出数据类型输出为总线参数设置。
参数
数据输入为
-选择数据信号
原始数据
(默认)|手动指定的信号
|CANdb指定信号
原始数据
:以uint8矢量数组形式输入数据。如果选择此选项,则只指定消息字段。所有其他信号参数字段不可用。此选项只打开块上的一个输入端口。换算公式为:
raw_value = (physical_value - Offset) / Factor
physical_value
信号的原值和raw_value
是封装信号值。手动指定的信号
:指定数据信号定义。如果选择此选项,请使用信号表来创建信号。输入块的数量取决于你指定的信号的数量。CANdb指定信号
:允许您指定包含消息和信号定义的CAN数据库文件。如果选择此项,请选择“CANdb”文件。块输入的数量取决于CANdb文件中为所选消息指定的信号的数量。
编程使用
块参数:DataFormat |
类型:字符串 |特征向量 |
价值观:“原始数据” |“手动指定的信号” |'CANdb指定信号' |
默认值:“原始数据” |
CANdb文件
- CAN数据库文件
特征向量
类中的CANdb文件输入数据时,此选项可用数据输入如下列表。点击浏览在您的系统上查找CANdb文件。在CANdb文件中指定的消息列表填充消息对话框的部分。CANdb文件还填充信号表中所选消息。
包含非字母数字字符(如等号、&号等)的文件名不是有效的CAN数据库文件名。可以在数据库名称中使用句点。在使用CAN数据库文件之前,请使用非字母数字字符重命名它们。
编程使用
块参数:CANdbFile |
类型:字符串 |特征向量 |
消息列表
- CAN消息列表
字符向量数组
类中的CANdb文件输入数据时,此选项可用数据输入如下字段中选择一个CANdb文件CANdb文件字段。选项中显示信号详细信息的消息信号表格
编程使用
块参数:MsgList |
类型:字符串 |特征向量 |
名字
- CAN消息名称
可以味精
(默认)|字符向量
为CAN消息指定一个名称。默认为可以味精
.如果您选择输入原始数据或手动指定信号,则可使用此选项。如果选择使用来自CANdb文件的信号,则此选项不可用。
编程使用
块参数:MsgName |
类型:字符串 |特征向量 |
标识符类型
- CAN标识符类型
标准(11位标识符)
(默认)|扩展的(29位标识符)
指定CAN消息标识符是否为标准
或者一个扩展
类型。默认为标准
.标准标识符是11位的标识符,扩展标识符是29位的标识符。如果您选择输入原始数据或手动指定信号,则可使用此选项。为CANdb指定信号
,标识符类型从数据库继承类型。
编程使用
块参数:MsgIDType |
类型:字符串 |特征向量 |
价值观:标准(11位标识符) |扩展的(29位标识符) |
默认值:标准(11位标识符) |
可以标识符
- CAN消息ID
0
(默认)|0
来536870911
指定CAN消息ID。对于标准标识符,这个数字必须是0到2047之间的正整数;对于扩展标识符,这个数字必须是0到536870911之间的正整数。方法还可以指定十六进制值hex2dec
函数。如果您选择输入原始数据或手动指定信号,则可使用此选项。
编程使用
块参数:MsgIdentifier |
类型:字符串 |特征向量 |
价值观:' 0 ' 来“536870911” |
长度(字节)
- CAN消息长度
8
(默认)|0
来8
指定CAN消息的长度,从0到8字节。如果你正在使用CANdb指定信号
对于数据输入,CANdb文件定义消息的长度。如果不是,该字段默认为8
.如果您选择输入原始数据或手动指定信号,则可使用此选项。
编程使用
块参数:MsgLength |
类型:字符串 |特征向量 |
价值观:' 0 ' 来“8” |
默认值:“8” |
远程帧
- CAN消息作为远程帧
从
(默认)|在
指定CAN消息作为远程帧。
编程使用
块参数:远程 |
类型:字符串 |特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
输出为总线
- CAN消息作为总线
从
(默认)|在
为块选择此选项以将CAN消息输出为Simulink总线信号。有关Simulink总线对象的更多信息,请参见复合材料界面(模型).
编程使用
块参数:BusOutput |
类型:字符串 |特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
添加信号
-增加CAN信号
向信号表中添加一个新信号。
编程使用
没有一个
删除信号
-移除CAN信号
从信号表中删除所选信号。
编程使用
没有一个
信号
-信号表
表格
如果您选择手动指定信号或使用CANdb文件定义信号,则会出现此表。
如果使用的是CANdb文件,则文件中的数据将填充此表,并且不能编辑字段。如果需要编辑信号信息,请切换到手动指定的信号。
如果您选择手动指定信号,请在此表中创建信号。你创建的每个信号都有这些值:
- 名字
-
为信号指定一个描述性名称。模型中的Simulink块显示此名称。默认为
信号[行号]
. - 起始位
-
指定数据的起始位。开始位是从消息数据开始计算的最不重要的位。起始位必须为0 ~ 63之间的整数。
- 长度(字节)
-
指定信号在消息中占用的比特数。长度为1 ~ 64之间的整数。
- 字节顺序
-
选择以下任一选项:
勒
:其中字节顺序是小端格式(英特尔®).在这种格式中,您从最低有效位到最高有效位进行计数。例如,如果以小端序格式打包一个字节的数据,起始位为20,则数据位表类似于下图。从最低有效位到最高地址的小端字节顺序
是
:字节顺序为大端序格式(Motorola®).在这种格式中,您从最低有效位到最高有效位进行计数。例如,如果以大端序格式打包一个字节的数据,起始位为20,则数据位表类似于下图。从最低有效位到最低地址的大端字节顺序
- 数据类型
-
指定信号如何解释分配位中的数据。选择:
签署
(默认)无符号
单
双
- 多路传输类型
-
指定block如何在每个时间步骤中将信号打包到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 |
类型:字符串 |特征向量 |
模型的例子
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。
版本历史
在R2009a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。