Програма на предмета Дънни платки за специалност Компютърна техника и технологии в професионалните гимназии. Литература


ADSTB (Address Strobe – стробиране



страница3/7
Дата28.10.2018
Размер1.08 Mb.
#104073
ТипПрограма
1   2   3   4   5   6   7

ADSTB (Address Strobe – стробиране4 на адреса): Използва се за да стробира горния байт на адреса към външна фиксация.

/MEMR (Memory Read- четене на паметта): изходящ сигнал с ниско активно ниво и три състояния, използван за да се получи достъп до данни (четене) от избраното място в паметта по време на DMA четене или трансфер “памет към памет”.

/MEMW (Memory Write – запис в паметта): изходящ сигнал с ниско активно ниво и три състояния, използван за да се записват данни в избрано място от паметта, по време на DMA запис или трансфер “памет към памет”.

4.4.4Работа



Празен цикъл

Когато няма канал, изискващ DMA обслужване, контролерът 8237 влиза в празен цикъл и изпълнява "SI" състояния. В този цикъл 8237 на всеки такт проверява DREQ линиите, за да определи дали някой канал не изисква DMA услуги. Също се проверява CS (избиране на чипа), търсейки опит от процесора да записва или чете вътрешните регистри на 8237.



Режим на програмиране

Когато CS е с ниско ниво и HRQ е с ниско ниво, 8237 влиза в режим на програмиране (Program Condition). В този режим процесорът може да установява, променя или инспектира вътрешните дефиниции на контролера чрез четене или писане във вътрешните регистри. Адресните линии A0-A3 са входни за устройството и избират кои регистри ще се четат и записват. Използват се линиите /IOR и /IOW за да се избират и отмерват четенията и писанията. Поради броя и размера на вътрешните регистри, използва се вътрешен тригер (флип-флоп), който генерира допълнителен бит на адреса. Този бит определя дали се работи със старшия или младшия байт на 16-битовите адресни и броячни регистри. Тригерът се нулира от Master Clear или Reset.



Активен цикъл

Дадено устройство подава заявка за DMA обмен, като изпраща сигнал с високо логическо ниво по съответната линия DREQ. Както и при обработката на прекъсванията, отделните канали са с определени приоритети и първо се обработва заявката с най-висок приоритет. DRQO има най-високия, a DRQ3 и съответно DRQ7 при компютрите АТ имат най-нисък приоритет.

Когато 8237 е в празен цикъл и някой канал поиска DMA обслужване, контролерът изпраща сигнал HRQ (Hold Request) към процесора. Когато процесорът отговори със сигнала HLDA (Hold Acknowledge – потвърждаване на задържането), контролерът поема управлението на адресната шина, шината за данни и управляващата шина и влиза в активен цикъл. В този режим системната шина се използва мултиплексно от DMA контролера и микропроцесора, при което основното управление се изпълнява от контролера на DMA, а микропроцесорът получава достъп до нея за кратки интервали от време за обмен на информация с основната памет.

В активен цикъл се извършва DMA услуга в един от четирите режима: изискващ трансфер; единичен трансфер; блоков; каскаден. При изискващия трансфер (Demand Transfer Mode) обменът се осъществява, докато не се снеме съответната заявка по линията DRЕQ или не се подаде ниско ниво на линията /ЕОР, докато не се получи препълване при DMA обмена или не се появи заявка с по-високо ниво. Така трансферите могат да продължават докато I/O устройството изчерпи капацитета си от данни. При единичния (Single) трансфер устройството прави само един трансфер. При блоковия трансфер устройството се активира чрез DREQ и прави трансфери в блок (например 512 байта), докато се подаде сигнал TC (Termimal Count – завършек на брояча), причинен от брояч на цикли, който е станал нула или външно приключване на процеса (EOP – End Of Process). Каскадния режим се използва при каскадно свързване на втори DMA контролер.

Адресът за първата операция по пренос на данни се появява в два байта – младшите 8 бита – по осемте адресни изходящи линии, а старшите 8 бита - по шината за данни. Съдържанието на шината за данни тогава се превключва към 8-битовия тригер 8282, за да довърши пълните пълните 16 бита на адресната шина. 8282 е високоскоростен, 8-битов, тригер с 3 състояния, в 20-изводен корпус. След началния трансфер, тригерът се актуализира само ако в младшия адресен байт се извърши пренос или заемане от старшия разряд.

Всеки от трите активни трансферни режима може да извършва три различни типа трансфери: четене (Read), записване (Write) и проверка (Verify).

Входният обмен (записването на данни от входно-изходното устройство в паметта) се осъществява по следния начин. Контролерът за DMA извежда адрес на адресната шина и активира линията /MEMW - запис в паметта, и линията /IOR - четене от периферни устройства. Със сигнала /DACK (DMA Acknowledge) тези операции се съобщават на периферното устройство, което може да запише данни на избрания адрес. След това адресният регистър се инкрементира, а броячът - декрементира.

Изходният обмен (четенето) се извършва аналогично, като се използват съответните линии за четене от паметта /MEMR и изход към периферните устройства /IOW.

Проверката прави псевдотрансфери, като работи както четенето или записването, но при неактивни линии на паметта и входно-изходните устройства.

За да не се интерпретира адресът, подаден от DMA контролера, от други периферни устройства като входно-изходен адрес, на линията AEN се подава високо ниво. Ето защо сигналът AEN задължително трябва да се включи при декодирането на всички входно-изходни адреси.

Съществува и един специален трансферен режим за преместване на блокове данни от едно адресно пространство на паметта в друго, наречен „памет към памет” (memory-to-memory). Включването на този режим става чрез програмиране на определен бит в управляващия (командния) регистър. При това се избират канали 0 и 1 да работят като канали за трансфера „памет към памет”. Трансферът започва чрез задаване от софтуера на сигнал DREQ за канал 0. Контролерът 8237 прави заявка за DMA обслужване по нормалния начин. След като HLDA е истина, контролерът използвайки трансфери с 8 състояния в блоков режим, чете данни от паметта. Каналът 0 на регистъра на текущия адрес е източникът за използвания адрес и се декрементира или инкрементира по нормалния начин. Байтът данни, прочетен от паметта, се съхранява във вътрешния временен регистър на контролера. След това каналът 1 записва данните от временния регистър в паметта, използвайки адреса в неговия регистър на текущия адрес, като го инкрементира или декрементира по обичайния начин. Декрементира се регистърът на текущия брой думи на канал 1. Когато броят думи на канал 1 стане нула, генерира се сигналът TC, причиняващ сигнал /EOP, прекратяващ услугата. Канал 0 може да бъде програмиран да задържи същия адрес за всички трансфери. Това позволява единична дума да бъде записана в блок на паметта. 8237 отговаря на външни /EOP сигнали по време на трансферите „памет към памет”. Компараторите на данни в схемите за търсене на блокове могат да използват тези входни сигнали, за да прекъснат услугата, когато е намерено съответствие.

Тема 5.Адреси на входно-изходните портове и адреси на паметта.

5.1Същност на адресното пространство на входно-изходните портове

Системата от входно-изходни адреси води началото си някъде от около 1980 г., но все още се използва. За щастие, на потребителите много рядко се налага да се настройват адреси на портове, тъй като за това се грижи операционната система. Например, някои стари мрежови карти поддържат входно-изходни ад­реси, дефинирани от потребителя

Основното предназначение на входно-изходните портове e да се осъществява комуникация между устройствата и софтуера в системата. Те са еквивалентни на двупосочни радио канали. Ако искате да изпратите данни към вашия сериен порт, трябва да знаете на кой входно/изходен порт (радио канал) той очаква осъществяване на връзка. По подобен начин, ако искате да получите данни от серийния порт, трябва да се "настроите" на същия канал, на който той предава.

За разлика от прекъсванията и DMA каналите, нашите системи разполагат с изобилие от входно/изходни портове - 65535 (числата от 0000h до FFFFh5) - което е резултат от дизайна на процесорите на Intel. Въпреки че повечето устройства използват до 8 порта, с този солиден запас едва ли ще се свършат скоро. Най-големият проблем, за който трябва да се тревожите, е да не установите две устройства да използват един и същи порт.

Повечето модерни plug-and-play системи разрешават всякакви конфликти с препокриващи се портове и избират алтернативни портове за някое от конфликтните устройства.

Едно от големите обърквания се предизвиква от това, че входно/изходните портове са проектирани да използват шестнадесетични адреси, подобно на адресите от паметта. Само че те не са памет; те са портове. Разликата е, че когато изпращате данни към адрес от паметта 1000h, тези данни се съхраняват в SIMM или DIMM паметта. Ако изпратите данни към входно/изходен порт с адрес 1000h, те се изпращат по шината на този "канал" и всеки, който го слуша, ще "чуе"данните. Ако никой не слуша на порт с този адрес, данните достигат края на шината и се абсорбират от терминиращите резистори.

Това, което си взаимодейства с устройствата през най-различни адреси на портове, са драйверните програми. За да може един драйвер да работи с дадено устройство, той трябва да знае кои портове се използват от устройството. Това обикновено не е проблем, защото устройството и драйверът за него обикновено се доставят от една и съща компания.

Таблицата с входно-изходните адреси за­ема „най-долните" (първите) 64 КВ от опе­ративната памет на РС (от 0000h до FFFFh). Входно-изходните адреси спадат към специ­алния „първи мегабайт от RAM. Отделни­те входно-изходни адреси имат различна дължина - до 64 байта.

Драйверите за чипсетите и дънните платки обикновено се установяват така, че да използват адреси на входно/изходни портове от 0h до FFh. Всички останали устройства използват портове с адреси от 100h до FFFFh.

5.2Разлики между адресното пространство на входно-изходните портове и основната оперативна памет.

Макар начинът за достъп до това адресно пространство да се извършва по същите адресни линии (шини), като за паметта, то съществено се различава от паметта:


  • На първо място пространството на I/O портовете е много по-малко. За адресирането им са достатъчни само 16-те младши разряда на адресната шини, което значи, че максималният размер на това пространство може да бъде 64 КВ (216 = 65 536).

  • Друго отличие на пространството на I/O портовете е, че достъпът до него не е затруднен от селекторните и странични механизми за адресация, имащи място при адресацията на основната памет. За адрес на порта е достатъчно едно 16-разрядно число (4 цифри в шестнадесетичен код). Това число може да бъде зададено в кой да е регистър с общо предназначение.

  • Най-същественото отличие на I/O портовете от основната памет се заключава в по нататъшната съдба на данните, които се изпращат към или от портовете. Данните, изпратени към даден порт, не се съхраняват в него, както това става в конвенционалната памет. Тези данни се пренасят към някое устройство, свързано с този порт. Ако се извършва четене от даден порт, то при всяко обръщение към него ще се получават различни данни и то при положение, че в този момент данни се подават към порта от друго устройство. При това, съвпадението на последователността на предаването и приемането на данните не е гарантирано.

5.3Механизъм на използване на входно-изходните портове

И така, когато искате да изпратите ин­формация към вашата мрежова карта, вие я изпращате към един или повече входно-изходни портове, които се намират в определена зона в оператив­ната памет (фиг 1). И мрежовата карта е готова да черпи информация точно от това място веднага щом получи сигнал от контролера за прекъсвания.




фиг. 1. Запазен в паметта вход-изход
РС адресира (има достъп до) всеки байт от оперативната памет. Същото адресиране се използва във входно-изходните портове. Всеки адаптер притежава специфичен RAM адрес - малка част от оперативната па­мет, която е свързана с входно-изходното устройство. Оттам нататък целият ин­формационен обмен към и от устройство­то преминава през тази „пощенска кутия”. Всички входно-изходни устройства притежават специфични „номера на пощенска кутия” - с други думи адрес на порт..

Във Windows XP входно-изходните адреси могат да се видят в Device Manager (дивайс мениджър – администратор на устройствата) чрез избиране на меню View>Resources by type или Resources by connection (фиг. 2):




фиг. 2. Входно-изходни адреси от оперативната памет на РС

Тема 6.Системен таймер. Блокова схема. Основни функции в PC системата.

6.1Предназначение на системния таймер в състава на ПК.

Освен часовника за реално време, всеки компютър съдържа устройство, наречено системен таймер, на англ. PIT - съкращение от Programmable Interval Timer.

При оригиналните модели PC схемата се използва за системен часовник, генератор на звук и за коректно протичане на процеса за опресняване на динамичната памет RAM.

6.2Кратка историческа справка.

На първите компютри се е използвала микросхема Intel 8253. В PC с процесор 286 или по-добър се вгражда схемата 8254, която може да работи с честоти до 10 MHz, но е напълно съвместима със схемата 8253, която работи с честоти до 2,6 MHz. По отношение на вътрешната си структура 8253 и 8254 са идентични. 8254 за разлика от предшественика си разполага и с допълнителна команда (Read Back Command), чрез която е възможно да се прочете актуалното състояние на схемата. Това се оказва особено практично, както ще бъде пояснено по-нататък. Рядко в АТ се вграждат две схеми 8284. В тези случаи първата схема работи както в компютрите PC. От втората схема се използва само един брояч за програмиране на немаскируемото прекъсване (NMI), а двата останали брояча не се използват.

По-късно таймерът, заедно с други компоненти влиза в състава на чипсета, напр. в PIIX4.

Наред с използването в по-старите дънни платки таймерът 8253/54 може да се намери в редица разширителни карти на PC, особено в карти за измервателни системи (карти АЦП – аналогово-цифрово преобразуване, ЦАП цифрово-аналогово преобразуване, таймери), и се смята за стандартна схема за реализиране на функции, свързани с броене и измерване на време.

6.3Блокова схема и принцип на работа

Микросхемите 8253 и 8254 представляват триканални програмируеми броячи-таймери. Вътрешните броячи на микросхемите имат разрядност 16 бита, но връзката с тях е 8-битова. При това може да се задава стойност само на младшия байт на брояча (LSB), само на старшия (MSB) или двата (LSB/MSB), при което отначало се предава младшия, а след това старшия байт.

Схемата на PIT включва три независими един от друг 16-битови броячи (канала), всеки от които има различно предназначение и може да се програмира в един от шестте възможни режима. Броячите разполагат със собствени тактови CLOCK и управляващи (разрешаващи) GATE входове и съответни изходи (OUT).

Входната честота на всички канали е 1,19318 MHz. Таймерът е включен към линия на прекъсване IRQ0 и изработва прекъсване INT 8h приблизительно 18,2 пъти в секунда (точната стойност е 1193180/65536).

На фиг. 1 е показана вътрешната структура на схемата.




фиг .1 Програмируемият таймер разполага с 3 независими брояча
Броячът 0 се използва за подаване на прекъсване от таймера (IRQ 0), което е необходимо за софтуерния часовник на PC 8088/8086.

Броячът 1 управлява опресняването на дина­мичната RAM памет, като подава стробиращ сигнал на брояча 0 на всеки 15 микросекунди.

Броячът 2 се използва за генериране на звук от вградения говорител и за раз­лика от останалите два брояча може да поема и други задачи, напр. генератор на случайни числа.

За всеки таймер се запазват 4 порта. В табл. 1 е показано разпределението на портовете за основния таймер.




Функция

Приложение

Входно-изходен адрес (порт)

Брояч 0

Подаване на прекъсване IRQ 0

40h

Брояч 1

Управление опресняването на динамичната RAM памет

41h

Брояч 2

Генериране на звук

42h

Управляващ регистър

Избор на брояч и управление на режима

43h

Табл .1 Функции и адреси на таймера
Всеки брояч (канал) съдържа регистрите:

  • RS - състояние на канала (8 разряда).

  • RSW – управляваща дума (8 разряда) – Служи за задаване режима на работа на брояча.

  • OL – буферен регистър (16 разряда) – Служи за запомняне на текущото съдържание на регистъра CE без спиране на процеса на броене. След запомняне буферният регистър е достъпен за програмата за четене.

  • CE – регистър на брояча (16 разряда) – Работи в режим на изваждане, като неговото съдържание се намалява при задния фронт на сигнала CLOCK.

  • CR - регистър на константите на преброяването

Резултатите от броенето се записват на първите 3 адреса. За адресиране се използват линиите АО и А1. Четене или запис се задават чрез линиите /WR и /RD.

Схемата се активира с ниско ниво на сигнала /CS. Този сигнал се генерира от схема за декодиране на адресите.

Линиите за данни DO - D8 са свързани директно към шината за данни, защото буферът за данни (Data Bus Buffer) може да се включва във високоомно състояние (Tri-State) чрез сигнала /CS. Чрез съответния разрешаващ вход (GATE) броячът може да се стартира, да се спре или да се установи в на­чално състояние. Тактът се подава на входа CLK. Състоянието 0 на брояча може да се определи по изхода (OUT).



Чрез управляващия регистър (Control Word Register) се определят режимът на работа и активният брояч, както и начинът за запис и четене на съдържанието на броячите и форматът за преброяване (двоичен или BCD -двоично-десетичен6), с който трябва да работят. На фиг. 2 е показана организацията на регистрите на управляващия регистър и режимите, в зависимост от стойностите на клетките.


D7

D6

D5

D4

D3

D2

D1

D0

SC1

SC0

RL1

RL0

M2

M1

M0

BCD




























стойност на BCD

режим на брояча

0

двоично-десетичен (BCD) брояч – числа до 9999

1

двоичен брояч – числа до 65536




M2

M1

M0

Режим на брояча

0

0

0

Режим 0 – Прекъсване IRQ 0 при достигане на нула от брояча

0

0

1

Режим 1 – Чакащ мултивибратор

х

1

0

Режим 2 - Генератор на импулси. Каналът изпълнява функция на програмируем делител на входната честота

х

1

1

Режим 3 – Генератор на правоъгълни импулси – тип „меандър” (основен режим) – използва се в канали 0 и 2

1

0

0

Режим 4 – Програмно стартиран моновибратор (софтуерно управляван стробиращ импулс)

1

0

1

Режим 5 – Апаратно стартиран моновибратор (хардуерно управляван стробиращ импулс)




RL1

RL0

Функция

0

0

Съхраняване състоянието на брояча

0

1

Четене/запис на старшия бит

1

0

Четене/запис на младшия бит

1

1

Четене/запис първо на младшия, а после на старшия бит




SC1

SC0

Задаване на активен брояч

0

0

Брояч 0

0

1

Брояч 1

1

0

Брояч 2

1

1

Забранено

фиг. 2 Управляващ регистър




Сподели с приятели:
1   2   3   4   5   6   7




©obuch.info 2024
отнасят до администрацията

    Начална страница