Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 18:24   #1
SYSSI
 
Регистрация: 15.09.2010
Сообщений: 8
По умолчанию проблема с COM-портом

Приветствую всех.
Сломал весь мозг, не знаю как решить проблему
Короче, есть железка, подключенная к COM-порту через преобразователь L9637D (ISO9141), другими словами, данный драйвер преобразует RX,TX в одну линию. Режим - только симплекс, т.е. одновременно прием/передача не возможна. Ввиду схемотехники данной связки, данные, переданные с любого передатчика (ПК, "железка") попадают на вход собственного приемника, т.е. само что ни есть ЭХО! Его необходимо беспощадно игнорировать. В этом то и проблема..... Со стороны железки - проблем нет. Со стороны ПК - не знаю, как победить. Помогите, знающие люди!!!
В программе нет никаких потоков. Все по-порядку, как в армии.
Я применял только WriteFile и ReadFile в классическом исполнении.
Короче, нужно каким-то образом, только программно со стороны ПК ЗАГЛУШИТЬ эхо от него же....
Спасибо.
Очень надеюсь на помощь.
SYSSI вне форума Ответить с цитированием
Старый 15.09.2010, 20:56   #2
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

В общем это решаемо, но советовал бы разделить сигналы. И если используеш железяку с уровнями ТТЛ то ставь однозначно преобразователь ну например фирмы Максим или транзисторный так как уровни 0 = - 5 вольт 1 - + 5 вольт (но тут я могу и ошибиться).

короче вот листинг под С++ проверяно на компиляторе С++ Билдер (да и в другой раз пользуйся реально поиском на сайте много об этом разговор заходил)
Код:
HANDLE hCom = CreateFile("Com1",GENERIC_READ | GENERIC_WRITE,0,NULL, OPEN_EXISTING, 0, NULL);
if( hCom == INVALID_HANDLE_VALUE )
{
ShowMessage("Com port error");
CloseHandle(hCom);
} //if ( hCom == INVALID_HANDLE_VALUE )
else
{
DCB dcb;
GetCommState(hCom, &dcb);
dcb.BaudRate = CBR_9600;
dcb.fParity = false;
dcb.ByteSize = 8;
dcb.Parity = EVENPARITY;
dcb.StopBits = ONESTOPBIT ;
SetCommState(hCom,&dcb);
DWORD feedback = 0;
char buf[32];
ReadFile(hCom, buf, sizeof(buf), &feedback, NULL);
CloseHandle(hCom);
}
Считывание происходит в массив char buf[32].
=================================== =======
для записи
WriteFile(hPortDat, &buf, sizeof(buf), &feedback, NULL))
всему свое время как зиме и весне
и каждому солнцу свой неба кусок

Последний раз редактировалось Stilet; 16.09.2010 в 13:12.
Assemblerru вне форума Ответить с цитированием
Старый 15.09.2010, 21:38   #3
SYSSI
 
Регистрация: 15.09.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Assemblerru Посмотреть сообщение
В общем это решаемо, но советовал бы разделить сигналы. И если используеш железяку с уровнями ТТЛ то ставь однозначно преобразователь ну например фирмы Максим или транзисторный так как уровни 0 = - 5 вольт 1 - + 5 вольт (но тут я могу и ошибиться).
Разделить невозможно. Почему? Читаем даташит на L9637D. Это специфический интерфейс, и по нему нужно загружать обновление устройства. Бутлоадер крипто. А программка для Win проще некуда. Единственный косяк с этим долбаным эхо.
Сейчас попробовал по-другому: фильтрую эхо теми же данными, которые посылаю - работает!!! Единственно, что если вдруг винда "задумаецца" и эхо не попадет в RX COM-порта, то будет глюк. Ну думаю у ПК ресурсов хватает, чтобы все успеть....
Не понял, где в твоем исходнике "отключается эхо". У меня все тоже самое.
Вопрос еще актуальный (на будущее).
SYSSI вне форума Ответить с цитированием
Старый 15.09.2010, 23:04   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

