- •Электронное управление двс
- •1. Введение
- •1.1. Недостатки механических устройств топливоподачи
- •1.2. Недостатки механических устройств регулирования уоз
- •1.3. Недостатки механических устройств поддержания частоты вращения холостого хода
- •1.4. Структурная схема электронного управления
- •Д. Детонации – современные широкополосные датчики в состоянии слышать не только детонацию, но и оценивать наличие сгорания (по шуму выпуска) и другие шумы в дв.
- •2. Элементная база цифровой и аналоговой техники. Логические элементы, триггеры и другие устройства на их основе
- •1 Q
- •3. Основы микропроцессорных устройств: мп и его окружение, порты ввода/вывода
- •4. Цап и ацп
- •4.2.3. Анализ погрешностей определения расхода воздуха, связанных
- •5.1. Программируемый счетчик-таймер 8253/8254 (580ви53, 1810ви54, 1821ви54) (устарело)
- •5.2. Современные средства микроконтроллеров для измерения и генерации временнЫх интервалов
- •5.3. Watch-doGтаймер
- •6. Программирование и отладка м/п систем
- •7. Организация измерений и управления в м/п системах
- •8. Краткая история м/п техники и электронно-управляемых устройств
- •9. Развитие электронно-управляемых устройств
- •10. Датчики
- •11. Исполнительные устройства
- •12. Приложение
- •12.2. Маркировка узлов и блоков отечественная (отраслевая нормаль он 025 215 – 69 Автомобильный подвижный состав. Спецификация типовых деталей электрооборудования)
- •12.3. Obd-2.Pins&codes
- •13. Последовательные интерфейсы rs-232, usb, k-Line, can, lin и (j1850)
- •13.1. Подробности реализации caNсетей в автомобиле
- •14. Диагностика
- •13.1. Диагностика датчика массового расхода воздуха
- •13.2. Диагностика датчика абсолютного давления
- •13.3. Диагностика датчика положения дроссельной заслонки
- •13.4. Диагностика датчика температуры
- •13.5. Диагностика катушки зажигания
- •Литература
- •Содержание
- •Только для евротеХа
3. Основы микропроцессорных устройств: мп и его окружение, порты ввода/вывода
Микропроцессором(процессором) называется устройство, предназначенное для логической и арифметической обработки информации под программным управлением. Термин микро- возник когда процессор «уместился» в одну микросхему.
Программа- совокупность команд, определенная пользователем, позволяющая функционировать м/п системе в заданном режиме.
Система команд- совокупность всех элементарных действий м/п - команд (число команд 33 – 150 и более).
Команда- одно из элементарных действий м/п, кодируется в 1- 6 и более байтах. Каждая команда выполняется за определенное число импульсов т.г. –Nтг . Быстродействие таким образом определяетсяf т.г.иNтг .
У каждого м/п имеется своя "система команд", определяющая характер его «деятельности». Самая простая система команд у 8-р. м/п, самая сложная - у 32-р. (8-р. м/п оперируют только с 8-р. словами или отдельными битами этого слова, у 16-р. м/п система команд имеет 8-р. операции и 16-р. операции. Соответственно у 32-р. м/п имеются команды 8, 16 и 32-разрядные).
С.к. условно разделяется на группы команд: к. пересылки данных (MOV- память - регистр, р. -р., порт - регистр), к. сравненияCMP(==0, !=0,<, <=, >, >=), к. переходов (JMPусловные, безусловные), к. арифметические (+ADD, -SUB, *MUL, /DIV), к. логические побитные (NOT, AND, OR,XOR).
М/п имеет рабочие регистры (8-32), регистр флагов, программный счетчик PC, указатель стека SP. Снаружим/п имеет шину адреса, шину данных, сигналы управления, обеспечивающие воздействие на м/п со стороны внешних устройств и взаимодействие м/п с подчинеными устройствами. Важнейшими из сигналов управления являются сигналы сброса -RESET, тактирования - CLK (Clock), запроса прерывания –INT, а также сигналы управления памятью и портами ВВ.
Рабочие регистрыиспользуются при выполнении большинства команд. Они являются промежуточным местом хранения данных при обработке.
Регистр флаговотражает наступление событий при выполнении операций. Отдельные биты регистра флагов -C (Carry) -перенос (в командах сложения и вычитания при переполнении или заеме),Z (Zero) - нулевой результат,S (Sign) – знак минус,OF– (overflow– переполнение – в основном для умножения). ВIntel 80x86 в регистр флагов попал бит разрешения прерываний IF (Interrupt Flag) – управляет ходом выполнения программы при наличии запросов прерываний.
Программный счетчик PC автоматически увеличивается на 1 после чтения очередного байта при чтении кода команд, а также может изменяться принудительно командами переходов (аббр. JMP), вызовами программных процедур (CALL), процедурами прерываний и командами т.н. возвратов (RETURNх).
Нарисовать м/п: входыRESET,CLK,INT.
Выходы: Address, -RD, -WR, M/-IO.
Двунаправленную шину DATA.
По сигналу «сброс» м/п готовится к работе (совершаются внутренние микрокоманды, а также сбрасываются флаги, PC- программный счетчик принимает определенное начальное значениеMicroChip, ATMEL - 0000, Intel 80x86 - FFFF0), потом читает первую команду, выполняет ее. Программный счетчик принимает новое значение - далее читается следующая команда и т.д. Команда может состоять из 1, а чаще из 2 и более байтов. При чтении первого байта команды м/п сам знает, сколько байтов следует допрочитать, чтобы «понять» и выполнить команду.
«Голый»м/п работать не будет - ему нужны тактовые импульсы и программа.
Дорисоватьм/с памяти. В простейшем случае (одна м/с памяти) –CS=0. Если используется несколько устройств на шине м/п, то сигнал –CS должен быть активным только у одного устройства. Активность на шине м/п только одного устройства в данный момент времени достигается установкой адресных дешифраторов. Это могут быть простейшие логические элементы, а также м/с дешифраторов. Рассмотреть 2 варианта адресных дешифраторов для памяти.
Адресное пространство- совокупность адресов памяти и портов ввода/вывода, обслуживаемых м/п. Таким образом, различают два адресных пространства - памяти и портов ВВ/ВЫВ. Оба пространства обслуживаются одними и теми же адресными линиями м/п. Аппаратное разделение памяти и портов ВВ/ВЫВ осуществляется по выходному сигналу м/п -M/-IO.В универсальных м/п адресное пространство ВВ/ВЫВ как правило меньше (8080/5 64К и 256, 8086 1024К и 64К).
Порты (порты ВВ/ВЫВ)- есть внешние по отношению к м/п регистры, позволяющие м/п обмениваться информацией с внешними устройствами.
Принципиальной разницы между памятью и портами нет. В компьютере PDP-11 ф. DEC (Электроника-60 - копия) верхняя часть адресного пространства (8К из 64) отводилась устройствам ВВ/ВЫВ. Остальные 56К - под оперативную память. Различие между памятью как таковой и портами в том, что память непрерывна и ее ячейки однотипны (можно записать некую информацию, начиная с одного или другого адреса - суть одно и то же). Порты - внешние по отношению к м/п регистры, которые как правило уникальны (т.е. соседний по адресу порт оперирует с другими внешними устройствами). Самое большое отличие состоит в наличии команд, непосредственно работающих с памятью (сложение, умножение…предполагает чтение-модификация-запись в одной команде), а с портами только команды ввода-вывода (предполагается только чтение или только запись данных в одной команде).
В обиходе под портами ВВ/ВЫВ подразумеваются гораздо более сложные устройства, нежели просто регистры, подсоединенные к шинам м/п. Например, в компьютерном мире часто используемые понятия - «параллельный» и «последовательный» порты. Параллельный порт передает данные одновременно по 8 линиям, последовательный – по одной. В состав этих портов помимо собственно портов-регистров входят дополнительные электронные компоненты, обеспечивающие работу устройства согласно принятым стандартам (протоколам). Так параллельный порт состоит из двух регистров-портов. Последовательный порт имеет 8 регистров-портов, а также сложную схему функционирования.
В нашем случае под портами ВВ/ВЫВ пока будем понимать лишь совокупность внешних регистров для обмена информацией м/п с внешним миром.
Дополнить схему портами ввода (буфер с 3-состояниями. Вход –OEподключить к адр. дешифратору)и вывода (простой регистр, вход С к элементу ИЛИ: -WR, соотв. выход дешифратора).
Нужен свой адресный дешифратор cвходом –Е для подключения к линииM/-IO.
Рабочие регистры i80x86.AX(AH,AL),BX(BH,BL),CX(CH,CL),DX(DH,DL).
Примеры команд обмена м/п с памятью и портами i80x86. По схеме м/п системы проследить выполнение команд.
C48A MOV AL, AH регистр м/п AH - > AL
078B MOV AL, [BX] ячейка памяти с адресом BX - > AL
60B0 MOV AL, 60 число 60 - > AL
EE OUT DX, AL AL - > PORT DX
XXE4 IN AL, port XX port XX -> AL
C103 ADD AX, CX – сложение AX + CX -> AX, (установка/сброс CF - перенос)
D833 ADC BX, DX – сложение BX + DX + CF -> BX (CF - перенос)
Две последние команды подряд – сложение двух 4-байтных чисел "BX,AX" + "DX,CX" -> "BX,AX"
Стек(Stack – полка, стеллаж, куча) - специально выделенная область памяти, в которую записываются и читаются данные по принципу (первым вошел - последним вышел) или (последним вошел - первым вышел). К понятию стека следует добавить его важнейшую деталь -вершину стекаили чаще -указатель стека SP. Итак,указатель стека– спец. регистр м/п, содержащий адрес свободной ячейки, в которую можно произвести запись данных. При чтении данных указатель стека должен быть сначала перемещен на последнюю занятую ячейку, и потом уже можно произвести с этого места чтение данных.
Обычно стек заполняется в сторону уменьшения адресов. Для организации стека достаточно определить указатель стека. Так, например, если указатель стека SP = 87F4, то при записи в стек данные (например, 0102) будут записаны по этому адресу - 87F4 и указатель переместится вниз на 87F2.Если понадобится извлекать содержимое из стека, то получимBDA4 (A4),и указатель стека увеличится на 2SP = 87F6 (или на 1 – SP = 87F5).
Замечание.Микропроцессоры Intel (8080, 80x86) при работе со стеком оперируют только 2-байтными данными (нет стековых команд передачи 8-разрядных данных).
-
Адрес
Содержимое
Комментарий
87F6
BDA4
при чтении SP=87F4->87F6, получим данные BDA4
87F4
FA33
при записи на этот адрес запишутся новые данные 0102
87F2
2067
87F0
0009
-
Адрес
Содержимое
Комментарий
87F6
BDA4
87F4
0102
после записи новые данные 0102
87F2
2067
после записи новое значение SP = 87F2
87F0
0009
В начале работы (после сброса м/п) следует задать SP= …(обычно конец памяти – старший адрес). В нашем случае, например,SP= 87F6 – это не самый конец ОЗУ (87FE).
50 PUSH AХ (PUSH - "продвигать вперед, проталкивать" = запись в стек).
- в ячейку SP записывается AХ, SP = SP - 2
5А POP DX (POP– "высунуть" = взятие из стека).
- SP = SP + 2, далее из ячейки памяти с адресом равным содержимому SP данные попадают в регистр DX.
Вместо команд PUSH и POP можно было бы использовать обычные команды пересылки данных, но в этом случае потребовалось бы использовать команду обмена с памятью и дополнительно модифицировать SP. Число команд – 2 или больше, затраты программной памяти – 4 байта или более. Время выполнения - в 2 раза больше как минимум.
Вопросы на экзамене: как организовать стек, в какой памяти (где) находится.
Прерывание- это выполнение блока вычислений при наступлении какого-либо внешнего по отношению к вычислительному процессу события (поступил сигнал ВМТ, зуб с КВ, с датчика фазы, истек временной промежуток системного счетчика времени, пришел очередной байт с компьютера, который хочет знать о работе двигателя и т.д.). Запросы прерываний от внешних устройств поступают на вход м/пINT.
Система прерываний позволяет решать задачи в 100 и более раз эффективнее, нежели без них. Из истории первые компьютеры IBMне имели системы прерываний, но со временем это упущение было исправлено… При программировании на ПК начинающие программисты могут и не знать о прерываниях. Для задач управления без прерываний нельзя ступить ни шагу.
Последовательность прерывания:при возникновении сигнала на входеINT и разрешенном флаге реакции на прерывание (IF= =1), завершается выполнение текущей команды, в стеке запоминается адрес следующей команды, сбрасывается флаг(IF=0), и начинает выполняться программа обработки прерывания. В стеке также запоминается регистр флагов и некоторые рабочие регистры по усмотрению программиста или компилятора (при программировании на ассемблере или языке высокого уровня). Далее, выполняются собственно программа обработки произошедшего события. По завершении программы обработки прерывания в обратной последовательности извлекается содержимое стека. Команда "возврат-return" последним восстанавливает программный счетчик. Флаг разрешения обработки прерываний также восстанавливается(IF=1).Таким образом, продолжается дальнейшее выполнение программы с тем же содержимым рабочих регистров, регистра флагов, как–будто не было отвлечения на обработку целой серии операций.
В стеке могут храниться не только адреса для программ обработки прерываний и других процедур (16-разрядные), но и другие врЕменные данные.
При реакции на прерывания, а также команды вызова подпрограмм, возврата из подпрограмм и прерываний (RETURNx), специальные команды "послать в стек", "извлечь из стека", автоматически воздействуют на указатель стекаSP.