Как изменить целевую скорость последовательной передачи Simulink xPC на лету - PullRequest
1 голос
/ 04 сентября 2008

У меня есть целевое приложение xPC, которое общается с устройством через RS-232. Для этого я использую последовательный блок xPC.
Чтобы поговорить с этим устройством, я сначала должен начать с скорости по умолчанию, скажем, 9600 бит / с, запросить изменение скорости, скажем, до 57600 бит / с, а затем изменить скорость на моей стороне, чтобы соответствовать ей.
Проблема с блоком xPC заключается в том, что он заставляет вас выбирать определенную скорость перед запуском и не может изменить ее во время выполнения. Есть ли способ / хитрость / взломать, чтобы сделать это?

Ответы [ 3 ]

1 голос
/ 04 сентября 2008

Я согласен с вами: я не думаю, что это можно сделать, я боюсь.

Что касается дальнейшего размышления, я понял, что в моей системе xPC я получаю предупреждение о компиляции, сообщающее, что используемые мной блоки не поддерживают изменения времени выборки во время выполнения; это подразумевает, что это не невозможно вообще ...

1 голос
/ 04 сентября 2008

Вот мой вывод. Я не думаю, что это можно сделать с помощью существующих блоков Simulink. Я думаю, мне нужно будет взять код xpcserial C, который поставляется с Matlab, взять код, который устанавливает скорость RS-232, и обернуть его в мою собственную S-функцию.

0 голосов
/ 27 октября 2008

Ian

То, что я делал раньше для этого материала, это просто изменял регистры за спиной цели XPC. Это некрасиво, но xPCTarget в первую очередь безобразен.

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

В любом случае, стоит попробовать, тебе все равно придется это сделать.

...