Com port rs232

Содержание

Com port rs232 Скорость обмена 14400

Адреса по дефлоту для COM портов: COM1=3f8h, COM2=2f8h, COM3=3e8h, COM4=2e8h. COM1 занимает адресное простанство от 3f8h до 3ffh

RS-232 — последовательный интерфейс (COM-порт)

При таком методе данные передаются поочередно, по одному проводу бит за битом. Формат посылки — 1 б данных, также некое количество контрольных бит, при всем этом не все из их непременно должны находиться при передаче.

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

В большинстве компов установлен особый коммуникационный разъем(COM-порт); в неких компьютерах может быть два (СОМ1 и COM2) либо более COM-портов. К порту компьютера подключается кабель данных для связи с периферийным устройством. Кабель состоит из нескольких проводников, которые именуют линиями поочередного интерфейса.

На рис. 1 показан формат данных, отправляемых по полосы данных TxD интерфейса RS232. Как видно из рисунка, передача начинается со стартового бита, потом передается от 5 до восьми бит данных, дальше следует необязательный бит паритета либо четности и завершают передачу один либо два стоповых бита. На практике в большинстве случаев употребляется 8 бит данных; два стоп-бита (для большей надежности при больших скоростях обмена).

Com port rs232

Состояние полосы интерфейса RS232 при отсутствии передачи именуется Mark (отметка), состояние полосы при начале передачи (стартовый бит) — Space (пробел). Малый уровень напряжения относительно «земли» на полосы в состоянии Mark соответствует от -3 до -15 В, высочайший уровень напряжения полосы в состоянии Space — от +3 до +15 В. В интервале -3. +3 В состояние полосы не определено. На практике в большинстве случаев высочайший уровень напряжения составляет около +10 В, маленький — около -10 В. Время от времени напряжения могут быть уменьшены соответственно до +5 и -5 В. Такие значения употребляются, когда от интерфейса не требуется высочайшая скорость передачи, а устройство, которое обменивается данными с компом по полосы RS232, имеет автономное питание от батареи и критично к расходу энергии.

Чтоб избежать неурядицы, договоримся условно именовать логическим нулем малый уровень напряжения на полосы интерфейса в состоянии Mark (-10 В) и логической единицей — высочайший уровень на полосы в состоянии Space (+10 В). Такие уровни логического нуля и единицы не соответствуют стандартным. Во-1-х, стандартный высочайший TTL-уровень, либо логическая единица, соответствует +5 В, малый уровень, либо логический ноль, соответствует 0 В. Можно узреть очевидную аналогию по соответсвующим уровням напряжений. Во-2-х, при подаче высочайшего TTL-уровня (логическая единица) на вход передатчика RS232 на его выходе получаем малый уровень напряжения (логический ноль).

По этой причине достаточно часто состояние Mark называют логической единицей, что может привести к путанице. И, наконец, в-третьих, при программировании интерфейса RS232 в компьютере, например, для установки на линии DTR высокого уровня напряжения, необходимо установить бит, управляющий линией DTR, в 1 (out 3fch,l).

Кроме уровней напряжений линии интерфейса RS232 важной характеристикой также является скорость изменений состояний из логической единицы в логический ноль и обратно, т.е. длительностью фронта и длительностью спада сигнала. Значения длительности связаны со скоростью обмена, которая измеряется в битах за секунду (или в бодах). Максимальная возможная скорость обмена по линии RS232 составляет 115200 бод (для компьютера). Если используется пакет из 8 бит данных без контроля по паритету и с одним стоповым битом, то вместе со стартовым битом такой пакет будет состоять из 10 бит. Нетрудно подсчитать, что в данном случае время передачи каждого бита будет равно около 8,68 мкс.

В соответствующих справочных данных — datasheet производители микросхем — преобразователей уровней RS232 указывают скорость обмена конкретной модели преобразователя, или скорость изменения сигналов из логической единицы в логический ноль и обратно. Значение этой скорости почти всегда должно быть больше или равно 30 В/мкс.

