Связь RS232 - Могу ли я использовать ее для создания сигнала устойчивого состояния? - PullRequest
4 голосов
/ 24 октября 2008

Честно говоря, я думаю, что ответ "нет"; Тем не менее, я хочу получить второе мнение. По сути, мне нужно одно устройство микроконтроллера, чтобы послать устойчивый сигнал другому, но для связи между ними используется RS232. Поэтому я думаю, что мне нужно создать / обновить сообщения связи, чтобы заставить его делать то, что я хочу.

Что ты думаешь?

Ответы [ 8 ]

7 голосов
/ 24 октября 2008

Вы должны быть в состоянии установить что-то вроде DTR (Готовность терминала данных), контакт 20 или DSR (Готовность набора данных), контакт 6, высокий и сохранить его там как ваш сигнал устойчивого состояния. Вот как модемы / терминалы обнаруживают, что на другом конце есть устройство, которое готово к связи. Все зависит от того, какой уровень доступа у вас к оборудованию через ваш драйвер.

[РЕДАКТИРОВАТЬ] Это не включает в себя отправку данных, хотя вы все равно можете сделать это с помощью TX / RX, контакты 2 и 3.

RS-232 Ссылка в Википедии

3 голосов
/ 28 октября 2008

Вы имеете в виду постоянное напряжение? Не прямоугольная волна? (буква U) Как насчет команды прерывания (если вы хотите назвать ее командой)?

Конечно, вы можете использовать одну из линий управления, если это поможет ... Или вы специально ищете что-то из TX?

1 голос
/ 24 октября 2008

Если вопрос «могу ли я изменить состояние постоянного тока линии Tx», то ответ заключается в том, что многие уарты (в том числе и в ПК) могут попросить создать условие «прерывания», противоположное нормальное состояние простоя линии.

Таким образом, вы можете включать и выключать 'break' и переключать линию следующим образом.

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

Хотя первый ответ правильный, возможно, не удастся использовать этот метод (с использованием DTR или DSR) на многих микроконтроллерах, поскольку они могут не иметь этих сигналов (многие микроконтроллеры могут иметь только базовые линии RX / TX, и вы часто приходится использовать другие порты ввода / вывода, если вам нужны дополнительные линии управления / состояния. Однако не все потеряно, многие контроллеры RS232 позволяют вам установить линию TX на «отметку» или «пробел» (т.е. установить линию TX) на высокий или низкий уровень логики.) Это позволит вам получить устойчивый сигнал. Линия RX на приемнике может быть проверена, чтобы определить, находится ли она на уровне метки или на уровне пространства.

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

Я думаю, что это в значительной степени зависит от UART, который вы используете, например, текст ссылки , а также уровень доступа к нему в программном обеспечении. Если вы проверяете таблицу данных, то часто есть способы управления большинством выводов напрямую для целей тестирования, но вам придется пойти на это с довольно низкого уровня.

На более высоком уровне, ответ tvanfosson в значительной степени так, как я бы это сделал.

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

Постоянный сигнал может означать:

  • устойчивый набор символов: держать буфер отправки заполненным
  • линия удерживается на высоком или низком уровне: ничего не отправляйте или отправляйте непрерывные разрывы
0 голосов
/ 24 октября 2008

Если вы можете контролировать оба конца линии, вы можете превратить строки rs-232 tx и rx в обычные логические линии для получения этой информации.

Однако в большинстве ситуаций каждый конец периодически отправляет байт информации о состоянии, который содержит 8 возможных цифровых значений - дает гораздо больше информации о состоянии.

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

Как уже отмечали другие, если вы используете аппаратное управление потоком, у вас также есть несколько доступных строк состояния, хотя во многих случаях эти строки не реализованы, так что это может быть невозможным.

-Adam

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

Возможно, что-то подобное можно сделать, если вы не возражаете против всплеска интерфейса. Один микроэлемент может передать байт, а другой может что-то сделать с этим байтом и отправить его обратно в ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...