1- давайте уже называть вещи своими именами, мы имеем дело с адаптером линии K-Line для работы с электроникой автомобиля
2- чем вам эхо мешает ? по схемотехнике даташита, да, мы его принимаем, но на передачу c TX компьютера это никоим образом не влияет (а вот что касается приема - об этом ниже, в пункте 3), т.е. на загрузчик


3- вы не дали свою схему включения, а тем не менее - имеются нюансы, ну вот к примеру через USB:

обратите внимание, как включен RX и LO и что происходит со входом LI (через транзисторный ключ) во время передачи, внимательно посмотрите.
4- и протокольчик
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 15.09.2010 в 23:14.
raxp вне форума Ответить с цитированием
Старый 15.09.2010, 23:14   #5
SYSSI
 
Регистрация: 15.09.2010
Сообщений: 8
По умолчанию

L-линия уже давным давно не используется - так что выводы 2,8 выбрасываем из схемы со всем им сопутствующим.
Есть только K-линия - RX и TX соответственно связаны между собой "внутренностями" микросхемы. Вот вам и эхо.
SYSSI вне форума Ответить с цитированием
Старый 15.09.2010, 23:18   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ну-ну, выбрасывайте, выбрасывайте

Добавлено
Цитата:
Я в этой теме уже лет так 5.
...угу, конечно в теме ...то-то я смотрю на вазы всё пихают, отсталый наш автопром, а-я-яй а по теме: вы так и не посмотрели назначение ключа.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 15.09.2010 в 23:57.
raxp вне форума Ответить с цитированием
Старый 15.09.2010, 23:30   #7
SYSSI
 
Регистрация: 15.09.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
ну-ну, выбрасывайте, выбрасывайте
да не надо нукать.
Я в этой теме уже лет так 5.
L-линии нет нигде!!! Кроме французского автопрома, и то до 2000 года.
Мы отвлеклись...

Цитата:
Сообщение от raxp Посмотреть сообщение
ну-ну, выбрасывайте, выбрасывайте

Добавлено

...угу, конечно в теме ...то-то я смотрю на вазы всё пихают, отсталый наш автопром, а-я-яй а по теме: вы так и не посмотрели назначение ключа.
Да понял я про транзистор.
НЕ нужно мне так!!! Я ж написал, что мне подходит вариант ТОЛЬКО программно!!! Вообще вопрос был про С++. Не нужно мне пихать схемы. Если бы была возможность сделать так, как на схеме - давно бы сделал и не задавал бы лишних вопросов.

Последний раз редактировалось Stilet; 16.09.2010 в 13:14.
SYSSI вне форума Ответить с цитированием
Старый 16.09.2010, 11:50   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

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

p.s.: вам схемы не пихают, а указывают на ваше недопонимание ...но, по-видимому вы просто не хотите слушать. Удачи, больше в теме не отвечаю
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.09.2010, 12:46   #9
SYSSI
 
Регистрация: 15.09.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
нет, не поняли ...вы хотите, чтоб программа не ловила эхо, не ловите, поставьте логический флаг на время передачи
p.s.: вам схемы не пихают, а указывают на ваше недопонимание ...но, по-видимому вы просто не хотите слушать. Удачи, больше в теме не отвечаю
Какой флаг? Для особо "одаренных" повторю, что нужно избавится от эха ПРОГРАММНО!!!! Вот это я и хочу узнать.

Модератор: не нужно переходить на личности и оскорблять друг друга.

Последний раз редактировалось MaTBeu; 16.09.2010 в 13:01.
SYSSI вне форума Ответить с цитированием
Старый 29.03.2012, 10:13   #10
ra4yem
Новичок
Джуниор
 
Регистрация: 29.03.2012
Сообщений: 1
По умолчанию

raxp подскажи пожалуйста на счёт подключения RX и LO в микросхеме L9637D и нужно ли их разъединить?
ra4yem вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с com портом Speeker Общие вопросы Delphi 1 06.09.2010 19:37
проблема с COM-портом axalay Компьютерное железо 1 23.07.2010 22:30
работа с портом Assemblerru Win Api 16 10.06.2010 20:00
Работа с com портом Валера777 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 05.12.2009 00:06
Работа с com портом albles Общие вопросы C/C++ 2 16.11.2009 15:15