LAB599.RU — интернет-магазин средств связи
EN FR DE CN JP

Внешний контроллер IDE CD-ROM привода

Внешний контроллер IDE CD-ROM привода

С давних пор приводы CD-ROM стали непременным атрибутом современного компьютера, ведь ОС WINDOWS 95/98 уже невозможно установить с дискет. Однако в последнее время в связи с бурным возрастанием скоростей обмена информацией и удешевлением высокоскоростных моделей, все большее и большее количество «пожилых и неторопливых» отправляется в свое последнее путешествие - на полку, глотать пыль (а в худшем случае - «на запчасти»). Сейчас цена на 2-х - 4-х скоростные модели колеблется в пределах 40-75 гривен (10-20$; модели с кнопками управления стоят несколько дороже). И хотя качество звучания, обеспечиваемое CD-ROM приводами хуже, чем в стационарных проигрывателях компакт дисков, они часто используются для прослушивания аудиоCD.

Основным препятствием, мешающим использованию CD-ROM приводов в качестве автономных проигрывателей компакт дисков, является отсутствие каких-либо органов управления проигрыванием диска. И хотя существуют модели, имеющие клавиши управления, но они, к сожалению, за редким исключением (Creative Infra) не обеспечивают никаких сервисных функций.

Есть два варианта решения этой проблемы: можно найти справочные данные на управляющий процессор привода – возможно он позволяет подключить управляющие клавиши, или же можно управлять приводом так, как это делает компьютер - через интерфейс привода. Сразу должен оговориться: первый вариант - это практически безнадежное дело, тогда как второй, хотя и чреват дополнительными материальными и временными затратами - беспроигрышен.

Известно несколько схем такого рода. Две из них были опубликованы в журнале «Радиолюбитель», еще одна рекламировалась в одной из эхоконференций сети FIDO. К сожалению все эти схемы имеют существенные недостатки, а именно: необходимость наличия на лицевой панели привода клавиш управления, отсутствие прошивки для микроконтроллера и не IDE интерфейс или, опять же, отсутствие прошивки для третьей схемы, что, естественно, затрудняет их повторение. Учитывая сказанное, было принято решение о разработке недорогого контроллера CD-ROM привода, в той или иной мере свободного от указанных недостатков.

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

В качестве управляющего процессора использован процессор Z80 (DD3, рис.1). Причин, обусловивших такой выбор, две: во-первых, при разработке чего-либо чаще всего приходится довольствоваться тем, что есть под рукой, и, во-вторых, этот процессор, как и устройства на его основе (АОНы и ZX-Spectrum, которые пылятся полуразобранные на полках у многих), достаточно широко распространен. Я, например, использовал старую плату АОН, благо большинство соединений там уже разведено.

Внешний контроллер IDE CD-ROM привода

На элементах DD1.1-DD1.3 микросхемы DD1 (К1533ЛН1) собран задающий кварцевый генератор, с выхода которого тактовая последовательность с частотой 4 МГц поступает на тактовый вход (вывод 6) процессора. На элементах DD1.4-DD1.6 выполнен генератор импульсов прерываний. Снимаемые с его выхода короткие импульсы отрицательной полярности с частотой около 400 Гц подаются на вход маскируемого прерывания (вывод 16) процессора.

Объем ОЗУ и ПЗУ (микросхемы DD7 (К573РУ10) и DD5 (2764)) составляет 2К и 8К соответственно (максимальный объем - 32К и 32К), что дает возможность использовать практически любые микросхемы памяти. Карта памяти устройства выглядит следующим образом:

Адрес Тип памяти
0000H-1FFFH ПЗУ
2000H-27FFH ОЗУ
2800H-FFFFH  

Зарезервировано под расширение ОЗУ и ПЗУ На микросхеме DD2 (К1533ИД7) выполнен дешифратор адресов внешних устройств. Для сокращения числа корпусов микросхем, а, следовательно, удешевления устройства, выбран динамический метод индикации. Образ символа защелкивается в регистре DD8 К1533ИР23 (ему соответствует адрес на запись 7FH), а код, соответствующий номеру подсвечиваемого разряда - в регистре DD9 К1533ТМ9 (адрес на запись 3FH). Код номера разряда дешифруется микросхемой DD4 К555ИД10. На светодиодном индикаторе HG1 с общим катодом (АЛС318 или другой, например, устанавливаемый в АОНах) индицируется информация по текущему состоянию привода - «--StOP---», «--PAUSE--», «--RESEt--», «PL.01.04-57» - здесь PL - «PLAY», 01 - текущая дорожка, 04-57 - минуты и секунды на текущей дорожке.

