Разработка Mass Storage контроллера
Проект предполагает использование управляющего Mass Storage контроллера (в дальнейшем контроллер или MSK), подключаемого к разъему шины PCI в соответствии со спецификацией PCI Local Bus Specification, Revision 2.2, от 12/18/98. В задачу контроллера входит обслуживание накопителей на жестких магнитных дисках (в дальнейшем HDD), структурная схема работы с которыми приводится ниже. Контроллер обеспечивает работу с HDD по одному из существующих каналов: первичному (Primary) или вторичному (Secondary). Выбор канала осуществляется программно с помощью разработанного Заказчиком программного обеспечения и предполагает наличие в контроллере управляющего регистра. Для обслуживания перезаписываемого запоминающего устройства контроллер должен оснащаться регистрами доступа к EEPROM.
Запрос на прерывание не используется, выбор адресов вводавывода выполняется с помощью стандартного PlugandPlay механизма. В конфигурационном пространстве PCI контроллер формирует следующую таблицу:
31
|
16
|
15
|
0
|
|
0Dh
|
1Ch
|
B0h
|
0Ch
|
00h
|
02h
|
00
|
00
|
01h
|
04h
|
01h
|
80h
|
00
|
01h
|
08h
|
00
|
00
|
XX
|
01h
|
0Ch
|
00
|
00
|
00
|
00
|
10h
|
00
|
00
|
00
|
00
|
14h
|
00
|
00
|
00
|
00
|
18h
|
00
|
00
|
00
|
00
|
1Ch
|
00
|
00
|
00
|
00
|
20h
|
00
|
00
|
00
|
00
|
24h
|
00
|
00
|
00
|
00
|
28h
|
00
|
00
|
00
|
00
|
2Ch
|
00
|
00
|
00
|
00
|
30h
|
00
|
00
|
00
|
00
|
34h
|
00
|
00
|
00
|
00
|
38h
|
00
|
00
|
00
|
00
|
3Ch
|
00
|
00
|
00
|
00
|
40h
|
|
|
|
|
…
|
00
|
00
|
00
|
00
|
FCh
|
XX – поле, содержащее старшие 8 бит адреса пространства портов, выделяемых контроллеру PlugandPlay нумератором BIOS или операционной системы.
Первичный и вторичный каналы контроллера предназначены для обслуживания накопителей HDD. Контроллеру назначается базовый адрес в пространстве портов вводавывода MSKBASE, начиная с которого, контроллер занимает 256 байт.
Регистры IDE каналов
Для работы с накопителями HDD требуются следующие регистры:
Offset
|
Width
|
Mass
Storage
|
Наименование
Регистра
|
Primary
IDE
|
Secondary
IDE
|
MSKBASE +0
|
16
|
0A000
|
DATA 7,,0
|
1F0
|
170
|
MSKBASE +1
|
|
|
DATA 15,,8
|
|
|
MSKBASE +2
|
8
|
0A002
|
Sector Count
|
1F2
|
172
|
MSKBASE +3
|
8
|
0A003
|
Sector Number
|
1F3
|
173
|
MSKBASE +4
|
8
|
0A004
|
Cylinder Low
|
1F4
|
174
|
MSKBASE +5
|
8
|
0A005
|
Cylinder High
|
1F5
|
175
|
MSKBASE +6
|
8
|
0A006
|
Device/Head
|
1F6
|
176
|
MSKBASE +7
|
8
|
0A007
|
Status/Command
|
1F7
|
177
|
MSKBASE+16
|
8
|
0A016
|
Alternate Status
|
3F6
|
376
|
Здесь и далее мы предполагаем, что контроллеру назначен адресный регион в пространстве портов с базовым адресом 0A000h.
Регистры управления
Регистры управления предназначены для выбора активного канала и установки заданных логических уровней на выводах разъема, управляющего вторичным каналом.
Offset
|
Width
|
Mass
Storage
|
Наименование
регистра
|
|
|
MSKBASE +2
|
16
|
0A002
|
Control Register
|
|
|
MSKBASE +6
|
16
|
0A006
|
|
|
|
|
|
…
|
|
|
|
MSKBASE+FE
|
16
|
0A0FE
|
|
|
|
Регистр XOR (опционально)
Регистр XOR предназначен хранения XOR последовательности в контроллере MSK. Восьми битная информация, которая поступает через шину PCI в HDD, подвергается побитной операции XOR с байтом, хранящимся в XOR регистре.
Регистр доступа к EEPROM
Канал доступа к EEPROM предназначен для обслуживания перезаписываемого запоминающего устройства, подключаемого по шине I2C.
Конструкция
Плата контроллера MSK выполняется из текстолита толщиной 1,5 мм с двусторонней маской без нанесения шелкографических отметок. Ламели разъема PCI покрываются золотом толщиной 3…6 микрон. На плате предусмотрено место для угловой розетки DRB37FA, к которой крепится стойка, обеспечивающая установку в корпус персонального компьютера. Розетка служит для подключения первичного канала IDE контроллера. Для подключения вторичного канала IDE на плате контроллера предусматривается место для установки вертикального разъема BH40. Для управления вторичным каналом предусматривается место для установки вертикального разъема BH10. Активность по первичному и вторичному каналу отображается на светодиодных индикаторах D1 и D2 соответственно.
На плате контроллера предусматривается установка углового разъема THP4MR, к которому от блока питания персонального компьютера подключается силовой разъем THP4F, обеспечивающий подачу питающих напряжений +5 и +12 вольт. В непосредственной близости от разъема THP4MR должна находится металлизированная надпись POWER IN. Для питания накопителей HDD, подключаемых к контроллеру, на плате предусматривается установка углового разъема THP4MR, в непосредственной близости от которого должна находится металлизированная надпись POWER OUT. В настоящем проекте предполагается питание системной платы, в которую устанавливается контроллер MSK, и питание устройств подключения (HDD) выполнять от одного и того же источника питания. Требования к такому источнику не входит в рамки данного проекта.
|