COM-порт, или последовательный порт, представляет собой двунаправленный последовательный интерфейс, который предназначен для обмена байтовыми данными. В первое время этот порт использовали для подключения терминала, а потом для модема и мыши. Сейчас его принято применять для подключения источника бесперебойного питания, а также для связи с аппаратными средствами обработки вычислительных систем встраиваемого типа.
Использование
Итак, перед тем как подробнее поговорить о том, что такое COM-порт, необходимо заглянуть в прошлое для понимания его значения. Буквально 15 лет назад использовался способ подключения устройств к компьютеру посредством специального стандартного разъема, расположенного на задней панели системного блока с применением специального сериального кабеля RS-232. У этого способа имеется множество недостатков. Такой кабель, по современным меркам, предоставляет крайне низкую скорость передачи данных – примерно сотню килобит в секунду. Помимо того, когда производилось физическое соединение разъемов, необходимо было осуществлять выключение оборудования, а сами они крепились друг к другу при помощи винтов, обеспечивающих надежность, при этом их размеры отличались немалой величиной.
Микросхема com порта MAX232.Как она работает и как ее проверить
Немного истории
COM-порт на тогдашних компьютерах традиционно носил номер 1 или 2, так как обычно их было не больше двух. Можно было установить дополнительные порты, если в этом возникала необходимость. Когда пользователем производилась настройка программного обеспечения, требовалось не перепутать и правильно установить именно тот, к которому обеспечивалось подключение нужного оборудования.
Каждый COM-порт требовал правильной настройки скорости передачи данных, а также ряда иных загадочных параметров, о которых было известно только узкому кругу специалистов. Чтобы подключение аппаратуры было успешным, все необходимые параметры требовалось откуда-то узнать либо экспериментально подобрать, так как в этом случае отсутствовало какое-либо автоматическое конфигурирование. Помимо этого, подключение через COM-порт допускало соединение любого программного обеспечения с произвольным внешним оборудованием, даже совершенно несовместимым, из-за чего в процессе настроек и возникало огромное количество ошибок.
Современность
Сейчас соединение через COM-порт полностью вытеснено более современным методом, который не требует особых знаний для реализации, а именно посредством USB-порта. Этот метод лишен всех недостатков, упомянутых ранее. Однако современные стандарты совместимости соединения всевозможного GPS-оборудования и весьма разнородного программного обеспечения сформировались довольно давно вокруг концепции COM-портов, ставших на текущий момент архаичными.
Это сопряжено с тем, что изначально практически любое оборудование, в том числе и GPS, было внешним, а его соединение с компьютером производилось посредством серийного кабеля, подключенного к одному из аппаратных портов. От пользователя в процессе настройки требовалось правильно подобрать номер порта и скорость трансляции данных по нему.
COM Порт
В то время возник основной стандарт передачи данных от GPS-приемника к программе, который теперь называется NMEA-0183. Фактически данный стандарт предписывает всем разработчикам даже современнейшей аппаратуры и программного обеспечения обмениваться данными посредством COM-портов. И все это в условиях того, что на современных компьютерах, а также на КПК, уже давно главным является стандарт USB. А еще одна особенность состоит в том, что в последнее время GPS-приемники все чаще стали устанавливать непосредственно внутрь корпуса устройства, то есть между ним и основным девайсом вообще отсутствует какой-либо соединительный кабель.
Виртуальные КОМ-порты
Выход из положения был придуман, а именно разработаны «виртуальные» COM-порты. Получается, что внутреннее устройство КПК, к примеру, GPS-приемник, программно имитируется в виде COM-порта, при этом в аппаратном плане таковым не являясь. При этом программе, которая рассчитана на сопряжение посредством подобного стандарта, нет разницы, как он реализован. Тут допускается наличие виртуальной имитации, а не обязательное присутствие аппаратной реализации. Так и удается обеспечить совместимость GPS-программ старого образца с современным оборудованием.
Внесенные изменения
При этом управление COM-портом существенно не изменилось. Пользователь по старинке должен производить сложную настройку чуть ли не вручную. Однако современный COM-порт представляет собой уже не то громоздкое приспособление, размещавшееся на задней панели системного блока, а совсем иное устройство.
И тут все дело в том, что с программной точки зрения все их реализации выглядят безлико, то есть нет разницы между виртуальными и реальными портами. Для программного обеспечения порты различаются только номерами, которые им присвоены производителями КПК на совершенно случайной основе. К примеру, приемник от ASUS обычно находится на COM5, а PocketLOOX 560 показывает приемник на COM8. Получается, что программа, которая желает получать от GPS-приемника данные, не имеет изначально никакой достоверной информации об условном номере, под которым фигурирует порт, прописанный соответствующим для приемника на данном КПК.
Как все это работает?
При том, что среди всех имеющихся COM-портов можно провести автоматический поиск подходящего, процедура такого опроса является довольно ненадежной и достаточно громоздкой. Связано это с тем, что устройства, отображаемые в системе в качестве COM-портов, могут быть довольно разнообразными и не иметь отношения к GPS, они могут совершенно непредсказуемо ответить на такой опрос.
К примеру, на КПК бывают порты, сопряженные с внутренним сотовым модемом, с USB, с инфракрасным портом, а также с иными элементами. Обращение к ним программы, предназначенной для работы с конкретным приспособлением, может привести к совершенно непредсказуемой реакции, а также к различным сбоям в работе, что часто становится причиной зависания КПК. Именно поэтому попытка открыть COM-порт может привести к неожиданным ситуациям вплоть до включения Bluetooth или инфракрасного порта. А могут быть и более непонятные случаи.
Работа COM-порта
Для COM-портов в качестве основы используется микросхема асинхронного универсального приемопередатчика. Эта микросхема существует в нескольких разновидностях: Intel 16550A, 16550, 16450, 8250. Для каждого COM-порта она содержит регистры приемника и передатчика данных, а также ряд управляющих регистров, к которым есть доступ через программы BIOS, Windows и MS DOS. У последних версий микросхемы имеется набор буферов для временного хранения передаваемых и получаемых данных. Благодаря такой возможности можно реже прерывать работу центрального процессора, а также согласовать скорость трансляции данных.
Основные параметры
Устройство COM-порта предполагает наличие таких характерных особенностей:
— базового адреса порта для ввода и вывода информации;
— номера аппаратного прерывания;
— размера одного блока информации;
— скорости, с которой передаются данные;
— режима детектирования честности;
— способа управления потоками информации;
— количества стоповых бит.
Как проверить COM-порт компьютера? На что обратить внимание?
Как уже было сказано ранее, этот тип порта представляет собой двунаправленный интерфейс для передачи информации на битовом уровне последовательным способом. Отличительной характеристикой в сравнении с параллельным портом тут является передача данных бит за битом. Анатомия COM-порта такова, что на компьютере не он один использует последовательный способ передачи данных. Например, такие интерфейсы, как Ethernet или USB, тоже используют аналогичный принцип, но так сложилось исторически, что последовательным принято называть именно порт стандарта RS232.
Очень часто требуется открыть COM-порт для проведения ремонта и диагностики компьютера, при этом его также необходимо проверить на работоспособность. Сжечь элемент ведь очень просто. Чаще всего это происходит по вине пользователя, который производит отключение устройства неправильно, выдергивая разъем при подключенном интерфейсе.
Простейшим способом проверки работоспособности интерфейса является подключение к нему мышки. Однако так сложно получить полную картину, так как манипулятор задействует только половину сигнальных линий из восьми имеющихся. Только использование специальной заглушки и программы позволит провести проверку работоспособности. Для этих целей уже существует специально разработанное программное обеспечение.
Источник: fb.ru
Ком порт на телевизоре
Модератор: immortal
Управление телевизорами LG через последовательный порт RS232
Сообщение skysilver » Вт июн 02, 2015 1:56 pm
Имеется в хозяйстве старенький но вполне еще бодрый 3D smart TV LG LW575S. А раз все мы тут подключаем к MajorDoMo все подряд, то и ТВ попал под раздачу.
Только вот в виду 2011 года выпуска и устаревшего протокола управления по Ethernet подружить мой ТВ с модулем LG SmartTV (v 1.0) by LuckyFIA никак не получилось. Но на выручку пришел порт RS232, также имеющийся в ТВ. С помощью копеечного USB-RS232 адптера все замечательно подключается к серверу, на котором крутится MajorDoMo (в моем случае это Cubietruck с ОС Debian). Полный набор команд управления через последовательный порт можно найти в официальной документации на ТВ.
Немного выдержек из документации на ТВ:
Спойлер Показать
c146.jpg (273 КБ) 15966 просмотров
c147.jpg (185.42 КБ) 15966 просмотров
c148.jpg (257.31 КБ) 15966 просмотров
Имея на руках набор команд и широко известный класс для работы с СОМ-портами php_serial.class.php, написал простенький класс для управления ТВ, функции которого можно использовать в методах и сценариях MajorDoMo. По аналогии можно управлять и другой техникой, например, ресиверами, многие из которых также имеют СОМ-порт.
- настройки порта;
- проверки статуса ТВ (включен, выключен, уровень громкости, номер и название канала и пр.);
- включение/выключение ТВ;
- регулировка громкости;
- выбор канала по номеру или по его названию;
- включения/выключение 3D (в том числе его режима — SBS, OU);
- выбор входа ТВ (HDMI, DTV, SATV, CATV и т.д.);
- отправка любой другой команды телевизору согласно его документации и получения статуса выполнения этой команды.
Спойлер Показать
Основное меню.jpg (152.19 КБ) 15979 просмотров
Управление каналами.jpg (195.76 КБ) 15979 просмотров
Пульт ДУ.jpg (141.93 КБ) 15979 просмотров
Код меню следующий:
Спойлер Показать
function setChannel(channel) < var url = ‘/objects/?object=LG32LW575Sm=selectTVchannels url += channel; //alert(url); AJAXRequest(url, ‘updateTVinfo();’, »); >; function setCommand(cmd) < var url = ‘/objects/?object=LG32LW575Sm=controlTV url += cmd; //alert(url); AJAXRequest(url, ‘updateTVinfo();’, »); >; function setVolume(vol) < var url = ‘/objects/?object=LG32LW575Sm=controlTVvol=’; url += vol; //alert(url); AJAXRequest(url, », »); >; function ajaxGetTVvolume(varname, id, timeout) < var url=»/»; url+=’?md=applicationvar=’+encodeURIComponent(varname); $.ajax(< url: url >).done(function(data) < var obj=jQuery.parseJSON(data); if (obj.DATA) < $(‘#’+id).val(obj.DATA); $(‘#’+id).slider(«refresh»); >>); if (timeout>0) < window.setTimeout(‘ajaxGetTVvolume(«‘+varname+'», «‘+id+'», ‘+timeout+’);’, timeout); >return false; > function updateTVinfo() < ajaxGetTVvolume(‘LG32LW575S.volumeLevel’, ‘tvVOL’, 0); ajaxGetGlobal(‘LG32LW575S.statusText’, ‘tvInfo’, 0); //alert(‘Update OK!’); >; $(document).ready(function() < // Будем обновлять значения громкости и информации о ТВ каждые 30 сек. ajaxGetTVvolume(‘LG32LW575S.volumeLevel’, ‘tvVOL’, 30000); ajaxGetGlobal(‘LG32LW575S.statusText’, ‘tvInfo’, 30000); $(«.tvimg»).click(function()< var channel = $(this).attr(«channel»); setChannel(channel); ajaxGetGlobal(‘LG32LW575S.statusText’, ‘tvInfo’, 0); >); $(«.rcBtn»).click(function()< var cmd = $(this).attr(«cmd»); setCommand(cmd); ajaxGetGlobal(‘LG32LW575S.statusText’, ‘tvInfo’, 0); >); $( «#tvVOL» ).slider( < stop: function( event, ui ) < setVolume($(«#tvVOL»).val()); >>); >);
volume: | ||
nbsp | ||
nbsp |
Все используемые файлы, разложенные по нужным каталогам, в архиве: Экспортированный класс TV с объектом LG32LW575S и методами здесь:
TV.zip (3.59 КБ) 419 скачиваний За это сообщение автора skysilver поблагодарили (всего 3): foxvlad (Вс сен 20, 2015 11:06 pm) • Дмитрий Иванов (Ср мар 09, 2016 10:34 pm) • XeonStaf (Вс сен 03, 2017 11:01 am) Источник: mjdm.ru Подключение и запитка МК ATiny13 к COM порту ТВЕсть задача, подключить элементарную схемку на Tiny13 к ком порту телевизора, для автоматизации (эмуляции) некоторых действий. Смысл такой: как только Tiny13 получает по UART команду, на нее выдает другую в ответ (или наоборот). Вот и всё. Потребление у Tiny13 маленькое (менее 0,1 мА), и очень хотелось бы её запитать непосредственно от ком порта. Таким образом девайс весь целиком может уместится в разъеме порта и никаких проводов более. Крайне не хочется тянуть питание откуда-то. Теперь о COM телевизора: RS232 преобразователь собран на микросхеме ISL83220. К ком порту подходит лишь три провода — данные, и земля. Никаких вспомогательных нет, к сожалению. Возникает вопрос: как можно, и можно ли вообще, не просто подключить Tiny13 с минимальной обвязкой к порту, но и запитать ее от того-же порта, используя для питания напряжение единственного вывода передачи данных от телевизора? Конечно, это не критично и питание можно взять откуда угодно. тогда и проблем никаких. Но хотелось бы сделать красиво, по возможности. Может быть что-то подскажите?
Последний раз редактировалось Upgrader; 27.06.2014 в 14:53 .
Адрес: москва Upgrader
Регистрация: 01.08.2008 А реально вообще запитаться от Tx? Ток измерить реальный (осциллографом) и соотнести с тем какой доступен (покурив даташит, ссылку которого выложил) — это уже дело последнее. Можно накопить в конденсаторе, и выдать единичную посылку чуть погодя, когда он зарядится. Хотя. а если ничего на ком порт слаться не будет — наверное и питания не откуда будет взять. нда, проблема.
Последний раз редактировалось Upgrader; 27.06.2014 в 23:32 . Начнём со встречного вопроса: как будете преобразовывать уровни ком-порта в уровни UART для микроконтроллера? Транзисторами? Эти каскады тоже хоть немного, но потреблять будут. Каскады эти должны инвертировать логический сигнал с COM порта, при этом не должны сильно заваливать фронты сигнала. Определитесь со схемой преобразования уровней, её токи тоже нужно учесть. Мне видится хорошей идея применения двух N-канальных MOSFET, один на приём, один на передачу. Даже если ничего на порт слаться не будет долго, у микросхем-драйверов COM порта на линиях передачи в состоянии ничегонеделания есть положительный потенциал. Линии передачи у них подтянуты к +12V (у разных микросхем это напряжение может быть от 3 до 15 вольт). Судя по вашему даташиту, у этой микрухи подтяжка от 5.0 до 5.4 вольт, не так много, но терпимо. Ток короткого замыкания по выходу равен 35мА (максимум 60мА). Значит задача теоретически реализуема. Но при токе короткого замыкания будет полный провал напряжения до нуля. Нам этого не надо. А при каком токе напряжение этого выхода снизится до такого уровня, который всё ещё будет уверенно питать тиньку и распознаваться ноль/единица той схемкой, о которой я писал в первом абзаце? Tеперь можно провести эксперимент. К этому единственному выходу телевизионной микросхемки подцепить до общего провода переменный резистор. Регулируя этот резистор, снизить напряжение на нём до напряжения, при котором всё ещё может питаться тинька. Измерить ток, текущий по этому резистору. Вот мы и узнали сколько может отдать тока наш источник питания. Рассчитайте сколько заберёт тинька (условно можно ток ожидания взять в расчёт), и сколько схема преобразования уровней пожрёт. Диод от вывода ком-порта до питалова тиньки ставить не советую. На нём дополнительно будет оседать напряжение, которое нам надо беречь. Советую использовать P-канальный половой транзистор. Управлять его включением либо от ноги самой же тиньки (могу посоветовать низковольтные по затвору), либо немного логики добавить типа одновибратора или реле времени. Первоначальную подачу напряжения для заряда кондёра можно организовать либо вручную кнопкой, либо резистор высокоомный от истока до стока. Выключать транзистор в момент начала передачи данных, заканчивать его выключение если на линии данных нет спада напряжения уже (допустим) 0,2 сек. Последовательно с транзистором поставить резистор достаточно низкоомный чтобы не мешал заряду конденсатора, но и достаточно высокоомный для того чтобы не коротил линию выхода из телевизора, когда данные из телика пошли (напряжение на линии стало отрицательным), и они получились подключенными через транзистор напрямую к конденсатору питания, пока ещё тинька или логика не выключили транзистор. Кондёр, который будет хранить питание, следует выбрать качественный, с низким саморазрядом. Может ионистор? Но они дорогие, и немного не для этих целей вообще-то служат. Тут я не особо силён, пусть другие посоветуют тип кондёра. —— Источник: www.rlocman.ru |