Jump to content

    
Sign in to follow this  
Olegus

Matlab_передача пакетов через последовательный порт

Recommended Posts

Передаю и принимаю пакеты через COM порт. Прием и передачу по Rx и Tx осуществляю последовательно.

Вопрос нельзя ли это делать параллельно  для увеличения скорости передачи по каждой линии. Пакеты по 63 байта, если только передаю  то 

вроде скорость получается около 100 Гц, но если еще принимать, то скорость падает. Использую стандартные fwrite(port, data)  и  fread(port, data)  последовательно, но как бы их вызывать параллельно

чтобы скорость 100 Гц сохранить. Спасибо.

Share this post


Link to post
Share on other sites
14 hours ago, Rst7 said:

Moderator: Простите, а причем тут Matlab?

%% Cleaning workspace
clear all;
close all;
clc;

%% Data acqusition
% Close all COM ports, if it open
ports = instrfind;
if (~isempty(ports))
    fclose(ports);
    delete(ports);
end

% Setup COM port parameters
pBR       = 38400;
pPORTNAME = '/dev/ttyUSB0';
pBUFFER   = ((16384-2) * 3); % [bytes] Should be agreed with FPGA firmware
pTIMEOUT  = 2 * (pBUFFER / (pBR / 8)); % [sec] Should be agreed with data size & port speed

%% Data acquisition

% Create terminal object
s = serial(pPORTNAME, 'BaudRate', pBR, 'DataBits', 8, 'StopBit', 1, 'Parity', 'none', 'FlowControl', 'none');
% Some setup
s.ByteOrder        = 'BigEndian'; 
s.InputBufferSize  = pBUFFER; 
s.OutputBufferSize = 1024;
s.Timeout          = pTIMEOUT;

try
    fopen(s);
catch
    disp('[Error] Can''t open COM port. Finishing...');
    return;
end

% Sent command to get buffer
fwrite(s,   1)

% Read buffer
disp('Data acquisition...');
[rx_buf, cnt, msg] = fread(s, pBUFFER, 'char');
rx_buf = rx_buf.';
disp(['COM port end code: ' msg]);
disp(['Readed ' num2str(cnt) ' bytes']);
disp('Done');

% Close & clear COM port
fclose(s);
delete(s);

наверное вот при этом))) По вопросу ТС подсказать не могу

Share this post


Link to post
Share on other sites

Оффтоп

Spoiler
On 11/28/2019 at 7:43 PM, des00 said:

наверное вот при этом))) По вопросу ТС подсказать не могу

Вы бы прям ссылочками, ссылочками, на гитлаб =)))

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this