A:
CAN FD通信の概要については、「CAN2.0B通信とCAN FD通信の違い」を参照ください。
①CAN FD通信は、アービトレーション領域に対するビットレート設定と、データ領域に対するビットレート設定には異なる値を指定できます。
その際、CanTransmit関数のMessageType引数で、CAN
FDメッセージ(CCAN_MSG_TYPE_CAN_FD)とともに、ビットレートスイッチ(CCAN_MSG_TYPE_BITRATE_SWITCH)が必要になります。
②同じCAN経路上のアービトレーション領域及び、データ領域に対する各ビットレート設定とサンプリングポイントは、送信デバイスと受信デバイスで同等の設定を行ってください。
設定には、CanSetCanFdTiming関数を使用します。
また、設定値を確認する場合は、CanGetCanFdTiming関数を使用します。
詳細は、各関数の関数リファレンスを参照ください。
CANデバイスのChannelNo = 1から、CAN FD送信。
MessageNum =1、CAN ID = 0x11c、DataLength
= 1 、Data = 0xff
VB.NET |
Dim Ret As Integer Dim MessageType(0) As UInteger Dim CanId(0) As UInteger Dim DataLength(0) As UShort Dim Data(0)(63) As Byte
MessageType(0) = CCAN_MSG_TYPE_CAN_FD Or CCAN_MSG_TYPE_BITRATE_SWITCH CanId(0) = &H11C Data(0)(0) = &HFF
Ret = CanTransmit ( Id
, 1 , 1 , MessageType , CanId , Data ) |
C, C++ |
long Ret; unsinged long MessageType[1]; unsinged long CanId[1]; unsinged short DataLength[1]; unsinged char Data[1][64];
MessageType[0] = CCAN_MSG_TYPE_CAN_FD | CCAN_MSG_TYPE_BITRATE_SWITCH; CanId[0] = 0x11c; Data[0][0] = 0xff;
|
C# |
int Ret; uint[] MessageType = new unit[1]; uint[] CanId = new uint[1]; ushort[] DataLength = new ushort[1]; ubyte[,] Data = new ubyte[1,64];
MessageType[0] = CCAN_MSG_TYPE_CAN_FD | CCAN_MSG_TYPE_BITRATE_SWITCH; CanId[0] = 0x11c; Data[0,0] = 0xff;
|