Интерфейсы PCMCIA, PC Card и CardBus

В начале 90-х годов организация PCMCIA (Personal Computer Memory Card International Association — международная ассоциация производителей карт памяти для персональных компьютеров) начала работы по стандартизации шин расширения блокнотных компьютеров, в первую очередь предназначенных для расширения памяти. Первым появился стандарт PCMCIA Standard Release 1.0 /JEIDA 4.0 (июнь 1990 г.), в котором был описан 68-контактный интерфейс и два типоразмера карт: Туре I и Туре II PC Card . Поначалу стандарт касался электрических и физических требований только для карт памяти. Был введен метаформат информационной структуры карты CIS (Card Information Structure), в которой описываются характеристики и возможности карты, — ключевой элемент взаимозаменяемости карт и обеспечения механизма PnP.

Следующая версия PCMCIA 2.0 (1991 г.) для того же разъема определила интерфейс операций ввода-вывода, двойное питание для карт памяти, а также методики тестирования. В версии 2.01 была добавлена спецификация PC CardATA , новый типоразмер Туре III , спецификация автоиндексируемой массовой памяти AIMS (Auto-Indexing Mass Storage) и начальный вариант сервисной спецификации (Card Services Specification). В версии 2.1 (1994 г.) расширили спецификации сервисов карт и сокетов (Card and Socket Services Specification) и развили структуру CIS.

Стандарт PC Card (1995 г.) явился продолжением предыдущих; в нем введены дополнительные требования для улучшения совместимости и новые возможности: питание 3,3 В, поддержка DMA и 32-битного режима прямого управления шиной CardBus .

В дальнейшем в стандарт были введены и другие дополнительные возможности.

Все карты PCMCIA и PC Card имеют 68-контактный разъем, назначение контактов у которого варьируется в зависимости от типа интерфейса карты. Тип интерфейса «заказывается» картой при установке ее в слот, который, естественно, должен поддерживать требуемый интерфейс. Интерфейс памяти обеспечивает 8- и 16-битные обращения с минимальным временем цикла 100 нс, что дает максимальную производительность 10 и 20 Мбайт/с соответственно. Интерфейс ввода-вывода имеет минимальную длительность цикла 255 нс, что соответствует 3,92/7,84 Мбайт/с для 8-/16-битных обращений. Интерфейс CardBus поддерживает практически такой же протокол обмена, что и PCI, но с некоторыми упрощениями. Тактовая частота 33 МГц и разрядность 32 бита обеспечивают пиковую пропускную способность в пакетном цикле до 132 Мбайт/с, картам предоставляется возможность прямого управления шиной (bus mastering). Здесь используется та же система автоматического конфигурирования, что и в PCI (через регистры конфигурационного пространства). В интерфейс заложены дополнительные возможности для цифровой передачи аудиосигнала, причем как в традиционной форме ИКМ, так и в новой (забытой старой) форме ШИМ (PWM).

Для дисковых устройств ATA в формате PC Card имеется специальная спецификация интерфейса (см. п. 9.2.1).

Различают 4 типа PC Card: у них у всех размер в плане 54×85,5 мм, но разная толщина (меньшие адаптеры встают в большие гнезда):

♦ PC Card Type I — 3,3 мм — карты памяти;

♦ PC Card Type II — 5 мм — карты устройств ввода-вывода, модемы, адаптеры локальных сетей;

♦ PC Card Type III — 10,5 мм — дисковые устройства хранения;

♦ PC Card Type IV — 16 мм (упоминания об этом типе на сайте www.pc-card.com найти не удалось).

Есть еще и маленькие карты Small PC Card размером 45×42,8 мм с тем же коннектором и теми же типами по толщине.

Для карт памяти (динамической, статической, постоянной и флэш-памяти) ассоциация PCMCIA поддерживает и стандарт Miniature Card (см. п. 9.3.4).

