Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MATLAB + UART
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
-=Vitaly=-
Имеется схема FPGA + встроенный проц+ контроллер RS-232, могу ли я отправлять данные прямо в МАТЛАБ через ком порт,для последуюущей обработки и верификации??
И вообще может ли МАТЛАБ работать с ком-портом под 2000 виндой???

Спасибо!!
Doka
матлаб может работать с сом-портом (по крайней мере семёрка точно)
читайте хелп - он там весьма хорош и подробен
наводка: поиск по "RS-232"

ЗЫЖ еще и примеры можно надыбать на сайте производителя
Andy_F
Как раз доступ к COM-портам из под разных версий Windows осуществляется единообразно, т.к. реализован не "напрямую", а через драйвер. Об этом беспокоиться не стоит.

Из "родных" инструментов Simulink с COM-портом умеет общаться Instrument Control Toolbox. А из сторонних - RS232Blockset http://digilander.libero.it/LeoDaga/Simuli...232Blockset.htm .
Doka
кстати о птичках, т.е. о Instrument Control Toolbox: он поддерживает сокеты (TCP/IP and UDP). тут где-то аналогичная тема пробегала, но там про UDP вопрос был, использование которого, думается мне, весьма эффективное решение при отладке проекта на ПЛИС - особенно если большие потоки гонять приходится.
-=Vitaly=-
[quote name='Andy_F' date='Nov 4 2006, 00:45' post='172297']
Как раз доступ к COM-портам из под разных версий Windows осуществляется единообразно, т.к. реализован не "напрямую", а через драйвер. Об этом беспокоиться не стоит.

Помоему как раз наоборот, например дебаггер через ком под 98 работает нормально а под 2000 глючит по страшному. Может от того что он сильно древний???
Wild
В матлабе есть инструмент, позволяющий подключать пользовательское приложение к ядру матлаба.
Например, можно описать функцию доступа к порту в длл модуле и из матлаба вызывать ее как обычную внутреннюю функцию. Как эта опция называется не помню в хелпе все подробно описано.
maegg
Открываем порт
s2 = serial('COM1','BaudRate',19200,'DataBits',8);
set(s2,'FlowControl','hardware');
set(s2,'InputBufferSize',8192);
fopen(s2);

Пишем
fprintf(s2,'ID?')

Читаем
fscanf(s2)
или:
v = fread(s2,2500,'uint8');

Не забываем закрывать
fclose(s2)
delete(s2)
clear s2

Пока пишешь и читаешь последовательно, все нормально
Но если нужно делать запись и чтение независимо,
то у меня появились трудности.
По крайней мере на VB это получается значительно легче
Z0Rk
2-=Vitaly=-
ИМХО удобнее писать в порт через fwrite а fopen делать с использованием try...
lolikandr
Пытался делать fopen и тд. Очень часто не мог закрыть дескриптор после ошибок и вываливания из матлаб скрипта. Приходилось часто перезагружать матлаб. Решилось проще, когда написал простенький пересыльщик в виде exe на Delphi. А в скриптах матлаба запускал уже его при помощи dos().
jorikdima
Цитата(lolikandr @ Jan 19 2007, 17:14) *
Пытался делать fopen и тд. Очень часто не мог закрыть дескриптор после ошибок и вываливания из матлаб скрипта. Приходилось часто перезагружать матлаб.

есть такой момент. когда с файлами работаешь тоже самое
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.