Ах так осуществляется передача по линии одного импульса, длительность которого соответствует времени передачи 1 бита при скорости обмена 115200 бод. При уровнях логической единицы и логического нуля соответственно +10 и -10 В и скорости изменения состояний линии из логического нуля в логическую единицу и обратно, равной 30 В/мкс, длительность фронта и спада импульса будет равна (каждая) около 0,67 мкс (в сумме 1,33 мкс). Таким макаром, длительность состояния линии в логической единице будет 8,68 — 1,33 = 7,35 мкс, что будет соответствовать примерно 84,7% длительности всего импульса. Превышение длительностей фронта и спада импульса и, как следствие, уменьшение данного процентного соотношения может привести к срыву обмена и потере данных.

Стоит отметить, что далеко не все микросхемы — преобразователи уровней интерфейсов RS232 способны обеспечить столь высокую скорость обмена данными, хотя некоторые микросхемы могут работать даже значительно быстрее, передавая данные на скоростях до 460 кбод. Еще одна особенность состоит в том, что высокую скорость обмена данных в 115 кбод могут обеспечить только высокоскоростные оптроны (если идет речь о гальванической развязке). На практике в промышленных устройствах в большинстве случаев используются следующие скорости обмена: 9600, 115200 и 57600 бод .

Com port rs232

Распиновка — расположение контактов в разъеме RS-232 DB9 и DB25.

Адреса по дефлоту для COM портов: COM1=3f8h, COM2=2f8h, COM3=3e8h, COM4=2e8h. COM1 занимает адресное простанство от 3f8h до 3ffh

Установка скорости обмена. В порт с адресом 3fbh записываем байт 80h, затем в 3f8h — младший байт делителя максимально возможной скорости 115200, далее в порт 3f9h старший байт делителя. Старший байт используется редко и служит для установки малых скоростей.

Узнайте условия проведения наладки автоматики, отправив запрос на [email protected]

Время выполнения запроса: 0,00239205360413 секунды.

Обзор стандарта RS-232

Четность в RS-232 (Parity) При передаче по последовательному каналу контроль четности может быть использован для обнаружения ошибок при передаче данных. При использовании контроля четности посылаются сообщения подсчитывающие число единиц в группе бит данных. Зависимо от результата устанавливается бит четности. Приемное устройство также подсчитывает число единиц и затем сверяет бит четности.

Типы четности Для обеспечения контроля четности компьютер и устройство должны одинаково производить подсчет бита четности. Другими словами, определиться устанавливать бит при четном (even) или нечетном (odd) числе единиц. При контроле на четность биты данных и бит четности всегда должны содержать четное число единиц. В противоположном случае соответствует для контроля на нечетность. Mark и Space биты четности Часто в драйверах доступны еще две опции на четность: Mark и Space. Эти опции не влияют на возможность контроля ошибок. Mark означает, что устройство всегда устанавливает бит четности в 1, а Space — всегда в 0. Обнаружение ошибок Проверка на четность — это простейший способ обнаружения ошибок.

Он может определить возникновение ошибок в одном бите, но при наличии ошибок в двух битах уже не заметит ошибок. Также такой контроль не отвечает на вопрос какой бит ошибочный. Другой механизм проверки содержит в себе Старт и Стоп биты, циклические проверки на избыточность, которые часто применяются в соединениях Modbus. Пример В этом примере показана структура передаваемых данных со синхронизирующим тактовым сигналом. В этом примере используется 8 бит данных, бит четности и стоп бит. Такая структура также обозначается 8Е1.

Примечание: Тактовый сигнал — для асинхронной передачи это внутренний сигнал Старт бит Сигнальная линия может находится в двух состояниях: включена и выключена. Линия в состоянии ожидания всегда включена. Когда устройство или компьютер хотят передать данные, они переводят линию в состояние выключено — это установка Старт бита. Биты сразу после Старт бита являются бюитами данных. Стоп бит Стоп бит позволяет устройству или компьютеру произвести синхронизацию при возникновении сбоев.

