Kamrad.ru

Kamrad.ru (https://kamrad.ru/index.php)
-   Железный поток (hardware) (https://kamrad.ru/forumdisplay.php?f=10)
-   -   Работа с com портом или rs232!!! (https://kamrad.ru/showthread.php?t=73846)

Bart.cv 20-11-2005 09:42

Работа с com портом или rs232!!!
 
Помогите пожалуйста, срочно нужно знать как устроен Com порт: как посылать в него каманды с помощью Delphi, какие сигналы (напряжение) при ?том на выходе и т.п. Затакую информацию буду весьма благодарен. По возможности присылайте ссылки. Зарание благодарю!!!

larry1234 20-11-2005 23:30

Может тут http://www.hwb.acc.umu.se поискать, а там и дальше ссылки найдутся...

LazyFox 21-11-2005 13:07

COM-port (RS232)
низкий уровень - взять описание микросхемы последовательного порта, почитать - там все сигналы, логика работы - команды-ответы-диаграммы..
что выведено на разъем DB9 или DB25 - см. хотя бы по линку выше.
сильно примерно (забыл уже почти все, в т.ч. правильную терминологию :gigi: ) - есть линии приема, передачи, управляющие (квитирования?), ну, и конечно - "земли" (общая и сигнальная, кажись). Сигнал - утверждяют, что +\- 12 В, хотя возможны разночтения - через COM нормально работают всякие GPS и эхолоты по NMEA, где-то там они совместимости достигают, хотя рассчитаны под другие, вроде бы, границы..

В компе работа с периферией идет посредством записи-чтения в порты ввода-вывода (не то же самое, что СОМ-порт, а фактически диапазон адресов, которые можно читать-писать) . Соответственно СОМ - известен базовый адрес порта ВВ (см. BIOS, если не автомат, иначе - ресурсы в списке устройств). Логика работы (что записал - что получилось - где прочитать) не подскажу.. В Дельфи не работал, а в Паскале - 20 лет назад, но, как вспоминается - порты ВВ там (в Паскале) были представлены массивом байт Port или слов PortW, соответственно читать-писать - работа с элементами массива, примерно так (используемые в примере адреса и значения - абстрактные):
Code:

const
 MovePort : word  = $222;
 SwitchPort  : word  = $300
.....
  port[MovePort]:=$0F;
  SwitchByte:= port[SwitchPort] and $0F;

Учти, в приличной операционке (Windows NT, 2000, XP) далеко не в любой порт дают доступ прикладным программам (в смысле прямой работы, в обход драйвера), может, придется поставить что-нибудь типа драйвера totalio, открывающего все порты..

Если работа на таком низком уровне не нужна - "кури" описание функции, позволяющей управлять отдельными сигналами СОМ-порта (определение из Win32, в Delphi может быть определена чуть по-другому):

BOOL EscapeCommFunction(
HANDLE hFile, // handle to communications device
DWORD dwFunc // extended function to perform
);

Описание портов (немного)
SERIAL PORT


All times are GMT +3. The time now is 20:42.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Любое использование материалов сайта
возможно только с разрешения его администрации.