Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: вопросы о COM порте  (Прочитано 25792 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Drummer
Гость
« : 30-04-2005 10:39 » 

Hi!
Есть внешнее устройство которое генерирует импульсы.
Какого напряжения должен быть импульс чтобы СОМ порт принял его как логическую 1?
Как записать эти импульсы с СОМ порта в файл и соответственно в последствии воспроизвести их из файла?
Читал тут статьи о СОМ порте что такое стоповый бит и нужен ли он в моем случае? ведь импульсы не разбиваются на байты?

немного програмировал на С перешел на С++, если можно подробнее
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 30-04-2005 21:53 » new

1)
"0" - +5..15 В
"1" - -5..15 В

В чем задача?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Alf
Гость
« Ответ #2 : 30-04-2005 23:08 » 

Hi!
Есть внешнее устройство которое генерирует импульсы.
...
Как записать эти импульсы с СОМ порта в файл и соответственно в последствии воспроизвести их из файла?
...
что такое стоповый бит и нужен ли он в моем случае? ведь импульсы не разбиваются на байты?

Дело в том, что порт COM не предназначен для работы с импульсами. На него нужно подавать сигнал, сформированный в соответствии с асинхронным старт-стопным протоколом. Только в этом случае он сможет нормально принимать информацию.

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

Подробнее можно ответить, лишь получив представление о природе сигнала.
Записан
Drummer
Гость
« Ответ #3 : 01-05-2005 08:24 » 

Задача следущая
аналоговый сигнал переводится в последовательность импульсов (которые соответствуют переход аналогового сигнала через ноль, 100 Гц - 4 кГц)
Эти импульсы и нужно записать в файл и в последствии передать из файла (0 и 1)

я предположил что для этого подойдет СОМ порт
но полазив в инете понял что без контроллера не обойтись
можно ли принять эти импульсы на копм без контроллера?
или может есть способ написать прогу которая будет принимать эти имп. без протокола RS 232?
« Последнее редактирование: 01-05-2005 08:26 от Drummer » Записан
Alf
Гость
« Ответ #4 : 01-05-2005 17:19 » 

А не рассматривал другие подходы? Просто COM-порт ориентирован на несколько другие функции. Конечно, однобитовый сигнал через него вводить можно, но, во-первых, потребует очень аккуратного программирования, во-вторых, походит на забивание гвоздей микроскопом.

Если диапазон частот аналогового сигнала и впрямь составляет 100 Гц - 4 кГц, то почему бы не использовать для ввода обычную звуковую карту? Тем более что в этом случае даже компаратор для определения перехода через нуль не потребуется, все можно средствами самой карты сделать. А уж звуковая плата нынче не такое дорогое удовольствие, на большинстве материнских плат вообще идет бесплатным приложением.
Записан
Tuborg
Команда клуба

ee
Offline Offline

« Ответ #5 : 03-05-2005 07:38 » 

Согласно стандарта RS232C логические уровни соответствуют следующей шкале напряжений
"0"   U>+3 В
"1"   U< -3 В

Согласен с предыдущими ораторами, что через RS232 просто так тебе будет это всё не прогнать (надо как минимум асинхронную синхронизацию продумывать)

Ещё под задачу нужен АЦП (если природа сигнала- аналоговая), если же по природе - сгинал дискретный то можно задействовать LPT (хотя данный интерфейс уже, можно сказать, "почил в бозе").  Если же всё таки оно - аналоговое, то без АЦП никак, тут как раз самым простым решением - будет звуковуха, тем более что в инете можно нарыть и ПО для звуковихи для чтения сигнала, как с осциллографа...
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 04-05-2005 13:00 » 

Если я правельно понял, необходимо фиксировать сам факт импульса.
Тогда можно поставить два логических элемента (просто инверторы) на КМОП микросхеме (К561, КР1561). Компоратором отдельно фиксировать + и - импульсы и подавать их на разные логические элементы. Выходы подсоеденить ко входам статуса порта. т.е. на все уйдет 2 микросхемы.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Alf
Гость
« Ответ #7 : 04-05-2005 13:23 » 

И на кой, простите, нужны КМОП-инверторы на входе с уровнем логической единицы от -3 до -15 вольт?

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

ee
Offline Offline

« Ответ #8 : 04-05-2005 14:00 » 