На микросхеме DD6 К1533КП11 выполнен порт клавиатуры. Адрес клавиатурного порта - 3ЕH (чтение). Клавиатура представляет собой матрицу организацией 4х4 нормально разомкнутых кнопок. Столбцы клавиатуры подключаются ко входам порта клавиатуры, а строки - к выходам дешифратора сканирования (DD4). Количество кнопок может быть легко увеличено до 36, для этого достаточно допаять матрицу клавиатуры по аналогии с уже имеющейся, используя оставшиеся выводы дешифратора DD4, за исключением вывода R9 (вывод 11) которая участвует в формировании сигнала сброса дла привода CD-ROM.

Для согласования восьмиразрядной шины данных микропроцессора с шестнадцатиразрядной шиной данных привода CD-ROM служит узел, включающий в себя три микросхемы: DD10 (К1533АП6) и DD11-DD12 (К1533ИР23). Шинный формирователь DD10 обеспечивает развязку шины данных микропроцессора и младшей половины шины данных привода, а регистры DD11-DD12 - фиксацию данных, поступающих на старшую половину шины данных привода при чтении или записи. Младшей половине соответствует базовый адрес чтения/записи F0H, а старшей - BFH. (Примечание: так как привод CD-ROM имеет 8 регистров, через которые осуществляется обмен данными и управление, то, соответственно, ему, как внешнему устройству, соответствуют 8 адресов на ввод и вывод, в данном случае - F0H-F7H). Таким образом, для записи данных в CD-ROM необходимо сначала записать старший байт по адресу BFH, а затем записать младший байт по требуемому адресу из диапазона F0H-F7H. Для считывания же данных необходимо сначала считать младший байт (адрес - F0H-F7H), а затем считать старший байт из порта с адресом BFH.

Теоретически, правильно собранное устройство в наладке не нуждается. Однако на практике возможно потребуется подкорректировать значение частоты генератора импульсов прерываний - она должна составлять 400 Гц.

Детали. Микросхемы серии К1533 можно заменить их аналогами из серии К555. Процессор Z80 может быть заменен на отечественный аналог К1858ВМ1. Мультиплексор К1533КП11 (DD6) может быть заменен на шинный формирователь К1533АП5, К1533АП6 или даже на четыре элемента микросхемы К555ЛП8. Вместо регистра DD8 К1533ИР23 может быть установлен регистр К1533ИР27, при этом вывод 1 микросхемы необходимо подключить к лог.1 или на вывод 26 (цепь сброса) процессора. Вместо регистра DD9 К1533ТМ9 можно использовать либо К1533ИР27 (вывод 1 подключается аналогично предыдущему варианту), либо К1533ИР23.

Приведенная прошивка ПЗУ контроллера не обеспечивает никаких сервисных функций. Фактически ее основное назначение показать, что схема контроллера работоспособна. Это ни в коем случае не значит, что не будет появляться новых версий прошивки. Возможно они появятся уже к моменту выхода статьи.

Итак, данная прошивка (таблица 1) обеспечивает следующие функции:

  1. Воспроизведение аудио дисков с индикацией номера текущей дорожки и времени проигрывания (клавиша «1»);
  2. Переход на предыдущую дорожку (клавиша «0»);
  3. Переход на следующую дорожку (клавиша «3»);
  4. Останов проигрывания (клавиша «2»);
  5. Пауза/возобновление проигрывания (клавиша «5»)
  6. Выброс диска (клавиша «6»).

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

Приведенная прошивка была успешно оттестирована на следующих моделях CD-ROM приводов:
Mitsumi 4x (model FX400E)
Mitsumi 8x (model FX810T4)
Samsung 24x (model SCR2430, SCR2431)

—————————————————————————————————————————————————————————
           0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