Назначение контактов разъемов для разных типов интерфейса приведено в табл. 6.18, назначение сигналов для интерфейсов карт памяти и ввода-вывода — в табл. 6.19. Для карт CardBus обозначение сигналов начинается с префикса «С», за которым следует имя сигнала, принятое для шины PCI (см. п. 6.2.2).

Таблица 6.18 . Разъём PC Card



Тип интерфейса Тип интерфейса
16 бит
  32 бита 16 бит   32 бита
Mem I/O+Mem CardBus Mem I/O+Mem CardBus
1 GND GND GND GND GND GND
2 D3 D3 CAD0 CD1# CD1# CCD1#
3 D4 D4 CAD1 D11 D11 CAD2
4 D5 D5 CAD3 D12 D12 CAD4
5 D6 D6 CAD5 D13 D13 CAD6
6 D7 D7 CAD7 D14 D14 Резерв
7 СЕ1# CE1# CCBE0# D15 D15 CAD8
8 А10 A10 CAD9 CE2# CE2# CAD10
9 ОЕ# OE# CAD11 VS1# VS1# CVS1
10 А11 A11 CAD12 Резерв IORD# CAD13
11 А9 A9 CAD14 Резерв IOWR# CAD15
12 А8 A8 CCBE1# A17 A17 CAD16
13 А13 A13 CPAR A18 A18 Резерв
14 А14 A14 CPERR# A19 A19 CBLOCK#
15 WE# WE# CGNT# A20 A20 CSTOP#
16 READY IREQ# CINT# A21 A21 CDEVSEL#
17 Vcc Vcc Vcc Vcc Vcc Vcc
18 Vpp1 Vpp1 Vpp1 Vpp2 Vpp2 Vpp2
19 A16 A16 CCLK A22 A22 CTRDY#
20 A15 A15 CIRDY# A23 A23 CFRAME#
21 A12 A12 CCBE2# A24 A24 CAD17
22 A7 A7 CAD 18 A25 A25 CAD19
23 A6 A6 CAD20 VS2# VS2# CVS2
24 A5 A5 CAD21 RESET RESET CRST#
25 A4 A4 CAD22 WAIT# WAIT# CSERR#
26 A3 A3 CAD23 Резерв INPACK# CREQ#
27 A2 A2 CAD24 REG# REG# CCBE3#
28 A1 A1 CAD25 BVD2 SPKR# CAUDIO
29 А0 А0 CAD26 BVD1 STSCHG# CSTSCHG
30 D0 D0 CAD27 D8 D8 CAD28
31 D1 D1 CAD29 D9 D9 CAD30
32 D2 D2 Резерв D10 D10 CAD31
33 WP IOIS16# CCLKRUN# CD2# CD2# CCD2#
34 GND GND GND GND GND GND

Таблица 6.19 . Назначение сигналов карт памяти и ввода-вывода

