Аппаратные интерфейсы ПК

         

Адресация устройств PCI


Для шины PCI принята иерархия понятий адресации: шина, устройство, функция. Эти понятия фигурируют только при обращении к регистрам конфигурационно­го пространства (см. п. 6.2.12). К этим регистрам обращаются на этапе конфигу­рирования — переучета обнаруженных устройств, выделения им непересекающих­ся ресурсов (областей памяти и пространства ввода-вывода) и назначения номеров аппаратных прерываний. При дальнейшей регулярной работе устройства будут отзываться на обращения по назначенным им адресам памяти и ввода-вывода, доведенным до сведения связанных с ними модулей ПО. Эти адреса принимают­ся с шины AD в начале каждой транзакции. Для доступа к конфигурационному пространству используются отдельные линии IDSEL

Устройством PCI называется микросхема или карта расширения, подключенная к одной из шин PCI и использующая для идентификации выделенную ей линию IDSEL, принадлежащую этой шине. Устройство может быть многофункциональ­ным, то есть состоять из множества (от 1 до 8) так называемых функций. Каждой функции отводится конфигурационное пространство в 256 байт (см. п. 6.2.12). Многофункциональные устройства должны отзываться только на конфигурацион­ные циклы с номерами функций, для которых имеется конфигурационное простран­ство. При этом функция с номером 0 должна быть обязательно, номера остальных функций назначаются разработчиком устройства произвольно (в диапазоне 1-7). Простые (однофункциональные) устройства, в зависимости от реализации, могут отзываться либо на любой номер функции, либо только на номер функции 0.

Шина PCI — набор сигнальных линий (см. п. 6.2.2), непосредственно соединяющих интерфейсные выводы группы устройств (слотов, микросхем на системной плате). В системе может присутствовать несколько шин PCI, соединенных мостами PCI (см. п. 6,2.10). Мосты электрически отделяют интерфейсные сигналы одной шины от другой, соединяя их логически; главный мост соединяет главную шину с ядром сис­темы (процессором и памятью). Каждая шина имеет свой номер шины (PCI bus number).
Шины нумеруются последовательно; главная шина имеет нулевой номер.

С точки зрения конфигурирования, минимальной адресуемой единицей этой иерархии является функция; ее полный адрес состоит из трех частей: номера шины, номера устройства и номера функции. Короткая форма идентификации вида РСЮ:1:2 (например, в сообщениях ОС Unix) означает функцию 2 устрой­ства 1, подключенного к главной (0) шине PCI.

6.2. Шина PCI______________________________________________________ 177

В шине PCI принята географическая адресация — номер устройства определяется местом его подключения. Номер устройства (device number или dev) определяется той линией шины AD, к которой подключена линия сигнала IDSEL данного слота: kADU -devO(MOCT),AD12-devl,...AD31 -dev20. В соседних слотах PCI, как пра­вило, задействуются соседние номера устройств; их нумерация определяется разра­ботчиком системной платы (или пассивной кросс-платы в промышленных компью­терах). Часто для слотов используются убывающие номера устройств, начиная с 20. Группы соседних слотов могут подключаться к разным шинам; на каждой шине PCI нумерация устройств независимая (могут быть и устройства с совпадающими номе­рами dev, но разными номерами шин). Устройства PCI, интегрированные в систем­ную плату, используют ту же систему адресации. Их номера «запаяны намертво», в то время как адреса карт расширения можно изменять перестановкой их в разные слоты. Одна карта PCI может содержать только одно устройство шины, к которой она подключается, поскольку ей в слоте выделяется только одна линия IDSEL Если на карте размещают несколько устройств (например, 4-портовая карта Ethernet), то на ней приходится устанавливать мост — тоже устройство PCI, к которому и обра­щаются по линии IDSEL, выделенной данной карте. Этот мост организует на карте дополнительную шину PCI, к которой можно подключить множество устройств.

С точки зрения обращения к пространствам памяти и ввода-вывода, географиче­ский адрес (номер шины и устройства) безразличен (не принимая во внимание разницу в производительности, связанную с подключением устройств к разным шинам PCI).


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

Разобраться с нумерацией устройств и полученных ими линий прерываний на конкретной плате можно просто: устанавливать одну карту PCI поочередно в каж­дый из слотов (отключая питание) и смотреть на сообщения об обнаруженных устройствах PCI, выводимых на дисплей в конце теста POST. В этих сообщениях будут фигурировать и устройства PCI, установленные непосредственно на систем­ной плате (и не отключенные параметрами CMOS Setup).

Но чтобы не было иллюзий простоты и прозрачности, отметим, что «особо умные» операционные системы (Windows) не довольствуются полученными назначени­ями номеров прерывании и изменяют их по своему усмотрению (что никак не мо­жет отразиться на разделяемости линий).


Алфавитный указатель



lOOOBaseCX, 406



lOOOBaseLX, 406

lOOOBaseSX, 406

lOOOBaseT, 406

100BaseFX, 406

lOOBaseSX, 406

100BaseT4, 406

100BaseTX, 406

10Base2, 406

lOBaseS, 405

lOBaseF, 406

lOBaseT, 406

168-pin Registered DIMM, 267

168-pin Unbuffered DIMM, 267

A20, 313,315 ACCESS.Bus, 331,427 Additional ROM BIOS, 497 AGP, 211 режим Ix, 218 2x, 218 4x, 218 сигналы, 212 слот, 219 транзакции, 213 AGP Pro, 221 AGP8X, 223 APIC, 461 ASK IR, 79 ATA, 359

Bus-Master, 383 PIO Mode, 377 Ultra DMA, 377 адаптер, 382 джамперы, 388 кабельная выборка, 387 каналы, 383

конфигурирование устройств, 387 протокол, 380 регистры устройства, 371 режим передачи, 376 DMA, 377 PIO, 376 сигналы, 363,366

ATA (продолжение)

устройства Master и Slave, 360

,  хост-адаптер, 360 ,           

электрический интерфейс, 362

АТА-2, 361              

АТА-3, 361                                  

ATA/ATAPI-4, 361,362      

ATAPI, 360

ATX, разъем питания, 513

AUI, 409                       

В

BEDO 240

Bi-tron'ics, 20

BIOS

32-разрядные вызовы, 480,        /

СОМ-порт, 69,491,493

IntOSh, 325

Int 08h, 358

Int09h, 316,325

IntOEh, 357

Int 13h, 403

Int l4h, 48

Int 15h, 478

Int16h, 316

Int17h, 17,320,325

Int 19h, 498

Int 1 Ah, 210,478

Int 33h, 318

PCI, 210

SMBus, 440

видеорежимы, 486

интерфейс клавиатуры, 484

клавиатура, 316

мышь, 318

принтер, 325

расширение, 497

сервисы, 481

стандартные драйверы дисков, 487 BIOS Int 15h, 495 BIOS Int 16h, 484,493 BIOS Int 1Ah, 494 BIOS Int 9h, 483 BIOS32, 480 Bluetooth, 82 ВМС-разъемы, 332

518

Алфавитный указатель

Bootable CD-ROM, 404 Boundary Scan, 447 bus mastering, 411,465 Bus-Master, 360,383 Byte Mode, 24

DRAM, 235 BEDO, 240 EDO, 239

DTE, 49

DVI, 337

Caller Id, 418 CardBus, 229 CAS Latency, 241 CD-ROM

загружаемый, 404

системная поддержка, 404 Centronics, 321 CHS, адресация, 360 CMOS

RTC, 477

память конфигурации и часы, 477

программирование таймера, 478,495

таймер, 477 СОМ-порт, 70

UART 8250/16450/16550, 63

использование, 70


конфигурирование, 70

неисправности и тестирование, 73

питание от интерфейса, 76

поддержка BIOS, 69,493

разъемы, 52 Compact PCI, 196 Composite Video, 341 cPCI 196 CR, 321

ОСЕ, 49

DDC1, 331

DDC2, 331

DDC2AB, 331

DDC2B, 331

DDIM, 499

DDMA, 465

DDR SDRAM, 267

DFP, 336

dial-up, 414

DIMM, 261

DiskOnChip, 479

DMA, 21,70,157,463    '

16-битные каналы, 465

8-битные каналы, 464

LPT-порт, 21

PC/PCI, 465

каналы, 464

пересечение границ, 473 DPMS, 332

E-IDE, 362 ECP, 22,29,322 EDD, 490 EDO, 239 EEPROM, 164 EISA, 146,151,164 El Tonto, 404 EOI, 459 EPP, 22,25 Ethernet, 405 AUI, 409 7^j£ 410 адаптер, 412 AUI/ 413 BNC, 413 Combo, 413 ТР, 413

интерфейсы, 413 конфигурирование, 414 ресурсы, 413 серверный, 412 интерфейсная карта, 410 коммутатор, 405 перекрестный кабель, 407 повторитель, 405 прямой кабель, 407 сетевой адаптер, 410 согласование режимов, 409 EVC, 333 expansion bus, 145 Expansion ROM, 497,503 Extended ASCII Keystroke, 485

fast ATA-2, 361

Fast Centronics, 21

Fast Ethernet, 406

Fast IP) 412

Fast SCSI, 117

Fast Wide SCSI, 117

FCAL 140

FDC, 356

Feature connector, 340

Fibre Channel, 140 адаптер, 141 коммутатор, 141 концентратор, 141 маршрутизатор, 141 мост, 141

Алфавитный указатель

519

FireWire, 106

адаптер, 112

асинхронные сообщения, 110

динамическое реконфигурирование, 111

диспетчер изохронных ресурсов, 111

изохронные передачи, 110

использование, 113

кабельная сеть, 107

контроллер шины, 112

мастер циклов, 111

протокол, 109

разъем, 107

сравнение с USB, 87

устройства, 112 Flow Control, 60 FOIRL, 406 FRAM, 305

Game-порт, 349 GateA20, 315,469 Gigabit Ethernet, 406

H

Handshaking, 60 HPЧТП7SllMAf, »U

I

PC, 331,421 i8042, 313 IDE

ATA, AT-BUS, 361

XT, 371

разновидности интерфейса, 361 IEEE 1149.1, 446 IEEE 1284, 22,322

ECP, 29

EPP, 25

LPT-порт, 22

PnP, 41

двунаправленный обмен, 24

кабели и разъемы, 40

полубайтный обмен, 23 IEEE 1394, 106,109 IN, 376

Infra Red Connection, 78 Int05h, 325 IntO8h, 358 Int09h, 316,325 IntOEh, 357,487 Int 10h, 71 Int13h, 142,403



Int I3h (продолжение)

параметры вызова, 487

функции 00-24h, 487 41-49h, 491 4A-4D, 491 Int u^ 4g59,71, 491 Int 15h' 478 Int 16h, 71,316 Int17h, 17,320,325 Int 19h, 498 Int lAh, 210,478 Int33h, 318 Int 40h, 486 Int 76h, 487 Int 9h, 484 Ir TP, 80 IR-Connector, 81 IrCOMM, 80 IrDA, 78

FIR, 79

HDLC, 79

MIR, 79

SIR, 79

приемопередатчики, 81 IrDA4PPM, 80 IrLAN, 81 IrLAP, 80 IrLMP, 80 IrOBEX, 81 IRQ 15, 487 IRQ 6, 487 IRQ11, 70 IRQ4, 70 IRQ5> 20 IRQ7, 20 ISA, 146

bus mastering, 159

Bus-Master, 360

legacy card, 165

PnP, 165

каналы DMA, 147

карта

безджамперная, 164 прототип, 146

конфигурирование, 164

порты PnP, 165

прерывания, 147,160

пространство памяти, 147

прямое управление шиной 159

прямой доступ к памяти, 157

распределение ресурсов, 147

регенерация памяти, 159

сигналы, 149

слот, 148

шина, 146 ISO_8482, 56

520

Алфавитный указатель

JTAG, 446 jumperless, 164,414

OFF-Line, 321 OUT, 376 Output Enable, 156

LapLink, 18 LBA, адресация, 361 Legacy Card, 455 LF, 321 Loop Back, 46 Low-Profile PCI, 196 LPC, 223 LPT-порт, 17

Fast Centronics, 21

IEEE 1284, 22

двунаправленный, 21

использование, 42

кабель подключения принтера, 323

конфигурирование, 44

расширения, 21

с прямым доступом к памяти, 21

связь компьютеров, 42

стандартный определение, 18 прерывания, 20 регистры, 19

тестирование, 45

функции BIOS, 41

м

Magic Packet, 412

Master, 360

MDI, 407

MDIX, 407

Ml-PC, 232

Microwire, 444

MIDI, 345,350

Mil, 410

Miniature Card, 229,402

, 400

mouse

Bus, 319

MS Mouse, 317

PC Mouse, 317

PS/2, 318

Serial, 317 MPU-401, 346 MultiMediaCard, 400

N

Nibble Mode, 20,23 NIC, 410 NVRAM, 277

P&D, 336 P&D-A, 333 P&D-A/D, 336 PC Card, 229

сигналы, 229

шина, 228 PC/104, 161 PC/PCI, 465 PC/PCI DMA, 191 PCI, 175

BIOS, 210

concurrency, 199

posted write, 200

автоконфигурирование, 204

адресация, 183

арбитраж, 179

ведомое устройство, 177

завершение транзакции, 181

классы устройств, 209

команды, 185

конфигурационный механизм, 202



мост, 198

номер

устройства, 177 шины, 176

отложенные транзакции, 199

позитивное декодирование, 198

прерывания, 189

сигналы, 177

слоты, 192193

субтрактивное декодирование, 198

таймеры/ 182

устройство, 176

частота шины, 193

шина, 175

электрический интерфейс, 192

эмуляция DMA, 191 PCI Bridge, 198 PCI IDE> 384 PCI-X, 196 PCMCIA, 228 Peer-to-Peer Bridge, 198 PIO, 376,473 PIO Mode, 377 PnP BIOS, 500 PS/2, 21 pulse dialing, 416 PXI, 197

Алфавитный указатель

RCА, разъемы, 341 RDRAM, 245,269

инициализация, 249

канал, 246

пакеты, 247 refresh, 238 RGB Analog, 327 RJ-11, 415 RAM, 22,30 ROM BIOS, 454,500 RS-232C, 49,55,389

аппаратное управление потоком RTS/CTS, 61

микросхемы UART, 63

программное управление

потоком XON/XOFF, 62 RS-422, 55,56,57 RS-423 55 RS-485, '55,56,57

S-VHS, 342 S-Video, 341 S/PDIF, 344 SBA, 213 SCAM, 116 SCSI SPI, 115

адресация устройств, 129 версии, 116

дифференциальная версия, 116 инициатор обмена, 129 кабели, 118,120 конфигурирование, 134,142 линейная версия, 116 низковольтный дифференциальный

интерфейс LVD, 117 подключение устройств, 135 разъем

СХ-50, 119

DB-25, 119

HD-50, 119

HD-68, 119

IDC-50, 118

MiniDSO, 119

MiniD68, 119

SCA, 120

VHDCI-68, 120 разъемы, 118,121 система команд, 143 терминаторы, 125 узкий интерфейс, 116

SCSI (продолжение)

управление, 142

фазы 129

хост-адаптер, 141

целевоеустройство, 129

шина, 114,134,142 SCSI.2>

ш SCSI-3, 115 SD 4(ю

SDRAM, 240,245,262 Secure Digital, 400 Self-Healing Driver, 412 Serial ATA, 389 Setup, 44 SIMM, 257 SIMM-30, 257 SIPP, 256 Slave, 360

SmartMedia Card, 399 SMBus, 433 SMI Mil, 443 SPCI, 196 SPI, 115,444 SPP, 18 SRAM, 274

Tagged VLAN, 412 TinyTP, 80 tone dialing, 416 Toslink, 345 lype l, 21

и

UART, 63

8250/16450/16550, СОМ-порт, 63 MPU-401, 346 RS-232C, 63

Ultra DMA, 361,362,377

Ultra SCSI, 117

Ultral60SCSI, 117

Ultra2SCSI, 117

Ultra320 SCSI, 117

unreal, 471

USB, 88

автоконфигурирование, 101 адаптивные устройства, 99 асинхронные устройства, 98 взаимодействие, 89 высокая скорость (HS), 88 изохронные передачи, 97 интерфейс, 90 кадры, 95



522

Алфавитный указатель

USB (продолжение) канал, 95

конечные точки, 94 микрокадр, 96 низкая скорость (LS), 88 передачи массивов данных, 96 подключение устройств, 91 полная скорость (FS), 88 поток, 95

преобразователи интерфейсов, 103 прерывания, 97 применение 101 протокол, 95 синхронизация, 97 синхронные устройства, 98 сообщения, 95 сравнение с FireWire, 87 удаленное пробуждение, 94 управление энергопотреблением, 93 управляющие посылки, 96 устройства, 88 функции, 89 хаб, 92 хост, 89,99 хост-контроллер, 100 шина> 88

V.11, 56

VESA, 332

VESA DDC, 331

VESA Feature connector, 340

VGA Palette Snooping, 201

VP&D, 336

VT-100, 71

VT-42 71

w

Wide Ultra SCSI, 117 Wide Ultra2 SCSI, 117

X27 56 XON/XOFF 62

Y

Y/C, 342

z

ZV Port, 232

автоконфигурирование

PCI, 204

USg 1Q1

устройств, 204 адаптер

АТА, 382

bus master, 411

Ethernet, 410

Fibre Channel, 141

ЛВС, подключение, 43 адресация

CHS, 360

LBA, 361

ввода-вывода, 223

канальная, 30

памяти, 216,223 адресный пакет, 491 АКД, 49

аналоговые аудиоинтерфейсы, 342 АОН, 417 АПД, 49

аппарат телефонный, 415 асинхронный режим, 50

байтный ввод, 24 барьер

528 Мбайт, 489 блок питания

АТХ, 513

PC, 511

сетевой фильтр, 505

традиционный, 512 блокированный телефон, 417

В

ввод

байтный, 24

двунаправленный, 24

полубайтный, 23 ввод-вывод

РЮ, 473

дешифрация 10/12 бит, 455

инструкции, 473

карта

разрешенных обращений, 474 распределения портов, 456 вентиль линии А20, 315 видео

графические режимы, 486 видеоинтерфейсы, 341 видеосигнал, 341 виртуальная память, 470 ВЛС, 412 выборка кабельная, 387

Алфавитный указатель

52<$

гальваническая развязка, 58,510 главный мост, 198 горячее подключение, 89

д

двунаправленный LPT-порт, 21 двунаправленный ввод, 24 двунаправленный обмен, 24 джойстик, 349 дискеты

дисковый сервис, 486 диски АТА

логические параметры, 490 физические параметры, 490 дисковый сервис BIOS, 486 расширенный, 490 традиционный, 487 дисплейный адаптер BNC-разъемы, 332 VESA Feature Connector, 339 VGA Auxiliary Video Connector, 339 идентификация монитора, 331 интерфейс DDC, 331 RGBTTL, 326 RGB аналоговый, 327 композитный видеосигнал, 341 управление энергопотреблением



монитора, 332

дифференциальный интерфейс SCSI, 116 драйвер самоизлечивающийся, 412 дуплексный обмен, 14

заземление, 506 зануление, 507 защищенный режим, 469 звуковая карта, 348

И

идентификация

источника запроса прерывания, 161

монитора, 331

питания, 402 интерфейс

ACCESS.bus, 442

AUI, 409

DDC, дисплейный адаптер, 331

DFP, 336

DVI, 337

интерфейс (продолжение) Ethernet, 405 PC, 421,442 IrDA, 78 JTAG, 446 LPC, 223 microwire, 444 МП, 410 P&D, 336

RGBTTL, дисплейный адаптер, 326 RGB аналоговый, 327 RS-232C, 55 RS-422, 55 RS-423, 55 RS-485, 55 S-VHS, 342 S-video, 341 S/PDIF, 344 .   SCSI, 116 Serial ATA, 389 SMBus, 442 SMI, 443 SPI, 444 USB, 90 Y/C, 342 аудио, 342 аудиоцифровой, 344 беспроводный, 78 видео, 341

гальваническая развязка, 15 ИPNP, 323 клавиатуры, 311 монитора, 326 мыши, 316 НГМД, 353,354 параллельный, 13

Centronics, 321

LPT-порт, 17 последовательный, 13

MIDI 345

RS-232C, 49

асинхронный, 59              

инфракрасный, 78

принтеров, 324

токовая петля, 57

управление потоком, 61 принтеров и плоттеров, 320 телефония, 415 токовая петля, 57 топология, 14 устройства хранения, 394 интерфейсная карта, 410 интерфейсные кабели, 39 инфракрасная связь, 78 ИPNP, 323

524

Алфавитный указатель

К

кабели, 39

Fire Wire, 106

IDE ATA, 363

MIDI, 345

SCSI, 120

STP, 406

USB, 88,89,333

UTP, 108

и разъемы, IEEE 1284, 40

интерфейса НГМД, 355

интерфейсные, 39

монитора, 326

нуль-модемные, 70

питания, 505

принтера, 323 кабельная выборка, 387 каналы ATA, 383 карта

AGP, 212

CompactFlash, 396

ISA, 44,81

ММС, 400

PC Card 81228

PCI, 18,81

PCMClf 228,399

SD, 400

SmartMedia Card, 399

прототип, 146 квитирование, 60 клавиатура, 311

Alt-набор, 485

ASCII-коды, 485

Int09h 316

Intl6h, 316,483,484,493

Int9h, 483,484,493

буфер 483

интерфейс, 311 программный, 484

область в BDA, 483

прерывания, 483

разъемы XT, AT, PS/2, 311

расширенный ASCII-код, 485

скан-код, 310

коммутатор Fibre Channel, 141 коммутируемая линия, 414 компрессия, 30,34 контроллер



DMA 8237, 465         .

FDCAT, 356

PCI IDE, 384

НГМД

программирование, 356 регистры, 357

прерываний 8259А, 456

конфигурирование, 44,89

АТА, 387

СОМ-порта, 70

jumperless, 414

LPT-порта, 44

SCSI, 134,142

адаптеров Ethernet, 414 ISA, 164 концентратор Fibre Channel, 141

Л

линейный интерфейс SCSI, 116 линия телефонная коммутируемая, 414

м

манипулятор, 70

маршрутизатор Fibre Channel, 141 маскируемые прерывания, 458 монитор, 341 мост

Fibre Channel, 141

PCI, 198

главный, 198

одноранговый, 198 мышь, 70

н

накопители

внешние, 43

дисковые, 24

подключение, 43 НГМД

интерфейс, 353,354

контроллер, 356

программирование, 356

регистры контроллера, 357

£ежим" з56

скорость передачи данных, 356

смена носителя, 354 немаскируемое прерывание, 457

обмен

дуплексный, 14

полудуплексный, 14

симплексный, 14

обработка аппаратного прерывания, 459

одноранговый мост, 198

ООД, 49   .             ,

п

память

DDR SDRAM, 244 DRAM, 235

Алфавитный указатель

525

память (продолжение) NVRAM, 277 RDRAM, 245 SDRAM, 240

инициализация, 245

команды, 240

латентность, 241 SIPP, 256

адаптеры модулей, 254 верхняя, 454 виртуальная, 470 время доступа, 236 динамическая, 235

BEDO, 240

EDO, 239

FPM, 238

асинхронная, 238

временные параметры, 236

модули, 251

синхронная, 240 маркировка модулей, 254 модули

DIMM, 261

DIMM-184, 267

DRAM cards, 274

ECC, 253

RIMM, 269

SIMM-30, 257

SIMM-72, 258

SIPP 257

SO DIMM-144, 272

SODIMM-72, 271

без паритета, 252

двусторонние, 257

идентификация, 254,255

односторонние, 257

организация контроля, 252

с паритетом, 252

с фиктивным паритетом, 252

со встроенной коррекцией, 253 регенерация, 238

CBR, 238

ROR, 238

автономная, 238

без импульса CAS, 238

скрытая, 238 с интерфейсом

I2C, 308

SPI, 309

с последовательными интерфейсами, 305 средства энергосбережения, 242,249 статическая, 274

асинхронная, 274

синхронная пакетная, 275 физическая, 454

память (продолжение) энергонезависимая, 276 EEPROM, 277,282 EPROM, 277,280 FRAM, 277 PROM, 277 UV-EPROM, 277 масочная, 278



однократно программируемая, 278 программаторы, 279 программирование, 276 репрограммируемая, 278 стирание EPROM, 279 фЛЭШ1

282

параллельный интерфейс, 13 Centronics, 321 SCSI 116 подключение

адаптеров ЛВС, 43 накопителей, 43 сканера, 43 полубайтный ввод, 23 полубайтный обмен, 23 полудуплексный обмен, 14 последовательный интерфейс, 13,49,59,78 поток данных, 60 прерывания ISA, 461 LPT-порта, 20 NMI, 457 PCI, 460

аппаратные, 20,457,459,481 клавиатуры, 483 конфигурирование, 460 конфликты, 463 ложные, 461 маскируемые, 458 мультипроцессорных систем, 461 разделяемые, 462 таблица назначений, 459 чувствительность, 461 процессор х86, 468 прямое управление шиной, 411,465 прямой доступ к памяти, 463,465

развязка

гальваническая, 15,510

конденсаторная, 511

оптическая, 510

трансформаторная, 511 разъемы

ATА, 363

СОМ-порта, 52

526

Алфавитный указатель

разъемы (продолжение)

DFP, 337

DVI, 337

EVC. 333

FireWire, 107

Game-порта, 349

LPT-порта, 42,43

MIDI, 346

P&D, 336

P&D-А, 333,336

RCA, 341

RS-232C, 52

SCSI, 121

USB, 89

VAFC, 326

VFC, 326

аудио, 342

блока питания ATX, 514

видео, 334

клавиатуры XT, AT, PS/2, 311

НГМД, 354

питания

накопителей, 513 системной платы, 513 расширения LPT-порта, 21 режим

DMAATA, 377

большой реальный, 471

передачи АТА, 376 РЮ, 376

стандартный реальный, 471

сброс

счетчика, 494

таймера, 495

флага, 494

связь через LPT-порт, 42 сектор, 360 сетевой фильтр, 506 сжатие, 34

симплексный обмен, 14 системный таймер, 476 сканер, 43

скорость передачи данных, 55 слот

AGP, 219

AGP Pro, 221

ISA, 27,44,137

PC Card, 228,229

PCI, 113,137

PCMCIA, 145

Small PCI, 234 средства измерения времени, 476

таймер

CMOS RTC, 477

системная поддержка, 478,494

системный, 476

трехканалышй, 476 телефония

автоматическое определение номера, 417

блокиратор, 417

импульсный набор, 416

интерфейс, 415

параметры сигналов, 418

тональный набор, 416 телефонная линия, 414 телефонный аппарат, 415 терминаторы SCSI, 125 тестирование, 45



СОМ-порта, 73

LPT-порта, 45 токовая петля, 57,58 топология соединения, 14 трансляция

геометрии, 490 трекбол, 70 трехканальный счетчик-таймер, 476

управление SCSI, 142 потоком, 369

аппаратное RTS/CTS, 61 варианты, 60 посылка уведомления, 61 программное XON/XOFF, 62 энергопотреблением, 93,332 устройства защиты, 307

фиксированный диск, 486 флэш-память, 282

boot block, 284,293

bulk erase, 284,291

data polling, 301

flash file, 284,296

NAND, 285

NOR, 285

PCMCIA, 291

smart voltage, 300

toggle bit, 301

архитектура

асимметричная, 284 симметричная, 284

корпуса, обозначение, 286

Алфавитный указатель

флэш-память (продолжение) назначение

выводов, 287

сигналов, 288 с интерфейсом

DRAM, 286

LPC, 286

с синхронным интерфейсом, 285 сектарированная, 293 фирмы

AMD, 301

Intel, 283

хост-адаптер, 141 ATA, 360 SCSI, 141

ш

шина

ACCESS.Bus, 427 CardBus, 229 Compact PCI, 196 EISA, 146,148,151 IEEE 1394, 106 ISA, 146

каналы DMA, 147 прерывания, 147

шина (продолжение)

пространство памяти, 147

распределение ресурсов, 147

сигналы, 149

слот, 148 Mini PCI, 196 Miniature Card, 229 PC Card, 228,229 PC/104, 161 PCI, 175

автоконфигурирование, 204

команды, 185

мост, 198

слот, 193 PCI-X, 196 PCMCIA, 228 PXI, 197

SCSI, 114,134,142 Small PCI, 196 SMBus, 433 USB, 88 расширения, 145,146

электропитание заземление, 506

оборудования локальных сетей, 510 сетевой фильтр, 506


Аналоговые интерфейсы


Аналоговые интерфейсы позволяют подключать стандартную бытовую аппа­ратуру, микрофон, аналоговой выход CD-ROM. На большинстве карт массового потребления для аналоговых сигналов применяют малогабаритные разъемы — «мини-джеки» (jack) диаметром 3,5 мм, моно и стерео. Эти разъемы универсаль­ны (используются на бытовой аппаратуре), но имеют весьма низкое качество кон­тактов — они являются источником шумов (шорохов и тресков), а также иногда

8.5. Интерфейсы аудиоустройств_______________________________________ 343

просто теряют контакт. Их полноразмерные 6-миллиметровые «родственники», характерные для профессиональной аппаратуры, имеют весьма высокое качество, но из-за крупных габаритов на звуковых картах не используются. На некоторых высококачественных картах сигналы линейного входа и выхода выводятся на пары разъемов RCA, которые обеспечивают очень хороший контакт, особенно в позо­лоченном варианте. В просторечии такие разъемы, часто используемые на быто­вых видеомагнитофонах, называют «колокольчиками» или «тюльпанами».

Раскладка цепей на мини-джеках унифицирована: левый канал — на центральном контакте, экран (земля) на внешнем цилиндре, правый канал — на промежуточ­ном цилиндре. Если стереоджек включить в моногнездо и наоборот, сигнал пой­дет только по левому каналу. Все соединения в стереосистемах осуществляются «прямыми» кабелями (контакты разъемов соединяются «один в один»). Для под­ключения центрального и низкочастотного каналов в 6-колоночной системе еди­ного подхода нет — может потребоваться перекрестный кабель. Неправильное подключение будет заметно по «писку» низкочастотной колонки (сабвуфера) и «бубнению» центральной колонки.

Подключение к звуковой карте устройств через внешние разъемы проблем обыч­но не вызывает — они унифицированы, и достаточно знать назначение разъемов, маркированных на задней панели.

¦ Line In — линейный вход от магнитофона, тюнера, проигрывателя, синтезатора и т. п. Чувствительность порядка 0,1-0,3 В.


¦     Line Out — линейный выход сигнала на внешний усилитель или магнитофон, уровень сигнала порядка 0,1-0,3 В.

¦     Speaker Out — выход на акустические системы или головные телефоны. Под­ключать к нему внешний усилитель мощности нецелесообразно, поскольку здесь искажения больше, чем на линейном выходе.

¦     Мгс In — микрофонный вход, чувствительность 3-10 мВ. Этот вход обычно монофонический, но иногда используется трехконтактное гнездо (как в стерео), у которого дополнительный контакт (на месте правого канала) выделен для подачи питания на электретный микрофон.

Подключение внутренних устройств к аналоговым входам может доставить боль­ше забот. Для этого используются четырехштырьковые разъемы, различающиеся как шагом межу выводами, так и их назначением. Для подключения CD-ROM часто ставят рядом два, а то и три разъема с параллельно соединенными сигналь­ными контактами, но и это может не помочь, если кабель имеет другое расположе­ние сигналов. Спасти может перестановка контактов на разъеме кабеля, для чего иголкой нажимают на фиксирующий выступ контакта. После этого контакт мож­но вытянуть в сторону кабеля и переставить в другое гнездо. Вид и варианты рас­положения сигнальных контактов аудиовходов приведены на рис. 8.15. Для пол­ноты картины добавим, что разъем может иметь ключ с противоположной стороны (по ошибке сборщика кабеля или по внутреннему стандарту его производителя). Задача подключения все-таки не безнадежна, поскольку требует правильной рас­становки только двух сигнальных контактов, а контакты общего провода выделя-

344

Глава 8. Специализированные интерфейсы периферийных устройств

ются тем, что на плате соединяются с шиной, а на кабеле — с экраном. Положение левого и правого каналов аудио-CD в большинстве случаев не так уж и важно.



Рис. 8.15. Разъемы подключения аудиосигналов


Аналоговые интерфейсы RGB


Интерфейс RGB Analog с аналоговой передачей сигналов яркости базисных цве­тов позволяет передавать формально неограниченное число оттенков. Сигналы базисных цветов в современных адаптерах формируются 8-разрядными ЦАП, что позволяет выводить 16,7 миллионов цветов (True Color). Для уменьшения перекрест­ных помех эти сигналы передаются по витым парам, с собственными обратными линиями (Return). Для согласования с кабелем в мониторе каждая сигнальная пара нагружается резистором. Черному цвету соответствует нулевой потенциал на ли­ниях всех цветов, полной яркости каждого цвета соответствует уровень +0,7 В (не все графические адаптеры обеспечивают полную амплитуду сигнала). Сигналы управления, состояния и синхронизации передаются сигналами ТТЛ. Временные диаграммы интерфейса RGB (они применимы и к интерфейсу RGB TTL) иллю­стрирует рис. 8.9. Сигналы R, G, В, здесь показаны условно — изображены интерва­лы, во время которых сигналы отображаются засветкой точек экрана (видимая часть изображения — в областях пересечения отображения по кадру и по строке, в остальное время луч принудительно гасится). На рисунке показаны основные временные параметры сигналов. Стандарт VESA DMT (Discrete Monitor Timing, 1994-1998 гг.) задает дискретный ряд вариантов параметров для различных ре­жимов разрешения. Несколько более поздний стандарт VESA GTF (Generalized Timing Formula Standard) задает формулы для определения всех параметров син­хронизации, исходными данными для расчета являются следующие:

¦     формат экрана в пикселах (например, 800x600);

¦     необходимость дополнительного видимого обрамления (overscan borders);

¦     тип развертки — построчная (non-interlaced) или черезстрочная (interlaced);

¦     одна из заданных частот: кадров, строк или пикселов.

Поскольку стандартов много, один и тот же набор этих параметров разными гра­фическими картами и их драйверами может использовать несколько отличающи-


328

Глава 8. Специализированные интерфейсы периферийных устройств

еся ^ временные параметры сигнала. Эти вариации приходится компенсировать настройками монитора (размер и смещение по вертикали и горизонтали). Приме­ры параметров синхронизации для построчной развертки приведены в табл. 8.6. Обратим внимание, что для строчной развертки параметры синхронизации зада­ются в микросекундах, а для кадровой — в числе строк за это время.



Рис. 8.9. Временные диаграммы интерфейса RGB: a — общая картина, б — строчная развертка, в — кадровая развертка





Таблица 8.6. Параметры синхронизации



8.4. Интерфейсы графических адаптеров

329

Режим         Частота           Частота Частота               Строчная                                                          Кадровая

VESA                         кадров,     строк,   пикселов,              развертка, мкс                                             развертка,

ГЦ                   кГц        МГц                                                                                                             строк

Fv                   Fh         Fp                                        Abcdefgh

1280x1024

75.0

79.9

135

SXGA(75Hz)

1280x1024

85.0

91.1

SXGA(85Hz)

1600x1024

60.0

63.6

(60Hz)

1600x1024

85.0

91.4

(85Hz)

1600x1200

85.0

106.3

(85Hz)

1920x1200

60.0

74.5

(60Hz)

1920x1200

85.0

107.1

(85Hz)

2048x1536

75.0

120.2

(75Hz)

2304x1440

80.0

120.6

(80Hz)

Впервые аналоговый интерфейс был применен на адаптере PGA фирмы IBM, где для него использовался 9-контактный разъем DB-9S (табл. 8.7). В дальнейшем, начиная с адаптеров VGA, стали применять малогабаритный 15-контактный разъем с таким же внешним размером (табл. 8.8). По назначению сигналов эти интерфей­сы в основном совпадают, существуют даже переходные кабели с 15- на 9-контакт­ные разъемы (табл. 8.9).


В адаптере PGA используется совмещенная синхрониза­ция (Composite Sync) сигналом (H+V)Sync.; этот режим поддерживают и многие современные мониторы.

Таблица 8.7. Аналоговый интерфейс монитора PGA (разъем DB-9S)

Контакт

Сигнал

1

Red

2

Green

3

Blue

4

(H+V)Sync

5

Mode Control

6

Red Return

7

Green Return

8

Blue Return

9

GND

330

                     Глава 8. Специализированные интерфейсы периферийных устройств



1   Сигналы DDC Return, SDA и SCL задействуются только при поддержке DDC. При этом контакт 9 может использоваться для питания логики DDC (+5 В).

2   Сигнал (H+V)Sync используется при совмещенной синхронизации (Composite Sync).

Таблица 8.9. Переходник 9-15 аналогового интерфейса монитора

Контакт DB9   Сигнал

Контактов 15

 

1

Red

1

2

Green

2

3

Blue

3

4

H.Sync

13

5

V.Sync

14

6

Red Return

6

7

Green Return

7

8

Blue Return

8

9

GND

10,11

Несмотря (в прямом смысле) на наличие ключа — D-образного кожуха, 15-кон­тактные разъемы ухитряются вставлять в перевернутом положении, при этом один из контактов среднего ряда подгибается, а потом и ломается (штырьки этих разъе­мов тоньше и слабее, чем у 9-контактных). Естественно, монитор, подключенный таким образом, работать не будет.

В компьютерах Macintosh монитор, совместимый по параметрам с VGA, имеет разъем DB-15P (такой же, как и у Game-порта PC). Назначение его выводов при­ведено в табл. 8.10.

8.4. Интерфейсы графических адаптеров___________________________________________ 331

Таблица 8.10. Разъем VGA Macintosh Контакт     Сигнал

1

Red Return

2

Red

3

Comp.Sync

4

IDO

5

Green

6

Green Return

7

ID1

8

He используется

9

Blue

10

ID2

11

Sync. GND

12

V.Sync

13

Blue Return

14

H.SyncGND

15

H.Sync

<


Кроме передачи изображения, по интерфейсу передают информацию, необходи­мую для автоматизации согласования параметров и режимов монитора и компью­тера. «Интересы» компьютера представляет дисплейный адаптер, к которому и подключается монитор. С его помощью обеспечиваются идентификация мо­нитора, необходимая для поддержки PnP, и управление энергопотреблением монитора.

Для простейшей идентификации в интерфейс ввели четыре логических сигнала IDO-ID3, по которым адаптер мог определить тип подключенного монитора IBM. Со стороны монитора эти линии либо подключались к шине GND, либо оставля­лись неподключенными. Однако из этой системы идентификации использовали лишь сигнал ID1, по которому определяют факт подключения монохромного мони­тора. Монохромный монитор может быть опознан адаптером и иначе — по отсут­ствию нагрузки на линиях Red и Blue.

Параллельную идентификацию мониторов заменила последовательная по кана­лу цифрового интерфейса VESA DDC (Display Data Channel). Этот канал постро­ен на интерфейсах PC (DDC2B) или ACCESS.Bus (DDC2AB), которые требуют всего два ТТЛ-сигнала SCL и SDA. Интерфейс DDC1 является однонаправлен­ным — монитор посылает адаптеру блок своих параметров по линии SDA (кон­такт 12), которые синхронизируются сигналом V.Sync (контакт 14). На время при­ема блока параметров адаптер может повысить частоту V.Sync до 25 кГц (генератор кадровой развертки по такой высокой частоте синхронизироваться не будет). Интерфейс DDC2 является двунаправленным; для синхронизации используется выделенный сигнал SCL (контакт 15). Интерфейс DDC2AB отличается тем, что допускает подключение ПУ, не требующих высокой скорости обмена, к компью­теру по последовательной шине ACCESS.Bus (см. п. 11.1.2).

332_________ Глава 8. Специализированные интерфейсы периферийных устройств

Блок параметров расширенной идентификации дисплея EDID (Extended Display Identification) имеет одну и ту же структуру для любой реализации DDC (табл. 8.11).



Таблица 8.11. Блок расширенной идентификации EDID Смещение,байт  Длина,байт   Назначение

0

8

8

10

18

2

20

15

35

19

54

72

126

1

127      г

1

Заголовок (индикатор начала потока EDID)

 Идентификатор изделия (назначается производителем)

Версия EDID

Основные параметры и возможности дисплея

Установленные параметры синхронизации

Дескрипторы параметров синхронизации (байты 4-18)

Флаг расширения

Контрольная сумма

Для управления энергопотреблением монитора в соответствии со стандартом VESA DPMS (Display Power Management Signaling) используются сигналы кад­ровой и строчной синхронизации V.Sync и H.Sync (табл. 8.12).

Таблица 8.12. Управление энергопотреблением монитора (VESA DPMS)

Режим              H.Sync             V.Sync

On                  Активен         Активен

Standby            Неактивен          Активен

Suspend            Активен             Неактивен

Off                  Неактивен       Неактивен

Разъемы, применяемые в современных адаптерах и мониторах SVGA, не предна­значены для передачи высокочастотных сигналов. Пределом для них является при­мерно 150 МГц, что для высокого разрешения и высокой частоты регенерации недостаточно. Поэтому на больших профессиональных мониторах с высокими разрешением и частотами синхронизации и на соответствующих адаптерах име­ются BNC-разъемы для соединения с помощью коаксиальных кабелей. Монито­ры с коаксиальными входами могут быть подключены и к адаптерам с разъемом DB-15, для чего выпускаются специальные переходные кабели. У этих кабелей может быть 3-5 75-омных коаксиальных разъемов BNC:

¦     3 разъема — сигналы базисных цветов, смешанная синхронизация (composite sync) передается в канале зеленого цвета;

¦     4 разъема — смешанная синхронизация передается по отдельному кабелю;

¦     5 разъемов — вертикальная и горизонтальная синхронизация передается по раздельным кабелям.



С помощью коаксиальных кабелей возможно удаление монитора от компьютера на расстояние до 10-15 м при хорошем изображении.

8.4. Интерфейсы графических адаптеров

333

Для расширения частотного диапазона (и учитывая тенденцию к использованию последовательных шин USB и Fire Wire) для подключения ПУ к системному бло­ку компьютера VESA в 1995 г. предложила новый тип разъема EVC (Enhanced Video Connector). В 1998 г. была принята новая редакция, и разъем переименован в P&D-A (Plug&Display-Analog) с небольшими изменениями, касающимися ре­зервных контактов и цепей питания зарядного устройства. Кроме обычного ана­логового интерфейса RGB и канала DDC2, разъем P&D-A (EVC) имеет контакты для видеовхода, входные и выходные стереоаудиосигналы, шины USB и Fire Wire, а также линии питания постоянного тока для зарядки аккумуляторов портатив­ных ПК. Разъем имеет две секции: высокочастотную для присоединения четырех коаксиальных кабелей и низкочастотную на 30 контактов (рис. 8.10, табл. 8.13). Контакты высокочастотной секции, хотя и не являются коаксиальными, позволя­ют передавать сигналы с частотами до 2 ГГц. Контактом экранов является крес­тообразная перегородка. При использовании 75-омных коаксиальных кабелей на частоте 500 МГц гарантируется уровень отражений и перекрестных помех не выше 2 %. Высокочастотная секция — контакты С1-С4 и С5 (экран) — требуется для передачи цветовых сигналов R, G, В и синхросигнала пикселов РХ Clock. Син­хросигнал пикселов «интересен» матричным дисплеям (с их цифровой природой), его использование позволяет уменьшить погрешности передачи видеоинформа­ции. Частота этого сигнала равна либо частоте сканирования пикселов, либо ее половине (на высокой частоте нужна двойная синхронизация, по фронту и спаду, что уравнивает требования к полосе пропускания для линий цветовых данных и линии синхронизации пикселов).

Таблица 8.13. Разъем P&D-A (EVC)

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

1

Audio Output, Right

11

Charging power input, +

21

Audio input, left

2

Audio Output, Left

12

Charging power input, -

22

Audio input, right

3

Audio Output, Return

13

Video input, Y или composite in

23

Audio input, return

4

Sync Return

14

Video input, return

24

Stereo sync (TTL)

5

Horizontal Sync (TTL)

15

Video input, С in

25

DDC return

6

Vertical Sync (TTL)

16

USB Data +

26

DDC Data (SDA)

7

Резерв

17

USB Data -

27

DDC Clock (SCL)

8

Резерв

18

USB/1394 common mode shield

28

+5 В

9

1394TPA-

19

1394VG

29

1394TPB+

10

1394TPA+

20

1394VP

30

1394TPB-

С1

R (аналог.)

C3

PX Clock

С2

G (аналог.)

C5

GND (для R, G, B)

C4

В (аналог.)

<


334

Глава 8. Специализированные интерфейсы периферийных устройств



Рис. 8.10. Разъем Б/С и P&D (розетка)

Разъем поделен на компактные зоны для каждой группы сигналов, правда, шины USB и 1394 используют общий контакт для экрана. Назначение контактов видео­входа (S-Video или композитный, PAL или NTSC) может программироваться по каналу DDC2.

Стандарт определяет три уровня реализации: базовый, мультимедийный и пол­ный. Базовый включает только видеосигналы и DDC, в мультимедийном должны быть аудиосигналы. При использовании коннектора в полном объеме монитор превращается в коммутационный центр, который соединяется с компьютером одним кабелем, а все остальные ПУ (включая клавиатуру, мышь, принтер) под­ключаются к монитору. Разъем может использоваться для подключения пор­тативного ПК к док-станции. EVC собирает сигналы от разных подсистем — гра­фической, видео, аудио, последовательных шин и питания. Этот общий разъем, устанавливаемый на корпусе системного блока, может соединяться с разными платами внутренними кабелями через промежуточные разъемы. Этот разъем не следует путать с похожим по виду и названию разъемом P&D-A/D, описанным в следующем пункте. Разъемы EVC на компьютерах встречаются нечасто, и это объясняется не только их довольно высокой ценой. Устанавливать EVC на гра­фическую карту неудобно (она «обрастет» лишними интерфейсными шлейфами), а интегрированные системные платы редко имеют графические адаптеры с выда­ющимися параметрами, для которых он нужен.


Аппаратные прерывания


Аппаратные прерывания обеспечивают реакцию процессора на события, проис­ходящие асинхронно по отношению к исполняемому программному коду. Преры­вания в процессорах х86 подробно рассмотрены в литературе [6,7]. Здесь напом­ним, что аппаратные прерывания делятся на маскируемые и немаскируемые. На немаскируемое прерывание (NMI) процессор реагирует всегда (если обслужива­ние предыдущего NMI завершено); этому прерыванию соответствует фиксирован­ный вектор 2. Немаскируемые прерывания в PC используются для сигнализации о фатальных аппаратных ошибках. Сигнал на линию NMI приходит от схем контроля паритета памяти, от линий контроля шины ISA (IOCHK) или шины PCI (SERR#). Сигнал NMI блокируется до входа процессора установкой в 1 бита 7 порта 070h, отдельные источники разрешаются и идентифицируются битами порта 061h:

¦     бит 2 R/W — ERP — разрешение контроля ОЗУ и сигнала SERR# шины PCI;

¦     бит 3 R/W — EIC — разрешение контроля шины ISA;

¦     бит 6 R — IOCHK — ошибка контроля на шине ISA (сигнал ЮСНК#);

¦     бит 7 R — РСК — ошибка четности ОЗУ или сигнал SERR* на шине PCI.

458       Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Реакция процессора на маскируемые прерывания может быть задержана сбросом его внутреннего флага IF (инструкции СLI — запретить прерывания, STI — разре­шить). По возникновении события, требующего реакции, адаптер (контроллер) устройства формирует запрос прерывания, который поступает на вход контрол­лера прерываний. Контроллер прерываний формирует общий запрос маскиру­емого прерывания для процессора, а когда процессор подтверждает этот запрос, контроллер сообщает процессору вектор прерывания, по которому выбирается программная процедура обработки прерываний. Процедура должна выполнить действия по обслуживанию данного устройства, включая сброс его запроса для обеспечения возможности реакции на следующие события и посылку команды завершения в контроллер прерываний.
Вызывая процедуру обработки, процессор автоматически сохраняет в стеке значение всех флагов и сбрасывает флаг IF, что запрещает маскируемые прерывания. При возврате из процедуры (по инструкции I RET) процессор восстанавливает сохраненные флаги, в том числе и установленный IF, что снова разрешает прерывания. Если во время работы обработчика прерыва­ний требуется реакция на иные прерывания (более приоритетные), то в обработ­чике должна присутствовать инструкция STI. Особенно это касается длинных об­работчиков; здесь инструкция STI должна вводиться как можно раньше, сразу после критической (не допускающей прерываний) секции. Следующие прерывания того же или более низкого уровня приоритета контроллер прерываний будет обслужи­вать только после получения команды завершения прерывания EOI (End Of Interrupt).

Маскируемые прерывания используются для сигнализации о событиях в устрой­ствах. Обработка сигналов запросов прерывания выполняется контроллером пре­рываний, программно совместимым с 8259А. Контроллер прерываний позволяет маскировать отдельные входы запросов и организовывать систему приоритетов запросов от различных входов. В машинах класса AT применяется каскадное со­единение двух контроллеров. Ведущий контроллер 8259А#1 обслуживает запро­сы О, 1, 3-7; его выход подключается к входу запроса прерываний процессора. К его входу 2 подключен ведомый контроллер 8259А#2, который обслуживает за­просы 8-15. При этом поддерживается вложенность приоритетов — запросы 8-15 со своим рядом убывающих приоритетов вклиниваются между запросами 1 и 3 ведущего контроллера, приоритеты запросов которого также убывают с ростом номера. В XT каскадирование не применялось, и один контроллер 8259А обслу­живал все 8 линий запросов.

Контроллер прерываний 18259А подробно описан в литературе [1, 7]; здесь приве­дем лишь необходимые сведения, в большинстве случаев достаточные для работы. Контроллеры расположены по адресам 20-21h (8259A#1) и AO-Alh (8259A#2), обращаться к ним следует как к однобайтным портам ввода-вывода.


После ини­циализации (процедурой POST и при загрузке ОС) все неиспользуемые входы контроллеров замаскированы (на запросы прерываний реагировать не будут), а их векторы прерываний указывают на «заглушку» — процедуру с единственной инструкцией IRET. Первым делом программа должна загрузить в память свой об­работчик и подставить указатель на его начало в соответствующее место таблицы прерываний. Далее следует размаскировать вход, для чего выполняется чтение регистра маски (адрес 21h для 8259А#1, Alh для 8259А#2), обнуление соответ-

12.3. Аппаратные прерывания

459

ствующего бита (см. табл. 12.2) и запись в регистр нового значения маски. При работе с контроллером прерываний от программы требуется лишь управление маской своего запроса (при инициализации программы нужно обнулить маску требуемого запроса) и корректное завершение обработки прерываний. Каждая процедура обработки аппаратного прерывания должна завершаться командой ЕОI (End Of Interruption), посылаемой контроллеру:

¦     для 1-го контроллера — посылка байта 20h по адресу 20h;

¦     для 2-го контроллера — посылка байта 2Oh по адресу AOh (EOI для ведомого

контроллера), затем посылка байта 20h по адресу 20h (EOI для ведущего кон­

троллера).

Некорректно завершенная процедура не позволит повторно использовать данный или другие запросы прерываний. Если обработчик прерывания удаляется из памя­ти, предварительно должен быть замаскирован соответствующий ему вход контрол­лера. Все изменения в таблице прерываний должны выполняться при замаскиро­ванных прерываниях, чтобы избежать попытки использования вектора в процессе его модификации (это приведет к «вылету» программы).

На входы контроллеров прерываний поступают запросы от системных устройств (клавиатура, системный таймер, CMOS-таймер, сопроцессор), периферийных контроллеров системной платы и от карт расширения. Традиционно все линии запросов, не занятые перечисленными устройствами, присутствуют на всех сло­тах шины ISA/EISA.


Эти линии обозначаются как IRQx и имеют общепринятое назначение (табл. 12.2). Часть этих линий отдается в распоряжение шины PCI. В таблице отражены и приоритеты прерываний — запросы расположены в поряд­ке их убывания. Номера векторов, соответствующих линиям запросов контролле­ров, система приоритетов и некоторые другие параметры задаются программно при инициализации контроллеров. Эти основные настройки остаются традици­онными для обеспечения совместимости с программным обеспечением.

Таблица 12.2. Аппаратные прерывания (в порядке убывания приоритета)

Имя (номер1)

Вектор

Контроллер/маска

Описание

NMI

02h

Контроль канала, паритет

(в XT — сопроцессор)

IRQO

08h

#1/1h

Таймер (канал £8253/8254)

IRQ1

09h

#1/2h

Клавиатура

IRQ2

OAh

#1/4h

XT — резерв, AT — недоступно

(подключается каскад IRQ8-IRQ15)

IRQ8

70h

#2/1 h

CMOS RTC — часы реального времени

IRQ9

71h

#2/2h

Резерв

IRQ10

72h

#2/4h

Резерв

IRQ11

73h

#2/8h

Резерв

IRQ12

74h

#2/10h

PS/2-Mouse (резерв)

IRQ 13

75h

#2/20h

Математический сопроцессор

продолжение^





460______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Таблица 12.2 (продолжение)

Имя (номер1)  Вектор   Контроллер/маска   Описание

IRQ14

76h

#2/40h

HOC — контроллер НЖМД

IRQ15

77h

#2/80h

Резерв

IRQ3

OBh

#1/4h

COM2, COM4

IRQ4

OCh

#1/10h

COM1,COM3

IRQ5

ODh

#1/20h

XT — HOC, AT — LPT2, Sound (резерв)

IRQ6

OEh

#1/40h

FDC — контроллер НГМД

IRQ7

OFh

#1/80h

LPT1 — принтер

1 Запросы прерываний 0,1,8 и 13 на шины расширения не выводятся.

Для запросов прерывания с шины PCI используются 4 линии запросов прерыва­ния, которые обозначают как INTR А, В, С, D. Эти линии работают по низкому уров­ню, что дает возможность их разделения (совместного использования).


Линии циклически сдвигаются в слотах и независимо коммутируются на доступные линии IRQx с помощью конфигурационных регистров чипсета. Линии IRQx, используемые шиной PCI, становятся недоступными для шины ISA. «Дележку» линий между шинами, а также управление чувствительностью отдельных линий обеспечивают параметры CMOS Setup, а также система PnP.В параметрах ISA или Legacy под­разумевают использование линий IRQx традиционными адаптерами шины ISA (статическое распределение), a PCI/PnP — использование адаптерами шины PCI или адаптерами PnP для шины ISA (динамическое распределение). Общая схема формирования запросов прерываний изображена на рис. 12.1.



Рис. 12.1. Коммутация запросов прерываний

Каждому устройству, для поддержки работы которого требуются прерывания, должен быть назначен свой номер прерывания. Назначения номеров прерываний выполняются с двух сторон: во-первых, адаптер, нуждающийся в прерываниях,

12.3. Аппаратные прерывания_________________________________________ 461

должен быть сконфигурирован на использование конкретной линии шины (джам-перами или программно). Во-вторых, программное обеспечение, поддерживающее данный адаптер, должно быть проинформировано о номере используемого векто­ра. В процессе назначения прерываний может участвовать система PnP для шин ISA и PCI, для распределения линий запросов между шинами служат специаль­ные параметры CMOS Setup.

Контроллер прерываний позволяет программировать свои входы на чувствитель­ность к уровню или перепаду сигнала.

¦     Чувствительность к уровню (level sensitive) означает, что контроллер преры­ваний вырабатывает запрос прерывания процессора по факту обнаружения определенного уровня (на ISA — высокого) на входе DRQx. Если к моменту за­вершения обработки этого запроса (после записи команды EOI в регистр кон­троллера прерываний) контроллер снова обнаруживает активный уровень на том же входе DRQx, то он снова сформирует запрос на прерывание процессора.

¦     Чувствительность к перепаду (edge sensitive) означает, что контроллер преры­ваний вырабатывает запрос прерывания процессора только по факту обнару­жения перепада (на ISA — положительного) на входе DRQx.


Повторно запрос по этому входу возможен только по следующему такому же перепаду, то есть сигнал предварительно должен вернуться в исходное состояние.

В любом случае сигнал запроса аппаратного прерывания IRQx должен удерживать­ся генерирующей его схемой, по крайней мере, до цикла подтверждения прерыва­ния процессором. В противном случае источник прерывания корректно иденти­фицирован не будет, и контроллер сообщит ложный вектор прерывания (spurious interrupt), соответствующий его входу с максимальным номером (IRQ7 для перво­го контроллера и IRQ 15 для второго). Обычно адаптеры строят так, что сигнал за­проса сбрасывается при обращении программы обслуживания прерывания к со­ответствующим регистрам адаптера.

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

На современных системных платах функции контроллеров прерываний возла­гаются на чипсет, который может иметь и более гибкие возможности управле­ния, чем пара контроллеров 8259А. В операционном режиме всегда сохраняется программная совместимость с 8259А. Процедура инициализации контроллеров может и отличаться от традиционной, но ею занимается тест POST, который «знает» особенности системной платы. В симметричных мультипроцессорных системах аппаратные прерывания работают сложнее, поскольку их могут обслуживать различные процессоры. Для реализаций системы прерываний процессоры Pentium и выше имеют встроенный контроллер прерываний APIC (Advanced Programmable

462       Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Interruption Controller). Внутренние контроллеры процессоров связаны между собой по шине APIC, к которой подключена и «ответная часть» чипсета, преобра­зующая запросы аппаратных прерываний в сигналы протокола APIC. В операци­онном режиме такая связка также совместима с 8259 А.


Аппаратные средства измерения времени


В IBM PC/AT имеются аппаратные средства для измерения времени. Трехканалъ-ный счетчик-таймер, программно совместимый с 18254 (в XT — 8253), выполняет следующие функции:

¦ канал 0: — генерация аппаратных прерываний (IRQO) каждые 54,936 мс (часто­та 18,206 Гц), вызывающих инкремент системного таймера (счетчика в ячейке 40:006Е BIOS Data Area);

¦     канал 1 — генерация запросов на регенерацию памяти;

¦     канал 2 — генерация звуковых сигналов или измерение времени.

Внутренние счетчики микросхемы имеют разрядность 16 бит, но общение с ними возможно только 8-битными операциями. При этом можно задавать значение толь­ко младшего байта счетчика (LSB), только старшего (MSB) или обоих (LSB/MSB), причем сначала передается младший, а потом старший байт. Программирование микросхемы осуществляется записью байт в управляющий регистр по отдельно­сти для каждого канала. Назначение регистров счетчиков-таймеров приведено в табл. 12.5. Входная частота для всех каналов 1,19318 МГц. Штатно все каналы работают в режиме генерации импульсов. Счет для каналов 0 и 1 разрешен посто­янно. В канале 2 используется управляющий вход GATE, разрешающий счет, ко­торый управляется битом О (T2G, R/W) системного порта AT (061h). Выходной сигнал канала 2 может быть программно считан (Т20, бит 5 того же порта). При использовании канала 2 для измерения времени необходимо отключить форми­рование звука (обнулив бит SPK, R/W, бит 1 порта 061h).

Таблица 12,.5. Регистры счетчиков-таймеров Порт, R/W   Назначение

040 RW       Счетчик 0 — системные часы. Режим 011, LSB/MSB, Binary, константа счетчика

равна 0 (соответствует коэффициенту деления 65 536)

041 RW       Счетчик 1 — регенерация памяти. Режим 010, LSB, Binary, константа счетчика

равна 12h (18)

042 RW       Счетчик 2 — генератор звука, измерение времени. Вход GATE от бита 0 порта

В 8255 (061). Режим 011, LSB/MSB, Binary, значение счетчика определяет высоту тона

12.6. Аппаратные средства измерения времени____________________________ 477


Порт, R/W   Назначение_____________________________________________________________

043 W         Управляющий регистр. Биты 7,6 — выбор счетчика 0,1,2. Биты 5,4 — режим

, обращения: 00 — защелка текущего значения; 01 — LSB — только младший байт; 10 — MSB — только старший байт; 11 — LSB/MSB — сначала младший, затем старший байты. Биты 3-1 — режим счетчика: 000 — прерывание по счетчику; 001 — ждущий мультивибратор (одновибратор, у 8254 несколько отличается от 8253); х10 — генератор коротких импульсов заданной частоты; х11 — генератор меандра; 100 — счетчик событий с разрешением; 101 —счетчиксобытий с перезапуском. Бит 0 —0=Bin (двоичный счет), 1 =BCD — (двоично-десятичный счет)

Часы-колендаръ CMOS RTC являются частью комбинированной микросхемы МС146818 с батарейным питанием, используемой в IBM PC/AT для хранения ряда аппаратных настроек. Часы синхронизируются от собственного генератора (32,768 кГц), они содержат:

¦      часы-календарь (год, месяц, число, час, минута, секунда);

¦      будильник, подающий сигнал в назначенный час, минуту и секунду;

¦      генератор меандра, позволяющий формировать запросы прерываний с задан­

ной частотой (как правило, 1024 Гц).

CMOS RTC является источником аппаратных прерываний (IRQ8). Прерывания могут возникать от будильника, генератора меандра и после смены времени в ча­сах. Отдельные источники прерывания идентифицируются чтением ячейки ОСЬ и разрешаются записью в ячейку OBh.

Доступ к ячейкам CMOS RTC осуществляется через порты ввода-вывода 070h (индекс ячейки) и 071h (данные). Заметим, что бит 7 порта 70h используется и для блокировки NMI (см. п. 12.4), так что диапазон адресов памяти CMOS ограничен пределами 0-7Fh. Поскольку эта память имеет быстродействие порядка единиц микросекунд, между командами записи адреса и чтения-записи данных необхо­дима программная задержка. Во время изменения состояния часов данные, счи­тываемые из ячеек 0-9, могут оказаться некорректными.


Признаком этой ситуа­ ции является единичное значение бита 7 ячейки OAh. Для определения момента окончания смены состояния часов можно пользоваться и разрешением соответ­ствующего источника прерывания. Назначение ячеек CMOS RTC, относящихся к таймерной части, приведено в табл. 12.6 (полное определение ячеек см. в [1]).

Таблица 12.6. Назначение ячеек таймерной части CMOS RTC Индекс        Назначение

00h-09h, 32h   Ячейки РТС в BCD-формате: 00 — секунды; 01 — секунды будильника;

(37 в PS/2)      02 — минуты; 03 — минуты будильника; 04 — часы; 05 — часы будильника; 06 — день недели; 07 — день месяца; 08 — месяц; 09 — год (2 младшие цифры); 32h — век-1 (2 старшие цифры года); 37h — век-1 (2 старшие цифры года) в PS/2

продолжение А

478______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Таблица 12.6 (продолжение) Индекс         Назначение

OAh                   RTC Status Register А (регистр статуса А): бит 7 — обновление времени

(О — готов к чтению); биты [6:4] — делитель частоты (для кварца на 32,768 кГц — 010); биты [3:0] — 0110 — выходная частота меандра 1024 Гц

OBh                    PTC Status Register В (регистр статуса В): бит 7 — остановка часов

(О — нормальный ход); бит 6 — разрешение периодических прерываний (О — запрещено); бит 5 — разрешение прерывания от будильника (О — запрещено); бит 4 — разрешение прерывания по окончании смены времени (0 — запрещено); бит 3 (см. также регистр OAh) — разрешение выходного меандра (0 — запрещено); бит 2 — формат BCD/BIN (0 — BCD); бит 1 — 12/24-часовой режим (1 — 24-часовой); бит 0 — зимнее/летнее время (О — переключение запрещено)

OCh                    RTC Status Register С (регистр статуса С): чтение флагов идентификаторов

прерывания: бит 7 — IRQF (общий запрос прерывания); бит 6 — PF (периодические прерывания); бит 5 — AF (прерывание от будильника); бит 4 — UF (прерывание по окончании смены времени); биты [3:0] — зарезервированы

ODh                   RTC Status Register D (регистр статуса D): бит 7 — питание (1 — норма,



0 — разрядбатареи); биты [6:0] —зарезервированы

Аппаратные таймеры имеют поддержку функциями BIOS (подробнее см. [1,8,9]). Сервисы BIOS Int I Ah позволяют считывать и модифицировать значения систем­ного таймера (ячейки 40:006Eh в BIOS Data Area ), а также даты, времени и бу­дильника CMOS RTC.

Функции BIOS Int 15 h позволяют с помощью CMOS RTC вводить задержку или запускать таймер установки флага (через заданное время установить бит 7 ука­занной ячейки памяти). Время задается в микросекундах, но минимальная вы­держка зависит от производительности ПК (достижимы единицы миллисекунд), максимальная выдержка — около 70 часов.

Начиная с процессоров Pentium, появилась возможность измерения времени с точ­ностью до такта ядра процессора. Для этого процессоры имеют внутренний 64-битный счетчик TSC (Time Stamp Counter), обнуляющийся по аппаратному сбросу (сигналом RESET*). Разрядность позволяет считать без переполнения в течение не­скольких столетий. Для доступа к счетчику имеется специальная инструкция RDTSC, правда, установкой флага TSD в управляющем регистре CR4 (процессора) ОС мо­жет сделать ее привилегированной (доступной только на нулевом уровне приви­легий). В этом случае приложение, исполняемое на уровне 3, может аварийно за­вершаться по отказу исполнения инструкции. ОС может и позволить обращение к этому регистру, но «подсовывая» программе угодное ей значение времени. За­метим, что из-за внутреннего умножения частоты в процессоре результат чтения счетчика может отставать от реального времени на число, достигающее коэффи­циента умножения частоты. Правда, такая точность никому и не нужна (она поте­ряется в измеряющих программах).

12.7. Способы запуска программ_____________________________________ 479


Аппаратный интерфейс


Все сигналы интерфейса НГМД являются логическими с уровнями ТТЛ, актив­ный уровень — низкий. Формирователи выходных сигналов накопителя имеют выход типа «открытый коллектор». Интерфейс подразумевает наличие термина­торов — нагрузочных резисторов — для каждой сигнальной линии устройства. Теоретически их предполагалось включать только на последнем дисководе в шлей­фе, практически же их никогда и не отключают. Современные трехдюймовые на­копители используют «распределенный терминатор» — резисторы с относитель­но высоким сопротивлением (1-1,5 кОм), постоянно соединяющие входные линии интерфейса с шиной +5 В. Низкие частоты интерфейсных сигналов позво­ляют не задумываться о точности согласования импеданса шлейфа и сопротивле­ния терминатора. Однако если на шлейфе стоят только старые 5"-накопители со снятыми терминаторами, они могут отказаться надежно работать (выходные линии с открытым коллектором останутся без нагрузки).

Логически интерфейс довольно прост. Для того чтобы заставить накопитель ра­ботать, его нужно выбрать сигналом Drive Sel и запустить мотор шпинделя сигна­лом Motor On. Для выборки накопитель имеет четыре сигнала DSO...DS3, но отзы­вается только на один из них, определенный установкой джамперов. Выбранный накопитель воспринимает управляющие сигналы от контроллера и передает кон­троллеру свои выходные сигналы. О том, что накопитель выбран, свидетельству­ет светодиодный индикатор на его лицевой панели.

Для перемещения головок на один шаг контроллер должен подать импульс Step; направление перемещения определяется уровнем сигнала Direction: при низком уровне (сигнал активен) перемещение происходит в сторону центра диска (номер трека увеличивается). Нулевой трек контроллер находит, перемещая головки от центра до появления сигнала Track 00. Выбор номера головки производится сиг­налом Side 1. Начало трека накопитель отмечает импульсом Index, который выра­батывается при прохождении индексного отверстия вращающейся дискеты мимо


354         ____________________________ Глава 9. Интерфейсы устройств хранения

датчика. Считываемые данные в закодированном (MFM) виде (но усиленные и сформированные в ТТЛ-сигнал) поступают от накопителя по линии Read Data. Для включения режима записи служит сигнал Write Gate, закодированные данные в цифровом виде поступают от контроллера по линии Write Data. Если установле­на дискета, защищенная от записи, накопитель сообщит об этом сигналом Write Protect. Для снижения тока записи, которое требуется при работе накопителей HD с дискетами DD и QD, предназначен сигнал Reduce Write, его иное название — Low Current или FDHDIN. Для переключения головок на «вертикальную запись» (для дискет 2,88 Мбайт) служит сигнал FDEDIN. Оба эти сигнала вырабатываются контрол­лером, но для самого дисковода они дублируются сигналами от датчиков типа диске­ты (сигнал FDEDIN необязателен, дисковод сам переключится по сигналу отдатчика). Некоторые модели дисководов позволяют изменить описанный способ работы датчиков типа дискеты, принятый для PC-совместимых ПК, — они могут быть отклю­чены или выполнять информирование контроллера. Однако практически все кбн-троллеры сами управляют линиями интерфейса, соответствующими сигналам от этих датчиков. В этом управлении учитывается тип дисковода, описанный в CMOS Setup, и заказанный формат дискеты. Сигнал Reduce Write (низкий уровень) форми­руется контроллером при любом обращении к дисководу, описанному в CMOS как HD (High Density — высокая плотность, емкость 1,2 или 1,44 Мбайт), для работы с дискетами DD или QD (360 или 720 Кбайт). В некоторых контроллерах этот сиг­нал формировался, только когда контроллер настроен на скорость 300 Кбит/с (ди­скета 360/720 Кбайт в дисководе на 1,2 Мбайт). Такой контроллер может надежно форматировать и записывать дискеты 720 Кбайт в приводе на 1,44 Мбайт только при наличии правильно сконфигурированного датчика HD, иначе он все 3,5" ди­скеты будет записывать с высоким током записи, недопустимым для дискет QD.



Накопители HD при смене дискеты устанавливают сигнал Disk Changed, который сбрасывается после обращения к этому накопителю. Этот сигнал заслуживает особого внимания. Он имеется только у дисководов HD и ED (Extra High Density, малораспространенные дисководы на 2,88 Мбайт), причем способ использования этого контакта может определяться джамперами дисковода. В PC соответству­ющий джампер устанавливается в положение DC (Disk Change). Альтернативное использование этой линии — сигнализация готовности устройства, что может обозначаться как RY, RDY или SR, — для PC непригодно.

Заметим, что в интерфейсе нет никаких сигналов, прямо информирующих контрол­лер о готовности — наличии установленной дискеты. Контроллер может определить готовность, лишь выбрав накопитель и запустив мотор. Тогда отсутствие импуль­сов Index будет означать неготовность — нет дискеты или она не зафиксирована на шпинделе, или же не подключен дисковод (интерфейс или питание). Нали­чие дисковода контроллер может определить с помощью команды рекалибровки (см. ниже) — при ее выполнении дисковод должен подать сигнал TrackOO. Все НГМД, применяемые в PC, независимо от типа и размера имеют одинаковый интерфейс и унифицированные 34-контактные разъемы двух типов: с печатными двусторонними ламелями у устройств 5" и двухрядными штырьковыми контак­тами у устройств 3,5". Используемый в PC кабель-шлейф имеет перевернутый фрагмент из 7 проводов с номерами 10-16 (рис. 9.1). Этот поворот позволяет под­ключать к контроллеру одним шлейфом до двух НГМД, причем адрес накопителя.

9.1. Интерфейс НГМД

355

определяется его положением на шлейфе: для привода А: фрагмент перевернут, для В: — нет. Универсальный шлейф с пятью разъемами, изображенный на рисун­ке, позволяет подключать пару любых дисководов, которые должны располагать­ся в разных зонах шлейфа. Некоторые разъемы могут и отсутствовать, что сковы­вает свободу конфигурирования дисководов. В табл. 9.1 описан интерфейсный кабель с сигналами, приходящими на разные накопители.


Направление сигналов (I/O — ввод-вывод) указано относительно контроллера.



Рис. 9.1. Кабель интерфейса НГМД

Таблица 9.1. Кабель интерфейса НГМД

Контроллер

ДисководВ:

Дисковода:

Контакт1

Сигнал

I/O

Контакт1

Сигнал


Контакт1

Сигнал

2

FDHDIN (Reduce Write)

О

2

Low Current

2

Low Current

4

Резерв

-

4

Резерв

4

Резерв

6

FDEDEIN

-

6

FDEDIN (DS3)

6

FDEDIN (DS3)

8

Index

I

8

Index

8

Index

10

Motor On A

о

10

DSO

16

Motor2

12

Drive Sel 1

о

12

DS11

14

DS2

14

Drive Sel 0

о

14

DS2

12

DS11

16

Motor On В

о

16

Motor2

10

DSO

18

Direction

о

18

Direction

18

Direction

20

Step

о

20

Step

20

Step

22

Write Data

о

22

WData

22

Wdata

24

Write Gate

о

24

WGate

24

Wgate

26

Track 00

I

26

ТВ 00

26

TROO

28

Write Protect

1

28

WProt

28

WProt

30

Read Data

1

30

RData

30

Rdata

32

Side l

о

32

Sidel

32

Side l

343

Disk Changed

1

343

DC

34Э

DC

1   Нечетные контакты 1 -33 — земля. Для дисководов 5" ключ между контактами 4-5 и 6-7.

2   Пара сигналов, обеспечивающая выборку FDD (Motor On А и Drive Sel 0 для дисковода А: и Motor On

В и Drive Sel 1 для дисковода В:). 3 Контакт 34 в XT не используется.

356______________________________________ Глава 9. Интерфейсы устройств хранения

Контроллер НГМД и интерфейсный кабель, принятый в PC, позволяют адресо­ваться к одному из двух накопителей и включать мотор сигналами Drive Sel 0 и Motor On А для накопителя А: и Drive Sel 1 и Motor On В для накопителя В:. При этом на обоих накопителях джамперы устанавливаются так, что они отзываются на сигнал DS 1 (контакт 12 разъема). Обычно джамперы на дисководе обозначаются DSO / DS1 / DS2 / DS3, и следует установить джампер DS1.Если джамперы обо­значаются как DS1 / DS2 / DS3 / DS4, что встречается нечасто, то следует устано­вить DS2. Принятая система выборки позволяет все дисководы конфигурировать однотипно, а адрес задавать положением на шлейфе. В некоторых специфических клонах PC применяют иную систему выборки накопителей и «прямой» кабель-шлейф. При этом используется выборка устройства сигналом DS0, ко переключение выборки на эту линию некоторыми накопителями не поддерживается, в результа­те замена накопителей в этих «фирменных» машинах может стать хлопотным де­лом, особенно при отсутствии технической документации.


Асинхронная память — FPM, EDO и BEDO DRAM


Временная диаграмма, приведенная на рис. 7.1, может быть модифицирована для случая последовательного обращения к ячейкам, принадлежащим к одной строке матрицы. В этом случае адрес строки выставляется на шине только один раз и сигнал RAS# удерживается на низком уровне на время всех последующих циклов обращений, которые могут быть как циклами записи, так и чтения. Такой режим обращения называется режимом быстрого страничного обмена FPM (Fast Page Mode), или просто режимом страничного обмена (Page Mode), его временная диа­грамма приведена на рис. 7.2. Понятие «страница» на самом деле относится к стро­ке (row), а состояние с низким уровнем сигнала RAS# называется «открытой стра­ницей». Преимущество данного режима заключается в экономии времени за счет исключения фазы выдачи адреса строки из циклов, следующих за первым, что позволяет повысить производительность памяти. Режим FPM поддерживает и самая обычная асинхронная память, называемая стандартной (Std).

Рис. 7.2. Страничный режим считывания стандартной памяти DRAM (FPM)

7.1. Динамическая память

239

Память EDO DRAM (Extended или Enhanced Data Out) содержит регистр-защел­ку (data latch) выходных данных, что обеспечивает некоторую конвейеризацию работы для повышения производительности при чтении. Регистр «прозрачен» при низком уровне сигнала CAS#, а по его подъему фиксирует текущее значение вы­ходных данных до следующего его спада. Перевести выходные буферы в высоко-импедансное состояние можно либо подъемом сигнала ОЕ# (Output Enable), либо одновременным подъемом сигналов CAS# и RAS#, либо импульсом WE#, который при высоком уровне CAS# не вызывает записи (в PC управление по входу ОЕ# практически не используют).

Временная диаграмма работы с EDO-памятью в режиме страничного обмена при­ведена на рис. 7.3; этот режим иногда называют гиперстраничным режимом обме­на НРМ (Hyper Page mode). Его отличие от стандартного заключается в подъеме импульса CAS# до появления действительных данных на выходе микросхемы.
Считывание выходных данных может производиться внешними схемами вплоть до спада следующего импульса CAS#, что позволяет экономить время за счет со­кращения длительности импульса CAS#. Время цикла внутри страницы уменьша­ется, повышая производительность в страничном режиме на 40 %.



Рис. 7.3. Страничный режим считывания EDO DRAM (HPM)

Установка EDO DRAM вместо стандартной памяти в неприспособленные для этого системы может вызвать конфликты выходных буферов устройств, разделяющих с памятью общую шину данных. Скорее всего, этот конфликт возникнет с сосед­ним банком памяти при чередовании банков. Для отключения выходных буферов EDO-памяти внутри страничного цикла обычно используют сигнал WE#, не вызы­вающий записи во время неактивной фазы CAS# (рис. 7.4, кривая а). По окончании цикла буферы отключаются лишь по снятию сигнала RAS# (рис. 7.4, кривая б).



Рис. 7.4. Управление выходным буфером EDO DRAM

240

Глава 7. Интерфейсы электронной памяти

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

В памяти BEDO DRAM (Burst EDO) кроме регистра-защелки выходных дан­ных, стробируемого теперь по фронту импульса CAS#, содержится еще и внут­ренний счетчик адреса колонок для пакетного цикла. Это позволяет выставлять адрес колонки только в начале пакетного цикла (рис. 7.5), а во 2-й, 3-й и 4-й пе­редачах импульсы CAS# только запрашивают очередные данные. В результате удлинения конвейера выходные данные как бы отстают на один такт сигнала CAS#, зато следующие данные появляются без тактов ожидания процессора, чем обеспечивается лучший цикл чтения. Задержка появления первых данных па­кетного цикла окупается повышенной частотой приема последующих. BEDO-память применяется в модулях SIMM-72 и DIMM, но поддерживается далеко не всеми чипсетами.



Рис. 7.5. Страничный режим считывания BEDO DRAM

Вышеперечисленные типы памяти являются асинхронными по отношению к такти­рованию системной шины компьютера. Это означает, что все процессы иниции­руются только импульсами RAS# и CAS#, а завершаются через какой-то опреде­ленный (для данных микросхем) интервал. На время этих процессоров шина памяти оказывается занятой, причем в основном ожиданием данных.


Асинхронный режим передачи


Асинхронный режим передачи является байт-ориентированным (символьно-ори­ентированным): минимальная пересылаемая единица информации — один байт (один символ). Формат посылки байта иллюстрирует рис. 2.12. Передача каждо­го байта начинается со старт-бита, сигнализирующего приемнику о начале посыл­ки, за которым следуют биты данных и, возможно, бит паритета (четности). Завершает посылку стоп-бит, гарантирующий паузу между посылками. Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (логический 0), обеспечивает простой меха­низм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена. Внутренний генера­тор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик генерирует внут­ренние стробы, по которым приемник фиксирует последующие принимаемые биты. В идеале стробы располагаются в середине битовых интервалов, что позво­ляет принимать данные и при незначительном рассогласовании скоростей при­емника и передатчика. Очевидно, что при передаче 8 бит данных, одного конт­рольного и одного стоп-бита предельно допустимое рассогласование скоростей, при котором данные будут распознаны верно, не может превышать 5 %. С учетом фазовых искажений и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение частот. Чем меньше коэффициент деле­ния опорной частоты внутреннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интервала, и требова­ния к согласованности частот становятся более строгие. Чем выше частота пере­дачи, тем больше влияние искажений фронтов на фазу принимаемого сигнала.

60

Глава 2. Последовательный интерфейс — СОМ-порт

Взаимодействие этих факторов приводит к повышению требований к согласован­ности частот приемника и передатчика с ростом частоты обмена.




Рис. 2.12. Формат асинхронной передачи RS-232C

Формат асинхронной посылки позволяет выявлять возможные ошибки передачи.

¦     Если принят перепад, сигнализирующий о начале посылки, а по стробу старт-

бита зафиксирован уровень логической единицы, старт-бит считается ложным

и приемник снова переходит в состояние ожидания. Об этой ошибке прием­

ник может не сообщать.

¦     Если во время, отведенное под стоп-бит, обнаружен уровень логического нуля,

фиксируется ошибка стоп-бита.

¦     Если применяется контроль четности, то после посылки бит данных передает­

ся контрольный бит. Этот бит дополняет количество единичных бит данных

до четного или нечетного в зависимости от принятого соглашения. Прием бай­

та с неверным значением контрольного бита приводит к фиксации ошибки.

¦     Контроль формата позволяет обнаруживать обрыв линии: как правило, при

обрыве приемник «видит» логический нуль, который сначала трактуется как

старт-бит и нулевые биты данных, но потом срабатывает контроль стоп-бита.

Для асинхронного режима принят ряд стандартных скоростей обмена: 50,75,110, 150, 300,600,1200,2400,4800,9600,19200,38400, 57600 и 115200 бит/с. Иногда вместо единицы измерения «бит/с» используют «бод» (baud), но при рассмотре­нии двоичных передаваемых сигналов это некорректно. В бодах принято измерять частоту изменения состояния линии, а при недвоичном способе кодирования (ши­роко применяемом в современных модемах) в канале связи скорости передачи бит (бит/с) и изменения сигнала (бод) могут отличаться в несколько раз.

Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Количество стоп-бит может быть 1, 1,5 или 2 («полтора бита» означает только длительность стопового интервала).


Цифровые интерфейсы


S/PDIF (Sony/Philips Digital Interface Format) — цифровой последовательный интерфейс (и форматы данных) для передачи аудиосигналов между блоками быто­вой цифровой аудиоаппаратуры (DAT, CD-ROM и т. п.). Этот интерфейс является упрощенным вариантом студийного интерфейса AES/EBU (Audio Engineers Society/European Broadcast Union). Интерфейс AES/EBU использует симметрич­ный двухпроводный экранированный кабель с импедансом 110 Ом, разъемы XLR, уровень сигнала — 3-10 В, длина кабеля — до 12 м.

Интерфейс S/PDIF использует коаксиальный кабель 15 Ом, разъемы RCA или BNC, уровень сигнала — 0,5-1 В, длина кабеля — до 2 м. В звуковых картах внут­ренние разъемы S/PDIF проще — это просто пара штырьков (как у джамперов) на плате с соответствующей ответной частью на кабеле. Такие же упрощенные разъемы применяются и на новых приводах CD-ROM, имеющих выход S/PDIF. «Штатная» схема передатчика S/PDIF содержит разделительный импульсный трансформатор (1:1), благодаря которому соединяемые устройства гальваниче­ски развязываются. Встречаются и упрощенные варианты, без разделительного трансформатора. При стыковке устройств с нестандартными интерфейсами воз­можны проблемы, связанные с несоответствием уровней сигналов. При этом сиг­нал может быть неустойчивым (звук будет прерываться) или не приниматься со­всем. Эти проблемы могут быть решены подручными средствами — установкой дополнительных формирователей сигнала.

Кроме электрической версии существует и оптическая версии интерфейса S/PDIF — Toslink, стандарт EIAJ СР-1201 — с инфракрасными излучателями (660 нм). При­менение оптики позволяет обеспечить полную гальваническую развязку устройств, что необходимо для снижения уровня наводок. Для пластикового волокна (POF) длина кабеля не более 1,5 м, для стеклянного волокна — 3 м. В Сети предлагается ряд схем преобразования интерфейсов, одна из которых приведена на рис. 8.16. Здесь первый инвертор посредством обратной связи выведен на линейный уча­сток передаточной характеристики, благодаря чему малый входной сигнал вызы-


8.5. Интерфейсы аудиоустройств

345

вает его переключение. В схеме предлагается микросхема HCT74U04 (6 инверто­ров); вместо светодиода можно использовать и фирменный трансивер Toslink, его следует подключать без балластного резистора (220 Ом) прямо к выходу инвер­тора (резистор находится в трансивере).



Рис. 8.16. Схема преобразователя электрического интерфейса S/PDIF в оптический (Toslink)

По интерфейсу S/PDIF информация передается в последовательном коде покад-рово, с обеспечением синхронизации и контролем достоверности передачи (кода­ми Рида-Соломона). В кадре имеется признак формата данных — РСМ или не РСМ, что позволяет по данному интерфейсу передавать и упакованные цифро­вые данные (например, MPEG для АС-3). Имеется также бит защиты от копиро­вания, признак предискажений и некоторые другие служебные данные. В режиме РСМ выборки каждого канала могут иметь разрядность 16, 20 или 24 бит, частота выборок определяет частоту цифрового сигнала. Приемник S/PDIF сам опреде­ляет частоту выборок по принимаемому сигналу, наиболее употребимые часто­ты - 32, 44,1 и 48 кГц.

Кроме этих интерфейсов в студийной аппаратуре применяют интерфейсы ADAT и TDIF, которые имеются только на дорогих профессиональных звуковых картах.

Для обмена данными с приводами DVD применяется цифровой последователь­ный интерфейс I2S.


Цифровые интерфейсы P&D, DVI и DFP


Повсеместный переход на цифровые технологии коснулся и видеомониторов. Традиционный аналоговый канал передачи видеосигналов стал узким местом видеосистемы. По пути от ЦАП к входам видеоусилителей монитора сигнал про­ходит через пару разъемов и кабель. Несогласованность элементов, вызывающая отражения сигналов («звон») и неравномерности частотных характеристик, при­водит к искажению формы сигналов цветов, что становится особо заметным на режимах с высоким разрешением и высокой частотой регенерации. Повысить ка­чество изображения можно, перенеся устройства ЦАП в монитор, прямо на плату видеоусилителей, и подав на них цифровые сигналы базисных цветов. Плоские дисплеи (матрицы TFT) строятся на основе цифровых технологий, и им прихо­дится входные аналоговые сигналы преобразовывать обратно в цифровую фор­му. Все эти причины привели к необходимости разработки цифрового интерфей­са для передачи информации в монитор. От этого интерфейса требуется огромная пропускная способность: к примеру, при частоте пикселов 150 МГц и кодирова-

8.4. Интерфейсы графических адаптеров

335

нии каждого пиксела 24-битным числом (True Color) требуется пропускная спо­собность 3,6 Гбит/с (450 Мбайт/с).

Для подключения плоских дисплеев был разработан специальный интерфейс Panel-Link, в 1996 г. его спецификация (FPDI-2) была утверждена VESA. Схема интерфей­са приведена на рис. 8.11. Цифровой интерфейс имеет 3 канала передачи данных (Data[0:3J) и канал синхронизации Clock. В каналах используется дифференци­альная передача сигналов с минимизацией переходов — так называемый прото­кол T.M.D.S. (Transition Minimazed Differetial Signaling). Каждый канал данных образован кодером, расположенным на видеокарте, линией связи и декодером, расположенным в дисплее. На вход кодера каждого канала поступают 8 бит кода яркости базисного цвета текущего пиксела. Кроме того, на вход кодера канала О поступают сигналы строчной и кадровой синхронизации, а на остальные каналы — дополнительные управляющие сигналы СТЦО:3], по паре на каждый канал.
Кодеры преобразуют данные в последовательный код, для минимизации переклю­чений 8 входных бит кодируются 10-битным символом, передаваемым по каналу последовательно. В зависимости от входного сигнала разрешения данных DE кодеры передают либо данные цветовых каналов, либо синхросигналы и управля­ющие биты. На приемной стороне сигналы декодируются и восстанавливаются в том же виде, в котором они поступали на входы кодеров. Частота пикселов может достигать 165 МГц, интерфейс обеспечивает максимальное разрешение 1280x1024 (24 бита на пиксел).



Рис. 8.11. Схема цифрового интерфейса

Физические линии реализованы экранированными витыми парами. Передатчи­ки являются дифференциальными коммутируемыми источниками тока (12 мА), входы дифференциальных приемников подтянуты нагрузочными резисторами 50 Ом к уровню питания +3,3 В, амплитуда сигнала 500 мВ. Выбранный метод кодирования пригоден и для передачи по оптоволоконному кабелю (сигнал не

336

Глава 8. Специализированные интерфейсы периферийных устройств

имеет постоянной составляющей), но пока спецификация определяет только элек­трический интерфейс.

Вышеописанный протокол используется в интерфейсах P&D, DVI и DFP, из ко­торых наибольшее распространение получили DVI (как самый мощный и универ­сальный) и DFP (как самый дешевый специализированный). Разъемы этих ин­терфейсов можно встретить на многих графических адаптерах с двумя выходами. Почти не прижившийся дорогой P&D можно рассматривать как комбинацию усе­ченного EVC с усеченным DVI. Благодаря использованию стандартизованных сигналов (T.M.D.S.) при несовпадении разъема монитора и графической карты возможно применение пассивных переходников-адаптеров.

В интерфейсе VP&D (VESA Plug-and-Display, 1997 г.), он же P&D, используется такой же разъем, как в EVC (см. рис. 8.10). Здесь нет цепей аналоговых аудио­сигналов и видеовхода, а контакты, требовавшиеся для них, теперь назначены на цифровые каналы передачи сигналов. Интерфейс существует в двух вариантах: комбинированном и чисто цифровом.


На комбинированный разъем P&D-A/D (табл. 8.14) выведены и аналоговые сигналы (RGB и синхронизация), что обеспечи­ вает возможность подключения как цифрового, так и традиционного аналогового монитора. В чисто цифровом варианте P&D контактов аналоговых сигналов нет; монитор с аналоговым входом (с разъемом EVC или P&D-A) с ним работать не может (конструкция разъема и не позволит его подключить). Точно так же не удастся подключить и монитор с чисто цифровым входом P&D к выходу P&D-A (EVC).

Таблица 8.14. Разъем P&D-A/D

Контакт

Цепь

Контакт

Цепь

Контакт

Цепь

1

Data 2+

11

Data1 +

21

Data 0-

2

Data 2-

12

Datal-

22

Data 0+

3

Экран2

13

Экран 1

23

Экран О

4

Sync Rtn

14

Clock+

24

Stereo Sync TTL

5

H.SyncTTL

15

Clock-

25

DDC Return

6

'V.SyncTTL

16

USB Data+

26

DDC Data

7

Экран Clock

17

USB Data-

27

DDC Clock

8

CHRG+

18

13943KpaH/CHRG-

28

+5V

9

1394TPA-

19

1394VG

29

1394TPB+.CLOCK+

10

1394TPA+

20

1394VP

30

1394TPB-.CLOCK-

С1

R (аналог.)

C3

PX Clock

С2

G (аналог.)

C5

GND (для R, G, B)

C4

В (аналог.)

Интерфейс плоских дисплеев DFP (Digital Flat Panel, 1999 г., www.dfp-group.org) использует дешевый разъем типа MDR (mini-D ribbon) с ленточными контакта­ми (рис. 8.12), на который выведены лишь 3 пары сигналов для цифровых кана­лов данных, пара для цифрового канала синхронизации, питание (+5В), канал DDC2 (табл. 8.15) и сигнал обнаружения «горячего» подключения (HPD). Ча-

8.4. Интерфейсы графических адаптеров

337

стота пикселов может достигать 85 МГц (для плоских панелей не требуется слиш­ком высокая частота развертки). Интерфейс пригоден (пока?) для режимов вплоть до 1280x1024 (24 бита на пиксел).



 

Рис. 8.12. Разъем плоского дисплея DFP

Таблица 8.15. Разъем DFP

Контакт Цепь      Контакт   Цепь



1

ТХ1 +

11

ТХ2+

2

ТХ1-

12

ТХ2-

3

SHLD1

13

SHLD2

4

SHLDC

14

SHLDO

5

ТХС+

15

ТХО+

6

ТХС-

16

ТХО-

7

GND

17

NC

8

+5V

18

HPD

9

NC

19

DDC_DAT

10

NC

20

DDC CLK

ИнтерфейсD^( Digital Visual Interface) разработан группой DDWG (Digital Display Working Group — рабочая группа по цифровым дисплеям, www.ddwg.org) в 1999 г. и предназначен для подключения дисплеев любого типа (ЭЛТ и матричных) к ком­пьютеру, причем возможны два варианта коннекторов и интерфейса: чисто циф­ровой и цифровой с традиционными аналоговыми сигналами. Во втором случае к разъему DVI через пассивный переходник может быть подключен монитор с обыч­ным аналоговым VGA-интерфейсом.

Минимальный вариант цифрового интерфейса содержит канал синхронизации и три канала данных (DataO-2). В таком варианте интерфейс почти ничем не от­личается от аналогового — меняется только местоположение ЦАП и применяется цифровой способ доставки данных. При этом гамма-коррекция возлагается на дисплей. Однако интерфейс предусматривает способ повышения пропускной способности за счет более эффективного использования времени. Дело в том, что традиционные ЭЛТ-мониторы имеют довольно значительное время обратного хода луча по строке и кадру, в течение которого пикселы на экран, естественно, не выводятся, — в это время интерфейс простаивает. Для матричных дисплеев этих пауз не требуется, поэтому тот же объем информации о пикселах может пере­даваться за большее время — практически за весь период кадра. Следовательно,

338

Глава 8. Специализированные интерфейсы периферийных устройств

можно либо снижать тактовую частоту передачи пикселов (не меняя разрешения и частоты развертки), либо с той же (предельно достижимой) частотой передачи увеличить разрешение или (и) частоту развертки. Спецификация DVI предпола­гает, что возможность передачи данных в течение всего периода кадра может по­явиться и у цифровых дисплеев, построенных на обычных ЭЛТ, за счет внутрен­ней буферизации.


При наличии буферизации экрана в дисплее можно пойти и дальше — вместо непрерывной регенерации экрана, которой озабочены традици­онные видеоадаптеры, передавать данные только при изменениях изображения, но это пока лишь возможные перспективы. В полном варианте добавляются еще 3 цифровых канала (Data3-5), информационная нагрузка должна распределять­ся поровну между парами каналов. Таким образом, четные пикселы будут пере­даваться по каналам О (R), 1 (G) и 2 (В), а нечетные — соответственно по 3,4 и 5, и интерфейс позволит передавать пикселы с частотой до 330 МГц (165x2). Преду­сматривается и иное использование дополнительных каналов: когда 8 бит на коди­рование базисного цвета покажется недостаточным^), каналы 3,4 и 5 могут допол­нить (как младшие биты) данные каналов О, 1 и 2 (старшие).

Кроме сигналов T.M.D.S. в интерфейс DVI входят сигналы интерфейса VESA DDC2: DDC Data и DDC Clock, а также линия питания +5 В, по которой от ви­деокарты питаются цепи DDC, позволяя обмениваться конфигурационной ин­формацией даже с выключенным монитором. Конфигурационная информация позволяет системе определить возможности монитора и должным образом скон­фигурировать имеющиеся каналы данных, согласуя возможности и видеокарты, и дисплея. Имеется также сигнал HPD (Hot Plug Detect), с помощью которо­го система может следить за подключением/отключением дисплея. «Горячее» подключение обеспечивается также и механическими особенностями разъемов, поддерживающих требуемую последовательность соединения/рассоединения раз­ных групп контактов. Таким образом, дисплеи с DVI обеспечивают все необхо­димые функции для реализации принципов PnP. Интерфейс и дисплеи с DVI должны обеспечивать стандартные (VESA) графические режимы, начиная от 640x480/60 Гц (частота пикселов 22,175 МГц). Его предел - 2048x1536 пикселов (частота 330 МГц). Интерфейс поддерживает сигнализацию управления энерго­потреблением (DPMS).

Вид коннекторов DVI приведен на рис. 8.13, расположение сигнальных контак­тов дано в табл. 8.16.



С1  С2



СЗ   С4

а                                                                              б

Рис. 8.13. Коннекторы DVI (розетки): а — только цифровой, б — цифровой с аналоговым

8.4. Интерфейсы графических адаптеров

339

Таблица 8.16. Коннектор DVI

Контакт   Цепь

Контакт   Цепь

Контакт  Цепь

 

1

Data2-

9

Datal-

17

DataO-

2

Data2+

10

Data1 +

18

DataO+

3

Экран 2/4

11

Экран 1/3

19

Экран 0/5

4

Data4-

12

DataS-

20

DataS-

5

Data4+

13

Data3+

21

Data5+

6

DDC Clock

14

+5 В

22

Экран Clock

7

DDC Data

15

GND (для + 5 В, HSync и VSync)

23

Clock*

8

VSync(TTTI)

16

HPD

24

Clock-

С1

R (аналог.)

C3

в (аналог.)

С2

G (аналог.)

C5

GND (для R, G, B)

C4

HSync (ТТЛ)


CompactFlash


Карты CompactFlash (рис. 9.7), поддерживаемые ассоциацией CFA (Compact Flash association), широко используются в различных электронных приборах: циф­ровых фотокамерах, фотопринтерах, МРЗ-плейерах, цифровых диктофонах, персональных коммуникаторах и, конечно же, компьютерах — настольных, кар­манных, автомобильных. Карты имеют размер 42,8 х 36,4 х 3,3 мм (4 мм с учетом выступа) и 50-контактный разъем (розетка на карте, двухрядный штырьковый разъем с шагом 1,27 мм на слоте). Назначение контактов приведено в табл. 9.13. Через переходник с 50 на 68-контактный разъем карты могут устанавливаться в слот PC Card Type II или III, имеющийся практически во всех блокнотных ПК. Объем памяти выпускаемых в настоящее время карт — от 4 Мбайт до 1 Гбайт, на­пряжение питания — 5 или 3,3 В. Карты могут работать в одном из трех режимов: карт памяти (Mem), карт ввода-вывода PC Card (I/O), «чистого» режима IDE (ATA). В первых двух режимах карты работают с теми же интерфейсными сигна­лами, что и PC Card. В режиме IDE электрический интерфейс и система команд полностью совместимы со спецификацией АТА (см. п. 9.2.1), правда, обмен дан­ными возможен только в режиме РЮ. Режим IDE выбирается заземлением на сто­роне хоста сигнала ATA_SEL#. При этом из шины адреса используются только А[2:0] (остальные заземлены хостом); шина данных при обращениях к регистрам АТА имеет разрядность 8 бит, а при передаче данных — 16. Сигналы CSO# и CS1# ис­пользуются для выбора блока командных и управляющих регистров соответствен­но. Сигналы PDIAG#, DASP#, CSEL#, RESET* и IORDY соответствуют специфика­ции АТА. Сигналом CSEL# выбирается роль карты: при заземленном контакте — устройство 0 (master), при разомкнутом — устройство 1 (slave); можно восполь­зоваться и «кабельной выборкой». Сигналы REG# и WE# должны подключаться к шине питания (Vcc). Сигналы CD1# и CD2# являются индикаторами установки карты (их контакты замыкаются последними, на карте они заземлены). В табл. 9.14 описан чисто пассивный переходник, позволяющий подключить карту Compact Flash к обычному порту АТА (IDE), имеющемуся на любой современной систем­ной плате.




Рис. 9.7. Карты CompactFlash

9.3. Интерфейсы и конструктивы твердотельных носителей информации

397

Таблица 9.13. Назначение контактов карт CompactFlash

№    Mem

I/O

IDE

№     Mem

I/O

IDE

 

1

GND

GND

GND

26

CD1#

CD1#

CD1#

2

DOS

DOS

DOS

27

D11

D11

D11

3

D04

D04

D04

28

D12

D12

D12

4

DOS

DOS

DOS

29

D13

D13

D13

5

D06

D06

D06

30

D14

D14

D14

6

D07

D07

D07

31

D15

D15

D15

7

CE1#

CE1#

CSO#

32

CE2#

CE2#

CS1#

8

A10

A10

A10

33

VS1#

VS1#

VS1#

9

OE#

OE#

ATA_SEL#

34

IORD#

IORD#

IORD#

10

A09

A09

A09

35

IOWR#

IOWR#

IOWR#

11

A08

A08

A08

36

WE#

WE#

WE#

12

A07

A07

A07

37

RDY/BSY

IREQ

INTRQ

13.

VCC

VCC

VCC

38

VCC

VCC

VCC

14

A06

A06

A06

39

CSEL#

CSEL#

CSEL#

15

A05

A05

A05

40

VS2#

VS2#

VS2#

16

A04

A04

A04

41

RESET

RESET

RESET#

17

A03

A03

A03

42

WAIT*

WAIT#

IORDY

18

A02

A02

A02

43

INPACK*

INPACK*

INPACK#

19

A01

A01

A01

44

REG#

REG#

REG#

20

AGO

AOO

AOO

45

BVD2

SPKR#

DASP#

21

DOO

DOO    .

DOO

46

BVD1

STSCHG#

PDIAGtf

22

D01

D01

D01

47

D08

DOS

DOS

23

D02

D02

D02

48

D09

D09

D09

24

WP

IOIS16*

IOCS16*

49

D10

D10

D10

25

CD2#

CD2#

CD2#

50

GND

GND

GND

Таблица 9.14. Переходник CompactFlash Card — ATA

ATA, конт. №    Цепь

CFC, конт. №   CFC, конт. №   Цепь

ATA, конт. №

2

11

9

7

5

3

37

GND1

GND'

GND1

GND1

GND1

+5V2

GND1

GND

1

DOS

2

D04

3

DOS

4

D06

5

D07

6

CSO#

7

A10

8

ATA_SEL#

9

A09

10

A08

11

A07

12

VCC

13

A06

14

<


26 27 28 29 30 31 32 33 34 35 36 37 38 39
CD1# -
D11 10
D12 12
D13 14
D14 16
D15 18
CS1# 38
VS1# -
IORD# 25
IOWR# 23
WE# +5V2
INTRQ 31
VCC +5V2
CSEL# 283
продолжение &
398 Глава 9. Интерфейсы устройств хранения Таблица 9.14 (продолжение)
АТА, конт. №    Цепь         CFC, конт. №    CFC, конт. №   Цепь ATA, конт. №
 
GND1 А05 15 40 VS2# -
GND1 А04 16 41 RESET* 1
GND1 АОЗ 17 42 IORDY 27
36 А02 18 43 INPACK# -
33 А01 19 44 REG# +5V2
35 АОО 20 45 DASP# 39
17 DOO 21 46 PDIAG# 34
15 D01 22 47 D08 4
13 D02 23 48 D09 6
32 IOCS16# 24 49 D10 8
- CD2# 25 50 GND GND'
1   С шиной GND должны быть соединены контакты 2,19,22,24,26,30 и 40 разъема АТА, а также контакт разъема питания. 2   Питание +5V на переходник подается от дополнительного разъема. 3   Возможно подключение не к разъему АТА, а к шине GND через джампер: замкнут — ведущее устрой­ство, разомкнут — ведомое.

Динамическая память


Динамическая память — D&4M(Dynamic RAM) — получила свое название от прин­ципа действия ее запоминающих ячеек, которые выполнены в виде конденсато­ров, образованных элементами полупроводниковых микросхем. При отсутствии обращения к ячейке со временем за счет токов утечки конденсатор разряжается и информация теряется, поэтому такая память требует периодической подзаряд­ки конденсаторов (обращения к каждой ячейке) — память может работать только в динамическом режиме. Этим она принципиально отличается от статической па­мяти, реализуемой на триггерных ячейках и хранящей информацию без обраще­ний к ней сколь угодно долго (при включенном питании).

Запоминающие ячейки микросхем DRAM организованы в виде двумерной мат­рицы. Адреса строки и столбца передаются по мультиплексированной шине адре­са MA (Multiplexed Address) и стробируются по спаду импульсов RAS# (Row Access Strobe) и CAS# (Column Access Strobe). Состав сигналов микросхем динамической памяти приведен в табл. 7.1.

Таблица 7.1. Сигналы микросхем динамической памяти Сигнал      Назначение

RAS#        Row Access Strobe — строб выборки адреса строки. По спаду сигнала начинается любой цикл обращения; низкий уровень сохраняется на все время цикла. Перед началом следующего цикла сигнал должен находиться в неактивном состоянии (высокий уровень) не менее, чем время предварительного заряда RAS (TRP — RAS precharge time)

продолжение^

236________________________________ Глава 7. Интерфейсы электронной памяти

Таблица 7.1 (продолжение) Сигнал      Назначение

CAS#        Column Access Strobe — строб выборки адреса столбца. По спаду сигнала

начинается цикл записи или чтения; минимальная длительность (Тсдз) определяется спецификацией быстродействия памяти. Минимальная длительность неактивного состояния между циклами (высокий уровень) должна быть не менее, чем время предварительного заряда CAS (TCP — CAS precharge time)

MAi               Multiplexed Address — мультиплексированные линии адреса.
Во время спада

сигнала RAS# на этих линиях присутствует адрес строки, во время спада CAS# — адрес столбца. Адрес должен устанавливаться до спада соответствующего строба и удерживаться после него еще некоторое время. Микросхемы с объемом 4 М ячеек могут быть с симметричной организацией — 11 бит адреса строк и 11 бит адреса колонок или асимметричными — 12x10 бит соответственно

WE#         Write Enable — разрешение записи. Данные записываются в выбранную ячейку либо по спаду CAS# при низком уровне WE# (Early Write — ранняя запись, обычный вариант), либо по спаду WE# при низком уровне CAS# (Delayed Write — задержанная запись). Переход WE# в низкий уровень и обратно при высоком уровне CAS# записи не вызывает, а только переводит выходной буфер EDO DRAM в высокоимпедансное состояние

ОЕ#               Output Enable — разрешение открытия выходного буфера при операции чтения.

Высокий уровень сигнала в любой момент переводит выходной буфер в высокоимпедансное состояние

DB-ln        Data Bit Input — входные данные (только для микросхем с однобитной организацией) DB-Out      Data Bit Output — выходные данные (только для микросхем с однобитной

организацией). Выходные буферы стандартных микросхем открыты только при сочетании низкого уровня сигналов RAS#, CAS#, OE# и высокого уровня WE#; при невыполнении любого из этих условий буферы переходят в высокоимпедансное состояние. У микросхем EDO выходные буферы открыты и после подъема CAS#. Логика управления предусматривает возможность непосредственного объединения выходов нескольких микросхем

DQx              Data Bit — объединенные внутри микросхемы входные и выходные сигналы

данных (объединение экономит количество выводов для микросхем с многобитной организацией)

N.C.               No Connection — свободный вывод

Выбранной микросхемой памяти является та, на которую во время активности (низкого уровня) сигнала RAS# приходит сигнал CAS# (тоже низким уровнем). Тип обращения определяется сигналами WE# и CAS#. Временная диаграмма «классических» циклов записи и чтения приведена на рис. 7.1.


Как из нее видно, при чтении данные на выходе относительно начала цикла (сигнала RAS#) появят­ся не раньше, чем через интервал TraC, который и является временем доступа. Микросхемы DRAM имеют множество временных параметров, из которых выде­лим несколько важнейших, с которыми иногда приходится сталкиваться при на­стройке параметров циклов в CMOS Setup.

¦ Время доступа Т^с (RAS Access Time) — задержка появления действительных данных на выходе относительно спада импульса RAS (см. рисунок). Этот основ­ной параметр спецификации памяти, измеряемый в единицах или десятках наносекунд, обычно является последним элементом обозначения микросхем и модулей (ххх-7 и ххх-70 означают время доступа 70 не). Для современных микросхем характерно время доступа 40-100 не.

7.1. Динамическая память

237





 

Рис. 7.1. Временные диаграммы чтения и записи динамической памяти

¦     Время цикла (cycle time) — минимальный период между началами соседних

циклов обращения (Twc для записи и TRC для чтения). Для современных мик­

росхем лежит в пределах 75-125 нс.

¦     Время цикла (период следования импульсов CAS#) в страничном режиме ТРС

(Page CAS Time - см. п. 7.1.1).

¦     Длительность сигналов RAS# и CAS# — TraS и Tcas — минимальная длительность активной части (низкого уровня) стробирующих сигналов (см. рисунок).

¦     Время предварительного заряда RAS и CAS TRP, и ТСР (RAS и CAS Precharge

Time) — минимальное время нахождения соответствующих сигналов в высо­

ком состоянии.

¦     Время задержки между импульсами RAS# и CAS# TRCD (RAS to CAS Delay).

¦     Задержка данных относительно импульса CAS# (TCAC).

Все эти параметры и определяют предел производительности памяти. В табл. 7.2 приведены типовые значения временных параметров, отвечающих конкретной спецификации быстродействия. На них можно ориентироваться при задании циклов обращений к памяти в CMOS Setup, но при этом необходимо учитывать, что микросхемы различных производителей могут несколько отличаться друг от друга по отдельным параметрам.



Таблица 7.2. Ключевые параметры временной диаграммы DRAM

 не     ТСР)

НС

Спецификация быстродействия                      TRC, нс    Тыс, НС     Трс, НС

-5 -6 -7



75

40

15

6

6

100

50

20

8

8

104

60

25

10

10

110

70

30

12

12

238

Глава 7. Интерфейсы электронной памяти

Отметим, что все, даже самые «модные» типы памяти — SDRAM, DDR SDRAM и Rambus DRAM — имеют запоминающее ядро, которое обслуживается описанным выше способом.

Поскольку обращения (запись или чтение) к различным ячейкам памяти обычно происходят в случайном порядке, то для поддержания сохранности данных приме­няется регенерация (Memory Refresh — обновление памяти) — регулярный цикли­ческий перебор ее ячеек (обращение к ним) с холостыми циклами. Циклы регене­рации могут организовываться разными способами, классическим является цикл без импульса CAS#, сокращенно именуемый ROR (RAS Only Refresh — регенерация только импульсом RAS#). Другой вариант — цикл CBR (CAS Before RAS), поддер­живаемый практически всеми современными микросхемами памяти. В этом цик­ле регенерации спад импульса RAS# осуществляется при низком уровне сигнала CAS# (в обычном цикле обращения такой ситуации не возникает). Адрес регене-нируемой строки для цикла ROR генерирует контроллер памяти, для CBR этот адрес берется из внутреннего счетчика каждой микросхемы памяти. Цикл скры­той регенерации (hidden refresh) является разновидностью цикла CBR. Микросхемы синхронной динамической памяти выполняют циклы CBR по коман­де Auto Refresh. А по команде Self Refresh или Sleep Mode они выполняют автоном­ную регенерацию в энергосберегающем режиме.


Дискретный интерфейс RGB TTL


Дискретный интерфейс с уровнями ТТЛ — RGB TTL применялся в мониторах для графических адаптеров MDA, HGC (Hercules), CGA и EGA. Для этого интерфей­са требуется разъем DB-9 (розетка на адаптере), назначение контактов приведено в табл. 8.5. В монохромных мониторах используются лишь два сигнала — Video (включить/выключить луч) и Intens (повышенная яркость). В цветных монито­рах класса CD (ColorDisplay) для адаптеров CGA используется по одному сигналу для включения каждого луча и общий сигнал повышенной яркости. Таким обра­зом можно было задать 16 цветов. В улучшенном цветном дисплее ECD (Enhanced Color Display) для адаптера EGA требуются два сигнала на каждый базисный цвет: RED, GREEN, BLUE и Red, Green, Blue — соответственно старшие и младшие биты базисных цветов. Таким образом можно задавать 64 цвета.

Строчная и кадровая синхронизация монитора осуществляется сигналами H.Sync и V.Sync. Монохромные адаптеры MDA и HGC, работающие с высоким разреше­нием (720x350 пикселов), используют высокую частоту развертки. Адаптер CGA работает с низкими частотами (параметры синхронизации близки к телевизион­ным). Адаптеры и мониторы EGA могут работать с любыми из этих частот. Для облегчения переключения режимов генератора развертки монитора задействуют сигнал V.Sync: полярность импульсов определяет диапазон частот развертки теку­щего видеорежима.

8.4. Интерфейсы графических адаптеров________________________________ 327

Таблица 8.5. Дискретный интерфейс монитора (RGB TTL)

Контакт   Монитор

Mono      Color       Enhanced Color/Mono

1

GND

GND

GND

2

GND

GND

Red

3

-

RED

RED

4

-

GREEN

GREEN

5

-

BLUE

BLUE

6

Intens.

Intensiv.

Green/lntens.

7

Video

Резерв

Blue/Video

8

+H.Sync.

+H.Sync.

+H.Sync.

9

-V.Sync.

-V.Sync.

-(+)V.Sync.



Двунаправленный байтный режим — Byte Mode


В этом режиме данные принимаются с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR. 5=1. Как и предыдущие, режим является программно-управляемым — все сигналы кви­тирования анализируются и устанавливаются драйвером. Сигналы порта описа­ны в табл. 1.3, временные диаграммы — на рис. 1.2.

Таблица 1.3. Сигналы LPT-порта в байтном режима ввода-вывода

Имя в байтном I/O Бит режиме

1 14

17

16 10

Контакт Сигнал SPP

Strobe*     HostClk AutoFeed* HostBusy

lnit# Ack#

Selectln*   1284Active

lnit# PtrClk

11

Busy

PtrBusy

12

PE

AckDataReq1

13

Select

Xflag1

15

Error*

DataAvail*1

2-9

Data [0:7]   Data [0:7]

Описание

О    CR.O\    Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла

О    CR.1\    Сигнал квитирования. Низкий уровень означает готовность хоста принять байт; высокий уровень устанавливается по приему байта

О    CR.3\    Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий)

0       CR.2     Не используется; установлен высокий

уровень

1       SR.6     Устанавливается в низкий уровень

для индикации действительности данных на линиях Data [0:7]. В низкий уровень устанавливается в ответ на сигнал HostBusy

I     SR-Д    Состояние занятости прямого канала

I     SR.5     Устанавливается ПУ для указания

на наличие обратного канала передачи

I     SR.4     Флаг расширяемости

I     SR.3     Устанавливается ПУ для указания

на наличие обратного канала передачи

I/O   DR[0:7] Двунаправленный (прямой и обратный) канал данных

Сигналы действуют в последовательности согласования (см. ниже).

1:3. Стандарт IEEE 1284-                                                                                                           25

Рис. 1.2. Прием данных в байтном режиме

Фазы приема байта данных перечислены ниже.

1.   Хост сигнализирует о готовности приема данных установкой низкого уровня



на линии HostBusy.

2.   ПУ в ответ помещает байт данных на линии Data [0:7].

3.   ПУ сигнализирует о действительности байта установкой низкого уровня на

линии PtrClk.

4.   Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой байта.

5.   ПУ отвечает установкой высокого уровня на линии PtrClk,

6.   Хост подтверждает прием байта импульсом HostClk.

Шаги 1-6 повторяются для каждого следующего байта. Квитирование осуще­ствляется парой сигналов HostBusy и PtrClk; ПУ может и не использовать сигнал HostClk (это приглашение к выдаче следующего байта, напоминающее сигнал Ack# в интерфейсе Centronics). Побайтный режим позволяет поднять скорость обрат­ного канала до скорости прямого канала в стандартном режиме. Однако он спосо­бен работать только на двунаправленных портах, которые раньше применялись в основном на малораспространенных машинах PS/2, но практически все современ­ные порты можно сконфигурировать на двунаправленный режим (в настройках BIOS Setup - Bi-Di или PS/2).


EEPROM и флэш-память


Электрически стираемая (и перезаписываемая) память EEPROM, или E2PROM (Elecrical Erasable PROM), отличается простотой выполнения записи. В простей­шем (для пользователя) случае программирование сводится к записи байта по требуемому адресу, после чего некоторое время микросхема не способна выполнять операции чтения/записи и по другим адресам, вплоть до окончания выполнения внутренней операции программирования (со встроенным стиранием). Микросхе­мы могут поддерживать и режим страничной записи (Page Write), в котором они принимают поток байт записи смежных ячеек в страничный буфер на нормаль­ной скорости интерфейса, после чего вся страница записывается в энергонезави­симую память. Страничная запись экономит время (запись страницы выполняет­ся за то же время, что и одной ячейки), но размер страничного буфера, как правило, небольшой (4-32 байт для микросхем небольшого объема и до 128-256 байт — большого). Более сложный интерфейс записи использует систему команд, в кото­рую могут входить команды разрешения/запрета стирания и записи, стирание (от­дельной ячейки или всей памяти), запись. Микросхема может иметь и специальные внутренние регистры, например регистр состояния, определяющий готовность микросхемы к обмену данными и возможные режимы защиты от модификации ячеек. Некоторые старые микросхемы для стирания требуют подачи сравнитель­но высокого (12 В) напряжения на определенные выводы. По процедуре програм­мирования некоторые микросхемы EEPROM схожи с флэш-памятью. В насто­ящее время EEPROM применяются наряду с флэш-памятью, причем они могут соседствовать даже в одной микросхеме (например, микроконтроллере). Это объяс­няется очень большим гарантированным числом циклов перезаписи (106 и более) EEPROM, но меньшим достижимым объемом. Также EEPROM обычно имеет и большее гарантированное время сохранности информации (до 100 лет). Флэш-память при большем объеме и более производительных способах записи и стира­ния допускает меньшее число циклов перезаписи, и время сохранения информации у нее меньше (может быть и всего 10 лет).
Микросхемы EEPROM выпускаются с различными интерфейсами, последовательными (Serial EEPROM) с интерфей­сами PC, SPI и иными и параллельными (Parallel EEPROM) с интерфейсами ста­тической памяти (и EPROM).

Флэш-память по определению относится к классу EEPROM (электрическое сти­рание), но использует особую технологию построения запоминающих ячеек. Сти­рание во флэш-памяти производится сразу для целой области ячеек (блоками или полностью всей микросхемы). Это позволило существенно повысить произво­дительность в режиме записи (программирования). Флэш-память обладает соче­танием высокой плотности упаковки (ее ячейки на 30 % меньше ячеек DRAM), энергонезависимого хранения, электрического стирания и записи, низкого потребле-

7.3. Энергонезависимая память________________________________________ 283

ния, высокой надежности и невысокой стоимости. Первые микросхемы флэш-памяти были предложены фирмой Intel в 1988 году и с тех пор претерпели суще­ственные изменения по архитектуре, интерфейсу и напряжению питания. Каждая ячейка флэш-памяти состоит всего из одного униполярного (полевого) транзистора. Ячейки организованы в матрицу; разрядность данных внешнего ин­терфейса — 8 или 16 бит (ряд микросхем имеет переключаемую разрядность). Чистые (стертые) ячейки содержат единицу во всех битах; при записи (програм­мировании) нужные биты обнуляются. Возможно последующее программирова­ние и уже записанных ячеек, но при этом можно только обнулять единичные биты, но не наоборот. В единичное состояние ячейки переводятся только при стирании. Стирание выполняется для всей матрицы ячеек; стирание одиночной ячейки невоз­можно. Чтение флэш-памяти ничем не отличается от чтения любой другой памя­ти — подается адрес ячейки, и через некоторое время доступа (десятки-сотни не) на выходе появляются данные. Запись выглядит несколько сложнее — для програм­мирования каждого байта (слова) приходится выполнять процедуру, состоящую из операций записи и считывания, адресованных к микросхеме флэш-памяти.


Одна­ ко при этом шинные циклы обращения к микросхеме являются нормальными для процессора, а не растянутыми, как для EPROM и EEPROM. Таким образом, в устройстве с флэш-памятью легко реализуется возможность перепрограммиро­вания без извлечения микросхем из устройства. Большинство микросхем флэш-памяти имеют интерфейс, аналогичный асинхронной статической памяти (SRAM), а при чтении он упрощается до интерфейса ROM/PROM/EPROM. Существуют версии с интерфейсом динамической памяти, асинхронным и синхронным, а также и со специальными интерфейсами, в том числе и 12С. Первые микросхемы работали только при напряжении питания 5 В, а для программирования и стирания тре­бовали дополнительное питание VPP = +12 В. Затем появились микросхемы всего с одним напряжением питания +5 В. Дальнейшее развитие технологии позволи­ло снизить напряжение питания до 2,7-3,3 В и 1,65-2,2 В, a VPP — до 5, 3,3, 2,7 и даже 1,65 В. В производстве микросхем используется технологические процес­сы с разрешением 0,3, 0,22, 0,18 мкм (чем мельче ячейки, тем они экономичнее). Микросхемы первых выпусков (1990 г.) имели гарантированное число циклов стирания-программирования 10 000, современные — 100 000.

Флэш-память имеет время доступа при чтении 35-200 не. Стирание информации (поблочное или во всей микросхеме) у микросхем середины 90-х годов занима­ет 1-2 секунды, программирование (запись) байта — порядка 10 мкс. У современ­ных микросхем время стирания и записи заметно сократилось. Процедура записи от поколения к поколению упрощается (см. ниже). От ошибочного стирания (запи­си) применяются различные методы программной и аппаратной защиты. Программ­ной защитой является ключевая последовательность команд, нарушение которой не позволяет начать операции стирания и записи. Аппаратная защита не позволя­ет выполнять стирание и запись, если на определенные входы не поданы требу­емые уровни напряжения. Аппаратная защита может защищать как весь массив целиком, так и отдельные блоки.



По организации массива в плане стирания групп ячеек различают следующие архитектуры:

¦ Bulk Erase (BE) — все ячейки памяти образуют единый массив; запись воз­

можна в произвольную ячейку; стирание возможно только для всего объема

сразу;

¦     Boot Block (BB) — массив разделен на несколько блоков разного размера, сти­раемых независимо, причем один из блоков имеет дополнительные средства за­щиты от стирания и записи;

¦     Flash File — массив разделен на несколько равноправных независимо стира­емых блоков обычно одинакового размера, что позволяет их называть микро­схемами с симметричной архитектурой (Symmetrical Architecture, SA).

Организация BE применялась только в микросхемах первого поколения, ее недо­статки вполне очевидны (получается просто аналог EEPROM с более удобным способом стирания и интерфейсом программирования). Все современные микро­схемы секторированы (разбиты на отдельно стираемые блоки), так что остается лишь деление на симметричную и несимметричную архитектуру.

В симметричной архитектуре (SA), как правило, используется разбиение на бло­ки по 64 Кбайт; один из крайних блоков (с самым большим или самым маленьким адресом) может иметь дополнительные средства защиты.

В асимметричной архитектуре один из 64-килобайтных блоков разбивается на 8 блоков по 8 Кбайт. Один из блоков имеет дополнительные аппаратные средства защиты от модификации и предназначается для хранения жизненно важных дан­ных, не изменяемых при запланированных модификациях остальных областей. Эти микросхемы специально предназначены для хранения системного программ­ного обеспечения (BIOS), а привилегированный блок (Boot Block) хранит мини­мальный загрузчик, позволяющий загрузить (например, с дискеты) и выполнить утилиту программирования основного блока флэш-памяти. В обозначении этих микросхем присутствует суффикс Г (Тор) или В (Bottom), определяющий положе­ние Boot-блока либо в старших, либо в младших адресах соответственно.


Первые предназначены для процессоров, стартующих со старших адресов (в том числе, х86, Pentium), вторые — для стартующих с нулевого адреса, хотя возможны и проти­воположные варианты, когда некоторые биты шины адреса перед подачей на мик­росхему памяти инвертируются. Старые микросхемы В В малого объема имели немного другое распределение, например микросхема 28F001ВХ- Т (28F001BN- Т), часто применяемая для флэш-BIOS в PC, содержит:

¦     основной блок (Main Block) объемом 112 Кбайт (OOOOOh-lBFFFh);

¦     два блока параметров (Parameter Block) объемом по 4 Кбайт (1 COOOh-1 CFFFh и IDOOOh-lDFFFh);

¦     загрузочный блок (Boot Block) объемом 8 Кбайт (lEOOOh-lFFFFh), стирание и программирование которого возможны лишь при особых условиях.

7.3. Энергонезависимая память                                  __________________________ 285

Основной блок и блоки параметров по защите равноправны; выделение неболь­ших блоков параметров позволяет в них хранить часто сменяемую информацию, например ESCD технологии PnP.

Выпускают и комбинированные микросхемы, например MT28C3214P2FL пред­ставляет собой комбинацию флэш-памяти 2 М х 16 и SRAM 256 К х 16. По организации матрицы ячеек различают архитектуры NOR и NAND. В тради­ционной организации NOR транзисторы на одном проводе объединяются своими стоками параллельно, как бы образуя логический элемент ИЛИ-НЕ (NOR — Not OR). Эта организация обеспечивает высокое быстродействие произвольного считывания, что позволяет исполнять программы прямо из флэш-памяти (не ко­пируя в ОЗУ) без потери производительности. В организации NAND несколько транзисторов разных ячеек соединяются последовательно, образуя логический элемент И-НЕ (NAND — Not AND), что дает высокую скорость последовательных обращений.

В первых микросхемах флэш-памяти каждая ячейка (всего один транзистор) пред­назначалась для хранения одного бита информации (1 — стерта, 0 — «прошита»). Позже появилась технология хранения двух битов в одной ячейке — благодаря совершенствованию технологии удалось надежно различать 4 состояния ячейки, что и требуется для хранения двух битов.


Два бита в ячейке хранит память Intel StrataFlash, емкость одной такой микросхемы уже достигла 128 Мбит (16 Мбайт).

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

Некоторые микросхемы обеспечивают быстрый обмен в страничном режиме (Page Mode). Страницей являются 4 или 8 смежных ячеек; первое чтение в странице выполняется со временем доступа 70 не. Если микросхема остается выбранной, то другие ячейки этой страницы (отличающиеся значением младших битов адреса) можно считывать циклами длительностью по 20 не. Доступ к одиночным ячейкам не отличается от обычного. Микросхемы с пакетным режимом (Burst Mode) вдоба­вок к одиночному и страничному режимам (асинхронным) могут работать и в син­хронном режиме. Для этого они имеют вход синхронизации CLK. Адрес начала пакета передается вместе с сигналом ADV# (фиксируются по положительному пе­репаду CLK). Первые данные на выходе появятся через 3 такта, после чего в каж­дом следующем такте будут выдаваться очередные данные.

Синхронная флэш-память имеет интерфейс (и даже упаковку в корпуса), совпа­дающий с SDRAM. В настоящее время выпускаются микросхемы с частотой 66 МГц (например, MT28S4M16LC — 1 М х 16 х 4 банка), ожидаются микросхемы и на 133 МГц. Такая память удобна для встраиваемых компьютеров для хранения ПО, исполняемого прямо на месте (без копирования в ОЗУ).

286________________________________ Глава 7. Интерфейсы электронной памяти

Микросхемы флэш-памяти с симметричной архитектурой выпускаются и с интер­фейсом DRAM (динамической памяти) — с мультиплексированной шиной памяти, стробируемой сигналами RAS# и CAS#. Они предназначены для применения в мо­дулях SIMM или DIMM, устанавливаемых в гнезда для обычной динамической памяти.


Таким образом реализуются, например, модули PostScript для лазерных принтеров и любые резидентные программные модули. Эти модули, естественно, не будут определяться системой как основная память — на попытку обычной запи­си и считывания, предпринимаемую в тесте POST при определении установленной памяти, они ответят весьма своеобразно. Также они не будут восприниматься и как модули дополнительной системы BIOS, поскольку займут неподходящие для этого физические адреса. Использоваться эти модули смогут только с помо­щью специального драйвера, который «объяснит» чипсету, какому диапазону адресов пространства памяти соответствуют сигналы выборки банков флэш-па­мяти. Поскольку интерфейс модулей SIMM и DIMM не предполагает сигналов защиты записи, системного сброса и дополнительного питания +12 В, все вопро­сы, связанные с программированием и защитой, решаются дополнительными эле­ментами, устанавливаемыми на модулях. При использовании 16-битных микро­схем такие модули непосредственно не обеспечивают независимую побайтную запись, но она может обеспечиваться программно, маскированием (записью OFFh) немодифицируемых байт.

Для хранения BIOS появились микросхемы флэш-памяти с интерфейсом LPC, называемые хабами (firmware hub).

Для некоторых сфер применения требуются специальные меры по блокированию изменения информации пользователем. Так, Intel в некоторые микросхемы вво­дит однократно записываемые регистры ОТР (One-Time-Programmable). Один 64-битный регистр содержит уникальный заводской номер, другой может програм­мироваться пользователем (изготовителем устройства) только однажды.

Фирма Intel выпускает микросхемы «Wireless Flash Memory» — за интригующим названием скрывается, конечно же, «нормальный» электрический интерфейс с проводами (wireless — без проводов). Однако они ориентированы на примене­ние в средствах беспроводной связи (сотовые телефоны с доступом к Интернету): питание 1,85 В, наличие регистров ОТР для защиты от мошенничества и т.


п.

Корпуса, интерфейс и обозначение микросхем флэш-памяти

Микросхемы флэш-памяти упаковывают в корпуса со стандартизованным назна­ чением выводов. Первые микросхемы выпускались в корпусах DIP, что обес­печивало легкость замены микросхем (E)EPROM на флэш-память. Далее в целях миниатюризации перешли к корпусам PLCC, TSOP и TSOP-II. Применение корпусов FBGA (Fine Pitch Ball Grid Array) — матрицы 6x8 шариковых выводов с шагом 0,8 мм — позволяет уменьшить размер корпуса до минимума, требуемого для упаковки кристалла. Для микросхем, используемых в картах SmartMedia, при­меняют и оригинальную упаковку KGD (Known Good Die).

7.3. Энергонезависимая память

287

На рис. 7.20-7.22 приведено расположение выводов распространенных микросхем флэш-памяти (основной вариант цоколевки). Многие микросхемы имеют два ва­рианта цоколевки для корпусов поверхностного монтажа — основной и зеркаль­ный (реверсный). Это позволяет существенно упростить разводку печатных проводников (серпантином) при объединении большого количества микросхем в массивы флэш-памяти.



Рис. 7.20. Расположение выводов микросхем флэш-памяти с 8-битной организацией в корпусах DIP и PLCC: а — DIP-32, б — PLCC-32



Рис. 7.21. Расположение выводов микросхем флэш-памяти с 8-битной организацией в корпусах TSOP: а — TSOP-32, б — TSOP-40

288

Глава 7. Интерфейсы электронной памяти



Рис. 7.22. Расположение выводов микросхем флэш-памяти с 8/16-битной организацией в корпусахTSOP-44: а — TSOP-44, б — TSOP-48, в — TSOP-56

Назначение сигналов микросхем флэш-памяти приведено в табл. 7.23; микросхе­мы разных изготовителей и моделей могут иметь не все из приведенных управля­ющих сигналов.

Таблица 7.23. Назначение сигналов микросхем флэш-памяти

Сигнал   Назначение

СЕ#       Chip Enable — разрешение доступа. Низкий уровень разрешает обращение

к микросхеме, высокий уровень переводит микросхему в режим пониженного потребления. Доступ к микросхеме, имеющей два входа (СЕ1 # и СЕ2#), возможен при низком уровне на обоих входах



ОЕ#       Output Enable — разрешение выходных буферов. Низкий уровень при низком уровне сигнала СЕ# разрешает чтение данных из микросхемы. Подача высокого (12В) напряжения во время подачи команды стирания или программирования позволяет модифицировать и Boot-блок (этот метод используется редко, поскольку требует не-ТТЛ сигнала)

WE#       Write Enable — разрешение записи. Низкий уровень при низком уровне сигнала СЕ# разрешает запись и переводит выходные буферы в высокоимпедансное состояние независимо от сигнала ОЕ#. Временные диаграммы шинного цикла записи аналогичны обычной статической памяти, что позволяет подключать флэш-память непосредственно к системной шине процессора. Допустимы оба способа управления — как с помощью сигнала WE# на фоне низкого уровня СЕ#, так и наоборот. Минимальная длительность импульса записи совпадает со временем доступа

DQx       Data Input/Output — двунаправленные линии шины данных. Время доступа при чтении отсчитывается от установки действительного адреса или сигнала СЕ# (в зависимости от того, что происходит позднее). Фиксация данных при записи происходит по положительному перепаду WE# или СЕ# в зависимости оттого, что происходит раньше

7.3. Энергонезависимая память

289

Сигнал   Назначение

BYTE*    Управляющий сигнал для выбора режима обращения к микросхемам с 8/16-битной организацией. Они имеют два 8-битных банка, и их ячейки памяти адресуются 16-битными словами. Низкий уровень сигнала BYTE* задает восьмибитный режим обмена по линиям DQ[0:7], при этом линия DQ15/A-1 становится самой младшей линией адреса, переключающей банки, а линии DQ[8:14] переходят в высокоимпедансное состояние

Ах         Address — входные линии шины адреса. Линия А9 допускает подачу высокого (12В) напряжения (как и EPROM) для чтения кода производителя (А0=0) и устройства (А0=1), при этом на остальные адресные линии подается логический «О»

RP#       Reset/Power Down, раньше обозначался PWD# (PowerDown). Низкий уровень (PWD#)   сбрасывает регистр команд и переводит микросхемы в режим «глубокого сна»



(Deep Powerdown) с минимальным (доли микроампера) потреблением питания.

Перевод сигнала в высокий логический уровень «пробуждает» микросхему

(примерно за 0,3-0,8 мкс), после чего она переходит в режим чтения данных.

Подача высокого (12В) напряжения разрешает программирование даже

защищенного Boot-блока

WP#      Write Protect — защита записи. При низком уровне WP* модификация Boot-блока или других блоков с установленным битом защиты возможна только при наличии высокого (12В) напряжения на входе RP*. При высоком уровне защита блоков игнорируется

RY/BY#   Ready/Busy* — сигнал готовности (высокий уровень) микросхемы к очередной

операции программирования или стирания. Низкий уровень указывает на занятость управляющего автомата (WSM) выполнением операции стирания или программирования. Выход обычно не управляется сигналами ОЕ# и СЕ*. В микросхемах 28F016SA и выше выход имеет тип «открытый коллектор», запираемый по команде, и программируемое назначение

3/5*      Сигнал, переключающий режим работы микросхемы в зависимости от питающего напряжения, введен для оптимизации быстродействия или потребления

Интерфейс микросхем флэш-памяти хорошо сочетается со стандартными сиг­налами, используемыми в микропроцессорных системах. Внутренние циклы сти­рания, записи и верификации выполняются автономно от шинных циклов внешне­го интерфейса, что является существенным преимуществом перед микросхемами EPROM и EEPROM. В режиме чтения они полностью совместимы с EPROM, совпадая с ними и по расположению основных выводов.

Обозначение микросхем идя изделий лидеров в области разработки и производства флэш-памяти — фирм Intel и AMD — несколько отличаются. Остальные произ­водители для своих изделий, по свойствам аналогичных, в основном придержива­ются системы обозначений лидеров.

Обозначение микросхем флэш-памяти Intel начинается с признака 28F, за которым следует трехзначный код объема (табл. 7.24), а за ними — два символа технологии и архитектуры:

¦    В5, ВС, ВХ, BR - Boot Block с питанием 5 В;



¦    СЗ — Boot Block с питанием 3 В;

¦    F3 — Boot Block с питанием 3 В, повышенное быстродействие;

¦    J3 и J5 — StrataFlash (SA) с питанием 3 и 5 В соответственно;

¦    S3 и S5 — Flash File (SA) с питанием 3 и 5 В соответственно.

290________________________________ Глава 7. Интерфейсы электронной памяти

Для флэш-памяти AMD первая часть обозначения определяет тип и характерис­тики микросхем:

¦     Am29BDS — 1,8 В, считывание одновременно с записью, пакетный режим чтения;

¦     Am29DS — 1,8 В, считывание одновременно с записью;

¦     Am29SL- 1,8 В;

¦     Am29LV-3B;

¦     Am29DL — 3 В, считывание одновременно с записью;

¦     Am29BL — 3 В, пакетный режим чтения;

¦     Am29PL — 3 В, страничный режим чтения;

¦     AmSOLV - 3 В, UltraNAND;

¦     Am29F-5В.

Далее следует трехзначный код объема, за ним символ технологии изготовления (В, С или D), за которым следует символ архитектуры:

¦     Т — boot sector, верхний;,

¦     В — boot sector, нижний;

¦     Н — симметричная, защищен со старшим адресом;

¦     L — симметричная, защищен с младшим адресом;

¦     U (нет символа) — симметричная;

¦     J40 — число 100 %-годных блоков (только для UltraNAND).

Оставшаяся часть определяет параметры питания, быстродействие, тип корпуса, температурный диапазон и некоторые особенности.

Таблица 7.24. Популярные микросхемы флэш-памяти Обозначение      Организация1

256

32Кх8ВЕ

512

64Кх8ВЕ

010

128Кх8ВЕ

020

256 Кх 8 BE

001

128Кх8ВВ

002

256Кх8ВВ

004

512Кх8ВВ, SA

008

1Мх8ВВ, SA

016

2 М х 8 ВВ, SA

200

256Кх8/128Кх16ВВ

400

512Кх8/256Кх16ВВ

800

1024Кх8/512Кх16ВВ

160

2Мх8/1 Mx16SA, ВВ

320

4Mx8/2Mx16SA

640

8Mx8/4Mx16SA

<


1 BE — Bulk Erase (стираемые целиком), ВВ — Boot Block (несимметричные блоки), SA — Symmetric Architecture (симметричные блоки). Через косую черту указана организация для микросхем с пере­ключаемой разрядностью данных.

7.3. Энергонезависимая память_________________________________________ 291

Флэш-память с интерфейсом PCMCIA (PC Card) оптимизирована для построения внешней памяти миниатюрных PC. Модуль флэш-памяти в формате PC Card име­ет интерфейс дисков IDE (ATA) как на уровне электрических сигналов, так и по системе команд. Кроме собственно микросхем накопителя этот модуль обычно со­держит управляющую микросхему программируемой логики. Флэш-память в стан­дарте PC Card логически является устройством внешней памяти. Ее не следует путать с похожей по виду памятью в формате Credit Card, которая является опе­ративной и вставляется в специальный (не PCMCIA) слот компьютера. Внешнюю память, в отличие от оперативной, в принципе можно вставлять и вынимать без перезагрузки ОС.

Организация и программирование флэш-памяти Intel

По организации и программированию можно выделить три поколения флэш-па­мяти Intel.

Микросхемы первого поколения (28F256,28F512,28F010,28F020) представляют собой единый массив памяти, стираемый целиком (bulk erase). Для выполнения стирания и записи микросхемы имеют внутренний регистр команд и управля­ющий автомат WSM (Write State Machine). Стирание и программирование флэш-памяти возможны только при подаче на вход VPP напряжения 12 В по командам, записываемым во внутренний регистр в шинном цикле записи по сигналу WE#.

Выполнение команд инициируется записью кодов команд во внутренний регистр, для чего процессор должен выполнить команду записи в память по адресу, при­надлежащему области программируемой микросхемы флэш-памяти. На микро­схему при этом должны прийти сигналы СЕ# (выбор) и WE# (запись). Последу­ющие обращения к этой области как по записи (W), так и по чтению (R) должны соответствовать исполняемой команде (табл. 7.25).


В шинном цикле записи адрес (если он требуется для данной команды) фиксируется по спаду сигнала WE#, фик­сация данных выполнения команды происходит по фронту WE#. Большинство команд подается безадресно (по любому адресу, принадлежащему данной микро­схеме); команда верификации стирания и второй цикл команды программирова­ния подаются по адресу требуемой ячейки. Результаты стирания и программиро­вания считываются по адресу конкретной интересующей ячейки.

Ниже описано назначение команд.

¦     Read Memory — команда чтения данных, переводящая микросхему в режим чтения, совместимый по интерфейсу с EPROM.

¦     Read ID — команда чтения идентификаторов. В последующих шинных цик­

лах чтения по адресу 0 считывается M_Id (Manufacturer Identifier — идентифи­катор производителя, 89h), по адресу 1 — D_Id (Device Identifier — идентифи­катор устройства, для микросхем 8F256,28F512,28F010,28F020 это B9h, B8h,B4h и BDh соответственно). Из этого режима микросхема выходит по записи любой другой действительной команды. Идентификаторы можно читать и путем подачи высокого напряжения на А9 (как и для EPROM).

292________________________________ Глава 7.. Интерфейсы электронной памяти

Таблица 7.25. Команды микросхем флэш-памяти Intel первого поколения

Команда

Число

Первый цикл шины1

Второй(третий)цикл шины1

циклов шины

R/W

Адрес   Данные   R/W

Адрес

Данные

Read Memory

1

W

X

ООп

-

-

-

Read ID

3

W

X

90h

R

0(1)

MJd (D_ld)

Set-up Erase/Erase

2

W

X

20h

W

X

20h

Erase Verify

2

W

ЕА

АОп

R

X

EVD

Set-up Program/Program   2

W

X

40h

W

РА

PD

Program Verify

2

W

X

COh

R

X

PVD

Reset

2

W

X

FFh

W

X

FFh

1 Здесь X обозначает несущественный адрес, M_Id и D_Id — идентификаторы производителя и устрой­ства, EA — адрес ячейки, в которой контролируется стирание, EVD — данные, считанные при верифи­кации стирания (должны быть FFh), РА и PD — адрес и данные программируемой ячейки, PVD — данные, считанные при верификации программирования.



¦     Set-up Erase/Erase — подготовка и собственно стирание. Внутренний цикл

стирания начинается по подъему сигнала WE# во втором шинном цикле и за­вершается по последующему шинному циклу записи или по внутреннему таймеру (Stop Timer). Последующей командой обычно является верификация стирания. Два шинных цикла записи, необходимые для выполнения команды, Снижают вероятность случайного стирания и позволяют отказаться от вы­полнения стирания посылкой команды Reset. Наличие внутреннего таймера позволяет не заботиться о точной выдержке времени для стирания, необхо­димо только выдержать минимальный интервал (около 10 мс). Перед стира­нием все биты микросхемы должны быть предварительно запрограммиро­ваны в нули.

¦     Erase Verify — верификация стирания. Отличается от обычного считывания тем, что проверяемая ячейка ставится в более жесткие условия считывания для повышения достоверности контроля стирания. Между шинными циклами команды верификации должна быть пауза не менее 6 мкс. Алгоритм быстро­го стирания (Quick-Erase) предусматривает предварительное обнуление всех ячеек (командами программирования) и выполнение команды стирания, со­провождаемой верификацией. Команды верификации последовательно вы­полняются для каждой ячейки микросхемы. Если результат считывания от­личается от FFh, производится повторное стирание (длительностью 10 мс), и последующая верификация может начинаться с первой ранее не стертой ячейки. Если количество повторов стирания превышает 3 000, фиксируется ошибка стирания и микросхема признается негодной. Алгоритм позволяет вы­полнить полное стирание микросхемы менее чем за секунду.

¦     Set-up  Program/Program — подготовка и собственно программирование.

Команда выполняется аналогично стиранию, но во втором шинном цикле пе­

редается адрес и данные программируемой ячейки, а последующая выдержка

должна составлять не менее 10 мкс.

7.3. Энергонезависимая память_________________________________________ 293



¦    Program Verify— верификация программирования (аналогично верификации стирания), обычно следующая после команды программирования. Между шин­ными циклами команды верификации должна быть пауза не менее 6 икс. Алго­ритм быстрого программирования (Quick-Pulse Programming) предусматрива­ет формирование внутреннего цикла программирования длительностью 10 мкс с последующей верификацией. В случае несовпадения результата выполняет­ся повторное программирование (до 25 раз для каждой ячейки), а если и это не

помогает — фиксируется отказ микросхемы.

¦    Reset — команда сброса, прерывающая команду программирования или сти­рания. Эта команда не меняет содержимое памяти; после нее требуется подача другой действительной команды.

По включении питания внутренний регистр команд обнуляется, что соответству­ет команде чтения, и микросхема работает как обычная микросхема PROM или EPROM. Это позволяет устанавливать микросхемы флэш-памяти вместо EPROM аналогичной емкости. При подаче на вход VPP низкого напряжения (0-6,5 В) стирание и программирование невозможны, и микросхема ведет себя как обычная EPROM.

Микросхемы второго поколения секторированы — ячейки группируются в блоки, допускающие независимое стирание (асимметричное разбиение — Boot Block и симметричное — Flash File). Длительная операция стирания одного блока мо­жет прерываться для считывания данных других блоков, что значительно повы­шает гибкость и производительность устройства. Микросхемы имеют более слож­ный внутренний управляющий автомат и в них введен регистр состояния, что позволяет разгрузить внешний процессор и программу от забот по отслежива­нию длительности операций программирования и стирания, а также упростить эти процедуры.

В отличие от микросхем первого поколения, в шинном цикле записи адрес и дан­ные фиксируются по положительному перепаду WE#. Низкий уровень дополни­тельного управляющего сигнала RP# (в первых версиях обозначался как PWD#) предназначен для перевода микросхемы в режим с минимальным потреблением.


В этом режиме модификация содержимого памяти невозможна. Соединение этого вывода в нормальном режиме (когда не требуется перезапись Boot-блока) с системным сигналом RESET* предохраняет микросхему от выполнения ложных команд, которые могут появиться в процессе подачи питания. Внутренние операции стирания и программирования выполняются после посыл­ки соответствующих кодов во внутренний регистр команд. Команды приведены в табл. 7.26. Как и в первом поколении, этот регистр для большинства команд безадресный, но команды программирования и стирания посылаются по требу­емому адресу ячейки (блока). Отработка операций внутренним управляющим ав­томатом отображается соответствующими битами регистра состояния SR (Status Register), по значению которых внешняя программа может получить информацию о результате выполнения и возможности посылки следующих команд. Чтение

294______________________________ Глава 7. Интерфейсы электронной памяти

регистра SR выполняется по специальной команде; есть и команда его очистки. Назначение бит регистра состояния описано ниже.

¦   SR. 7 — WSMS (Write State Machine Status) — состояние управляющего автомата:

•       0 — Busy (занят операцией стирания или программирования);

•       1 — Ready (свободен).

¦   SR.6—ESS (Erase Suspend Status) — состояние операции стирания:

•       0 — стирание завершено или выполняется;

•       1 — стирание приостановлено.

¦   SR. 5 — ES (Erase Status) — результат стирания блока:

•       0 — блок стерт успешно;

•       1 — ошибка стирания.

¦   SR. 4 — PS (Program Status) — результат программирования байта:

•       0 — байт записан успешно;

•       1 — ошибка записи.

¦   SR.3 — VPPS (VpP Status) — состояние VPP

во время программирования или стирания:

•       0 — напряжение было в норме;



•       1 — зафиксировано понижение напряжения, и операция прервана.

¦   S R [ 2 :0 ] — зарезервированы.

Таблица 7.26. Команды микросхем флэш-памяти Intel второго поколения

Команда

Число

Первый цикл шины1

Второй (третий) цикл шины1

циклов шины

R/W

Адрес

Данные

R/W

Адрес

Данные

Read Array/Reset

1

W

X

FFh

_

-

_

Read ID

3

W

X

90h

R

0(1)

MJd

(DJd)

Read Status Register

2

W

X

70h

R

X

SRD

Clear Status Register

1

W

X

50h

-

-

-

Erase Setup/Erase Confirm

2

W

ВА

20h

W

BA

DOh

Erase Suspend/Erase

2

W

X

BOh

W

X

DOh

Resume

Program Setup/Program

2

W

РА

40h

w

PA

PD

Alternate Program Setup/

2

W

РА

10h

w

PA

PD

Program2

1   Здесь X обозначает несущественный адрес, M_Id и D_Id — идентификаторы производителя и устрой­

ства, SRD — данные, считанные из регистра состояния, РА и PD — адрес и данные программируемой

ячейки, В А— адрес блока.

2   Альтернативный код команды программирования; доступен для микросхем емкостью 2,4 и 8 Мбит.

7.3. Энергонезависимая память______ -    ________________________________ 295

Ниже описано назначение команд.

¦     Read Array/Reset — чтение массива памяти (перевод в режим, совместимый

с EPROM) и прерывание операций стирания и программирования.

¦     Read ID — чтение идентификаторов производителя и устройства.

¦     Read Status Register — чтение регистра состояния.

¦     Clear Status Register — сброс регистра состояния.

¦     Erase Setup/Erase Conf i rm — подготовка и стирание блока. В отличие от

микросхем первого поколения, все внутренние операции, необходимые для

стирания (обнуление ячеек блока, стирание и верификация), выполняются



автоматически. При получении команды в регистре состояния устанавливает­

ся признак занятости (SR. 7=0) и любая шинная операция чтения микросхемы будет передавать данные этого регистра. Внешняя программа, периодически опрашивая регистр состояния, дожидается окончания выполнения стирания (когда SR. 7=1). Результат стирания определяется по значению бит 3, 4, 5 (их нулевое значение соответствует успешному выполнению операции).

¦     Erase Suspend/Erase Resume — приостановка/продолжение стирания. Опе­

рацию стирания блока (как самую длительную) можно приостановить для чте­

ния данных из других блоков. После выполнения команды Erase Suspend (код BOh) необходимо дождаться признака приостановки стирания (SR. 6=1), пос­ле чего, подав команду Read Array, можно считывать данные другого блока. По окончании считывания подается команда Erase Resume (код DOh), кото­рая продолжает процесс стирания и снова переводит микросхему в режим чте­ния регистра состояния.

¦     Program Setup/Program — подготовка и программирование ячейки. Эта команда выполняется аналогично подготовке и выполнению стирания, но не может быть приостановлена. Команда выполняет сразу и программирование, и вери­фикацию.

Команды стирания блока и программирования можно подавать, только когда управляющий автомат свободен (бит SR. 7=1). Во время этих операций микросхе­ма следит за уровнем напряжения VPP, и, если оно понижается до порога VPPLK) этот факт регистрируется в регистре состояния и операция прерывается. Также опера­ция прерывается при понижении напряжения питания Vcc до 2,5 В.

При считывании регистра состояния его мгновенное значение фиксируется по спаду сигнала СЕ# или ОЕ# (самого позднего из них в шинном цикле считывания).

Программирование и стирание Boot-блока отличаются от операций с другими блоками тем, что для них требуется подача высокого потенциала VHH (не ТТЛ, а +12 В) на вход PWD# перед выдачей команды стирания или программирования и удержание его до успешного завершения операции.


Альтернативный способ — подача такого же потенциала, но на вход ОЕ# на время пар шинных циклов записи команд стирания или программирования. Попытка программирования Boot-бло­ка без выполнения этих условий не удается, а в регистре состояния одновременно

296________________________________ Глава 7. Интерфейсы электронной памяти

устанавливаются единичные значения бит ES и PS, что индицирует попытку моди­фикации защищенного блока.

Микросхемы Flash-file организованы в виде набора одинаковых блоков, равно­правных (симметричных) по защите (Symmetrical Architecture, SA), Защита от модификации для 28F008SA может осуществляться только для всей микросхемы подачей низкого напряжения на вход VPP. По интерфейсу и командам микросхе­мы совпадают с микросхемами Boot Block (исключая специфику Boot-блока).

Архитектура микросхем 28F016SA существенно изменена, что значительно по­вышает производительность программирования (до 28,6 Мбайт/с в пакетном режиме) и обеспечивает поблочную защиту. Микросхема имеет два буфера дан­ных для записи по 256 Кбайт. Флэш-память организована как 32 блока по 64 Кбайт, допускающих однобайтное или двухбайтное обращение. С каждым блоком свя­зан собственный 8-битный регистр состояния блока BSRx (Block Status Register). Адреса регистров смещены относительно начального адреса блока на 2 или 1 для режимов обращения х8 или х!6 соответственно. Назначение бит BSR описано ниже.

¦   BSR. 7 — BS (Block Status) — состояние блока:

•       1 — готов;

•       0 — занят.

¦   B5R. 6 — BLS (Block-Lock Status) — состояние защиты блока:

•       1 — программирование и стирание запрещены;

•       0 — блок не защищен.

¦   BSR.5 — BOS (Block Operation Status) — состояние операции с блоком:

•       1 — операция завершена безуспешно;

•       0 — операция успешно завершена или выполняется.



¦   BSR. 4 — BOAS (Block Operation Abort Status) — состояние отмены операции с блоком:

•       1 — операция отменена;

•       0 — операция не отменялась.

¦   BSR. 3 — QS (Queue Status) — состояние очереди:

•       1 — очередь заполнена;

•       0 — очередь доступна.

¦   BSR. 2 -VPPS(VPP Status)- состояние VPP:

•       1 — обнаружен низкий уровень, операция прервана;

•       0 — VPP в норме.

¦   BSR[1:0] —зарезервированы.

7.3. Энергонезависимая память__________________________________         297

Глобальный регистр состояния GSR ( Global Status Register) несет информацию о состоянии микросхемы в целом. К GSR можно обращаться по адресу, смещенному относительно начального адреса любого блока на 4 или 2 для режимов обращения х8 или х!6 соответственно. Назначение бит GSR описано ниже.

¦  GSR.7—W5MS (Write State Machine Status) — состояние автомата записи (и завершенности внутренних операций):

•       1 — занят;

•       0 — свободен.

¦  GSR.6 — 055 (Operation Suspend Status) — состояние приостановки операции:

•       1 — операция приостановлена;

•       0 — операция выполняется или завершена.

¦  G5R. 5 — DOS (Device Operation Status) — состояние операции (копирует бит регистра состояния текущего блока):

•       1 — операция завершена неудачно;

•       0 — операция успешно завершена или выполняется.

¦  G5R. 4 — DSS (Device Sleep Status) — состояние ожидания:

•       1 — ожидание (Sleep);

•       0 — нормальный режим.

¦  GSR.3 — QS (Queue Status) — состояние очереди:

•       1 — очередь заполнена;

•       0 — очередь доступна.



¦  GSR. 2 — PBAS (Page Buffer Available Status) — состояние буферов записи:

•       1 — есть свободный буфер;

•       0 — нет свободного буфера.

¦  GSR. 1 — PBS (Page Buffer Status) — состояние выбранного буфера записи:

•       1 — выбранный буфер свободен;

•       0 — буфер занят операцией с WSM.

¦  GSR.0— PBSS (Page Buffer Select Status) — номер выбранного буфера:

•       1 — выбран буфер 1;

•       0 — выбран буфер 0.

Для сохранения программной совместимости имеется безадресный регистр CSR (Compatible Status Register), полностью совпадающий с регистром состояния 28F008SA и микросхем с архитектурой Boot Block. Все команды этих микросхем доступны. Введены новые команды (табл. 7.27), обеспечивающие расширение функций. Ниже перечислены дополнительные возможности микросхем.

298________________________________ Глава 7. Интерфейсы электронной памяти

¦     Буферированное страничное программирование. Кроме обычного побайтного

или двухбайтного программирования возможно быстрое заполнение буфера

шинными циклами записи. Далее переписывание его содержимого (всего или

фрагмента) во флэш-память выполняется одной командой. Содержимое буфе­

ра может быть считано после подачи соответствующей команды.

¦     Двухбайтное программирование при 8-битном использовании.

¦     Поддержка очереди команд позволяет при наличии свободного места в очере­

ди подавать последующие команды стирания или программирования, не до­

жидаясь освобождения автомата WSM. Признак готовности WSM установит­ся только после выполнения всех команд очереди.

¦     Автоматическая запись из буфера во флэш-массив во время стирания другого

блока. Программная защита позволяет для любого блока установить бит защиты в спе­циальную энергонезависимую область.


Запись и стирание защищенного блока может осуществляться только после снятия общей защиты записи по сигналу WP#. Сброс бита защиты блока осуществляется только при его успешном сти­рании или перезаписи.

¦     Стирание всех незащищенных блоков может выполняться одной командой.

¦     Программирование использования сигнала RY/BY*. Возможно разрешение

отображения бита готовности глобального регистра состояния, подачи им­

пульсного сигнала по завершении программирования или стирания (на вы­

бор), а также запрет его формирования.

¦     Перевод микросхемы в режим ожидания (Sleep) с пониженным потреблением В этом режиме возможно считывание состояния и получение команд.

Таблица 7.27. Дополнительные команды микросхем 28F016SA



7.3. Энергонезависимая память



 

299

300________________________________ Глава 7. Интерфейсы электронной памяти

Таблица 7.27 (продолжение)



1   BA - Block Address — адрес блокг, РВА - Page Buffer Address — адрес внутри буфера, RA - Extended

Register Address — адрес дополнительного регистра (BSRx или GSR), WA - Write Address — адрес во флэш-массиве. АО указывает на порядок следования байт в режиме х8{при низком уровне BYTE*):

О - сначала младший, затем старший; 1 - наоборот.

2   AD - Array Data — данные из массива, PBD - Page Buffer Data — данные буфера, WD (L,H) - Write

Data (Low, High) — данные для записи в массив, BSRD - BSR Data — информация регистра состояния блока, GSRD - GSR Data — информация глобального регистра состояния.

3   WC (L,H) - Word Count (Low, High) — счетчик слов. WCL-0 соответствует записи одного слова. Для буфера 256 байт WCH-0. BC (L,H) - Byte Count (Low, High) - счетчик байт. WCL-0 соответствует записи одного байта. Для буфера 256 байт WCH-0.

Микросхема 28F032SA представляет собой два параллельно соединенных крис­талла 28F016SA в одном корпусе. Входы СЕ# одного из них соединены с вывода­ми СЕО# и СЕ1 #, второго — с СЕО# и СЕ2#.

Третье поколение — современные микросхемы, выполненные по технологии SmartVoltage, допускают стирание и программирование при напряжении VPP как 12 В, так и 5 В.


В последнем случае эти операции занимают больше времени. Кроме того, операции чтения возможны при пониженном (3,3 и даже 2,7 В) напряжении питания Vcc, при этом снижается потребление, но увеличивается время доступа. Для управления защитой данных введен логический сигнал WP# (Write Protect). При его высоком уровне программирование и стирание защищенных блоков выполняют­ся так же, как и остальных. При низком уровне WP# модификация защищенных блоков возможна только при наличии высокого (12 В) напряжения на входе RP#. Для полной защиты от стирания и программирования на вход VPP должен пода­ваться низкий логический уровень (или О В), а не 5 В, как у микросхем с програм­мированием напряжением 12 В.

Настройка (оптимизация потребления и быстродействия) происходит по уров­ню напряжения на выводе Vcc по включении питания, переход на другое значение должен производиться через выключение питания.

Флэш-память фирмы AMD

Фирмой AMD выпускается несколько семейств микросхем флэш-памяти. Первые из них были близки по характеристикам к флэш-памяти Intel первого поколения

7.3. Энергонезависимая память_____________________________________________________________________     301

(Bulk Erase, стирание и программирование 12 В): это Am28F256/512/ 010/020. В отличие от аналогичных микросхем Intel, Am28F256/512 не имели стоп^тайме-ра, что требовало точной выдержки при программировании и стирании. Следующим этапом были микросхемы Am28F256A/512A/010A/020A со встроенным алгорит­мом программирования, отличающимся от алгоритма микросхем Intel второго поколения как последовательностью команд, так и способом определения момен­та окончания операций. Для защиты от случайного выполнения команды состоят из 3-6 шинных циклов, причем для них существенен и адрес (табл. 7.28). Состо­яние выполнения операций стирания или программирования определяется по результату данных, полученных в шинном цикле чтения по адресу ячейки, уча­ствующей в операции (а не регистра состояния, как у Intel).


Для определения окон­ чания операций может использоваться метод Data# Polling или Toggle Bit. Метод Data# Polling основан на анализе бита D7 считанных данных. В начале выполне­ния внутреннего цикла он устанавливается инверсным по отношению к тому, что должно быть записано в ячейку. По успешном окончании операции он принима­ет желаемое значение (при стирании — 1). Метод Toggle Bit основан на анализе бита Об, который при каждом шинном цикле считывания во время выполнения операции меняет свое значение на противоположное. По окончании операции он остановится в каком-либо состоянии, при этом об успешности можно судить по биту 7. Единичное значение бита D5 — Exceeded Timing Limits — указывает на превышение допустимого времени выполнения операции.

Микросхемы семейства Am29Fxxx выполняют все операции при одном питающем напряжении 5 В и имеют секторированную структуру (Sector Erase), симметрич­ную (аналогично Flash File) или несимметричную (Boot Block), с верхним (Т) и нижним (В) положением Boot-блока. С помощью программатора каждый сектор может быть защищен от модификации в целевой системе (в отличие от Intel спо­соб установки и снятия защиты фирмой AMD широко не раскрывается). По рас­положению выводов и интерфейсу микросхемы соответствуют стандарту JEDEC для флэш-памяти с одним питающим напряжением. Микросхемы позволяют вы­полнять одновременное стирание группы секторов. Все эти микросхемы, кроме Am29F010, имеют возможность приостановки стирания сектора (Erase Suspend) для выполнения чтения других секторов, a Am29F080/016 позволяют еще и про­граммировать байты во время приостановки стирания.

Таблица 7.28. Команды флэш-памяти Am29F010

Команда

Reset/Read

Autoselect

Byte Program

Chip Erase

Sector Erase

Количество

3

3

4

6

6

циклов

1-й цикл Addr

5555h

5555h

5555h

5555h

5555h

Data

AAh

AAh

AAh

AAh

AAh

2-й цикл Addr

2AAAh

2AAAh

2AAAh

2AAAh

2AAAh

Data

55h

55h

55h

55h

55h

<


продолжение &

302

Глава 7. Интерфейсы электронной памяти

Таблица 7.28 (продолжение)

Команда  Reset/Read

Autoselect

Byte Program

Chip Erase

Sector Erase

3-й цикл  Addr

5555h

5555h

5555h

5555И

5555И

Data

FOh

90h

AOh

80h

80h

4-й цикл  Addr

-

XXOOh/XX01h

PA1

5555И

5555h

Data

01h/20h

PD2

AAh

AAh

5-й цикл Addr

-

-

-

2AAAh

2AAAh

Data

-

- ¦   ¦¦

55h

55h

6-й цикл Addr

-

-

-

5555h

SA3

Data

-

-

-

10h

30h

1 PA " адрес программируемой ячейки.

1PD - данные для записи в программируемую ячейку.

3SA - адрес стираемого сектора (значимы биты А16, А15 и А14).

В командах значение бит А15, А16 существенно только при задании адреса ячейки. Ниже описано назначение команд.

¦     Reset/Read — сброс и перевод в режим считывания массива. Производится

автоматически по включении питания и рри получении некорректной коман­

ды (или адреса) в цепочке.

¦     Аи t о s е I е с t — чтение кодов идентификации производителя (А=0), устройства (А=1) или состояния защиты сектора (биты А16-А14 задают адрес сектора, А2-1, остальные биты адреса — нулевые). Результат считывания состояния защищен­ного сектора — Olh, незащищенного — OOh. Идентификаторы и состояние за­щиты могут быть считаны и путем подачи высокого напряжения на вход А9 в шинном цикле считывания.

¦     Byte Program — программирование байта. После четвертого цикла шины на­чинается внутреннее выполнение программирования, при этом чтение по ад­ресу программируемой ячейки выводит биты состояния.

¦     Chi р Erase — стирание всех незащищенных секторов. На время выполнения стирания чтение по любому адресу (кроме адресов, принадлежащих защищен­ным секторам) выводит биты состояния.

¦     Sector Erase — стирание сектора или группы секторов.


Стирание начинается через 80 икс после окончания последнего шинного цикла цепочки. До этого момента можно посылать цепочки команд стирания других секторов, выполне­ние начнется через 80 мкс после окончания последней цепочки. Если среди ука­занных секторов имеется защищенный, его стирание не выполняется. На время выполнения стирания чтение по адресу любого из стираемых секторов (кроме защищенных) выводит биты состояния. Бит DQ3 — Sector Erase Timer — ука­зывает на начало выполнения стирания сектора (очередную последователь­ность команд стирания сектора можно начинать, пока бит 3=0).

Следующим этапом стала секторированная флэш-память Am29LVxxx с одним питающим напряжением (3,0 В) для всех операций. У этих микросхем защита

7.3. Энергонезависимая память_________________________________________ 303

любого сектора также устанавливается с помощью программатора стандартной микросхемы EPROM.a также возможно временное снятие защиты в целевой си­стеме. Кроме программной индикации окончания операции (биты 5-7, считанные по адресу ячейки), имеется и аппаратная (сигнал RY/BY*). Также имеется сигнал аппаратного сброса, переводящий в режим чтения.

Вышеперечисленные микросхемы имеют традиционную архитектуру NOR. От них значительно отличается микросхема Am30LV0064D — 64 Мбит (8 Мх8) с архи­тектурой UltraNAND, обеспечивающей быстрый последовательный доступ к дан­ным выбранной страницы. Каждая страница имеет 512 байт данных и 16 допол­нительных байт, используемых, например, для хранения ЕСС-кода. Для выбора страницы при чтении (загрузки во внутренний 528-байтный регистр) требуется около 7 мкс, после чего данные считываются последовательно со скоростью до 20 Мбайт/с (50 не/байт). Таким образом, среднее время на чтение одного байта составляет всего 65 не. Для записи данные (страница полностью или частично) загружаются в регистр с той же скоростью, после чего запись их в массив храня­щих ячеек требует всего 200 мкс. Таким образом, среднее время на запись одного байта составляет всего 430 не — в 20 раз быстрее обычной (NOR) флэш-памяти (скорость записи 2,3 Мбайт/с).


Стирание выполняется блоками по 8 Кбайт за 2 мс (в обычной — 600 мс). Микросхем» питается от 3 В. Планируется достижение объема микросхемы до 1 Гбит. Надежность хранения — 10 лет, 104 циклов без­ошибочного программирования, более 106 циклов программирования с коррекци­ей ошибок. Применение — «твердые диски», цифровые камеры, диктофоны и т. п.

Флэш-память других фирм

Микросхемы флэш-памяти выпускаются многими фирмами. Они различаются по организации, интерфейсу, напряжению питания и программирования, методам защиты и другим параметрам. Лидеры в области разработки и производства флэш-памяти — фирмы AMD, Fujitsu Corporation, Intel Corporation и Sharp Corporation летом 1996 года приняли спецификацию CFI (Common Flash Memory Interface Specification), обеспечивающую совместимость разрабатываемого программного обеспечения с существующими и разрабатываемыми моделями флэш-памяти. Эта спецификация определяет механизм получения информации о производителе, организации, параметрах и возможных алгоритмах программирования микросхем флэш-памяти. Для этого микросхемы флэш-памяти должны поддерживать команду опроса QUERY. В первом шинном цикле в микросхему по адресу 55h посылается код 98h (микросхема может и игнорировать адрес, «отзываясь» только на код дан­ных 98h). Во втором шинном цикле, адресованном к этой микросхеме, выполняется чтение данных .идентификационной структуры (на шину адреса микросхемы пода­ется адрес интересующего байта структуры). Этими парами циклов структура может быть считана в произвольном порядке. Идентификационная структура содержит:

¦     ключ-признак наличия структуры — цепочка символов «QRY»;

¦     идентификатор (2 байта) первичного набора команд и интерфейса програм­

мирования;

304________________________________ Глава 7. Интерфейсы электронной памяти

¦     указатель на таблицу параметров для программирования (и саму таблицу);

¦     идентификатор, указатель и таблицу параметров альтернативного набора



команд и интерфейса (если имеется);

¦     минимальные и максимальные значения напряжений питания (основного

и программирующего);

¦     значение тайм-аутов для операций стирания (блока и всей микросхемы) и за­

писи (байта, слова, буфера);

¦     объем памяти;

¦     максимальное число байтов для многобайтной записи;

¦     описания независимо стираемых блоков.

Для перевода в режим чтения массива микросхемы должны воспринимать коман­ду чтения массива Read Ar ray — запись кода FFh (FOh) по любому адресу в мик­росхеме.

Для большинства изделий справедливы тенденции, описанные при рассмотрении микросхем Intel и AMD, а именно — повышение объема, снижение напряжений питания и потребляемой мощности, повышение производительности и упроще­ние внешнего интерфейса для операций стирания и программирования. По ин­терфейсу программирования микросхемы, у которых в начальной части обозна­чения стоит число «28», как правило, близки к флэш-памяти Intel, а с числом «29» — к флэш-памяти AMD.

Микросхемы с буферированным программированием или страничной записью (Fast Page Write) могут не иметь в своей системе команд отдельной операции сти­рания сектора. Внутренняя операция стирания (и предварительного обнуления сектора) выполняется при страничном программировании.

Для защиты от случайного выполнения ключевые последовательности команд содержат от 2 до 6 шинных циклов, причем у них может быть важен и адрес (как в микросхемах AMD). Методы защиты секторов имеют различную как программ­ную, так и аппаратную реализацию. Для временного снятия защиты используют различные способы, одним из которых является ключевая последовательность семи шинных циклов чтения.

Микросхемы флэш-памяти Micron совместимы с Intel и обозначаются аналогич­но, но начинаются с признака MT28F. Среди них есть и особенные, например: MT28F321P2FG - 2 М х 16 Page Flash Memory, MT28F322D18FH - 2 М х 16 Burst Flash Memory.



Фирма Silicon Storage Technology выпускает разнообразные микросхемы флэш-памяти с одним напряжением питания для всех операций. Их свойства можно определить по обозначению вида SST хх YY zzz — ttt, где хх — семейство:

¦     28 — побайтное программирование, посекторное стирание;

¦     29 — страничное программирование с прозрачным стиранием (команда стира­ния сектора отсутствует, внутренняя операция выполняется автоматически перед записью страницы в массив).

7.3. Энергонезависимая память________________________________________ 305

Элемент YY задает функциональный тип и напряжение питания:

¦     ЕЕ— EEPROM-совместимые, выполнение одной инструкции, Vcc = 5 В;

¦     LE - то же, что и ЕЕ, Vcc " 3 В;

¦     VE - то же, что и ЕЕ, Vcc - 2,7 В;

¦     SF— операции Super Flash Command Register, VCc = 5 В;

¦     IF-то же, что и SF, Vcc-3 В;

¦     W7-то же, что и SF, Vcc = 2,7 В;

¦     DM — Disk Media (для флэш-дисков, требует внешнего контроллера), Vcc = 5 В;

¦     LM — то же, что и DM, Vcc ~ 3 В;

¦     Ш-тоже, что и DM, VCC = 2,7B;

¦     PC — PCMCIA (интерфейс и протоколы), Vcc = 5 В.

Элемент zzz задает объем микросхемы:

¦     572 - 512 Кбит (64 К х 8);

¦     070-1Мбит(128Кх8);

¦     040-4Мбит(512Кх8);

¦     050 - 8 Мбит (1 М х 8);

¦     016-16Мбит(2Мх8);

¦     032 - 32 Мбит (4 М х 8).

Элемент ttt задает время доступа при чтении.

Микросхемы SST29EEQ10,29LE010 и 29VE010, часто применяемые в качестве носителя флэш-BIOS, организованы как 1024 страницы по 128 байт с программ­ной и аппаратной защитой. Каждая страница может быть защищена независимо от других. Временные диаграммы стирания и программирования, а также необхо­димое напряжение программирования генерируются внутри микросхемы.Окон­чание операции определяется по алгоритму Toggle Bit или Data# Polling.

Аналогичные параметры имеют микросхемы 29ЕЕ011,29LE011,29VE011 фирмы Winbond.


Expansion ROM карт PCI


Для содержимого ПЗУ расширения BIOS, установленных на картах PCI, принят стандарт, несколько отличающийся от традиционных дополнительных модулей ROM BIOS. Заголовок ПЗУ соответствует традиционному, но дополнительно име­ет указатель на структуру данных PCI (табл. 12.10). Идентификаторы производи­теля и устройства, а также код класса совпадают с описанными в конфигурацион­ном пространстве устройства PCI. Поскольку шина PCI используется не только в PC, в ПЗУ карты может храниться несколько модулей. Каждый модуль начина­ется со структуры данных, сам модуль следует сразу за структурой. За ним начи­нается структура для следующего модуля (если у предыдущего не установлен при­знак последнего модуля) и так далее. Тип платформы (процессора) указывается в заголовке модуля, и при инициализации BIOS активизируется только нужный. Такой механизм позволяет, например, один и тот же графический адаптер уста­навливать и в IBM PC, и в Power PC.

Таблица 12.10. Структура данных PCI

Смещение

Длина,байт

Назначение

0

4

Сигнатура, строка символов "PCIR"

4

2

Идентификатор производителя

6

2

Идентификатор устройства

8

2

Резерв1

Ah

2

Длина структуры (байт), начиная с сигнатуры

Ch

1

Версия структуры (0 для данной версии)

Dh

3

Код класса

10h

2

Длина образа

12h

2

Версия кода/данных

14h

1

Тип кода: 0 — х86 для РС-АТ, 2 — HP PA-RISC

15h

1

Индикатор: 1 — последний образ, 0 — не последний

16h

2

Резерв

1 До спецификации PCI 2.2 здесь помещался указатель на строку Vital Product Data (важные сведения о продукте).

Применительно к дополнительному ПЗУ карты PCI имеется три параметра, от­носящихся к размерам. Размер ПЗУ определяется чтением конфигурационного пространства. Размер, указанный во 2-м байте заголовка, указывает на длину мо­дуля на этапе инициализации. Этот модуль POST загружает в ОЗУ перед тем, как вызвать процедуру инициализации (точка входа со смещением 3).
Контрольная сумма, расположенная обычно в конце модуля, обеспечивает нулевую сумму всех байт. Длина образа, указанная в структуре данных PCI (слово со смещением 10h), описывает размер области, которая должна оставаться в памяти в режиме нор­мального функционирования (она может быть меньше, поскольку код процедуры инициализации уже не требуется). Эта область также защищается контрольной суммой. Структура данных PCI должна оставаться в памяти все время.

504______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Работа с модулями ПЗУ для карт PCI выполняется в соответствии с моделью DDIM(см. выше). POST определяет наличие ПЗУ пополю Expansion ROM Base Address в конфигурационном пространстве и назначает ему адрес в свободном пространстве памяти. После этого программированием регистра команд разреша­ется считывание ПЗУ, и в нем ищется сигнатура заголовка АА55Н. Когда сигнатура найдена, POST ищет подходящий образ (по типу кода и совпадающий по иденти­фикаторам с обнаруженными устройствами PCI) и загружает его в ОЗУ (в область COOOO-DFFFFh), оставляя разрешенной запись в эту область. Далее чтение ПЗУ запрещается (записью в поле Expansion ROM Base ^Address), и вызывается про­цедура инициализации (по адресу 3). При вызове процедуры POST сообщает но­мер шины (в регистре АН), номер устройства (AL[7:3]) и номер функции (AL[2:0]), благодаря чему процедура узнает точные координаты аппаратных средств. После этого определяется размер области, которую следует оставить в памяти (по байту 2, который может быть модифицирован процедурой инициализации), и для этой области запрещается запись. Если процедура инициализации «урезает» занима­емую память, она должна позаботиться о достоверности контрольной суммы обла­сти, описанной байтом 2. Если память освобождается полностью (процедура обну­ляет байт 2), то контрольная сумма, естественно, не нужна. Расширение для VGA (определяется по коду класса) обрабатывается особым образом — загружается по адресу COOOOh.Процедура инициализации может определить наличие PnP BIOS в системе, проверив значение контрольной структуры PnP по адресу, указанному в Е5: DI, и исполняться в зависимости от обнаруженного системного окружения.


Физический и электрический интерфейсы


Стандарт IEEE 1284 определяет физические характеристики приемников и пере­датчиков сигналов, которые по уровням совместимы с ТТЛ. Спецификации стан­дартного порта не задавали типов выходных схем, предельных значений величин нагрузочных резисторов и емкости, вносимой цепями и проводниками. На отно­сительно невысоких скоростях обмена разброс этих параметров не вызывал проб­лем совместимости. Однако расширенные (функционально и по скорости переда­чи) режимы требуют четких спецификаций. IEEE 1284 определяет два уровня интерфейсной совместимости. Первый уровень (Level I) определен для устройств медленных, но использующих смену направления передачи данных. Второй уро­вень (Level II) определен для устройств, работающих в расширенных режимах с высокими скоростями и длинными кабелями. К передатчикам предъявляются следующие требования.

¦     Уровни сигналов без нагрузки не должны выходить за пределы -0,5... +5,5 В.

¦     Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для высокого уровня (VOH) и не выше +0,4 В для низкого уровня (У0ь) на постоян­ном токе.

¦     Выходной импеданс R0, измеренный на разъеме, должен составлять 50±5 Ом на уровне VOh-V0l- Для обеспечения заданного импеданса используют после­довательные резисторы в выходных цепях передатчика. Согласование импе­данса передатчика и кабеля снижает уровень импульсных помех.

¦     Скорость нарастания (спада) импульса должна находиться в пределах 0,05-

0,4 В/не.

Ниже перечислены требования к приемникам.

¦     Допустимые пиковые значения сигналов -2,0...+7,0 В.

¦     Пороги срабатывания должны быть не выше 2,0 В (VIH) для высокого уровня и не ниже 0,8 В (VIL) для низкого.

¦     Приемник должен иметь гистерезис в пределах 0,2-1,2 В (гистерезисом обла­дают специальные микросхемы — триггеры Шмитта).

1.3. Стандарт IEEE 1284


39

¦     Входной ток микросхемы (втекающий и вытекающий) не должен превышать

20 мкА, входные линии соединяются с шиной питания +5 В резистором 1,2 кОм.

¦     Входная емкость не должна превышать 50 пФ.

Когда появилась спецификация ЕСР, компания Microsoft рекомендовала при­менение динамических терминаторов на каждую линию интерфейса. Однако в настоящее время следуют спецификации IEEE 1284, в которой динамические терминаторы не применяются. Рекомендованные схемы входных, выходных и двунаправленных цепей приведены на рис. 1.7.

Стандарт IEEE 1284 определяет три типа используемых разъемов. Типы A (DB-25) и В (Centronics-36) характерны для традиционных кабелей подключения принте­ра, тип С — новый малогабаритный 36-контактный разъем.



Рис. 1.7. Оконечные цепи линий интерфейса IEEE 1284: a — однонаправленные линии,

б—двунаправленные

Традиционные интерфейсные кабели имеют от 18 до 25 проводов, в зависимости от числа проводников цепи GND. Эти проводники могут быть как перевитыми, так и нет. К экранированию кабеля жестких требований не предъявлялось. Такие кабели вряд ли будут надежно работать на скорости передачи 2 Мбайт/с и при длине более 2 м.

Стандарт IEEE 1284 регламентирует свойства кабелей.

¦ Все сигнальные линии должны быть перевитыми с отдельными обратными (общими) проводами.

40

Глава 1. Параллельный интерфейс — LPT-порт

¦     Каждая пара должна иметь импеданс 62±б Ом в частотном диапазоне 4-16 МГц.

¦     Уровень перекрестных помех между парами не должен превышать 10 %.

¦     Кабель должен иметь экран (фольгу), покрывающий не менее 85 % внешней поверхности. На концах кабеля экран должен быть окольцован и соединен с контактом разъема.

Кабели, удовлетворяющие этим требованиям, маркируются надписью «IEEE Std 1284-1994 Compliant». Они могут иметь длину до 10 метров, обозначения ти­пов приведены в табл. 1.10.

Таблица 1.10. Типы кабелей IEEE 1284



Тип     Расшифровка

Разъем 1   Разъем 2

АМАМ

Type A Male — Type A Male

А (вилка)

А(вилка)

AMAF

Type A Male — Type A Female

А(вилка)

А(розетка)

АВ

Type A Male — Туре В Plug — стандартный кабель к принтеру

А (вилка)

В

АС

Type A Male — Туре С Plug — новый кабель к принтеру

А (вилка)

С

ВС

Туре В Plug — Type С Plug

В

С

СС

Туре С Plug — Type С Plug

С

С


Физический уровень сети


Кабельная сеть 1394 собирается по простым правилам — все устройства соединя­ются друг с другом кабелями по любой топологии (древовидной, цепочечной, звез­дообразной). Каждое «полноразмерное» устройство (узел сети) обычно имеет три равноправных соединительных разъема. Некоторые малогабаритные устройства могут иметь только один разъем, что ограничивает возможные варианты их мес­тоположения. Стандарт допускает и до 27 разъемов на одном устройстве, которое будет играть роль кабельного концентратора. Допускается множество вариантов подключения устройств, но со следующими ограничениями:

¦     между любой парой узлов может быть не более 16 кабельных сегментов;

¦     длина сегмента стандартного кабеля не должна превышать 4,5 м;

¦     суммарная длина кабеля не должна превышать 72 м (применение более каче­ственного кабеля позволяет ослабить влияние этого ограничения);

¦     топология не должна иметь петель, хотя в последующих ревизиях предполага­

ется автоматическое исключение петель в «патологических» конфигурациях.

Стандартный кабель 1394 содержит 6-проводов, заключенных в общий экран, и имеет однотипные 6-контактные разъемы на концах (рис. 4.6, а). Две витые пары используются для передачи сигналов (ТРА и ТРВ) раздельно для приемника и передатчика, два провода задействованы для питания устройств (8-40 В, до 1,5 А). В стандарте предусмотрена гальваническая развязка устройств, для чего исполь­зуются трансформаторы (напряжение изоляции развязки до 500 В) или конден­саторы (в дешевых устройствах с напряжением развязки до 60 В относительно общего провода). Некоторые бытовые устройства имеют только один 4-контакт­ный разъем меньшего размера (рис. 4.6, б), у которого реализованы только сигналь­ные цепи. Эти устройства подключаются к шине через специальный переходной кабель только как оконечные (хотя возможно применение специальных адапте-ров-разветвителей). В кабелях FireWire сигнальные пары соединяются перекрест­но (табл. 4.2), поскольку все порты равноправны.


108                                                         Глава 4. Последовательные шины USB и FireWire



                                                а                                                                      б

Рис. 4.6. Разъемы FireWire: а — 6-контактное гнездо, б — 4-контактное гнездо

Таблица 4.2. Соединительные кабели FireWire

Разъем А

Провод

Разъем Б

4-конт.

6-конт.

Цепь

Цепь

6-конт.

4-конт.

-

1

Power

Белый

Power

1

-

2

GND

Черный

GND

2

1

3

УРЕ-

Красный

ТРА-

5

3

2

4

ТРЕ*

Зеленый

ТРА+

6

4

3

5

ТРА-

Оранжевый

ТРВ-

3

1

4

6

УРА*

Синий

ТРВ+

4

2

Экран

Экран

Экран

Экран

Экран

Экран

Экран

В грядущей версии, которая пока называется Р 1394Ь, предусматриваются и но­вые варианты среды передачи:

¦     кабель UTP категории 5 со стандартными коннекторами RJ-45 (используются две пары проводов), длина сегмента до 100 м — дешевый вариант для S100;

¦     пластиковое оптоволокно (два волокна POF для небольших расстояний и HPCF для больших дистанций) — дешевый вариант для S200;

¦     многомодовое оптоволокно (два волокна 50 мкм) — более дорогой вариант для будущих скоростей вплоть до S3200.

Каждое устройство, имеющее более одного разъема 1394, является повторителем. Сигнал, обнаруженный на входе приемника с любого разъема, ресинхронизиру-ется по внутреннему тактовому генератору и выводится на передатчики всех ос­тальных разъемов. Таким образом осуществляется доставка сигналов от каждого устройства ко всем остальным и предотвращается накопление «дрожания» (jitter) сигнала, ведущее к потере синхронизации.

Стандарт 1394 определяет две категории шин: кабельные шины и кросс-шины (Backplane). Под кросс-шинами подразумеваются обычно параллельные интерфей­сы, объединяющие внутренние подсистемы устройства, подключенного к кабе­лю 1394.Сеть может состоять из множества шин, соединенных мостами — спе­циальными устройствами, осуществляющими передачу пакетов между шинами, фильтрацию трафика, а для соединения разнородных шин еще и необходимые преобразования интерфейсов. Интерфейсная карта шины FireWire для PC представ­ляет собой мост PCI — 1394. Мостами являются также соединения кабельной шины 1394 с кросс-шинами периферийных устройств. Мосты могут соединять и кабель­ные шины, что расширяет топологические возможности соединения устройств.

4.2. Шина IEEE 1394— FireWire

109


Функциональное тестирование


В первом приближении СОМ-порт можно проверить диагностической про­граммой (Checklt) без использования заглушек. Этот режим тестирования про­веряет микросхему UART (внутренний диагностический режим) и вырабаты­вание прерываний, но не входные и выходные буферные микросхемы, которые являются более частыми источниками неприятностей. Если тест не проходит, причину следует искать или в конфликте адресов/прерываний, или в самой мик­росхеме UART.

Для более достоверного тестирования рекомендуется использовать внешнюю за­глушку, подключаемую к разъему СОМ-порта (рис; 2.16). В отличие от ЬРТ^порта у СОМ-порта количество входных сигналов превышает количество выходных, что позволяет выполнить полную проверку всех цепей. Заглушка соединяет выход приемника с входом передатчика. Обязательная для всех схем заглушек перемыч­ка RTS-CTS позволяет работать передатчику — без нее символы не смогут переда­ваться. Выходной сигнал DTR обычно используют для проверки входных линий DSR, DCDnRI.

2.10. Неисправности и тестирование СОМ-портов

75

Рис. 2.16. Заглушка для проверки СОМ -портов (LoopBack для Checklt и Norton Diagnostics)

Если тест с внешней заглушкой не проходит, причину следует искать во внешних буферах, их питании или в ленточных кабелях, служащих для подключения внеш­них разъемов. Здесь может помочь осциллограф или вольтметр. Последователь­ность проверки может быть следующей:

1.   Проверить наличие двуполярного питания выходных схем передатчиков (этот

шаг логически первый, но/поскольку он технически самый сложный, его мож­

но отложить на крайний случай, когда появится желание заменить буферные

микросхемы).

2.   Проверить напряжение на выходах TD, RTS и DTR: после аппаратного сброса

на выходе TD должен быть отрицательный потенциал около -12 В (по край­

ней мере, ниже -5 В), а на выходах RTS и DTR — такой же положительный. Если этих потенциалов нет, возможна ошибка подключения разъема к плате через



ленточный кабель. Распространенные варианты:

•       ленточный кабель не подключен;

•       ленточный кабель подключен неправильно (разъём перевернут или встав­

лен со смещением);

•       раскладка ленточного кабеля не соответствует разъему платы.

Первые два варианта проверяются внимательным осмотром, третий же может потребовать некоторых усилий. В табл. 2.1 приведены три варианта расклад­ки 10-проводного ленточного кабеля для разъема СОМ-порта, известных автору; для СОМ-портов на системных платах возможно существование и других. Тео­ретически ленточный кабель должен поставляться в соответствии с разъемом.

Если дело в ошибочной раскладке, то эти три выходных сигнала удастся обна­ружить на других контактах разъемов (на входных контактах потенциал со­всем небольшой). Если эти сигналы обнаружить не удалось, очевидно, вышли из строя буферные формирователи.

3.  Соединив контакты линий RTS и CTS (или установив заглушку), следует по­

пытаться вывести небольшой файл на СОМ-порт (например, командой COPY

С: \AUTOEXEC. ВАТ COMl:). С исправным портом эта команда успешно выпол­нится за несколько секунд с сообщением об успешном копировании. При этом

76________________________ Глава 2. Последовательный интерфейс — СОМ-порт

потенциалы на выходах RTS и DTR должны измениться на отрицательные, а на выходе TD должна появиться пачка двуполярных импульсов с амплитудой бо­лее 5 В. Если потенциалы RTS и DTR не изменились, ошибка в буферных фор­мирователях. Если на выходе RTS (и входе CTS) появился отрицательный по­тенциал, а команда COPY завершается с ошибкой, скорее всего, вышел из строя приемник линии CTS (или опять-таки ошибка в ленточном кабеле). Если ко­манда COPY успешно проходит, а изменения на выходе TD не обнаруживаются (их можно увидеть стрелочным вольтметром, но оценить амплитуду импуль­сов не удастся), виноват буферный передатчик сигнала TD.



Замена микросхем приемников и передатчиков существенно облегчается, если они установлены в «кроватки». Перед заменой следует с помощью осциллографа или вольтметра удостовериться в неисправности конкретной микросхемы.

Если буферные элементы включены в состав интерфейсной БИС (что теперь весь­ма распространено), то такой порт ремонту не подлежит (по крайней мере, в обыч­ных условиях). Неисправный СОМ-порт, установленный на системной плате, можно попытаться отключить в BIOS SETUP, но порт мог сгореть и вместе со схемой своего отключения — тогда он останется «живым мертвецом» в карте пор­тов ввода-вывода и прерываний. Иногда он полностью выводит из строя систем­ную плату.

Источниками ошибок могут являться разъемы и кабели. В разъемах встречаются плохие контакты, а кабели, кроме возможных обрывов, могут иметь плохие частот­ные характеристики. Частотные свойства кабелей обычно сказываются при боль­шой длине (десятки метров) на высоких скоростях обмена (56 или 115 Кбит/с). При необходимости использования длинных кабелей на высоких скоростях сиг­нальные провода данных должны быть перевиты с отдельными проводами «схем­ной земли».

В ряде отечественных PC-совместимых (почти) компьютеров для последователь­ного интерфейса применялась микросхема КР580ВВ51 — аналог 18251. Однако эта микросхема является универсальным синхронно-асинхронным приемопередат­чиком (УСАПП или USART — Universal Asynchronous Receiver-Transmitter). Совместимости с PC на уровне регистров СОМ-порта такие компьютеры не име­ют. Хорошо, если у соответствующих компьютеров имеется «честный» драйвер BIOS Int 14h, а не заглушка, возвращающая состояние модема «всегда готов» и ничего не делающая.


Гальваническая развязка


Гальваническая развязка сигнальных цепей — это отсутствие связи по постоянно­му току между ними, «схемной землей» и другими питающими шинами. При нали­чии гальванической развязки потенциал сигнальных цепей относительно «схемной земли» может быть весьма значительным, но не должен превышать напряжения изоляции, допустимого для данного интерфейса. Гальваническая развязка может обеспечиваться разными способами, применимость их зависит от требований к напряжению изоляции и особенностей интерфейсных сигналов.

Оптическая развязка позволяет передавать дискретные сигналы в широком диа­пазоне частот, от постоянного тока до предела, обусловленного быстродействием приемника. Оптическая развязка может выполняться на оптронах — комбинаци­ях излучателя (светодиода) и приемника (фотодиода, фототранзистора с усили-

13.3. Интерфейсы блока питания PC     __________________________________ 511

телем-формирователем) в одной микросхеме. Напряжение изоляции может до­стигать 1-1,5 кВ, максимальная частота — от десятков кГц до десятков МГц. Оп-тронная развязка применяется, например, в интерфейсах «токовая петля», MIDI. Еще лучшую развязку (по напряжению) обеспечивают интерфейсы с оптоволо­конной связью, где между излучателем и приемником располагается оптический кабель с коннекторами. Такая связь применяется в линиях Fiber Channel, опти­ческих версиях Ethernet (и других сетевых технологиях), а также цифровой аудио-технике (S/PDIF). Полоса частот может достигать единиц и десятков Гигагерц, но это требует дорогостоящих излучателей и приемников. В оптических интер­фейсах используется стеклянное и пластиковое волокно. Стеклянное волокно позволяет обеспечивать большую дальность связи, но все компоненты довольно дороги, а оконцовка волокна разъемами — довольно сложная процедура, которая может упрощаться за счет применения дорогих компонентов. Если дальность свя­зи ограничивается единицами-десятками метров, то применяют гораздо более дешевое пластиковое волокно.


Трансформаторная развязка не позволяет передавать сигналы постоянного тока, но она гораздо дешевле оптической, и достижение высоких частот здесь не имеет столь существенных проблем. Напряжение изоляции разделительных трансфор­маторов, применяемых в интерфейсных схемах, составляет 0,5-2,5 кВ. Трансфор­маторная развязка применяется в локальных сетях (все адаптеры электрических версий Ethernet имеют импульсные трансформаторы во входных и выходных це­пях), в Fibre Channel, модемах для телефонных и выделенных линий, цифровой аудиотехнике (S/PDIF).

Конденсаторная развязка — самый дешевый, но и неэффективный способ развяз­ки, практически не защищающий от помех в интерфейсах. Такая развязка может применяться в дешевых устройствах Fire Wire.

Гальваническая развязка применяется также в источниках питания, где она необ­ходима для обеспечения безопасности работы с устройствами. Гальваническая развязка между входом и выходом имеется у всех источников питания, в которых используются трансформаторы. У источников с трансформаторным входом на первичную обмотку трансформатора подается входное напряжение переменного тока (110-240 В, 50-60 Гц), а ко вторичной обмотке подключается выпрямитель (и стабилизатор напряжения, если имеется). У источников с бестрансформатор­ным входом основная часть схемы (выпрямитель, преобразователь-стабилизатор) не развязана с входом; отсутствие трансформатора позволяет им работать и от сети постоянного тока.


Аппаратные интерфейсы ПК


Интерфейсы компьютерных сетей

Компьютерные сети разделяются на локальные (в пределах здания или группы соседних зданий) и глобальные. В настоящее время в локальных сетях установи­лось практически полное господство технологии Ethernet с пропускной способно­стью 10,100 и 1000 Мбит/с, не за горами и скорость 10 Гбит/с. Из множества техно­логий и интерфейсов глобальных подключений здесь рассмотрим лишь интерфейс обычной (аналоговой) коммутируемой телефонной сети. Именно этот интерфейс широко используется для подключения модемов. Других технологий — локальных ARCNet, Token Ring, l OOVG- Any LAN и беспроводных, а также глобальных касать­ся не будем. Как и Ethernet, они достаточно подробно описаны в литературе [3].



Аппаратные интерфейсы ПК


Параллельный интерфейс — LPT-порт

Порт параллельного интерфейса был введен в PC для подключения принтера — отсюда и пошло его название LPT-порт (Line PrinTer — построчный принтер). Традиционный, он же стандартный, LPT-порт (так называемый SPP-nopm) ориен­тирован на вывод данных, хотя с некоторыми ограничениями позволяет и вводить данные. Существуют различные модификации LPT-порта — двунаправленный, ЕРР, ЕСР и другие, расширяющие его функциональные возможности, повыша­ющие производительность и снижающие нагрузку на процессор. Поначалу они яв­лялись фирменными решениями отдельных производителей, позднее был принят стандарт IEEE 1284.

С внешней стороны порт имеет 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов, выведенные на разъем-розет­ку DB-25S. В LPT-порте используются логические уровни ТТЛ, что ограничи­вает допустимую длину кабеля из-за невысокой помехозащищенности ТТЛ-ин­терфейса. Гальваническая развязка отсутствует — схемная земля подключаемого устройства соединяется со схемной землей компьютера. Из-за этого порт являет­ся уязвимым местом компьютера, страдающим при нарушении правил подключе­ния и заземления устройств. Поскольку порт обычно располагается на системной плате, в случае его «выжигания» зачастую выходит из строя и его ближайшее окружение, вплоть до выгорания всей системной платы.

С программной стороны LPT-порт представляет собой набор регистров, располо­женных в пространстве ввода-вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обыч­но IRQ7 или IRQ5. В расширенных режимах может использоваться и канал DMA.

Порт имеет поддержку на уровне BIOS — поиск установленных портов во время теста POST и сервисы печати Int 17h (см. п. 8.3.3) обеспечивают вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера.

Практически все современные системные платы (еще начиная с PCI-плат для про­цессоров 486) имеют встроенный адаптер LPT-порта. Существуют карты ISA с LPT-портом, где он чаще всего соседствует с парой СОМ-портов, а также с контроллерами

18

Глава 1. Параллельный интерфейс — LPT-nopr

дисковых интерфейсов (FDC+IDE). LPT-порт обычно присутствует и на плате дисплейного адаптера MDA (монохромный текстовый) и HGC (монохромный графический «Геркулес»). Есть и карты PCI с дополнительными LPT-портами.

К LPT-портам подключают принтеры, плоттеры, сканеры, коммуникационные устройства и устройства хранения данных, а также электронные ключи, программа­торы и прочие устройства. Иногда параллельный интерфейс используют для связи между двумя компьютерами — получается сеть, «сделанная наколенке» (LapLink).



Аппаратные интерфейсы ПК


Последовательный интерфейс — СОМ-порт

Универсальный внешний последовательный интерфейс — СОМ-порт (Com­munications Port — коммуникационный порт) присутствует в PC начиная с пер­вых моделей. Этот порт обеспечивает асинхронный1

обмен по стандарту RS-232C. СОМ-порты реализуются на микросхемах универсальных асинхронных приемо­передатчиков. (UART), совместимых с семейством i8250/16450/16550. Они зани­мают в пространстве ввода-вывода по 8 смежных 8-битных регистров и могут рас­полагаться по стандартным базовым адресам 3F8h (COM1), 2F8h (COM2), 3E8h (COM3), 2E8h (COM4). Порты могут вырабатывать аппаратные прерывания IRQ4 (обычно используются для СОМ1 и COM3) и IRQ3 (для COM2 и COM4). С внешней стороны порты имеют линии последовательных данных передачи и при­ема, а также набор сигналов управления и состояния, соответствующий стандар­ту RS-232C. СОМ-порты имеют внешние разъемы-вгшсм (male — «папа») DB25P или DB9P, выведенные на заднюю панель компьютера (см. п. 2.1). Характерной особенностью интерфейса является применение «не ТТЛ» сигналов — все внеш­ние сигналы порта двуполярные. Гальваническая развязка отсутствует — схемная земля подключаемого устройства соединяется со схемной землей компьютера. Скорость передачи данных может достигать 115 200 бит/с.

Компьютер может иметь до четырех последовательных портов СОМ 1-COM4 (для машин класса AT типично наличие двух портов) с поддержкой на уровне BIOS. Сервис BIOS Int 14h обеспечивает инициализацию порта, ввод и вывод символа (не используя прерываний) и опрос состояния. Через Int 14h скорость передачи программируется в диапазоне 110-9600 бит/с (меньше, чем реальные возможно­сти порта). Для повышения производительности широко используется взаимодей­ствие программ с портом на уровне регистров, для чего требуется совместимость аппаратных средств СОМ-порта с программной моделью 18250/16450/16550.

Название порта указывает на его основное назначение — подключение коммуника­ционного оборудования (например, модема) для связи с другими компьютерами, сетями и периферийными устройствами.
К порту могут непосредственно подклю­чаться и периферийные устройств с последовательным интерфейсом: принтеры, плоттеры, терминалы и другие. СОМ-порт широко используется для подклю­чения мыши, а также организации непосредственной связи двух компьютеров. К СОМ-порту подключают и электронные ключи.

Синхронный обмен в PC поддерживают лишь специальные адаптеры, например SDLC или V.35.
2.1. Интерфейс RS-232C
49
Практически все современные системные платы (еще начиная с PCI-плат для про­цессоров 486) имеют встроенные адаптеры двух СОМ-портов. Один из портов может использоваться и для беспроводной инфракрасной связи с периферийны­ми устройствами (IrDA). Существуют карты ISA с парой СОМ-портов, где они чаще всего соседствуют с LPT-портом, а также с контроллерами дисковых интер­фейсов (FDC+IDE). Если возникает потребность в большом количестве последо­вательных интерфейсов, то в ПК можно установить специальные адаптеры-муль­типлексоры. Это весьма дорогие карты, они выпускаются обычно на 4,8,12 и даже 16 портов. Такое большое число разъемов на заднюю стенку ПК вывести пробле­матично, и у мультиплексоров обычно имеется внешний блок с разъемами (и элек­троникой), соединяемый с адаптером кабелем с многоконтактными разъемами. BIOS мультиплексоры не поддерживает.
«Классический» СОМ-порт позволял осуществлять обмен данными только про­граммно-управляемым способом, при этом для пересылки каждого байта процессору приходится выполнять несколько инструкций. Современные порты имеют FIFO-буферы данных и позволяют выполнять обмен по каналу DMA, существенно разгру­жая центральный процессор, что особенно важно на больших скоростях обмена.

Аппаратные интерфейсы ПК


Беспроводные интерфейсы

Беспроводные (wireless) интерфейсы позволяют освободить устройства от связы­вающих их интерфейсных кабелей, что особенно привлекательно для малогаба­ритной периферии, по размеру и весу соизмеримой с кабелями. В беспроводных интерфейсах используются электромагнитные волны инфракрасного (IrDA) и радиочастотного (Bluetooth) диапазонов. Кроме этих интерфейсов периферийных устройств существуют и беспроводные способы подключения к локальным сетям (см. [3]).



Аппаратные интерфейсы ПК


Последовательные шины USB и Fire Wire

Последовательные шины позволяют объединять множество устройств, используя всего 1-2 пары проводов. Функциональные возможности этих шин гораздо шире, чем у традиционных интерфейсов локальных сетей, — USB и FireWire способны передавать изохронный трафик аудио- и видеоданных. Последовательные шины по своей организации сильно отличаются от параллельных. В последовательных шинах нет отдельных линий для данных, адреса и управления — все протоколь­ные функции приходится выполнять, пользуясь одной или двумя (в FireWire) парами сигнальных проводов. Это накладывает отпечаток на построение шинно­го протокола, который в последовательных шинах строится на основе пересылок пакетов — определенным образом организованных цепочек бит. Заметим, что в терминологии USB пакеты и кадры имеют несколько иную трактовку, нежели в сетях передачи данных. В параллельных шинах имеются возможности явной синхронизации интерфейсной части ведущих и ведомых устройств; исполнение каждого шага протокола обмена может быть подтверждено, и, при необходимо­сти, некоторые фазы обмена могут продлеваться по «просьбе» не успевающего устройства. В последовательных шинах такой возможности нет — пакет пересы­лается целиком, а синхронизация возможна только по принимаемому потоку бит. Эти и другие особенности сближают последовательные шины с локальными сетя­ми передачи данных.

Наибольшую популярность имеют шины USB и FireWire, хотя последняя пока что в PC-совместимых компьютерах используется не повсеместно. Последователь­ные шины FireWire и USB, имея общие черты, являются, тем не менее, существен­но различными технологиями. Обе шины обеспечивают простое подключение большого числа ПУ (127 для USB и 63 для FireWire), допуская коммутации и вклю­чение/выключение устройств при работающей системе. По структуре топология обеих шин достаточно близка, но FireWire допускает большую свободу и простран­ственную протяженность. Хабы USB входят в состав многих устройств и для пользователя их присутствие зачастую незаметно.
Обе шины имеют линии пита­ ния устройств, но допустимая мощность для FireWire значительно выше. Обе шины поддерживают технологию PnP (автоматическое конфигурирование при включении/выключении) и снимают проблему дефицита адресов, каналов DMA и прерываний. Различаются пропускная способность и управление шинами.
88___________________________ Глава 4. Последовательные шины USB и FireWire
Шина USB ориентирована на периферийные устройства, подключаемые к PC. Изохронные передачи USB позволяют передавать цифровые аудиосигналы, а шина USB 2.0 способна нести и видеоданные. Все передачи управляются централизо­ванно, и PC является необходимым управляющим узлом, находящимся в корне древовидной структуры шины. Адаптер USB пользователи современных ПК по­лучают почти бесплатно, поскольку он входит в состав всех современных чипсе­тов системных плат. Правда, адаптеры USB 2.0 первое время будут выпускаться в виде карт PCI. Непосредственное соединение нескольких PC шиной USB не пре­дусматривается, хотя выпускаются «активные кабели» для связи пары компьюте­ров и устройства-концентраторы.
Шина FireWire ориентирована на устройства бытовой электроники, которые с ее помощью могут быть объединены в единую домашнюю сеть. К этой сети может быть подключен компьютер, и даже не один. Принципиальным преимуществом шины 1394 является отсутствие необходимости в специальном контроллере шины (компьютере). Любое передающее устройство может получить полосу изохрон­ного трафика и начинать передачу по сигналу автономного или дистанционного управления — приемники «услышат» эту информацию. При наличии контролле­ра соответствующее ПО может управлять работой устройств, реализуя, например, цифровую студию нелинейного видеомонтажа или снабжая требуемыми мульти­медийными данными всех заинтересованных потребителей информации.

Аппаратные интерфейсы ПК


Шина SCSI

Системный интерфейс малых компьютеров SCSI (Small Computer System Interface, произносится «скази») предназначен для соединения устройств различных клас­сов: памяти прямого (жесткие диски) и последовательного доступа (стриммеры), CO-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуника­ционных устройств и процессоров. Устройством SCSI (SCSI Device) называется как хост-адаптер, связывающий шину SCSI с какой-либо внутренней шиной ком­пьютера, так и контроллер целевого устройства (target controller), с помощью кото­рого устройство подключается к шине SCSI. С точки зрения шины все устройства могут быть равноправными и являться как инициаторами обмена (инициализи­рующими устройствами, ИУ), так и целевыми устройствами (ЦУ), однако чаще всего в роли И У выступает хост-адаптер. Каждое ЦУ может содержать до 8 неза­висимо адресуемых логических устройств (ЛУ) со своими номерами LUN (Logical Unit Number), представляющих ПУ или их части.

Цервая версия,шины, позже названная SCSI-1, была стандартизована ANSI в 1986 грду (ХЗ. 131-1986). Это была 8-битная параллельная шина с максимальной час­тотой переключений1 5 МТ/с, допускающая подключение до 8 устройств. Ско­рость передачи данных достигала 5 Мбайт/с, режим передачи данных — асинхрон­ный, Впоследствии (199;1 гО появилась спецификация SCSI-2 (ХЗ.131-1994), расширяющая возможности шины. Частота переключений шины Fast SCSI-2 дости-щет.10 MT/Cj а Шга SCSI-2 — 20 МТ/с, Разрядность данных может быть увеличена до 16 бит — этд

версия называется Wide SCSI-2 (широкая), а 8-битную версию ста­ли называть Narrow (узкая). 16-битная шина допускает включение 16 устройств. Стандарт SCSI-2 определяет и 32-бктную версию интерфейса, которая не полу­чила практического применения. Появился синхронный режим передачи данных, введена дифференциальная версия интерфейса. Спецификация SCSI-2 определяет систему команд, которая включает набор базовых команд CCS (Common Command Set), обязательных для всех ПУ, и специфических команд для периферии различ­ных классов.
Стандарт полностью описывает протокол взаимодействия устройств, включая структуры передаваемо^ информации. Поддержка устройствами испол­нения цепочек команд (до 256 команд) и независимость работы устройств друг от друта:
обусловливают высокую эффективность применения SCSI в многозадачных системах. Возможность присутствия на шине более одного контроллера (инициа­тора обмена) Позволяет обеспечить разделение (совместное использование) пери-

V МТ/с -^
миллионов передач в секунду (MT/s, Mega Transfer/sec). Называть это тактовой частотой не­корректно, поскольку тактового сигнала в, шине нет.
Шина SCSI________________________________________________________ 115
ферии несколькими компьютерами, подключенными к одной шине. Эти свойства обеспечивают SCSI неоспоримые преимущества перед АТА в качестве интерфей­са для мощных систем хранения данных.
Спецификация SCSI-3 — дальнейшее развитие стандарта, направленное на увеличе­ние количества подключаемых устройств, расширение системы команд и поддерж­ку технологии PnP. В качестве альтернативы параллельному интерфейсу SPI (SCSI-3 Parallel Interface) появляется возможность применения последовательно­го, в том числе волоконно-оптического интерфейса со скоростью 100 Мбайт/с. Спецификация SCSI-3 существует в виде широкого спектра документов, определя­ющих отдельные аспекты интерфейса на уровне физических соединений, транспорт­ных протоколов и наборов команд. Транспортный уровень может использовать раз­личные протоколы с соответствующей поддержкой физических соединений:
¦ SPI (SCSI Parallel Interface) — параллельный интерфейс (разъемы, сигналы);
¦     SIP (SCSI-3 Interlocked Protocol) — протокол обмена традиционного интер­

фейса, физически реализуемый интерфейсом SPI;
¦     FCP (Fibre Channel Protocol) — протокол оптоволоконного канала с соответству­ющим физическим уровнем FC-PH со скоростью передачи данных 100 Мбайт/с;
¦     SBP (Serial Bus Protocol) — протокол последовательной шины, реализуемый интерфейсом 1394 (FireWire);


¦     GPP (Generic Packetized Protocol) — обобщенный пакетный протокол, реали­зуемый любым пакетным интерфейсом;
¦     SSP (Serial Storage Protocol) — последовательный протокол памяти, реализован­ ный на архитектуре последовательной памяти SSA (Serial Storage Architecture).
Ниже описана история развития параллельных интерфейсов в спецификации SCSI-3.
¦     В стандарте SPI (1995 г.) определен Р-кабель и коннекторы для широкой

шины на одном кабеле с 68-контактными разъемами, называемый «кабелем

SCSI-3». SPI определяет скорость Fast SCSI (Fast Wide SCSI со скоростью

20 Мбайт/с). Позже появилось дополнительная спецификация Fast-20, более известная как Ultra SCSI (Ultra Wide SCSI со скоростью 40 Мбайт/с).
¦     В стандарте SPI-2 (1999 г.) снова удвоена частота переключений благодаря

использованию интерфейса LVD. Интерфейс Fast-40 SCSI более известен как Ultra2 SCSI (Wide Ultra2 SCSI со скоростью передачи 80 Мбайт/с). Введен разъем SCA-2 (Single Connector Attachment) с возможностью «горячей замены» (hot swap) и 68-контактный разъем с «очень большой» плотностью контактов VHDCI (Very High Density Connector). В стандарт SPI-2 включен и А-кабель SCSI-2, и Р-кабель SPI. Это законченный документ, не ссылающийся на предыду­щий и описывающий все параллельные интерфейсы SCSI, вплоть до Fast-40.
¦     В стандарте SPI-3 (2000 г.) удвоена частота передачи, но уже за счет двойной синхронизации — интерфейс Fast-80DT (DT — Double Transition), известный как UltraS SCSI или Ultral60. Для данного режима рассматривается только широкий (16 бит) вариант. Традиционный (высоковольтный) дифференциаль­ный вариант, а также 32-битная шина с Q-кабелем упразднены. Рассматривается только LVD-интерфейс, синхронизация по фронтам и спадам сигналов REQ#/
116________________________________ .__________________ Глава 5. Шина SCSI
АСК#, вводится CRC-контроль передач, пакетированные команды и сообщения (Packetized Commands and Messaging) и быстрый арбитраж (Quick Arbitration).Это тоже законченный документ, описывающий все параллельные интерфейсы SCSI вплоть до Fast-80DT и отменяющий HVD, SCAM (SCSI Configured Auto-Matically — автоматическое конфигурирование устройств) и 32-битную шину.
¦ В стандарте SPI-4 (2001 г.) снова удваивается частота переключений и полу­чается интерфейс Fast-160iDT, уже известный как Ultra320 SCSI (только ши­рокая шина, 320 Мбайт/с).

Аппаратные интерфейсы ПК


Шины и карты расширения

Шины расширения (Expansion Bus) являются средствами подключения систем­ного уровня: они позволяют адаптерам и контроллерам непосредственно исполь­зовать системные ресурсы PC — пространства памяти и ввода-вывода, прерыва­ния, каналы прямого доступа к памяти. Устройства, подключенные к шинам расширения, могут и сами управлять этими шинами, получая доступ к остальным ресурсам компьютера (обычно к ячейкам памяти). Такое прямое управление (bus mastering) позволяет разгружать центральный процессор и добиватьсд высоких скоростей обмена данными. Шины расширения механически реализуются в виде слотов (щелевых разъемов) или штырьковых разъемов; для них характерна малая длина проводников, что позволяет достигать высоких частот работы. Эти шины могут и не выводиться на разъемы, но использоваться для подключения устройств в интегрированных системных платах.

В современных компьютерах основной шиной расширения является PCI; ее допол­няет порт AGP. Шина ISA из настольных компьютеров уходит, но она сохраняет свои позиции в промышленных и встраиваемых компьютерах, как в традицион­ном слотовом варианте, так и в «бутербродном» варианте РС/104. В блокнотных компьютерах широко применяются слоты PCMCIA с шинами PC Card и Card Bus. Шина LPC является современным дешевым средством подключения нересурсо­емких устройств на системной плате. Все эти шины подробно рассматриваются в данной главе. Информацию по отжившим шинам MCA, EISA, VLB можно най­ти в литературе [1,2, 5].

Изготовителям карт расширения приходится точно следовать протоколам шины, включая жесткие частотные и нагрузочные параметры, а также временные диа­граммы. Отклонения приводят к несовместимости с некоторыми системными пла­тами. Если при подключении к внешним интерфейсам это ведет к неработоспо­собности только самого устройства, то некорректное подключение к системной шине может блокировать работу всего компьютера. Следует также учитывать огра­ниченность ресурсов PC.
Самые дефицитные из них — линии запросов прерываний; проблема прерываний, известная по шине ISA, так и не была радикально решена с переходом на PCI. Другой дефицит — каналы прямого доступа шины ISA, исполь­зуемые и для прямого управления шиной, — в шине PCI преодолен. Доступное адресное пространство памяти и портов ввода-вывода, в котором было тесновато абонентам шины ISA, в PCI существенно расширено. Проблемы распределения ре­сурсов на шинах решаются по-разному, но чаще всего применяется технология PnP.
146
Глава 6. Шины и карты расширения

В табл. 6.1 дана характеристика стандартных шин расширения PC.
Таблица 6.1. Характеристики шин расширения
Шина     Пропускная    Каналы Bus-    ACFG2 способность, DMA      Master Мбайт/с1
Разрядность Разрядность Частота, данных         адреса         МГЦ


ISA-8
4
3
8
20
8
ISA-16
8
7           +
16
24
8
LPC
6,7
7           +
8/16/32
32
33
EISA
33,3
7           +
+         32
32
8,33
MCA-16
16
+
+          16
24
10
МСА-32
20
+
+         32
32
10
VLB
132
32/64
32
33-50(66)
PCI
132/264
+
+         32/64
32
33/66
PCI-X
532/1064
+
+         32/64
32/64
33/66
AGP
266/532/1064
+
+         32
32/64
66
1x/2x/4x
PCMCIA
10/20
+
+         8/16
26
10
Card Bus
132
+
+         32
32
33

1   Указана максимальная пропускная способность. Реальная примерно в 2 раза ниже за счет прерыва­

ний, регенерации и протокольных процедур.
2   Поддержка автоматического конфигурирования. Для ISA PnP является позднейшей надстройкой,

реализуемой адаптерами и ПО.

Аппаратные интерфейсы ПК


Интерфейсы электронной памяти

Электронная память применяется практически во всех подсистемах PC, высту­пая в качестве оперативной памяти, кэш-памяти, постоянной памяти, полупо­стоянной памяти, буферной памяти, внешней памяти. В этой главе описаны ин­терфейсы микросхем и модулей динамической, статической и энергонезависимой памяти.



Аппаратные интерфейсы ПК


Специализированные интерфейсы периферийных устройств

В этой главе описываются интерфейсы периферийных устройств, от самых не­обходимых (клавиатура, дисплей, мышь, принтер) до мультимедийных (видео-и аудиоустройства) и развлекательных (джойстик и его «родственники»).



Аппаратные интерфейсы ПК


Интерфейсы устройств хранения

Устройства хранения данных — накопители на магнитных дисках (гибких и жестких, фиксированных и сменяемых), оптические диски CD и DVD, ленточные и твердо­тельные — подключаются к компьютеру самыми разнообразными способами. Пер­вые устройства хранения в ПК — накопители на гибких магнитных дисках (НГМД) — подключались интерфейсным кабелем-шлейфом к контроллеру, отделенному от самих устройств. Этот специализированный интерфейс сохранился до сих пор, им подключают дисководы, требующие скорости передачи всего 500 Кбит/с (около 60 Кбайт/с). Скорость 1000 Кбит/с, требуемая для так и не распространившихся дис­ководов на 2,88 Мбайт, осталась невостребованной. К интерфейсу дисководов под­ключали и старые стриммеры (очень тихоходные). Аналогичный интерфейс понача­лу использовался и для подключения винчестеров (так называемых MFM и RLL), по нему передавались «сырые» данные записи чтения с головок диска, правда, уси­ленные. Позже накопители слегка «интеллектуализировали», и появился (ненадолго) интерфейс дисков ESDI, обеспечивающий скорость передачи данных аж 1 Мбайт/с. Однако вскоре контроллер полностью переселился на само устройство, да еще и с соб­ственной буферной памятью (сначала на один сектор, а потом объем стал стреми­тельно расти), и из внешнего интерфейса устройства хранения ушла вся специ­фика, связанная с магнитной записью и воспроизведением данных. Так появились устройства с интерфейсом AT А, начавшим свою историю в 1988 г. и ставшим в наши дни самым распространенным. Для устройств, логически отличающихся от жест­ких дисков — оптических, магнитооптических, ленточных и любых других, — в 1996 г. была принята спецификация AT API. Это пакетное расширение интер­фейса, которое позволяет передавать по шине АТА устройству блоки командной информации, структура которых была позаимствована из SCSI. Потолок скоро­сти АТА — 100 Мбайт/с (Ultra DMA Mode 5). Интерфейс АТА имеет уже вполне видимую границу по адресации около 137 Гбайт, в AT API используется принятая в SCSI 32-битная адресация, позволяющая адресовать до 2 Тбайт (при 512-байт-ном блоке).
Дальнейшее развитие интерфейса — Serial ATA; здесь повышается скорость обмена с устройством, решается проблема одновременной работы с не­сколькими устройствами, значительно расширяются возможности адресации.
Для устройств хранения используют и универсальные интерфейсы, первым конку­рентом АТА является шина SCSI, как в парарельном варианте так и в последова­тельном (FCAL). Примерно при тех же скоростях обмена SCSI позволяет эффек-
9.1. Интерфейс НГМД                                                                                                                 353
тивно работать с несколькими устройствами на одной шине, которая во время выполнения команды с длительной фазой ожидания данных свободна для обмена с другими устройствами. В отличие от сугубо внутренней шины AT A, SCSI позволя­ет подключать и внешние устройства. Для внешних устройств хранения с успехом применяются и шины USB, реже Fire Wire, а также подключение к LPT-порту.

Аппаратные интерфейсы ПК


Архитектурные компоненты IBM PC-совместимого компьютера

Аппаратные интерфейсы, описанные в книге, в IBM-PC-совместимом компьютере «живут» в специфическом архитектурном окружении. Эту специфику приходится учитывать при проектировании аппаратной части устройств, чтобы обеспечить с ними эффективное программное взаимодействие. В этой главе вкратце рассмат­риваются особенности процессоров х8б и связанные с этими особенностями распре­деление памяти, организация ввода-вывода и прерываний. Здесь же рассматри­вается традиционный контроллер DMA, системные средства измерения времени, а также способы внедрения собственных расширений BIOS и нетрадиционной (бездисковой) загрузки ПО в специализированные компьютеры на базе IBM PC.



Аппаратные интерфейсы ПК


Вспомогательные последовательные интерфейсы и шины

В этой главе рассматриваются интерфейсы и шины, предназначенные, в основном, для «внутреннего использования». В этом качестве PC используется для иденти­фикации модулей DIMM, информация о которых хранится в маленьких микросхе­мах энергонезависимой памяти. В ряде современных системных плат присутствует шина SMBus, основанная на том же интерфейсе PC. Эта шина используется для счи­тывания идентификационной информации модулей памяти, по ней же осуществля­ется доступ к памяти идентификаторов и средствам термоконтроля процессоров Хеоп. Она же входит и в состав сигналов слота CNR (слот подключения расширений аудиокодека и телекоммуникаций) для конфигурирования аудио- и коммуникаци­онного оборудования. По интерфейсу PC, входящему в интерфейс VESA DDC1/2B, современные мониторы обмениваются конфигурационной и управляющей ин­формацией с графическим адаптером (а через него и с центральным процессором). Канал DDC входит в обычный 15-контактный аналоговый интерфейс VGA, его развитие EVC и цифровые интерфейсы P&D, DVI и DFP. А при поддержке графи­ческим адаптером и монитором интерфейса DDC1/2AB пользователь теоретически получает возможность внешнего подключения дополнительных устройств по шине ACCES.Bus через разъем, расположенный на мониторе (практически таких мони­торов встречать не доводилось). Этими устройствами могут быть устройства пози­ционирования (планшеты, мыши), считыватели карт, штрих-кодов и т. п. После­довательная шина ACCESS.Bus, основанная на PC, разработана фирмой DEC для взаимодействия компьютера с его аксессуарами — например, монитором (канал VESA DDC), интеллектуальными источниками питания (Smart Battery) и т. п. С по­мощью интерфейса PC можно загружать программы (firmware) в энергонезависимую память (флэш) ряда популярных микроконтроллеров. Интерфейс PC обеспечи­вает скорость передачи данных до 100 и даже до 400 Кбит/с, при этом он гораздо проще и дешевле интерфейса RS-232C с его «потолком» 115 Кбит/с и позволяет легко подключать несколько устройств, с поддержкой «горячего» подключения/ отключения и технологии PnP. Недавно в спецификацию PC была введена высо­кая скорость передачи, до 3,4 Мбит/с, но на такой скорости могут работать лишь новые микросхемы со специальной аппаратной поддержкой интерфейса.

11.1. Последовательные шины на базе I2C_______________________________ 421

Интерфейс SMI в явном виде в ПК встречается нечасто, он «родом» из коммуни­кационной аппаратуры Fast Ethernet, где широко используется для управления модулями физического уровня (в том числе и сменными модулями концентраторов). Интерфейсы SPI и JTAG встречаются в аппаратуре, основанной на микроконт­роллерах и конфигурируемой логике, — наиболее часто они используются для за­грузки конфигурационной информации (и кодов программ). Для тех же целей применяются и другие трехпроводные и четырехпроводные интерфейсы, но здесь мы ограничимся лишь упоминанием об их существовании.



Аппаратные интерфейсы ПК


Интерфейсы питания,

заземление

и гальваническая развязка

По традиции «аппаратную» книгу заключает глава о «здоровом питании», очень необходимом для выживания аппаратных интерфейсов. Все внутренние устрой­ства ПК, включая и интерфейсные адаптеры, получают напряжение от блока пи­тания системного блока и связаны общей «схемной землей» — шиной GND. Часть внешних устройств получают питание от того же блока питания, пользуясь штат­ными и нештатными способами. Штатное питание выводится на интерфейсные разъемы клавиатуры и мыши PS/2 (+5 В), USB (+5 В) и Fire Wire (8-40 В). «Не­штатным» способом питание можно получить от сигнальных линий LPT-порта (менее 5 В) и СОМ-порта (двуполярное, около 12 В), но лишь с небольшим током нагрузки и некоторыми аппаратными и программными ухищрениями. Питание от сигнальных цепей интерфейса используется мышью, электронными ключа­ми защиты и иными устройствами с малым потреблением. Остальные внешние устройства питаются от собственных источников питания со своей «схемной зем­лей» и цепями заземления, и при их стыковке с системным блоком (и между собой) могут возникать проблемы заземления, о которых речь пойдет ниже. Проблемы заземления радикально решаются применением гальванической развязки сигналь­ных цепей от «схемной земли», но эту развязку имеют далеко не все интерфейсы.



Хост


У каждой шины USB должен быть один (и только один!) хост — компьютер с кон­троллером USB. Хост делится на три основных уровня.

¦    Интерфейс шины USB обеспечивает физический интерфейс и протокол шины.

Интерфейс шины реализуется хост-контроллером, имеющим встроенный корне­

вой хаб, обеспечивающий точки физического подключения к шине (гнезда USB

типа «А»). Хост-контроллер отвечает за генерацию (микро)кадров. На аппарат­

ном уровне хост-контроллер обменивается информацией с основной памятью

компьютера, используя прямое управление шиной (bus-mastering) с целью

минимизации нагрузки на центральный процессор.

¦    Система USB, используя хост-контроллер(ы), транслирует клиентское «виде­ние» обмена данными с устройствами в транзакции, выполняемые с реальны­ми устройствами шины. Система отвечает и за распределение ресурсов USB —

100__________________________ Глава 4. Последовательные шины USB и FireWire

полосы пропускания и мощности источников питания (для устройств, пита­ющихся от шины). Система состоит из трех основных частей:

•      Драйвер хост-контроллера — HCD (Host Controller Driver) — модуль, при­вязанный к конкретной модели контроллера, обеспечивающий абстрагиро­вание драйвера USB и позволяющий в одну систему включать несколько разнотипных контроллеров.

•      Драйвер USB — USBD (USB Driver) — обеспечивает основной интерфейс (USBDI) между клиентами и устройствами USB. Интерфейс HCDI (Host Controller Driver Interface) между USBD и HCD спецификацией USB не регламентируется. Он определяется разработчиками ОС и должен поддержи­ваться разработчиками хост-контроллеров, желающих иметь поддержку сво­их изделий конкретными ОС. Клиенты не могут пользоваться интерфей­сом HCDI; для них предназначен интерфейс USBDI. USBD обеспечивает механизм обмена в виде пакетов IRP (I/O Request Packet — пакет запроса ввода-вывода), состоящих из запросов на транспортировку данных по за­данному каналу.
Кроме того, USBD отвечает за некоторое абстрактное пред­ставление устройства USB клиенту, которое позволяет выполнять конфи­гурирование и управление состоянием устройств (включая и стандартное

управление через конечную точку «О»). Реализация интерфейса USBDI

определяется операционной системой; в спецификации USB излагаются

только общие идеи.

•      Программное обеспечение хоста реализует функции, необходимые для функ­

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

¦   Клиенты USB — программные элементы (приложения или системные компо­ненты), взаимодействующие с устройствами USB. Клиенты могут взаимодей­ствовать с любыми устройствами (их конечными точками), подключенными к системе USB. Однако система USB изолирует клиентов от непосредственного обмена с какими-либо портами (в пространстве ввода-вывода) или ячейками памяти, представляющими интерфейсную часть контроллера USB.

В совокупности уровни хоста имеют следующие возможности:

¦     обнаружение подключения и отсоединения устройств USB;

¦     манипулирование потоками управления между устройствами и хостом;

¦     манипулирование потоками данных;

¦     сбор статистики активности и состояний устройств;

¦     управление электрическим интерфейсом между хост-контроллером и устрой­

ствами USB, включая управление электропитанием.

Хост-контроллер является аппаратным посредником между устройствами USB и хостом. Программная часть хоста в полном объеме реализуется операционной

4.1. Шина USB

системой. До загрузки ОС может функционировать лишь усеченная часть ПО USB, поддерживающая только устройства, требующиеся для загрузки. Так, в BIOS современных системных плат имеется поддержка клавиатуры USB, реализующая функции сервиса Int 10h.


При загрузке системы USB эта «дозагрузочная» под­держка игнорируется — система начинает работу с контроллером «с чистого лис­та», то есть со сброса и определения всех подключенных устройств. По окончании работы ОС передача состояния USB «дозагрузочной» поддержке не предусмат­ривается, так что для нее это событие тоже может рассматриваться как первона­чальное включение. В спецификации РС'2001 выдвигается требование к BIOS поддержки USB в такой мере, чтобы обеспечивалась загрузка ОС с устройств USB. USB поддерживает динамическое подключение и отключение устройств. Нуме­рация (перенумерация) устройств шины идет постоянно, отслеживая изменения физической топологии.

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запро­се от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления, используя нулевой адрес — USB Default Address. При началь­ном подключении или после сброса все устройства адресуются именно так.

Хост определяет, является новое подключенное устройство хабом или функцией, и назначает ему уникальный адрес USB. Хост создает канал управления (control pipe) с этим устройством, используя назначенный адрес и нулевой номер точки назначения.

Если новое устройство является хабом, хост определяет подключенные к нему устройства, назначает им адреса и устанавливает каналы. Если новое устройство является функцией, уведомление о подключении передается диспетчером USB заинтересованному ПО.

Когда устройство отключается, хаб автоматически запрещает соответствующий порт и сообщает об отключении контроллеру, Который удаляет сведения о дан­ном устройстве из всех структур данных. Если отключается хаб, процесс удале­ния выполняется для всех подключенных к нему устройств. Если отключается функция, уведомление посылается заинтересованному ПО.


Хост-адаптер SCSI


Хост-адаптер является важнейшим узлом интерфейса, определяющим произво­дительность системы SCSI. В его задачу входит передача данных между хостом (программой, исполняемой центральным процессором) и другими устройствами, подключенными к шине, по протоколам вышеописанных физических интерфей­сов. Структуры передаваемых блоков данных и команды устройств стандартизова­ны, их описание приводится в литературе [4, 9]. Однако архитектуры и программ­ные модели адаптеров не стандартизованы (в отличие, например, от адаптеров AT А). Существует широкий спектр адаптеров, к простейшим можно подключать только устройства, некритичные к производительности. Такие адаптеры могут входить, например, в комплект поставки сканеров, а подключение к ним диска может оказаться невозможным. Высокопроизводительные адаптеры имеют соб­ственный специализированный процессор, большой объем буферной памяти и используют высокоэффективные режимы прямого управления шиной для досту­па к памяти компьютера. Адаптеры SCSI существуют для всех шин расширения (ISA, EISA, MCA, PCI, VLB, PCMCIA, CardBus), шин USB и FireWire и для LPT-порта. Ряд системных плат имеют встроенный SCSI-адаптер, подключенный к одной из локальных шин. При выборе интерфейса, к которому подключается хост-адаптер, учитывайте производительность — интерфейс не должен стать узким местом при обмене с высокопроизводительными устройствами SCSI. Наиболь­шую эффективность имеют хост-адаптеры для шины PCI. Конечно, за мощный адаптер для сервера приходится платить — его цена может превышать цену рядо­вого настольного компьютера. Еще дороже хост-адаптеры с встроенными контрол­лерами RAID-массивов, которые содержат мощный RISC-процессор и большой объем локальной памяти.

142__________________________________________________ Глава 5. Шина SCSI

Конфигурирование хост-адаптеров с точки зрения шины SCSI не отличается от конфигурирования других устройств. Для современных адаптеров вместо джам-перов используется программное конфигурирование.
Утилита конфигурирования обычно входит в расширение BIOS, установленное на плате адаптера, и пригла­шение к ее вызову выводится на экран во время теста POST. Как и всякая карта расширения, хост-адаптер должен быть сконфигурирован с точки зрения шины расширения, к которой он подключается. Системные ресурсы для шинного SCSI-адаптера включают:

¦ область памяти для расширения ROM BIOS, необходимого для поддержки

конфигурирования устройств и дисковых функций (если в системе установлено

несколько однотипных хост-адаптеров, для них используется ROM BIOS с од­ного адаптера, а разнотипные хост-адаптеры не всегда могут работать вместе);

¦     область разделяемой буферной памяти;

¦     область портов ввода-вывода (I/O port);

¦     IRQ — запрос прерывания;

¦     DMA — канал прямого доступ к памяти (для шин ISA/EISA), часто использу­емый для захвата управления шиной (bus mastering).

Всем устройствам SCSI, в том числе и хост-адаптеру, требуются специальные драйверы. Базовый драйвер дисковых устройств входит в BIOS хост-адаптера; он обычно эмулирует трехмерную адресацию дискового сервиса Int 13h. Расшире­ния, например ASPI (Advanced SCSI Programming Interface), загружаются отдель­но. От драйверов сильно зависит производительность устройств SCSI. «Умное» ПО способно эффективно загружать работой устройства, а иногда и «срезать углы» — выполнять копирование данных между устройствами без выхода на си­стемную шину компьютера. Наиболее предпочтительны драйверы, работающие в режиме прямого управления шиной (bus mastering); их применение позволяет реализовать все преимущества SCSI в многозадачных системах.


Инфракрасный интерфейс IrDA


Применение излучателей и приемников инфракрасного (ИК) диапазона позволяет осуществлять беспроводную связь между парой устройств, удаленных на рассто­яние до нескольких метров. Инфракрасная связь — IR (Infra Red) Connection — без­опасна для здоровья, не создает помех в радиочастотном диапазоне и обеспечива­ет конфиденциальность передачи. ИК-лучи не проходят через стены, поэтому зона приема ограничивается небольшим, легко контролируемым пространством. Инфракрасная технология привлекательна для связи портативных компьютеров со стационарными компьютерами или док-станциями. Инфракрасный интерфейс имеют некоторые модели принтеров, им оснащают многие современные малога­баритные устройства: карманные компьютеры (PDA), мобильные телефоны, циф­ровые фотокамеры и т. п.

Различают инфракрасные системы низкой (до 115,2 Кбит/с), средней (1,152 Мбит/с) и высокой (4 Мбит/с) скорости. Низкоскоростные системы служат для обмена короткими сообщениями, высокоскоростные — для обмена файлами между компью­терами, подключения к компьютерной сети, вывода на принтер, проекционный ап­парат и т. п. Ожидаются более высокие скорости обмена, которые позволят пере­давать «живое видео». В 1993 году была создана ассоциация разработчиков систем инфракрасной передачи данных IrDA (Infrared Data Association), призванная обес­печить совместимость оборудования от различных производителей. В настоящее время действует стандарт IrDA 1.1, наряду с которым существуют и собствен­ные системы фирм Hewlett Packard — HP-SIR (Hewlett Packard Slow Infra Red)

3.1. Инфракрасный интерфейс IrDA

79

и Sharp — ASK IR (Amplitude Shifted Keyed IR). Эти интерфейсы обеспечивают следующие скорости передачи:

¦ IrDA SIR (Serial Infra Red), HP-SIR -9,6-115,2 Кбит/с;

¦     IrDA HDLC, известный и как IrDA MIR (Middle Infra Red) - 0,576 и 1,152

Мбит/с;

¦     IrDA FIR (Fast Infra Red) - 4 Мбит/с;

¦     ASK IR - 9,6-57,6 Кбит/с.


Излучателем для ИК- связи является светодиод, имеющий пик спектральной характеристики мощности 880 нм; светодиод дает конус эффективного излучения с углом около 30°. В качестве приемника используют PIN-диоды, эффективно при­нимающие ИК-лучи в конусе 15°. Спецификация IrDA определяет требования к мощности передатчика и чувствительности приемника, причем для приемника задается как минимальная, так и максимальная мощность ИК-лучей. Импульсы слишком малой мощности приемник не «увидит», а слишком большая мощность «ослепляет» приемник — принимаемые импульсы сольются в неразличимый сиг­нал. Кроме полезного сигнала на приемник воздействуют помехи: засветка сол­нечным освещением и лампами накаливания, дающая постоянную составляющую оптической мощности, и помехи от люминесцентных ламп, дающие переменную (но низкочастотную) составляющую. Эти помехи приходится фильтровать. Спе­цификация IrDA обеспечивает уровень битовых ошибок (Bit Error Ratio, BER) не более 10"9 при дальности до 1 м и дневном свете (освещенность до 10 клюке). По­скольку передатчик почти неизбежно вызывает засветку своего же приемника, вводя его в насыщение, приходится задействовать полудуплексную связь с опре­деленными временными зазорами при смене направления обмена. Для передачи сигналов используют двоичную модуляцию (есть свет — нет света) и различные схемы кодирования.

Спецификация IrDA определяет многоуровневую систему протоколов, которую рассмотрим снизу вверх.

Ниже перечислены варианты, возможные на физическом уровне IrDA.

¦     IrDA SIR — для скоростей 2,4-115,2 Кбит/с используется стандартный асин­

хронный режим передачи (как в СОМ-портах): старт-бит (нулевой), 8 бит дан­ных и стоп-бит (единичный). Нулевое значение бита кодируется импульсом длительностью 3/16 битового интервала (1,63 мкс на скорости 115,2 Кбит/с), единичное — отсутствием импульсов (режим IrDA SIR-А). Таким образом, в паузе между посылками передатчик не светит, а каждая посылка начинается с импульса старт-бита.


В спецификации 1.1 предусмотрен и иной режим —IrDA SIR-B, с фиксированной длительностью импульса 1, 63 мкс для всех этих скоростей.

¦     ASK IR — для скоростей 9,6-57,6 Кбит/с также используется асинхронный ре­жим, но кодирование иное: нулевой бит кодируется посылкой импульсов с ча­стотой 500 кГц, единичный — отсутствием импульсов.

80___________________ _^__^_____________ Глава 3. Беспроводные интерфейсы

¦     IrDA HDLC — для скоростей 0,576 и 1,152 Мбит/с используется синхронный режим передачи и кодирование, аналогичное протоколу SIR, но с длительно­стью импульса 1/4-битового интервала. Формат кадра соответствует протоколу HDLC, начало и конец кадра отмечаются флагами 01111110, внутри кадра эта битовая последовательность исключается путем вставки битов (bit stuffing). Для контроля достоверности кадр содержит 16-битный CRC-код.

¦     IrDA FIR (IrDA4PPM) — для скорости 4 Мбит/с также применяется синхрон­ный режим, но кодирование несколько сложнее. Здесь каждая пара смежных битов кодируется позиционно-импульсным кодом: 00 —> 1000, 01 —> 0100, 10 —> 0010,11 —>0001 (в четверках символов «1» означает посылку импульса в соответствующей четверти двухбитового интервала). Такой способ кодиро­вания позволил вдвое снизить частоту включения светодиода по сравнению с предыдущим. Постоянство средней частоты принимаемых импульсов облегча­ет адаптацию к уровню внешней засветки. Для повышения достоверности при­меняется 32-битный CRC-код.

Над физическим уровнем расположен протокол доступа IrLAP (IrDA Infrared Link Access Protocol) — модификация протокола HDLC, отражающая нужды ИК-свя­зи. Этот протокол инкапсулирует данные в кадры и предотвращает конфликты устройств: при наличии более двух устройств, «видящих» друг друга, одно из них назначается первичным, а остальные — вторичными. Связь всегда полудуплексная. IrLAP описывает процедуру установления, нумерации и закрытия соединений.


Соединение устанавливается на скорости 9600 бит/с, после чего согласуется ско­рость обмена по максиму из доступных обоим (9,6,19,2,38,4,57,6 или 115,2 Кбит/с) и устанавливаются логические каналы (каждый канал управляется одним веду­щим устройством).

Над IrLAP располагается протокол управления соединением IrLMP (IrDA Infrared Link Management Protocol). С его помощью устройство сообщает остальным о своем присутствии в зоне охвата (конфигурация устройств IrDA может изменяться дина­мически: для ее изменения достаточно поднести новое устройство или отнести его подальше). Протокол IrLMP позволяет обнаруживать сервисы, предоставляемые устройством, проверять потоки данных и выступать в роли мультиплексора для конфигураций с множеством доступных устройств. Приложения с помощью IrLMP могут узнать, присутствует ли требуемое им устройства в зоне охвата. Однако га­рантированной доставки данных этот протокол не обеспечивает.

Транспортный уровень обеспечивается протоколом Tiny TP (IrDA Transport Protocols) — здесь обслуживаются виртуальные каналы между устройствами, об­рабатываются ошибки (потерянные пакеты, ошибки данных и т. п.), производит­ся упаковка данных в пакеты и сборка исходных данных из пакетов (протокол напоминает TCP). На транспортном уровне может работать и протокол IrTP.

Протокол IrCOMM позволяет через ИК-связь эмулировать обычное проводное подключение:

¦     3-проводное по RS-232C (TXD, RXD и GND);

¦     9-проводное по RS-232C (весь набор сигналов СОМ-порта);

¦     Centronics (эмуляция параллельного интерфейса).

3.1. Инфракрасный интерфейс IrDA________________________________          81

Протокол IrLAN обеспечивает доступ к локальным сетям, позволяя передавать кадры сетей Ethernet и Token Ring. Для ИК-подключения к локальной сети тре­буется устройство-провайдер с интерфейсом IrDA, подключенное обычным (про­водным) способом к локальной сети, и соответствующая программная поддержка в клиентском устройстве (которое должно войти в сеть).



Протокол объектного обмена IrOBEX (Object Exchange Protocol) — простой про­токол, определяющий команды PUT и GET для обмена «полезными» двоичными данными между устройствами. Этот протокол располагается над протоколом Tiny ТР. У протокола IrOBEX есть расширение для мобильных коммуникаций, ко­торое определяет передачу информации, относящуюся к сетям GSM (записная книжка, календарь, управление вызовом, цифровая передача голоса и т. п.), между телефоном и компьютерами разных размеров (от настольного до PDA).

Этими протоколами не исчерпывается весь список протоколов, имеющих отно­шение к ИК-связи. Заметим, что для дистанционного управления бытовой техни­кой (телевизоры, видеомагнитофоны и т. п.) используется тот же диапазон 880 нм, но иные частоты и методы физического кодирования.

Приемопередатчик IrDA может быть подключен к компьютеру различными спо­собами; по отношению к системному блоку он может быть как внутренним (раз­мещаемым на лицевой панели), так и внешним, размещаемым в произвольном месте. Размещать приемопередатчик следует с учетом угла «зрения» (30° у пере­датчика и 15° у приемника) и расстояния до требуемого устройства (до 1 м).

Внутренние приемопередатчики на скоростях до 115,2 Кбит/с (IrDA SIR, HP-SIR, ASK IR) подключаются через обычные микросхемы UART, совместимые с 16450/ 16550 через сравнительно несложные схемы модуляторов-демодуляторов. В ряде со­временных системных плат на использование инфракрасной связи (до 115,2 Кбит/с) может конфигурироваться порт COM2. Для этого в дополнение к UART чипсет содержит схемы модулятора и демодулятора, обеспечивающие один или несколь­ко протоколов инфракрасной связи. Чтобы порт COM2 использовать для инфра­красной связи, в CMOS Setup требуется выбрать соответствующий режим (за­прет инфракрасной связи означает обычное использование COM2). Существуют внутренние адаптеры и в виде карт расширения (для шин ISA, PCI, PC Card); для системы они выглядят как дополнительные СОМ-порты.



На средних и высоких скоростях обмена применяются специализированные мик­росхемы контроллеров IrDA, ориентированные на интенсивный программно-управляемый обмен или DMA, с возможностью прямого управления шиной. Здесь обычный приемопередатчик UART непригоден, поскольку он не поддерживает синхронный режим и высокую скорость. Контроллер IrDA FIR выполняется в виде карты расширения или интегрируется в системную плату; как правило, такой кон­троллер поддерживает и режимы SIR.

Приемопередатчик подключается к разъему IR-Connector системной платы напря­мую (если он устанавливается на лицевую панель компьютера) или через проме­жуточный разъем (mini-DIN), расположенный на скобе-заглушке задней стенки корпуса. К сожалению, единой раскладки цепей на внутреннем коннекторе нет,

82______________________________________ Глава 3. Беспроводные интерфейсы

и для большей гибкости приемопередатчик (или промежуточный разъем) снаб­жают кабелем с отдельными контактами разъема. Собрать их в должном порядке предоставляют пользователю; варианты назначения контактов коннектора ин­фракрасного приемопередатчика приведены в табл. 3.1. Некоторые приемопередат­чики, поддерживающие режимы FIR и SIR, имеют раздельные выходы приемни­ков — IRRX (для SIR) и FIRRX (для FIR). Если контроллер поддерживает только один из режимов, один из контактов останется неподключенным.

Таблица 3.1. Коннектор инфракрасного приемопередатчика

Цепь                   Назначение                          Контакт/вариант

12       3       4

IRRX(RX)

Вход с приемника

1

3

3

3

FIRRX (RXH)

Вход с приемника FIR

5

-

-

4

IRTX(TX)

Выход на передатчик

3

5

1

1

GND

Общий

2,7

4

2

2

Vcc (+5B)

Питание

4,6

1

5

5

NC

Свободный



2

4

_

Внешние ИК-адаптеры выпускают с интерфейсом RS-232C для подключения к СОМ-порту или же с шиной USB. Пропускной способности USB достаточно даже для FIR, СОМ-порт пригоден только для SIR.


Внешний ИК-адаптер IrDA SIR для СОМ- порта не так прост, как казалось бы: для работы модулятора-демодулятора требуется сигнал синхронизации с частотой, равной 16-кратной частоте передачи данных (этот сигнал поступает на синхровход микросхемы UART СОМ-порта). Такого сигнала на выходе СОМ-порта нет и его приходится восстанавливать из асинхронного битового потока. Адаптер ASK IR в этом плане проще — передат­чик должен передавать высокочастотные импульсы все время, пока выход TXD находится в высоком состоянии; приемник должен формировать огибающую при­нятых импульсов.

Для прикладного использования IrDA кроме физического подключения адаптера и трансивера требуется установка и настройка соответствующих драйверов. В ОС Windows 9x/ME/2000 контроллер IrDA попадает в группу Сетевое окружение. Сконфигурированное ПО позволяет устанавливать соединение с локальной сетью (для выхода в Интернет, использования сетевых ресурсов); передавать файлы между парой компьютеров; выводить данные на печать; синхронизировать дан­ные PDA, мобильного телефона и настольного компьютера; загружать отснятые изображения из фотокамеры в компьютер и выполнять ряд других полезных дей­ствий, не заботясь ни о каком кабельном хозяйстве.


Инструкции ввода-вывода


Для обращения программы к пространству ввода-вывода предназначены всего четыре инструкции процессора: IN (ввод из порта в регистр процессора), OUT (вы­вод в порт из регистра процессора), INS (ввод из порта в элемент строки памяти) и OUTS (вывод элемента из строки памяти в порт). Последние две инструкции, появившиеся с процессором 80286, могут использоваться с префиксом повтора REP, что обеспечивает быструю пересылку блоков данных между портом и памя­тью. Обмен данными с портами, при котором применяют строковые инструкции ввода-вывода, получил название PIO(Programmed Input/Output — программиро­ванный ввод-вывод). Скорость такого обмена превышает скорость стандартного канала прямого доступа (DMA), правда, DMA в отличие от PIO почти не занимает процессорного времени.

474       Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Разрядность слова, передаваемого за одну инструкцию ввода-вывода, может со­ставлять 8, 16 или 32 бита. В зависимости от «выровненности» адреса по границе слова и разрядности данных используемой шины это слово может передаваться за один или несколько циклов шины с указанием соответствующего нарастающего адреса в каждом цикле обращения к памяти. Инструкции ввода-вывода порожда­ют шинные циклы обмена, в которых вырабатываются сигналы чтения порта/за­писи в порт. На шине ISA это сигналы IORD* и IOWR* соответственно; они и отли­чают пространство ввода-вывода от пространства памяти, где соответствующие операции чтения и записи вырабатывают сигналы MEMRD* и MEMWR*. На шине PCI разделение памяти и пространства ввода-вывода происходит иначе — здесь тип операции кодируется четырехбайтной командой, в зависимости от типа ин­струкции, выполняемой процессором.

Во избежание недоразумений и для экономии шинных циклов рекомендуется выравнивать адреса 16-битных портов по границе слова, а 32-битных — по грани­це двойного слова. Обращения по выровненным адресам выполняется за один цикл системной шины. Обращение по невыровненным адресам выполняется за несколько циклов, причем однозначная последовательность адресов обращений (которая зависит от модели процессора) не гарантируется.
Так, например, одна инструкция вывода слова по нечетному адресу приведет к генерации двух смеж­ных шинных циклов записи. При программировании обращений следует учиты­вать специфику устройств ввода-вывода. Если, например, устройство допускает только 16-разрядные обращения, то старший байт его регистров будет доступен лишь при вводе-выводе слова по четному адресу.

Некоторую сумятицу в стройную систему адресации вводят регистры AT А. Здесь регистр 1FO (1 канал) является 16-битным регистром данных, но в то же время есть и совершенно независимый от него 8-битный регистр 1F1. В Serial ATA эта тема развита — здесь имеются еще четыре 16-битных регистра с адресами (относи­тельно базового адреса блока командных регистров) 2, 3, 4 и 5, которые раньше были 8-битными.

В реальном режиме процессора программе доступно все пространство адресов ввода-вывода. В защищенном режиме 32-разрядных процессоров (частным случаем ко­торого является и виртуальный режим V86) имеется возможность программного ограничения доступного пространства ввода-вывода, определяя его максималь­ный размер (начиная с нулевого адреса и в пределах 64 К), а внутри разрешенной области доступ может быть разрешен или запрещен для каждого конкретного ад­реса. Размер области и карта разрешенных портов (Ю Permission Bitmap) задает­ся операционной системой в дескрипторе сегмента состояния задачи (TSS). При обращении по неразрешенному адресу вырабатывается исключение процессора, а поведение его обработчика определяется операционной системой. Возможно снятие задачи-нарушителя (знаменитое сообщение «приложение... выполнило недо­пустимую операцию и будет закрыто»). Возможен и другой вариант, когда по об­ращению к порту монитор операционной системы выполняет некоторые действия, создавая для программы иллюзию реальной операции ввода-вывода. Таким обра­зом виртуальная машина по операциям ввода-вывода может общаться с виртуаль-

12.5. Процессоры х86________________________________________________ 475

ными устройствами. Заметим, что ОС Windows 9x не особо заботится о виртуа­лизации и защите ввода-вывода; здесь, например, из DOS-окна можно обращать­ся к любым портам, даже к портам устройств, занятых операционной системой.


Int h и Int h—поддержка таймеров


Сервисы BIOS Int I Ah позволяют считывать и модифицировать значения систем­ного таймера, даты и времени, а также установки будильника часов реального вре­мени CMOS RTC. Перечисленные ниже номера функций указываются при вызо­ве в регистре АН.

1.    АН=0 — чтение системного таймера (двойного слова по адресу 40:006Eh в BIOS Data Area, инкрементируемого по прерываниям от канала 0 счетчика-таймера 8253/8254 примерно раз в 55 мс. Таймер обнуляется при выполнении тестаPOST после аппаратного сброса). Возвращает значение таймера, в СХ — стар­шую часть, в DX — младшую. А1_=0, если за последние 24 часа не было перепол­нения таймера. В современных версиях сброс AL возвращает счетчик перепол­нений таймера, хранящийся в ячейке 40:0070h (в старых версиях это был флаг).

2.    АН=1 — установка системного таймера (СХ — старшая часть, в DX — младшая) и сброс флага (счетчика) переполнения таймера в ячейке 40:0070h. В случае ошибки устанавливается флаг CF=1.

3.    АН=2 — чтение времени из RTC. Возвращает в упакованном BCD-формате час (в регистре СН), минуту (CL), секунду (DH) и признак коррекции летнего/зим­него времени (DL=1 — коррекция используется, DL=0 — нет). Признаком успеш­ной операции является флаг CF=0. Во избежание ошибок некоторых BIOS привызове флаг CF должен быть сброшен.

4.    АН=3 — установка времени в RTC, назначение регистров и признак результата аналогичен функции 2.

12.8. Сервисы и прерывания BIOS______________________________________ 495

5.    АН=4 — чтение даты из RTC. Возвращает в упакованном BCD-формате век(в регистре СН), две старшие цифры года (CL), месяц (DH) и день (DL). Призна­ком успешной операции является флаг CF=0. Во избежание ошибок некото­рых BIOS при вызове флаг CF должен быть сброшен.

6.    АН=5 — установка даты в RTC, назначение регистров и признак результата аналогичен функции 4.

7.    АН=6 — установка времени срабатывания будильника RTC.
Возвращает в упа­кованном BCD-формате час (в регистре СН), минуту (CL) и секунду (DH). Если будильник уже установлен, переустановка не производится и возвращается флаг CF-1. При срабатывании будильник вызывает прерывание Int 4Ah.

8.    АН=7 — отмена установки будильника.

Функции BIOS Int 15h позволяют программировать таймер CMOS RTC — вво­дить задержку или запускать таймер установки флага, указывая время в микросе­кундах (СХ — старшее слово, DX — младшее). Нулевое значение интервала не вызывает никаких действий. Достижимое разрешение в зависимости от произво­дительности ПК может достигать единиц миллисекунд, максимальная выдерж­ка — около 70 часов. Перечисленные ниже номера функций указываются при вы­зове в регистре АН или АХ.

9.  AH=86h — задержка на заданное время. Управление будет возвращено вызвав­ шему процессу только через указанный интервал. По окончании задержки бу­дет установлен бит 7 в ячейке BDA 0040:ООАО. Таймер может оказаться заня­тым, тогда вызов сразу возвратит флаг CF=1 (при успехе CF=0, а в AL окажется маска, записанная в 8259А#2).

10. AX=8300h — запуск таймера, устанавливающего флаг после указанной задерж­ке бит 7 в ячейке, заданной регистрами ES: ВХ. При успешном запуске CF=0; если таймер занят (он один) — CF=1 и AL=0. Управление возвращается про­цессу сразу, а флаг будет установлен через заданное время. Перед завершени­ем программа, запускавшая таймер, должна его сбросить функцией 830 lh (во-первых, чтобы освободить; во-вторых, чтобы снять «адскую машинку», которая неожиданно сама может изменить значение ячейки памяти, вполне возможно уже задействованную другим, ничего не «подозревающим» процессом).

И. AX=8301h —сброс того же таймера.


Int h, Int h — поддержка клавиатуры


Поддержка клавиатуры заключается в обработке прерываний от устройства вво­да и предоставлении сервисов ввода прикладным программам.

Прерывания, вызванные приходом кодов нажатия и отпускания клавиш, обраба­тывает BIOS Int 9h. Каждый принятый скан-код (или цепочка) обрабатывает­ся с учетом состояния клавиатурных флагов. Результат обработки (как правило, ASCII-символ в младшем байте и скан-код в старшем) помещается в клавиатур­ный буфер, расположенный в ОЗУ. По приему каждого символа указатель головы буфера увеличивается. Буфер организован в виде кольца, после достижения конца области буфера указатель головы установится на начало области. В случае переполнения буфера (указатель головы «догнал» указатель хвоста) очередное слово не записывается, и подается звуковой сигнал. Размер позволяет хранить описание шестнадцати фактов нажатий клавиш. Нажатие клавиш Ctrl, Shift, Alt и некоторых комбинаций в буфере не отмечается, но приводит к модификации бит ячеек флагов клавиатуры. Нажатие «системной» комбинации Ctrl+Alt+Del, кла­виши PrintScreen (SysRq) и некоторых других к записи в клавиатурный буфер не приводит, а вызывает специальные процедуры.

Для обслуживания клавиатуры используются ячейки ОЗУ из области данных BIOS (BIOS Data Area):

¦     0:0417,0:418 — флаги клавиатуры;

¦     0:0419 — аккумулятор кода Alt-набора;

484______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

¦     0:041А — указатель головы буфера (Buffer Head), 2 байта (модифицируется

при помещении символа в буфер);

¦     0:041С — указатель хвоста буфера (Buffer Tail), 2 байта (модифицируется при извлечении символа из буфера);

¦     0:041E-0:042D — область кольцевого буфера (16 слов).

Обработчик аппаратного прерывания до обработки принятого скан-кода вызы­вает прерывание BIOS IntlSh с AH=4Fh, а в AL находится принятый скан-код. Стандартный обработчик Int 15h(4Fh) просто выполняет возврат с CF=0, но его можно заменить специальным обработчиком, который будет при необходимости подменять принятые скан-коды на какие-либо иные (оставляя их в AL), что долж­но отмечаться установкой CF=1.
В старых версиях BIOS такой возможности пере­хвата не было, ее наличие можно определить вызовом Int 15h(COh).

Для клавиатуры USB или иного устройства ввода, заменяющего клавиатуру в каче­стве консоли, прерывание Int 9h должно вызываться программно при обработке каждого клавиатурного события. Обработчик этого прерывания должен выпол­нять те же действия: скан-код пропускать через Int 15h(4Fh) и помещать в кла­виатурный буфер, а также модифицировать флаги клавиатуры.

Интерфейс прикладного уровня для клавиатуры представляет BIOS Int 16h. Его основное назначение — извлечение слов из клавиатурного буфера. Функция зада­ется в регистре АН при вызове, результат помещается в регистр АХ.

¦     АН = OOh — чтение (с ожиданием готовности) и выборка слова из буфера

(меняется указатель хвоста). Индикаторы клавиатуры обновляются в соответ­

ствии с состоянием флагов. Если буфер пуст, то на AT выполняется прерыва­ние Int 15h (подфункция 90), что может использоваться ОС, например, для переключения задач. Чтобы программа не «зависала» на ожидании символа, предварительно стоит проверить готовность функцией Olh. Символы расши­ренной клавиатуры фильтруются — преобразуются в их аналоги 83-клавишной клавиатуры.

¦     АН = Olh — проверка готовности, чтение без выборки (указатели не изменяют­ся). Признак наличия символа в буфере — установленный флаг ZF.

¦     АН = 02h — чтение состояния флагов (в AL — байт 0:417h, см. выше).

¦     АН = 03h — установка задержки и частоты автоповтора: BL — код задержки (00=250, 01=500,02=750,03=1000 мс), ВН - код частоты (см. п. 9.2.1).

¦     АН = 05h — запись слова из регистра СХ в буфер (меняется указатель головы). Признак успешной записи — AL=Q, если в буфере нет места, то AL=1.

¦     АН = 10h и AH=*llh — функции, аналогичные ООН и Olh, но предназначены специально для 101/102-клавишных клавиатур — в них не выполняется филь­трация символов расширенной клавиатуры.


Для ряда клавиш, отсутству­ющих в клавиатуре АТ-84, эти функции дадут результаты, отличающиеся от вызовов OOh и Olh.

12.8. Сервисы и прерывания BIOS_________________________________       485

¦ AH=12h . — чтение расширенного состояния флагов (в АХ — слово KbdShif tFlagslOlRec), в котором младший байт совпадает с тем, что дает

i функция 02h (слово из 0:417h), а старший байт похож на слово из 0:418h. Назначение бит АХ:

•       бит 0 — клавиша Shift (правая) нажата;

•       бит 1 — клавиша Shift (левая) нажата;          .

•       бит 2 — клавиша Ctrl (любая) нажата;

•       бит 3 — клавиша Alt (любая) нажата;

•       бит 4 — включен индикатор Scroll Lock;

•       бит 5 — включен индикатор Num Lock;

•       бит 6 — включен индикатор Caps Lock;

•       бит 7 — включен режим Insert;

•       бит 8 — клавиша Ctrl (левая) нажата;

•       бит 9 — клавиша Alt (левая) нажата;

•       бит 10 — клавиша Ctrl (правая) нажата;

•       бит 11 — клавиша Alt (правая) нажата;

•       бит 12 — клавиша Scroll Lock нажата;

•       бит 13 — клавиша Num Lock нажата;

•       бит 14 — клавиша Caps Lock нажата;

•       бит 15 — клавиша SysReq нажата.

Функции чтения буфера (00 и 10h) в регистре AL возвращают ASCII-код символа, в АН — скан-код. Символы, полученные нестандартным способом (в русском реги­стре или Alt-набором), сопровождаются нулевым скан-кодом. Alt-набор позволяет ввести в буфер любой символ — для этого его код в десятичной системе набирает­ся на цифровой клавиатуре при нажатой клавише Alt, результат заносится в буфер при отпускании клавиши Alt.



При AL= 0 регистр АН содержит расширенный ASCII-код (Extended ASCII Keystroke). Дополнительные клавиши 101/102 клавиатур при использовании функций 10h-12h генерируют код EOh в младшем байте и скан-код, соответствующий аналогич­ным управляющим клавишам 83/84-клавишных клавиатур.

Функция записи (05h), несколько неожиданная для клавиатуры, позволяет легко имитировать работу оператора для различных демонстрационных программ. Если прикладная программа не перехватывает обслуживание клавиатуры на уровне аппаратного прерывания (In t 9h), то резидентная программа может ей «подбра­сывать» слова в буфер, которые будут восприниматься как нажатие клавиш.

ASCII-коды буфера, соответствующие нажатию клавиш, приведены в [1, 7]. При русификации (или другой локализации) клавиатуры отслеживание переключения регистров (языков) ложится на обработчик аппаратного прерывания клавиатуры.

486______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера


Int h — поддержка дисков


Функции дискового сервиса вызываются программным прерыванием Int 13h.

Традиционно дисковый сервис подразделяет физические диски на дискеты (diskette) и фиксированные диски (fixed disk). Набор функций (табл. 7.8) для этих классов устройств несколько различается как по составу, так и по реализации. Классы различаются по диапазонам номеров физических устройств: для дискет отводят­ся номера 0-7Fh (реально только 0-3), а для фиксированных дисков — 80h-FFh.

Контроллеры дисковых интерфейсов, имеющие в своем составе дополнительные модули BIOS, перехватывают вектор Int 13h, беря на себя обслуживание своих устройств. Когда в IBM PC/XT появились жесткие диски со своим контроллером, модуль BIOS этого контроллера, инициализирующийся во время теста POST, вставал на место Int 13 h, а указатель на исходный обработчик дискового сервиса (драйвер НГМД из системной BIOS) сохранялся на месте Int 40h. Хотя поддерж­ка жестких дисков давно уже включена в системную BIOS, ради совместимости

12.8. Сервисы и прерывания BIOS______________________________________ 487

возможность использования прерывания Int 40h для вызова драйвера гибких дисков сохраняется. Интерфейс этого вызова совпадает clnt 13h,но номер устрой­ства (в регистре DL) не должен превышать 7Fh.

Кроме функций дискового сервиса (Int 13h)c дисковыми устройствами связа­ны еще и векторы, обслуживающие аппаратные прерывания от контроллера НГМД — Int 0Eh (линия IRQ 6) и от контроллера жестких дисков — Int 76h (линия IRQ 14). При наличии двухканального порта АТА второй канал обычно за­действует линию IRQ 15 (вектор 77h). В XT контроллер жестких дисков занимал линию IRQ 5 (вектор ODh). Дополнительные контроллеры дисков могут исполь­зовать и другие прерывания. Аппаратные прерывания вырабатываются контрол­лерами по завершении (нормальному и аварийному) внутренних операций. На эти прерывания BIOS не реагирует, а при инициализации их векторы направляются на программную заглушку (инструкцию IRET).

Стандартные драйверы дисковых функций BIOS (включая и расширенный сер­вис) имеют однозадачное происхождение.
Во время выполнения функции значи­ тельное процессорное время может затрачиваться на ожидание завершения опе­рации устройством. Драйверы многозадачного режима построены иначе: у них есть вызывающая часть, инициализирующая начало операции, и обработчик аппа­ратного прерывания от контроллера, сообщающий операционной системе о вы­полнении операции и результате.

Традиционный сервис BIOS

Традиционный дисковый сервис работает в 16-разрядном режиме процессора, все параметры вызова передаются через регистры процессора. Адрес сектора задается в системе CHS и размещен весьма специфично. Сервис вызывается программным прерыванием Int 13h, при вызове принимаются следующие соглашения:

¦ номер функции задается в регистре АН и не должен превышать 3Fh;

¦     логический номер диска задается в регистре DL (бит 7 = 0 — признак обращения к НГМД);

¦     номер цилиндра (О-1023) задается в регистре СН (младшие8бит)иСЦ7:6] (стар­

шие 2 бита);

¦     номер головки (0-255) задается в регистре DH;

¦     номер начального сектора (1-63) задается в регистре CL [ 5 :0];

¦     количество секторов, участвующих в операции, 8 бит — в регистре AL (0-255);

¦     указатель на начало буфера оперативной памяти для считываемых и записы­

ваемых данных (address of buffer) — в регистрах Е S: ВХ;

¦     результат выполнения операции определяется по флагу переноса: С F = 0 —успешное выполнение операции, CF = 1 — обнаружены ошибки (код состояния возвращается в регистре АН, код завершения последней операции с дискетами хранится по адресу 40:4lh, с жесткими дисками — 40:74h);

¦     таблица параметров диска для дискет (DPT) задана указателем в памяти по

адресу 0:78h, для жестких дисков (HDPT) — 0:104h или 0:118h.

488

Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Список функций традиционного сервиса приведен в табл. 12.7, подробнее они описаны в [4, 9].


Устройства могут не поддерживать некоторые функции, о чем драйверы должны «честно сообщить» кодом возврата Olh.

Таблица 12.7. Функции традиционного дискового сервиса







12.8. Сервисы и прерывания BIOS



1   Только для фиксированных дисков.

2   Только для дискет и других сменных носителей.

3   Назначение отличается от обычного.

Формально традиционный сервис позволяет работать с дисками, имеющими до 1024 х 256 х 63 = 16 515 072 секторов (около 8,4 Гбайт). Ряд операционных сис­тем имеет ошибку, не позволяющую использовать полный объем, допустимый дан­ным сервисом. Для дисков объемом более 15 481 935 секторов следует пользо­ваться только функциями расширенного сервиса (см. ниже). Однако при работе с устройствами АТА имеется еще и барьер в 528 Мбайт. Дело в том, что контрол­лер жесткого диска АТА, на который ориентированы драйверы Int 13h, имеет только 4-битный регистр номера головки (а в BIOS — 6 бит). Правда, этот же кон­троллер способен принимать 16-битный номер цилиндра (в BIOS — 10 бит). По­нятно, что непосредственно без искажений через эти два фильтра (формат вызова и формат регистров контроллера) может пройти только вызов с самыми жестки­ми ограничениями по каждой координате. Тогда ограничение, полученное тем же перемножением диапазонов координат, получается около 528 миллионов байт:

(210 = 1024 цилиндра) х (24 - 528 482 304 байт.

16 головок) х (26 - 1 = 63 сектора) х 512 байт =

Для преодоления 528-мегабайтного барьера дисков АТА, не трогая программного интерфейса, в BIOS ввели расширение традиционного дискового сервиса. Интер-

490______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

фейс АТА в трехмерной геометрии позволяет реализовать довольно большой (но уже не запредельный) объем диска:

(216

= 65 536 цилиндров) х (24 = 16 головок) х (28 - 1 = 255 сектора) х 512 байт = - 136,9 Гбайт.

Чтобы достичь хотя бы интерфейсного ограничения BIOS (8,4 Гбайт), стали при­менять трансляцию параметров вызова функций Int 13h, которые будем теперь называть логическими, в физические* параметры, передаваемые контроллерам АТА-дисков.


В функции, которая сообщает параметры диска (функция 8), производит­ся обратная трансляция, так что на стороне вызова программного интерфейса Int 13h присутствуют только логические параметры. Естественно, логический объем диска не может превышать физического: (С х Н х S)ЛОГ ?(С х Н х 8)ФИЗ-

Подробнее о преодолении барьеров и способах трансляции (LBA, Large Disk, ЕСН5)см.в[1,4,9]

Расширенный сервис BIOS

Чтобы получить возможность работы через BIOS с дисками объема более 8,4 Гбайт, потребовалось ввести новые функции дискового сервиса.

Расширенный дисковый сервис BIOS, Enhanced Disk Drive Services (EDD), продви­гаемый фирмой Phoenix Technologies LTD, реализуется многими разработчиками BIOS и устройств массовой памяти. Он позволяет работать с устройствами, име­ющими объем до 264 секторов, эффективно используя архитектуру процессоров IA-32 и IA-64. Сервис оперирует линейным логическим адресом сектора (LBA). Вместо традиционных таблиц параметров дисков в нем используются новые, да­ющие исчерпывающую информацию об устройствах, их физической организации и интерфейсе. Устройства могут иметь сменные носители и сами быть съемны­ми в процессе работы компьютера (например, подключенные к шине USB или IEEE1394), так что понятие «сменяемость носителя» несколько размывается. Такие устройства должны поддерживать механизм уведомления о смене носите­ля и программное блокирование смены носителя. По прогнозам емкости данного интерфейса должно хватить на 15-20 лет.

Расширения BIOS Int 13h используют ОС Windows 95, Windows 98, Windows 2000. Правда, это использование ограничено лишь начальной загрузкой и процессом установки (FDISK, FORMAT), поскольку в регулярной работе применяются соб­ственные 32-разрядные драйверы. Расширения BIOS Int 13h не используют DOS (все версии), Windows 3. lx, Windows NT, Novell NetWare, OS/2 Warp, Linux, Unix. В настоящее время определены три набора функций:

¦     доступ к фиксированным дискам (fixed disk access subset) — функции 41-44h,47h и 48h;



¦     блокировка и смена носителя ( device locking and ej ecting subset) — функции 41 h,45h, 46h, 48h и 49h;

1 Зная устройство современных винчестеров, здесь и далее не будем добираться до истинно физических параметров — реального номера цилиндра, головки и сектора.

12.8. Сервисы и прерывания BIOS                         ___________________________ 491

¦   поддержка расширенных дисков (enhanced disk drive (EDD) support subset) —функции 41h и 48h.

Расширенный сервис, как и традиционный, вызывается программным прерыванием I n t 13 h с номерами функций свыше 3Fh (регистр АН); номер устройства (регистр DL) допустим в диапазоне 80h-FFh. Основные параметры вызова — начальный адрес блока, число секторов для передачи и адрес буфера — передаются через адресный пакет (device address packet). Формат пакета в сравнении с передачей параметров традиционного сервиса через регистры процессора довольно просторный.

Поскольку расширение BIOS может и отсутствовать, имеется функция проверки его наличия (номер 41h). Расширение может действовать избирательно (не для всех устройств), так что проверку надо производить для конкретного устройства, интересующего программу. Проверка дает номер версии расширения и карту под­держиваемых наборов функций. Функции расширенного чтения, записи, верифи­кации и поиска (42h, 43h, 44h и 47h) по смыслу не отличаются от их аналогов из традиционного сервиса. Для работы со сменными носителями введены функции отпирания/запирания, извлечения и проверки факта смены носителя (45h, 46h и 49h). От идеологии традиционного сервиса сильно отличается функция получе­ния параметров устройства (48h). Она возвращает в ОЗУ буфер с набором пара­метров и детальным описанием устройства, позволяющим ОС и приложениям работать с ним, минуя BIOS. Функция установка аппаратной конфигурации (4Eh) позволяет управлять режимом передачи (РЮ, DMA), а также предварительной выборкой (поиском).

Для эмуляции дисков на загружаемых CD-ROM к сервисам BIOS Int 13h добав­ляется несколько новых функций:

¦     начать/завершить эмуляцию диска (4Ah/4Bh), начать эмуляцию диска и вы­

полнить загрузку (4Ch);

¦     прочитать секторы загрузочного каталога (4Dh); функции 41-48h позволяют обращаться к любым логическим секторам CD-ROM (в режиме LBA с разме­ром сектора 2048 байт), когда для данного привода включена эмуляция.

Подробнее расширенный сервис рассмотрен в [4].


Int h — поддержка принтера


Сервисы BIOS I n t 17 h: обеспечивают инициализацию, вывод байта данных и оп­рос состояния принтера, подключенного к LPT-порту. При вызове функция зада­ется в регистре АН, номер LPT-порта — в регистре DX.

¦ АН = ООН — вывод байта из регистра AL по протоколу Centronics (без аппарат­ных прерываний). Данные помещаются в выходной регистр, и, дождавшись готовности принтера (снятия сигнала Busy), формируется строб.

¦     АН = Olh — инициализация интерфейса и принтера (установка исходных уров­ней управляющих сигналов, формирование импульса lnit#, запрет аппаратных прерываний и переключение на вывод двунаправленного интерфейса).

¦     АН = 02h — опрос состояния принтера (чтение регистра состояния порта).

При возврате регистр АН содержит байт состояния, который собирается из бит регистра состояния SR [7:3] и программно формируемого флага тайм-аута. Биты 6 и 3 относительно байта, считанного из регистра состояния, инвертированы. Назна­чение бит байта состояния:

¦     бит 7 — не занято (сигнал Busy); нулевое значение означает, что принтер занят (буфер полон или состояние Off-Line, или ошибка);

¦     бит 6 — подтверждение (сигнал Ack#); единичное значение означает, что прин­тер подключен;

494______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

¦     бит 5 — конец бумаги (сигнал PaperEnd);

¦     бит 4 — принтер готов (сигнал Select); нулевое значение означает, что принтер в состоянии Off-Line;

¦     бит 3 — ошибка принтера (сигнал Error*); единичное значение соответствует ошибке;

¦     биты 2:1=00 (не используются);

¦     бит 0 — флаг тайм-аута, устанавливается при неудачной попытке вывода сим­вола, если сигнал Busy не снимается в течение времени, определенного для дан­ного порта в ячейках тайм-аута (в BIOS Data Area); в этом случае согласно протоколу Centronics строб данных не вырабатывается.

Перехват прерывания Int 17h является удобным способом внедрения собствен­ных драйверов принтера. Потребность в них может возникать при подключении к порту принтера с интерфейсом ИPNP или необходимости перекодировки симво­лов. Если разрабатываемый драйвер предназначен не только для перекодировки, но и изменения протокола (через Int 17h можно организовать вывод через LPT-порт по протоколу ИPNP и даже через СОМ-порт), следует внимательно отнес­тись к битам возвращаемого байта состояния. При их неправильном формирова­нии попытки вывода на печать могут приводить к ошибочным сообщениям.



Int h — поддержка СОМ-портов


СОМ-порты поддерживаются сервисом BIOS Int 14h, который обеспечивает опи­санные ниже функции.

¦     ООН — инициализация (установка скорости обмена и формата посылок, задан­ных регистром AL; запрет источников прерываний). На сигналы DTR и RTS влияния не оказывает (после аппаратного сброса они пассивны).

¦     Olh — вывод символа из регистра AL (без аппаратных прерываний). Активиру­ются сигналы DTR и RTS, и после освобождения регистра THR в него помещает­ся выводимый символ. Если за заданное время регистр не освобождается, фик­сируется ошибка тайм-аута и функция завершается.

492______ Глава 12. Архитектурные компоненты IBM РС-совместимого, компьютера

¦     02h — ввод символа (без аппаратных прерываний). Активируется только сиг­нал DTR (RTS переходит в пассивное состояние), и ожидается готовность при­нятых данных, принятый символ помещается в регистр AL. Если за заданное время данные не получены, функция завершается с ошибкой тайм-аута.

¦     03h — опрос состояния модема и линии (чтение регистров МSRиLSR). Эту гаран­тированно быструю функцию обычно вызывают перед функциями ввода-вы­вода во избежание риска ожидания тайм-аута.

При вызове I n t 14h номер функции задается в регистре АН, номер порта (0-3) — в регистре DX (0 — СОМ1, 1 — COM2...). При возврате из функций 0,1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL — байт состояния модема (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на на­личие принятого символа в регистре AL; ненулевое значение бита 7 — на ошибку приема, которую можно уточнить функцией 3. Байт состояния линии (регистр АН) имеет следующий формат:

¦     бит 7 — ошибка тайм-аута (после вызова функции 2 — признак любой ошибки);

¦     бит 6 — регистр сдвига передатчика пуст (пауза передачи);

¦     бит 5 — промежуточный регистр передатчика пуст (готов принять символ для передачи);


¦     бит 4 — обнаружен обрыв линии;

¦     бит 3 — ошибка кадра (отсутствие стоп-бита);

¦     бит 2 — ошибка паритета принятого символа;

¦     бит 1 — переполнение (потеря символа);

¦     бит 0 — регистр данных содержит принятый символ.

Байт состояния модема ( регистр AL при возврате из функций 0,1,3) имеет следу­ющий формат:

¦     бит 7 — состояние линии DCD;

¦     бит 6 — состояние линии RI;

¦     бит 5 — состояние линии DSR;

¦     бит 4 — состояние линии CTS;

¦     бит 3 — изменение состояния DCD;

¦     бит 2 — изменение огибающей RI;

¦     бит 1 — изменение состояния DSR;

¦     бит 0 — изменение состояния CTS.

При инициализации порта биты регистра AL имеют следующее назначение:

¦   биты [7:5] — скорость обмена:

•       000=110; 100=1200; 001=150; 101=2400;

•       010=300; 110=4800;011=600; 111=9600 бит/с;

12.8. Сервисы и прерывания BIOS______________________________________ 493

¦   биты [4:3] — контроль паритета:

•       01 — число единиц нечетное;

•       11 — четное;

•       0 и 10 — без контроля;

¦     бит 2 — количество стоп-бит: 0 — 1 бит, 1 — 2 бита (на скорости ПО бит/с —1,5 стоп-бит);

¦     биты [1:0] — длина посылки: 00 — 5 бит, 01 — 6 бит, 10 — 7 бит, 11 — 8 бит.

В процессе начального тестирования POST BIOS проверяет наличие последо­вательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ1-СОМ4. Нулевое значение адреса является признаком отсутствия порта с данным номером.В ячейки 0:047С, 047D, 047Е, 047F заносятся констан­ты, задающие тайм-аут для портов.

Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интер­фейса DTR и RTS переводятся в исходное состояние («выключено» — положитель­ное напряжение).


Int h — видеосервис


Int 10h — видеосервис — предназначен для работы с графическим адаптером. Его первичной задачей является управление видеорежимом (BIOS Video Mode), оп­ределяющим формат экрана. BIOS адаптера должна выполнять программирова­ние всех стандартных и специфических управляющих регистров для установки (смены) требуемого видеорежима и выбранных параметров развертки — кроме нее о способах этих переключений остальное ПО может и не знать. В пределах возможностей установленного видеорежима видеосервис предостав­ляет возможности отображения информации на различных уровнях. Простейший для программиста телетайпный режим позволяет посылать поток символов, кото­рые будут построчно отображаться на экране с отработкой символов возврата карет­ки, перевода строки, обеспечивая «прокрутку» изображения при заполнении экра­на. Есть функции и для полноэкранной работы с текстом, при которой доступны и атрибуты символа. В графическом режиме имеется возможность чтения и записи пиксела с указанными координатами. Однако видеосервисом Int 10h программи­сты пользуются далеко не всегда, поскольку работает он довольно медленно. Под­робно рассматривать функции видеосервиса не будем (этому посвящены отдель­ные книги), отметим особо лишь функцию телетайпного вывода Int 10h(0Eh). При вызове AH=OEh, в AL — код выводимого символа, в BL — цвет (только для гра­фического режима). Символ выводится в текущую позицию курсора, и курсор сдви­гается на следующую, переходя на новую строку после конца предыдущей и про­кручивая экран при его заполнении. Специальные символы вызывают возврат на начало строки (CR, код ODh), перевод строки (LF, OAh) и короткий гудок (BEL, 07h). Этой функцией часто пользуются для вывода сообщений программами, работа­ющими на нижнем уровне (например, модули инициализации ПЗУ расширений BIOS, загрузчики и другие, не имеющие еще доступа к сервисам операционных систем). Программа вывода получается простейшей, работает на всех адаптерах и во всех режимах, но довольно медленно.



Интерфейс АТА/ATAPI (IDE)


Интерфейс ATA (AT Attachment for Disk Drives) разрабатывался в 1986-1990 гг. для подключения накопителей на жестких магнитных дисках к компьютерам IBM PC AT с шиной ISA. Стандарт, выработанный комитетом ХЗТ10, определяет на-

360_______________________________ Глава 9. Интерфейсы устройств хранения

бор регистров устройств и назначение сигналов 40-контактного интерфейсного разъема. Интерфейс появился в результате переноса стандартного (для PC/AT) контроллера жесткого диска ближе к накопителю, то есть создания устройств со встроенным контроллером — IDE (Integrated Drive Electronics). Стандартный контроллер AT позволял подключать до двух накопителей, что в интерфейсе АТА означает параллельное подключение контроллеров двух устройств. В специфика­ции АТА фигурируют следующие компоненты.

¦ Хост-адаптер — средства сопряжения интерфейса АТА с шиной компьютера.

Хостом мы будем называть компьютер с хост-адаптером интерфейса АТА.

Хост-контроллер — более развитый вариант хост-адаптера.

¦     Ведущее устройство (Master) — ПУ, в спецификации АТА официально называемое Device-О (устройство 0).

¦     Ведомое устройство (Slave) — ПУ, в спецификации официально называемое Device-1 (устройство 1).

Хост-адаптер и устройства объединяются кабелем-шлейфом, соединяющим па­раллельно одноименные контакты интерфейсных разъемов. Регистры обоих кон­троллеров оказываются расположенными в одних и тех же областях пространства ввода-вывода. Для выбора устройства, исполняющего текущую команду, исполь­зуется бит выбора накопителя (DEV) в регистре номера устройства и головки (drive/head register). Если бит DEV4), выбрано ведущее устройство, если DEV=1 — ведомое. Запись в этот регистр воспринимается сразу обоими устройствами, на обращения к остальным регистрам реагирует только выбранное. Достаточно уни­версальный набор сигналов позволяет подключать любое устройство со встроен­ным контроллером, которому в пространстве портов ввода-вывода достаточно того же набора регистров, способное поддержать режим выбора устройства че­рез вышеупомянутый бит.
Принятая система команд и регистров, являющаяся ча­ стью спецификации АТА, ориентирована на блочный обмен данными с устрой­ствами прямого доступа. Для иных устройств существует спецификация AT API, основанная на тех же аппаратных средствах, но позволяющая обмениваться паке­тами управляющей информации (Package Interface, PI). Структура и наполнение пакетов позаимствованы из универсального интерфейса SCSI. Пакетный интер­фейс позволяет расширить границы применения шины АТА.

Адресация в АТА имеет «дисковые корни»: для накопителей изначально указыва­ли адрес цилиндра (cylinder), головки (head) и сектора (sector) — так называемая трехмерная адресация CHS. Сначала эта адресация точно соответствовала реаль­ной геометрии — физически сектор действительно находился по указанному ад­ресу. Позже по ряду причин диски АТА стали описывать внешней геометрией, отличающейся от реальной внутренней (например, разные зоны треков имеют разное число секторов, причем часть секторов может резервироваться на случай замены дефектных). При этом одно и то же устройство может иметь различную внешнюю геометрию. Преобразование адресов в реальные выполняется встроен­ным контроллером устройства. В системе CHS устройство АТА позволяет адре­совать до 267 386 880 (65 536x16x255) секторов (блоков), что при размере сектора в 512 байт дает 136 902 082 560 байт (около 137 Гбайт). Позже пришли к линейной

9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 361

адресации логических блоков LBA (Logical Block Addressing), где адрес блока (сек­тора) определяется 28-битным числом, что позволяет адресовать до 268 435 455 (228) блоков (немного больше, чем в CHS). Для устройств AT А, поддерживающих и CHS, и LBA, режим адресации определяется для каждой команды битом L (бит 6) регистра D/H; режимы могут чередоваться произвольным образом. Устройства ATAPI используют принятую в SCSI 32-битную логическую адресацию, позволя­ющую адресовать до 2 Тбайт (при 512-байтном блоке).



Если к шине АТА подключено одно устройство, оно должно быть ведущим. Если подключены два устройства, одно должно быть ведущим, другое — ведомым. О своей роли (ведущее или ведомое) устройства «узнают» с помощью предва­рительно установленных конфигурационных джамперов. Если применяется «кабельная выборка» (см. ниже), роль устройства определяется его положением на специальном ленточном кабеле. Оба устройства воспринимают команды от хост-адаптера одновременно. Однако исполнять команду будет лишь выбранное устройство. Выводить выходные сигналы на шину АТА имеет право только выб­ранное устройство. Такая система подразумевает, что, начав операцию обмена с одним из устройств, хост-адаптер не может переключиться на обслуживание друго­го до завершения начатой операции. Параллельно могут работать только устрой­ства IDE, подключаемые к разным шинам (каналам) АТА. Спецификация АТА-4 определяет способ обхода этого ограничения, но эту возможность используют редко.

Для устройств IDE существует несколько разновидностей интерфейса.

¦     АТА, он же AT-BUS, — 16-битный интерфейс подключения к шине компьюте­ра AT. Наиболее распространенный 40-проводный сигнальный и 4-проводный питающий интерфейс для подключения дисковых накопителей к компьютерам AT. Для миниатюрных (2,5" и менее) накопителей используют 44-проводный кабель, по которому передается и питание.

¦     PC Card ATA — 16-битный интерфейс с 68-контактным разъемом PC Card

(PCMCIA) для подключения к блокнотным PC. XT IDE (8 бит), он же XT-BUS, — 40-проводный интерфейс, похожий на АТА, но несовместимый с ним.

¦     MCA IDE (16 бит) — 72-проводный интерфейс, предназначенный специально для шины и накопителей PS/2.

¦     АТА-2 — расширенная спецификация АТА. Включает 2 канала, 4 устройства, PIO Mode 3, Multiword DMA Mode 1, Block mode, объем диска до 8 Гбайт, под­держка LBA и CHS.

¦     Fast АТА-2 разрешает использовать Multiword DMA Mode 2 (13,3 Мбайт/с), PIO Mode 4.



¦     АТА-3 — расширение АТА-2. Включает средства парольной защиты, улучшен­ного управления питанием, самотестирования с предупреждением приближе­ния отказа — SMART ( Self Monitoring Analysis and Report Technology).

¦     ATA/ATAPI-4 — расширение АТА-3, включающее режим Ultra DMA со ско­ростью обмена до 33 Мбайт/с и пакетный интерфейс ATAPI. Появляется под­держка очередей и возможность перекрытия команд.

362___________________________         Глава 9. Интерфейсы устройств хранения

¦     ATA/ATAPI-5 — ревизия ATA/ATAPI-4: удаляются устаревшие команды

и биты, добавляются новые возможности защиты и управления энергопотреб­

лением. Включает режим Ultra DMA со скоростью обмена до 66 Мбайт/с.

¦     ATA/ATAPI-6 — дополнения к ATA/ATAPI-5: потоковое расширение для чте­ния/записи аудио- и видеоданных, управление акустическим шумом, режим Ultra DMA со скоростью обмена до 100 Мбайт/с.

¦     Serial ATA — последовательный интерфейс.

¦     E-IDE (Enhanced IDE) — расширенный интерфейс, введенный фирмой Western Digital. Реализуется в адаптерах для шин PCI и VLB. Позволяет подключать до 4 устройств (к двум каналам), включая CD-ROM и стриммеры (ATAPI). Поддерживает РЮ Mode 3, Multiword DMA Mode 1, объем диска до 8 Гбайт, LBA и CHS. С аппаратной точки зрения практически полностью соответству­ет спецификации АТА-2.

Устройства ATA IDE, E-IDE, АТА-2, Fast АТА-2, АТА-3^ ATA/ATAPI-4, ATA/ ATAPI-5 и ATA/ATAPI-6 электрически совместимы. Степень логической совме­стимости достаточно высока (все базовые возможности АТА доступны). Однако для полного использования всех расширений необходимо соответствие специфи­каций устройств, хост-адаптера и его ПО.

Разработкой спецификаций ATA/ATAPI занимается технический комитет Т13 американского Национального Комитета но стандартизации в области инфор­мационных технологий (NCITS). Разработанные им спецификации оформляют­ся в виде стандартов ANSI.Спецификация ATA/ATAPI-6 объявлена последней версией параллельного интерфейса АТА, за которой следует последовательный интерфейс Serial ATA.


Интерфейс дочерней карты


Ряд моделей звуковых карт имеют внутренний интерфейсный разъем подключе­ния дочерней карты с MIDI-синтезатором (Daugterboard Connector). На разъем (табл. 8.19) с основной карты выводится сигнал MIDI-порта (ТТЛ, как и на разъем джойстика) и сигнал аппаратного сброса синтезатора, а с дочерней карты прини­мается стереофонический аналоговый сигнал, который поступает в микшер основ­ной карты. В шинах питания аналоговая земля (AG) отделена от цифровой (DG). Дополнительно может использоваться и вход MIDI (тоже ТТЛ). Разъем может обозначаться и как WT (Wavetable) Connector, Waveblaster Connector.

Таблица 8.19. Назначение контактов разъема подключения дочерней карты Контакт   Цепь   Контакт    Цепь

1

DG

2

3

DG

4

MIDIJDut*

5

DG

6

+5 В

7

DG

8

MIDI_ln# (необязательный)

9

DG

10

+5 В

11

DG

12

13

14

+5 В

15

AG

16

17

AG

18

+12 В

19

AG

20

Audio (R)

21

AG

22

-12В

23

AG

24

Audio (L)

25

AG

26

Reset*

Подключение дочерней карты эквивалентно подключению внешнего синтезатора к MIDI-выходу звуковой карты. Если на звуковой карте отсутствует разъем под-

8.6. Интерфейс игровых устройств — Game-порт__________________________ 349

ключения дочерней карты, то дочернюю карту можно подключить и к внешнему разъему джойстика/MIDI и аналоговым входам звуковой карты. Конечно, на до­чернюю карту нужно подать питание, а также сигнал аппаратного сброса.



Интерфейс Fibre Channel


Кроме параллельного интерфейса, SCSI-3 может использовать и последователь­ный интерфейс Fibre (Fiber) Channel, или FCAL (Fibre Channel Arbitrated Loop — кольцо волоконного канала с арбитражем), который занимает промежуточное положение между интерфейсами периферийных устройств (SCSI-3) и техноло­гиями локальных сетей. Этот интерфейс может иметь как электрическую (коак­сиальный кабель), так и оптоволоконную реализацию. В обоих случаях частота 1 ГГц обеспечивает скорость передачи данных 100 Мбайт/с. Медный кабель допус­кает длину шины до 30 м, оптический — до 10 км. Здесь используется иной прото­кольный и физический уровни интерфейса и имеется возможность подключения к шине до 126 устройств (а не 8 или 16, как для параллельного интерфейса). Для двухточечного соединения возможен полнодуплексный режим (200 Мбайт/с), что невозможно в обычных параллельных шинах. Недавно фирма Adaptec выпустила адаптер со скоростью 2 Гбит/с (и оптика, и медь), обратно совместимый с обыч­ным (1 Гбит/с). В полнодуплексном режиме достигается суммарная пропускная способность 400 Мбайт/с. В кольцо может объединяться до 126 узлов, длина коль­ца может достигать 10 км. По организации кольцо напоминает FDDI — все узлы собираются в замкнутую цепочку и транслируют приходящие кадры дальше по кольцу. Синхронизация передатчика каждого узла автономна, а для компенсации расхождения частот синхронизации используются межкадровые слова-заполни­тели, часть из которых может периодически отбрасываться или вводиться допол­нительно при трансляции. Для обеспечения надежной передачи применяется ко­дирование 8В/10В, для скорости 100 Мбайт/с с учетом накладных расходов на обрамление кадров требуется битовая скорость в линии 1,0625 Гбит/с. Архитек­турная модель FCAL состоит из пяти уровней FC-O...FC-4, нижний (FC-0) опре­деляет среду передачи (оптоволокно или твинаксиальный кабель) и физический интерфейс. Верхний уровень (FC-4) определяет протоколы отображения, отно­сящиеся как к интерфейсам периферийных устройств (SCSI и некоторые другие), так и к сетям (802.2 и IP).
Информация по кольцу передается кадрами размером 36-2148 байт. Обмен данными между устройствами возможен как с установлени­ем соединений, так и без них. Одновременно может быть открыто множество соеди­нений, причем относящихся к разным протоколам (например, SCSI и IP). Аппарату­ра Fibre Channel включает интерфейсные адаптеры, концентраторы, коммутаторы

5.3. Хост-адаптер SCSI_______________________________________________ 141

и маршрутизаторы. Интерфейсные адаптеры представляют собой карты для ком­пьютеров (для высокопроизводительных шин, например PCI). С интерфейсом FCAL выпускаются устройства хранения данных (дисковые и ленточные накопи­тели, массивы накопителей). Концентраторы для FCAL в принципе необязатель­ны, но они позволяют организовать кольцо на звездообразной топологии и обеспе­чить обход отказавших (отключенных) узлов — без них кольцо становится уязвимым при отказе линии или устройства. Коммутаторы (как, например, в технологии Ethernet) позволяют для группы подключенных устройств организовывать соеди­нения «каждый с каждым», что эффективно, например, в случае разделения (сов­местного использования) несколькими серверами нескольких устройств хране­ния. Маршрутизаторы или мосты позволяют соединять FCAL с другими средами передачи информации (например, с классическим интерфейсом SCSI или со сре­дами локальных сетей). В настоящее время FCAL применяется для подключения устройств внешней памяти к серверам, когда требуется высокая производитель­ность и значительное удаление устройств друг от друга. В принципе, FCAL позво­ляет организовывать разделение ресурсов, обеспечивая и резервирование линий связи, но здесь пока имеются сложности на уровне операционных систем.


Интерфейс игровых устройств — Game-порт


Игровые устройства — джойстик, руль и педали автомобиля или иные — вырабаты­вают некоторые аналоговые и дискретные сигналы, которые можно ввести в ком­пьютер. С самых первых моделей IBM PC был введен и фактически стандартизо­ван интерфейс игрового адаптера — Game port, к которому можно подключить до двух джойстиков или иных устройств. Суммарно на порте доступно 4 координат­ных датчика (XI, Х2, Y1 и Y2), изменяющих сопротивление, и 4 дискретных входа для кнопок управления. Назначение координатных датчиков зависит от игры и кон­струкции манипулятора. Для авиасимуляторов XI может соответствовать переме­щению рукоятки вверх-вниз, Y1 — влево-вправо, Х2 — нажатие левой и правой педа­лей, Y2 — рукоятка сектора газа. Для автомобильных рулей XI — руль, Y1 — газ, Х2 — тормоз (газ и тормоз могут быть совмещены в координате Y1). Кроме игро­вых целей порт может применяться и для подключения «серьезных» датчиков.

Современные игровые устройства имеют свой интеллект (микроконтроллер) и подключаются к компьютеру цифровым интерфейсом — по шине USB или че­рез СОМ-порт. Их функциональные возможности богаче, они позволяют устанав­ливать и двустороннюю связь с игроком (вводить механические воздействия).

Адаптер Game-порта имеет в пространстве ввода-вывода один регистр с адресом 20 lh, биты которого при чтении отображают состояние кнопок и компараторов аналоговых сигналов. Ввод дискретных сигналов от кнопок пояснений не требу­ет. Упрощенная схема одного канала аналогового ввода приведена на рис. 8.19. В начале преобразования конденсатор разряжается через ключ, после чего начи­нается его заряд, скорость которого определяется величиной сопротивления дат­чика (чем больше сопротивление, тем медленнее заряд). Напряжение на кон­денсаторе контролируется компаратором, который срабатывает по достижении определенного уровня. Выходы компараторов всех четырех каналов преобразова­ния, как и дискретные входы, собираются в регистр (см. ниже), который может быть программно считан.
Преобразование выполняется чисто программно и на­ чинается по выводу любого байта в регистр адаптера (20lh), при этом биты 0-3 устанавливаются в единицу. Далее программа циклически выполняет чтение ре­гистра адаптера и измеряет время до возврата в нулевое состояние бит 0-3, соот­ветствующих четырем аналоговым каналам. Если аналоговый вход закорочен на шину GND или цепь измеряемого сопротивления разорвана, соответствующий бит не обнулится. Поэтому в программе преобразования должен быть предусмотрен тайм-аут. Для измеряемых сопротивлений в диапазоне 0-100 кОм время опреде­ляется по формуле

Т(мкс)=24,2+1 1хК(кОм).

350________ Глава 8. Специализированные интерфейсы периферийных устройств

Точность и линейность преобразования невысока, преобразование выполняется не быстро (до 1,12 мс) и сильно загружает процессор. Однако в отличие от «на­стоящих» аналого-цифровых преобразователей, этот достается даром — игровой адаптер входит в состав практически всех комбинированных плат последователь­ных и параллельных портов и звуковых карт.



Рис. 8.19. Канал аналогового ввода

Порт имеет разъем-розетку DB- 15S. Назначение выводов и соответствие сигналов битам регистра приведено в табл. 8.20. Резисторы подключаются к шине питания +5 В, кнопки — к шине GND (рис. 8.20). Замыканию кнопок соответствуют нули в битах 5-7. Аналоговые каналы можно использовать для дискретного ввода, если их входы подключить к кнопкам, замыкающим их на шину GND, и к резисторам, «подтягивающим» их к уровню + 5 В. Два джойстика (А и В) подключаются через Y-образный переходник-разветвитель. На звуковых картах через разъем «Game» вместе с джойстиками могут подключаться и внешние MIDI-устройства, исполь­зуя специальный кабель-адаптер, обеспечивающий гальваническую развязку вход­ного сигнала и ограничение выходного тока (см. рис. 8.18). Для интерфейса MIDI используются контакты 12 и 15, ранее предназначавшиеся для шин GND и +5V. Такое назначение делает безопасным подключение адаптера MIDI к «чистому» игровому порту и обычного джойстика к игровому порту с сигналами MIDI.



Таблица 8.20. Интерфейс игрового адаптера и MIDI

Бит

Назначение

Контакт

7

Джойстик В кнопка #2

14

6

Джойстик В кнопка #1

10

5

Джойстик А кнопка #2

7

4

Джойстик А кнопка #1

2

3

Джойстик В Y-координата (Y2)

13

2

Джойстик В Х-координата (Х2)

11

1

Джойстик А Y-координата (Y1)

6

0

Джойстик А Х-координата (Х1)

3

-

GND

4,5,(12)

-

+5 В

1,8,9,(15)

-

MIDI In (Rx) — вход (на звуковой карте)

15

-

MIDI Out (Tx) — выход (на звуковой карте)

12

8.6. Интерфейс игровых устройств — Game-порт

351



Рис. 8.20. Подключение датчиков к игровому адаптеру

Системную поддержку джойстика обеспечивает сервис BIOS Int 15 h при AH=84h. При вызове в DX задается код подфункции:

¦     DX=0 — опрос кнопок, возвращает в AL[7:4] состояние кнопок (соответствует битам порта 20lh);

¦      DX=1 — чтение координат X, Y джойстика А (в регистры АХ, ВХ) и В (в СХ, DX). При ошибочном задании кода в DX устанавливается CF-1. Стандартный джойстик поддерживается и ОС Windows.


Интерфейс JTAG


Интерфейс JTAG (Joint Test Action Group) предназначен для тестирования слож­ных логических схем, установленных в целевое устройство. Этот интерфейс опи­сан в стандарте IEEE 1149.1 Boundary Scan Architecture и является последователь­ным синхронным, но в связи со спецификой назначения значительно отличается от вышеописанных интерфейсов, ориентированных на передачу данных. Интерфей­сом JTAG управляет одно устройство-контроллер (чаще всего это ПК с соответству­ющим интерфейсным адаптером), к которому может быть подключено несколько тестируемых устройств. Ниже перечислены сигналы интерфейса JTAG.

¦     ТСК (Test Clock) — сигнал синхронизации последовательных данных; генери­руется контроллером. Частота синхронизации может достигать 16 МГц.

¦     IMS (Test Mode Select) — сигнал выбора тестового режима. Генерируется кон­троллером.

¦     TDI (Test Data Input) — входные данные, принимаемые устройством в последо­вательном двоичном коде (младшим битом вперед).

¦     ТОО (Test Data Output) — выходные данные, передаваемые устройством в по­следовательном двоичном коде.

¦     TRST (Test Logic Reset) — необязательный сигнал сброса логики интерфейсно­го порта, генерируемый контроллером.

Эти сигналы (все однонаправленные), имеющие обычные логические уровни, об­разуют тестовый порт ТАР (Test Access Port), через который тестируемое устрой­ство подключается к тестирующему оборудованию (контроллеру). В задачу тес­тирующего оборудования входит формирование тестовых сигналов по программе тестирования, определенной разработчиком тестируемого устройства, и сравне­ние полученных результатов с эталонами. Один и тот же контроллер и порт могут использоваться для тестирования любого числа устройств, поддерживающих JTAG. Для этого устройства своими портами ТАР соединяются в цепочку (рис. 11.6). Стандартизованный логический формат позволяет контроллеру независимо об­щаться с каждым из устройств цепочки (для этого, конечно, они должны иметь исправные ячейки JTAG).


11.4. Интерфейс JTAG

447



Рис. 11.6. Цепочка устройств с интерфейсом JTAG

Идею тестирования любой цифровой схемы иллюстрирует рис. 11.7, на котором показана условная цифровая система, имеющая входные, выходные (возможно, с третьим состоянием) и двунаправленные сигналы. Ячейки тестирования B/S врезаются между реальными внешними выводами устройства и собственно ло­гическим устройством, то есть располагаются на логической границе (boundary) устройства. ТАР-контроллер способен сканировать ячейки — управлять ими и считывать с них информацию. Отсюда и пошло название Boundary Scan, которое можно перевести как «периферийное сканирование». При включенном тестовом режиме ТАР-контроллер может логически отсоединить сигналы от внешних выво­дов, задавать входные воздействия и считывать результаты — собственно, это все, что необходимо для тестирования последовательностных схем (автоматов с памя­тью). Прелесть JTAG заключается в том, что независимо от сложности устройства оно тестируется с помощью всего лишь четырех сигналов — все сложности прячут­ся в достаточно простые ячейки, «окутывающие» его сигнальные выводы.

Тестовая логика, встраиваемая в устройство, поддерживающее JTAG, состоит из следующих элементов:

¦     тестовый порт ТАР (четыре интерфейсных сигнала);

¦     ТАР-контроллер, управляющий тестовыми регистрами;

¦     регистр инструкций IR (Instruction Register), который принимает последова­

тельный код со входа TDI (код инструкции используется для выбора исполня­

емой тестовой операции или регистра тестовых данных, к которым произво­

дится обращение);

¦     регистры тестовых данных, из которых любое устройство должно иметь три

обязательных регистра: В PR (Bupas Register), DID (Device Identification Register) и BSR (Boundary Scan Register).

Регистры инструкций и данных представляют собой независимые сдвиговые ре­гистры, соединенные параллельно.


На их входы ( старшие биты) приходит сигнал TDI, с выходов (младшие биты) снимается сигнал ТОО. По каждому положитель­ному перепаду данные продвигаются на один бит.

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

448

Глава 11. Вспомогательные последовательные интерфейсы и шины



Рис. 11.7. Включение ячеек сканирования

Регистр BSR представляет собой длинный сдвигающий регистр, каждым битом которого являются пограничные ячейки, установленные на всех входных и выход­ных сигналах процессора. Для двунаправленных сигналов (или их групп), кроме собственно информационных ячеек регистра, соответствующих внешним сигна­лам, имеются и управляющие ячейки, задающие режим работы информационных ячеек. К примеру, у процессоров Р6 длина BSR составляет 159 бит.

Регистр DID длиной 32 бита содержит идентификатор производителя, код устрой­ства и номер версии, по которым ТАР-контроллер может распознать, с каким устройством он имеет дело.

Регистр IR служит для хранения исполняемой тестовой инструкции. Его длина зависит от тестируемого устройства. Для всех устройств обязательными являют­ся инструкции BYPASS, IDCODE, SAMPLE и EXTEST.

Инструкция BYPASS (все биты кода — единичные) предназначена для подключения однобитного обходного регистра, обеспечивая скорейшее прохождение данных через устройство; при этом оно никак не реагирует на проходящий поток. Вход TDI обычно «подтягивают» резистором к высокому уровню, при этом разрыв цепочки JTAG приведет к подключению обходных регистров во всех устройствах после точки обрыва. Это исключает возможные непредсказуемые действия устройств в случае обрыва.

11.4. Интерфейс JTAG________________________________________________ 449

Инструкция идентификации IDCODE (младшие биты кода — 10) подключает к интерфейсу регистр DID, позволяя считать его содержимое (поступающие вход­ные данные не могут изменить его значение).



Инструкция SAMPLE/PRELOAD (младшие биты кода — 01) имеет два назначения. Когда ТАР-контроллер находится в состоянии Capture-DR (см. ниже), эта ин­струкция позволяет выполнить моментальный «снимок» состояния всех внешних сигналов без воздействия на работу устройства. Значение сигналов фиксируется по положительному перепаду ТСК. В состоянии Update-DR по этой инструкции данные загружаются в выходные ячейки тестового порта (но еще не на выходы устройства), откуда впоследствии они будут выводиться (подаваться на выводы процессора) по инструкции EXTEST. Данные загружаются по спаду сигнала ТСК.

Инструкция EXTEST (младшие биты кода — 00) предназначена для проверки внеш­них цепей (по отношению к тестируемому устройству). При этом на выходные выводы подаются сигналы, предварительно записанные в регистр BSR, а состо­яние входных сигналов фиксируется в этих регистрах. Двунаправленные сигналы предварительно конфигурируются соответствующими им управляющими бита­ми ячеек BSR.

Стандарт 1149.1 предусматривает и инструкцию тестирования внутренней логи­ки устройства INTE5T, но ее поддерживают не все устройства.

Контроллер тестового порта (TAP-controller) представляет собой синхронный конечный автомат, изменяющий состояние по фронту сигнала ТСК и по включе­нию питания. Сменой состояний управляет сигнал TMS (Test Mode State), воспри­нимаемый по положительному перепаду ТСК. Граф состояний и переходов управ­ляющего автомата представлен на рис. 11.8. Около стрелок переходов указаны значения сигнала TMS во время фронта ТСК.

В исходное состояние Test-Logic-Reset контроллер автоматически переходит по включении питания и из любого другого состояния может быть переведен высоким уровнем TMS, удерживаемым не менее пяти тактов ТСК. Для перевода в состояние Test-Logic-Reset иногда используют и дополнительный сигнал TRST. В этом состо­янии тестовая логика запрещена, и устройство работает в нормальном режиме.

Состояние Run-Test/Idle является промежуточным между выполнением тестовых операций.


В этом состоянии регистры не изменяют своего значения.

В состоянии Capture-DR во время выполнения инструкций EXTEST и SAMPLE/ PRELOAD сканирующий регистр фиксирует только данные на входных линиях.

В состоянии Shift-DR данные с TDI продвигаются через подключенный сдвиговый регистр на выход ТОО.

В состоянии Pause-DR контроллер временно запрещает продвижение данных че­рез сдвиговый регистр.

В состоянии Update-DR по спаду ТСК сигналы из сдвигового регистра фиксиру­ются на' выходах тестовых ячеек.

В состоянии Capture-IR контроллер загружает в сдвиговый регистр инструкций код «безобидной» инструкции SAMPLE.

450                         Глава 11. Вспомогательные последовательные интерфейсы и шины



Рис. 11.8. Граф состояний и переходов контроллера ТАР

В состоянии Shift-IR в цепь между TDI и ТОО включается сдвиговый регистр ин­струкций, но еще исполняется предыдущая инструкция.

В состоянии Pause-IR контроллер временно запрещает продвижение данных че­рез сдвиговый регистр инструкций.

В состоянии Update-IR по спаду ТСК фиксируется новая исполняемая инструкция, и в цепь TDI-TDO включается соответствующий ей регистр.

Кроме этих основных состояний контроллера, определяющих действия тестового оборудования, имеются и временные промежуточные состояния, необходимые для реализации переходов автомата. К ним относятся Select-DR-Scan, Exti1-DR, Exit2-DR, Select-DR-Scan, Exit1-IR и Exit2-IR.

Для интерфейса JTAG существует специальный язык описания устройств BSDL (Boundary Scan Description Language). Состав и порядок следования информаци-

11.5. Программно-управляемая реализация последовательных интерфейсов   451

онных и управляющих ячеек в сдвиговом регистре данных специфичен для каж­дого устройства (для чего и существует идентификационный регистр) и сообща­ется его разработчиками.

Интерфейс JTAG используется не только для тестирования, но и для программи­рования различных устройств, в том числе и энергонезависимой памяти микро­контроллеров.Контакты для сигналов JTAG имеются на шине PCI, однако в их использовании единообразия не наблюдается (либо остаются неподключенными, либо соединяются для организации цепочки). Интерфейс JTAG имеется в совре­менных процессорах; здесь он позволяет не только тестировать сам процессор (это не представляет особого прикладного интереса), но и организовать зондовый режим отладки (probe mode, см. [6, 7]). Зондовый режим является мощным средством отладки системного программного обеспечения; обычный процессор, связанный с тестовым контроллером интерфейсом JTAG, превращается во внутрисхемный эмулятор — мечту разработчика системного ПО.