Kamrad.ru

Go Back   Kamrad.ru > Форумы общей тематики > Железный поток (hardware)

Reply
 
Thread Tools Display Modes
Old 20-11-2005, 09:42   #1
Bart.cv
Камрад
 
Join Date: ноя 2005
Posts: 1
Cool Работа с com портом или rs232!!!

Помогите пожалуйста, срочно нужно знать как устроен Com порт: как посылать в него каманды с помощью Delphi, какие сигналы (напряжение) при ?том на выходе и т.п. Затакую информацию буду весьма благодарен. По возможности присылайте ссылки. Зарание благодарю!!!
Bart.cv is offline   [Ответить с цитированием]
Old 20-11-2005, 23:30   #2
larry1234
Камрад
 
Join Date: дек 2001
Location: Moscow
Posts: 701
Может тут http://www.hwb.acc.umu.se поискать, а там и дальше ссылки найдутся...
larry1234 is offline   [Ответить с цитированием]
Old 21-11-2005, 13:07   #3
LazyFox
Камрад
 
LazyFox's Avatar
 
Join Date: июн 2000
Posts: 3,632
COM-port (RS232)
низкий уровень - взять описание микросхемы последовательного порта, почитать - там все сигналы, логика работы - команды-ответы-диаграммы..
что выведено на разъем DB9 или DB25 - см. хотя бы по линку выше.
сильно примерно (забыл уже почти все, в т.ч. правильную терминологию ) - есть линии приема, передачи, управляющие (квитирования?), ну, и конечно - "земли" (общая и сигнальная, кажись). Сигнал - утверждяют, что +\- 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

Last edited by LazyFox; 21-11-2005 at 13:30.
LazyFox is offline   [Ответить с цитированием]
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +3. The time now is 17:01.


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