Например, помеха на линии скрыла Старт бит. Период между старт и стоп битами постоянен, согласно значению скорости обмена, числу бит данных и бита четности. Стоп бит всегда включен. Если приемник определяет выключенное состояние, когда должен присутствовать стоп бит, фиксируется появление ошибки. Установка Стоп бита Стоп бит не просто один бит минимального интервала времени в конце каждой передачи данных. На компьютерах обычно он эквивалентен 1 или 2 битам, и это должно учитываться программе драйвера. Хоя, 1 стоп бит наиболее общий, выбор 2 бит в худшем случае немного замедлит передачу сообщения. (Есть возможность установки значения стоп бита равным 1.5.

Это применяется при передаче менее 7 битов данных. В данном случае не могут быть переданы символы ASCII, и поэтому значение 1.5 используется редко.)

Управление потоком

Управление потоком Управление потоком представляет управлять передаваемыми данными. Иногда устройство не может обработать принимаемые данные от компьютера или другого устройства. Устройство использует управление потоком для прекращения передачи данных. Могут использоваться аппаратное или программное управление потоком. Аппаратное управление потоком Аппаратный протокол управления потоком RTS/CTS.

Он использует дополнительно два провода в кабеле, а не передачу специальных символов по линиям данных. Поэтому аппаратное управление потоком не замедляет обмен в отличие от протокола Xon-Xoff. По мере надобности послать данные компьютер устанавливает сигнал на линии RTS. Если приемник (модем) готов к приему данных, то он отвечает установкой сигнала на линии CTS, и компьютер начинает посылку данных. При неготовности устройства к приему сигнал CTS не устанавливается. Программное управление потоком Программный протокол управления потоком Xon/Xoff использует два символа: Xon и Xoff. Код ASCII символа Xon — 17, а ASCII код Xoff — 19.

Модем имеет маленький буфер, поэтому при его заполнении модем посылает символ Xoff компьютеру для прекращения посылки данных. При появлении возможности приема данных посылается символ Xon и компьютер продолжит пересылку данных. Этот тип управления имеет преимущество в том, что не требует дополнительных линий, т.к. символы передаются по линиям TD/RD. Но на медленных соединениях это может привести к значительному замедлению соединения, т.к. каждый символ требует 10 битов.

Преобразование уровней RS-232 в TTL уровень с помощью MAX232

Предшественники RS-232 Два типа устройств RS-232, 1488 и 1489, используются и сейчас. Это ранние представители этого стандарта. Устройства тех пор запитывались мощными источниками питания, поскольку согласно стандарту RS-232 передатчики должны были обеспечивать минимальный +5В сигнал малого уровня и минимальный -5В сигнал высокого уровня. Эти уровни сигналов обеспечивали устойчивость к помехам после передачи по проводам к приемнику. Но это требувало наличие двуполярного источника питания, и поэтому многие материнские платы содержали в себе источник отрицательного напряжения исключительно для питания устройств типа 1488 ии 1489. Техническая документация Семейство микросхем MAX220-MAX249 линейных приемо-передатчиков созданы для интерфейсов EIA/TIA-232E и V.28/V.24, особенно в устройствах, где отсутствуют напряжения ±12В.

Альтернативная микросхема ICL232. Это сдвоенный приемо-передатчик соответсвующая спецификациям RS-232C и V.28. Для питания мс требуется только напряжение +5В. Напряжения +10В и -10В преобразуются из 5В-го с помощью двух емкостных преобразователях напряжения. Микросхема MAX232 Микросхема MAX232 быстро стала индустриальным стандартом. Многие разработчики используют ее, несмотря на то, что параметры микросхем с однополярным питанием значительно улучшились с течением времени. Конфигурация выводов MAX232: представлена на рис.

