Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Дослідження роботи і призначення шини РСІ, режимів роботи, протоколів обміну та сфери застосування

Тип роботи: 
Лабораторна робота
К-сть сторінок: 
24
Мова: 
Українська
Оцінка: 

style="text-align: justify;">*  У разі успішного завершення операції пошуку

*  параметри контроллера зберігаються в глобальних
*  змінних BusNumber. DeviceNumber, VendorlD
*  DevicelD і IDEContrRegsBaseAddr
****************************************************************
PROC SearchBusMasterlDEContr near
PushALL
: Перевірити наявність PCI BIOS
movAX.0B101h
int1Ah
jc@@PCIBIOSNotFound
cmpEDX.20494350h
jne@@PCIBIOSNotFOund
: Знайти контроллер Bus Masyer IDE за кодом класу
movAX.0b103h
movECX.0101180h   :перший варіант коду
movSI .0
int1Ah
jnc@@ReadPCIRegisters    :пристрій знайдено
movAX.0B103h
movECX.010185h     :другий варіант коду
movSI,0
int1Ah
jnc@@ReadPCIRegisters       :пристрій знайдено
movAX,0B103h
movECX.01018Ah     :третій варіант коду
movSI,0
int1Ah
jnc@@ReadPCIRegisters     :пристрій знайдено
:Контроллер IDE не знайдений
movSI,offset NoIDEC
callFatalError
:Пристрій знайдено. Його координати на шині PCI  знаходяться в регістрі BX
@@ReadPCIRegisters:
: Запам'ятати координати контроллера
mov[BusNumber],BH
mov[DeviceNumber],BL 
: Отримати ідентифікатор виробника
movAX.0B109h      :читати слово
movDI,0      :зміщення слова
intlAh
jc@@BadRegisterNumber
mov[VendorID],CX 
: Отримати ідентифікатор пристрою
 movАХ.0В109h      :читати слово
movDI,2      :зміщення слова
intlAh
jc@@BadRegisterNumber
mov[Device[D],CX 
: Отримати базову адресу блоку регістрів контроллера IDE
movАХ,0Bl0Ah     :читати подвійне слово
movDI,20h     :зміщення слова
intlAh
jc@@BadRegisterNumber
andCX,0FFF0h      :скинути молодші 4 розряди
mov [IDEContrRegsBaseAddr],CX
роpall
ret
 
: Обробка помилок 
@@PCIBIOSNotFound:
: He підтримується PCI BIOS 
mov   SI,offset NoPCI 
call  Fatal Error 
@@BadRegi sterNumber:
: Невірний номер регістра 
mov   SI,offset BadReg 
call     Fatal Error 
ENDP SearchBusMasterlDEContr 
ENDS
В лістингу 2 наведений приклад програми, яка викликає процедуру SearchBusMasterlDEContr, а потім відображає на екран інформацію про контроллер, отриману за допомогою цієї процедури.
Лістинг 2. Пошук контроллера PCI IDE і зчитування його параметрів
: Пошук контроллера PCI IDE і прочитування його параметрів
IDEAL 
Р386 
LOCALS 
MODEL MEDIUM
: Підключити файл мнемонічних позначень кодів управляючих клавіш і колірних кодів 
include "lst03_01.inc" 
: Підключити файл макросів include "lst03_04.inc"
DATASEG
: Текстові повідомлення
Txt0 DB LIGHTCYAN.0.10. "ВИЗНАЧЕННЯ ПАРАМЕТРІВ"
DB "КОНТРОЛЛЕРА IDE За допомогою PCI BIOS".0 
Txtl DB 2,27."Параметры контроллера IDE".0
DB 4,28."Номер шини:".О
DB 5,22."Номер пристрою:".0
DB 6,25."Номер функції:".0
DB 7,12."Ідентификатор виробника:".0
DB 8,14."Ідентификатор пристрою:".0
DB 9,8."Базова адреса набору регістрів:".0 
AnyK DB YELLOW,24,29."Натисніть будь-кого клавішу",0
ENDS
 
 
SEGMENT sseg para stack 'STACK'
DB 400h DUP(?)
ENDS
 
 
CODESEG
:*****************************
;* Основний модуль програми     *
:*****************************
PROC TestlDEContr
mov   AX,DGROUP
mov   DS,AX 
: Встановити текстовий режим і очистити екран
mov   АХ,3
int   10h
: Приховати курсор - прибрати за нижню межу екрану
mov[ScreenString].25
mov[ScreenColumn].0
callSetCursorPosition 
: Вивести заголовок
MShowColorText Txt0 
: Встановити зелений колір символів і чорний фон
mov   [TextColorAndBackground].LIGHTGREEN 
: Знайти контроллер PCI IDE
call    SearchBusMasterlDEContr 
: Вивести заголовки полів
MShowText 7,Txtl 
: Встановити жовтий колір символів і чорний фон
mov   [TextColorAndBackground].YELLOW 
: Вивести отримані дані на екран
MShowHexByte 4,40.[BusNumber]
movBL,[Devi сеNumber]
shrBL,3
MShowHexByte 5.40.BL
movBL,[DeviceNumber]
andBL,lllb
MShowHexByte 6,40.BL
MShowHexWord 7,40.[VendorID]
MShowHexWord 8,40.[DevicelD]
MShowHexWord 9,40.[IDEContrRegsBaseAddr] 
: Вивести вказівку оператору
MShowColorText l.AnyK 
: Чекати натиснення клавіші
callGetChar 
: Переустановити текстовий режим і очистити екран
movАХ,3
int10h 
: Вихід в DOS
movАН,4Ch
int21h
: Обробка помилок 
@@BadRegisterNumber:
: Невірний номер регістра
 movSI.offset BadReg
callFatal Error 
ENDP TestlDEContr
ENDS
: Підключити процедури вводу-виводу
include "lst03_02.inc"
: Підключити процедуру пошуку контроллера PCI IDE
include "lst04_01.inc"
END
 
Додаток 2
Адаптер інтерфейсу PCI для периферійних пристроїв
 
Рис. 7. Схема адаптера. 
Схема адаптера показана на рис. 7. Для спрощення схеми, номери провідників в співпадають з номерами виведень мікросхеми PCI2040PGE в 144-вивідному корпусі LQFR У приведеному адаптері застосована мікросхема PCI2040 [9]. Вона працює в режимі "target" при тактовій частоті шини PCI до 33 МГц і напрузі живлення ядра 3,3 В, а вузлів інтерфейсу  - 3,3 або 5 В.  Основне призначення даної мікросхеми - з’єднання цифрових сигнальних процесорів TMS320C54X і TMS320C6X з шиною PCI. Проте, крім спеціалізованого інтерфейсу HPI, мікросхема забезпечена шинним інтерфейсом загального призначення GPB (General Purpose Bus), що складається з немультіплексированних шин адреси (GPA0 - GPA5) і даних (GPD0 - GPD15) із звичним набором сигналів управління: чотирма вихідними - "вибір кристала" GP_CS, запис GP_WR, читання GP_RD, установка в початкове положення
Фото Капча