Связь RS232. Могу ли я использовать ее для создания устойчивого сигнала?

StackOverflow https://stackoverflow.com/questions/233242

Вопрос

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

Что вы думаете?

Это было полезно?

Решение

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

[EDIT] Это не связано с отправкой данных, хотя вы все равно можете сделать это, используя TX / RX, контакты 2 и amp; 3.

Справочник по RS-232 в Википедии

Другие советы

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

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

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

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

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

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

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

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

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

-Адам

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

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

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

На более высоком уровне ответ tvanfosson в основном так, как я бы это сделал.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top