Структурная схема MAX232A На структурной схеме MAX232A изображены удвоитель напряжения и инвертор напряжения +10В в -10В. Эти напряжения используются для формирования сигналов соответсвующих RS-232. MAX232A позволяет подключить два последовательных порта.

Токовая петля

  • большая дальность чем у RS-232
  • помехоустойчивость передачи данных
  • расстояния до 600 м
  • скорость передачи до 19.2 кБод

Программное обеспечение

  • Терминал последовательного порта — поддержка COM5 и выше
  • TCP/IP клиентский терминал
  • TCP/IP серверный терминал
  • UDP терминал
  • Не требует инсталляции, только один .EXE файл.
  • Работает с виртуальным последовательным портом, (COM12 например)
  • Можно использовать простые Макро функции, включающую посылку HEX комманд. Макро функции сохраняются в регисрах, и Hercules запоминает их.
  • Терминал последовательного порта показывает состояния и может управлять сигналами модема (CTS, RTS, DTR, DSR, RI, CD)
  • Можно пересылать файлы и сохранять полученные данные в LOG файле.
  • Поддержка TEA — безопасную TCP/IP авторизацию для клиента и сервера TCP/IP, тестовых режимов..
  • Поддержка передачи данных TCP/IP в TCP/IP сервере или клиенте TCP/IP.
  • Поддержка передачи данных UDP/IP в UDP/IP терминале
  • Поддержка сетевого виртуального терминала NVT (Network Virtual Terminal) в тестовом режиме.
  • Применение Telnet дополнительно с NVT позволяет конфигурировать последовательный порт (RFC2217), проводить идентификацию устройства, подтверждение передачи данных и др.
  • Эта утилита распространяется FREEWARE, можно использовать ее и распространять без всяких ограничений!

Com port rs232

Terminal — это простой эмулятор терминала последовательного порта (COM). Может применяться для коммуникациис различными устройствами, такитми как модемы, роутеры, GSM телефоны. Очень полезная утилита для отладки приложений для соединений по последовательному каналу.

  • Маленький размер файла small .exe 246k
  • Простая посылка файла
  • Счетчик символов
  • До 6 com портов
  • Скорость обмена до 256кБит/c
  • Запись в log файл (hex & string)
  • Передача макросов

Serial Port Monitor — RS232 Logger software to analyze COM port

Com port rs232

Tera Term (Pro) — свободно распространяемый эмулятор терминаладля MS-Windows. Поддерживает эмуляцию VT100, telnet соединение,соединение по последовательному порту и т.д.

  • Поддержка портов выше COM4.
  • Скорость обмена 14400.
  • Горячие клавишы пользователя «EditCLS», «EditCLB», «ControlOpenTEK» и «ControlCloseTEK».
  • Макрокоманды «clearscreen», «code2str», «enablekeyb», «filemarkptr», «fileseekback», «filestrseek2», «findclose», «findfirst», «findnext», «getdir», «kmtfinish», «kmtget», «makepath», «sendkcode», «setdir», «setexitcode», «str2code» and «testlink».
  • Макрооператор «%».
  • Макро: комментарий, который можно включить в любую строку.
  • Pass-through printing directly to a port
  • Специальные опции в файле установки «AutoFileRename», «BackWrap», «Beep», «EnableStatusLine», «MaxComPort», «PassThruDelay», «PassThruPort», «PrnConvFF», «RussPrint» и «TitleFormat».
  • Новое диалоговое окно [Setup] TCP/IP.
  • Лист истории хостов.
  • Использование кодировок русского языка (CP 866 и ISO 8859-5).
  • Новые иконки.
  • Возможность выделения текста.
  • Выполнение команд меню с помощью горячих клавиш, определяемых пользователем.
  • Tera Term расширенный интерфейс.

Связь микроконтроллера с компьютером через RS232

