литература / Пухальский Проектирование микропроцессорных систем 2001
.pdf170
Микроконтроллер (от/на)
B D O
BDo<-
ЯХ>1 *-
B D 2
b d 2 «“
BD3 <~
BD4 +-
BDs
BDg
BD7 *-
АСК ----
(от I/O )
STB -
(от I/O')
BD0 -
BDZ -
Глава 2. Методы ввода-вывода
|
|
555ИР23 * Output Buffer |
|
|
|
|
|
D |
|
6 |
|
I/O |
(от/на) |
|
|
RG |
г>п |
|
||
|
|
|
|
|
У D0 |
|
|
|
|
|
|
|
|
|
|
|
п |
|
|
>D1 |
|
|
|
|
|
>D2 |
|
|
4 |
|
3 |
|
|
|
|
|
|
-+D 3 |
|||
|
5 |
|
4 |
|
-»D4 |
|
|
б |
|
5 |
|
-►.Ds |
|
|
7 |
|
б |
|
->D6 |
|
|
>с |
|
1 |
|
->•07 |
|
|
|
|
|
|
|
|
ЬОЕ |
|
|
555ИР23 - Inpul Buffer |
|||
|
|
D |
Ъ |
|||
|
|
|
|
|||
|
555TM2 |
|
П |
по |
||
|
|
1 |
RG |
и |
||
Т S |
Г |
|
? |
|
1 |
|
|
з |
|
|
|||
- |
D |
|
|
4 |
|
3 |
|
>С |
|
|
5 |
|
4 |
|
|
о |
|
6 |
|
5 |
|
|
|
|
7 |
|
6 |
|
|
|
|
>с |
|
7 |
|
|
|
|
|
|
|
|
|
|
|
OE, |
|
|
|
|
|
|
>ОЕ |
|
|
|
|
|
|
571ХЛ5 |
|
|
|
|
|
|
D |
Ъ |
|
■ f i |
|
- |
BD |
DO |
|
|
|
0 |
|
||||
|
- |
1 |
0 |
|
||
|
|
|
|
|||
555TM8 |
|
|
|
|
||
г» |
RG |
Q |
INTE 7 |
|
|
|
и |
и |
|
|
|
||
1 |
|
с |
|
|
u |
На МП |
2 |
|
1 |
HITES' |
|
- » IRQ |
|
3 |
|
■1 |
|
|
|
|
|
|
|
|
|
Ha I/O |
|
|
|
|
|
|
|
|
>Д |
|
3 |
|
|
|
-+ O BF |
|
|
|
|
|
-+ IB F |
|
Рис. 2.17. Принципиальная схема приемопередатчика
П рограммный ввод-вывод с квитированием по прерыванию . Для ввода и вывода N-байтовых блоков данных можно использовать запрос прерывания, указывающий МП о го товности внешнего устройства передать или принять блок данных, и программный ввод-вывод с квитированием для согласования разной скорости работы МП и внешних устройств. Принци пиальная схема приемопередатчика для обмена данными по такому методу между МП и внеш ним устройством, имеющим двунаправленную шину данных, изображена на рис. 2.17. Основ ная часть этого приемопередатчика соответствует схеме, изображенной на рис. 2.10. Раздель ное маскирование запросов прерывания IRQ для ввода и вывода выполнено на регистре памяти 555ТМВ и трех логических элементах. Сигнал запроса прерывания
IRQ = INTEi ■IBF v INTEq ■OBF = 1,
если входной буфер заполнен (IBF = 1) или выходной буфер пустой (O BF = 1) при условии, что прерывания разрешены (INTEt = 1, INTE0 = 1). Разрешением и запретом прерываний (INTE, = О,
2.4. Ввод-вывод по прерыванию |
171 |
INTE0 = 0) управляет МП. Запрос прерывания IRQ можно подать, например, на вход RST 7.5
МП 8085.
Задача 1. Написать подпрограмму ввода и вывода 8-байтовых блоков данных из микро контроллера во внешнее устройство по его запросу прерывания. Решение:
|
PUSH |
PSW |
; Начало подпрограммы обслуживания прерываний |
|
|
|
PUSH |
H |
; Сохранение в стеке состояния прерванной (основной) программы |
||
|
PUSH В |
|
|
|
|
|
IN |
CSFL |
А <— HO(CSFL) - IBFOBFxx хххх — чтение флагов (CSFL = 0 на |
||
|
ANI |
80h |
80h = 1000 0000 — маска для выделения флага IBF |
рис. 2.17) |
|
|
JNZ |
LIN1 |
Переход на выполнение ввода |
|
|
|
LXI |
H, Aout |
Aout — адрес первой ячейки памяти данных для вывода |
|
|
|
MVI |
C, 8 |
С <— 8 — число байт в блоке данных |
|
|
|
IN |
CSFL |
А <— I/0(CSFL) — чтение флагов (CSFL = 0 на рис. 2.17) |
|
|
|
ANI |
40/i |
40h = 0100 0000 — маска для выделения флага OBF |
|
|
|
JZ |
LOUT |
Переход, если OBF = 0 — выходной буфер занят |
|
|
|
MOV |
A, M |
|
|
|
|
OUT |
CSDT |
; IIO(CSDT) <— А — вывод байта данных в буферный регистр |
||
|
INX |
H |
; |
Output Buffer (CSD T = 0 на рис. 2.17) |
|
|
DCR |
С |
|
|
|
|
JNZ |
LOUT |
|
|
|
|
JZ |
LEND |
Ain — адрес первой ячейки памяти данных для ввода |
|
|
LIN1: |
LXI |
H, Ain |
|
||
|
MVI |
C, 8 |
С <— 8 — число байт в блоке данных |
|
|
LIN2: |
IN |
CSFL |
А <— IIO(CSFL) — чтение флагов (CSFL = 0 на рис. 2.17) |
|
|
|
ANI |
80h |
80h = 1000 0000 — маска для флага IBF |
|
|
|
JZ |
LIN2 |
Переход, если IBF = 0 — входной буфер пустой |
|
|
|
IN |
CSDT |
А |
<— I/0(CSDT) — ввод байта данных из буферного регистра |
|
|
MOV |
M, A |
|
Input Buffer (CSDT = 0 на рис. 2.17) |
|
|
INX |
H |
|
|
|
|
DCR |
С |
|
|
|
|
JNZ |
LIN2 |
|
|
|
|
POP |
В |
; Восстановление состояния прерванной программы |
|
|
|
POP |
H |
|
|
|
|
POP |
PSW |
|
|
|
|
El |
|
; Разрешение прерываний |
|
|
|
RET |
|
; Конец подпрограммы обработки прерывания |
|
|
В этой подпрограмме символические имена CSFL и CSDT адресов портов соответствуют сигналам CSFL и CSDT на рис. 2.17. Рассмотренный приемопередатчик может быть использо ван и для обмена данными между двумя микроконтроллерами, или микроконтроллером и пер сональным компьютером. В этом случае флаги IBF и OBF на второй микроконтроллер или персональный компьютер подаются по шине данных.
М ногорежимный буферный регистр 8212. Для увеличения функциональных возможно стей и гибкости использования регистров памяти в них вводится дополнительная управляющая логика. Регистры памяти 8212 фирмы Intel (589ИР12) и 74F412 (рис. 2.18, а), построенные на основе D-L-Л-триггеров с приоритетом входа L [5] называются многорежимными буферными регистрами (Multi Mode Buffered Latches). Данные ИС предназначены для использования в МП-системах для выполнения обмена данными между МП и периферийными устройствами.
172 |
|
|
Глава 2. Методы ввода-вывода |
|
|
|
|
|
|
|
б) |
D |
RG |
|
|
|
|
|
DIq - |
0 |
DO |
|
|
|
|
|
|
-DO0 |
|||
|
|
|
Dl! ■ |
1 |
|
0 |
|
а) |
|
|
STB ■ |
|
|
1 |
- DO i |
|
|
|
♦ |
|
* |
|
|
|
|
|
Dlq |
7 |
|
|
|
8212, S N 7 4 F 4 1 2 |
|
♦ |
|
||||
|
|
|
7 |
- DO-j |
|||
a s T [ J |
24 |
1 Vcc |
MD - |
|
|
|
|
|
L |
|
|
|
|||
m d L 2 |
23 |
I W f |
CLR |
R |
|
|
|
doC3 |
22 |
]D 6 |
|
|
|
||
DOO[ 4 |
2! |
]D 0 6 |
OE |
OE |
|
|
|
DlC 5 |
20 |
]D 6 |
DSi —1} & |
|
|
|
|
|
|
|
|
||||
DOlC 6 |
19 |
]D 0 6 |
D S2 |
|
|
|
|
D 2i 7 |
18]D 5 |
Г |
|
|
1 6 — INT |
||
D 0 2 [ 8 |
17 |
]D 0 5 |
|
|
|||
|
|
|
|
|
|||
D3[ 9 |
16 ]£)4 |
|
|
|
|
|
|
D03C 10 |
15 |
1D04 |
|
|
|
|
|
s t b Z 11 |
14 |
1CLR |
|
|
|
|
|
g n d Z 12 |
13 |
]D S2 |
|
|
|
|
|
Рис. 2.18. Многорежимный буферный регистр 8212
Структурная схема ИС 8212 изображена на рис. 2.18, 6 и состоит из 8-разрядного регистра памяти RG, триггера запроса прерывания Т и схемы управления режимами работы. Для управ ления регистром памяти используются сигналы: D S {, DS2 (Device Select) — селекция регистра,
STB — строб, MD {Mode) — режим, CLR {Clear) — сброс, INT (Interrupt Request) — запрос пре рывания.
Функционирование регистров памяти определяется функцией переходов D-L-Л-триггера с приоритетом входа L [5]:
Q, = Dr ■L v Q,. • L v CLR, L = STB ■MD v DStDS2 ■MD, |
:0, 1, ..., 7, |
где Qr — выходные сигналы триггеров, L — мультиплексная функция с адресным сигналом M D , позволяющая организовать загрузку данных от внешнего устройства сигналом STB при M D = 0 (ввод данных) или от микропроцессора сигналом D S\D S2 = I/OW ■CS при M D = 1 (вы вод данных). Управление выходами регистра D O r осуществляется сигналом ОЕ = M D v D SiDS2 в соответствии с соотношением
jQ r при ОЕ - 1,
DO r
IZ - состояние при ОЕ = 0.
Сигнал запроса прерывания описывается функциями:
1 Ш = Q ■DSiDSi, Q+ = S v Q ■dSTB = D StDS2 v CLR v Q ■dSTB.
При использовании ИС 8212 в качестве буферного регистра ввода данных по прерыванию
следует положить MD |
= 0, Dr - D lr — разряды байта |
данных |
от внешнего устройства, |
D O r = DBj_ — разряды |
байта данных, поступающие в |
МП по |
системной шине данных, |
D S{ = I/OR — сигнал чтения буферного регистра ввода, DS2 = CS — сигнал с дешифратора ад реса буферного регистра ввода (рис. 2.19, а). Сигнал сброса CLR можно не использовать, т. е. можно положить CLR = 1. На основании вышеприведенных соотношений буферный регистр ввода описывается функциями:
|
|
2.4. Ввод-вывод по прерыванию |
173 |
||||
а) |
|
|
|
я ; 7_о |
х |
v a l id т |
|
О т I /O |
Input Buffer |
|
|
||||
|
|
|
|
|
|
|
|
W 7 - 0 O |
D |
DO = > ^ 7 -0 |
STB |
|
I |
|
|
ST B -------» STB |
|
|
|
|
|
|
|
г ~ |
MD |
|
|
IN T j |
|
|
|
|
|
CS |
|
|
|
||
JTOR------* >DS1 |
< |
М т |
|
|
|
||
C S -------> DS2 |
|
|
J/OR |
|
|
|
|
|
>CLR |
|
|
|
|
|
|
l J |
|
|
OE = I/OR-CS |
|
|||
|
|
|
|
D B 7_o |
|
2 -State |
|
|
|
|
|
|
|
|
|
6) |
|
|
Ha I /0 |
D Bt - о |
X |
v a l i d " ' ) T |
|
Output Buffer |
|
||||||
D*7. 0I=£> D |
DO =>S7-0 |
OS'__ I |
|
|
|
||
A C K — |
STB |
|
|
1лж |
|
|
|
1— MD |
|
|
|
|
|
||
|
|
|
|
|
|
||
I/OW - |
DS i |
< |
|
67-0. |
|
|
|
cs- |
DS2 |
|
|
|
|
|
|
1о .
CLR
лсх
Рис. 2.19. Буферные регистры ввода и вывода
О т/н а М П |
Output Buffer |
|
|
|
|
07-0 |
|
|
D |
DO |
67-O |
|
1 — MD STB |
ACK |
|
I/O W - |
|
INTfy |
|
C S ’ |
DS2 |
I/O |
|
|
CLR |
||
|
|
||
|
Input Buffer |
|
|
|
|
D l7-0 |
|
|
DO |
D |
^7-0 |
|
MD STB |
5TB |
|
I/O R - |
$ D S \ INT< |
|
|
|
DS2 |
|
|
|
1 - 4 C L R |
INT 1 |
IN Tq |
|
|
||
Рис. 2.20. Буферный регистр ввода-вывода |
|||
С ; = Dl, ■STB v Q, ■STB, r = 0, |
1, ..., 7; |
INT, = Q ■I/OR ■CS, Q = I/OR ■CS v Q ■dSTB, |
|
\Qr при l / O R C S = |
1, |
||
DBr = \
[Z - состояние при I / OR CS = 0,
где INT, — сигнал запроса ввода данных.
При использовании ИС 8212 в качестве буферного регистра вывода данных по прерыва нию следует положить MD = 1, D, = DBr — разряды байта данных МП, поступающие на сис
174 |
Глава 2. Методы ввода-вывода |
темную шину данных, D O r — разряды байта данных для внешнего устройства, D S i = I /O W — сигнал записи в буферный регистр вывода, DS2 = CS — сигнал с дешифратора адреса буферно го регистра вывода (рис. 2.19, б). Сигнал сброса CLR можно не использовать, т. е. можно поло жить CLR = 1. На этом основании буферный регистр вывода описывается функциями:
Q* = DBr ■I/OW ■C S v Q r ■HOW ■CS, r = 0, 1, ...,7 ;
I n T o = Q ■HOW CS, Q+ = I/OW ■C S v Q ■dACK, D O r = Qr,
где INT0 — сигнал запроса вывода данных.
На рис. 2.20 изображена структурная схема устройства ввода-вывода (I/O) с двумя буфер ными регистрами 8212. Неактивный уровень (1) сигналов запроса прерывания INT, и INT0 ус танавливается при чтении и записи данных командами IN port и OUT port, генерирующими значения сигналов I/OR = 0, HOW = 0 и CS = 1.
2.5. Ввод-вывод по прямому доступу к памяти
При использовании программного ввода-вывода без квитирования затрачивается десять тактов на выполнение команд IN port и OUT port, причем данные либо принимаются, либо выдаются аккумулятором МП. Ввод-вывод с квитированием требует еще больших затрат вре мени. Ввод-вывод по прерыванию осуществляется с помощью вызываемой подпрограммы об работки прерывания, в которой собственно ввод и вывод реализуются командами IN port и OUT port, т. е. программным способом. При использовании микроЭВМ в радиотехнических системах требуется, как правило, работа в реальном масштабе времени (скорость поступления вводимой информации определяется радиосигналами, поступающими на приемное устройст во). В этих условиях может оказаться, что программный ввод-вывод даже без квитирования не
способен |
обеспечить ввод последовательно поступающих байтов данных, |
тем более что тре |
буется еще выполнение дополнительных команд для пересылки данных |
из аккумулятора |
|
в память. |
|
|
Значительно ускорить пересылку данных позволяет метод ввода-вывода по прямому дос тупу к памяти (Direct Memory Access — DMA), реализуемый с помощью специальных контрол леров DMA (DMAC), например, 8257 (580ВТ57). На один цикл DMA (пересылка одного байта данных) затрачивается всего четыре такта, причем данные записываются непосредственно в память или читаются из памяти с автоматическим инкрементом адреса. Ввод-вывод по пря мому доступу к памяти целесообразно использовать также при пересылках больших массивов данных между системной и внешней памятью, например, при использовании в микроЭВМ в качестве внешней памяти накопителей на гибких магнитных дисках (НГМД) или НМД типа винчестер (на жестких дисках).
Принцип работы DMAC. Структурная схема МП-системы с вводом-выводом по прямому доступу к памяти, изображенная на рис. 2.21, поясняет прямые пересылки между системной и внешней памятью (I/O), реализованной на таких же БИС, что и системная память. Здесь пред полагается, что все DMA-операции производятся по командам, поступающим от МП (без за проса DMA от внешней памяти).
Любой контроллер DMA работает в двух режимах — пассивном и активном:
впассивном режиме DMAC является для МП обычным внешним устройством (системны ми шинами управляет МП, а шины контроллера DMA находятся в Z-состоянии);
вактивном режиме DMAC является специализированным процессором ввода-вывода (системными шинами управляет DMAC, а шины МП на это время переводятся в Z-состояние).
2.5. Ввод-вывод по прямому доступу к памяти |
175 |
Рис. 2.21. Структурная схема МП-системы с вводом-выводом по прямому доступу к памяти
В активном режиме DMAC выдает активные уровни пар сигналов MEMR = 0 и H O W = О
при пересылке каждого байта данных типа I/O <г- М |
и MEMW - 0 и I/OR = 0 при пересылке |
типа М I/O. |
|
В пассивном режиме DMAC производится его |
инициализация — запись во внутренние |
регистры начального адреса системной памяти Abeg и объема АА пересылаемого массива дан ных с указанием типа DMA-пересылок (направления передачи данных). В адресный счетчик Counter внешней памяти МП также загружает некоторый начальный адрес. Далее МП подает в DMAC специальную команду, которая вызывает последовательность действий:
HRQ J => HLDA J |
(МП перевел свои шины в 2-состояние) => |
=> D AC K |
LTLTLT ... TTU (до конца пересылок) => HRQ Т__=> HLDA 1___ |
Если использовать 40-разрядный адресный счетчик Counter, то объем соответствующей внешней памяти (электронного диска) будет равен 1 Тбайт (1 099 511 627 776 х 8 бит).
П ринципиальная схема электронного диска. На рис. 2.22 изображены временные диа граммы для случая пересылки двух байт данных, поясняющие работу электронного диска, принципиальная схема которого приведена на рис. 2.23. Контроллер DMA выполнен на основе БИС 8257. Длительность одного цикла DMA при значении сигнала READY = 1 равна 4 • Та к , скорость пересылки данных — 500 Кбайт/с при частоте тактового сигнала CLK = ф2, равной 2 МГц.
Для управления электронным диском использован канал 0 при значении сигнала DRQ0 = 1 (циклы DMA выполняются по инициативе МП, выдающего в DMAC определенное слово управления). В пассивном режиме DMAC микропроцессор командами OUT 90h и OUT ОАОh записывает в счетчики 555ИЕ7 начальный 16-разрядный адрес внешней памяти, которая ис пользуется для обмена данными с системной памятью — для этого специально следует исполь зовать синхронные счетчики с асинхронной потенциальной загрузкой данных [5].
176 |
Глава 2. Методы ввода-вывода |
Рис. 2.22. Временные диаграммы циклов DM АС
ЕА: 4 5 6 1
Ц2/С1К
1533АП5
DI |
BD |
Ъ |
0 |
DO |
|
1 |
|
0 |
т |
|
1 |
3 |
|
2 |
|
|
3 |
ЮЕ |
|
|
15ЭЗИРЗЗ |
|
|
Df |
$ |
|
0 |
RG DO |
|
1 |
П |
>ВА 8 |
? |
1 |
У ВА g |
- Ч |
2 |
> В А Ю |
4 |
3 |
УВА^ |
5 |
4 |
> ВА-12 |
6 |
5 |
> ВА 13 |
7 |
6 |
> ЙЛ14 |
|
7 |
> BA-ts |
I
W E
Уз System Address Bus
RESET
HLDA
Рис. 2.23. Принципиальная схема электронного диска
|
2.5. Ввод-вывод по прямому доступу к памяти |
111 |
|||||||||
|
Таблица 2.4. Адресация внешних устройств |
|
|||||||||
|
Разряды адреса |
Выход |
Адреса |
ИС |
|
||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
DMX |
портов |
|
|
|
|
||||||||||
1 |
0 |
0 |
0 |
х |
х |
х |
х |
0 |
8 0 - 8 F |
580ВТ57 |
|
1 |
0 |
0 |
1 |
х |
х |
х |
х |
1 |
9 0 - 9 F |
1533ИЕ7 |
|
1 0 |
1 |
0 |
х |
х |
х |
х |
2 |
АО н- AF |
1533ИЕ7 |
|
|
l |
x |
x |
x |
x |
x |
x |
x |
Он-7 |
8 0 - F F |
1533АП6 |
|
Рис. 2.23 (продолжение)
12 Г. И. П ухальский
178 Глава 2. Методы ввода-вывода
Адресация внешних устройств МП приведена в табл. 2.4. Сигнал CSBD включения прие мопередатчика 1533АП6 описывается выражением
CSBD = ВАп ■A EN ■D A C K 0 v IOR ■IOW = (BA1 ■AEN v D A C K 0 ) • (IOR v IOW),
из которого следует, что в пассивном режиме работы D M A C (сигнал AEN = 0) приемопередат чик включается значением разряда адреса ВА-) - 1, а в активном режиме — значением сигнала DACKu = 0. Контроллеры прямого доступа к памяти 8257 (580ВТ57) и 8237 (1810ВТ37) описа ны в § 3.6.
2.6. Память типа FIFO
Память типа FIFO (First-In, First-Out — первый вошел, первый вышел) позволяет выпол нять запись и чтение данных независимо друг от друга с независимыми скоростями передачи данных при сохранении последовательности загрузки и выгрузки слов данных (запись и чтение данных можно производить и одновременно). Эти свойства обусловливают широкое использо вание FIFO в качестве буферной памяти при обмене данными между МП-системами.
Принципы организации FIFO. Большинство выпускаемых FIFO п х т бит, где п — чис ло слов, т — число разрядов в слове, имеют, по крайней мере, два флага: EMPTY и FULL. Эти флаги позволяют идентифицировать два крайних состояния FIFO: EMPTY = 0 — FIFO пустое и FULL = 0 — FIFO полное (рис. 2.24). Попытка записи слова данных в полностью загружен ное FIFO (FULL = 0) называется переполнением FIFO, а чтение слова данных из пустого FIFO (EMPTY = 0) — переопуспгошением (антипереполнением) FIFO. Естественно, флаги использу ются для квитирования вывода и ввода данных с целью исключения потери передаваемых дан ных (флаг FULL) и приема ложных данных (флаг EMPTY).
Если FIFO имеет только флаги EMPTY и FULL, то для исключения ошибок при выводе и вводе данных квитирование необходимо производить для каждого слова данных, что значи тельно снижает скорость их передачи. Поэтому FIFO с большой глубиной (большим числом п хранимых слов данных) снабжаются еще флагом HF (Half-Full Flag) — половина FIFO запол нена (HF = 1, когда FIFO загружено не менее чем наполовину). Обнаружение значения флага HF = 0 позволяет передающей МП-сисгеме без опасности переполнения передать без побайт ного квитирования блок данных размером в половину глубины FIFO (п/2), а обнаружение зна чения флага HF = 1 позволяет принимающей МП-системе без опасности переопустошения принять без побайтного квитирования блок данных такого же размера. Флаг HF целесообразно использовать в качестве сигнала запроса прерывания для вызова подпрограмм вывода и ввода без квитирования блока данных размером не более половины глубины FIFO. Например, сле дующий фрагмент подпрограммы выполняет ввод п/2 байт данных при п = 2048:
FULL |
HF |
Ш Р ТГ |
|
|
|
|
|||
|
FIFO |
ОЕ |
|
|
МП-система 1 Данные |
Данные |
МП-скстема 2 |
||
п х т б и т |
||||
|
|
> |
||
WR |
|
RD |
||
|
|
|||
> |
|
< |
|
iA F/ЛЕ
Рис. 2.24. Использование FIFO в качестве буферной памяти
|
|
2.6. Память типа FIFO |
179 |
|
LXI |
H, a__beg |
гр Н |
a jb e g — начальный адрес системной памяти |
|
LXI |
B , 1024 |
гр В |
1024 = п/2 — половина глубины FIFO |
|
Ll: IN |
port_F |
А <— I/O(port_F) — ввод байта данных из FIFO |
|
|
MOV |
M, A |
M(rp Н) <— А |
|
|
INX |
H |
|
|
|
DCX |
В |
|
|
|
MOV |
A, С |
|
|
|
ORA |
В |
|
|
|
JNZ |
Ll |
; Переход, если ВС Ф0 |
|
|
Некоторые FIFO снабжаются дополнительными флагами, идентифицирующими другие состояния FIFO (например, флагом AF/AE — Almost-Full/Almost-Empty Flag — почти пол ное/почти пустое FIFO). Такие флаги позволяют МП-системам при противоположных значе ниях флага HF без опасности переполнения и переопустошения передавать и принимать без побайтного квитирования блоки данных меньшего размера, чем половина глубины FIFO.
Разработано несколько методов построения FIFO п х т бит. Лучшими динамическими характеристиками обладает метод, основанный на использовании двухпортового оперативного запоминающего устройства SRAM (Static Random Access Memory) с Z-cостоянием выходов, двух кольцевых «-разрядных адресных счетчиков (один для адресации записи, а другой для адресации чтения) и цифровых компараторов адресных сигналов, вырабатывающих флаги. Со стояния адресных счетчиков изменяются при записи (WR =-П -) и чтении (RD = Л _ ) каждого
слова данных. При чтении следует подать значение сигнала ОЕ = 1 |
(при ОЕ = 0 выходы данных |
||||||||
находятся в Z-состоянии). Таким образом, FIFO — это безадресная память, так как извне ад |
|||||||||
ресные сигналы не подаются, а вырабатываются внутри самого FIFO, т. е. FIFO для МП явля |
|||||||||
ется обычным внешним устройством. |
|
|
|
|
|
|
|||
В табл. 2.5 представлены FIFO, выпускаемые фирмой Texas Instruments Inc. |
|
||||||||
|
Таблица 2.5. FIFO фирмы Texas Instruments |
|
|||||||
ИС |
Объем |
F, |
Тип |
FULL |
HF |
AF/AE |
Технология |
Число |
|
памяти |
МГц |
E M PTY |
выводов |
||||||
|
|
|
|
|
|||||
‘222A |
|
10 |
|
- |
- |
- |
LS |
20 |
|
‘224A |
16 х 4 |
10 |
и |
+ |
- |
- |
LS |
16 |
|
‘232В |
|
40 |
|
+ |
- |
- |
ALS |
16, 20 |
|
‘225 |
1 6 x 5 |
10 |
и |
+ |
- |
- |
S |
20 |
|
‘233В |
40 |
+ |
- |
- |
ALS |
16, 20 |
|||
|
|
||||||||
‘236 |
64 х 4 |
30 |
и |
+ |
- |
- |
ALS |
16 |
|
‘2226 |
Два FIFO |
22 |
С |
+ |
+ |
- |
A C T |
24 |
|
‘2227 |
64 х 1 |
60 |
+ |
+ |
- |
28 |
|||
|
|
||||||||
‘2228 |
Два FIFO |
22 |
с |
+ |
+ |
- |
A C T |
24 |
|
‘2229 |
256 х 1 |
60 |
+ |
+ |
- |
28 |
|||
|
|
||||||||
‘2232А |
6 4 x 8 |
40 |
и |
|
|
|
ALS |
24, 28 |
|
‘2233А |
6 4 x 9 |
40 |
и |
|
|
|
ALS |
28 |
|
‘7200L |
256 x 9 |
- |
и |
|
|
|
A C T |
28, 32 |
|
‘7201L4 |
5 1 2 x 9 |
— |
и |
|
|
|
A C T |
28, 32 |
|
‘7221 IL |
|
|
|
|
32 |
||||
|
|
в |
|
|
|
|
|||
‘2235 |
IK х 9 |
50 |
+ |
+ |
+ |
A C T |
44, 64 |
||
12*
