Работа с внешней шиной

XNExecute Never, обращение за инструкциями для исполнения в данные области не возможен.

Доступ к контроллеру внешней шины возможен через различные области адресного пространства. Эти области имеют разные типы памяти, которые могут быть изменены в блоке MPU. Всего типов памяти три:

Обращение к внешней шине через эти области происходит с некоторыми особенностями. Предположим, что в коде есть подряд несколько записей во внешнюю память. Например, последовательность из статьи — Работа с Flash-памятью 1636РР1У по внешней шине

// Стирание всей памяти
FlashStatus EraseFullFLASH(void)

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

Процессор же, получив такую последовательность команд, должен либо остановиться, пока не закончится текущая операция на шине (режим Strongly Ordered), либо записать обращения в некий внутренний буфер и продолжить выполнение прочих инструкций, не снижая общую производительность.

Затем, команды из буфера (параллельно с работой ядра) будут выводиться на контроллер внешней шины. При этом возможны два варианта:

В данном коде выбор режима, в котором будет работать ядро, определяется старшими разрядами адреса при обращении в адресное пространство.

// Макрос обращения к памяти
#define HWREG(x) (*((volatile uint32_t *)(x)))
// Макрос обращения к внешней шине
#define EXTBUS_START_ADDR 0x60000000 // Normal
или
#define EXTBUS_START_ADDR 0xA0000000 // Device

#define EXTBUS_ADDR(x) (EXTBUS_START_ADDR + ((x)

Для управлением записью в 1636РР1У необходимо четко соблюдать последовательность команд, поэтому необходимо осуществлять обращения к внешней шине через регион с типом памяти Device. То есть адреса должны быть в диапазоне, начинающемся с 0xA000_0000.

Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать

03. Основы устройства компьютера. Память и шина. [Универсальный программист]

Типы памяти при работе с внешней шиной

Адресное пространство в Cortex-M3 (МК 1986ВЕ9х)

АдресаНазначениеТип ПамятиXNОписание
0x0000_0000 — 0x1FFF_FFFFCodeNormalКод программы и данные
0x2000_0000 — 0x3FFF_FFFFSRAMNormalДанные и код программы
0x4000_0000 — 0x5FFF_FFFFPeripheralDeviceXNПериферия Milandr
0x6000_0000 — 0x9FFF_FFFFExt RAMNormalВнешнее ОЗУ
0xA000_0000 — 0xDFFF_FFFFExt DeviceDeviceXNВнешние Устройства
0xE000_0000 — 0xE000_FFFFCore BusStrongly OrderedПериферия ядра — NVIC, SysTimer, регистры ядра
0xE001_0000 — 0xFFFF_FFFFReservedDeviceXNЗарезервировано

XNExecute Never, обращение за инструкциями для исполнения в данные области не возможен.

Доступ к контроллеру внешней шины возможен через различные области адресного пространства. Эти области имеют разные типы памяти, которые могут быть изменены в блоке MPU. Всего типов памяти три:

Обращение к внешней шине через эти области происходит с некоторыми особенностями. Предположим, что в коде есть подряд несколько записей во внешнюю память. Например, последовательность из статьи — Работа с Flash-памятью 1636РР1У по внешней шине

// Стирание всей памяти
FlashStatus EraseFullFLASH(void)

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

Процессор же, получив такую последовательность команд, должен либо остановиться, пока не закончится текущая операция на шине (режим Strongly Ordered), либо записать обращения в некий внутренний буфер и продолжить выполнение прочих инструкций, не снижая общую производительность.

Затем, команды из буфера (параллельно с работой ядра) будут выводиться на контроллер внешней шины. При этом возможны два варианта:

В данном коде выбор режима, в котором будет работать ядро, определяется старшими разрядами адреса при обращении в адресное пространство.

// Макрос обращения к памяти
#define HWREG(x) (*((volatile uint32_t *)(x)))
// Макрос обращения к внешней шине
#define EXTBUS_START_ADDR 0x60000000 // Normal
или
#define EXTBUS_START_ADDR 0xA0000000 // Device

#define EXTBUS_ADDR(x) (EXTBUS_START_ADDR + ((x)

Для управлением записью в 1636РР1У необходимо четко соблюдать последовательность команд, поэтому необходимо осуществлять обращения к внешней шине через регион с типом памяти Device. То есть адреса должны быть в диапазоне, начинающемся с 0xA000_0000.

Видео:Конструкция шиныСкачать

Конструкция шины

Описания / Внешние шины компьютера