Почти все микроконтроллеры имеют на борту последовательный порт — UART . Работает он по стандартному последовательному протоколу, а значит его можно без проблем подключить к компу на COM порт. Но есть тут одна проблема — дело в том, что комповый RS232 он за логические уровни принимает +/- 12 вольт, а UART работает на пятивольтовых уровнях. Как их совместить? Для этого существует несоколько вариантов схем преобразователей уровня, но самая популярная это все таки на специальном преобразователе RS232-TTL . Это микросхема MAX232 и ее аналоги.
Практически каждая фирма делает свой преобразователь, так что тут сгодится и ST232 , и ADM232 , и HIN232 . Схемка простая как три копейки — вход, выход, питание и обвязка из пяти конденсаторов. Конденсаторы обычно ставятся 1uF электролиты, но в некоторых модификациях ставится 0.1uF керамика. Я везде впаивал 0.1uF керамику и обычно этого хватало. 🙂 Работает как часы. Если же на высоких скоростях будет глючить, то надо будет повышать емкость.

Кстати, существует к тому же MAX3232 это то же самое, но на выходе у него не 5вольт TTL, а 3.3 вольта TTL. Её используют для низковольтных контроллеров.

Я себе сделал один такой универсальный шнурочек, чтобы к контроллерам цепляться было удобно по UART . Для общей компактности всю схему запихал прям в разъем, благо у меня были ST232 в soic корпусе. Получилась платка не больше рублевой монеты. Потому что под рукой не было мелких SMD конденсаторов, то пришлось напаять кондеры сверху, кто во что горазд. Главное работает, хоть и не очень красиво вышло.

Если сомневаешься, что у тебя получится столь мелкий монтаж, то я тебе развел плату на стандартный PDIP корпус. Размером она будет со спичечный коробок, зато мельчить не нужно.

Com port rs232

После сборки проверяется просто:
Втыкается в разъем COM порта. Подается 5 вольт питания на схему, а затем замыкаешь Rx на Tx (у меня это зеленый и желтый провода).

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

Com port rs232 общем, есть

Если работает, то дальше все очень просто. Тот провод который идет от ножки 9 микросхемы MAX232 это передающий вывод , его заводи на ногу RxD контроллера. А тот который с ножки 10 — принимающий , его смело сажай на вывод TxD контроллера.

Com port rs232

Плата сделана была методом ЛУТ, в одном месте по моему недосмотру толщина просвета оказалась 0.05мм, протравилась, но со спайками, пришлось процарапывать. А в целом с первого раза ать и никаких проблем. Аж сразу захотелось сделать что нибудь маленькое маленькое, нафаршированное нафаршированное 🙂

Com port rs232

Все, аппаратная часть для связи микроконтроллера с компом готова. Ждите следующего поста в каком я расскажу как конфигурировать и использовать UART в микроконтроллерах AVR . В дальнейшем я буду через UART осуществлять отладочную связь с компом. Может быть даже ради этого соберу отдельный модуль с LCD экранчиком. Для отладки в железе.

Посмотрим как попрет.

Спасибо. Вы потрясающие! Всего в месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.

165 thoughts on “Связь микроконтроллера с компьютером через RS232”

Ivan A-R :

Актуальнее уже про USB 2 serial рассказывать… Парадокс однако, последовательные порты в писюках пропадают. А потребители последовательных портов множатся =)

Что такое RS232 и для чего он используется?

DI HALT :

Будет! Когда найду где купить эту гребанную FT232 а заказывать за 3 цены из Москвы совершенно не хочется.

USB — это только провод, и менее 2-3м… И 500 Мбит.сек -оно роботу надо? Видеосигнал гнать — проще камеру со встроенным радиоканалом поставить. (У нас в Алма-ате их в каждом магазине полно, от 10$). Зато с RS232 — хоть через ИК, хоть по простейшему радиоканалу — без проблем. Для управления и телеметрии даже 9600 заглазно, а ведь можно и поболее 100 кбод обеспечить.

