-
MATLAB [Send CAN message]한국과학기술연구소 인턴 2023. 4. 4. 15:16
배경
매트랩을 활용하여 PEAK System 사의 PCAN-USB 제품을 제어하기 위해 매뉴얼 정리
Transmit Messages
type generateMsgs
The example function generateMsgs creates CAN messages using canMessage and transmits them using transmit at various periodic rates. It generates traffic on the CAN bus for demonstration purposes.
function generateMsgs() % generateMsgs Creates and transmits CAN messages for demo purposes. % % generateMsgs periodically transmits multiple CAN messages at various % periodic rates with changing message data. % % Copyright 2008-2016 The MathWorks, Inc. % Create the messages to send using the canMessage function. The % identifier, an indication of standard or extended type, and the data % length is given for each message. msgTx100 = canMessage(100, false, 0); msgTx200 = canMessage(200, false, 2); msgTx400 = canMessage(400, false, 4); msgTx600 = canMessage(600, false, 6); msgTx800 = canMessage(800, false, 8); % Create a CAN channel on which to transmit. txCh = canChannel('MathWorks', 'Virtual 1', 1); % Register each message on the channel at a specified periodic rate. transmitPeriodic(txCh, msgTx100, 'On', 0.500); transmitPeriodic(txCh, msgTx200, 'On', 0.250); transmitPeriodic(txCh, msgTx400, 'On', 0.125); transmitPeriodic(txCh, msgTx600, 'On', 0.050); transmitPeriodic(txCh, msgTx800, 'On', 0.025); % Start the CAN channel. start(txCh); % Run for several seconds incrementing the message data regularly. for ii = 1:50 % Increment the message data bytes. msgTx200.Data = msgTx200.Data + 1; msgTx400.Data = msgTx400.Data + 1; msgTx600.Data = msgTx600.Data + 1; msgTx800.Data = msgTx800.Data + 1; % Wait for a time period. pause(0.100); end % Stop the CAN channel. stop(txCh); end
canChannel
Sysntaxmessage1 = canMessage(id,extended,datalength) message2 = canMessage(candb,messagename) //Create a CAN Message message3 = canMessage(2500,true,4) //Create a Message with Database Definitions candb = canDatabase("C:\myVNTData\VehicleInfo.dbc") message4 = canMessage(candb,"WheelSpeeds")
transmit
Sysntax
//Transmit a CAN Message message = canMessage (250,false,8); message.Data = ([45 213 53 1 3 213 123 43]); canch = canChannel('MathWorks','Virtual 1',1); start(canch) transmit(canch,message) //Transmit an Array of Messages transmit(canch,[message0,message1,message2]) //Transmit Messages on a Remote Frame message = canMessage(250,false,8); message.Data = ([45 213 53 1 3 213 123 43]); message.Remote = true; canch = canChannel('MathWorks','Virtual 1',1); start(canch) transmit(canch,message)
'한국과학기술연구소 인턴' 카테고리의 다른 글
MATLAB[Recieve CAN message] (0) 2023.04.07 MATLAB [CAN channel creation] (0) 2023.03.28 PCAN-USB manual (0) 2023.03.27 UART (0) 2023.03.26 uCAN Converter (API) (0) 2023.03.25