Многие устройства ввода/выводаинформации подключаются к компьютеру посредством внешней шины. Обычно разъёмывнешних шин располагаются на задней панели системного блока. Физическиони различаются на те, в которых вставляют кабель, и те, которые сами вставляютсяв кабель. Из-за «бугра» к нам пришли и соответствующие названия «мама» и «папа». Это не просто шутка зарубежных инженеров, т.к. вполне официальноза «male» обозначают соединители-вилки, а «female» — розетки. Также разъёмыделятся по количеству контактов на 9, 25 и т.д. — контактные. Так, разъёмдля подключения принтера является 25-контактным типа «мама», а подключаемыйк нему разъём на одном из концов шнура принтера является 25-контактнымтипа «папа». В компьютерной индустрии чаще всего применяются разъёмы Д-формы (к таким подключаются принтер, монитор), Mini-DIN (подключениеклавиатуры и мыши в новых компьютерах стандарта АТХ и компьютерах PS/2), DIN (клавиатуры АТ). Можно встретить и другие, всех не перечислишь. Болеепринято внешние шины компьютера называть портами (LPT-порт, COM-порт).Следующее и, пожалуй, самое главное деление — по виду передачи данных. Как Вы знаете, данные в компьютере представляются битами (0 или 1), биты группируются в байты восьмёрками, байты с слова (1 слово = 2 байта = 16бит), двойное слово (32 бита)и т.д. Если порт передаёт несколько бит одновременно, то его называют параллельным портом. Если же биты передаются по очередиодин за другим, то этот порт последовательный. Сразу видны прелести и недостаткипоследовательных и параллельных портов: при последовательной передаче данных вся информация может передаваться по двум проводам (один «земля» и одининформациюнный), следовательно на проводах можно сэкономить. Но для передачиодного байта потребуется восемь циклов (я рассматриваю самый простой случай), следовательно данные будут передаваться медленно. При параллельной передаче виден заметный выигрыш в скорости, но для передачи байта нужно 9 проводов. При такой передаче байты «мешают» друг другу в следствии законов электромагнетизма, поэтому вероятность ошибок увеличивается. Порт принтера является параллельным: скорость его передачи может достигать 2 мегабит в секунду, но максимальнаядлина шнура может быть 2,5 метра. Порт, к которому подключаются мыши компьютеров АТ и внешние модемы последовательный: длина шнура может достигать 15 метров, но скорость передачи всего 115 килобит в секунду. Теперь о каждой из шинконкретнее.

Порт принтера (LPT, параллельный порт)

Применяется в основном для подключения принтеров к компьютеру. Но существуют также LPT-сканеры, CD-ROM приводыи LPT-модемы. Поначалу скорость порта была невысокой (до 600 Кбит/с) ипорт обеспечивал передачу только в одном направлении (из компьютера). Но стандарт EPP (Enhanced Parallel Port) обеспечил двунаправленную передачусо скоростями до 2 Мбит/с и подключение до 64-х устройств. Последующий за ним стандарт ECP (Enhanced Communication Port) расширил количество подключаемых устройств до 128 и объявил стандарт на сжатие данных, благодаря чему реальная скорость увеличилась ещё больше. EPP стандарт был разработан фирмами Intel, Xircon и Zenith; ECP — Microsoft и Hewlett-Packard. В дальнейшем Американский Институт Инженеров по электротехнике и электронике включил эти два стандартав свой IEEE1284. Новый стандарт описал все прежние и добавил новую функцию: взаимодействие устройств при возникновении ошибки. Для LPT порта обычно используется 25-контактный разъём Д-формы. На задней стенкекомпьютера разъём типа «мама».

Последовательный порт (COM-порт, RS-232)

Обычно применяется для подключения мыши или внешнего модема. Стандарт на него был разработан в 1969 году. Скорость порта зависит от множества стандартов. Сейчас максимальная скорость передачи составляет 115 Кбит/с. Наиболее часто используются разъёмы Д-формы 15 и 25 — контактные. Обычно к 15-ти контактному типа «папа» подключается «мышь», к 25-контактному «папа» — модем. Почему не наоборот? Дело в том,что стандарт на использование 25-контактного разъёмы вышел в 1987 году как модификация «D». В этот стандарт были внесены некоторые дополнительные линии, которые необходимы для более быстрого функционирования модема. Вообщето «мышь» подключается к COM-порту «незаконно», так как никакой стандартне описывает вывод на разъём последовательного порта линий питания, а в «мыши» используется активный компонент (микросхема), требующий этого. Питаниемышь берёт с одной из линий данных. С выходом форм-фактора АТХ мышь перенеслина PS/2 последовательный порт, в котором реализовано питание на разъёме. Также с появлением шины USB и AMR модемы потихоньку перекочёвывают на них. Вывод: СОМ «умирает».

IrDA порт (Infrared Data Association)

Используется для подключения IR-мышей, клавиатур, принтеров находящихся на расстоянии до 2-х метров. Также посредством этого интерфейса можно связать два компьютера на столе или компьютер и PalmTop («компьютер на ладони»). Скорость — до 115 КБит/с. По сути дела это обычный последовательный COM-порт со световой передачей данных.

Видео:Левые и правые шины. Асимметричные и направленные. Разница?Скачать

Левые и правые шины. Асимметричные и направленные. Разница?

Типы памяти при работе с внешней шиной

Адресное пространство в Cortex-M3 (МК 1986ВЕ9х)