—————————————————————————————————————————————————————————
00000000: F3 31 FF 27 ED 56 18 61 3E FF D3 BF C3 23 02 44
00000010: 0E 00 CD 8A 02 C3 D4 02 0E 42 CD 8A 02 C3 45 03
00000020: E1 D5 C5 C3 C9 02 49 47 FF FF FF FF FF FF FF FF
00000030: FF FF FF FF FF FF FF FF F5 C5 E5 AF D3 7F FD 77
00000040: 35 06 09 21 32 20 78 3D D3 3F DB 3E F6 F0 77 2B
00000050: 3C 28 04 FD 36 35 FF 10 ED 3A 29 20 FE 09 38 01
00000060: AF D3 3F C3 97 02 C3 4F 04 FD 21 00 20 FB CD 40
00000070: 01 C3 05 01 CD 70 01 D7 38 0F FD CB 36 56 28 09
00000080: DF FE 11 28 04 FE 13 28 71 3A 35 20 B7 28 E5 2A
00000090: 2A 20 ED 5B 2C 20 3A 35 20 B7 20 FA 7D FE FF 28
000000A0: 0E CB 1F 30 19 CB 1F 30 2E CB 1F 30 4D 18 5D 7C
000000B0: CB 1F 30 6E CB 1F 30 6D CB 1F 30 7C 18 7F 3A 36
000000C0: 20 E6 E4 28 AF 3A 3B 20 47 3A 27 20 B8 28 A5 3D
000000D0: 47 3A 28 20 4F 18 18 3A 36 20 E6 E3 28 96 CB 1F
000000E0: 38 05 CD 3E 04 18 0B 3A 28 20 4F 3A 3B 20 47 CD
000000F0: 23 04 3E 04 32 36 20 C3 74 00 3A 36 20 E6 E6 CA
00000100: 74 00 CD 48 04 CD C4 01 3E 01 18 E8 3A 36 20 E6
00000110: E4 CA 74 00 3A 28 20 4F 3A 27 20 B9 CA 74 00 3C
00000120: 18 AE C3 74 00 3A 36 20 E6 E6 CA 74 00 F5 CB 1F
00000130: CD 3E 04 F1 EE 02 18 BC CD FC 02 18 C8 C3 74 00
00000140: 3E 09 D3 3F AF D3 3F CD 88 01 D7 CD DE 02 3A 38
00000150: 20 FE 29 28 F5 D7 30 0C 3A 2B 20 E6 04 20 F6 CD
00000160: FC 02 18 03 CD 0E 03 CD 7A 01 3E 04 32 36 20 C9
00000170: FB 76 76 76 76 76 76 76 76 C9 AF 32 35 20 21 FF
00000180: FF 22 2A 20 22 2C 20 C9 E7 40 00 31 00 79 00 6D
00000190: 00 79 00 78 00 40 00 40 00 40 00 C9 E7 3F FF 78
000001A0: FF 00 FF 31 FF 79 FF 77 FF 5E FF 6E FF 37 FF C9
000001B0: E7 37 FF 3F FF 00 FF 5E FF 06 FF 6D FF 39 FF 40
000001C0: FF 40 FF C9 E7 40 FF 6D FF 78 FF 3F FF 73 FF 40
000001D0: FF 40 FF 40 FF 40 FF C9 F5 C5 D5 E5 06 0A 16 00
000001E0: 18 02 14 90 B8 30 FB 47 26 00 6A 11 17 05 19 7E
000001F0: 26 00 68 47 79 19 4E B7 20 04 3E 08 18 01 3D CB
00000200: 17 26 00 6F 11 10 20 19 70 23 36 FF 23 71 23 36
00000210: FF E1 D1 C1 F1 C9 D5 11 01 22 26 00 6F 2D 29 29
00000220: 19 D1 C9 21 00 00 22 0C 20 3E A0 D3 F6 DB F7 E6
00000230: 88 20 FA 3E 04 D3 F5 AF D3 F4 3E A0 D3 F7 06 06
00000240: 21 00 20 DB F7 E6 88 FE 08 20 F8 4E 23 7E 23 D3
00000250: BF 79 D3 F0 10 ED 3E FF D3 BF DB F7 E6 80 20 FA
00000260: DB F7 E6 08 C8 DB F4 4F DB F5 47 ED 43 0C 20 B1
00000270: C8 21 00 24 B7 CB 18 CB 19 30 01 03 DB F0 77 23
00000280: DB BF 77 23 0B 78 B1 20 F3 C9 21 00 20 06 0B 71
00000290: 23 36 00 23 10 FB C9 4F 3C 32 29 20 26 00 69 01
000002A0: 10 20 29 09 7E 23 4E FD CB 34 7E 28 02 0E FF A1
000002B0: D3 7F FD 35 33 20 0D 3A 21 05 FD 77 33 FD 7E 34
000002C0: 2F FD 77 34 E1 C1 F1 FB C9 11 10 20 01 12 00 ED
000002D0: B0 D1 C1 E9 CF DB F1 B7 C8 CD B0 01 37 C9 0E 03
000002E0: CD 8A 02 3E 12 32 04 20 CF 3A 02 24 32 37 20 3A
000002F0: 0C 24 32 38 20 3A 0D 24 32 39 20 C9 AF CD 3B 03
00000300: CD B0 01 0E 1B CD 8A 02 3E 02 32 04 20 CF 3A 2B
00000310: 20 E6 04 28 03 D7 38 F6 0E 1B CD 8A 02 3E 03 32
00000320: 04 20 CF D7 30 09 3A 2B 20 E6 04 28 D6 18 F4 CD
00000330: 9D 03 3C 28 CE 3E 01 CD 3B 03 C9 0E 1E CD 8A 02
00000340: 32 04 20 CF C9 21 01 20 36 02 23 36 40 23 36 01
00000350: 21 07 20 36 10 23 CF 3A 01 24 32 26 20 F5 FE 11
00000360: 20 33 3A 06 24 32 27 20 0E 02 CD D8 01 2A 0D 24
00000370: 22 22 20 7D 0E 04 CD D8 01 7C 0E 07 CD D8 01 FD
00000380: CB 14 FE 21 40 00 22 1A 20 21 B8 FF 22 10 20 21
00000390: 73 FF 22 20 20 2A 09 24 22 24 20 F1 C9 FD 36 3A
000003A0: FF 0E 43 CD 8A 02 21 01 20 36 02 21 06 20 36 01
000003B0: 23 36 30 23 36 03 23 CF DD 21 00 24 DD 34 03 21
000003C0: 04 24 11 00 22 23 7E 23 FE 10 20 03 FD 34 3A ED
000003D0: A0 23 23 ED A0 ED A0 ED A0 DD 35 03 20 E7 D5 23
000003E0: ED A0 23 23 ED A0 ED A0 ED A0 E1 11 00 22 B7 ED
000003F0: 52 CB 1C CB 1D CB 1C CB 1D 7D 3D 32 28 20 FD 96
00000400: 3A 3C 32 3B 20 3A 3A 20 C9 0E 47 CD 8A 02 CD 16
00000410: 02 11 03 20 ED A0 ED A0 ED A0 23 ED A0 ED A0 ED
00000420: A0 CF C9 C5 0E 47 CD 8A 02 C1 78 CD 16 02 79 3C
00000430: 11 03 20 ED A0 ED A0 ED A0 CD 16 02 18 DD 0E 4B
00000440: CD 8A 02 32 08 20 CF C9 0E 4E CD 8A 02 CF C9 ED
00000450: 45 0D 0A 5A 38 30 20 43 44 2D 52 4F 4D 20 70 6C
00000460: 61 79 65 72 20 52 4F 4D 20 76 31 2E 31 32 0D 0A
00000470: 28 63 29 20 49 76 61 73 63 68 65 6E 6B 6F 20 52
00000480: 6F 6D 61 6E 20 61 6B 61 20 44 49 47 49 54 41 4C
00000490: 52 0D 0A 50 6F 6C 74 61 76 61 2C 20 55 6B 72 61
000004A0: 69 6E 65 20 31 39 2D 30 34 2D 31 39 39 39 0D 0A
000004B0: 45 2D 4D 61 69 6C 20 20 3A 20 20 64 69 67 69 74
000004C0: 61 6C 72 40 63 68 61 74 2E 72 75 0D 0A 20 20 20
000004D0: 20 20 20 20 20 20 20 20 64 69 67 69 74 61 6C 72
000004E0: 65 73 40 66 63 6D 61 69 6C 2E 63 6F 6D 0D 0A 46
000004F0: 49 44 4F 20 3A 20 49 76 61 73 63 68 65 6E 6B 6F
00000500: 20 52 6F 6D 61 6E 20 20 32 2E 34 36 31 33 2F 32
00000510: 30 34 2E 32 31 0D 0A 3F 06 5B 4F 66 6D 7D 07 7F
00000520: 6F C8
		

www.iceinet.ru

 

Партнеры