Сигнал I/O Назначение
А[10:0] I Линии шины адреса
BVD1, BVD2 I/O Battery Volt Detection — идентификаторы батарейного питания
STSCHG# I/O (IO) Сигнализация хосту о смене состояния RDY/BSY# и Write Protect. Использование этого сигнала контролируется регистром управления и состояния карты Card Config and Status Register (IO)
SPKR# O (IO) Дискретный аудиовыход (на динамик)
CD1#, CD2# O Card Detect — сигналы обнаружения (заземлены на карте), по которым хост определяет, что карта полностью вставлена в слот
СЕ1#, СЕ2# I (IO, Mem) Card Enable — выбор (разрешение) карты и определение разрядности передачи. Сигнал СЕ2# всегда относится к нечетному байту, СЕ1 # — к четному или нечетному, в зависимости от А0 и СЕ2#. С помощью этих сигналов 8-битный хост может обмениваться с 16-битными картами по линиям D[7:0]
D[15:0] I/O Шина данных (у 8-битных сигналы D[15:8] отсутствуют)
INPACK# O (IO) Input Acknowledge — подтверждение ввода, ответ карты на сигнал IORD# (по этому сигналу хост открывает свои буферы данных)
IORD# I Строб команды чтения портов
IOWR# I Строб команды записи портов (данные должны фиксироваться по положительному перепаду)
OE# I Чтение данных из памяти, конфигурационных регистров и CIS
RDY/BSY# I Готовность карты к обмену данными (при высоком уровне)
IREQ# O Запрос прерывания (низким уровнем)
INTRQ O Запрос прерывания (высоким уровнем)
REG# I Выбор памяти атрибутов (Mem). Для карт IO сигнал должен быть активен в циклах команд ввода-вывода. В режиме IDE пассивен (соединен с Vcc на стороне хоста)
RESET I Сброс (высоким уровнем)
VS1#, VS2# O Voltage Sense — сигналы определения номинала питания. Заземленный сигнал VS1# означает способность чтения карты при питании 3,3 В
WAIT# O Запрос (низким уровнем) на продление цикла обращения
WE# I Строб записи в память и конфигурационные регистры (в IDE не используется, соединяется хостом с Vcc)
WP O Write Protect — защита от записи (для карт памяти), запись в память возможна при низком уровне
IOCS16# O Разрешение 16-битного обмена

Интерфейс карт памяти и ввода-вывода прост — он практически совпадает с интерфейсом статической асинхронной памяти. Карта выбирается сигналами СЕ#, действующими одновременно с установленным адресом. Чтение памяти и конфигурационных регистров выполняется по сигналу ОЕ#, запись — по сигналу WE#. Признаком, разделяющим в этих обращениях основную память и конфигурационные регистры, принадлежащие области памяти атрибутов карты, является сигнал REG#, действующий одновременно с СЕ# и адресом. Для обращения к портам ввода-вывода служат отдельные сигналы IORD# и IOWR#; во время их действия должен быть активен и сигнал REG#. В процессе обращения к портам карта может выдать признак возможности 16-битных обращений сигналом IOSC16# (как на шине ISA). Чтение порта устройство должно подтверждать сигналом INPACK#, устанавливаемым и снимаемым картой по сигналу СЕ#. Благодаря этому сигналу хост может убедиться в том, что он читает не пустой слот.

Слоты PC Card могут предоставлять возможность прямого доступа к памяти (DMA). Реализация DMA — самый дешевый способ разгрузки процессора, но такая реализация имеется не на всех хостах, а только на простых, основанных на шине ISA. Для систем с шиной PCI более естественно прямое управление шиной CardBus, правда, для карт реализация прямого управления обходится не дешево.

Для мультимедийных карт имеется возможность переключения интерфейса в специальный режим ZVPort (Zoomed Video), в котором организуется отдельный двухточечный интерфейс передачи данных между картой и хост-системой. По смыслу интерфейс напоминает коннектор VFC графических карт — выделенная шина для передачи видеоданных, не связанная с остальными шинами (и не загружающая их), но имеет иной протокол. В режиме ZV Port адресные линии А[25:4], а также линии BVD2/SPKR#, INPACK# и I0IS16# получают иное назначение — по ним передаются видеоданные и 4 цифровых аудиоканала. Для обычного интерфейса остаются лишь 4 адресные линии, позволяющие адресоваться к 16 байтам общей памяти и атрибутов карты.

Интерфейс порта ZV соответствует временным диаграммам CCIR601, что позволяет декодеру NTSC в реальном времени доставлять видеоданные с карты в экранный буфер VGA. Видеоданные могут поступать на карту как с внешнего видеовхода, так и с декодера MPEG.

Карты имеют специальное выделенное пространство памяти атрибутов, в котором находятся конфигурационные и управляющие регистры карты, предназначенные для автоконфигурирования. Стандартом описан формат информационной структуры карты (Card Information Structure, CIS). Карты могут быть многофункциональными (например, комбинация модема и сетевого адаптера). В спецификации MFPC (Multiple Function PC Cards) для каждой функции предусматриваются отдельные конфигурационные регистры и определяются правила разделения (совместного использования) линии запроса прерывания.