Абсолютно согласен с RomCom поскольку так будет намного проще и как говорится не от "диавола"...  я думаю можно даже здесь такую схемку собрать в EWB потестить и выложить опять здесь же... мне, например было бы любопытно. А, уважаемый Drummer смог бы эту схемку дома спаять, т.к. уже на руках будет иметь готовый вариант.
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 04-05-2005 14:02 » 

Опыт у меня есть. Дипломную работу делал.
А то что в стандарте написано -3 до -15 на это адаптеры материнских плат плюют с верхней полки.
Прибор собранный мной для приема и передачи данных использовал ТТЛ микрасхему (т.е. выдовал на вход порта 0..+5В) и все работало как надо, на скоростях 9...24Кб (скорей всего и на больших работать бутет). Проверял на 4 машинах (486, пентиум, АМД Атлон).
А если уж сильно по стандарту все зделать хочется можно поставить мс типа SP232 (ADM232) но там питание ТТЛ (+5В).
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Drummer
Гость
« Ответ #10 : 05-05-2005 15:58 » 

RomCom ты все правильно понял
нужно фиксировать сам факт импульса
вот только я в схемотехнике слабовать
несовсем понял что ты хотел предложить
может ты нарисуешь схему (в любом виде хоть от руки а потом отскань)
« Последнее редактирование: 05-05-2005 15:59 от Drummer » Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 07-05-2005 13:57 » 

Резистором R9 регулируется напражения переключения компоратора.
Триггер (К561ТМ2) переключается при переключении компоратора. Впринципе можно обойтись без триггера но длина импульсов на выходе компоратора может быть слишком мола чтобы их смог зафиксировать адаптер порта.
Выход триггера подсоединяется ко входу (DSR, CTS) порта.
Эта схема взята из моего диплома и проверена на практике.

* shema.gif (4.32 Кб - загружено 1227 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
xelos
Гость
« Ответ #12 : 07-05-2005 22:27 » 

у меня один из древних девайсов снимает напряжение с 4 датчиков, на каждом канале стоит по преобразователю  напряжение/частота и частота подается на входные ноги кома... частота считается программой на компе без проблем. до 200 кГц.
как RomCom написал, 0 +5В без проблем идет.
в программе просто читаешь порт по адресу 3F8 - если интересуют подробности, могу описать.
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 08-05-2005 05:21 » 

Читать состояние действительно можно по адресу порта (как писал xelos). Но этот метод действует только под Win9x, под WinNT это не прокатит (по крайней мере я не знаю как это можно сделать) т.к. НТ-ки запрещают обращаться напрямую по адресу. Для работы с портами есть стандартные функции и десятки бесплатных компонентов реализующии этот метод. Я использовал в своей программе ComPort Library v2.61a.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
xelos
Гость
« Ответ #14 : 08-05-2005 08:12 » 

я пользовал porttalk бесплатную програмку, открывающую доступ к порту под NT, найти можно на http://www.beyondlogic.org/porttalk/porttalk.htm
Записан
Drummer
Гость
« Ответ #15 : 11-05-2005 21:08 » 

RomCom немогбы ты прислать на мыло hellseser@narod.ru инфу о схеме
схема мне подходит, может у тебя есть болле подробное описание работы схемы
я ща сам пишу диплом

или выложи тут думаю некоторые тоже заинтерисуются
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 12-05-2005 12:06 » 

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

Сигналы синхронизации формируются с помощью детектора нуля выпол-ненного на компараторе DA1.1 (графики входных и выходных напряжений показа-ны на рисунке). Для этого напряжение питания двигателя РД-09 через понижающий трансформатор и диодный мост VD1 подается на инверсный вход компаратора DA1.1. На не инверсный вход поступает опорное напряжение с делителя на резисторах R7,R8. Когда напряжение на инверсном входе меньше или равно напряжению на не инверсном компаратор передает на выход единицу (график в).

Добавление опорного напряжения вызвано паразитной емкостью диодного моста VD1 из-за которой в выходном напряжении появляется постоянная состав-ляющая Uп=0.5..0.8В. При настройке прибора необходимо подбором резистора R8 добиться равенства опорного напряжения и Uп.

Графики напряжений:
а) на входе диодного моста
б) на входе детектора нуля
в) выходе детектора нуля
г) на выходе триггера

* graph.gif (4.69 Кб - загружено 1260 раз.)
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines