Интерфейсы 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.
6.5. Шины и карты расширения блокнотных ПК__________________________ 229
Следующая версия PCMCIA 2.0 (1991 г.) для того же разъема определила интерфейс операций ввода-вывода, двойное питание для карт памяти, а также методики тестирования. В версии 2.01 была добавлена спецификация PC CardATA, новый типоразмер Туре III, спецификация автоиндексируемой массовой памяти AIMS (Auto-Indexing Mass Storage) и начальный вариант сервисной спецификации (Card Services Specification). В версии 2.1 (1994 г.) расширили спецификации сервисов карт и сокетов (Card and Socket Services Specificaiton) и развили структуру 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).
Для дисковых устройств АТА в формате 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).
230
Глава 6. Шины и карты расширения
Назначение контактов разъемов для разных типов интерфейса приведено в табл. 6.18, назначение сигналов для интерфейсов карт памяти и ввода-вывода — в табл. 6.19. Для карт CardBus обозначение сигналов начинается с префикса «С», за которым следует имя сигнала, принятое для шины PCI (см. п. 6.2.2).
Таблица 6.18. Разъем PC Card
№ |
Тип интерфейса |
№ |
Тип интерфейса |
||||
16 бит |
32 бита |
16 бит |
32 бита |
||||
Mem |
l/O+Mem |
CardBus |
Mem |
l/O+Mem |
CardBus |
||
1 |
GND |
GND |
GND |
35 |
GND |
GND |
GND |
2 |
D3 |
D3 |
CADO |
36 |
CD1# |
CD1# |
CCD1# |
3 |
D4 |
D4 |
CAD1 |
37 |
D11 |
D11 |
CAD2 |
4 |
D5 |
D5 |
CAD3 |
38 |
D12 |
D12 |
CAD4 |
5 |
D6 |
D6 |
CAD5 |
39 |
D13 |
D13 |
CAD6 |
6 |
D7 |
D7 |
CAD7 |
40 |
D14 |
D14 |
Резерв |
7 |
СЕ1# |
CE1# |
CCBEO* |
41 |
D15 |
D15 |
CAD8 |
8 |
А10 |
A10 |
CAD9 |
42 |
CE2# |
CE2# |
CAD10 |
9 |
ОЕ# |
OE# |
CAD11 |
43 |
VS1# |
VS1# |
CVS1 |
10 |
А11 |
A11 |
CAD12 |
44 |
Резерв |
IORD# |
CAD13 |
11 |
А9 |
A9 |
CAD14 |
45 |
Резерв |
IOWR# |
CAD15 |
12 |
А8 |
A8 |
CCBE1* |
46 |
A17 |
A17 |
CAD 16 |
13 |
А13 |
A13 |
CPAR |
47 |
A18 |
A18 |
Резерв |
14 |
А14 |
A14 |
CPERR# |
48 |
A19 |
A19 |
CBLOCK# |
15 |
WE# |
WE# |
CGNT# |
49 |
A20 |
A20 |
CSTOPff |
16 |
READY |
IREQ# |
CINT# |
50 |
A21 |
A21 |
CDEVSEL* |
17 |
Vcc |
Vcc |
VCC |
51 |
Vcc |
Vcc |
Vcc |
18 |
Vpp1 |
Vpp1 |
Vpp1 |
52 |
VPP2 |
Vpp2 |
Vpp2 |
19 |
A16 |
A16 |
CCLK |
53 |
A22 |
A22 |
CTRDY» |
20 |
A15 |
A15 |
CIRDY* |
54 |
A23 |
A23 |
CFRAME# |
21 |
A12 |
A12 |
CCBE2# |
55 |
A24 |
A24 |
CAD17 |
22 |
A7 |
A7 |
CAD 18 |
56 |
A25 . |
A25 |
CAD 19 |
23 |
A6 |
A6 |
CAD20 |
57 |
VS2# |
VS2# |
CVS2 |
24 |
A5 |
A5 |
CAD21 |
58 |
RESET |
RESET |
CRST# |
25 |
A4 |
A4 |
CAD22 |
59 |
WAIT# |
WAIT# |
CSERR# |
26 |
A3 |
A3 |
CAD23 |
60 |
Резерв |
INPACK* |
CREQ# |
27 |
A2 |
A2 |
CAD24 |
6t |
REG# |
REG# |
CCBE3* |
28 |
A1 |
A1 |
CAD25 |
62 |
BVD2 |
SPKR# |
CAUDIO |
29 |
АО |
АО |
CAD26 |
63 |
BVD1 |
STSCHG* |
CSTSCHG |
30 |
DO |
DO |
CAD27 |
64 |
D8 |
D8 |
CAD28 |
31 |
D1 |
D1 |
CAD29 |
65 |
D9 |
D9 |
CAD30 |
32 |
D2 |
D2 |
Резерв |
66 |
D10 |
D10 |
CAD31 |
33 |
WP |
IOIS16» |
CCLKRUN* |
67 |
CD2# |
CD2# |
CCD2# |
34 |
GND |
GND |
GND |
68 |
GND |
GND |
GND |
6.5. Шины и карты расширения блокнотных ПК
231
Таблица 6.19. Назначение сигналов карт памяти и ввода-вывода
Сигнал
I/O
Назначение
А[10:0] |
I |
BVD1.BVD2 |
I/O |
STSCHGff |
I/O |
SPKR# |
0 |
CD1#,CD2# |
0 |
СЕ1#,СЕ2# |
I |
D[15:0] INPACK# |
I/O 0 |
IORD# IOWR# |
1 1 |
OE# RDY/BSY# IREQ# INTRQ REG# |
1 1 0 0 1 |
RESET VS1#,VS2# |
1 о |
WAIT» WE# |
0 1 |
WP |
0 |
IOCS16# |
0 |
Battery Volt Detection — идентификаторы батарейного питания
(Ю) Сигнализация хосту о смене состояния RDY/BSY* и Write Protect. Использование этого сигнала контролируется регистром управления и состояния карты Card Config and Status Register
(Ю) Дискретный аудиовыход (на динамик)
Card Detect — сигналы обнаружения (заземлены на карте), по которым хост определяет, что карта полностью вставлена в слот
(Ю, Mem) Card Enable — выбор (разрешение) карты и определение разрядности передачи. Сигнал СЕ2# всегда относится к нечетному байту, СЕ1 # — к четному или нечетному, в зависимости от АО и СЕ2#. С помощью этих сигналов 8-битный хост может обмениваться с 16-битными картами по линиям D[7:0]
Шина данных (у 8-битных сигналы D[15:8] отсутствуют)
(Ю) Input Acknowledge — подтверждение ввода, ответ карты на сигнал IORD* (по этому сигналу хост открывает свои буферы данных)
Строб команды чтения портов
Строб команды записи портов (данные должны фиксироваться по положительному перепаду)
Чтение данных из памяти, конфигурационных регистров и CIS Готовность карты к обмену данными (при высоком уровне) Запрос прерывания (низким уровнем) Запрос прерывания (высоким уровнем)
Выбор памяти атрибутов (Mem). Для карт Ю сигнал должен быть активен в циклах команд ввода-вывода. В режиме IDE пассивен (соединен с Vcc на стороне хоста)
Сброс (высоким уровнем)
Voltage Sense — сигналы определения номинала питания. Заземленный сигнал VS1 # означает способность чтения карты при питании 3,3 В
Запрос (низким уровнем) на продление цикла обращения
Строб записи в память и конфигурационные регистры ( в IDE не используется, соединяется хостом с Vcc)
Write Protect — защита от записи (для карт памяти), запись в память возможна при низком уровне
Разрешение 16-битного обмена
Интерфейс карт памяти и ввода-вывода прост — он практически совпадает с интерфейсом статической асинхронной памяти. Карта выбирается сигналами СЕ#, действующими одновременно с установленным адресом. Чтение памяти и конфигурационных регистров выполняется по сигналу ОЕ#, запись — по сигналу WE#. Признаком, разделяющим в этих обращениях основную память и конфигурационные регистры, принадлежащие области памяти атрибутов карты, является
232 ____________________________________ Глава 6. Шины и карты расширения
сигнал 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* и IOIS16# получают иное назначение — по ним передаются видеоданные и 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), обеспечивающий унификацию взаимодействия его клиентов (драйверов, прикладно-
6.5. Шины и карты расширения блокнотных ПК __________________ 233
го ПО и утилит) с устройствами. Имеется также и интерфейс сервисов сокета (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 портативные компьютеры могут подключаться к док-станциям, в которые может быть установлена обычная
234_____________________________________ Глава 6. Шины и карты расширения
периферия. Недостаточно строгое следование производителей стандарту иногда приводит к проблемам совместимости.
Слоты PC Card подключаются к системной шине блокнотного ПК через мост; для компьютеров с внутренней шиной PCI это будет мост PCI-PC Card. В блокнотных ПК могут быть и слоты Small PCI (SPCI, см. п. 6.2.9), но они недоступны без вскрытия корпуса и не допускают «горячей» замены устройств.