Для устройств внешней памяти стандарт описывает форматы хранения данных, совместимые с FAT MS-DOS, а также ориентированные на флэш-память как основной носитель информации. Для непосредственного исполнения модулей ПО, хранящихся в ПЗУ карты, имеется спецификация XIP (eXecute In Place), описывающая программный интерфейс вызова этих модулей (вместо загрузки ПО в ОЗУ).

Стандарт описывает программный интерфейс сервисов карт (Card Services), обеспечивающий унификацию взаимодействия его клиентов (драйверов, прикладного ПО и утилит) с устройствами. Имеется также и интерфейс сервисов сокета (Socket Services), с помощью которого выполняются операции, связанные с обнаружением фактов подключения-отключения карт, их идентификации, конфигурирования питания и аппаратного интерфейса.

В стандарте имеются описания специфических особенностей, свойственных двум организациям, ведущим стандарт PC Card.

♦ PCMCIA описывает автоиндексируемую массовую память (AIMS) для хранения больших массивов данных (изображений, мультимедийных данных) на блочно-ориентированных устройствах. Имеется также спецификация 15-контактного экранированного разъема для подключения модемов и адаптеров локальной сети (15-pin Shielded Modem I/O connector) и 7-контактного для подключения модемов (7-pin Modem I/O connector).

♦ JEDIA для карт памяти предлагает формат файлов Small Block Flash Format, упрощающий файловую систему. Формат SISRIF (Still Image, Sound and Related Information Format) предназначен для записи изображений и звука на карты памяти. Имеется и спецификация для карт динамической памяти.

Большинство адаптеров выпускается с поддержкой технологии PnP и предусматривает «горячее» подключение — интерфейсные карты могут вставляться и выниматься без выключения компьютера. Для этого контакты шин питания имеют большую длину, чем сигнальные, обеспечивая их упреждающее подключение и запаздывающее отключение. Два контакта обнаружения карты CD1# и CD2# (Card Detect) короче остальных — их замыкание для хоста означает, что карта полностью вставлена в слот. Несмотря на возможность динамического конфигурирования, в некоторых случаях при изменении конфигурации требуется перезагрузка системы.

Первоначально карты и хост-системы использовали напряжение питания логики +5 В. Для перехода на низковольтное питание (3,3 В) был введен механический ключ, не допускающий установки карты на 3,3 В в слот, дающий только 5 В. Кроме того, были определены контакты 43 (VS1#) и 57 (VS2#) для выбора питающего напряжения. На картах с питанием 5 В они оба свободны; на картах 3,3 В контакт VS1# заземлен, a VS2# свободен. По этим линиям хост, допускающий оба варианта напряжения питания, определяет потребности установленной карты и подает соответствующее напряжение. Если хост не способен обеспечить требуемый номинал, он должен не подавать питание, а выдать сообщение об ошибке подключения. Карты обычно поддерживают управление энергопотреблением (АРМ), что особо актуально при автономном питании компьютера.

В стандарте PC Card выпускают самые разнообразные устройства — память, устройства хранения, коммуникационные средства, интерфейсные порты, игровые адаптеры, мультимедийные устройства и т. п., правда, все они существенно дороже своих крупногабаритных аналогов. Через слот PC Card портативные компьютеры могут подключаться к док-станциям, в которые может быть установлена обычная периферия. Недостаточно строгое следование производителей стандарту иногда приводит к проблемам совместимости.

Слоты PC Card подключаются к системной шине блокнотного ПК через мост; для компьютеров с внутренней шиной PCI это будет мост PCI-PC Card. В блокнотных ПК могут быть и слоты Small PCI (SPCI, см. п. 6.2.9), но они недоступны без вскрытия корпуса и не допускают «горячей» замены устройств.

Глава 7

Наши рекомендации