реклама на сайте
подробности

 
 
> Работа с СОМ портом, Win2000
uvw
сообщение Feb 3 2005, 09:12
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 3-02-05
Пользователь №: 2 395



Здравствуйте, уважаемые!
Если кто сталкивался, помогите плизз. Долбаюсь уже 2 недели, и ничего не получается. Ситуация следующая: Есть некий контроллер и общается он с компьютером через RS232, в Win98 все работает, а вот Операционка Win2000
блокирует прямое обращение к портам. Мне подсказали прогу WinDriver для обхода этой проблемы... но опять-же, для LPT порта там есть стандартная заготовка, которая прекрасно работает... а о СОМ порте ни слова. Сразу оговорюсь, я не являюсь системным программистом и с железом дел никогда не имел... а тут пришлось wink.gif Искренне надеюсь на Вашу помощь. Заранее спасибо.
З.Ы.
Я впервые на этом форуме, и вполне возможно что запостил тему не совсем в тот раздел куда следовало бы.
ЗЗ.ЫЫ
Работать с этой штукой через CreateFile/ReadFile/WriteFile тоже не получается,
в ReadFile постоянно нули возвращаются, хотя команда сформирована верно и контроллером принята...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dimonira
сообщение Feb 15 2005, 08:33
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 405
Регистрация: 4-10-04
Пользователь №: 777



Мужики, вы, похоже так и не поняли. Дело не в умении программировать хост компьютер для обмена по последовательному порту. Поэтому что толку предлагать разные либы и пакеты.
Дело в том, что, видимо, порт контроллера полудуплексный. Т.е. он может в один момент времени либо передавать, либо принимать. Так вот он изначально стоит на приём. Для переключения его на передачу (как я думаю) ему, видимо, надо послать нужную команду, в ответ на которую контроллер что-то выдаст. Просто так он сам, похоже только принимает данные, поэтому передавая ему просто всякую ересь (для тестирования обмена), ответа от него не дождётесь. Надо поддержать протокол, т.е. читать инфу по контроллеру.
Даже если у контроллера полный дуплекс, то не факт, что он просто так должен что-то выдавать пока его не попросишь.
Go to the top of the page
 
+Quote Post
SergM
сообщение Feb 15 2005, 08:58
Сообщение #3


Местный
***

Группа: Модераторы
Сообщений: 392
Регистрация: 23-06-04
Из: Харьков
Пользователь №: 151



Цитата(Dimonira @ Feb 15 2005, 11:33)
Мужики, вы, похоже так и не поняли. Дело не в умении программировать хост компьютер для обмена по последовательному порту. Поэтому что толку предлагать разные либы и пакеты.
Дело в том, что, видимо, порт контроллера полудуплексный. Т.е. он может в один момент времени либо передавать, либо принимать. Так вот он изначально стоит на приём. Для переключения его на передачу (как я думаю) ему, видимо, надо послать нужную команду, в ответ на которую контроллер что-то выдаст. Просто так он сам, похоже только принимает данные, поэтому передавая ему просто всякую ересь (для тестирования обмена), ответа от него не дождётесь. Надо поддержать протокол, т.е. читать инфу по контроллеру.
Даже если у контроллера полный дуплекс, то не факт, что он просто так должен что-то выдавать пока его не попросишь.
*


Да, но речь-то идет о ПРОГРАММАТОРЕ! И, насколько я понимаю, инициатором обмена информацией с программируемым устройством должен быть в данном случае именно программатор. А он этого не делает. Кроме того, автор темы пишет, что под ДОС и Win9x он у него работает (или работал и уже не работает? - если уже не работает, тогда действительно, надо разбираться с железякой). А проблемы возникли под NT, что закономерно, т.к. NT не позволяет (без драйверов, нормальных, которых нет, или "псевдо") работать напрямую с портами. Точнее, не с самими COM портами, а с их управляющими регистрами. А именно так и работает (судя по написанному в теме) программка для этого программатора.

Лучше, пожалуй, действительно не морочить себе голову, а работать с ней так, как и работали - из-под ДОС-а.
Go to the top of the page
 
