Последний герой последовательного интерфейса

Продолжаем цикл обзоров PCIe-адаптеров, ос­на­щен­ных по­сле­до­ва­тель­ны­ми пор­та­ми. Се­го­дня на те­сто­вом сто­ле пла­та Dyna­mode RS232 — адап­тер COM-пор­тов, рас­счи­тан­ный на ус­та­нов­ку в PCI Ex­press слот пер­со­наль­ной плат­фор­мы. В ка­че­ст­ве PCIe-кон­т­рол­ле­ра на Dyna­mode RS232 ис­поль­зу­ет­ся чип CH382 ки­тай­ско­го раз­ра­бот­чи­ка Qin­heng Elec­tro­nics (иног­да его име­ну­ют Jian­gsu Hao­heng или Jian­gsu Yu­heng), опе­ри­ру­ю­ще­го под брен­дом WCH, что сле­ду­ет по­ни­мать, как WinChipHead.

UART для PCI Express

Контроллер CH382 — это полноценный двух­пор­то­вый UART с подключением к ши­не PCI Express, сов­мес­ти­мый с программной моделью клас­си­че­ско­го асин­хрон­но­го порта 16C550A или его более продвинутой версии 16C750. По­след­нее об­ус­лов­ле­но тем, что CH382 оснащен буфером FIFO глубиной в 256 байт. Клас­си­че­ская мо­дель по­сле­до­ва­тель­но­го порта строилась на использовании 16-байт­но­го бу­фе­ра, на­кла­ды­ва­ю­ще­го известные ог­ра­ни­че­ния на про­из­во­ди­тель­ность COM-пор­та и за­груз­ку цен­т­раль­но­го процессора: CPU обязан об­слу­жи­вать пре­ры­ва­ния на каждую принятую или пе­ре­дан­ную пор­цию бай­тов, во из­бе­жа­ние пе­ре­пол­не­ния FIFO-буфера.

Аппаратная реализация в пространстве портов ввода-вывода в ряде случаев становится не­ос­по­ри­мым пре­и­му­щест­вом адаптера Dyna­mode RS232 по сравнению с ранее исследованным I-360 от ST Lab, где по­сле­до­ва­тель­ные пор­ты ото­бра­жа­ют­ся в пространстве памяти, а со­вмес­ти­мость с классической программной моделью UART су­ще­ст­ву­ет толь­ко на уров­не API. Конечно, для дизайна новых систем пред­по­чти­тель­ным вариантом является Memory Map­ped IO: у адап­те­ра, за­дей­ст­ву­ю­ще­го порты ввода-вывода, больше шансов на совместимость с про­грам­мны­ми про­дук­та­ми, ис­поль­зу­ю­щи­ми не­по­сред­ст­вен­ное взаимодействие с оборудованием.

Еще одно существенное отличие CH382 от 16Cx50 — в скорости передачи данных. Стандартно UART по­сле­до­ва­тель­но­го пор­та так­ти­ру­ет­ся час­то­той 1,8432МГц, что при целочисленном делении на 16 обеспечивает производительность в 115200 бод. PCIe-контроллер от WinChipHead способен на большее. Он поддерживает скорость передачи до 8 ме­га­бод, т.е. около 8Мбит в секунду. Это стало возможным благодаря встроенной осцилляции, ис­точ­ни­ком опор­ной час­то­ты для ко­то­рой слу­жит внешний кварцевый резонатор 22,1184МГц.

Работоспособность контроллера CH382 обеспечивает преобразователь питания на базе LDO AMS117-1,8V и схема тактирования на базе кварцевого резонатора частотой 22,1184МГц

 

В составе контроллера CH382 есть и расширенный двунаправленный параллельный порт с под­держ­кой EPP/ECP, но на пла­те адап­те­ра Dyna­mode RS232 его линии не распаяны на соответствующий разъем.

RS232-тракт: что интересного?