Так что у кого нет COM, проще купить переходник USB-RS232 и не морочить голову себе и роботу.
Купить звонок с радиокнопкой за 3-5$, сейчас их полно, вот тебе и командная радиолиния на 430 МГц, если лень самому приемник с передатчиком делать, а подцепить их к USART и COM -не проблема.

DI HALT :

Да COM у меня гдет в глубине, а USB на морде. ПЛюс на ноуте нет СОМ порта, а хочется 🙂 А чо за камеры за 10 баксов да еще с RS232? Чтот не верится.

Нет, в камере радиоканал 1100-1200МГц, на одном транзисторе, а из камеры торчит проводок сантиметров 5-6. Приемник размером с пачку сигарет, видео выход — стандартный, на тюльпанчике. Питание 9-12в,
камера с полспичечного коробка, что чб, что цветная. Цены зависимо от сложности и качества от 1200 тенге до 6500 и выше.
(Курс = 120 тенге за доллар). Типов — десятки. Например, есть в полусфере, на потолок, поворачивается дистанционно. Большинство имеют встроенную ИК подсветку разной мощности.

Китайцы много всего наделали, а Китай от нас рядом, (180км), «Челноки» на автобусе ездят.

DI HALT :

Классно, у нас таких цен нет 🙁 Все везут сначала в Москву, а потом только к нам. Выходит раз в 5-10 дороже.

У нас тоже много везут из Москвы, но чаще — с Китая, Тайваня, Турции или Эмиратов. У нас и копьютерное железо заметно дешевле, чем в Москве. И любая валюта свободно ходит, обменники на каждом углу. Полно всяких барахолок, оптовок, магазинчиков. В общем, есть все, могли быть деньги…

sinobi :
Не смогли бы вы скинуть фотку платы видеопередатчика описываемого выше?
Mazayac :

«Купить звонок с радиокнопкой за 3-5$, сейчас их полно, вот тебе и командная радиолиния на 430 МГц» — не все звонки одинаково полезны. Покупал недавно — так там тупая микрушка, с которой кроме как «подал питание на передатчик — активировался выход на приемнике» никак и не поработаешь.

Mazayac :
Много надо?
Могу прислать сколько-нибудь.
В приставки спутниковой антенны, она там стоит для прошивки приставки.

Мож сразу по блютусу будем контроллеры пошивать? ИМХО старый добрый ком ничего не заменит! Пропадают последовательные порты на писюках? Радиолюбители… Спаяй переходник USBtoCOM и никаких тебе проблем.

Сейчас проще уже сразу Obdev AVR-USB использовать, а в пару ему загрузчик BootloadHID. Только бы кварц не меньше 12 МГц был.

DI HALT :

Как с этим Obdev AVR общатсья с компом? Он виртуальный COM порт открывает? Сколько памяти в кристалле сжирает код USB?

Какой стандарт выберешь, так и будет общаться. 😉 Я использую USB HID — и Windows на стандартный драйвер подхватывает, и утилита есть простейшая для отладки — SimpleHIDWrite. Можно и CDC (вирт. COM), но тут AVR’ке приходится притворяться Full-speed девайсом — уходит сильно много процессорного времени:
«Consumes ca. 90% or more of the AVR’s CPU time because bulk endpoints are polled aggressively by the host. Real-time applications on the AVR are close to impossible.»
Чаще используют на 8 Кбайтовых восьминогих tiny, чтобы сэкономить на FT232. Можно напрямую, но тогда — пиши свой драйвер для NT. Под *nix можно и без драйвера. 🙂 Ещё, как я понимаю, можно воспользоваться libusb-win32.

Драйвер памяти кушает ~1.5 Кб, находится в зависимости от конфигурации. На tiny2313 точно влезало, даже ещё место под свой код оставалось. HIDBoot кушает 2 Кбайта.