+Quote Post
khach
сообщение Feb 15 2005, 10:11
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Как автор подтопика о программаторе, уточню. Не работает он потому, что писался по канонам хорошего программирования КОМ портов под ДОС. Т.е кроме работы с регистрами UART, он еще работает с регистрами контроллера прерываний- ставит свой обработчик хардверного IRQ 3/4. Если работу с портами UART многие драйвера КОМ устройств для 2000, XP,'эмулируют корректно ( даже некоторые USB ком порты ставили виртуализатор хардвари, и досовые проги вполне корректно с ними работали), то к контроллеру прерываний XP понятное дело не пускает.
Все это выяснено при дизасме управляющей программы. Теперь осталось два пути - первое- патчить прогу на предмет обращения к Вин API. Но я не настолько крут в хакинге, чтобы вызвать 32 разрядный API из 16-битного DOS DPMI приложения. Хотя это и возможно.
Второе - переписывать целиком управляющую прогу. Что успешно делаеться - переписано несколько ( из сотен) микросхем под винду. Основная проблема- снятие и расшифровка лога обмена между программатором и компом. Он, зараза, может одновременно передавать и принимать данные. А снифера/мониторы Кома под ДОС не работают. Соответственно приходиться писать протокол двумя портами на дополнительном компе. А потом этот лог разгребать для каждой микросхемы в программаторе.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- uvw   Работа с СОМ портом   Feb 3 2005, 09:12
- - IgorKossak   Попробуйте следуюшее в прикреплённом файле. У меня...   Feb 3 2005, 09:23
- - uvw   Спасибо, но эту статью я недавно читал (на сайте w...   Feb 3 2005, 10:11
- - IgorKossak   Зачем такие сложности с прямым доступом если и чер...   Feb 3 2005, 10:59
- - uvw   Могу привести исходник на паскале, присланный разр...   Feb 3 2005, 11:36
- - veter   а вы попробуйте RxD и TxD закоротить, и отправить ...   Feb 3 2005, 13:37
- - uvw   Фуухх, я уже окончательно запутался.... выкладываю...   Feb 3 2005, 15:39
|- - DPL   Цитата(uvw @ Feb 3 2005, 18:39)а вот что прои...   Feb 4 2005, 06:16
- - veter   Our_DCB.fDtrControl = DTR_CONTROL_ENABLE; этой на...   Feb 3 2005, 17:13
- - uvw   При установке DTR_CONTROL_DISABLE данные на контро...   Feb 3 2005, 17:37
- - veter   я бы отправил тебе свои исходники, да у меня как р...   Feb 3 2005, 17:46
- - uvw   veter, Давай, буду очень признателен присылай на ...   Feb 3 2005, 17:51
|- - khach   При порты в прикладной программе забудьте- это при...   Feb 4 2005, 10:52
- - Shedon   Здесь есть класс для работы с ком портом, у меня ч...   Feb 4 2005, 10:17
- - Shedon   [khach], естественно из прикладной программы с пор...   Feb 4 2005, 11:20
|- - khach   Цитата(Shedon @ Feb 4 2005, 13:20)[khach], ес...   Feb 4 2005, 11:38
- - andk   >Вопрос- есть жизненно необходимая прога, управ...   Feb 4 2005, 12:36
|- - khach   Цитата(andk @ Feb 4 2005, 14:36)Скорее всего ...   Feb 4 2005, 13:47
|- - -Tумблер-   Цитата(khach @ Feb 4 2005, 16:47)98-дает, Мил...   Feb 7 2005, 12:49
- - uvw   пожалуй, DPL прав! скорее всего так и происход...   Feb 4 2005, 21:09
- - andk   Цитата(khach @ Feb 4 2005, 19:47)Цитата(andk ...   Feb 5 2005, 04:40
- - one_man_show   Попробуйте скачать отсюда Torry компонент для Дель...   Feb 7 2005, 13:20
- - Dimonira   Как я понял из всего сказанного, у человека порт к...   Feb 9 2005, 06:15
- - _Sam_   ЦитатаПри установке DTR_CONTROL_DISABLE данные на ...   Feb 9 2005, 07:22
|- - SergM   Здравствуйте. Есть не плохая книга: П. Агуров ...   Feb 9 2005, 11:58
- - makc   GiveIo с некоторыми программами ведет себя очень с...   Feb 9 2005, 12:36
- - andk   Прикол всех этих псевдо драйверов в том, что они п...   Feb 9 2005, 13:18
|- - SergM   Цитата(andk @ Feb 9 2005, 16:18)Прикол всех э...   Feb 9 2005, 13:57
|- - -Tумблер-   Цитата(khach @ Feb 15 2005, 13:11)Не работает...   Feb 17 2005, 18:40
- - Dimonira   Я как-то пропустил слова о реверс-инжиниринге. Тог...   Feb 16 2005, 11:23
- - Serjio   Мы пользуемся CPORT под все Windows   Feb 17 2005, 08:01
- - Angel   может кому пригодиться h__p://www.rs232.ru/   Mar 3 2005, 11:54
- - PowerF1   Подскажите, у меня такая проблема. Когда собирал м...   Mar 18 2005, 15:59
|- - _VM   Программируй на C++Builder - меньше заморачиваться...   Mar 23 2005, 17:01
|- - -Tумблер-   Цитата(_VM @ Mar 23 2005, 20:01)заводишь пото...   Mar 28 2005, 11:05
|- - _VM   Цитата(-Tумблер- @ Mar 28 2005, 14:...   Mar 29 2005, 00:20
|- - -Tумблер-   Цитата(_VM @ Mar 29 2005, 03:20)А я что-то не...   Mar 29 2005, 06:04
|- - -Tумблер-   Цитата(_VM @ Mar 29 2005, 03:20)А я что-то не...   May 24 2005, 10:44
- - Lukomor   Подскажите пожалуйста! Есть проблема работы с ...   Mar 28 2005, 07:40
|- - _VM   Если протокол связи накладывает жесткие временные ...   Mar 28 2005, 09:19
|- - Lukomor   Спасибо _VM за ответ. Цитата(_VM @ Mar 28 200...   Mar 29 2005, 05:36
|- - -Tумблер-   Цитата(Lukomor @ Mar 29 2005, 08:36)В протоко...   Mar 29 2005, 07:35
||- - Lukomor   Цитата(-Tумблер- @ Mar 29 2005, 10:...   Mar 29 2005, 09:22
||- - -Tумблер-   Цитата(Lukomor @ Mar 29 2005, 12:22)Настройка...   Mar 30 2005, 11:52
||- - Lukomor   Цитата(-Tумблер- @ Mar 30 2005, 14:...   Mar 31 2005, 06:38
||- - -Tумблер-   Цитата(Lukomor @ Mar 31 2005, 09:38)Цитата(...   Apr 13 2005, 16:22
||- - -Tумблер-   Цитата(-Tумблер- @ Apr 13 2005, 19:...   Apr 13 2005, 16:37
||- - Lukomor   Цитата(-Tумблер- @ Apr 13 2005, 19:...   Apr 21 2005, 08:59
||- - -Tумблер-   Цитата(Lukomor @ Apr 21 2005, 11:59)Для работ...   Apr 21 2005, 13:29
||- - Lukomor   Цитата(-Tумблер- @ Apr 21 2005, 16:...   Apr 22 2005, 07:34
||- - yuriyc   [/quote] Так REALTIME_PRIORITY_CLASS это вроде и...   May 25 2005, 05:52
||- - Lukomor   Цитата(yuriyc @ May 25 2005, 08:52)Обратимся ...   Jun 22 2005, 11:46
||- - yuriyc   [/quote] 2all: Кто нибудь знает, каким образом мо...   Jun 28 2005, 13:26
||- - vm1   Мне кажется из под Win управлять RTS дело безнадеж...   Jun 28 2005, 14:04
||- - Lukomor   Цитата(yuriyc @ Jun 28 2005, 16:26)Как вариан...   Jun 29 2005, 07:03
||- - vm1   а есть возможность передавайть последний байт тран...   Jul 4 2005, 13:11
|- - _VM   2Lukomor Цитата(Lukomor @ Mar 29 2005, 08:36)...   Mar 30 2005, 21:04
|- - _VM   2-Tумблер-&PowerF1&Lukomor Проблем с разны...   Mar 30 2005, 21:45
|- - Lukomor   2_VM Цитата(_VM @ Mar 31 2005, 00:04)Пуск-...   Mar 31 2005, 06:59
|- - _VM   Если владеешь C++ поищи Numega Driver Studio (софт...   Mar 31 2005, 08:47
- - SergM   А для отладки софта, работающего с СОМ под Windows...   Mar 28 2005, 13:44
- - PowerF1   _WM, боьшое спасибо за ценную информацию! Разо...   Mar 29 2005, 14:41
|- - -Tумблер-   Цитата(PowerF1 @ Mar 29 2005, 17:41)Как распр...   Mar 30 2005, 10:53
- - max123   Цитата(uvw @ Feb 3 2005, 14:12)Здравствуйте, ...   Apr 5 2005, 05:42
- - Krom   Вот примерчик для Borland C++ Builder из моей тест...   Jul 7 2005, 06:54
- - fluent   Помогите плиз. Взялся за курсовик.Для начала надо ...   Apr 2 2007, 00:55
|- - haker_fox   Цитата(fluent @ Apr 2 2007, 06:55) Помоги...   Apr 2 2007, 09:21
- - Djimmy   Запоздало, но тем не менее..   Jun 23 2007, 17:13
|- - dimka76   Цитата(Djimmy @ Jun 23 2007, 21:13) Запоз...   Aug 31 2009, 11:05
- - MaxPIC   Я делал так в Visual Studio 2005: Инициализация: ...   Jul 1 2007, 11:15
- - MMP   Подскажите как cport310 прицепить к Borland   Aug 8 2007, 06:58
- - badik   Судя по Вашей переписке - лето было боевое. Есть о...   Aug 28 2007, 13:25
- - Hmm   Цитата... классный класс. Да неплохой. Использовал...   Mar 28 2012, 19:34
- - dm37   в архиве cport310 есть файл readme.txt всё (правда...   Sep 26 2016, 18:45


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 19:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016