![]() |
![]() |
#1 |
Камрад
Join Date: ноя 2005
Posts: 1
|
![]()
Помогите пожалуйста, срочно нужно знать как устроен Com порт: как посылать в него каманды с помощью Delphi, какие сигналы (напряжение) при ?том на выходе и т.п. Затакую информацию буду весьма благодарен. По возможности присылайте ссылки. Зарание благодарю!!!
|
![]() |
[Ответить с цитированием] |
![]() |
#2 |
Камрад
Join Date: дек 2001
Location: Moscow
Posts: 701
|
Может тут http://www.hwb.acc.umu.se поискать, а там и дальше ссылки найдутся...
|
![]() |
[Ответить с цитированием] |
![]() |
#3 |
Камрад
Join Date: июн 2000
Posts: 3,632
|
COM-port (RS232)
низкий уровень - взять описание микросхемы последовательного порта, почитать - там все сигналы, логика работы - команды-ответы-диаграммы.. что выведено на разъем DB9 или DB25 - см. хотя бы по линку выше. сильно примерно (забыл уже почти все, в т.ч. правильную терминологию ![]() В компе работа с периферией идет посредством записи-чтения в порты ввода-вывода (не то же самое, что СОМ-порт, а фактически диапазон адресов, которые можно читать-писать) . Соответственно СОМ - известен базовый адрес порта ВВ (см. BIOS, если не автомат, иначе - ресурсы в списке устройств). Логика работы (что записал - что получилось - где прочитать) не подскажу.. В Дельфи не работал, а в Паскале - 20 лет назад, но, как вспоминается - порты ВВ там (в Паскале) были представлены массивом байт Port или слов PortW, соответственно читать-писать - работа с элементами массива, примерно так (используемые в примере адреса и значения - абстрактные): Code:
const MovePort : word = $222; SwitchPort : word = $300 ..... port[MovePort]:=$0F; SwitchByte:= port[SwitchPort] and $0F; Если работа на таком низком уровне не нужна - "кури" описание функции, позволяющей управлять отдельными сигналами СОМ-порта (определение из 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. |
![]() |
[Ответить с цитированием] |
![]() |
|
|