Вопрос: какую набольшую длину кабеля можно сделать от платы с MAX232 до выводов контроллера ? и какая наибольшая длина может быть у кабеля от MAX232 до COM порта, если делать девайс на стороне контроллера ?

DI HALT :

У меня от МАХ232 до контроллера 1.5 метра, от MAX232 до порта тоже было 1.5 метра, работало без сбоев. ПОдозреваю, что можно и много больше, по крайней мере раза в два три точно. Но тут уже от скорости передачи зависит.

«RS-232 — интерфейс передачи информации между двумя устройствами на расстоянии до 20 м.» (С)Wikipedia

DI HALT :
Это чистый 12В рс232. Поэтому от МАкс до контроллера сильно лучше не удалять.
Я писал про случай Макс-COM.

У меня где-то было описание стандарта RS232. Помнится, при скорости 50 бод — до 1,5 км. Чем быстрее, тем меньше. Точно табличку не помню, но, думаю, что метров до 5 по витой паре и 115кбод — не проблема. А зачем роботу большая скорость? Я 20 лет проработал в лаборатории телеграфа. Основная скорость на сети была 50 бод, 1знак передавался за 150 мсек.

6 знаков в сек. При скорости 200 бод уже еле — еле успеваешь читать теуст, распечатываемый на телетейпе. Что толку выплюнуть знак в линию за микросекунду, а потом несколько секунд ждать следующего? Я думаю, роботу и 9600 — заглазно, а на такой скорости хоть через ИК или простейший радиоканал гони. Не будет же робот на проводке сидеть, ему надо хотя бы по комнате бегать.

А режим отладки для него не главное, можно и по шнурку.

DI HALT :

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

Так ведь длина сообщений навряд ли будет больше одного — двух десятков байт за один раз. Кинул в очередь на передачу, поставил флажок наличия данных для выдачи, а отдельная подпрограммка в основном цикле проверяет готовность передатчика, кидает ему очередной байт, сдвигая курсор на следующий знак, после последнего — сбрасывает флажок наличия данных для передачи, выставляя флаг, что передача окончена. Большинство стандартных сообщений заложено в ПЗУ с программой, буфер — только для переменной части сообщения, может быть всего байт на 8. Когда — то я таким макаром еще на 1816ВЕ35 выдавал челез заданные интервалы времени или при обнаружении нарушений накопленную статистику на телетайп на 200 бод, не прекращая при всем этом отслеживать и обсчитывать несколько точек. Быстродействие же современных контроллеров куда выше, ну и UART уже встроенный. А посимвольно все равно ждать придется, за время передачи одного байта даже на 128 Кбод примерно 78мкс пройдет, а это при тактовой даже 8 МГц ~ 625 команд!

Зато быстрый канал потребует довольно жесткого кабеля, и по радио или ИК его передать будет куда сложнее.
Ну и от буфера все равно не избавитесь, надо же где-то сообщение формировать в любом случае. Если брать только из ПЗУ, то и тогда в моем варианте буфер не нужен. Достаточно знать адрес первого байта и длину. Если концом сообщения будет спецсимвол (например, ВК), то и длину знать не нужно.

sinobi :

Гдето давно схемка была датакабеля для симена с25,на мах232 дак там и питание от ком порта было и вся схема с микрой в дипе в пластмассовый корпус разъёма влезала

Похожие статьи

  • Com port cable

    В качестве соединительного кабеля из-за отсутствия необходимости использования всех контактов обычно берется витая пара, отдельные провода которой…

  • Com port 232

    Синхронный режим передачи предполагает непрерывный обмен данными, когда биты следуют один за одним без дополнительных пауз с данной скоростью. Этот режим…

  • Com port rs 232

    Также RS-232 нередко именуют поочередным портом либо COM-портом. Разумеется, что на компьютерах он употребляется сначала для подключения другого…

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Что будем искать? Например,Человек

Мы в социальных сетях