Drummer
Гость
|
|
« : 30-04-2005 10:39 » |
|
Hi! Есть внешнее устройство которое генерирует импульсы. Какого напряжения должен быть импульс чтобы СОМ порт принял его как логическую 1? Как записать эти импульсы с СОМ порта в файл и соответственно в последствии воспроизвести их из файла? Читал тут статьи о СОМ порте что такое стоповый бит и нужен ли он в моем случае? ведь импульсы не разбиваются на байты?
немного програмировал на С перешел на С++, если можно подробнее
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #1 : 30-04-2005 21:53 » |
|
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 кГц, то почему бы не использовать для ввода обычную звуковую карту? Тем более что в этом случае даже компаратор для определения перехода через нуль не потребуется, все можно средствами самой карты сделать. А уж звуковая плата нынче не такое дорогое удовольствие, на большинстве материнских плат вообще идет бесплатным приложением.
|
|
|
Записан
|
|
|
|
|
RomCom
|
|
« Ответ #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 вольт?
Если человек просит совета, он ожидает получить его от тех, кто имеет опыт реальной работы в данной области. Не следует подбивать его на сомнительные эксперименты, ему и без них проблем хватит.
|
|
|
Записан
|
|
|
|
|
RomCom
|
|
« Ответ #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
|
|
« Ответ #11 : 07-05-2005 13:57 » |
|
Резистором R9 регулируется напражения переключения компоратора. Триггер (К561ТМ2) переключается при переключении компоратора. Впринципе можно обойтись без триггера но длина импульсов на выходе компоратора может быть слишком мола чтобы их смог зафиксировать адаптер порта. Выход триггера подсоединяется ко входу (DSR, CTS) порта. Эта схема взята из моего диплома и проверена на практике.
|
|
|
Записан
|
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
|
|
« Ответ #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
|
|
|
|
Drummer
Гость
|
|
« Ответ #15 : 11-05-2005 21:08 » |
|
RomCom немогбы ты прислать на мыло hellseser@narod.ru инфу о схеме схема мне подходит, может у тебя есть болле подробное описание работы схемы я ща сам пишу диплом или выложи тут думаю некоторые тоже заинтерисуются
|
|
|
Записан
|
|
|
|
RomCom
|
|
« Ответ #16 : 12-05-2005 12:06 » |
|
Подробного описания этогй схемы у меня нет, т.к. это часть большой и более сложной схемы и у меня описывался весь блок, а на части по отдельности. Единственное что могу добавить это отрывок из диплома:
Сигналы синхронизации формируются с помощью детектора нуля выпол-ненного на компараторе DA1.1 (графики входных и выходных напряжений показа-ны на рисунке). Для этого напряжение питания двигателя РД-09 через понижающий трансформатор и диодный мост VD1 подается на инверсный вход компаратора DA1.1. На не инверсный вход поступает опорное напряжение с делителя на резисторах R7,R8. Когда напряжение на инверсном входе меньше или равно напряжению на не инверсном компаратор передает на выход единицу (график в).
Добавление опорного напряжения вызвано паразитной емкостью диодного моста VD1 из-за которой в выходном напряжении появляется постоянная состав-ляющая Uп=0.5..0.8В. При настройке прибора необходимо подбором резистора R8 добиться равенства опорного напряжения и Uп.
Графики напряжений: а) на входе диодного моста б) на входе детектора нуля в) выходе детектора нуля г) на выходе триггера
|
|
|
Записан
|
R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
|
|
|
|