banner
Центр новостей
Богатый опыт и современное оборудование

PCIe для хакеров: анатомия каналов

Aug 20, 2023

В прошлый раз мы рассмотрели разностные пары, их основы, правила маршрутизации и пресловутые допуски PCIe, когда дело доходит до разностных пар. Теперь давайте посмотрим на точные сигналы, которые заставляют работать PCIe, а также дадим вам обзор того, на каких сокетах можно подключить PCIe.

Я разделяю разъемы PCIe на две категории — разъемы для настольных ПК, которые представляют собой обычные разъемы PCIe 1x, 16x или, возможно, x4, которые мы видим на материнских платах для настольных ПК, и мобильные разъемы: mPCIe и M.2. Есть также разъемы типа ExpressCard, которые все еще встречаются на некоторых старых ноутбуках, но они определенно потеряли свою актуальность. На мобильных устройствах M.2 — это шаг вперед, когда дело доходит до PCIe. Если вам интересно, я уже писал короткую серию статей обо всем, что касается M.2.

В этих разъемах большинство сигналов будут необязательными, а некоторые сигналы будут зависеть от сокета, но некоторые сигналы необходимы для любого устройства PCIe. Конечно, первая группа необходимых сигналов — это сами разностные пары PCIe.

Любой интерфейс PCIe имеет два типа diff-пар – TX и RX; для канала x1 у вас будет одна дифференциальная пара TX и одна дифференциальная пара RX, а для канала x16 требуется шестнадцать каждого. Как и следовало ожидать, RX на одном конце соединяется с TX на другом, и наоборот — это то же самое, что UART, но с пикантностью. Конечно, если вы используете какой-либо удлинитель PCIe или адаптер «сокет-сокет», вам не нужно выполнять какую-либо замену. Если вы разрабатываете плату для одного из стандартов расширения PCIe, обычное наименование происходит на стороне хоста. Например, предположим, что вы размещаете микросхему контроллера PCIe Ethernet на печатной плате, которая подключается к разъему PCIe настольного компьютера — подключите TX и RX платы разъемов PCIe к RX и TX вашего чипа Ethernet соответственно.

Если есть явные признаки того, что это соглашение было нарушено, не волнуйтесь — обязательно сравните его с существующим хостом или устройством и посмотрите, сможете ли вы определить, является ли именование ожидаемым или действительно неожиданно изменено. Опять же, это как UART! Тем не менее, существуют также конденсаторы связи по переменному току, включенные последовательно на линиях TX и RX. В частности, в случае карт расширения PCIe, будь то M.2 или PCIe для настольных ПК, соглашение размещает их на линиях устройства TX (host-RX) на плате устройства и на стороне хоста TX (device-RX) на плате устройства. хост-плата. Уже одно это является приятным отличием от UART, когда дело доходит до проектирования и реверс-инжиниринга.

Третий тип разностной пары, который присутствует всегда, — это REFCLK — разностная пара тактовой частоты 100 МГц. Это быстрые часы, и я не уверен в их полной цели, но, очевидно, они играют роль в декодировании данных на TX и RX, в частности, в восстановлении тактовых импульсов - оставаясь жизненно важными, несмотря на то, что они на несколько порядков медленнее, чем диапазон GBit. пропускная способность пар PCIe TX и RX. В отличие от RX и TX, вы не можете поменять полярность REFCLK волей-неволей. С другой стороны, не будет так уж больно, если REFCLK пропустит пару переходных отверстий на случай, если вам понадобится его перевернуть – это всего лишь 100 МГц. Не забывайте уважать свои различия, и все будет хорошо.

Требуется REFCLK — за исключением случаев, когда теоретически его можно опустить, требуя, чтобы оба конца канала PCIe поддерживали восстановление этого тактового сигнала из данных, передаваемых через пары RX и TX, или генерировали собственный REFCLK. Это звучит вполне реалистично, однако реализации PCIe без REFCLK на самом деле не существует. Даже SD-Express, недавний стандарт, который привносит PCIe в SD-карты для невероятно высокой скорости доступа, не пошел по этому пути — единственная доступная потребителю реализация без REFCLK в дикой природе — это SATA-Express, стандарт, который устарел. по M.2 почти сразу, как только материнские платы с портами SATA-Express появились на прилавках магазинов. В нынешнем виде, если вы хотите, чтобы ваш канал PCIe работал, вам абсолютно необходим REFCLK.

А теперь подробнее о конденсаторах. Они нужны как для передачи, так и для приема, чтобы канал работал, в диапазоне от 75 до 265 нФ в зависимости от поколения канала PCIe: 200 нФ — хорошее универсальное значение, а 100 нФ подойдет в крайнем случае. Кроме этого, выберите пакет 0402 или 0201, и это, по сути, все. REFCLK обычно не нуждается в конденсаторах, но они тоже не должны повредить, и они могут потребоваться некоторым устройствам. Кроме того, вот что-то загадочное: был по крайней мере один задокументированный случай, когда в дешевом массовом твердотельном накопителе WD, по-видимому, не использовались конденсаторы на стороне TX, и он не мог инициализироваться с помощью специальной хост-платы PCIe до тех пор, пока на материнской плате не были добавлены дополнительные конденсаторы. Это не то, что вам следует делать по умолчанию – это просто особенность, которую один производитель имел наглость создать.