开始可以在MATLAB FD沟通
这个例子展示了如何使用可以FD通道传输和接收FD的消息。它使用MathWorks虚拟可以回送FD通道连接配置。
视图可以FD频道
使用canFDChannelList
看到所有可用的设备通道支持可以FD。金宝app
canFDChannelList
ans =2×6表供应商设备通道DeviceModel ProtocolMode SerialNumber ___________ ___________ _________ ___________ _________________ _______“MathWorks”“虚拟1”1“虚拟”“可以,可以FD”“0”“MathWorks”“虚拟1”2“虚拟”“可以,可以FD”“0”
创建发送和接收通道
使用canFDChannel
与设备指定创建细节可以FD渠道传送和接收消息。
txCh = canFDChannel (“MathWorks”,“虚拟1”,1)
DeviceVendor txCh =通道属性:设备信息:“MathWorks”设备:“虚拟1”DeviceChannelIndex: 1 DeviceSerialNumber: 0 ProtocolMode:跑步可以FD的状态信息:0 MessagesAvailable: 0 MessagesReceived: 0 MessagesTransmitted: 0 InitializationAccess: 1 InitialTimestamp: [0 x0 datetime] FilterHistory:“标准ID过滤器:允许所有|扩展ID过滤器:允许所有的时间信息BusStatus:“N / A”SilentMode: 0 TransceiverName:“N / A”TransceiverState:“N / A”ReceiveErrorCount: 0 TransmitErrorCount: 0 ArbitrationBusSpeed: [] DataBusSpeed:[]其他信息数据库:[]用户数据:[]
rxCh = canFDChannel (“MathWorks”,“虚拟1”2);
配置总线速度
可以FD频道上线之前需要设置的总线速度。仲裁和数据相速度配置使用configBusSpeed
。
configBusSpeed (txCh, 500000, 1000000);configBusSpeed (rxCh, 500000, 1000000);
打开DBC-File
使用canDatabase
打开数据库文件,其中包含可以FD消息和信号的定义。
db = canDatabase (“CANFDExample.dbc”)
db =数据库与属性:名称:“CANFDExample”路径:/ tmp / Bdoc22a_1891349_157288 / tpe433a46b vnt-ex36915890 / CANFDExample。dbc的UTF8_File: / tmp / Bdoc22a_1891349_157288 / tpe433a46b vnt-ex36915890 / CANFDExample。dbc' Nodes: {} NodeInfo: [0x0 struct] Messages: {'CANFDMessage'} MessageInfo: [1x1 struct] Attributes: {2x1 cell} AttributeInfo: [2x1 struct] UserData: []
附加数据库直接接收通道。定义从DBC-files应用自动解码传入消息和信号。
rxCh。数据库=数据库;
启动通道
使用开始
命令设置在线渠道。
开始(txCh);开始(rxCh);
创建可以FD消息
创建可以使用FD消息canFDMessage
函数。
假msg1 = canFDMessage(500年,12)
msg1 =消息与属性:信息识别ProtocolMode:可以FD的ID: 500扩展:0的名字:“时间戳数据细节:0数据:[0 0 0 0 0 0 0 0 0 0 0 0]的信号:[]长度:12 DLC: 9协议旗帜br: 0 ESI: 0错误:0其他信息数据库:[]用户数据:[]
假msg2 = canFDMessage(1000年,24);假msg3 = canFDMessage(1500年,64年);
参与可以FD的比特率开关功能,设置BRS
房地产的消息。
msg1。BRS= true; msg2.BRS = true; msg3.BRS = true;
可以FD消息也可以使用一个数据库创建。数据库定义了消息如果可以也可以FD以及br的地位。
msg4 = canFDMessage (db,“CANFDMessage”)
msg4 =消息与属性:信息识别ProtocolMode:可以FD的ID: 1扩展:0的名字:“CANFDMessage”数据细节时间戳:0数据:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0…信号:[]长度:48 DLC: 14协议旗帜br: 1 ESI: 0错误:0其他信息数据库:[1 x1。数据库用户数据:[]
传递信息
使用传输
从传输通道发送创建的消息。
传输(txCh [msg1 msg2 msg3 msg4])
接收消息
接收消息的接收通道使用收到
函数。的默认返回类型可以FD频道是一个时间表包含特定于收到可以FD消息的信息。
rxMsg =接收(rxCh正)
rxMsg =4×12时间表时间ID扩展名ProtocolMode数据长度DLC信号误差远程BRS ESI ___________ ____ ________ ___________ _______ __________________________________________________________________________ ______, _______专攻___ _____ _____ 0.14632秒500假{0 x0 char}{'可以FD} {[0 0 0 0 0 0 0 0 0 0 0 0]} 12 9 {0 x0 struct}假假真假0.14632秒1000假{0 x0 char}{'可以FD} {[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]} 24 12 {0 x0 struct}假假真假0.14632秒1500假{0 x0 char}{'可以FD '} {[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0…]}64 15 {0 x0 struct}假假真假0.14632秒1假{‘CANFDMessage}{'可以FD '} {[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0…48 14]}{1 x1 struct}假假真的假的
停止通道
使用停止
命令设置线下渠道。
停止(txCh);停止(rxCh);
关闭DBC-File
关闭访问DBC-file通过清算其变量的工作区。
清晰的db