2024/7/23 16:48:27
Вид:
Контрольная шина, память данных, интерфейс ввода-вывода и память программ микроконтроллера должны быть подключены к микропроцессору микроконтроллера (ЦП) через шину. Шина - это набор общих сигнальных линий, которые можно разделить на адресную шину, шину данных и контрольную шину, которые соединяют различные компоненты системы микроконтроллера.
Контрольная шина состоит из ALE, PSEN, WR и RD, каждая из которых выполняет следующие функции:
Порт P0 является временно мультиплексированной шиной для адресов и данных, и необходимо защелкнуть передаваемый ею младший 8-битный адрес через защелку. Крайне важно управлять адресной защелкой, чтобы защелкнуть младший 8-битный адрес в нужное время, обеспечивая, чтобы при защелкивании адреса порт P0 передавал адрес, а не следующие данные. ALE - это вывод включения адресной защелки. Когда микроконтроллер обращается к внешней памяти и портам ввода-вывода, этот вывод выдает сигнал с падающим фронтом перед тем, как порт P0 переключается с адресной линии на линию данных. Этот вывод можно использовать в качестве сигнала управления защелкой для адресной защелки, чтобы гарантировать защелкивание младшего 8-битного адреса.
PSEN - это активный на низком уровне вывод включения хранилища программ, используемый для расширения внешней памяти программ. Когда микроконтроллер выполняет операцию чтения из внешней памяти программ, вывод PSEN выдает сигнал низкого уровня, чтобы открыть доступ к памяти программ. Этот доступ к памяти программ включает чтение инструкций и использование инструкции MOVC для чтения данных.
При работе во вторичной функции выводы P3.6 и P3.7 порта P3 соответствуют WR и RD соответственно. WR и RD используются для расширения внешней памяти данных (или интерфейса ввода-вывода) и служат сигналами разрешения записи и разрешения чтения для внешней памяти данных (или интерфейса ввода-вывода), оба активны на низком уровне. Инструкции, которые генерируют операции чтения из внешней памяти данных (или интерфейса ввода-вывода), включают "MOVX A,@DPTR" и "MOVX A,@Ri", а инструкции, генерирующие операции записи, включают "MOVX@DPTR,A" и "MOVX@Ri,A". Когда микроконтроллер считывает данные из внешней памяти данных (или интерфейса ввода-вывода) и отправляет данные на внешнюю шину данных, вывод RD низкий, а вывод WR высокий. Наоборот, при записи данных во внешнюю память данных (или интерфейс ввода-вывода) вывод WR низкий, а вывод RD высокий. Важно отметить, что любые два вывода PSEN, WR и RD не будут низкими одновременно, что означает, что чтение и запись внешней памяти данных (или интерфейса ввода-вывода) и чтение внешней памяти программ не будут происходить одновременно.
Транспортировка информации может быть двунаправленной и используется для обмена данными между микроконтроллером и памятью или портами ввода-вывода. Ширина шины данных обычно соответствует длине слова микроконтроллера CPU.
Адресная шина используется для передачи адресов памяти или портов ввода-вывода, и направление передачи является однонаправленным - только от микроконтроллера наружу. Кроме того, количество адресных линий (m) определяет количество ячеек памяти и портов ввода-вывода, которые может адресовать адресная шина. Это связано с тем, что каждая адресная линия может передавать сигналы высокого и низкого уровня, представленные двоичными числами "1" и "0". Каждая логическая группа двоичных чисел может соответствовать адресу. Адресная шина с m адресными линиями может передавать m-битные двоичные числа, в общей сложности 2^m адресов.
Микроконтроллер MCS-51 не имеет выделенной внешней адресной шины и шины данных. Функции этих шин выполняются параллельными портами ввода-вывода P0 и P2 микроконтроллера. Структура расширенной шины микроконтроллера MCS-51 показана на рисунке 1.
Рисунок 1: Структура расширенной шины однокристального микроконтроллера MCS-51
Микроконтроллер MCS-51 имеет 8-битную внешнюю шину данных (D7~D0), предоставленную портом P0. Кроме того, микроконтроллер MCS-51 имеет 16-битную внешнюю адресную шину, при этом порт P0 передает младшие 8 бит адреса (A7~A0). Когда микроконтроллер обращается к внешней расширенной памяти и интерфейсам ввода-вывода, порт P0 сначала передает младшие 8 бит внешнего адреса, а затем передает данные, что означает, что порт P0 является временно мультиплексированной шиной для адресов и данных. Таким образом, когда данные появляются на порту P0, младший 8-битный адрес уже исчез с порта P0. Адресная защелка на рисунке 1 может защелкнуть младший 8-битный адрес перед его исчезновением и предоставить его внешней расширенной памяти или порту ввода-вывода.
При выполнении внешнего расширения порт P2 является высокой 8-битной адресной шиной. В отличие от порта P0, порт P2 передает только адреса и не мультиплексируется. 16-битная внешняя адресная линия, образованная портами P2 и P0, предоставляет микроконтроллеру MCS-51 2^16=65536 внешних адресов. Программная память и ячейки памяти данных микроконтроллера MCS-51 адресуются по байтам (то есть каждая ячейка памяти имеет адрес). Таким образом, микроконтроллер MCS-51 может расширяться до 2^16 байтов (64КБ) внешней программной памяти и памяти данных.
Адресная защелка на рисунке 1 используется для защелкивания адресной информации, передаваемой портом P0, срабатываемой сигналом с падающим фронтом на выводе ALE. Поэтому адресная защелка на рисунке 1 должна быть защелкой срабатывания по падающему фронту, такой как микросхема 74LS373. Если используется защелка срабатывания по возрастающему фронту (или высокому уровню) (такие как микросхемы 74LS273 и 74LS377), сигнал вывода ALE должен быть инвертирован перед подключением к триггерному выводу защелки.