В начале 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 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).
Назначение контактов разъемов для разных типов интерфейса приведено в табл. 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.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#. Признаком, разделяющим в этих обращениях основную память и конфигурационные регистры, принадлежащие области памяти атрибутов карты, является сигнал 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), обеспечивающий унификацию взаимодействия его клиентов (драйверов, прикладного ПО и утилит) с устройствами. Имеется также и интерфейс сервисов сокета (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), но они недоступны без вскрытия корпуса и не допускают «горячей» замены устройств.
Интерфейсы PCMCIA, PC Card и CardBus
В начале 90-х годов организация PCMCIAВ начале 90-х годов организация PCMCIA (Personal Computer Memory Card International Association — международная ассоциация производителей карт памя¬ти дТакже по теме: