Text
                    ИГРОВАЯ ПРИСТАВКА
SONY PLAYSTATION
История появления наиболее распространенной на сегодняшний день 32-
разрядной приставки SONY PLAYSTATION очень интересна. Все началось,
когда фирма NINTENDO занялась созданием новой игровой консоли с при-
водом CD-ROM, которая сейчас известна как NINTENDO 64. Однако затем
NINTENDO решила оставить привычные картриджи, и CD-ROM остался
у фирмы SONY. Рассудив, что перспективной разработке пропадать не
следует, и учтя опыт выпуска приставок под торговой маркой 3DO, фирма
SONY предложила собственную игровую систему, которая по числу про-
даж обогнала и 3DO и NINTENDO 64.
Основой устройства является процессор, использующий RISC-ядро
MIPS R3000 и функционирующий на частоте 33,9 МГц. Графический про-
цессор представляет собой специальную микросхему, формирующую
цветное изображение размером от 224x240 до 640x480 точек. Видеопро-
цессор способен работать с 15- или 24-разрядным кодированием цвета
и ориентирован на трехмерную полигональную графику.
Для звукового сопровождения применяется программируемый 24-ка-
нальный звуковой процессор CXD2925Q производства фирмы SONY.
В формировании выходного сигнала участвует и двухканальный 16-раз-
рядный дельта-сигма ЦАП, используемый при непосредственном вос-
произведении звуковых фрагментов с компакт-диска.
Программы для приставки хранятся на CD. Для чтения информации
с дисков установлен стандартный двухскоростной привод CD-ROM, кото-
рый управляется посредством отдельного блока, состоящего из контрол-
лера, устройства автоматической регулировки и декодера.
В ПЗУ записана многозадачная операционная система, применяемая
для воспроизведения звука с Audio CD, работы с файловой системой на
дисках с программами, реализации интерфейса с устройствами внешней
памяти типа memory card и управления микросхемами приставки.
В стандартный комплект приставки входят 14-кнопочные игровые пуль-
ты. Четыре кнопки образуют традиционную крестовину, остальные пред-
назначены для управления. Кроме пультов, существует множество допол-
нительных устройств, таких как рули для гонок, джойстики и специальные
приспособления с обратной связью (Force Feedback).

Архитектура и принцип работы. Структурная схема MIPS R3000 32 бит 32 бит 33,9 МГц 2 Мб 512 Кб 1 Мб полигональная 1 Мб 32 бит до 640x480 32767 или 16 млн 4.1. Технические характеристики Центральный процессор Тип Разрядность шины данных Разрядность шины адреса Тактовая частота Память ОЗУ ПЗУ Видеопамять Видеопроцессор Тип графики Адресное пространство Разрядность шины данных Разрешение Количество цветов 4.2. Архитектура и принцип работы В этом разделе рассматривается архитектура игро- ’ вой приставки SONY PLAYSTATION и особеннос- ти разработки программного обеспечения для нее. Подробно рассказывается об архитектуре централь- ного процессора, звукового сопроцессора и видео- процессора. В каждом разделе описано назначение внутренних регистров микросхем и их использова- ние при программировании. 4.2.1. Структурная схема Внутренняя архитектура приставки SONY PLAY- STATION несколько сложнее представленных ранее игровых систем. Главные отличия связаны с тем, что в PLAYSTATION программы хранятся на CD-ROM, для которого требуется схема управления. Другой особенностью являются увеличенные объемы ОЗУ и ПЗУ, установленных в системе. Структурная схе- ма игровой приставки SONY PLAYSTATION при- ведена на рис. 4.1. Основой схемы является центральный процес- сор (CPU), в качестве которого используется мик- росхема CXD8606AQ производства фирмы SONY. Она содержит ядро RlSC-riponeccopa MIPS R3000A и два сопроцессора - управления системой (System Control Coprocessor) и графических вычислений (Graphics Transformation Engine). К центральному процессору подсоединяется внутреннее ОЗУ игро- вой приставки объемом 2 Мб и ПЗУ объемом 512 Кб с записанной в него операционной системой. Также имеется соединение с графическим процессором приставки и декодером, преобразующим поступа- ющие от CD-ROM сигналы в цифровые данные. Отдельной задачей центрального процессора яв- ляется взаимодействие с игровыми пультами и дру- гими устройствами, подключаемыми к разъемам JOYSTICK (CN102), SERIAL I/O (CN104) и PA- RALLEL I/O (CN103). Тактовый генератор цен- трального процессора стабилизируе гея внешним резонатором XI частотой 67,73 МГц. Частота для ядра процессора получается путем деления опор- ной частоты генератора на 2. Сопроцессор управления системой предназначен для обработки сигналов, поступающих от различ- ных блоков игровой приставки. Его основными функциями являются обслуживание поступающих запросов на прерывание, обработка возникающих исключений и передача информации о них ядру процессора, управление таймерами и контролле- ром прямого доступа к памяти. Сопроцессор графических вычислений занят быстрым выполнением базовых операций трехмер- ной графики над матрицами и векторами, чтобы затем передать полученные данные видеопроцессо- ру приставки, который в результате сформирует изображение. Для синхронизации работы программы в игро- вой приставке SONY PLAYSTATION установлены четыре таймера с различной опорной частотой, что дает возможность жестко привязывать выполнение требуемых действий к процессу развертки изобра- жения или отмерять заданные промежутки времени. С целью быстрого обмена данными между раз- личными блоками игровой приставки предусмот- рен контроллер прямого доступа к памяти, позво- ляющий передавать большие блоки информации без участия центрального процессора. Наиболее часто контроллер ПДП применяется для приема данных от CD-ROM и обмена ими с графическим процессором. В модуль видеопроцессора входят непосредствен- но схема графического процессора, видеопамять и ЦАП для генерации выходных сигналов основных цветов. В видеопамяти приставки (объем 1 Мб) хра- нится информация, необходимая для создания изоб- ражения. Видеопроцессор получает эту информа- цию и посылает 24-разрядный цифровой сигнал цветности и сигналы развертки. Микросхема ЦАП преобразует цифровой сигнал цветности в три ана- логовых сигнала для основных цветовых составля- ющих - R, G, В. Далее эти сигналы вместе с импуль- сами синхронизации поступают на микросхему формирователя полного видеосигнала, которая пре- образует их в полный стандартный телевизионный сигнал, передаваемый на выход приставки. 115
\ ИГТ! Wj—riW \ТГГГЖП1иШЩНМИМ1т'И1Я1‘МИММММ|М1'1ГГ - Архитектура и принцип работы. Структурная схема ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION Рис. 4.1. Структурная схема игровой приставки SONY PLAYSTATION В аудиосистему SONY PLAYSTATION входят процессор, генерирующий 24-канальное звуковое сопровождение, буферное ОЗУ и ЦАП. Цифровой сигнал стереофонического звукового сопровождения с выходов процессора поступает на входы цифро-ана- логового преобразователя. Также на входы ЦАП мо- жет подаваться сигнал от контроллера CD-ROM. В качестве цифро-аналогового преобразователя ис- пользуется последовательный однобитовый 16-раз- рядный дельта-сигма ЦАП. Его задачей является формирование полного стереофонического сигнала из данных, приходящих от аудиопроцессора и CD- ROM. Для хранения информации к звуковому про- цессору подключено собственное ОЗУ объемом 116
Архитектура и принцип работы. Центральный процессор 512 Кб, которое позволяет ему работать независи- мо от центрального процессора приставки. Выход- ные сигналы ЦАП поступают на разъем для под- ключения телевизора A/V OUT. Система ввода/вывода игровой приставки SO- NY PLAYSTATION реализована в микросхеме цен- трального процессора. Контроллер ввода/выво- да обрабатывает сигналы, поступающие с разъемов JOYSTICK и SERIAL I/O. Данные от устройств, подключаемых к этим разъемам, приходят в после- довательном формате, бит за битом, и преобразу- ются контроллером в параллельный код, который доступен центральному процессору через соответ- ствующие регистры. Аналогичным образом полу- ченная от процессорного ядра информация преоб- разуется в последовательный код, передаваемый на разъем SERIAL I/O. Для быстродействующих устройств предусмотрен параллельный двуна- правленный порт PARALLEL I/O, обеспечиваю- щий высокоскоростную передачу информации в параллельном виде. Кроме сигналов шины дан- ных и управляющих сигналов на разъем парал- лельного порта выведен ряд тактовых сигналов для синхронизации обмена. Блок питания PLAYSTATION также сложнее, чем линейные стабилизаторы более простых игро- вых приставок. Он выполнен по схеме импульсно- го преобразователя напряжения, что обеспечивает высокую стабильность выходных напряжений и на- дежную защиту от перегрузок, скачков напряжения и коротких замыканий. Необходимость применения такого источника питания связана с повышенным энергопотреблением устройства, жесткими требо- ваниями к стабильности питающих напряжений и с необходимостью формировать несколько вы- ходных напряжений разной величины. 4.2.2. Центральный процессор В SONY PLAYSTATION в качестве центрального процессора используется стандартное ядро RISC- процессора MIPS R3000A. Основными особеннос- тями RISC-процессоров являются сокращенный на- бор команд, где предусмотрены только элементарные операции, одинаковая длина и структура всех ко- манд, минимизация числа обращений к памяти. Кроме того, RISC-процессоры отличаются боль- шим числом внутренних регистров, наличием кэш- памяти для команд и данных, развитыми средства- ми предсказания переходов (за дополнительной информацией о RISC-процессорах можно обра- титься к изданиям, указанным в конце книги). Так- товая частота процессора приставки SONY PLAY- STATION составляет 33,9 МГц. Микропроцессор и другие устройства связаны между собой 32-разрядной шиной адреса, 32-раз- рядной шиной данных и шиной управления. Адрес- ное пространство процессора достигает 256 Мб. Регистры внешних устройств, как это обычно и де- лается в игровых приставках, адресуются процессо- ром аналогично ячейкам памяти и находятся в об- щем адресном пространстве. Структурная схема центрального процессора приставки SONY PLAY- STATION приведена на рис. 4.2. Как видно из рис. 4.2, процессор содержит ариф- метико-логическое устройство, набор из 32 регис- тров общего назначения, схему умножения и деле- ния с собственным 64-разрядным регистром, схему вычисления адреса и схему сдвига, кэш-память для команд (объем 4 Кб) и кэш-память для данных (объем 1 Кб). Взаимодействие блоков центрального процессора происходит с помощью внутреннего устройства управления. Следует отметить, что Шина Шина Шина адреса денных управления Рис. 4.2. Структурная схема центрального процессора игровой приставки SONY PLAYSTATION 117
Архитектура и принцип работы. Центральный процессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION в центральном процессоре SONY PLAYSTATION вместо сопроцессора для вычислений с плавающей точкой есть два специализированных сопроцессо- ра, созданных именно для данной системы. Сопро- цессор управления системой (System Control Co- processor) играет роль дополнительного блока управления, обрабатывая поступающие сигналы и формируя на их основе данные, которые исполь- зуются центральным процессором для контроля состояния отдельных модулей приставки. Сопро- цессор графических вычислений (Graphics Trans- formation Engine) предназначен для быстрого вы- полнения операций над матрицами и векторами трехмерной графики. Он не является стандартным сопроцессором для вычислений с плавающей точкой и, кроме того, не участвует в формировании выводи- мого игровой приставкой изображения, а только вы- полняет необходимые вычисления. Ниже сопроцес- соры будут описаны более подробно. Рассмотрим программную архитектуру процессо- ра, внутренние регистры, систему команд и преры- ваний. Более полную информацию по архитектуре процессора MIPS R3000 и программированию мож- но найти в печатных изданиях и на сайтах Internet, перечисленных в конце книги. Регистры процессора Центральный процессор игровой приставки SONY PLAYSTATION содержит 32 регистра общего назна- чения, счетчик команд PC и 64-разрядный регистр схемы умножеиия/деления, который доступен как два 32-разрядных регистра с именами HI (старшая половина) и LO (младшая половина). Список регис- тров центрального процессора игровой приставки SON)7 PLAYSTATION приведен в табл. 4.1. Все регистры процессора идентичны. В качестве имени регистра используется его номер. Приведен- ные во второй и третьей, колонках таблицы имена регистров и особенности их использования не яв- ляются обязательными, однако их соблюдение об- леигает другим людям чтение и понимание ваших программ. Кроме того, если вы собираетесь пользо- ваться подпрограммами внутреннего ПЗУ пристав- ки, соблюдение приведенных рекомендаций упрос- тит составление программ. Регистры 0 и 31 являются исключением из пра- вила. Регистр с номером 0 всегда содержит число 0 - независимо от того, что вы в него записали. Регистр 31 применяется командой jal для сохранения ад- реса возврата (указателя на команду, следующую за jal). Команда jalr может использовать для этой цели любой регистр процессора, однако по умолча- нию выбирается 31. Счетчик команд PC во время функционирова- ния процессора служит для выборки команд. Фак- тически данный регистр не является обычным, поскольку изменение его содержимого происхо- дит при работе процессора или при выполнении команд перехода. Умножение и деление осуществляется посред- ством двух регистров (HI и LO), которые образуют один 64-разрядный; в системе команд процессора для него предусмотрены отдельные команды. Способы адресации Чтобы процессор работал корректно, в коде коман- ды следует задать местоположение необходимых данных при помощи различных методов адресации. В отличие от рассмотренных ранее, набор методов адресации RISC-процессора может показаться очень небольшим. Регистровая адресация. Наиболее часто исполь- зуемый метод. В команде указывается регистр про- цессора, где содержится нужная информация. На- пример; or t2,a2,v0 ; t2 = а2 OR vO. Непосредственная адресация. В команде имеет- ся непосредственная 16-разрядная константа, кото- рая применяется в качестве операнда. Например: addiu t4,t4,$08 ; t4 = t4 + 8. Индексная адресация. Адрес вычисляется как сумма содержимого определенного регистра и за- данного в команде 16-разрядного смещения. На- пример: sb vl,txtU(tO) ; Запись ; младшего байта ; из регистра vl ; по адресу ; (tO + txtU) . Относительная адресация. Этот метод использу- ется в командах перехода. Атрес следующей выпол- няемой команды равен сумме текущего значения в регистре PC и смещения, указанного в команде. Система команд Центральный процессор игровой приставки SONY PLAYSTATION может выполнять 120 различных команд. Они делятся на следующие функциональ- ные группы: • команды пересылки данных: LB, LH, LW, SB, SH, SW, LUI; • команды арифметических операций: ADD, ADDI, ADDU, SUB, SUBI, SUBU, MULT, DIV; • команды логических операций: AND, OR, XOR, NOR; • команды сдвига: SLL, SRL, SRA; • команды сравнения: SLT, SLTU, SLTI, SLTIU; • команды перехода: J, JR, BEQ, BNE, BGTZ, BLTZ, BLEZ, BGEZ; 775
Архитектура и принцип работы. Центральный процессор Таблица 4.1. Регистры центрального процессора игровой приставки SONY PLAYSTATION Номер регистра Название Описание 0 zero Регистр всегда содержит константу 0 1 Ct Рабочий регистр для временного хранения данных 2 v0 Регистры служат для возврата данных из подпрограмм 3 vl 4 а0 Регистры применяются для передачи аргументов в подпрограмму 5 al 6 a2 7 a3 8 tO Регистры общего назначения, могут произвольно использоваться в программах 9 tl 10 t2 11 t3 12 t4 13 t5 14 t6 15 t7 16 sO Регистровые переменные. Если эти регистры требуются, подпрограмма должна сохранить их содержимое и восстановить его перед возвратом 17 si 18 s2 19 s3 20 s4 21 s5 22 s6 23 s7 24 t8 Регистры общего назначения, могут произвольно задействоваться в программах 25 t9 26 kO Регистры, используемые операционной системой 27 kl 28 9P Регистр применяется как указатель общего назночения 29 sp Регистр играет роль указателя стека 30 fp Регистр выполняет функции указателя кодра либо дополнительной регистровой переменной 31 ra В регистре сохраняется адрес возврата из подпрограммы pc Счетчик команд hi, Io Регистры схемы умножения/деления • команды работы с подпрограммами: JAL, JALR, BLTZAL, BGEZAL; • команды управления процессором: МТС 0, MFC 0, МТС1, MFC1, SYSCALL, BREAK, СОР2, RFE. Полная информация о системе команд централь- ного процессора игровой приставки SONY PLAY- STATION приведена в приложении 1. Сопроцессор управления системой Сопроцессор управления системой SONY PLAY- STATION выполняет функции управления и пред- назначается для отладочных целей, разрешения ситуаций при возникновении прерываний и ис- ключений, а также для анализа сигналов, поступа- ющих от других модулей. С точки зрения программирования сопроцессор управления системой представляет собой 16 регис- тров с номерами от 0 до 15. Для работы с ними в системе команд центрального процессора преду- смотрены две специальные команды. Команда mt с 0 г s, с 0 г копирует значение из ре- гистра rs центрального процессора в регистр сОг сопроцессора. Команда mf с0 rd,cOr пересылает данные из регистра сопроцессора в регистр rd цен- трального процессора системы. ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 119
Архитектура и принцип работы. Центральный процессор Рассмотрим подробнее внутренние регистры со- процессора управления системой и их использова- ние при составлении программ. Регистр О Имя: INX. Назначение разрядов. Рабочий регистр сопроцессора. Регистр 1 Имя: RAND. Назначение разрядов. Рабочий регистр сопроцессора. Регистр 2 Имя: TLBLO. Назначение разрядов. Рабочий регистр процессора, используемый ко- мандой TLB. Более подробную информацию можно найти в документации на процессор MIPS R3000. Регистр 3 Имя: ВРС. Назначение разрядов. В регистр записывается адрес точки останова. При чтении команды, расположенной по указанному ад- ресу, произойдет генерация исключения, и выполне- ние программы прекратится. Регистр 4 Имя: СТХТ. Назначение разрядов. Рабочий регистр сопроцессора. Регистр 5 Имя: BDA. Назначение разрядов. В регистр записывается адрес точки останова в области данных. При чтении или записи данных по указанному адресу возникнет исключительная ситуация и выполнение программы будет прервано. Регистр 6 Имя: PIDMASK. Назначение разрядов. Рабочий регистр сопроцессора. Регистр 7 Имя: DCIC. Назначение разрядов. Регистр управляет обработкой точек прерыва- ния. Для этого в него записывается код со следую- щими значениями разрядов: D31, D30 - разряды должны быть равны 1. D29 — разряд должен быть сброшен. D28 - если разряд установлен в 1, то точка преры- вания, заданная в регистре 5 (прерывание при обра- щении к данным), будет срабатывать при записи. D27 - если разряд равен 1, то точка прерыва- ния, указанная в регистре 5, будет срабатывать при чтении. D26 - если разряд равен 1, то сопроцессору раз- решено обслуживать точку прерывания, задаваемую в регистре 5 (прерывание при обращении к дан- ным); если разряд сброшен, точка прерывания иг- норируется. D25 - если разряд установлен в 1, сопроцессору разрешено обрабатывать точку прерывания, зада- ваемую в регистре 3 (прерывание при чтении ко- манды); в противном случае точка прерывания иг- норируется. D24 — разряд должен быть равен 1. D23 - DO - разряды должны быть сброшены. Регистр 8 Имя: BADVADDR. Назначение разрядов. При возникновении исключения, связанного с ошибкой адресации при обращении к памяти, здесь сохраняется адрес, обращение к которому вызвало ошибку. Регистр доступен только для чтения. Регистр 9 Имя: BDAM. Назначение разрядов. Маска для точки прерывания при обращении к данным. Когда центральный процессор считыва- ет или записывает данные, выполняется логическая операция И над значением адреса и маской, храня- щейся в регистре, после чего результат сравнивает- ся со значением из регистра 5. Использование мас- ки позволяет ставить точку прерывания, которая срабатывает при обращении к заданному диапазо- ну адресов. Регистр 10 Имя: TLBHI/PID. Назначение разрядов. Внутренний регистр сопроцессора, применяе- мый при работе команды TLB. За дополнительной информацией об этой команде следует обратиться к документации на процессор MIPS R3000. Регистр 11 Имя: ВСРМ. Назначение разрядов. Маска для точки прерывания при чтении ко- манд. Регистр используется аналогично регистру 9 (BDAM). Задаваемая маска необходима при обраще- нии процессора к памяти с целью чтения команды. 120
Архитектура и принцип работы. Центральный процессор Регистр 12 Имя: SR. Назначение разрядов. Регистр состояния системы. Код, записываемый сюда, определяет режим работы центрального про- цессора. Назначение разрядов в слове состояния следующее: D31 - работа сопроцессора 3 запрещена, если в этом разряде 0, и разрешена, если 1. В приставке PLAYSTATION сопроцессор 3 отсутствует, так что состояние разряда на работу системы не влияет. D30 - регламентирует работу сопроцессора 2 - сопроцессора графических вычислений (Graphics Transformation Engine). Если в разряде 0, функцио- нирование сопроцессора 2 запрещено, при .1 сопро- цессор включен. D29 - работа сопроцессора 1 запрещается при записи в разряд 0 и разрешается при 1. Сопроцес- сор 1 - это сопроцессор для вычислений с плаваю- щей точкой, который отсутствует в игровой при- ставке. D28 - изменение разряда необходимо для вы- полнения ряда привилегированных команд. На ре- ализацию обычных команд его состояние не влияет. Если в разряд записан 0, сопроцессор управления системой (сопроцессор 0) работает в режиме ядра; в противном случае он функционирует в пользова- тельском режиме. D27, D26 - не используются и должны быть равны 0. D25 - разряд определяет размещение многобайт- ных данных в памяти. Если он равен 0, то младший байт располагается по младшему адресу, если же установлен в 1, данные записываются в обратном порядке: старший байт по младшему адресу. D24, D23 - не используются и равны 0. D22 - если разряд сброшен, то векторы исключе- ний хранятся в ОЗУ, в противном случае — в ПЗУ. D21 - разряд устанавливается, если в программе встретились две команды TLB подряд. D20 - ошибка четности кэша. D19 - разряд показывает результат последней операции загрузки данных с изоляцией кэша дан- ных. Установлен, если необходимая информация содержалась в кэш-памяти. D18 - когда разряд установлен, в бит контроля четности кэша записывается 0. D17 - режим обмена в кэш-памяти. Если бит ра- вен 1, то кэш-память команд будет играть роль кэша данных, а кэш данных - кэша команд. D16 - кэш-память данных работает в обычном режиме, если в разряде установлен 0, и изолирует- ся от шин при 1. В обычном режиме все операции чтения и записи адресуются к кэш-памяти данных, а не напрямую к памяти приставки. D15 - D8 - маска прерываний. Если какой-нибудь разряд установлен, то при поступлении запроса на прерывание с приоритетом, соответствующим этому разряду, будет генерироваться исключение. Когда разряд сброшен, запрос на прерывание игнорируется. D7, D6 - не используются и равны 0. D5 - при возникновении исключения здесь со- храняется состояние разряда D3. D4 - при возникновении исключения здесь со- храняется состояние разряда D2. D3 - при возникновении исключения в разряде устанавливается 1. Команда г f е копирует сюда бит из разряда D5. D2 - при возникновении исключения разряд сбрасывается. Команда rf е копирует в него бит из разряда D4. D1 - 0 - нормальный уровень привилегий; 1 - уровень привилегий ядра. При возникновении ис- ключения этот разряд копируется в разряд D3. Ко- манда rfe помещает сюда бит из разряда D3. D0 - 0 — прерывания разрешены; 1 - все преры- вания запрещены. При возникновении исключения состояние этого разряда сохраняется в разряде D2. Команда rfe копирует сюда бит из разряда D2. Регистр 13 Имя: CAUSE. Назначение разрядов. Регистр информации об исключении доступен только для чтения и содержит информацию о по- следнем возникшем исключении. Назначение раз- рядов в регистре следующее: D31 - если разряд установлен в 1, то последнее исключение указывает на команду перехода, в этом случае при возврате из процедуры обработки ис- ключения надо пропустить четыре байта. D30 - не используется и равен 0. D29, D28 - номер сопроцессора, выполнение ко- манды которого вызвало возникновение исключе- ния, поскольку работа не была разрешена установ- кой соответствующего разряда в регистре SR. D27 - D16 - не используются и равны 0. D15 - D8 - сигналы прерываний. Разряд уста- навливается в 1, если поступил запрос на прерыва- ние. Разряды D8 и D9 доступны также и для записи, что позволяет генерировать запросы на прерывание программным путем, записывая нужное значение в регистр. Чтобы запрос был обработан процессо- ром, необходимо установить соответствующий раз- ряд в регистре SR. D7 - не используется и равен 0. D6 — D2 - код последнего исключения: 0 - запрос на прерывание; 1 - модификация tlb; 2 - загрузка tlb; ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 521
Архитектура и принцип работы. Центральный процессор 3 - запись tlb; 4 - ошибка адреса при чтении данных или выборке команды; 5 - ошибка адреса при записи (выход за пре- делы установленного сегмента или непра- вильное выравнивание данных); 6 - сбой на шине при выборке команды; 7 - сбой на шине при чтении данных; 8 - выполнена команда SYSCALL; 9 - точка останова; 10 - зарезервированная команда; 11 — сопроцессор недоступен; 12 - арифметическое переполнение. DI, D0 - не используются и сброшены в 0. Регистр 14 Имя: ЕРС. Назначение разрядов. Регистр содержит адрес возврата из процедуры обработки исключения. Если в регистре CAUSE разряд D32 установлен, возврат выполняется по ад- ресу ЕРС+4. Регистр 15 Имя: PRID. Назначение разрядов. Регистр доступен только для чтения и содержит идентификатор, определяющий тип и модель про- цессора. Идентификатор процессора возвращается в разрядах D15 - D8, а в разрядах D7 - D0 содер- жится номер версии. Старшие разряды регистра не используются и сброшены. Регистр 16 Имя: ERREG. Назначение. Рабочий регистр сопроцессора управления сис- темой. Как видно из описания внутренних регистров со- процессора управления системой, его функции в иг- ровой приставке SONY PLAYSTATION аналогичны функциям устройства управления микропроцессо- ров, использующихся в других приставках. Сопроцессор графических вычислений Перейдем к рассмотрению второго сопроцессора, называемого сопроцессором графических вычисле- ний (Graphics Transformation Engine, GTE). Он применяется при любых расчетах трехмер- ной графики, таких как перспективная проекция, вращение п масштабирование объектов, вычисле- ние освещенности и др. Для действий над вектора- ми и матрицами предназначен специальный набор операций, которые сопроцессор выполняет гораздо быстрее центрального процессора приставки. Со- процессор подключен к центральному процессору системы как СОР2 и не занимает адресов в про- странстве CPU. Для работы с ним в системе команд центрального процессора предусмотрены специ- альные команды. Знакомство с трехмерной графикой Прежде чем говорить о принципах функциониро- вания данного сопроцессора, системе команд и на- значении внутренних регистров, напомним основ- ные соотношения, используемые в трехмерной графике. Конечно, здесь мы представим лишь базо- вые понятия, дополнительную информацию можно найти в соответствующей литературе. Чтобы определить местоположение точки в трех- мерном пространстве, обычно используют декартову систему координат, изображенную на рис. 4.3. В этой системе координат любая точка в пространстве может быть определена набором из трех значений, отража- ющих ее позицию вдоль каждой из осей. Обычно они указываются в угловых скобках, например <1,2,3>. Рис. 4.3. Декартова система координат в трехмерном пространстве Точка - это базовый примитив трехмерной графи- ки, но строить изображение из точек слишком утоми- тельно. Поэтому нам потребуются вершины и грани. Вершины (vertices) представляют собой точки, которые используются для задания положения та- ких объектов, как грани и сети, в трехмерном про- странстве. Вершины, подобно точкам, указывают местонахождение, однако сами невидимы. Грань (face) - это плоский многоугольник, зада- ваемый своими вершинами. Каждая вершина уста- навливает угол грани. Все вершины грани должны находиться в одной и той же плоскости, формируя плоскую грань. Грань, вершины которой принадле- жат разным плоскостям, является неправильной, и нарисовать ее нереально. Простейшая грань определяется тремя вершина- ми. Получившаяся треугольная грань удобна для работы: во-первых, задать три вершины так, чтобы они не принадлежали одной и той же плоскости, невозможно, следовательно, грань всегда будет правильной; во-вторых, графический процессор использует именно треугольные грани, и, если вы 122
Архитектура и принцип работы. Центральный процессор укажете более сложные грани, для вывода на экран их все равно придется разделять на треугольники. Сеть (mesh) - это набор соединенных граней, как правило, описывающий один объект в сцене. Сеть может иметь одну или много граней. Попробуем смоделировать трехмерные объекты, создавая грани и объединяя их в сеть. Для этого нужно познакомиться с базовыми преобразования- ми трехмерных объектов. Преобразования рассмат- риваются применительно к отдельной точке. Если вы захотите выполнить такие операции для грани или сети, потребуется преобразовать каждую из вершин объекта. Вращение выполняют, умножая определяющий точку вектор на матрицу вращения. Матрица вра- щения - это матрица размером 3x3, которая состо- ит из трех единичных векторов, ортогональных друг к другу. Сведения о том, каким образом получают матрицы и как выполняется умножение вектора на матрицу, можно почерпнуть из учебника математи- ки. Здесь мы приведем только конечный результат: Вращение на угол А вокруг оси X 1 О О О cos A -sin А О sin A cos А Вращение на угол В вокруг оси У cosB 0 sinB О 1 О -sin В 0 cos В Вращение на угол С вокруг оси Z cosC -sinC О sin С cos С О О 0 1 Чтобы выполнить вращение вокруг нескольких осей одновременно, следует перемножить соответ- ствующие матрицы, причем результат зависит от порядка множителей. К сожалению, сопроцессор графических вычислений не в состоянии вычис- лять тригонометрические функции - этим должен заниматься центральный процессор системы. Перемещение объекта осуществляется путем сложения вектора, задающего вершину, с вектором, определяющим направление и дальность передви- жения. Еще раз напоминаем, что в операциях с мат- рицами и векторами очень важен порядок их вы- полнения. Изменив последовательность операндов, вы получите совсем другой результат. Теперь, ознакомившись с основными математи- ческими понятиями, перейдем к рассмотрению их реализации в сопроцессоре игровой приставки SONY PLAYSTATION. Регистры сопроцессора графических вычислений Сопроцессор графических вычислений игровой при- ставки SONY PLAYSTATION имеет 64 внутренних регистра (32 управляющих и 32 регистра данных), которые используются при расчетах. Рассмотрим сначала управляющие регистры, предназначенные для хранения различных констант. Регистр О Имя: R11R12. Назначение. Элементы 11 и 12 матрицы вращения. Элемент 12 занимает разряды D32 - D16, а элемент И - разря- ды D15 - DO. Числа хранятся в формате (1, 3, 12): один знаковый разряд, три разряда для целой части числа и 12 разрядов для дробной. Регистр 1 Имя : R13R21. Назначение. Элементы 13 и 21 матрицы вращения. Эле- мент 21 занимает разряды D32 - D16, а элемент 13 - разряды D15 - DO. Числа хранятся в форма- те (1, 3, 12). Регистр 2 Имя: R22R23. Назначение. Элементы 22 и 23 матрицы вращения. Элемент 23 занимает разряды D32 - D16, а элемент 22 - разря- ды D15 - DO. Числа хранятся в формате (1, 3,12). Регистр 3 Имя: R31R32. Назначение. Элементы 31 и 32 матрицы вращения. Эле- мент 32 занимает разряды D32 - D16, а элемент 31 - разряды D15 - DO. Числа хранятся в форма- те (1, 3, 12). Регистр 4 Имя: R33. Назначение. Элемент 33 матрицы вращения. Занимает разря- ды D15 - DO. Старшие 16 разрядов регистра не ис- пользуются. Число хранится в формате (1, 3, 12). Регистр 5 Имя: TRX. Назначение. Элемент X вектора перемещения. Число хранит- ся в формате (1, 31, 0). Регистр 6 Имя: TRY. Назначение. Элемент Y вектора перемещения. Число хранит- ся в формате (1, 31, 0). Регистр 7 Имя: TRZ. Назначение. Элемент Z вектора перемещения. Число хранит- ся в формате (1, 31, 0). ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 123
Архитектура и принцип работы. Центральный процессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION Регистр 8 Имя: L11L12. Назначение. Элементы 11 и 12 матрицы освещения. Элемент 12 занимает разряды D32 - D16, а элемент 11 - разря- ды D15 - DO. Числа хранятся в формате (1, 3, 12): один знаковый разряд, три разряда для целой час- ти числа и 12 разрядов для дробной. Регистр 9 Имя: L13L21. Назначение. Элементы 13 и 21 матрицы освещения. Элемент 21 занимает разряды D32 - D16, а элемент 13 - разряды D15 - DO. Числа хранятся в формате (1,3, 12). Регистр 10 Имя: L22L23. Назначение. Элементы 22 и 23 матрицы освещения. Элемент 23 занимает разряды D32 - D16, а элемент 22 - разряды D15 - D0. Числа хранятся в формате (1,3, 12). Регистр 11 Имя: L31L32. Назначение. Элементы 31 и 32 матрицы освещения. Элемент 32 занимает разряды D32 - D16, а элемент 31 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12). Регистр 12 Имя: L33. Назначение. Элемент 33 матрицы освещения. Занимает раз- ряды D15 - D0. Старшие 16 разрядов регистра не используются. Число хранится в формате (1,3,12). Регистр 13 Имя: RBK. Назначение. Красная составляющая цвета фона. Число хра- нится в формате (1, 19, 12). Ретстр 14 Имя: GBK. Назначение. Зеленая составляющая цвета фона. Число хра- нится в формате (1, 19, 12). Ретстр 15 Имя: ВВК. Назначение. Синяя составляющая цвета фона. Число хранит- ся в формате (1, 19, 12). Регистр 16 Имя: LR1LR2. Назначение. Элементы 1 и 2 красной составляющей цветовой матрицы освещения. Элемент 2 занимает разряды D32 - D16, а элемент 1 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12): один знаковый раз- ряд, три разряда для целой части числа и 12 разря- дов для дробной. Регистр 17 Имя: LR3LG1. Назначение. Элемент 3 красной составляющей и элемент 1 зе- леной составляющей цветовой матрицы освещения. Зеленая составляющая занимает разряды D32 - D16, а красная - разряды D15 - D0. Числа хранят- ся в формате (1, 3, 12). Регистр 18 Имя: LG2LG3. Назначение. Элементы 2 и 3 зеленой составляющей цветовой матрицы освещения. Элемент 3 занимает разряды D32 - D16, а элемент 2 - разряды D15 - D0. Числа хранятся в формате (1,3, 12). Регистр 19 Имя: LB1LB2. Назначение. Элементы 1 и 2 синей составляющей цветовой матрицы освещения. Элемент 2 занимает разряды D32 - D16, а элемент 1 - разряды D15 - D0. Числа хранятся в формате (1, 3, 12). Регистр 20 Имя: LB3. Назначение. Элемент 3 синей составляющей цветовой матри- цы освещения. Занимает разряды D15 - D0. Стар- шие 16 разрядов регистра не используются. Число хранится в формате (1, 3, 12). Регистр 21 Имя: RFC. Назначение. Красная составляющая общей освещенности. Число хранится в формате (1, 27, 4). Регистр 22 Имя: GFC. Назначение. Зеленая составляющая общей освещенности. Число хранится в формате (1, 27, 4). 124
Архитектура и принцип работы. Центральный процессор Регистр 23 Имя: BFC. Назначение. Синяя составляющая общей освещенности. Чис- ло хранится в формате (1, 27, 4). Регистр 24 Имя: OFX. Назначение. Смещение экрана по оси X. Регистр 25 Имя: OFY. Назначение. Смещение экрана по оси Y. Регистр 26 Имя: FL Назначение. Расстояние до плоскости проекции. Число хра- нится в разрядах D16 - DO в формате (0, 16, 0). Регистр 27 Имя: DQA. Назначение. Параметр, задающий глубину сцены. Число хра- нится в разрядах D16 - D0 в формате (0, 7, 8). Регистр 28 Имя: DQB. Назначение. Параметр, задающий глубину сцены. Число хра- нится в разрядах D16 - D0 в формате (0, 7, 8). Регистр 29 Имя: ZSF3. Назначение. Множитель Z3, обычно равен 1/3. Число хранит- ся в разрядах D16 - D0 в формате (1, 3, 12). Регистр 30 Имя: ZSF4, Назначение. Множитель Z4, обычно равен 1/4. Число хранит- ся в разрядах D16 - D0 в формате (1, 3, 12). Регистр 31 Имя: FLAG. Назначение. Состояние отдельных разрядов регистра сообща- ет о результате выполнения последней операции сопроцессора и о возникновении ошибок. Теперь рассмотрим назначение 32 регистров дан- ных. Эти регистры служат для хранения данных, 'г предназначенных для обработки, и результатов. Регистр 0 Имя: VXY0. Назначение. В регистре хранятся значения координат х и у для первого вектора. Координата у записывается в разряды D31 - D16, а координата х-в разряды D15 - D0. Числа могут храниться в формате (1, 3, 12) или (1, 15, 0). Регистр 1 Имя: VZ0. Назначение. В регистре хранится значение координаты z для первого вектора. Координата записывается в разряды D15 - D0 в формате (1, 3, 12) или (1, 15, 0). Стар- шие 16 разрядов регистра не используются. Регистр 2 Имя: VXY1. Назначение. В регистре хранятся значения координат х и у для второго вектора. Координата у записывается в разряды D31 - D16, а координата х-в разряды D15 - D0. Числа могут храниться в формате (1, 3, 12) или (1, 15, 0). Регистр 3 Имя: VZ1. Назначение. В регистре хранится значение координаты z для второго вектора. Координата записывается в раз- ряды D15 - D0 в формате (1, 3, 12) или (1, 15, 0). Старшие 16 разрядов регистра не используются. Регистр 4 ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION Имя: VXY2. Назначение. В регистре хранятся значения координат х и у для третьего вектора. Координата у записывается в разряды D31 - D16, а координата х-в разряды D15 - D0. Числа могут храниться в формате (1, 3, 12) или в формате (1, 15, 0). Регистр 5 Имя: VZ2. Назначение. В регистре хранится значение координаты z для третьего вектора. Координата записывается в раз- ряды D15 - D0 в формате (1, 3, 12) или (1, 15, 0). Старшие 16 разрядов регистра не используются. 125
Архитектура и принцип работы. Центральный процессор Регистр 6 Имя: RGB. Назначение. В регистре хранится код цвета. Разряды D31 - D24 не используются, в разрядах D23 - D16 содержится код для синей составляющей, в разрядах D15 - D8 - для зеленой и в разрядах D7 - DO - для красной. Регистр 7 Имя: OTZ. Назначение. В младших 16 разрядах регистра хранится сред- нее значение z в формате (0, 15, 0). Регистр досту- пен только для чтения. Регистр 8 Имя: IR0. Назначение. Регистр для промежуточного результата. В стар- ших 16 разрядах содержится копия знакового бита, а в младших - число в формате (1,3, 12). Регистр 9 Имя: IR1. Назначение. Регистр для промежуточного результата. В стар- ших 16 разрядах содержится копия знакового бита, а в младших - число в формате (1, 3, 12). Регистр 10 Имя: IR2. Назначение. Регистр для промежуточного результата. В стар- ших 16 разрядах содержится копия знакового бита, а в младших — число в формате (1,3, 12). Регистр 11 Имя: IR3. Назначение. Регистр для промежуточного результата. В стар- ших 16 разрядах содержится копия знакового бита, а в младших - число в формате (1, 3, 12). Регистр 12 Имя: SXY0. Назначение. Элемент очереди для хранения экранных коорди- нат х и у. Координата у хранится в разрядах D31 - D16 в формате (1,15,0), а координата х — в разрядах D15 - D0 в аналогичном формате. Очередь работает по принципу FIFO, то есть сначала считывается пер- вый записанный элемент. Регистр 13 Имя: SXY1. Назначение. Элемент очереди для хранения экранных коор- динат х и у. Регистр 14 Имя: SXY2. Назначение. Элемент очереди для хранения экранных коор- динат х и у. Регистр 15 Имя: SXYP. Назначение. Элемент очереди для хранения экранных коор- динат х и у. Регистр 16 Имя: SZ0. Назначение. Элемент очереди для хранения экранной коорди- наты z. Она хранится в разрядах D15 - D0 в форма- те (0,16, 0) и всегда является положительной. Стар- шие разряды регистра не используются. Регистр 17 Имя: SZ1. Назначение. Элемент очереди для хранения экранной коор- динаты z. Регистр 18 Имя: SZ2. Назначение. Элемент очереди для хранения экранной коор- динаты z. Регистр 19 Имя: SZP. Назначение. Элемент очереди для хранения экранной коор- динаты z. Регистр 20 Имя: RGB0. Назначение. Элемент очереди для хранения цветовых кодов. Формат хранения аналогичен используемому в ре- гистре 6 (RGB). Регистр 21 Имя: RGB1. Назначение. Элемент очереди для хранения цветовых кодов. Формат хранения аналогичен используемому в ре- гистре 6 (RGB). Регистр 22 Имя: RGB2. Назначение. Элемент очереди для хранения цветовых кодов. Формат хранения аналогичен используемому в ре- гистре 6 (RGB). 126
Архитектура и принцип работы. Центральный процессор - wiMiSjas^^JWs ияда-гт-,:™.® / . • iK«ae*s™wsiss<si^ Регистр 23 Имя: RES1. Назначение. Регистр не используется и недоступен для про- грамм. Регистр 24 Имя: МАСО. Назначение. Регистр хранения результата. Числа содержатся в формате (1, 31, 0). Регистр 25 Имя: МАС1. Назначение. Регистр хранения результата. Числа содержатся в формате (1, 31, 0). Регистр 26 Имя: МАС2. Назначение. Регистр хранения результата. Числа содержатся в формате (1, 31, 0). Регистр 27 Имя: МАСЗ. Назначение. Регистр хранения результата. Числа содержатся в формате (1,31,0). Регистр 28 Имя: IRGB. Назначение. Регистр ввода 15-разрядного кода цвета. В ре- гистр записывается 15-разрядный код, при этом значение синей составляющей определяется раз- рядами D14 - D10, значение зеленой - разряда- ми D9 - D5, а значение красной - разрядами D4 - DO. Сразу после сохранения значения каждой со- ставляющей цвета автоматически преобразуются в формат (1, 11, 4) и помещаются во внутренние регистры сопроцессора (IR1, IR2 и IR3). Регистр доступен только для записи. Регистр 29 Имя: ORGB. Назначение. Регистр чтения 15-разрядного кода цвета. При чтении из этого регистра содержимое внутренних регистров IR1, IR2 и IR3 автоматически преобра- зуется в 5-разрядные коды для цветовых составля- ющих, из которых получается значение в формате, аналогичном используемому в регистре 28 (IRGB). Регистр доступен только для чтения. Регистр 30 Имя: LZCS. , Назначение. Регистр данных для счетчика ведущих нулей. Сюда записывается число в формате (1, 31, 0), а результат возвращается в регистре 31 (LZCR). Ре- гистр доступен только для записи. Регистр 31 Имя: LZCR. Назначение. Счетчик ведущих нулей. При чтении из этого ре- гистра возвращается 6-разрядное число, которое указывает количество ведущих нулей в числе, запи- санном в регистр 30 (LZCS). Если число в регис- тре 30 отрицательно, то передается число ведущих единиц. Регистр доступен только для чтения. После приведенного описания регистров сопро- цессора графических вычислений игровой пристав- ки SONY PLAYSTATION следует дать несколько пояснений. Во-первых, чтобы лучше разобраться с форматами хранения данных, нужно обратиться к рис. 4.4. Во-вторых, необходимо учитывать, что не- которые регистры образуют очереди. Работа с этими очередями ведется таким образом: когда вычисля- ется очередное значение, оно помещается в по- следний регистр очереди, а все элементы очереди 1 3 12 Зной Целая часть Дробная чость 15 14 12 11 Знак Целое число 3’ 30 О Формот (1, 31. О) 1 27 4 Формот (1. 3. 12) 1 19 12 Знак Целая часто Дробная часть 31 30 12 11 0 Формот (1, 19. 12) 1 15 16 Знак Целая чость Дробная часть 31 30 16 15 О Формот (1. 15. 16) Знак Целая чость Дробная чость 31 30 4 3 0 Формот (1, 19. 12) Целое число 15 О Формат (О. 16, О) Рис. 4.4. Форматы данных для сопроцессора графических вычислений ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 127
Архитектура и принцип работы. Адресное пространство ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION сдвигаются на одну позицию к началу. Например, новое значение координат х и у будет помещено в регистр SXYP. Значение, которое здесь хранилось, копируется в регистр SXY2, значение из регистра SXY2 - в регистр SXY1 и значение из регистра SXY1 - в регистр SXY0. Работа с сопроцессором графических вычислений Ниже рассматриваются принципы взаимодействия ядра центрального процессора игровой приставки SONY PLAYSTATION и сопроцессора графических вычислений. С этой целью в систему команд цен- трального процессора введены шесть команд для об- мена данными и одна команда для передачи сопро- цессору кода выполняемой операции. Команды LWC2 и SWC2 позволяют загружать дан- ные из памяти в регистры данных сопроцессора и за- писывать содержимое этих регистров в память. Ко- манды МТС 2 и MFC 2 предназначены для передачи чисел из регистров центрального процессора в регис- тры данных сопроцессора и обратно. Обмен информацией между управляющими ре- гистрами сопроцессора графических вычислений и регистрами центрального процессора осущест- вляется с помощью команд СТС2 и CFC2. Команда СОР2 служит для пересылки сопроцес- сору команд, которые необходимо выполнить. Пос- ле нее указывается 25-разрядный код команды со- процессора графических вычислений. Перед тем как центральный процессор обратит- ся к сопроцессору графических вычислений, раз- ряд 30 в регистре SR сопроцессора управления сис- темой следует установить в 1, в противном случае обращение к сопроцессору вызовет возникновение исключения. Команды сопроцессора графических вычислений нельзя использовать в процедурах об- служивания исключений и запросов на прерывание. Если очередная команда обращения к сопроцес- сору будет выполнена центральным процессором до того, как сопроцессор закончит обработку преды- дущей команды, центральный процессор остановит- ся, ожидая окончания работы сопроцессора. Система команд сопроцессора графических вычислений Ниже мы расскажем о системе команд сопроцес- сора. Знакомство начнем с формата команды, изоб- раженного на рис. 4.5. Любая команда представляет собой 25-разрядное двоичное число. В этом числе выделяется несколько полей, состояние разрядов в которых может влиять на местоположение операндов команды и алгоритм вычисления. Опишем поля более детально: sf - 0 - вычисления; 1 - вычисления со значени- ями из регистров IR; шх - 00 - умножение на матрицу вращения; 01 - умножение на матрицу освещенности; 10 - умножение на матрицу цвета; 11 - не исполь- зуется; v - 00 - операнд в векторе 10; 01 - операнд в век- торе II; 10 - операнд в векторе 12; И - опе- ранд в регистре IR; cv - 00 - прибавление вектора перемещения TR; 01 - прибавление вектора фонового цвета ВК; 10 - прибавление вектора удаленного освещения FAR (работает неправильно); 11 - прибавление вектора отсутствует; 1m - 0 - нет ограничений на результат; 1 - резуль- тат ограничен нулем. Более подробные сведения о системе команд со- процессора графических вычислений игровой при- ставки SONY PLAYSTATION можно найти в In- ternet. 4.2.3. Адресное пространство В этом разделе описывается распределение памяти, установленной в игровой приставке SONY PLAY- STATION. Блоки, рассмотрению которых посвяще- ны следующие разделы, например видеопамять, здесь представлены очень кратко. ПЗУ, имеющееся в иг- ровой приставке, и записанная в нем операционная система анализируются более развернуто, посколь- ку эти сведения необходимы для понимания функ- ционирования основных узлов устройства. Итак, в приставке SONY PLAYSTATION память применяется центральным процессором, видеопро- цессором, звуковым процессором и процессором управления приводом CD-ROM. К центральному процессору подключено ПЗУ, в котором записана операционная система, и 2 Мб оперативной памяти, которые используются про- граммами. ПЗУ и ОЗУ вместе составляют основ- ную память игровой приставки. Оперативная память располагается в самом начале адресного простран- ства (адреса 0000000Oh - 002 00 000h), однако часто в программах можно увидеть адрес, начина- ющийся с 8 Oh. Дело в том, что центральный процес- сор преобразует логические 32-разрядные адреса 24 20 1918 1716 1514 1312 11 10 9 Код комонды SF MX V CV Im Код комондо Рис. 4.5. Формат команды сопроцессора графических вычислений 128
Архитектура и принцип ра боты. Адресное .пространство в физические адреса установленной памяти. При этом адрес, начинающийся с 8 Oh, разрешает рабо- ту кэш-памяти команд. Следовательно, память рас- полагается и по адресам 8000000 Oh- 8020000Oh. Первые 64 Кб задействуются ядром операционной системы, так что первый доступный для размеще- ния программы адрес - 8001000Oh. Регистры различных контроллеров игровой при- ставки включены в общее адресное пространство, где для них имеется отдельная область. Эти регис- тры не являются частью ОЗУ или ПЗУ, но при про- граммировании работа с ними ничем не отличается от работы с памятью. Видеопроцессор для хранения информации о формируемом изображении использует видео- ОЗУ объемом 1 Мб. Оно не является частью обще- го адресного пространства и доступно только через регистры видеопроцессора или посредством кон- троллера прямого доступа к памяти. Звуковой процессор также применяет собствен- ную память объемом 256 Кб, одна часть которой зарезервирована для звуковых данных, поступаю- щих с CD-ROM, а другая хранит данные, необхо- димые внутренним схемам звукового процессора при формировании аудиосигналов. Еще одно ОЗУ объемом 256 Кб подключено к контроллеру управления приводом CD-ROM. Эта память играет роль буфера, ускоряющего обра- щение к CD-ROM из программ. Рассмотрим более подробно операционную сис- тему, которая записана в ПЗУ, игровой приставки. Операционная система SONY PLAYSTATION Операционная система приставки SONY PLAY- STATION представляет собой 32-разрядную много- задачную операционную систему, предназначенную для управления аппаратурой игровой приставки, работы с файловой системой на компакт-диске и осуществления межпоточного взаимодействия в программах. Вызовы функций операционной системы произ- водятся через точку входа с адресом В Oh. Номер функции передается через регистр 11 центрально- го процессора. Таким образом, для обращения к функции операционной системы необходимо за- писать ее номер в регистр 11 и выполнить команду jal $000000В0. Функция openevent Номер: 0 8h. Параметры: аО - класс события; al - спецификатор события; а2 — режим события; аЗ - адрес функции, которая будет выпол- няться при возникновении события. Результат: v0 - дескриптор события или -1, если про- изошла ошибка. Описание. Данная функция создает структуру описателя собы- тия и добавляет' ее в таблицу обрабатываемых собы- тий. Параметры, помещаемые в регистры АО - А2, рас- сматриваются ниже. Возвращаемый дескриптор события в дальнейшем используется при обращении к другим функциям. Класс события определяет, какое устройство вы- зывает возникновение данного события. Старший байт задает группу событий: FFh - события межпоточного взаимодействия; F4h - события системы ввода/вывода; F3h - пользовательские события; F2h - счетчики; F0h - события аппаратуры. Младшие три байта позволяют более детально охарактеризовать событие в зависимости от его группы. Для событий, возникающих по сигналам от аппаратуры, возможны следующие значения: F0000001h- прерывание по кадровому синхро- импульсу (VBLANK); F0000002h- сигнал от видеопроцессора (GPU); F0000003h- сигнал от дешифратора CD-ROM; F0000004h - контроллер прямого доступа к па- мяти; F0000005h - RTC0; F0000006h - RTC1; F0000007h - RTC2; F0000008h- игровой пульт; F0000009h- звуковой процессор: FOOOOOOAh - параллельный порт; FOOOOOOBh - последовательный порт; FOOOOOlOh- исключение; FOOOOOllh- карта памяти (memory card); F0000012h - карта памяти (memory card); F0000013h - карта памяти (memory card). Для событий таймера в старшем байте, как уже упоминалось, содержится число F2h, а в младшем байте — номер канала таймера от 0 до 3. Система ввода/вывода использует события, вы- зываемые картой памяти memory card с классом F4 0 0 0 0 0lh и математической библиотекой с клас- сом F4000002h. Спецификатор служит для более точного опреде- ления действия, вызвавшего возникновение события. Наиболее часто применяются следующие специфи- каторы: 0 0 0lh - счетчик равен нулю; 0002h - работа прервана; 0004h - конец ввода/вывода; 0008h - файл закрыт; 0010b - подтверждение приема команды; 002 Oh - выполнение команды завершено; 129 -32)
Архитектура и принцип работы. Адресное пространство О04Oh - данные готовы; 0 0 8 Oh - конец данных; 010 Oh - время истекло; 020Oh - неизвестная команда; 040Oh - конец буфера чтения; 0800h - конец буфера записи; lOOOh - прерывание; 2 0 0 Oh - новое устройство; 4000h - команда syscall; 03 01h - ошибка в библиотеке libmat'h; 03 02h - неправильный диапазон в библиотеке libmath. И наконец, режим события определяет тип вы- зываемого обработчика. Если этот параметр равен lOOOh, обслуживается запрос на прерывание или исключение; если же параметр равен 200Oh, сразу вызывается обработчик события. Функция closeevent Номер: 09h. Параметры: аО - дескриптор события. Результат: v0 - 1 при удаче, 0 при ошибке. Описание. Функция удаляет структуру описателя события из таблицы обрабатываемых событий. Функция enableevent Номер: OCh. Параметры: аО - дескриптор события. Результат: v0 - 1 при удаче, 0 при ошибке. Описание. Функция разрешает обработку события из табли- цы, определяемого заданным дескриптором. Чтобы в программе могло обслуживаться какое-либо со- бытие, необходимо с помощью функции open- event сначала создать запись о нем, а затем по- средством функции enableevent разрешить его обработку. Функция disableevent Номер: ODh. Параметры: аО - дескриптор события. Результат: v0 - 1 при удаче, 0 при ошибке. Описание. Функция запрещает обслуживание события с ука- занным дескриптором. Из таблицы событий запись не удаляется, так что в дальнейшем можно снова разрешить обработку этого события, вызвав функ- цию enableevent, или удалить структуру описа- ния события функцией closeevent. Функция open Номер: 32h. Параметры: аО - указатель на имя файла; al - режим работы с файлом. Результат: v0 - дескриптор файла или -1 при ошибке. Описание. Функция открывает файл (на компакт-диске или на устройстве memory card) для дальнейшей работы с ним. Игровая приставка SONY PLAYSTATION мо- жет использовать одновременно не более 16 файлов. Режим задают следующие разряды: DO - 1 для чтения. D1 - 1 для записи. D9 - 1 для создания нового файла. D16 - D31 - число блоков в карте памяти (me- mory card), резервируемое для нового файла. Возвращаемый функцией дескриптор файла при- меняется другими функциями. Функция Iseek Номер: 33h. Параметры: аО - дескриптор файла; al - смещение; а2 - база. Описание. Функция перемещает указатель, определяющий текущую позицию доступа к файлу, на число бай- тов, заданное в регистре al. Если в регистре а2 за- писан 0, то смещение вычисляется относительно начала файла, если 1 - относительно имеющейся позиции указателя. Никаких проверок на выход за границы файла не производится. Функция read Номер: 34h. Параметры: аО - дескриптор файла; al - указатель на буфер для считанных дан- ных; al - число байтов, которые будут прочитаны. Результат: v0 - число реально прочитанных байтов или -1 при ошибке. Описание. Функция читает данные из открытого файла и записывает их в память по указанному адресу. Функция write Номер: 35h. Параметры: аО - дескриптор файла; al - указатель на записываемые данные; а2 - число записываемых байтов. 130
Архитектура и принцип работы. Внутренние контроллеры Результат: vO - число реально записанных байтов или -1 при ошибке. Описание. Функция записывает данные в карту memory card. При попытке сохранить информацию на CD- ROM в качестве результата будет возвращен 0. Функция close Номер: 3 6h. Параметры: аО - дескриптор файла. Результат: vO - дескриптор файла или -1 при ошибке. Описание. Функция закрывает определяемый дескрипто- ром файл. Разумеется, функций в ПЗУ игровой приставки гораздо больше, чем описано здесь. В разделе при- веден только минимальный набор, который позво- лит разобраться с излагаемым далее материалом, а также понимать тексты программ. 4.2.4. Внутренние контроллеры Внутренние контроллеры игровой приставки пере- сылают данные, формируют запросы на прерыва- ние и управляют состоянием аппаратуры. В отли- чие от сопроцессоров, для работы с контроллерами не предусмотрено специальных команд; с точки зрения программирования они представляют собой несколько ячеек в общем адресном пространстве приставки. Ниже мы рассмотрим программную архитекту- ру таймера, контроллера прерываний и контролле- ра прямого доступа к памяти. Контроллер прерываний Контроллер прерываний формирует запросы на об- служивание прерываний, которые в дальнейшем будут обрабатываться сопроцессором управления системой. Контроллер использует два регистра садресами lF801070hn lF801074h. Разряды ре- гистров управляют следующими прерываниями: D0 - прерывание по кадровому синхроимпульсу; D1 - прерывание от графического процессора: D2 - прерывание от контроллера CD-ROM; D3 - прерывание от контроллера прямого досту- па к памяти; D4 - прерывание от канала 0 таймера; D5 - прерывание от канала 1 таймера; D6 - прерывание от канала 2 таймера; D7 - прерывание от пульта; D8 - прерывание от последовательного порта; D9 - прерывание от звукового процессора; D10 - прерывание от параллельного порта. Если вы сравните приведенный перечень со спис- ком классов событий, возникающих при работе с ап- паратурой, то увидите, что каждому типу прерывании соответствует определенный класс события. Чтобы процессор мог обслуживать запросы на прерывания, требуется разрешить формирование сигнала, поместив соответствующий разряд в ре- гистр lF801074h, и допустить обработку запросов сопроцессором управления системой, для чего уста- новить разряд D0 и один из разрядов D15 - D8, со- ответствующий данному прерыванию в регистре SR сопроцессора управления системой. После ини- циализации аппаратной части посредством функции openevent необходимо создать запись в таблице об- рабатываемых событий с соответствующим классом и, наконец, вызвать функцию enableevent, чтобы разрешить обслуживание данного события. Перед завершением программа обслуживания прерывания должна передать контроллеру сигнал о своем завершении. Для этого необходимо сбро- сить соответствующий разряд в регистре подтверж- дения прерывания с адресом lF801070h. В про- тивном случае дальнейшая генерация запросов для данного прерывания будет блокирована. Таймер Таймер обычно применяется для синхронизации работы программы и различных блоков игровой приставки, а также для измерения временных ин- тервалов с целью привязки функционирования процессора к реальному времени. Всего в таймере предусмотрено три независимых канала. Как отдельный таймер можно также ис- пользовать запрос прерывания по кадровому син- хроимпульсу. На вход каждого из каналов таймера поступает опорный сигнал с фиксированной частотой, кото- рая задается следующим образом: канал 0 - частота формирования точек на экране; канал 1 - частота строчной синхронизации; канал 2 - частота процессора, деленная на 8. При поступлении тактового импульса показания внутреннего 16-разрядного счетчика таймера уве- личиваются на 1. Когда счетчик достигает значения FFFFh или значения, записанного в управляющем регистре, соответствующий канал таймера генери- рует запрос на прерывание. С точки зрения программирования канал тайме- ра представляет собой три регистра, о которых по- дробно рассказывается ниже. Счетчик канала 0 Адрес: IFSOllOOh. Назначение разрядов. Текущее 16-разрядное значение внутреннего счет- чика канала 0. 131
Архитектура и принцип работы. Внутренние контроллеры ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION Управляющий регистр канала О Адрес: lF801104h. Назначение разрядов: DO - управление состоянием таймера: О - таймер включен; 1 - таймер в режиме ожидания. D3 - определение режима счета: О - счет до FFFFh; 1 - счет до заданного значения. D4, D6 - разряды должны быть равны 1, чтобы таймер формировал запрос на прерывание. D8, D9 - код опорной частоты: 00 - опорная частота 33,872 МГц; 01 - опорная частота равна частоте формиро- вания точек изображения; 10, 11 - не используются. Регистр граничного значения канала 0 Адрес: lF801108h. Назначение разрядов. Если разряд D3 в управляющем регистре установ- лен, то счет ведется до значения, заданного в этом регистре. Счетчик канала 1 Адрес: lF801110h. Назначение разрядов. Текущее 16-разрядное значение внутреннего счет- чика канала 1. Управляющий регистр канала 1 Адрес: lF801114h. Назначение разрядов: D0 - управление состоянием таймера: 0 - таймер включен; 1 - таймер в режиме ожидания. D3 - определение режима счета: 0 - счет до FFFFh; 1 - счет до заданного значения. D4, D6 - разряды должны быть равны 1, чтобы таймер формировал запрос на прерывание. D8, D9 - код опорной частоты: 00 - опорная частота 33,872 МГц; 01 - опорная частота равна частоте строчной развертки; 10, И - не используются. Регистр граничного значения канала 1 Адрес: lF801118h. Назначение разрядов. Если разряд D3 в управляющем регистре уста- новлен, счет ведется до значения, заданного в этом регистре. Счетчик канала 2 Адрес: lF80112 0h. Назначение разрядов. Текущее 16-разрядное значение внутреннего счет- чика канала 2. Управляющий регистр канала 2 Адрес: lF801124h. Назначение разрядов: D0 - управление состоянием таймера: 0 - таймер включен; 1 - таймер в режиме ожидания. D3 - определение режима счета: 0 - счет до FFFFh; 1 - счет до заданного значения. D4, D6 - разряды должны быть равны 1, чтобы таймер формировал запрос на прерывание. D8, D9 - код опорной частоты: 00 - опорная частота 33,872 МГц; 10 - 4,234 МГц; 01, И - не используются. Регистр граничного значения канала 2 Адрес: lF80112 8h. Назначение разрядов. Если разряд D3 в управляющем регистре уста- новлен, счет ведется до значения, заданного в этом регистре. Чтобы использовать таймер в ваших програм- мах, потребуется выполнить следующие действия: 1. Инициализировать таймер, поместив О в регистр счетчика и регистр режима. 2. Записать в регистр граничного значения необходи- мый предел для счета, затем ввести код требуемо- го режима в регистр управления. 3. Разрешить формирование запроса на прерывание, установив соответствующие разряды в регистрах контроллера прерываний (за прерывания от счет- чиков отвечают разряды D4 - D6). 4. Создать запись в таблице событий, вызвав функцию openevent. В качестве параметров указать класс события F200 00 00h (если используется канал 0), F2oooooih (для канала 1) или F2000002h (для ка- нала 2),спецификаторсобытия о о о21т (прерывайие) и режим ЮООЬ (обработка прерывания). В регис- тре аЗ задать адрес функции, которая будет обслу- живать данное прерывание. 5. Разрешить обработку только что созданного собы- тия, вызвав Функцию enableevent. 6.Убедиться, что сопроцессор управления системой будет принимать поступающие запросы на преры- вание. Для этого разряды D10 и DO в регистре SR должны быть установлены. 132
Архитектура и принцип работы. Внутренние контроллеры Все необходимые действия выполнены. Ваш об- работчик должен восстанавливать значения регис- тров и завершаться командой j г га. Контроллер прямого доступа к памяти Контроллер прямого доступа к памяти позволяет быстро передавать большие объемы данных между различными блоками системы без участия цен- трального процессора. Подобное устройство имеет- ся практически в каждой игровой приставке и ис- пользуется во всех программах. Контроллер ПДП SONY PLAYSTATION может обслуживать семь независимых каналов прямого доступа к памяти, каждый из которых характеризу- ется собственной функцией: канал 0 - вход декодера MDEC; канал 1 - выход декодера MDEC; канал 2 - графический процессор; канал 3 - CD-ROM; канал 4 - звуковой процессор; канал 5 - параллельный порт; канал 6 - очистка очереди. С точки зрения программирования контроллер прямого доступа к памяти SONY PLAYSTATION представляет собой два общих регистра управле- ния и по три регистра для каждого из каналов. Об- щие регистры управления располагаются по адресам lF8010F0h и 1F8010F4L. Регистры канала 0 зани- мают адреса 1F80108 Oh, lF801084hn lF801088h, канала 1 - lF801090h, lF801094h иlF801098h, канала 2 - lF8010A0h, lF8010A4h и lF8010A8h и так далее до канала 6. Названные регистры аналогич- ны, поэтому ниже мы опишем их только для канала 0. Регистр разрешения работы каналов Адрес: IFSOlOFOh. Назначение разрядов. Разряды регистра разрешают или запрещают рабо- ту отдельных каналов прямого доступа к памяти. Что- бы канал можно было использовать, надлежащий разряд нужно установить в 1. Соответствие разря- дов регистра номерам каналов следующее: D3 - канал 0; D7 - канал 1; D11 - канал 2; D15 - канал 3; D19 - канал 4; D23 - канал 5; D27 - канал 6; Регистр управления прерываниями Адрес: lF8010F4h. Назначение разрядов. Разряды регистра управляют генерацией запро- сов на прерывание от контроллера ПДП. Чтобы для выбранного канала прямого доступа к памяти фор- мировался запрос на прерывание, здесь нужно уста- новить определенный разряд: D16 для канала 0, D17 для канала 1, D18 для канала 2 и т.д. После обслу- живания запроса программа должна установить бит подтверждения обработки: D24 для канала 0, D25 для канала 1, D26 для канала 2 и т.д. Это необходи- мо, чтобы запрос на прерывание мог генерироваться повторно. Разряды D23 и D31 всегда должны быть равны 1. Далее рассматриваются регистры, предназначен- ные для управления отдельным каналом прямого доступа к памяти. Вместо х следует подставлять со- ответствующую цифру базового адреса (8 для кана- ла 0; 9 для канала 1; А для канала 2 и т.д.). Регистр базового адреса Адрес: lF8010x0h. Назначение разрядов. В регистр записывается начальный адрес блока, который будет передаваться или приниматься по- средством прямого доступа к памяти. Регистр размера блока Адрес: lF8010x4h. Назначение разрядов. В разряды D15 - D0 регистра записывается раз- мер передаваемого блока в словах, а в разряды D31 - D16- количество таких блоков. Убедитесь, что устройство, которому пересылаются данные, способ- но принять блоки заданной величины. Например, графический и звуковой процессоры игровой при- ставки могут получать блоки размером не более 16 слов. Регистр управления каналом Адрес: lF8010x8h. Назначение разрядов. Регистр предназначен для управления отдель- ным каналом прямого доступа к памяти. D24 - канал свободен, если разряд сброшен. Пе- редача данных начнется, когда сюда будет записа- на 1. Разряд автоматически сбрасывается после за- вершения пересылки данных. D10 - если разряд установлен, передается свя- занный список данных. Этот режим возможен толь- ко при работе с графическим процессором. D9 - если разряд установлен в 1, передается по- следовательный поток данных. D0 - если разряд сброшен, данные принимаются от устройства и записываются в память; если уста- новлен - считываются из памяти и передаются устройству. ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 133
Архитектура и принцип работы. Видеопроцессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 4.2.5. Видеопроцессор Графический процессор игровой приставки SONY PLAYSTATION (Graphics Picture Unit, GPU) яв- ляется основным устройством, отвечающим за формирование картинки на экране. Для хранения данных об изображении графический процессор использует 1 Мб быстродействующей видеопамя- ти и 2 Кб кэш-памяти текстур. Процессор ориен- тирован на трехмерную полигональную графику, но может также работать с двумерной графикой и спрайтами. Для быстрой передачи данных от центрального процессора к графическому приме- няется канал прямого доступа к памяти. Видеопамять Знакомство с работой видеопроцессора мы начнем с описания различных областей памяти, которые используются при формировании изображения. К таким областям относятся буфер кадра, память текстур и цветовая таблица. В памяти кадра хранятся все графические дан- ные, которые видеопроцессор применяет для по- строения очередного кадра. Для центрального про- цессора эта область памяти доступна только через регистры графического процессора, поэтому рабо- та с ней имеет определенную специфику. С точки зрения программирования память кадра представ- ляет собой массив точек: 1024 по горизонтали и 512 по вертикали. Каждая точка в памяти зани- мает одно слово (16 разрядов) и хранится в фор- мате, изображенном на рис. 4.6а. Доступ к точке осуществляется по ее координатам, а не по адре- су в видеопамяти. Верхнему левому углу соответ- ствуют координаты (0, 0), а правому нижнему — (1023, 511). Когда графический процессор выводит рисунок на экран, из памяти кадра выбирается отображаемая область, на основе данных которой формируется выходной сигнал. Размеры показываемого фрагмен- та определяются путем записи координат его верх- него левого угла и размеров в регистры графичес- кого процессора. Кроме 15-разрядного, игровая приставка SONY PLAYSTATION может использовать 24-разрядный цвет. В таком случае две точки, выводимые на эк- ран, представляются тремя точками в памяти кад- ра. Применяемый при этом формат хранения дан- ных показан на рис. 4.66. Другой областью видеопамяти является память текстур. Текстурой называется двумерное изобра- жение, накладываемое при выводе на полигон или спрайт. Шаблоны текстур представляют собой изобра- жения фиксированного размера. В качестве места хранения текстур в SONY PLAYSTATION задей- ствуется часть памяти кадра. Создаваемые текстуры могут быть 15-,. 8- или 4-разрядными. Разрядность текстуры определяет число битов, выделяемых для размещения информации о точке, и, следовательно, максимальное количество цветов, которые можно использовать для текстуры. Форматы хранения текстур представлены на рис. 4.6, ниже приведено их краткое описание. В 15-разрядных текстурах каждой точке соот- ветствует одно слово (два байта), где располагают- ся 15-разрядный код цвета (в разрядах DO - D14) и бит признака прозрачности (в разряде D15). О ре- ализации эффекта прозрачности речь пойдет чуть позже. Таким образом, 15-разрядные текстуры об- ладают самой большой палитрой - до 32768 цветов, но также превосходят остальные и по объему зани- маемой памяти. В 8-разрядных текстурах применен несколько иной формат хранения. В этом случае каждый байт содержит индекс цвета. Одно слово задает две точ- ки, а в текстуре имеется 256 цветов. Графический процессор приставки получает индекс и считывает цвет с данным индексом из таблицы. Таблица пред- ставляет собой отдельную область памяти, в которой хранятся полные 15-разрядиые коды цвета. Струк- тура таблицы цветов и принципы работы с нею бу- дут описаны ниже. Число таблиц не ограничивает- ся ничем, кроме объема памяти, но текстура может использовать только одну таблицу. 4-разрядные текстуры очень похожи на 8-раз- рядные, но для каждого цвета здесь требуется 4 бита. Соответственно такие текстуры являются 16-цветными. Для них также необходима таблица цветов. Синий компонент Зеленой компонент Кроений компонент / Флаг 15 87 О 15 87 О 15 87 О Зеленой для точки 0 Красной для точки 0 Красной для точки 1 Синий для точки 0 Синий для точки 1 Зеленый для точки 1 Рис. 4.6. Формат графических данных в экранной памяти 134
Архитектура и принцип работы. Видеопроцессор Текстуры хранятся в специальной области памяти, называемой страницей текстур, которая является частью памяти кадра и имеет размер 256x256 точек независимо от установленного цветового режима. Точки в странице текстур адресуются относитель- но начала этой страницы, а не относительно начала памяти кадра. Таким образом, координаты верхне- го левого угла страницы текстур всегда будут рав- ны (0, 0), а координаты правого нижнего - (255, 255). В случае необходимости разрешается создать несколько страниц текстур. Графическому процессору при формировании изображения приходится производить чтение тек- стуры из памяти для каждого использующего ее примитива. Чтобы эти действия не приводили к большим потерям времени, в графическом про- цессоре установлена кэш-память текстур. Размер изображения, которое может храниться в кэше, за- висит от применяемого формата текстуры и состав- ляет 64x64 точки для 4-разрядных текстур, 64x32 точки для 8-разрядных и 32x32 точки для 15-раз- рядных. Для максимально быстрого исполнения программ следует использовать текстуры указан- ного размера. Таблица цветов Таблица цветов требуется при работе графическо- го процессора с текстурами и представляет собой часть памяти кадра. Она содержит 256 слов для 256-цветного режима или 16 слов для 16-цветного. В каждом слове хранится код одного цвета в стан- дартном 15-разрядном формате, характерном и для приставки SONY PLAYSTATION. Цветовых таб- лиц может быть несколько, как и областей текстур, но каждый примитив способен использовать толь- ко одну таблицу цветов и одну страницу текстур. Возможности графического процессора Ознакомившись с областями памяти, применяе- мыми при формировании изображения, перейдем к рассмотрению возможностей графического про- цессора. Рисунок на экране строится из примитивов. При- митивы - это базовые графические элементы, ис- пользуемые графическим процессором для создания изображений. Более сложные фигуры должны раз- деляться на составляющие их примитивы. Набор примитивов характерен для трехмерной графики. Точка - простейший элемент изображения, опре- деляющий единственную точку и ее цвет. Факти- чески он обрабатывается графическим процессо- ром как прямоугольник с размерами 1x1. Линия - несколько более сложный элемент, зада- ющий прямую линию (совокупность точек) между двумя точками с указанными координатами. При рисовании линии можно использовать затенение Гуро. Полилиния характеризует ломаную линию, состоящую из нескольких отрезков. Прямоугольник - примитив, который представ- ляет собой прямоугольную область экрана, специ- фицируемую координатами верхнего левого угла, высотой и шириной. При отображении такого эле- мента на экран выводится прямоугольник, закра- шенный выбранным цветом. Спрайт - прямоугольник с текстурой, опреде- ляемый так же, как и любой прямоугольник, но имеющий в качестве дополнительного параметра расположение нужной текстуры. Хотя этот элемент и назван спрайтом, его возможности несколько мень- ше, чем в игровых приставках, ориентированных на спрайтовую графику. Полигон - выпуклый многоугольник, из набо- ра которых строится изображение на экране. Гра- фический процессор игровой приставки SONY PLAYSTATION способен рисовать полигонами с тремя и четырьмя вершинами, причем четырех- угольник обрабатывается процессором как два тре- угольника. Каждый многоугольник описывается координатами своих вершин. При рисовании мож- но использовать затенение Гуро. Работа с полиго- нами осуществляется медленнее, чем вывод прямо- угольников, и их назначение также различно: прямоугольники необходимы для изображения плоских объектов, а полигоны - для трехмерных. Полигон с текстурой - это полигон, который по- казывается вместе с выбранной текстурой. Текстура играет роль обоев, наклеиваемых на объект с целью нанесения сложного рисунка на его поверхность. Полигон с текстурой создается аналогично обычно- му полигону, но требует в качестве дополнительно- го параметра адрес используемой текстуры. Вид выводимых на экран примитивов опреде- ляют три параметра: прозрачность, освещенность и маскирование. Когда при формировании изображения исполь- зуется режим прозрачности, цвет точки, которая будет показана на экране, вычисляется на основе цвета точки, уже записанной на этом месте в памя- ти кадра, и точки, которая рисуется. В зависимости от выбранного режима расчета прозрачности при- годна одна из следующих формул: 0,5В + 0.5F; 1,0В + l,0F; 1,0В - l,0F; 1,0В + 0,25F, где В - цвет точки из памяти кадра, a F - цвет ри- суемой точки. Режим прозрачности разрешается задать для лю- бого изображаемого примитива. Если примитив не использует текстуру, прозрачность применяется ко 135
Архитектура и принцип работы. Видеопроцессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION всему объекту. Если рисуется полигон с текстурой, возможны следующие варианты: • в случае 15-разрядных текстур режим задает- ся индивидуально для каждой точки текстуры посредством флага, расположенного в стар- шем разряде; • в случае 8- или 4-разрядных текстур прозрач- ность указывается для каждого цвета. С этой целью в таблице цветов устанавливается стар- ший разряд данных соответствующего оттенка. Применение такого режима замедляет работу графического процессора, поскольку для рисова- ния точки на экране требуются две операции чте- ния и расчет значения цвета. Освещенность позволяет изменять цвет объекта в зависимости от положения источников света. В иг- ровой приставке SONY PLAYSTATION имеется ре- жим равномерной освещенности и освещенности по алгоритму Гуро. В первом случае для любого прими- тива используется одно значение, определяющее его яркость; во втором отдельные значения яркости ука- зываются для каждой вершины примитива, а конеч- ное значение вычисляется путем их интерполяции. Режим маскирования разрешает задавать в па- мяти кадра области отсечения, ограничивающие рисуемое изображение. Ниже мы рассмотрим основные принципы зада- ния параметров, определяющих вид выводимого изображения. Более подробную информацию мож- но найти в разделе, посвященном командам графи- ческого процессора. Сначала надо указать размер экрана, которое будет использоваться в программе. Экран может быть 256, 320, 384, 512 или 640 точек шириной и 240 или 480 точек высотой. Этот параметр также определяет раз- мер отображаемой области памяти в буфере кадра. Затем требуется определить, будет ли использо- ваться чересстрочный режим. Дело в том, что боль- шинство телевизионных приемников не в состоянии показывать картинку с разрешением 480 точек по вертикали. В этом случае включается чересстроч- ный режим формирования изображения, когда на экран сначала выводятся четные строки, а затем нечетные. Для зрителя чередующиеся полукадры сливаются в один. Следующий шаг - выбор числа цветов: 15- или 24-ра.зрядное кодирование цвета. Кроме того, нужно задать формат выходного сиг- нала. Игровая приставка SONY PLAYSTATION мо- жет формировать выходной сигнал, используя сис- тему кодирования цветовой информации PAL или NTSC. Выбор системы осуществляется программ- ным путем. Работа с графическим процессором Вся работа с графическим процессором игровой приставки ведется с применением двух 32-разряд- ных регистров: данных и управления. Для передачи данных графическому процессору часто использует- ся контроллер ПДП. Особенности прямого доступа к памяти будут рассмотрены чуть позднее. Регистр данных графического процессора Адрес: 1F801810L. Назначение разрядов. Через регистр осуществляется обмен данными между центральным и графическим процессорами приставки. Регистр состояния графического процессора Адрес; 1F801814L. Назначение разрядов. Регистр применяется при управлении функцио- нированием графического процессора и для полу- чения информации о текущем режиме. Назначение разрядов различно при чтении и записи, поэтому работу с данным регистром мы рассмотрим отдель- но для каждого режима. При чтении из регистра программа получает сло- во состояния графического процессора. Назначе- ние разрядов этого слова следующее: D31 - состояние разряда используется только при работе в чересстрочном режиме. Если разряд сброшен, то видеопроцессор в данный момент фор- мирует кадр с четными строками, если установлен в 1 - с нечетными строками. D29, D30 - состояние разрядов зависит от теку- щего режима работы контроллера прямого доступа к памяти. Возможны следующие комбинации: 0 0 - контроллер ПДП не применяется; 0 1 - неиспользуемая комбинация; 10 - данные передаются от центрального процес- сора к графическому; И - данные передаются от графического процес- сора к центральному. D28 - если разряд сброшен, графический про- цессор не готов к приему команды. D27 - если разряд сброшен, графический про- цессор не готов к пересылке изображения. D26 - если разряд сброшен, графический про- цессор занят рисованием примитива. Если разряд равен 1, графический процессор простаивает. D25, D24 - не используются. D23 - если разряд сброшен, графический процес- сор формирует изображение на экране, если уста- новлен в 1 — графический процессор отключен, и изображение на экране отсутствует. 136
Архитектура и принцип работы. Видеопроцессор D22 - если разряд установлен в 1, графический процессор работает в чересстрочном режиме. D21 - если разряд сброшен, используется 15-раз- рядное кодирование цвета; если установлен в 1 - 24-разрядное. D20 - если разряд установлен в 1, видеопроцес- сор формирует сигнал изображения в системе PAL, в противном случае - в формате NTSC. D19 - определяет размер изображения по верти- кали: О - 240 точек; 1 - 480 точек. D18-D16 - указывают размер изображения по горизонтали: ООО - 256 точек; 001 - 384 точки; 010 - 320 точек; 100 - 512 точек; 110-640 точек. D15 - D13 - не используются. D12 - если разряд установлен в 1, точки, у кото- рых установлен бит маскирования (самый старший разряд), не отображаются. DI 1 - если разряд установлен в 1, активизирует- ся режим маскирования; иначе данный режим вы- ключен. D10 - управление рисованием в области экрана: если разряд установлен, рисование разрешено, если сброшен - запрещено. D9 - включение режима смешивания цветов. D8, D7 - задание разрядности цвета текстур: 00 - 4-разрядных текстур; 01 - для 8-разрядных; 10 - для 15-разрядных; 11 - не применяется. D6, D5 - код, помещаемый в эти разряды, опре- деляет формулу для работы с прозрачными тексту- рами. Соответствие кодов и формул следующее: 00 0,5В + 0.5F; 01 1,0В + l,0F; 10 1,0В - l,0F; И 1,0В + 0.25F, где В - цвет точки, уже записанной в памяти кадра, a F - цвет рисуемой точки прозрачной текстуры. D4 - определение вертикальной координаты на- чала страницы текстур. Если разряд сброшен, она равна 0, в противном случае - 256. D3 - D0 - задание горизонтальной координаты начала страницы текстур. Она равна значению, за- писанному в этих разрядах, умноженному на 64, то есть может принимать значения 0,64,128,192 и т.д. При работе с графическим процессором в регистр управления помещаются команды для процессора, при этом код команды заключается в разрядах D31 - D24, а оставшиеся разряды применяются для передачи параметров. Рассмотрим некоторые наиболее часто используемые команды графичес- кого процессора. Сброс графического процессора Код команды: 00h. Параметры: 0 0 0 0 0 Oh. Назначение. Команда используется для инициализации гра- фического процессора, а в некоторых случаях - для прекращения формирования изображения. После ее выполнения в слове состояния графического процессора устанавливается комбинация флагов 14802000b. Сброс буфера команд Код команды: 0 lh. Параметры: 0 0 0 0 0 0h. Назначение. Команда очищает буфер команд графического процессора. Сброс IRQ Код команды: 02h. Параметры: OOOOOOh. Назначение. Команда принудительно сбрасывает формируе- мый графическим процессором сигнал запроса на прерывание. Включение экрана Код команды: 03 b. Параметры: OOOOOOh - разрешить формирование изображе- ния на экране; 0 0 0 0 0 lh - запретить. Назначение. Команда служит для управления формировани- ем изображения на экране. В выключенном состоя- нии графический процессор не формирует выход- ных сигналов и не обращается к видеопамяти. Установка прямого доступа к памяти Код команды: 04h. Параметры: OOOOOOh - прямой доступ к памяти отключен; 000002h — данные передаются от центрального процессора к графическому; 000003h- данные передаются от графического процессора к центральному. Назначение. Команда указывает направление пересылки дан- ных при использовании прямого доступа к памяти. ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION )21 137
Архитектура и принцип работы. Видеопроцессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION Установка начала экрана Код команды: 0 5h. Параметры: в разрядах DO - D9 задается коор- дината по горизонтали (0 -1023), в разрядах D10 - D18 - координата по вертикали (0-512). Назначение. Команда применяется для определения левого верхнего угла области видеопамяти, которая содер- жит выводимое на экран изображение. Задание режима отображения Подкоманды: 08h. Параметры: число, состояние разрядов которо- го характеризует включаемый режим. Назначение отдельных разрядов следующее: D6 - если разряд установлен, а разряды 0 и 1 сброшены, то размер экрана по горизонтали равен 384 точкам. Во всех остальных случаях этот разряд должен быть сброшен. D5 - если разряд установлен, включается черес- строчный режим формирования изображения. D4 - если в разряд записана 1, будет использо- ваться 24-разрядный цвет; в противном случае - 15-разрядный. D3 - видеорежим: 0 - PAL; 1 - NTSC. D2 - размер изображения по вертикали: 0 - 240 точек; 1 - 480 точек. DI, D0 - размер изображения по горизонтали: 00 - 256 точек; 01 - 320 точек; 10-512 точек; 11 - 640 точек. Получение параметров графического процессора Код команды: 10h. Параметры: номер требуемого параметра графи- ческого процессора. Назначение. Данная команда позволяет прочитать нужный параметр графического процессора из регистра дан- ных. Например, если в качестве параметра команды передать код 000007b, то в регистре данных будет возвращен кодовый номер модели установленного графического процессора (для стандартной микро- схемы, используемой в SONY PLAYSTATION, этот номер равен 2). Командные пакеты графического процессора Для того чтобы графический процессор создал изображение на экране, ему должны быть переда- ны все сведения о параметрах изображения (размер по вертикали и горизонтали, положение выводимо- го фрагмента в видеопамяти, разрядность цвета и т.д.), а также сведения о каждом из графических примитивов, составляющих картинку. Все данные относительно рисунка и его парамет- ров передаются графическому процессору в виде пакетов команд. Каждый пакет сообщает об одном примитиве либо устанавливает какой-либо параметр изображения. Следует различать параметры изоб- ражения и дисплея: первые передаются как пакеты команд и характеризуют создаваемую картинку; вторые влияют на генерируемый графическим про- цессором видеосигнал и задаются через команды, записываемые в регистр управления графическо- го процессора. Чтобы графический процессор пра- вильно сформировал изображение, требуется ука- зать как параметры дисплея, так и параметры изображения. Командные пакеты составляются работающей программой, после чего передаются пословно через порт данных графического процессора. Более пред- почтительной из-за скорости и затрат времени цен- трального процессора является пересылка пакетов на основе прямого доступа к памяти. Чтобы упрос- тить управление обменом большого числа пакетов, в игровой приставке SONY PLAYSTATION преду- смотрен специальный режим прямого доступа к па- мяти, когда все передаваемые графическому про- цессору пакеты объединяются в связанный список, каждый элемент которого содержит сведения о его размере, адрес следующего элемента и собственно пакет данных. Отдельные части связанного списка не обязательно должны располагаться в памяти по порядку. Эта технология объясняется на рис. 4.7. Рис. 4.7. Связанный список пакетов команд для графического процессора 138
Архитектура и принцип работы. Видеопроцессор Графический процессор обрабатывает пакеты в порядке их пересылки, следовательно, передан- ные ранее примитивы при рисовании будут пере- крываться теми, которые получены позже. Если в список необходимо внести еще несколько пакетов команд, достаточно найти место, куда они будут по- мещены, заменить указатель найденного элемента списка на адрес добавляемого пакета, а в сам пакет вставить ссылку на следующий элемент списка. Чтобы в связанном списке легче было найти мес- та для вставки новых пакетов, в игровой приставке SONY PLAYSTATION введена функция сортировки пакетов команд. С этой целью сначала строится пу- стой связанный список, который содержит только заголовки данных без самих пакетов. Теперь, если в список нужно добавить какой-либо пакет, доста- точно выбрать его по индексу. Поскольку при формировании трехмерного изоб- ражения требуется, чтобы расположенные ближе к наблюдателю объекты рисовались позже тех, ко- торые находятся дальше, в качестве индекса часто используется координата z отображаемого объекта. После того как программа создала все пакеты ко- манд, которые будут передаваться графическому процессору, следует указать адрес первого элемен- та в списке и переслать все данные, используя кон- троллер прямого доступа к памяти. Отдельный канал контроллера ПДП может со- здавать такие отсортированные таблицы пакетов, что значительно упрощает программирование гра- фического процессора. Рассмотрим структуру элемента связанного спис- ка более подробно (рис. 4.8). В первом 32-разрядном слове содержится заго- ловок элемента списка, включающий в себя размер следующего за заголовком пакета команд в словах (старший байт) и указатель на следующий элемент (остальные байты). Для последнего элемента спис- ка указатель должен быть равен FFFFFFh. Со второго слова начинается пакет команд. В са- мом старшем байте хранится код, определяющий тип пакета, а затем записаны параметры, количество которых зависит от типа пакета. Пакет команд все- гда занимает целое число 32-разрядных слов. Работа с использованием прямого доступа к памяти Графический процессор игровой приставки SONY PLAYSTATION использует два канала прямого до- ступа к памяти. Канал 2 применяется для пересылки связанных списков, содержащих пакеты команд, от центрального процессора к графическому, а также для передачи изображения в буфер или обратно. Канал 6 предназначен для создания пустых связанных спис- ков, назначение которых описывалось выше. Более подробно работа с контроллером прямого доступа к памяти и необходимые регистры были рассмотрены в соответствующем разделе. Основные приемы программирования графического процессора Теперь, изучив основные функции и команды гра- фического процессора SONY PLAYSTATION, мы можем проанализировать основные алгоритмы, ис- пользуемые в программах для него. Работа всегда начинается с инициализации гра- фического процессора игровой приставки, которая выполняется по следующему алгоритму: 1. Передать графическому процессору команду сбро- са (код о Oh). 2. Установить размеры изображения по горизонтали и вертикали, передав в регистр управления графи- ческого процессора команды с кодом 06h и 07h. 3. Задать режим дисплея командой 08h. 4. Указать координаты начала экранной области ко- мандой 05h. 5. Сформировать в памяти пакеты с кодами Elh (режим изображения), E3h, E4h (размеры изображения), E5h (координаты изображения) и последовательно передать их графическому процессору через порт данных или канал прямого доступа к памяти. 6. Разрешить генерацию изображения. Далее программа создает связанный список па- кетов команд, содержащих информацию об изоб- ражении. Чтобы передать этот список графическо- му процессору, необходимо выполнить следующие действия: 1. Подождать, пока графический процессор подгото- вится к приему команд. Об этом сигнализирует установка разряда D28 в регистре состояния графи- ческого процессора. 2. Разрешить работу второго канала контроллера пря- мого доступа к памяти. 3. Установить режим пересылки данных от централь- ного процессора к графическому. 4. Записать в регистр D2_MADR адрес начала списка пакетов команд. ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 139
Архитектура и принцип работы. Звуковой процессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 5. Поместить в регистр D2_BCR 0. 6.Указать в регистре D2_CHCR число 010 00401h. Этот набор флагов запускает передачу связанного списка из памяти в порт графического процессора на основе прямого доступа в память. Рассмотренные алгоритмы представляют собой лишь основы программирования графики для иг- ровой приставки SONY PLAYSTATION. Пример реализации изложенных в этом разделе принци- пов приведен в приложении 2, где представлена учебная программа для игровой приставки, рисую- щая изображение путем передачи данных через порт графического процессора и с использованием прямого доступа в память. 4.2.6. Звуковой процессор Звуковой процессор приставки SONY PLAYSTA- TION служит для формирования звукового сопро- вождения, освобождая тем самым ресурсы цен- трального процессора для других целей. Отличие данного модуля от рассмотренных выше заключа- ется в том, что, помимо обычной программной ге- нерации различных звуков, игровая приставка SONY PLAYSTATION позволяет воспроизводить аудиофайлы с компакт-дисков в формате Audio CD. В этом разделе приводится краткое описание архи- тектуры звукового процессора и его регистров. Микросхема звукового процессора игровой при- ставки SONY PLAYSTATION поддерживает рабо- ту 24 независимых аудиоканалов, дает возмож- ность генерировать стереофоническое звучание и микшировать его с аудиосигналом, получаемым с CD-ROM. Привод CD-ROM управляется через операционную систему приставки (данная тема в настоящей книге не рассматривается из-за боль- шого объема материала). Чтобы ускорить работу звукового процессора, применяется ОЗУ объемом 512 Кб, предназначенное для хранения звуковых данных. ОЗУ звукового процессора В документации ОЗУ звукового процессора называ- ется звуковым буфером (Sound Buffer), мы в даль- нейшем также будем использовать этот термин. Данные в ОЗУ хранятся в виде компрессиро- ванных блоков, за каждым из которых закрепле- но 16 байт. Два байта здесь занимает заголовок, содержащий служебную информацию, а осталь- ные 14 байт отводятся под сведения о формируе- мом аудиосигнале. При декомпрессии блока эти 14 байт преобразуются в 28 байт, передаваемых звуковому процессору. Первые 4 Кб памяти играют роль буфера для хра- нения декодированных звуковых данных, поступа- ющих от CD-ROM, а также данных каналов 1 и 3, воспроизводимых звуковым процессором. Инфор- мация в этих областях хранится в виде 16-разряд- ных чисел, по одному числу на такт воспроизведе- ния. Тактовая частота формирования звукового сигнала в игровой приставке составляет 44,1 кГц. Следующие 4104 байт зарезервированы систе- мой и используются звуковым процессором в соб- ственных целях. С адреса 1008h начинается область аудиодан- ных, а за ней находится область обработки спецэф- фектов. Размеры этих областей меняются в зависи- мости от того, задействован ли блок спецэффектов и какие именно спецэффекты применяются. Распределение адресного пространства звуково- го процессора игровой приставки SONY PLAY- STATION показано на рис. 4.9. OOOOh 03FFh 0400h 07FFh 0800h OBFFh OCOOh OFFFh lOOOh 1007h 1008h Донные левого ханола для Audio CD Данные правого канала для Audio CD Донные для канала 1 Синтезатора - Донные для канола 3 синтеза тора Зарезервировано системой Области зВукобых данных Области донных для э<р<ректоВ XXXXh 7FFFFh Рис. 4.9. Карта памяти звукового процессора Формирование звукового сигнала Как уже упоминалось, звуковой процессор игровой приставки имеет 24 независимых канала. Любой из них может создавать звуковой сигнал, генерировать шум или частоту модуляции для другого канала. Кроме того, каждый канал включает программируе- мый ADSR-фильтр огибающей. Работа ADSR-филь- тра поясняется на рис. 4.10. Процесс формирования звукового сигнала делит- ся на несколько фаз: 1. Нарастание сигнала (А). Сигнал нарастает от нуле- вого значения до максимума. 2. Понижение уровня (D). Уровень звукового сигнала понижается до основного уровня. 140
Архитектура и принцип работы. Звуковой процессор Рис 4.10. ADSR-фильтр огибающей звукового сигнала 3. Основное звучание (S). В течение заданного време- ни генерируется сигнал, уровень которого может понижаться или повышаться. 4. 3атухание (R). Уровень сигнала снижается до нуля. Регистры звукового процессора С точки зрения программирования звуковой про- цессор игровой приставки SONY PLAYSTATION представляет собой набор регистров, занимаю- щих в адресном пространстве приставки диапа- зон lF801C00h - lF801DFFh. Все регистры звуко- вого процессора являются 16-разрядными. Сначала идут 24 группы по восемь 16-разрядных регистров, каждая из таких групп предназначена для управления одним каналом. Поскольку все группы аналогичны, мы рассмотрим только одну из них. Регистр громкости левого канала Адрес: !F801xx0h. Назначение разрядов. Регистр используется для установки громкости и настройки генератора. Назначение разрядов в этих режимах различно и описывается ниже. В режиме настройки громкости: D15 - выбор режима, должен быть равен 0. D14 - фаза сигнала: 0 - нормальная; 1 - инверсная. D13 - DO - громкость сигнала. В режиме настройки генератора: D15 - выбор режима, должен быть равен 1. D14 - режим изменения сигнала: 0 - линейное изменение; 1 - экспоненциальное изменение. D13 - направление изменения уровня сигнала: 0 - увеличение; 1 - уменьшение. D12 - фаза сигнала: 0 - нормальная; 1 - инверсная. Указанная здесь фаза должна совпадать с фазой, заданной при настройке громкости. Dll - D7 - не используются. D6 - D0 - приращение уровня сигнала. Регистр громкости правого канала Адрес: lF801xx2h. Назначение разрядов. Регистр аналогичен регистру громкости левого канала. Регистр высоты звука Адрес: lF801xx4h. Назначение разрядов. В разряды D13 — D0 регистра записывается зна- чение, определяющее высоту генерируемого звука. Разряды D15 и D14 не используются. Регистр адреса звуковых данных Адрес: !F801xx6h. Назначение разрядов. В регистр записывается адрес начала воспроиз- водимых данных в ОЗУ звукового процессора, де- ленный на 8. Регистр 1 настройки огибающей Адрес: lF801xx8h. Назначение разрядов. Регистр используется для настройки огибающей формируемого аудиосигнала, изображенной на рис. 4.22. D15 - режим нарастания: 0 - линейный; 1 - экспоненциальный. D14 - D8 - код, задающий время нарастания сигнала (Аг на рис. 4.22). D7 - D4 - код, определяющий время понижения уровня (Dr на рис. 4.22). Понижение уровня всегда происходит в экспоненциальном режиме. D3 - D0 - код уровня сигнала основного звуча- ния (S1 на рис. 4.22). Регистр 2 настройки огибающей Адрес: lF801xxAh. Назначение разрядов. Регистр применяется для настройки огибающей формируемого аудиосигнала, изображенной на рис. 4.22. D15 - режим изменения основного звучания: О - линейный; 1 - экспоненциальный. D13 - направление изменения сигнала основно- го звучания: 0 - нарастание; 1 - затухание. ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 141
Архитектура и принцип работы. Звуковой процессор ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION D12 - не используется. Dll - D6 — код, задающий время основного зву- чания (Sr на рис. 4.22). D5 - режим затухания: О - линейное; 1 - экспоненциальное. D4 - DO - код, указывающий время затухания сигнала (Rr на рис. 4.22). Регистр текущего уровня огибающей Адрес: lF801xxCh. Назначение разрядов. При чтении из регистра программа получает ин- формацию о текущем уровне огибающей сигнала данного канала. Регистр адреса повтора Адрес: IFSOlxxEh. Назначение разрядов. В регистр помещается деленный на 8 адрес, с ко- торого следует начать повторное воспроизведение звуковых данных. Адрес нужно записывать во вре- мя проигрывания звука, поскольку при запуске ге- нератора в регистре будет 0. Далее идет группа регистров, предназначенная для управления звуковым процессором игровой приставки в целом. Регистр уровня сигнала левого канала Адрес: lF801D80h. Назначение разрядов. Код, записываемый в регистр, определяет уро- вень выходного сигнала для левого канала. Выход- ной сигнал получается после микширования сигна- лов всех левых каналов звукового процессора. Регистр уровня сигнала правого канала Адрес: lF801D82h. Назначение разрядов. Код, записываемый в регистр, определяет уро- вень выходного сигнала для правого канала. Вы- ходной сигнал получается после микширования сигналов всех правых каналов звукового процес- сора. Регистр глубины реверберации левого канала Адрес: lF801D84h. Назначение разрядов. Код, записываемый в регистр, определяет пара- метры реверберации сигнала для левого канала. D15 - фаза сигнала: 0 - нормальная; 1 - инверсная. D14 - D0 - громкость эффекта. Регистр глубины реверберации правого канала Адрес: lF801D86h. Назначение разрядов. Код, записываемый в регистр, определяет пара- метры реверберации сигнала для правого канала. D15 - фаза сигнала: 0 - нормальная; 1 — инверсная. D14 - D0 - громкость эффекта. Далее следуют группы по два 16-разрядных ре- гистра, которые предназначены для управления отдельными каналами звукового процессора Каж- дый разряд записываемого сюда значения управля- ет отдельным стереофоническим каналом. Так, на- пример, для контроля канала 0 используется разряд D0 первого регистра в паре, каналом 1 управляет разряд D1, каналом 2 - разряд D2 и так далее до ка- нала 15, которому соответствует разряд D15. Кана- лами 16-23 управляют, устанавливая или сбрасывая разряды второго регистра в паре. При этом для ка- нала 16 применяется разряд D0, для канала 17 - раз- ряд Din т.д. Старшие восемь разрядов второго ре- гистра не используются и должны быть равны 0. Регистры включения каналов звукового процес- сора Адрес: lF801D88h, 1F801D8AK. Назначение разрядов. Установка в 1 какого-либо разряда в этих регистрах приведет к включению соответствую- щего аудиоканала. Регистры выключения каналов звукового процес- сора Адрес: lF801D8Ch, 1F801D8EK. Назначение разрядов. Установка в 1 какого-либо разряда в этих регис- трах приведет к выключению соответствующего аудиоканала. Регистры включения режима частотной модуляции Адрес: lF801D90h, lF801D92h. Назначение разрядов. Чтобы канал звукового сопровождения работал в режиме частотной модуляции, необходимо уста- новить в 1 соответствующий разряд. В качестве частоты модуляции используется выходной сигнал предыдущего канала. Регистры включения генератора шума Адрес: lF801D94h, lF801D96h. Назначение разрядов. Установкой 1 в соответствующем разряде этих регистров канал звукового сопровождения можно перевести в режим генератора шума. 742
Принципиальная схема. Модуль центрального процессора Регистры включения режима реверберации Адрес: lF801D98h, 1F801D9AE. Назначение разрядов. Установкой 1 в соответствующем разряде канал звукового сопровождения можно перевести в ре- жим реверберации. Регистры контроля работы каналов Адрес: lF801D9Ch, 1F801D9EE. Назначение разрядов. Регистры доступны для чтения и используются для контроля работы каналов звукового процессора. Когда канал занят формированием аудиосигнала, соответствующий ему разряд установлен в 1. Если же канал находится в режиме ожидания, разряд равен 0. 4.3. Принципиальная схема Итак, мы познакомились с программной архитек- турой игровой приставки SONY PLAYSTATION, которая, как и ожидалось, гораздо сложнее, чем у остальных описанных в книге устройств. Дан- ный раздел посвящен описанию аппаратной части и принципов работы SONY PLAYSTATION. Конструктивно приставка SONY PLAYSTATION выполнена на трех платах. На первой плате распо- ложена собственно игровая приставка, схема которой разделена на следующие функционально закончен- ные блоки: модуль центрального процессора, модуль графического процессора, модуль звукового про- цессора и модуль контроллера привода CD-ROM. К плате центрального процессора подключается вто- рая плата - модуль адаптации, предназначенный для работы с компакт-дисками различных производите- лей. На третьей плате выполнен импульсный блок питания. 4.3.1. Модуль центрального процессора Рассмотрение схемы игровой приставки мы начнем с модуля центрального процессора. Его принципи- альная схема изображена на рис. 4.11. Основой процессорного модуля SONY PLAYSTA- TION является микросхема IC103 (CXD8606AQ), объединяющая RISC-ядро центрального процессора и контроллер ввода/вывода. Микросхема выполне- на в корпусе для поверхностного монтажа с 208-вы- водами. Работа центрального процессора синхронизирует- ся внутренним тактовым генератором, частота кото- рого стабилизирована кварцевым резонатором Х101 (67,73 МГц), подключенным к входу CRYSTALP (вы- вод IC103/4). Тактовая частота около 33,9 МГц для работы RISC-ядра процессора формируется внутрен- ним делителем. Посредством шины данных DD0 - DD31 (выво- ды IC 103/42-40,37-28,25-16,23-31), шины адреса DAO - DA11 (выводы IC103/68,67,64-55) и шины управления, образованной цепями передачи сигна- лов DWE (вывод IC103/43), DRAS0 (вывод 1С103/ 45) nDCASO - DCAS3 (выводы IC103/49-46), к центральному процессору подключено динами- ческое ОЗУ приставки объемом 2 Мб. ОЗУ выпол- нено на четырех микросхемах динамической па- мяти IC106 - IC109 (KM4BVC14BJ-6) объемом 512 Кб каждая. В некоторых моделях используется одна микросхема динамического ОЗУ IC106 типа А65844 или А67871, выполненная в 70-выводном корпусе. Для подсоединения этой микросхемы ис- пользуются те же выводы центрального процессо- ра. Обратите внимание: на шине адреса динамичес- кого ОЗУ центрального процессора разряды DA8 (вывод IC103/58) и DA10 (вывод IC103/56) не при- меняются, а разряды адреса DA9 (вывод 1С103/ 57) hDAII (вывод IC103/55) подключены не- стандартным способом. На выходе DAl 1 форми- руется разряд адреса СРМА8, а на линии DA9 - разряд СРМА9. Это обусловлено внутренней структурой процессора и картой распределения адресного пространства, выбранной фирмой-про- изводителем. Работа центрального процессора с динамическим ОЗУ происходит обычным образом. Сначала на шину адреса подаются девять младших разрядов адреса, сопровождаемые сигналом низкого уровня на выходе DRAS0, а затем девять старших разрядов адреса ячейки памяти, и на выходах DCAS0 - DCAS3 формируется сигнал низкого уровня. Одновремен- но происходит запись или считывание информа- ции из динамического ОЗУ. Выполняемое действие (запись или чтение) определяется уровнем сигнала на выходе DWE центрального процессора. Низкий логический уровень соответствует записи, высо- кий - чтению данных. Как в любом динамическом ОЗУ, микросхемы, используемые в игровой приставке, требуют посто- янной регенерации хранящейся в них информации. Во время регенерации центральный процессор уста- навливает на шине адреса динамического ОЗУ ад- рес регенерации и генерирует на выходе DRAS0 сигнал низкого логического уровня. Поскольку в течение этого сигнала на все выходы CAS микро- схем динамического ОЗУ поступает напряжение высокого логического уровня, происходит регене- рация ОЗУ, а не чтение или запись. ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 143
Принципиальная схема. Модуль центрального процессора ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION DIG_+3,3B DIG_GND ^>- - — —— ——— CPMDO C113 ,,0.1 IC гСX A 04AM A — AO A10A00 A'JA 01л'7' A* A^ Y“* Л ° х-ч 1 .У x—/4 V У V У\ YY / x. 7 I rts и KM4BVS14BJ- Vcc^Vss© IDO 107© ID1 106© ID2 ID5© ID3 ID4© NC CAS© WE > DE© RAS ° NC@ A9 A8© АО A7© Al A6© A2 A5© АЗ A4 © Vcc Vss(15r DI 1 4 ,,0.1 -6 CPMD7 CPMD1 CPMD6 CPMD2 CPMD5 CPMD3 CPMD4 CPMA9 — CPMA8 k. CPMAO CPMA7 CPMA1 CPMA6 CPMA2 CPMA5 CPMA3 CPMA4 CPMD15 CPMD8 IC 107 О © © © © © © © © © © © II KM4BVS14BJ- Vcc'' ^Vss (28^ 100 ID7© ID1 ID6© 102 ID5© ID3 ID4© NC CAS© WE >• DE© RAS ° NC© A9 A8© АО A7© Al A6© A2 A5© A3 A4© Vcc Vss(l5j :iis ,,o.i -6 CPMD9 CPMD14 CPMD10 CPMD13 CPMD11 CPMD12 CPMA8 CPMD23 —r CPMA9 — CPMAO CPMA7 CPMA1 CPMA6 CPMA2 CPMA5 CPMA3 CPMA4 CPMD16 IC 10E © © в © © © © © © © © © ( 11 KM4BVS14BJ- Vcc Vss(28, IDO ID7© 101 ID6© ID2 ID5© ID3 ID4© INC CAS© WE > DE© RAS ° NC© A9 A8© AO A7@ Al A6© A2 A5© АЗ A4© Vcc Vssu5. 31 16 ,, 0,1 -6 CPMD17 CPMD22 CPMD18 CPMD21 CPMD19 CPMD20 CPMA8 CPMD31 CPMA9 — CPMAO CPMA7 CPMA1 CPMA6 CPMA2 CPMA5 CPMA3 CPMA4 CPMD24 IC 109 © © © © © © © © © © © © 11 KM4BVS14BJ- Vcc Vss(28) IDO ID7© ID1 ID6© 102 ID5© ID3 ID4© NC CAS© WE DE© RAS ° NC© A9 A8© АО A7© А1 А6И8) A2 A5© АЗ A4 © Vcc Vss (l5i -6 CPMD25 CPMD30 CPMD26 CPMD29 CPMD27 CPMD28, CPMA8 CPMA9 —I CPMAO CPMA7 CPMA1 CPMA6 CPMA2 CPMA5 CPMA3 CPMA4 k Разъем для подключения пультов SCKO © + 3.3B (9) TXD (8) GND RXD О (© ° ° DTROA О + 8B (4) DTROB © DSR (2) INT б Л (-52/-62) I-------1 R169 О FL112 CL199 ЕХТ_+8В > DIG-+3.3B > сюо ЮООпФ в (-52/62) D110 RD3.95B \ t-43 FL111 D109 RD3.95B L106 1 мкГ н FL119 R140 470 — CTR_3,3B fjH’ D12Q RO^95B] 0107 FL109_________ RD3.95B FL108 —_FL107 FL173 Разъем DlG_GND>-o- последовательного интерфейса L105 1мкГн (-52/62) R139 470 R138 47, КЗ-* D108 RD3.95B L104 1мкГн D106 RD3.95B D112 RD3.95B (-52/62) 0111 RD3.95B R142 470 R141 470 KJ37 R150 47 ± 47 DIG_ + 3,3B L102 1 CL526 О' R143 22 £5} R144 22 R145 22 ^-43—0101 RD3.95B fLW2 R146 1К R146 1К С135 ЮООпФ В D105 RD3.95B D104 RD3.95B 0103 RD3.95B^LU)4 D102 RD3.95B£!JO3 0102 DTC114ЕХ 0104 DTC114ЕХ Q101 DTC114ЕХ 0103 DTC114ЕХ SIO_FG (© SIO_FG (© SIO_+3.3B (3)- RXD (© TXD DSR ( б\ 0 0 DTR л <л © о CTS (©- RTS (9/ SIO_GND © SIO_FG ©> SIO_FG ©- - CL527 CL528 CL529 L CL530 CL531 L CL532 CL533 L ,.1„. .................. IJ .ill Рис. 4.11. Принципиальная схема модуля центрального процессора игровой приставки SONY PLAYSTATION (1 из 3) 144
Принципиальная схема. Модуль центрального процессора 0,1 F ю © ЮООпФ Vdd С104 2 Vdd CRYSTALN 3 CRYSTALP CPMD31 DD31 5 CPMD30 DD30 6 CPMD29 DD29 CPMD28 D28 CPMD27 D27 CPMD26 10)D26 CPMD25 D25 CPMD24 12 D24 CPMD23 D23 13 Vdd Vss °CPMD22 DD22 1 6 CPMD21 DD21 17 CPMD20 DD20 18 CPMD19 DD19 CPMD18 DD18 20 CPMD17 DD17 С157 0,01 ЮООпФ В тПт ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION V CS7 VRD VWR со о со со о о UJ со СУ' 0~ Q СО т (/) Q (/) CPMD15 CPMD16 7 8 9 1 4 1 5 21 DD16 22 DD15 CPMD14 <24 DD14 m ю e CPMD13 25 DD13 26 Vdd IC ЮЗ CXD8606Q Центральный процессор CXD8606Q 21 С155 0.01 27) Vss 12 CPMD11 (Zti) DU1 2 (29)DD11 (ЗО) DD10 Ш) DD9 б|) DD8 (33) DD7 (34) DD6 (35) DD5 (Зб) DD4 (37) DD3 Я Vdd (39) Vss j40) DD2 CPMD10 CPMD9 CPMD8 CPMD7 CPMD6 CPMD5 CPMD4 CPMD3 CPMD2 CPMD1 CPMDO ~{42) DDO R128 22 DWI DRAS1 R129 22 DRASO R124 22 DCAS3 R125 22 DC AS 2 R126 22 DCAS1 R127 22 DCASO Vdd co (/) Vss LiJ CO Vss С312 ЮООпФ L1J СО Ш О о 44 45 46 48 49 50 52 Г 71 86 92 93 95 62 66 69 72 75 76 77 78 82 83 85 87 88 90 55 63 64 67 70 84 C125...C128 ЮОпФ C128 C127 47 0 СП оо со ю < < о о о о 0 56) (57) (58) (59) (60) <61 С136 0,01 Рис. 4.11. Принципиальная схема модуля центрального процессора игровой приставки SONY PLAYSTATION (2 из 3) 145
Принципиальная схема. Модуль центрального процессора C145 ЮООпФ VSS 156 155 Vss SYSCLK1 154 VA2 SA23 SA. 23 152 SA. 2 2 151 SA.21 50 SA. 20 149 SA. 19 148 SA. 18 147 SA. 17 146 SA.1 6 45 Vdd 144 Vss 143 SA. 15 SA. 14 141 SA. 13 140 SA. 12 139 SA.1 1 138 SA. 10 137 SA.9 36 SA.8 135 SA. 7 34 SA.6 133 SA.5 132 Vdd 13 Vss 130 SA. 4 129 SA.3 128 SA. 2 127 SA 1 126 R104 SAOO SA.O 125 22 SD15 SD15 24 SD14 SD14 123 SD13 SD13 122 SD12 SD12 121 SD1 1 SD1 1 120 SD10 SD10 119 Vdd 18 Vss I 17 SD09 SD9 116 SD08 SD8 SD07 SD7 114 SD06 SD6 13 SD05 SD5 112 SD04 SD4 11 SD03 SD3 110 SD02 SD2 109 SD1 IC103 CXD8606Q SAO 5 С1 10 ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION z С1 1 1 —ЮООпФ CPUA2 SA22 SA21 SA20 SA19 SAI 8 SA17 SA16 R152 22 SA15 SA14 SA 13 SA12 SA1 1 SA10 SA09 SA08 SA07 SA06 л R102 22 FB102 SYSCLK1 FL142 120 CL103 FL141 150 CL104 FB104 150 SD2 SD4 150 SD8 SD10 SD12 SD14 SA04 SAG SA03 FL 130 120 CL1 15 SA2 SA02 SA01 SD6 RB112 SDO RB111 DIG_+3,3B EXT_+8B SA4 RB1 13 CL101 CL102 CL 105 I CL107 CL108 I CL109 CL1 10 I CL111 CL1 12 | CL1 13 tzrJ си 14 FL129 150 CL1 16 С1 1 1 1 мкГн C1 1 0 1 мкГн CL1 19 I CL121 150 SA6 SAS SA10 RB114 SA12 150 I I—( SA14 SA16 SA18 < — 1—I CL122 I CL123 I CL125 CL126 I CL127 SA20 SA22 CL124 108 SDO Ю Vdd (106 Ю ю IC1 '(Л Ю Vdd 97 99 101 96 100 102 SD01 SDOO CPUINT FL1 18 150 CL129 FL117 150 CL130 SYSCLK1 EXTBCK FL116 120CL131 CL 132 FB105 120 CL133 FL113 150 R113 22 R112 22 98 С1 10 ЮООпФ В SRD R111 22 R155 ЮК ЮК ЮК R130 R131 С138 0,01 В С139 0,01 В С109 ЮООпФ В SA16 SA15 SA12 SA7 SA6 SA5 SA4 SA3 SA2 SA1 SDO SD1 SD2 IC1O2 NT/PAL MSM334031C 2 3 4 5 6 7 8 9 10 12 1 3 4 15 16 I NC Vcc (32, А1 6 A18i А15 A1 71 (30 А12 A14I А7 Al 31 А6 A8 О А5 A9l S А4 A1 11 S АЗ DEi @ А2 Al Oi А1 CEi (Ц SO D7i @ DO D6I (20 D1 D5I D2 D4I Vss D3I (iZ SA18 SA17 SA14 SA13 SA8 SA9 SA1 1 SA10 SD7 SD6 SD5 SD4 SD3 шина адреса o Системная шина данных CL1 17 BCK CN103 GND RESET DREQ CSO NC SDO SD2 SD4 SD6 SD8 SD10 SD12 SD14 SAO SA2 NC + 3.3B NC SA4 SA6 SAS SA10 SA12 SA14 SA16 SA18 SA20 SA22 SRD NC о о E co о E о о <L> SYSCLK1 68Р GND DACK IRQ SWR1 NC SD1 SD3 SD5 SD7 SD9 SD1 1 SD13 SD15 SA1 SA3 NC + 3.3B + 8B NC SA5 SA7 SA9 SA1 1 SA 13 SA15 SA17 SA19 SA21 SA23 SWR0 NC LRCK DATA GND CL134 GND 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66F 67 CL137 FL172 150 CL138 FL171 150 CL139 FL170 120 CL142 CL143 I I RB116 CL144 CL145 | CL146 CL147 | CL 148 LvZT-J 150 CL149 FL160 150 CL 150 FL1 19 150 CL153 CL155 । CL156 CL157 I CL158 --- CL159 I CL160 CL161 | RB1 17 I 150 I RB118 150 SD1 SD3 SDo SD7 SD9 SD1 1 SD13 SD15 SA1 SA3 SA5 , SA7 SA9 SAI 1 SA13 SA1 5 SA17 SA19 SA21 CL163 FL148 150 CL164 FL147 150 CL165 FL146 120 CL 166 CL167 FL144 150 FL143 150 SA23 SWRO EXTLRCK EXTDATA 68F- R109 100 R108 D119 МА8120 D118 MAS < SPUCS SPUINT SPUOREO SPUDACK RES3.3 4ZZE—< CDRDCS 100 ------< CDRDINT C1 17 20 ! 0,01 В Рис. 4.11. Принципиальная схема модуля центрального процессора игровой приставки SONY PLAYSTATION (3 из 3) 146
Принципиальная схема. Модуль центрального процессора Рассмотренные выше шины адреса, данных и управления предназначены только для подклю- чения к центральному процессору динамического ОЗУ. Для подсоединения внешних устройств и обмена информацией с другими блоками игровой приставки используются 16-разрядная системная шина данных SD0 - SD15 (выводы 10103/107-116,119-124) и 23- разрядная системная шина адреса SA0 - SA23 (выво- ды IC103/125-129,132-142,145-152). Поскольку графическая система игровой пристав- ки особенно требовательна к скорости передачи дан- ных, обмен информацией между центральным и гра- фическим процессорами в SONY PLAYSTATION осуществляется по отдельной 32-разрядной шине VD0 - VD31 (выводы 10103/161-169,172-181,184- 194,197,198). Внутреннее ПЗУ приставки IC102 (MSM334031C) объемом 512 Кб, в котором записана операционная система, необходимая для работы системы, под- ключено к системной шине адреса и восьми млад- шим разрядам системной шины данных. При обра- щении к ПЗУ центральный процессор формирует сигнал низкого логического уровня на выходе SRD (вывод IC103/101) и на линии выборки ПЗУ CS2 (вывод IC103/97). Сигнал CS2 подается на вход вы- бора кристалла микросхемы ПЗУ (вывод 1С102/ 22). Сигнал чтения поступает на вход разрешения чтения ОЕ (вывод IC102/24). Микросхема центрального процессора IC103 дополнительно генерирует управляющие сигна- лы, контролирующие обмен информацией с други- ми модулями игровой приставки. В модуль графического процессора передаются тактовые сигналы DBLCLK (вывод IC103/206) и SYSCLK0 (вывод IC103/154), предназначенные для синхронизации работы двух процессоров. По- средством сигнала разрешения передачи информа- ции GPUCS (вывод IC103/205), сигнала разре- шения записи данных в графический процессор GPUWR (вывод IC103/203) и сигнала разрешения чтения данных из регистров графического процес- сора GPURD (вывод IC103/204) центральный процессор приставки управляет обменом инфор- мацией с графическим процессором. Для этого в зависимости от выполняемой операции (запись или чтение) должен быть установлен низкий логи- ческий уровень на выходе GPUCS и на одном из выходов GPURD или GPUWR. Регистр графичес- кого процессора, с которым производится обмен, определяется уровнем сигнала на выходе GPUA2 центрального процессора (вывод IC103/153). Низ- кий логический уровень соответствует регистру данных, высокий - регистру управления. Когда для передачи данных используется кон- троллер прямого доступа к памяти, графический процессор посылает сигнал запроса на захват шины, устанавливая низкий логический уровень на шине GPUDREQ, подключенной к выводу 200 централь- ного процессора IC103. Получив такой запрос, про- цессор освобождает шины, извещая об этом уста- новкой низкого логического уровня на выходе GPUDACK (вывод IC103/202). От графического процессора на входы центрально- го поступают тактовый сигнал РСК (вывод 1С103/ 160) частотой 13,3 МГц (опорная частота формиро- вания изображения, деленная на 4), сигнал строч- ной синхронизации HBLANK (вывод IC103/159) и сигнал кадровой синхронизации VBLANK (вывод IC103/199). На вход INTIN1 (вывод IC103/102) подается сигнал GPUINT, низкий уровень которо- го свидетельствует о том, что графический процес- сор запрашивает обработку прерывания. Сигнал начальной установки поступает на вход EXT RESET (вывод IC103/76). Он формируется в блоке питания при включении или при нажатии кнопки RESET. Кратковременный импульс низкого логического уровня приводит к сбросу микропроцес- сора и остальных контроллеров игровой приставки. Для управления звуковым процессором цен- тральный процессор вырабатывает четыре сигнала. Звуковой процессор обменивается данными с цен- тральным по сигналу разрешения низкого уровня на выходе SPUCS (вывод IC103/96). Информация при этом передается по системной шине данных, а адрес регистра звукового процессора - по систем- ной шине адреса. Тип операции (запись или чте- ние) определяется сигналами на выходах SRD (вы- вод IC103/101) и SWR0 (вывод IC103/100). Сформированный звуковым процессором сигнал запроса на прерывание SPUINT поступает на вход INTIN9 (вывод IC103/90). Сигналы SPUDREQ (вывод IC103/88) и SPUDACK (вывод 1С103/87) предназначены для запроса прямого доступа к па- мяти: звуковой процессор запрашивает прямой до- ступ путем установки на выходе SPUDREQ сигнала низкого уровня, после чего центральный процессор освобождает шины и сигнализирует об этом низким уровнем на выходе SPUDACK. Сигналы CDRDCS и CDRDINT управляют де- кодером информации, поступающей от CD-ROM. Когда центральный процессор обращается к регис- трам декодера для чтения или записи данных, он устанавливает низкий логический уровень на шине CDRDCS (вывод IC103/95). По шине CSRDINT запрос на прерывание передается от декодера на вход INTIN2 центрального процессора (вывод IC103/94). Отдельной задачей микросхемы центрального процессора является координация взаимодействия процессорного модуля с различными устройства- ми, подключаемыми к разъему параллельного 147
Принципиальная схема. Модуль графического процессора интерфейса CN103, разъему последовательного ин- терфейса CN104 и разъему игрового пульта CN102. На разъем параллельного интерфейса выведены сигналы системной шины данных (контакты CN103/ 6-13,40-47) и системной шины адреса (контакты CN103/14,15,20-29,48,49,54-63). На контакт 2 этого разъема подается сигнал сброса, служащий для на- чальной инициализации подсоединенного устрой- ства. Также в распоряжение внешнего устройства, подключаемого к разъему параллельного интер- фейса, предоставляется один канал прямого досту- па к памяти и один запрос на прерывание. Восполь- зоваться прямым доступом к памяти можно, подав сигнал низкого уровня на контакт 3 разъема. Ког- да центральный процессор освобождает шины, он сигнализирует об этом установкой низкого уров- ня на выходе DACK (контакт CN103/36). Чтобы отправить центральному процессору запрос на пре- рывание, внешнее устройство должно установить низкий уровень на линии IRQ (контакт CN103/37). Регистры внешнего устройства отображаются на память центрального процессора, то есть для работы с ними применяются те же команды процессора, что и для ячеек памяти. При обращении к выделенной для этих целей области памяти процессор формиру- ет сигнал низкого уровня на выходе CS0 (вывод IC103/98), подключенном к контакту CN103/4. До- полнительную информацию о выбранном регистре (если их несколько) получают, дешифруя данные на шине адреса. Если процессор осуществляет чтение из регистра внешнего устройства, на линии SRD (контакт CN103/30) вырабатывается сигнал низко- го логического уровня. В случае записи в регистры на SWR0 (контакт CN103/64) и SWR1 (контакт CN103/38) формируется сигнал низкого уровня. Для синхронизации допускается использовать так- товый сигнал SYSCLK1, с вывода IC103/154 посту- пающий на контакт CN103/32. Кроме того, на разъем параллельного интерфей- са выведены напряжения питания +3,3 В (контак- ты CN103/17.51) и +8 В (контакты CN103/18,52). Для соединения двух игровых приставок в режи- ме сетевой игры чаще всего применяется разъем по- следовательного интерфейса CN104. На его контак- ты поступает напряжение +3,3 В (контакт CN 104/3) и пары сигналов RXD-TXD, DSR-DTR и CTS- RTS, стандартные для последовательных интерфей- сов. При связи двух приставок необходимо на вход TXD одной из них подать сигнал с выхода RXD другой и наоборот (на вход TXD - с выхода RXD) н сделать такие же совмещения для оставшихся двух пар (DSR-DTR и CTS-RTS). Иные контакты разъемов соединяются в соответствии со своими номерами (1 к 1, 10 к 10 и т.д.). Данные передают- ся по цепи TXD (контакт CN103/5), а принима- ются по цепи RXD (контакт CN103/4). Эти сигналы поступают непосредственно с выводов процессора IC103/74 и IC103/75. Управляющие сигналы, пере- сылаемые по цепям DSR (контакт CN104/6), DTR (контакт CN104/7), CTS (контакт CN104/8) и RTS (контакт CN104/9) проходят через буферные уси- лители на транзисторах Q101 - Q104. Диоды D101 - D105, D114 и ВЧ дроссели FL101 - FL106 используются для защиты от бросков напряжения и сглаживания возникающих помех в последова- тельном интерфейсе. Дроссели L101 и L102 уста- новлены на шинах питания. Пульты игровой приставки подключаются к разъ- емам коммутационной платы, которая в свою оче- редь соединена с разъемом CN102 процессорного модуля. От центрального процессора на разъемы для под- ключения пультов поступают сигналы выбора пульта DTR0A (контакт CN102/5) и DTR0B (контакт CN102/3), сигнал тактовой частоты SCK0 (контакт CN102/10) и данные, передаваемые на пульт (кон- такт CN102/8). Центральный процессор получает от пульта запросы на прерывание INT (контакт CN102/ 1), DSR (контакт CN102/2) и пакет с информацией о нажатых на пульте кнопках по цепи RXD (контакт CN102/6). Кроме того, на разъем выведены напря- жения питания +8 В (контакт CN102/4) и +3,3 В (контакт CN102/9). Для защиты от перегрузок и по- мех, как и в последовательном интерфейсе, исполь- зуются диоды и ВЧ дроссели в цепях питания. 4.3.2. Модуль графического процессора Рассмотрим модуль графического процессора игро- вой приставки SONY PLAYSTATION, формирую- щий видеосигнал. Его принципиальная схема при- ведена на рис. 4.12. Обработкой графической информации в пристав- ке SONY PLAYSTATION занимается микросхема графического процессора IC203 (CXD8561Q). Как и в большинстве игровых приставок, видеопроцессор является заказной микросхемой и не имеет аналогов. Данные, необходимые при формировании изображе- ния, хранятся в видеопамяти, в качестве которой при- меняется микросхема 32-разрядного динамического ОЗУ типа SGRAM IC201 (KM4132G2710) объемом 1 Мб. Вместо указанной могут использоваться мик- росхемы pPD481850GF-A12 или цРВ481850-А10. Микросхема IC202 (TDA8771AH) представляет со- бой трехканальный ЦАП, преобразующий 24-разряд- ный цифровой код от графического процессора в три аналоговых сигнала основных цветов. Обмен данными между графическим и централь- ным процессорами приставки происходит по 32-раз- рядной шине данных GPUD, подключенной к вы- водам IC203/24-28,31-36,39-42,45-50,53-59,62-65. 148
Принципиальная схема. Модуль графического процессора VIDC-+5B VID_GND VDACB VDACG VDACR 25 27 26 24 23 co m CD m B6 B7 GO G1 G2 G3 G4 G5 G6 G7 RO TDAB771AH 22 21 2 SG3 SG4 SG5 7 16 19 4 SG7 3 15 SG6 20 (5501/5502) SGO SG2 SG1 (5500) DIG_+3,3B FSC CSYNC SBO SB1 SB2 SB3 SB4 SB5 SB6 SB7 SGO SG1 SG2 SG3 Г C206 0,1 F G X201 R2O2 CL202 * X201 Модель 5500/5501: 53,69МГц Модель 5502: 53,20МГц R204 220 NTPL —VSYNC <Д 158 59 60 SBO SB1 16 SB2 162 157 РСК > DBLCLK > GPUCS > GPUA2 > GPURO > GPURW > GPUDACK > RES3.3G > SYSCLKO > GPUDREQ > GPUINT > HBLANK > VBLANK > Шина данных графического процессора -HSYNC ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION SB3 164 Vss Vdd 166 SB4 167 SB5 168 SB6 169 SB7 170 SGO <• 4165 С21 1 ЮООпФ* || , SG4 SG5 SG6 SG7 SRO SR1 SR2 SR3 SR4 SR5 SR6 SR7 SG3 Vss Vdd SG4 SG5 SG6 SG7 SRO SR1 SR2 SR3 Vss Vdd SR4 SR5 SR6 SR7 Vss Vdd VCKN-A . || < Vdd Vss Vdd VCKP-A Vdd Vss PCK Vss Vdd DMASK DDE2 Vss Vdd —DSYSCK Vss Vdd 171) SG1 -(172) SG2 173 174 175 76 177 178 179 180 181 82 183 184 186 187 188 89 90 4 4191 192 4193 194 195 196 198 199 200 • 4201 202 203 204 -4205 206 207 T C244 < 4185 C210 0,1 F O,1°F 1 И И19? R2O6 22 C209 0,1 F II f4208 Рис. 4.12. Принципиальная схема модуля графического процессора игровой приставки SONY PLAYSTATION (1 из 3)
Принципиальная схема: Модуль графического процессора ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION ^•ssasitisW-'^* FD13 FD15 99 98 96 Vss 1 T 3 FD1 1 FD12 FD14 FD16 Vdd FD1 7 FD18 FD19 FD20 FD21 FD22 FD23 Vss Vdd FD24 FD25 FD26 FD27 FD28 Vss Vdd FD29 FD30 FD31 Vss Vdd TESTO TEST1 TEST2 TEST3 PCKSLO PCKSL1 PCKSL2 Vdd Vss DO D1 D2 D3 Vdd Vss D4 D5 D6 D7 D8 D9 00 m m D10 14X15X16X17 GO 09 09 09 09 09 09 00 IC203 CXDB561Q Г росрический процессор I FD 10(104'' 103 102 01 100 97 95 94 93 92 9 9C 89 88 87 86 85 84 83 82 81 8C 77 76 75 74 73 72 71 7C 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 22 24 25 2C 23 26 27 3C 38 42 45 Рис. 4.12. Принципиальная схема модуля графического процессора игровой приставки SONY PLAYSTATION (2 из 3) 150
Принципиальная схема. Модуль графического процессора GPUDO GPUD1 LA9 LA7 LA б LA5 LA4 LA3 LA2 LA1 LAO LA9 C227 0,1 F ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION C240 0,01 В FD17 FD18 FD19 FD20 FD21 FD22 FD23 FD17 FD18 ... FD19 FD20 FD21 FD22 - FD23 _|| FD24 FD25 FD26 FD27 FD28 FD29 FD30 FD31 C220 0,1 00 Q FD19 С224 0.1 F GPUD2 GPUD3 GPUD4 GPUD5 GPUD6 GPUD7 GPUD8 GPUD9 GPUD1O Рис. 4.12. Принципиальная схема модуля графического процессора игровой приставки SONY PLAYSTATION (3 из 3) 151
Принципиальная схема. Формирователь аудио- и видеосигналов -’-WStSSRS;-;- AUD_GND ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION R443 0 AUD_+5B AUD_GND>f RES3.3> SPCLK> SPBCK> SPDATA > SPLRCK> SPMUTE> ill L IL . C404 ЮООпФ В (5501/5502) R445 - 220 C457 0,1 F C445 0,01 В R446 2700 C444 =7 0,01 L401 1 ОмкГ h C407 J+ 10 16B"j“ R444 10 C42 10 16B CL401 R426 1K R424 П 100K Ц оо v R430 100 tn RD3.95B _ D406 2\ RD3.95B RD 4 RST 5 6 CKS 7 DCK 8 SO 9 0 NC 1 12 NC DVss C443 + 22 6,3B IC403 АК4309 1 )TST1 2 )DVdd MCLK XRSCK 2 7 VrefL 26 VrefH NC 25 NC 24 23 AVss 22 AVdd VCOM 21 20 AOUTL AOUTR NC 18 NC C408 C406 0,1 F 10 16B Q401 DTC144EKA 19 D401 г---, BAP202U । r -------—-4 a ю oo D409 RD3.95B 2\ D408 RD3.95B C423 10 16B R425 1K R429 100 FB401 * FB401, FB402 5500: FERRITE BEAD 5501/5502: CONDUCTOR CHIP FB402 * cr T_ Q402 ' DTA144EKA FB501 FB502 C529 ЮОпФ CH C530 ЮОпФ CH CN502 CL501 CL502 CL503 CL504 CL505 CL506 CL507 CL.508 CL509 CL510 CL51 1 CL512 M_R M_G M_B M...DCOUT M_C M_YCGND M_Y M „VIDEO M._VIGND M_AUR M_AUGND M_AUL I 7 C524 D501 37 QI [7 MAS 120 D502 _ MA8120A ESC R501-L C501 2,2K T 5пФ CH R522 Cr)22 D503 J/ 220 4B MA8120 C522 CSYNC > 75 R521 -pil—D504 C528 MA812O2\ 220 4B VID2_+5B VDACR R503...R505 5500: 390 5501/5502: 150 VDACG > R541...R543 5500: 390 5501/5502: 0 VDACB VIU_GND VID2_ + 5B NTPL > C506 0.1 F R502 2.2K C502 47пФ CH R505! R54 1 4 5 0503 2SA1037AK R542 C504 0.1 F R504 0502 2SA1037AK R543 Q501 2SA1037AK R503 4 C505 0,1 F IH C508 47 6 7 8 9 0 12 6,3B C509 0,1 F -И IC501 CXA1645M GND1 GND2 (28/ RIN ROUT (27) GIN GOUT i (26/ BIN BOUT - (25) NC CVOUT । SCIN Vcc2l (23} NPIN FOi (22) BFOUT YTRAPI C21) YCLPC YOUTl (20} SYNC1 COUTI C19> NC Vref I Vcc 1 Iref I fl7> R520 75 C518 D5°5 V 220 4 В MA8120 —Til—1 D506 , C527 МА8120Ф C518 220 4B R519 75 R516 * C51 1 10 16B L507 C523 ЗЗмкГн R518 75 R517 75 0505 2SC1623-L5L6 C507 0.1 В R515 47K C510 Hh 0,1 F R528 1K R527 18K R525 5600 R530 3.3 0504 2SB624 D507 MA8120 ’ C523 5500/5501: 62пФ 5502: 59пФ * * R516 5500/5501: 20K 5502: 18K Рис. 4.13. Принципиальная схема формирователя аудио- и видеосигналов игровой приставки SONY PLAYSTATION 152
Принципиальная схема. Модуль графического процессора Регистр графического процессора, с которым произ- водится обмен, выбирается в зависимости от уровня сигнала на шипе адреса GPUA2 (вывод IC203/2). Также от центрального процессора поступают такто- вые сигналы DBLCLK (вывод IC203/206), SYSCLK0 (вывод IC203/9) и управляющие сигналы GPUCS (вывод IC203/1), GPURD (вывод IC203/3), GPUWR (вывод IC203/4), RES (вывод IC203/6) и GPUDACK (вывод IC201/5). Назначение этих сигналов было описано в предыдущем разделе. От графического процессора к центральному пере- даются сигнал тактовой частоты 13,3 МГц РСК (вы- вод IC203/199), сигналы кадровой VBLANK (вывод IC203/17) и строчной HBLANK (вывод IC203/14) разверток, сигнал запроса на прерывание GPUINT (вывод IC203/13) и сигнал запроса на захват шин GPUDREQ (вывод IC203/12). Работа внутренних схем графического процессо- ра, отвечающих за формирование выходных сигна- лов развертки, тактируется внутренним генерато- ром, частота которого стабилизирована кварцевым резонатором Х201 (53,69 МГц). Видеопамять обменивается информацией с графи- ческим процессором игровой приставки посредством 32-разрядпой шипы данных FDD - FD31,9-разряд- пой шипы данных LAO - LA9 и сигналов управле- ния RAS (вывод IC201/27), CAS (вывод IC201/26), WE (вывод IC201/25) и CS (вывод IC201/28). Сиг- нал низкого уровня па входе CS разрешает обмен данными с видеопамятью. При этом производимая операция определяется уровнем сигнала на входе WE (низкий логический уровень соответствует за- писи). Адрес передается от графического процессо- ра к видеопамяти в мультиплексном режиме, обыч- ном для динамических ОЗУ. Сначала по шине адреса пересылаются младшие девять разрядов ад- реса, сопровождаемые сигналом RAS низкого логи- ческого уровня, затем старшие девять разрядов, которые запоминаются по спаду сигнала CAS. Ре- генерация памяти происходит автоматически и за- нимает 1024 цикла (16 мс). Микросхема видеопамяти позволяет максималь- но быстро изменять сохраненные данные. Для этого в ней предусмотрены регистры цвета, маски и управ- ления. Помещая определенные команды в регистр управления, можно постранично записывать и счи- тывать данные, производить ускоренную очистку памяти и другие действия над содержимым видео- памяти. Микросхема IC202 представляет собой трехка- пальный ЦАП, задачей которого является преобра- зование получаемых от графического процессора 8-разрядпых кодов в аналоговые значения трех ос- новных цветовых составляющих. Данные от графи- ческого процессора передаются по трем 8-разряд- пым шипам: SBO - SB7 (для кода синего цвета), SG0 - SG7 (для кода зеленого цвета) и SR0 - SR7 (для кода красного цвета). Микросхема трансфор- мирует полученные коды в аналоговые значения на- пряжения на выходах OUTB (вывод IC202/36), OUTG (вывод IC202/40) и OUTR (вывод 1С202/ 44). Напряжения здесь изменяются от 0,2 В (когда па все входы соответствующего капала ЦАП посту- пают сигналы низкого логического уровня) до 3,2 В (когда па все входы канала подается сигнал высоко- го логического уровня). Работа цифро-аналогового преобразователя тактируется сигналом РСК, снима- емым с выхода IC203/199 графического процессора. На рис. 4.13 приведена принципиальная схема формирователя аудио- и видеосигналов, преобра- зующего получаемые данные в сигналы на выход- ном разъеме приставки. Формирователь звуковых сигналов описывается в следующем разделе, а сей- час мы рассмотрим только ту часть схемы, которая генерирует полный видеосигнал. Формирование низкочастотного телевизионного сигнала игровой приставки SONY PLAYSTATION происходит в микросхеме IC501 (СХА1645М). Сиг- налы с выходов ЦАП IC202 поступают па входы формирователя IC501 (выводы IC501/2-4) через эмиттерные повторители па транзисторах Q501 - Q503. Они предназначены для согласования уров- ня выходных сигналов ЦАП (находящихся в пре- делах 0,2-3,2 В) с входными уровнями микросхемы 1С501 (0-1 В). Кроме того, от графического процес- сора приходят сигналы тактовой частоты 4,443 МГц (вывод IC501/6), смесь кадровых и строчных син- хроимпульсов CSYNC (вывод IC501/10) и логи- ческий сигнал NTPL (вывод IC501/7), определяю- щий кодировку формируемого видеосигнала (NTSC пли PAL). В некоторых моделях сигнал NTPL не ис- пользуется и вывод IC501/7 соединен через кон- денсатор с общим проводом. С выходов формирователя IC501 снимается шесть сигналов, подающихся на выходной разъем CN502 видеоприставки. Сигнал M_VIDEO (вывод 1С501/ 24) - это низкочастотный полный телевизионный сигнал стандарта PAL пли NTSC амплитудой около 1,5 В. С выходов COUT (вывод IC501/19) и YOUT (вывод IC501/20) снимаются раздельные цвето- вая п яркостная составляющие видеосигнала. Так- же микросхема генерирует выходные сигналы трех цветовых составляющих ROUT (вывод IC501/27), GOUT (вывод IC501/26) и BOUT (вывод IC501/25). Сигналы поступают на контакты выходного разъема CN501 через согласующие резисторы R517 - R521 (75 Ом). Видеосигнал проходит через раздели- тельные конденсаторы С518, С527, яркостная со- ставляющая - через конденсаторы С522, С528, а цветовая составляющая — через конденсатор С524. Стабилитроны D501 - D511 (МА8120) установлены для защиты выходных цепей приставки от скачков ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 153
Принципиальная схема. Модуль контроллера привода CD-ROM ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION напряжения и статического электричества. Вместо них можно использовать любые стабилитроны на напряжение 4,7 В. 4.3.3. Модуль декодера и звукового процессора Модуль декодера осуществляет преобразование ин- формации, полученной от контроллера CD-ROM, в цифровые данные, передаваемые затем централь- ному процессору. Звуковой процессор применяется программами при формировании различных аудио- эффектов. Принципиальная схема модуля, содержа- щего декодер и звуковой процессор, представлена на рис. 4.14. Данные, считанные с компакт-диска, поступают на вход декодера IC305 (CXD1815), работающего совместно с процессором IC304 (SC430929PB). Эти две микросхемы преобразуют параллельный поток данных и корректируют возможные ошибки. Для хранения данных декодер использует мик- росхему буферного ОЗУ IC303 емкостью 32 Кб с организацией 32Кх8. К микросхеме звукового процессора CXD2925Q (IC308) подключено звуковое ОЗУ IC309 (М5М 44260CJ) объемом 512 Кб с организацией 256Кх16. В нем хранятся данные, необходимые при генера- ции звукового сопровождения. Подробно об этой области памяти рассказывалось в разделе, посвя- щенном программной архитектуре звукового про- цессора приставки. Возможности музыкального процессора позволя- ют использовать приставку SONY PLAYSTATION как бытовой проигрыватель музыкальных компакт- дисков. Для этого к выходу приставки рекомендует- ся подключить стационарный усилитель либо сте- реонаушники. Цифровые аудиоданные последовательно пере- даются от звукового процессора на вход формиро- вателя аудиосигнала IC402 (см. рис. 4.13). Эта мик- росхема представляет собой специализированный двухканальный 16-разрядньш дельта-сигма ЦАП и ра- ботает с частотой дискретизации 44,1 кГц, что вполне достаточно для обеспечения качественного звучания. Информация на ЦАП поступает по трем входам. На вход SDATA (вывод IC402/9) последовательно, бит за битом, приходят звуковые данные. Процесс передачи синхронизируется сигналом на входе BICK (вывод IC402/8). Уровень сигнала на входе LRCK (вывод IC402/10) определяет канал, для ко- торого пересылаются данные (если на этом входе высокий уровень - передаются данные левого ка- нала, если низкий - правого). Работа формирователя аудиосигнала синхрони- зируется поступающим на вход MCLK (вывод IC402/6) тактовым сигналом частотой 16,9344 МГц. Выходные сигналы левого и правого каналов звукового сопровождения снимаются с выходов микросхемы IC402 (выводы IC402/15,16) и посту- пают на выходной разъем CN502. Транзисторные ключи Q403 и Q404 используются для блокиров- ки звука при нажатии кнопки RESET или при на- личии сигнала высокого логического уровня на выводе IC308/37. 4.3.4. Модуль контроллера привода CD-ROM На рис. 4.15 изображена принципиальная схема модуля контроллера CD-ROM и цепей его сопря- жения с процессорной платой. Три идентичных усилительных канала микросхе- мы IC702 (BA6392FP фирмы ROHM), специально предназначенной для проигрывателей CD и приво- дов CD-ROM, управляют сервоприводом объектива (LI, L2) и двигателем привода СГ (М2), а дифферен- циальный четвертый - двигателем вращения диска (Ml). Основные параметры BA6392FP таковы: на- пряжение питания 6 16 В, ток покоя 8-18 мА, мощ- ность рассеивания 1,7 Вт, сопротивление нагрузок 8-20 Ом, выходное напряжение 1,3-5,2 В, коэффи- циент усиления канала вращения диска 8-13 дБ. В исходном состоянии, когда двигатели остановлены, напряжения на всех выходах BA6392FP одинаковы и близки к 3,5 В. В зависимости от разности напря- жений на соответствующих выходах двигатели вра- щаются по часовой или против часовой стрелки. Двигатель Ml контролируется комбинирован- ным способом: грубо - изменением постоянной со- ставляющей, точно - пачками разнополярных им- пульсов. Рабочее направление вращения диска - по часовой стрелке (при положительной разности на- пряжений на выводах 27 и 26 IC702). Открывание крышки привода CD-ROM вызывает экстренное торможение путем подачи на двигатель Ml напря- жения обратной полярности. Управление шаговым двигателем М2, перемеща- ющим считывающую головку, только импульсное. Контакты выключателя S1 замыкаются, когда каретка СГ упирается в ограничитель. Система позициониро- вания считывающей головки получает сигнал, запре- щающий дальнейшее передвижение СГ. Коммутационные помехи подавляются фильтра- ми FB701 - FB704, а выбросы напряжения ограни- чиваются стабилитронами VD1 - VD4 с напряже- нием стабилизации 4,7 В. Сервопривод объектива действует подобно ди- намической головке громкоговорителя, в которой звуковая катушка, находящаяся в поле постоянно- го магнита, движется под действием протекающего тока. Обмотки L1 и L2 сервопривода перемещают объектив во взаимно перпендикулярных плоскостях. 154
Принципиальная схема. Блок питания Излучающий диод лазера А1 включен в коллек- торную цепь транзистора Q701. Номинальная сила тока составляет 60-80 мА. Подстройка осущест- вляется резистором R1, входящим в цепь обратной связи CAP-МЛ. Он расположен на гибком печат- ном ленточном кабеле, соединяющем СГ с вилкой CN702. При уменьшении сопротивления R1 сила тока и мощность излучения лазера увеличиваются. Сигналы, снимаемые с матрицы фототранзисторов А2, поступают на микросхему IC703 (A1791N) че- рез разделительные конденсаторы СЗ — С6. Чув- ствительность устройства регулируется подстроеч- ным резистором RV703. 4.3.5. Модуль адаптации Назначение этого модуля — обеспечивать работу приставки с компакт-дисками как фирменного, так и нефирменного производства с маркировками «NTSC U/С» (США/Канада), «NTSC J» (Япония), «PAL» (Европа, Азия). Здесь применен 8-разрядный микроконтроллер Z86E0208PSC фирмы ZILOG с масочным ПЗУ объемом 512 байт (IC801), в кото- рое при изготовлении заносится программа, пред- ставленная заказчиком. Тактовая частота 4,433 МГц равна частоте цветовой поднесущей в системе PAL и задается кварцевым резонатором Х801. Принципиальная схема устройства показана на рис. 4.16. В блоке использованы всего два выхода микро- контроллера. На первом из них (Q1) формируется синхропоследовательность для интерфейса CD- ROM, на втором (Q2) при включении питания ге- нерируется импульс высокого логического уровня длительностью около 1 с. Все элементы блока адаптации установлены на отдельной печатной плате, приклеенной к обратной стороне процессорной платы приставки и соеди- ненной с ней проводами. В некоторых моделях PLAYSTATION вместо Z86E0208PSC применяется микроконтроллер 12С508/Р фирмы MICROCHIP TECHNOLOGY. 4.3.6. Игровой пульт Принципиальная схема стандартного игрового пуль- та, поставляемого в комплекте с игровой приставкой SOW PLAYSTATION, приведена на рис. 4.17. Основой игрового пульта является микросхема IC1 (23-0271 А), производящая опрос всех кнопок и формирование пакетов импульсов, передаваемых центральному процессору приставки. Процессор опрашивает состояния кнопок 50 раз в секунду во время обратного хода кадровой развертки. Для этого генерируются сигналы PEI, РЕ2, SYN1 и SYN2, представляющие собой пачки импульсов с периодом повторения 20 мс. Микросхема пульта вырабатывает на выходе OUT1 последовательность синхроимпульсов, а на выходе OUT2 - последовательность импульсов, зависящую от состояния кнопок пульта. Нажатым кнопкам соответствуют импульсы отрицательной полярности. Работа микросхемы IC1 синхронизируется внут- ренним генератором, частота которого стабилизи- рована кварцевым резонатором XI (4 МГц). 4.3.7. Блок питания В SONY PLAYSTATION имеется импульсный стаби- лизатор, обеспечивающий высокую экономичность и стабильность выходных напряжений при колебани- ях напряжения в сети и изменении токов нагрузки. Игровая приставка потребляет ток до 0,8 А по цепи +8 В и до 0,5 А по цепи +3,3 В. Принципиальная схе- ма блока питания приведена на рис. 4.18. Через помехоподавляющий фильтр С001, L001 и С002 сетевое напряжение поступает на выпрями- тель (диодный мост D001 - D004) и далее на пре- образователь напряжения. Конденсатор С003 сгла- живает пульсации. Конденсаторы СОЮ, СОИ, для повышения надежности соединенные последова- тельно, цепью GND связывают выпрямитель с об- щим проводом приставки, что ослабляет влияние на нее помех, проникающих по сети. По правилам электробезопасности суммарная емкость этих кон- денсаторов не должна превышать 6600 пФ. Однотактный преобразователь напряжения со- бран по схеме блокинг-генератора с обратным включением диода. Его работа основана на накопле- нии энергии в магнитном поле трансформатора Т001 во время открытого состояния ключа и после- дующей передаче ее в нагрузку. «Самозащищенный» ключ на транзисторах Q001 и Q002 устроен таким образом, что при перегрузках и переходных процес- сах ток, протекающий через него, ограничивается, не достигая опасных значений. Датчик тока состо- ит из резистора R009 и диода D008. Напряжение с него поступает на базу транзистора Q002, откры- вая его при резком нарастании тока эмиттера тран- зистора Q001. В результате базовая цепь последнего шунтируется, что и приводит к ограничению тока. При начальном запуске ключ открывается то- ком, протекающим через резистор R003. Напряже- ние обратной связи, необходимое для самовоз- буждения блокинг-генератора, подается на базу транзистора Q001 с обмотки II трансформатора TOOL Конденсатор С004 вместе с емкостью коллек- торного перехода транзистора Q001 и индуктивно- стью рассеивания трансформатора Т001 образуют последовательный колебательный контур, который настроен на частоту, близкую к частоте преобразо- вания. В результате напряжение на коллекторе ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 755
Принципиальная схема. Модуль декодера и аудиопроцессора ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION < SUBO < SENS < SYSCLK < CDLRCK < CDDATA < CDBCK < C2P0 < EMPH L303 1 ОмкГн L304 1 ОмкГ н CDLRCK CDDATA CDBCK C2P0 EMPH 30 25 22 29 28 26 23 20 24 <л SDO SD1 HD1 PMP 87 C2P0 CDBCK 86 BCLK CDDATA 85 DATA CDLRCK 84 LRCK 83 RMCK 88 R302 C301 ЮК ЮООпФ 43 CDMA1 CDMA2 44 32 33 SD3 37 SD7 35 SD5 SD6 DIG_GND DIG_+3,3B RES3.3 SPUREQ SPUINI SPUDACK SRD SWRD SPUCS CDRDCS CDRDINT (5500: -31/-41 /5501/5502) DIG_+3,3B DIG_GND SER_GND DIG_+5B L..J / ХсЛ apYx / ТxрУxpixлYxxYxoYx 1 YxrYоqYopYo / U MOD 6 _____ MCD7 (40)DECD6 (4j) DECD7 . О ОIO / АЭ О/J ОJLЭ H АЭ ОА-J Z А О I /О U A Z J _J ОТ О О О a Q Я n 5 о Z bJ о Ш о о о о О О > о X (X Ld bJ UJ bJ UJ Lj? UJ {/) > (Г Q_ Q О О Q ° О 0^1^ az '' ro CN О о о о (/J) ( ) bJ UJ bJ bJ bJ Q Q о Q о Y CY (Y) fY (ю 31)HDO SD2 HD2 HD3 SD4 HD4 HD5 HD6 HD7 HOP GND HDRQ XHAC CDMAO MAO MA1 MA2 TD1 TD2 MA3 MA4 MA5 R301 ЮК IC305 CXD1815Q CDMA3 CDMA4 CDMA5 34 38 39 40 41 42 45 46 47 CKSL HCLK 72 52 53 54 55 56 59 57 58 60 62 63 65 66 68 69 /6 79 64 67 70 73 78 80 28 27 26 25 24 23 22 20 1 5 7 12 13 tn 48 49 50 36 R.34.Q2< D R341 22? у, ™ И2Ж CLKO --------< SCON --------<-SQCK --------< MRSW TD3(1OO) TD4(99) TD5(98) TD6(97) TD7 (96) MUTE (95) BCK0(94} WCKO(93) LRCO(92) dato(sh) GND(90} XRST (89) C307 0,1 F < МСЕК < RES3.3 < XRST < EDON ,Г L C327 1 J Ц1 R304 1K R303 1K R339 EMPH 1K C2P0 82)- ♦ 81 R343 4700 (5500: -11/-21) Рис. 4.14. Принципиальная схема модуля декодера и аудиопроцессора игровой приставки SONY PLAYSTATION (1 из 2) 156
Принципиальная схема. Блок питания Q001 приобретает почти синусоидальную форму Демпфирующая цепь С005, R002 и D005 защищает транзистор Q001 от перегрузки. Напряжения вторичных обмоток III и IV транс- форматора Т001 выпрямляются диодами с барьером Шоттки D101, D102. Их отличает малое прямое па- дение напряжения, что улучшает энергетические R330 10K C310 0,1 Г C324 I 10E 19 20 23 24 25 26 27 28 29 30 EXTLRCK>n 100 XCS(31b WCKO 99 SPDATA> DATO LRCO XWRI33, SPLRCK>* 97 DACK(34}— SPPBCK>-*- BCKO 1K 96 XIRQ(35> EXTDATA> DTI В DREQ (36 LRIB MUTE(37P —CSPMUTE BOB DTIA XRST (38} LRIA BOA Vss(40 Vss SYSCK 41} XCK Vss XDEI TEST 44 SPMD15 86 XWEI MD1 5(45} SPMD14 MD 1 4 (46 SPMD13 MD 13(47}- SPMD12 R329 10K EXTBCK>—i Vss(42)— TEST (43) 98 SPMD11 SPMD10 R324 1K XDEO XWEO MAO SPMAO —(82) MA1 SPMA1 81) MA2 00 01 R320 75 R323 1K IC308 CXD2925Q (CPU-C) CL301 SPCLK>f * H R325 MD12 48)- MD1 1 49} MD10 79 78 77 75 74 65 56 76 73 72 70 69 67 66 64 63 59 55 54 53 52 57 COLRCK 37 38 40 36 39 R335 22 95 94 93 92 9 90 89 88 87 85 84 83 (5501/5502) R332 0 ГЛ1 R322 LTJ (5500) характеристики источника питания. Резисторы R101, R102 - балластные: они создают нагрузку, необхо- димую для устойчивого функционирования пре- образователя при различных режимах работы приставки. Стабилитрон D103 с напряжением ста- билизации 10 В ограничивает возможные при пере- ходных процессах всплески напряжения. Пройдя ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION Рис. 4.14. Принципиальная схема модуля декодера и аудиопроцессора игровой приставки SONY PLAYSTATION (2 из 2)
Принципиальная схема. Модуль контроллера CD-ROM ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION LDON > i * R706 >: C756 22 6.3B C701 0.1 F SER_+3,5B SER_GND C715 0,047=Ь 10K HI- 5500: -1 1/-21: 1M r74. 5500: —31/—41 Ь , T /5501/5502:470K 0,1 С714 0,0047 В тт R710 e (51)GT0Rzj (52) XUGF (53) XPLCK (54) GFS RFO(25) ADICH24 57) XRADF AVS2(23 IGEN122 CL772 O-(60) MNT1 AVD2(21H CL773 O—(61) MNTO VCKK20 VPC0I19 SYSCLK <62)XTA1 PD0(18 T63)XTAO TES3117 (64) XTSL TES2116H- f (65) DVss (66 FST1 IC701 CXD25450 CL7710-459) MNT2 CL770 0-458) MNT3 (55) RECK ---(56)С2РО CDLRCK CDLRCK CDDATA CDDATA CDBCLK CDBCLK C2PO C2PO EMPH EMPH H67 ESTO MCLK VC (30} FE 29b SE(28 ТЕ (27} RFDC(26} C716 _L 0,1 F "" R732 15K 6 R717 2? ioo DVss(15 TEST (1 4 -----О CL760 R723 33K | R727 15K R733 100K VCOI 13 468) FSOF VCOO(12 <69)C16M FFON(11 MD2 FRDR(10 DOUT EMPH FRON(9 FFDRf 8 WFCK SCDR TFON( 7 ) SCOR TRDR 6 } SBSO EXCK TRON(5 SUBQ TFDR(4 У- SUBQ SFON(3 ) SOCK SRDR(2 KSRON( 1 SENS (/) 100 (5500) CS XRST SCLK DATO XLTC CLKO R780 0 (5501/5502) CL733 ЕМРН 70 77 (5500) 2 7 3 6 4 5 16 2 15 3DC705 3 4 C719 R728 3300 0,5% R708 47K 4 U) 5 12 R721 6 7 8 Г t C725 0,1 В C708 1500пФ В 2200пФ В R777 0 _Юйк LHCJ (5501/5502) C707 R716 0,022 В О _______1500 2200пФ 0,5% В C713 2200пФ В C712 C723 2200пФ В С722 13 7 CL774 0-473 78)SOCK 79) MUTE 80) SENS 'СО (X СК v —1 о сл со 1 1— 1— 3 v о о о 'О р ск ОС р 5 о Q. О со о V о о а. ।— (Л X а со а а X о о о Q р —1 03 ш) (82) (83) (84) (85) (86) (87) (88) (89) (90) (7?) (92) (93) (94) (95) (96) (97) (98) (99 R778 0 ! Л! (5501/5502)0 ~](5500) C755 0,1 F R709 220K my 3DC704 C745 10 16B R702 15K SPEED MOT_+8B MOT_GND CG R719 470K R725 75K C71 1 2,2 6,3В C716 0,1 F II ---- C748 0,1 F 0,04 7 В Рис. 4.15. Принципиальная схема модуля контроллера CD-ROM игровой приставки SONY PLAYSTATION (1 из 3) 158
Принципиальная схема. Блок питания Q CL707 -4—---- “7------Г" CL712 CL706 С741 22 4В ----II- С740 22 4В -НИ-—т CN702 16Р CL775 CL776 CL777 CL778 CL779 • - R749 9К CL780 CL781 CL783 -— • - LD Vcc VC F- NC PD2 PD1 E- Ml VR GND LS FSC+ TRK + TRK- FCS- ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION (5501/5502) JZ и [ D7035 I l D701 I I 5 \ L Z D704 J ID701...D704 । MA8120 \ D702 ’ L ’ J * FB702 . . - - . _ CL785 * FB701 ' e у * FB703 ' . . * FB704 " X * FB701...FB704 5500: -11/—21: CONDUCTOR CHIP 5500: —31/—41 /5501/5502: FERRITE BEAD CN701 4P CL784 • SP- /з) SP + CL786 >-< • — (2) SL+ CL787 —_ Ф — CD SL- RV705 47K —♦ 6 CL751 Рис. 4.15. Принципиальная схема модуля контроллера CD-ROM игровой приставки SONY PLAYSTATION (2 из 3) сглаживающие фильтры (С101, L101, С103 и С102, L102, С104), выпрямленные напряжения через вы- ключатель5\У101 и разъем CN101 поступают на про- цессорную плату После замыкания контактов выключателя SW101 при наличии обоих питающих напряжений загора- ется зеленый светодиод PD101, включенный в кол- лекторную цепь транзистора Q101. Он состоит из 159
Принципиальная схема. Блок питания ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 1 1 Рис. 4.15. Принципиальная схема модуля контроллера CD-ROM игровой приставки SONY PLAYSTATION (3 из 3) IC801 Z86E0208PSC OSC1 OSC2 CPU Q1 02 Vcc GND С1 20 СП Z801 4,433МГц т — ♦ -------------- *► К Выводу ► К Выводу *► 4-5В сз 0,047мк IC705/1 IC705/7 С2 20 PCLK -----► К Выводу IC501/6 Рис. 4.16. Принципиальная схема модуля адаптации игровой приставки SONY PLAYSTATION обычного транзистора и резистивного делителя в цени базы. Вход последнего можно соединять не- посредственно с выходом цифровой ТТЛ или КМОП мн к рос хсм ы. Вы ход 11 ые н ап ряже] и ш преобразователя стабил п- зированы. Регулирование происходит с помощью микросхемы IC101, на вход которой через делитель из резисторов R106, R107 поступает напряжение, пропорциональное выходному в цепи +3,3 В, а на другой вход - опорное напряжение. Выход IC101 через резисторы R103, R104 и светодиод оптрона РС001 подключается к цепи +8 В. При повышении любого из выходных напряжений ток через светоди- од увеличивается. В результате изменяется сопротив- ление участка коллектор-эмиттер фототранзистора оптрона в цени обратной связи блокинг-генератора. Этот процесс вызывает такое изменение частоты и длительности генерируемых импульсов, что выход- ные напряжения возвращаются к установившимся значениям. Например, при увеличении нагрузки в 1,5 раза частота преобразования снижается со 160 до 120 кГц с одновременным увеличением относи- тельной длительности открытого состояния транзис- тора Q001 (то есть времени накопления энергии). Цени R010, С008 и R105, С105 придают системе ав- томатического регулирования iiai[ряже!]i1я динами- ческую устойчивость. Коэффициент стабилизации довольно высок: напряжение в цепи +3,3 В изменяет- ся всего на 0,5% при увеличении тока нагрузки с 0,035 до 1 А. Для напряжения +8 В этот показатель хуже: 11% при изменении тока нагрузки от 0,075 до 1 А. При коротком замыкании любого из вы ходов преобразователь переходит в режим стабилизации тока. После устранения замыкания нормальная ра- бота восстанавливается автоматы чески. Как уже говорилось, преобразователь функцио- нирует все время, пока сетевая вилка вставлена в розетку, даже если контакты выключателя SW101 «POWER» разомкнуты. Открывая игровую при- ставку для ремонта, ire забыванте о высоком напря- жении на этой плате (до 300 В). На плате питания находится таймер IC102, фор- мирующий сигнал сброса для процессорной платы. В момент включения приставки кнопкой SW101, а также при нажатии и отпускании кнопки SW102 на выходе таймера появляется импульс низкого ло- гического уровня длительностью 500 мс. Времяза- дающим элементом является конденсатор С106. Цепь D105, Rill, R112, D106 обеспечивает генера- цию сигнала сброса при кратковременном уменьше- нии напряжения в цепи +8 В. В результате после так 160
Характерные неисправности ^*Я*ЭД«'<ч'Й»«й Рис. 4.17. Принципиальная схема стандартного игрового пульта для приставки SONY PLAYSTATION называемых просадок сетевого напряжения цен- тральный процессор автоматически перезапуска- ется. Напряжение стабилизации D105 составляет 5,1 В. Транзистор Q101 при необходимости можно заме- нить обычным маломощным п-р-п транзистором, включив последовательно в его базовую цепь резис- тор со противлением -10 кОм. В качестве IC101 до- пустимо использовать TLP431CLP, TL1431 (TEXAS INSTRUMENTS), НА174 (HITACHI), КР142ЕН19. В последнем случае нужно иметь в виду, что встречаются приборы с нестандартным расположе- нием выводов. Оптрон TLP621 (РС001) можно за- менить на TLP521 или NEC256. Для повышения надежности платы питания и уменьшения помех другим электронным приборам, создаваемых ею в момент подключения к сети, в раз- рыв одного из сетевых проводов (например, последо- вательно с плавкой вставкой F001) рекомендуется добавить резистор сопротивлением 10-100 Ом и но- минальной мощностью не менее 2 Вт. 4.4. Характерные неисправности Казалось бы, усложнение принципиальной схемы приставки должно привести к увеличению списка возможных неисправностей и способов их устране- ния. Однако па самом деле ремонт игровой при- ставки SONY PLAYSTATION зачастую сводится к замене всей процессорной платы. Это связано как с трудностью перепайки микросхем, так и с тем, что сами микросхемы являются специализированными и отсутствуют в продаже. Поэтому ниже рассмат- риваются только те поломки, которые можно ис- править, нс заменяя процессорную плату и исполь- зуя доступные радиодетали. Приставка не включается Возможные причины: неисправность источника пи- тания; короткое замыкание или обрыв цепей пита- ния; неисправность процессорного модуля. Алгоритм поиска неисправности: 1. Проверить выходные напряжения импульсного стабилизатора. В случае их отсутствия убедиться в исправности предохранителя F001. Если предо - хранитель неисправен, а новый предохранитель при замене сразу перегорает, проверить диодный мост D001 - D004 и транзистор Q001. 2. При выходе напряжений за пределы 7,6-8,2 и 3,2- 3,4 В осмотреть выходные цепи блока питания (ди- оды D101 - D104, конденсаторы С101 - С104 и мик- росхему IC101). 3. Проверить блоки приставки на отсутствие коротких замыканий. При возникновении замыкания часто происходит обрыв одного из печатных проводников в цепи питания, поэтому следует тщательно осмотреть платы и удостовериться в целостности проводников. 4. Если короткого замыкания нет, проверить внутрен- ний стабилизатор игровой приставки. Напряжения на выходе стабилизатора должны быть в пределах 5±0,1 и 8±0,25 В. Если напряжение выходит за ука- занные границы, в стабилизаторе следует прове- рить диоды D2, D3 и микросхему IC501. 5. После проверки цепей питания необходимо прове- рить формирование сигнала RESET. При нажатии на кнопку RESET на контакте разъема CN101/5 дол- жен появиться кратковременный импульс низкого уровня. Наличие на этом контакте постоянного низ- кого уровня или отсутствие импульса при нажатии кнопки позволяет сделать вывод о неисправности кнопки SW102 или микросхемы IC102. Приставка работает нестабильно Возможные причины: неисправность импульсного стабилизатора или внутреннего стабилизатора; ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION 161
Принципиальная схема. Блок питания игровой приставки SONY PLAYSTATION СО О Ю О Z* ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION R109 13,ЗК R1 10 ЮК С104 180 16В <~] С103 180 16В ’ RIO?4”3 1,1 К (ADJ)| г г I □ м о О о о <=; О Е О Е СГ I ф £ о ГО ф D X ф J о т m о ю о S Е ф ф «ч (Т> Рис. 4.18а. Принципиальная схема блока питания игровой приставки SONY PLAYSTATION 162
Характерные неисправности Рис. 4.186. Принципиальная схема блока питания игровой приставки SONY PLAYSTATION ИГРОВАЯ ПРИСТАВКА SONY PLAYSTATION загрязнение контактов разъема для подключения картриджа. Алгоритм поиска неисправности: 1. Проверить выходное напряжение импульсного ста- билизатора. Сбой возникает из-за малой нагрузоч- ной способности стабилизатора. Часто эта пробле- ма вызвана неисправностью микросхемы IC101. 2. Проверить надежность контактных соединений в разъемах приставки, при необходимости проте- реть контакты разъемов спиртом. 3. Проверить внутренний стабилизатор игровой при- ставки. Особое внимание следует обратить на уро- вень пульсаций выходного напряжения. Они не должны превышать 100 мВ. 4. Возможным способом решения проблемы явля- ется установка в цепи питания дополнительных конденсаторов номиналом 100 мкФ х 16 В и 0,01 мкФ на каждой плате приставки и в картридже. Не работают некоторые кнопки пульта Возможные причины: загрязнение1 пульта или неис- правность м 11 кросхем ы. Алгоритм поиска неисправности: 1. Протереть спиртом плату пульта и резиновую про- кладку с токопроводящими площадками. 2. Если неисправны токопроводящие площадки на ре- зиновой прокладке, то можно восстановить их, на- клеив кусочки фольги. Удобнее использовать фоль- гу от сигаретных пачек: она имеет бумажную основу, что обеспечивает лучшее приклеивание к резине. 3. Токопроводящее покрытие на плате воссоздается с помощью очищенного монтажного провода.