АдресаНазначениеТип ПамятиXNОписание
0x0000_0000 — 0x1FFF_FFFFCodeNormalКод программы и данные
0x2000_0000 — 0x3FFF_FFFFSRAMNormalДанные и код программы
0x4000_0000 — 0x5FFF_FFFFPeripheralDeviceXNПериферия Milandr
0x6000_0000 — 0x9FFF_FFFFExt RAMNormalВнешнее ОЗУ
0xA000_0000 — 0xDFFF_FFFFExt DeviceDeviceXNВнешние Устройства
0xE000_0000 — 0xE000_FFFFCore BusStrongly OrderedПериферия ядра — NVIC, SysTimer, регистры ядра
0xE001_0000 — 0xFFFF_FFFFReservedDeviceXNЗарезервировано

XNExecute Never, обращение за инструкциями для исполнения в данные области не возможен. Доступ к контроллеру внешней шины возможен через различные области адресного пространства. Эти области имеют разные типы памяти, которые могут быть изменены в блоке MPU. Всего типов памяти три: Обращение к внешней шине через эти области происходит с некоторыми особенностями. Предположим, что в коде есть подряд несколько записей во внешнюю память. Например, последовательность из статьи — Работа с Flash-памятью 1636РР1У по внешней шине // Стирание всей памяти
FlashStatus EraseFullFLASH(void)
Каждое обращение на внешнюю шину занимает значительное количество тактов, так как внешняя шина работает медленнее, чем ядро. Времена работы внешней шины задаются программно в регистрах и подстраиваются под скорость работы внешнего устройства. Процессор же, получив такую последовательность команд, должен либо остановиться, пока не закончится текущая операция на шине (режим Strongly Ordered), либо записать обращения в некий внутренний буфер и продолжить выполнение прочих инструкций, не снижая общую производительность. Затем, команды из буфера (параллельно с работой ядра) будут выводиться на контроллер внешней шины. При этом возможны два варианта: В данном коде выбор режима, в котором будет работать ядро, определяется старшими разрядами адреса при обращении в адресное пространство. // Макрос обращения к памяти
#define HWREG(x) (*((volatile uint32_t *)(x)))
// Макрос обращения к внешней шине
#define EXTBUS_START_ADDR 0x60000000 // Normal
или
#define EXTBUS_START_ADDR 0xA0000000 // Device #define EXTBUS_ADDR(x) (EXTBUS_START_ADDR + ((x) Для управлением записью в 1636РР1У необходимо четко соблюдать последовательность команд, поэтому необходимо осуществлять обращения к внешней шине через регион с типом памяти Device. То есть адреса должны быть в диапазоне, начинающемся с 0xA000_0000. Источник

📸 Видео

Кан шина, что это? Поймет школьник! принцип работыСкачать

Кан шина, что это? Поймет школьник! принцип работы

CAN шина👏 Как это работаетСкачать

CAN шина👏 Как это работает

MCP2515, контроллер CAN шины с интерфейсом SPIСкачать

MCP2515, контроллер CAN шины с интерфейсом SPI

ЧТО БУДЕТ ЕСЛИ ШИНУ ПОСТАВИТЬ ДРУГОЙ СТОРОНОЙСкачать

ЧТО БУДЕТ ЕСЛИ ШИНУ ПОСТАВИТЬ ДРУГОЙ СТОРОНОЙ

Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать

Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus network

Колёса и шиныСкачать

Колёса и шины

Как Перерабатывают Автомобильные Шины в ЕвропеСкачать

Как Перерабатывают Автомобильные Шины в Европе

Что означает МАРКИРОВКА НА ШИНАХ / Значение всех цифр и букв на резинеСкачать

Что означает МАРКИРОВКА НА ШИНАХ / Значение всех цифр и букв на резине

Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!Скачать

Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!

Что необходимо знать о направляющих шинах. Шины, шаблоны и адаптеры AMS.Скачать

Что необходимо знать о направляющих шинах. Шины, шаблоны и адаптеры AMS.

Лекция 281. Шина ISAСкачать

Лекция 281. Шина ISA

Восстановление шин своими руками!Скачать

Восстановление шин своими руками!

Вот ЧЕМ надо ЧЕРНИТЬ ШИНЫ (качественно, безопасно, дешево)Скачать

Вот ЧЕМ надо ЧЕРНИТЬ ШИНЫ (качественно, безопасно, дешево)

Жидкая резина. Лучшая гидроизоляция бетона.Скачать

Жидкая резина. Лучшая гидроизоляция бетона.

Ремонт боковых порезов шин.Скачать

Ремонт боковых порезов шин.

Датчики ДАВЛЕНИЯ В ШИНАХ.Замена батарей.Отзыв через 2 года эксплуатации!!!Скачать

Датчики ДАВЛЕНИЯ В ШИНАХ.Замена батарей.Отзыв через 2 года эксплуатации!!!

Защита порогов жидкой резинойСкачать

Защита порогов жидкой резиной
Поделиться или сохранить к себе:
Технарь знаток