RS232-тракт построен на базе преобразователя уровней MAX3243CAI. В его задачи входит обслуживать интерфейс с набором сигналов от –12 до +12 Вольт. Питаясь от 3-вольтового источника, чип MAX3243 за счет кон­ден­са­тор­ной схемы в состоянии обеспечить приемлемые уровни дву­по­ляр­но­го пи­та­ния ин­тер­фей­с­ных цепей.

За­ме­ры по­ка­зы­ва­ют, что в не­на­гру­жен­ном со­сто­я­нии на­пря­же­ние линий DTR и RTS составляет —5,43 Вольта. Ди­аг­но­с­ти­че­ский разъ­ем с об­рат­ной связью (loop­back) не­сколь­ко про­са­жи­ва­ет вы­ход­ные сигналы до –5,14В. «Мышь», которая питается от MAX3243, чувствует себя значительно лучше, по сравнению с подключением к I-360, где в качестве бу­фе­ров ис­поль­зу­ют­ся близкие по характеристикам чипы ZT3243. Уровень выходных сигналов на Dyna­mode RS232 с на­груз­кой пусть и не идеален, но вполне сносен. Его значение держится стабильно на отметке +6,01В.

Конечно, схемное решение вместо MAX3243 просит преобразователь уровней ADM2209, тем более, что шина PCI Ex­press обеспечивает питание +12В. Видимо, компания Dynamode, как производитель адаптера, не слиш­ком ве­рит в бу­ду­щее сво­е­го детища и пер­фек­ци­о­низ­му предпочитает соображения экономии, что сразу ставит плату COM-пор­тов на пол­ку бюд­жет­ных решений.

Windows 10 и производительность

Пакет драйверов, загруженных с сайта http://www.wch.cn/, без проблем решает задачу инсталляции Dyna­mode RS232 в опе­ра­ци­он­ной системе Windows 10. Работоспособность COM-портов, реализованных на данной плате, вполне со­от­вет­ст­ву­ет ожиданиям. Убедимся в этом с помощью PComm Performance Analyzer, разработанного Moxa Technology:

Тестирование последовательного порта адаптера Dynamode RS232 на скорости 115 Кбод

 

Настораживает, что при тестировании одного последовательного порта на скорости 115 Кбод загрузка процессорного ядра в среднем составляет 5%. Оценим ситуацию, повысив портовую скорость до предельной для утилиты от Moxa — 920 Кбод (плата Dyna­mode RS232 способна на большее):

Оценка загрузки центрального процессора при тестировании последовательного порта адаптера Dynamode RS232 на скорости 920 Кбод

 

При таких условиях тестирования проявляется слабое место адаптеров, у которых UART ре­а­ли­зо­ван по клас­си­че­ской схе­ме портов ввода-вывода: высокая загрузка процессорного ядра, отсутствие поддержки муль­ти­по­точ­нос­ти, полный отказ от технологии энергосбережения в рабочем режиме (процессор потребляет мак­си­маль­ную мощ­ность в обес­пе­че­ние наи­выс­шей час­то­ты так­ти­ро­ва­ния).

Почему последний герой?

Хотя ценник на адаптеры COM-портов для PCIe-шины, где главное действующее лицо — компания Moxa, вы­гля­дит оп­ти­ми­с­тич­но, рынок для бюджетных устройств данного класса неумолимо сужается. Во-первых, умень­ша­ет­ся ко­ли­че­ст­во периферии, требующей RS232-интерфейс. Во-вторых, огромное давление оказывают адаптеры USB-to-COM — и низкой ценой, и производительностью, и хорошей совместимостью. Поэтому в ближайшем будущем вряд ли по­я­вит­ся от­важ­ный старт­ап, затраты которого окупятся разработками на поле PCIe-to-COM. Приемлемое качество WCH так­же бу­дет барь­е­ром на пути новичка. Это при условии, что WinChipHead сможет удержаться на плаву.