Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
265
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ГЛАВА 4 МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

219

clr

TimeH

 

clr

Flags

 

clr

PWL

 

Idi

A,$0

указатель стека SP= $DF

out

SPH,A

 

Idi

A,$DF

 

out

SPL.A

 

Idi

A,$5

;запускаем таймер TO, CK/128

out

TCCRO.A

 

Idi

A,$21

[таймер T1, PWM 8 bit,

 

 

;очищается по совпадению

out TCCR1A.A

;при счете вверх

 

Idi

A,$1

;запускаем таймер Т1, Ск/1

out

TCCR1B.A

 

Idi

A,$5

;разрешим прерывания

out

TIMSK.A

;от Т0.Т1

 

sbi

DDRB,6

; ОС1В - выход

sei

 

;разрешим все прерывания

;Рабочий цикл программы, ничего не делаем,

Work:

rjmp Work

Процедура прерывания по переполнению таймера ТО

IntTO:

push А

 

Idi A.RIdO

 

out

TCNTO.A

[перезагрузим таймер

in

A,SREG

[сохраненим SREG

adiw Timel_,4

;Time:=Time+4 ms

brcc

itN 1

 

inc

TimeH

 

itN 1:

 

[восстановление SREG

out SREG,A

pop

A

 

reti

 

 

;** Процедура прерывания по переполнению таймера Т1 *****

IntTI:

 

 

push

А

 

push

В

 

in A,SREG

; сохранение SREG

Idi В, 1

; один дискрет

sbrc

Flags,PwmDown

 

rjmp

itDec

;если PwmDown=1,

 

 

[будем уменьшать

add

PWL, В

[если PwmDown=0, то

mov

В,PWL

[наращиваем PWL на дискрет

 

cpi В, PWmax

; достигли верхней границы?

brcs

itWr

;при PWL > PWmax

220

 

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

sbr

 

Rags,(1 «Pw m Dow n)

; то PwmDown:=1

idi

B.Pwmax

; PWL := PWmax

mov

PWL, В

 

rjmp

itWr

 

itDec:

 

 

 

sub

 

PWL, В

 

brcc

itWr

; если PWL<0

cbr

 

Rags,(1<<PwmDown)

; to PwmDown :=0

d r

PWL

 

itWr:

 

 

 

out OCR1BL.PWL

 

out

 

SREG,A

; восстановление SREG

pop

 

В

 

pop

 

A

 

reti

 

 

 

В начале программы описаны константа и переменные, т.е. значению константы и адресам регистров присвоены символические имена. В про­ грамме обращение к этой константе и переменным производится по при­ своенным именам.

Основная часть программы начинается с таблицы переходов системы сброса и прерываний. Собственно программа начинается с адреса $30 об­ нулением используемых регистров и загрузкой в указатель стека исход­ ного адреса $DF. Далее загрузкой регистров управления для таймера 0 указывается коэффициент деления тактовой частоты, а для таймера 1 указывается режим 8-разрядного ШИМ с низким уровнем выходного сигнала при совпадении (счетчика и уставки) и счете вверх. Тактовая частота для таймера 1 определена равной СК (системная частота). За­ грузка регистра TIMSK кодом $05 разрешает прерывания по переполне­ нию таймеров 0 и 1, а установка бита 6 регистра направления DDRB оп­ ределяет вывод PORTB.6 как выход. В конце основной программы выво­ ды порта В определяются как выходы и устанавливается общий флаг разрешения прерываний. Далее программа зацикливается и все действия выполняются по запросам прерываний от таймеров 0 и 1.

Процедура обработки прерывания по переполнению Таймера 0 начи­ нается с сохранения в стеке регистра A (R16), затем через регистр А пе­ резагружается счетный регистр таймера 0 (TCNT0) и далее в регистре А сохраняется содержимое SREG. После этого программный счетчик, включающий регистры TimeL, TimeM и TimeH, увеличивается на одно значение (4 мсек). Командой ADIW к 16-разрядному слову в младших двух регистрах прибавляется значение дискрета, при возникновении пе­ реноса инкрементируется старший байт в регистре TimeH. При таком подходе программный счетчик, работающий очень долго, является дейст­ вительно счетчиком реального времени, т.е. в нем всегда находится теку­ щее значение времени в миллисекундах от момента его запуска. Реальное время в миллисекундах обеспечивается соотношением тактовой частоты,

ГЛАВА 4. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ ATMEL С АРХИТЕКТУРОЙ AVR

221

коэффициента ее деления для таймера 0 и константы перезагрузки тай­ мера 0. В завершение процедуры восстанавливаются значения SREG и регистра А.

Процедура обработки прерывания по переполнению Таймера 1 начи­ нается с сохранения в стеке регистров А и В, далее в регистре А сохраня­ ется содержимое SREG, а в регистр В помещается значение дискрета из­ менения порога (1). Управление ШИМ начинается с анализа флага PwmDown (R23.4). Если флаг установлен («гармошка» сжимается), то осуществляется переход на метку itDec, где из значения PWL вычитается дискрет и при отсутствии заема новое значение заносится в регистр срав­ нения OCR1B, изменяя порог и ширину импульса. При возникшем заеме флаг PwmDown сбрасывается, PWL обнуляется и заносится в регистр сравнения OCR1B. Если флаг PwmDown сброшен («гармошка» растяги­ вается), то к значению PWL прибавляется дискрет, новое значение срав­ нивается в верхней границей (если меньше границы, устанавливается флаг С) и если значение меньше границы, новое значение заносится в регистр сравнения OCR1B, изменяя порог и ширину импульса. Если зна­ чение вышло за верхнюю границу, флаг PwmDown устанавливается (пе­ реход на уменьшение), значение PWL приравнивается к верхней границе (PWL = PWmax) и новое значение заносится в регистр сравнения OCR1B. В конце процедуры восстанавливаются значения SREG и реги­ стров В и А.

ГЛАВА 5

ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

5 .1 . Основные семейства ПЛИС фирмы Altera

Программируемые логические интегральные схемы (ПЛИС, англ. pro­ grammable logic devices - PLD) применялись в начале в составе микро­ процессорных систем для замены стандартной логики, выполнявшей вспо­ могательные функции. Микропроцессорная техника в это время домини­ ровала, поскольку для нее был найден ясный инженерный подход к про­ ектированию систем. Разработчики быстро освоили магистрально­ модульную структуру аппаратных средств на основе ведущего микропро­ цессора и подчиненных ему интерфейсных БИС. Создание прикладных программ осуществлялось известными методами и средствами, использо­ вался ранее накопленный багаж знаний. Затруднения имели место на этапе комплексной отладки аппаратуры и программного обеспечения в реальном масштабе времени, но они были преодолены созданием метода внутри­ схемной эмуляции и комплексов инструментальных средств на основе эму­ ляторов. Появление персональных компьютеров дало дополнительное ус­

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

223

корение процессу обучения специалистов интегрированным методам проек­ тирования аппаратуры и программ.

Основные трудности при развитии идеи ПЛИС (как идеи свободного проектирования и изготовления разработчиком произвольного цифрового устройства) заключались в невозможности использования простого инже­ нерного подхода и необходимости создания новых математических методов синтеза цифровых структур в некотором элементном базисе на основе опи­ сания целевой логической функции. Требовалось во взаимосвязи решить следующие задачи:

определить элементный базис ПЛИС - достаточно развитый, чтобы реализовать необходимые функции целевых устройств, и достаточно простой, чтобы время расчетов на инструментальном компьютере при синтезе не было чрезмерным;

разработать математические методы синтеза устройств (в выбранном базисе), декомпозиции, компиляции, межэлементной трассировки, функционального моделирования и временного анализа;

создать интегрированную систему проектирования цифровых уст­ ройств на ПЛИС.

Вначале появились микросхемы типа PLA (программируемые логиче­ ские матрицы - ПЛМ, из отечественных К556РТ1), их программирование осуществлялось в кодах через заполнение таблицы истинности. Позже появились микросхемы типа PAL и стали применяться языки программи­ рования ассемблерного типа, как например PALASM. В настоящее время БИС программируемой логики имеют степень интеграции до нескольких миллионов эквивалентных вентилей, быстродействие (ввода/вывода) до 400МГц. В качестве средств описания проектов применяются языки высо­ кого уровня типа HDL (Hardware Description Language), например AlteraHDL, VHDL, Verilog HDL.

Новый импульс развитию ПЛИС сообщило развитие коммуникацион­ ных технологий. Именно здесь, на больших потоках и предельных скоро­ стях обработки информации стали проявляться принципиальные ограни­ чения микропроцессоров, связанные с избыточностью их архитектуры. ПЛИС позволяет реализовать специализированную структуру, поэтому при одинаковой тактовой частоте реализованное устройство имеет существенное преимущество в быстродействии. С этой особенностью связана и другая быстро развивающаяся область применения ПЛИС - реализация функций цифровой обработки сигналов.

Из наиболее известных производителей ПЛИС следует отметить фир­ му Altera. Небольшая, вначале, компания удачно решила перечисленные выше задачи путем постепенного согласованного усложнения элементной базы и средств проектирования. Ее успехи ко второй половине 90-х годов вывели ее в число основных производителей микросхем ПЛИС.

224 СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Основные семейства ПЛИС фирмы Altera приведены ниже в таблице.

Параметры

 

 

 

 

Семейства

 

 

 

МАХ

FLEX

MAX

 

FLEX

 

MAX

FLEX

 

APEX

 

 

 

3000

6000

7000

 

8000

 

9000

10K

 

20K

Число экв.

600-

10000-

600-

 

6000-

 

2500-

10000-

113000-

вентилей

 

5000

24000

5000

12000

16000

250000

2392000

Внутренняя

 

-

 

-

 

-

 

 

6144 -

24576-

память, бит

 

34-158

102-218

 

 

 

 

68-208

40960

442368

Выводов

 

36-164

 

68-208

 

150-470

 

128-808

пользователя

 

 

 

 

 

 

 

 

 

 

 

Технология

 

EEPROM

SRAM

EEPROM

EEPROM

SRAM

SRAM

 

SRAM

Семейство МАХ3000 включает микросхемы со следующими характе­

ристиками:

 

 

 

 

 

 

 

 

 

 

 

Тип микро­

 

Корпуса

Входы

i/o Триггеры

Ячейки

Fmax,

Ориентиро­

схемы

 

 

 

 

 

 

 

 

MHz

вочная

 

 

 

 

 

 

 

 

 

 

 

цена,$

ЕРМ 3032A

 

L44, Т44

4

30

 

32

 

32

192

 

2

ЕРМ 3064А

 

L44, Т44

4

30

 

64

 

64

192

 

2,5

 

 

 

Т100

 

62

 

128

 

128

 

 

10

ЕРМ 3128А

 

Т100,

4

76

 

 

182

 

 

 

 

Т144

 

92

 

 

 

 

 

 

21

ЕРМ 3256А

 

Т144

4

112

 

256

 

256

156

 

 

 

 

Р208

 

154

 

 

 

 

 

 

 

В таблицах этого параграфа использованы следующие обозначения:

Входы -

количество входных линий с предопределенными функциями

(Clock, Res, ОЕ).

 

 

 

 

 

 

 

 

 

I /O -

количество программируемых линий портов типа вход/выход.

Триггеры - количество триггеров, включая внутренние и периферий­

ные.

 

 

 

 

 

 

 

 

 

 

 

 

Fmax

-

максимальная

частота

 

работы

счетчиков, реализованных на

ПЛИС.

 

 

 

 

 

 

 

 

 

 

 

Обозначения корпусов:

 

 

 

 

 

 

 

 

L44 -

PLCC44

Т44 -

TQFP44

Р208 -

PQFP208

G192 PGA192 В 100 -

BGA100

L84 -

PLCC84

ТОО -

TQFP100

Р240 -

PQFP240

G232 PGA232 В144 -

BGA144

 

 

 

Т 144 -

TQFP144

R240 -

RQFP240

G503 PGA503 В256 -

BGA256

 

 

 

Т160 -

TQFP160

R304 -

RQFP304

 

 

В324 -

BGA324

 

 

 

 

 

 

 

 

 

 

В356 -

BGA356

Технология изготовления EEPROM обеспечивает сохранение конфи­ гурации при отключении питания. Число логических эквивалентных вен­ тилей ПЛИС этой серии находится в диапазоне 600-5000, количество программируемых пользователем выводов 34-158, общее количество выво­ дов 44-208. Микросхемы этой серии могут быть запрограммированы с по­ мощью программатора, в этом случае можно использовать все линии I/O .

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

225

Кроме того, все ПЛИС этой серии имеют возможность внутрисистемного программирования (in-system programmability) через порт типа JTAG с

использованием устройств типа BitBlaster, ByteBlaster и MasterBlaster,

тогда 4 линии порта JTAG резервируются для этой цели. Выводы имеют возможность эмуляции режимов открытого коллектора и третьего (высо­ коимпедансного) состояния, существует возможность управления скоро­ стью нарастания выходных сигналов. Может быть использовано не более 6 управляющих сигналов разрешения выхода.

Семейство FLEX6000 включает следующие микросхемы:

Тип микро­

Корпуса

Входы

i/o

Триггеры Ячейки

Объем кода,

Fmax,

Ориенти­

схемы

 

 

 

 

 

Кбайт

MHz

ровочная

 

 

 

 

 

 

 

 

цена,$

EPF6010A

Т100, Т 144

4

77

880

880

32

 

18

 

В256

 

98

 

 

 

 

 

 

 

 

135

 

 

 

 

25

EPF 6016А

Т100

4

77

1320

1320

32

 

 

Т 144

 

113

 

 

 

 

 

 

Р208,

 

167

 

 

 

 

 

 

В256

4

113

1960

1960

49

 

37

EPF6024А

Т144

 

 

Р208

 

167

 

 

 

 

 

 

Р240

 

195

 

 

 

 

 

В этой таблице параметр «Объем кода» указывает размер массива данных конфигурации для загрузки в ПЛИС.

ПЛИС этого семейства выполнены по технологии SRAM, поэтому конфигурация теряется после отключения питания и ее нужно восстанав­ ливать. Загрузка может быть:

1.активная, когда ПЛИС сама читает данные из внешнего ПЗУ:

с последовательным доступом (Active Serial), используются ПЗУ серий ЕРСхх (Altera), однократные, или АТ17Схх (At­ mel), стираемые;

с параллельным доступом (Active Parallel), используются стандартные ПЗУ серий 27ххх, 28ххх, 29ххх;

2.пассивная, когда данные загружаются ведущим процессором:

с последовательным доступом (Passive Serial), возможна за­ грузка через ByteBlaster от компьютера или с помощью спе­ циальной программы-загрузчика;

с параллельным доступом (Passive Parallel), загрузка произ­ водится с помощью специальной программы-загрузчика.

Число логических эквивалентных вентилей ПЛИС этой серии нахо­ дится в диапазоне 10000—24000, количество программируемых пользовате­ лем выводов 102—218, общее количество выводов 100-256. Видно, что ис­

226

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

пользуются корпуса с большим количеством выводов, предъявляющие очень высокие требования к технологии печатных плат и монтажа. ПЛИС этой серии, кроме EPF6016 (Vcc = 5,0 В), имеют напряжение питания 3,3 В. Все ПЛИС этой серии имеют возможность программирования с исполь­ зованием устройств типа BitBlaster, ByteBlasterMV и MasterBlaster через выделенные линии. Каждый из пользовательских выводов может быть ин­ дивидуально переведен в третье состояние. Имеется возможность управле­ ния скоростью нарастания выходных сигналов.

Семейство МАХ7000 включает микросхемы МАХ7000А и МАХ7000АЕ с напряжением питания 3,3 В, МАХ7000В с напряжением питания 2,5 В и MAX7000S с напряжением питания 5,0 В, все имеют воз­ можность внутрисистемного программирования. Микросхемы МАХ7000АЕ представляют собой улучшенный вариант и допускают «горячее включе­ ние».

Тип

Корпуса

Входы I/O

Триггеры

Ячейки

Fmax,

Ориентировочная

микросхемы

 

 

 

 

 

MHz

цена,$

ЕРМ 7032

L 4 4 ,Т44

4

32

32

32

192

4.5

ЕРМ 7064

L44, Т44Т100,

4

32

64

64

192

6

 

В100

4

64

128

128

 

 

ЕРМ 7128

L84

64

182

14

 

Т100.В100

 

80

 

 

 

 

 

Т144.В256

 

96

256

256

 

 

ЕРМ 7256

Т100.В100

4

80

164

34

 

Т144

 

116

 

 

 

 

 

Р208.В256

 

160

 

 

 

 

ЕРМ 7512АЕ

Т144

4

116

512

512

119

 

 

Р208

 

172

 

 

 

 

ЕРМ 7160S

В256

4

208

160

160

149

 

L84

60

34

 

Т100

 

80

 

 

 

 

ЕРМ 7192S

Т160

 

96

 

 

 

 

Т160

4

116

192

192

125

38

Каждая линия включает микросхемы типа ЕРМ7032, ЕРМ7064, ЕРМ7128, ЕРМ7256. Низковольтные линии включают микросхемы

EPM7160S, EPM7192S, ЕРМ7512А,В. Технология изготовления EEPROM

обеспечивает сохранение конфигурации при отключении питания. Число логических эквивалентных вентилей ПЛИС этой серии находится в диа­ пазоне 600-5000, количество программируемых пользователем выводов 36-164, общее количество выводов 44-208. Выводы имеют возможность эмуляции режимов открытого коллектора и третьего (высокоимпедансно­ го) состояния, существует возможность управления скоростью нарастания выходных сигналов. Может быть использовано не более 6 управляющих сигналов разрешения выхода.

ГЛАВА 5 ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

227

Семейство FLEX8000 включает микросхемы:

Тип

Корпуса

Входы

I/O

Триггеры Ячейки

Объем

Fmax,

Ориентиро­

микро­

 

 

 

 

 

кода,

MHz

вочная цена,

схемы

 

 

 

 

 

Кбайт

 

$

EPF8282A

L84

4

64

282

208

5

133

9,5

 

Т100

 

74

 

 

 

 

 

EPF 8452А

L84,T100

4

64

452

336

8

133

16

EPF 8636А

Р160

 

116

 

 

 

 

 

L84

4

64

636

504

12

133

22

 

Р160

 

114

 

 

 

 

 

EPF 8820А

G192.P208

 

132

 

 

 

 

 

Т144

4

108

820

672

16

133

27

 

Р160

 

114

 

 

 

 

 

 

G192.P208

 

148

 

 

 

 

 

EPF81188A

Р208

4

144

1188

1008

24

133

34

 

G232.R240

 

180

 

 

 

 

 

EPF81500A

R240

4

177

1500

1296

31

133

46

 

G280.R304

 

204

 

 

 

 

 

ПЛИС этого семейства выполнены по технологии SRAM, после от­ ключения питания необходима перезагрузка. Число логических эквива­ лентных вентилей ПЛИС этой серии находится в диапазоне 2500-16000, количество программируемых пользователем выводов 68-208, общее коли­ чество выводов 84-304. Корпуса используются как обычные PLCC, так и очень сложные, штырьковые многорядные и с шариковыми выводами. Все ПЛИС этой серии имеют возможность тестирования через порт типа JTAG, программируются с использованием устройств типа BitBlasfcer, ByfceBlasfcerMV и MasfcerBlasfcer через выделенные линии.

Семейство МАХ9000 включает микросхемы:

Тип

Корпуса

Входы

I/O

Триггеры

Ячейки

Fmax,

Ориентировочная

микросхемы

 

 

 

 

 

MHz

цена,$

9320

L84

4

56

484

320

144

59

 

Р208

 

128

 

 

 

 

 

В356

 

164

580

400

118

74

9400

L84

4

55

 

Р208

 

135

 

 

 

 

 

R240

 

155

676

480

144

121

9480

Р208

4

142

 

R240

 

171

772

560

144

146

9560

Р208

4

149

 

R240

 

187

 

 

 

 

 

В356

 

212

 

 

 

 

ПЛИС этой серии имеют организацию матрицы, аналогичную сериям FLEX6000 и FLEX8000, но изготовлены по технологии EEPROM, что обеспечивает сохранение конфигурации при отключении питания. Число

228

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

логических эквивалентных вентилей ПЛИС этой серии находится в диа­ пазоне 600-5000, количество программируемых пользователем выводов 168-216, общее количество выводов 84-356. Из-за использования слож­ нейших корпусов ПЛИС этой серии программируются только внутрисистемно при помощи устройств типа BitBlaster и ByteBlasterMV.

Семейство FLEX10K включает микросхемы:

Тип

Корпуса

Входы

i/o

Ячейки

Объем

RAM,

Fmax,

Ориентировоч­

микро­

 

 

 

 

кода,

бит

MHz

ная цена,

схемы

 

4

 

 

Кбайт

 

204

$

10К10

L84

55

576

15

6144

22

 

Т144

 

98

 

 

 

 

 

 

Р208

 

130

 

 

12288

204

 

10К20

Т144

4

98

1152

29

39

 

Р208

 

143

 

 

 

 

 

 

R240

 

185

1728

 

 

 

 

10К30

Р208

4

143

46-58

12288

204

50

 

R240

 

185

 

 

 

 

 

 

В356

 

242

 

 

 

 

 

10К40

Р208

4

143

2304

61

16384

204

105

 

R240

 

185

 

 

 

 

 

10К50

R240

4

185

2880

76-96

2480

204

91

 

В356

 

270

 

 

 

 

 

 

G403

 

306

 

 

 

 

 

10К70

R240

4

185

3744

109

18432

204

222

 

G503

 

354

 

 

 

 

 

10К100

G503

4

402

4992

146

24576

204

 

Архитектура этого семейства отличается от всех рассмотренных ранее наличием нескольких встроенных блоков памяти размером 2048 бит каж­ дый (4096 бит в FLEX10KE). В семействе имеются линии с напряжениями питания 5 В, 3,3 В и 2,5 В.

Семейство АРЕХ20К включает БИС очень высокой степени интегра­ ции и предназначено для построения вычислительных систем на одном кристалле.

Микросхемы имеют корпуса с общим количеством выводов от 144 до 984. Возможно до восьми глобальных синхросигналов. Каждый из пользо­ вательских выводов может быть индивидуально переведен в третье состоя­ ние.

Напряжение питания может быть равным 1,8 В и 2,5 В, но при этом обеспечивается совместимость по входам и выходам только со схемами с аналогичными логическими уровнями.

Для совместимости с уровнями 3 В- и 5 В-схем на второй вывод пита­ ния должно быть подано напряжение 3,3 В. Это называется M ultiV oltl/O интерфейс.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]