4. Пространство адресов внешней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 65535. Во внешней памяти данных могут размещаться только данные, обращение к которым осуществляется посредством содержимого рабочего регистра-указателя R0, R1 или регистра указателя данных DPTR;
5. Пространство прямых адресов внутренней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 127. Обращение к данным в пространстве прямых адресов осуществляется посредством второго байта кода команды. Пространство адресов регистров специальных функций является продолжением данного пространства;
6. Пространство косвенных адресов внутренней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 127. Пространство косвенных адресов от 0 до 127 физически совпадает с пространством прямых адресов;
7. Пространство поразрядных прямых адресов внутренней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 127. Данное пространство физически совпадает с пространством прямых адресов ячеек от 32 до 47. Пространство адресов триггеров специальных функций является продолжением пространства поразрядных прямых адресов;
8. Пространство адресов стека. Диапазон адресов этого пространства находится в пределах от 0 до 127. Данное пространство физически совпадает с пространством косвенных адресов. Произвольный адрес верхушки стека можно установить, например, с помощью команды:
MOV SP, #<адрес>;
9. Пространство рабочих регистров, которое разделено на 4 банка. Каждый из банков содержит восемь 8‑разрядных рабочих регистров R0 – R7. Диапазоны адресов пространства рабочих регистров во внутренней памяти данных следующие:
Для нулевого банка: 0 – 7;
Для первого банка: 8 – 15;
Для второго банка: 16 – 23;
Для третьего банка: 24 – 31.
Выбор текущего банка рабочих регистров определяется содержимым триггеров специальных функций RS0 и RS1:
Банк | ||
Нулевой | 0 | 0 |
Первый | 0 | 1 |
Второй | 1 | 0 |
Третий | 1 | 1 |
Установить триггеры в требуемое состояние можно, например, посредством команд CLR RS0, CLR RS1, SETB RS0 и SETB RS1. Рабочие регистры R0 и R1 текущего банка могут использоваться при косвенной адресации внутренней и внешней памяти данных.
Адресам памяти текущего банка рабочих регистров R0‑R7 в языке ассемблера присвоены символические имена AR0‑AR7 соответственно. Распределение памяти ОЗУ процессора АТ89С51 представлено на рисунке 1.3.
Рис. 1.3. Распределение памяти ОЗУ процессора АТ89С51
1.3.4 Характеристики средств языка ассемблера
Средства языка ассемблера обеспечивают модульный способ построения программы. Программный модуль, записанный на языке ассемблера, называется исходным модулем. Результат трансляции исходного модуля – объектный модуль.
Исходная программа представляет собой последовательность предложений языка, сгруппированных в сегменты и оформленных в виде файла. Сегменты исходного модуля содержат описание машинных команд, данных, адресов и служат для генерации абсолютных или перемещаемых сегментов объектного модуля.
В зависимости от устройства памяти и способа адресации данных в этой памяти сегменты исходного модуля делятся на 4 типа:
· CODE, который используется для определения команд, данных и адресов в пространстве памяти команд;
· XDATA, который используется для определения адресов в пространстве внешней памяти данных;
· DATA, который используется для определения прямых адресов в пространстве внутренней памяти данных;
· IDATA, который используется для определения косвенных адресов в пространстве внутренней памяти данных;
· BIT, который используется для определения прямых побитовых адресов в пространстве внутренней памяти данных.
При описании перемещаемого сегмента ему присваивается имя и тип, а также определяется способ его объединения с одноименными сегментами, описанными в других исходных модулях. Абсолютным сегментам присваивается только тип. Они не могут быть объединены с другими сегментами.
В языке ассемблера имеются средства для организации символических ссылок между различными программными модулями.
Программа в общем случае строится из набора абсолютных и перемещаемых объектных модулей и представляет собой абсолютный объектный модуль.
Преобразование исходного модуля в объектный осуществляется ассемблером за два просмотра. В процессе первого просмотра выделяются все символические имена, определенные пользователем, а также распределяются адреса в соответствующих пространствах памяти. В процессе второго просмотра генерируется объектный модуль и формируется листинг, содержащий объектный код, соответствующий текст исходной программы и сообщения об ошибках. На этапе трансляции для каждого сегмента исходного модуля создается свой счетчик адреса. В любой момент трансляции доступен только один счетчик адреса, называемый текущим.
1.4 Интерфейсы в системах связи
В условиях увеличивающейся сложности современной техники фирмы-производители уделяют всё большее внимание стандартизации средств сопряжения. В первую очередь представляют интерес открытые стандарты, позволяющие объединять в одну систему аппаратные и программные средства различных производителей. Идея стандартизации интерфейсов не является новой в вычислительной технике, т.к. Использование стандартных подходов повышает гибкость системы в целом, даёт экономию капиталовложений в аппаратное и программное обеспечение.
1.4.1 Классификация интерфейсов
Рассматривая интерфейсы, используемые в измерительных системах, их целесообразно разделить на крейтовые и межкрейтовые. Крейтовые стандартные интерфейсы удобно применять для построения сосредоточенных измерительных систем. При этом единая конструкция и общий блок питания обеспечивают компактность и экономичность системы. Магистраль для связи модулей, которая располагается в крейте, обычно представляет собой высокопроизводительный параллельный интерфейс. Межкрейтовые интерфейсы используются в случае построения локальных и рассредоточенных измерительных систем, которые строятся на основе отдельных приборов и модулей.
Межкрейтовые интерфейсы. В начале 70‑х годов фирма Hewlett-Packard разработала восьмибитовое параллельное устройство сопряжения – «Hewlett-Packard Interface Bus» – для связи между измерительными приборами и управляющим компьютером на расстояниях до 20 м. И со скоростью до 1Мбит/с. В 1975 г. HP-IB был приведен IEEE к национальному стандарту США IEEE‑488, а в 1987 г. Опубликована его последняя версия: IEEE‑488.2. Международная электротехническая комиссия выпустила аналогичный стандарт в ноябре 1976 г. В России этот тип интерфейса стандартизован ГОСТ 26.003–80 «Система интерфейса для измерительных устройств с байт последовательным, бит параллельным обменом информацией» и известен также под названием «приборный интерфейс» и «канал общего пользования». Стандарт IEEE‑488 получил широкое распространение и поддерживается почти всеми производителями измерительных приборов. Он даёт возможность объединять до 15 различных приборов в локальную измерительную систему, управляемую компьютером.
Следующая большая группа межкрейтовых интерфейсов – последовательные интерфейсы. Преимуществами этих интерфейсов является значительная экономия средств благодаря меньшему количеству проводов в используемых кабелях связи и простоте гальванической развязке. Хотя некогда последовательный канал связи автоматически означал задержки при передаче информации, современные микропроцессоры могут обмениваться данными и по последовательным каналам со скоростями, вполне достаточными для удовлетворения требований выдвигаемых пользователями измерительных систем.
Зарубежными организациями, выпускающими стандарты на последовательные каналы связи, получившие широкое распространение, являются американская Ассоциация электронной промышленности, Международный консультативный комитет по телеграфии и телефонии международная организация по стандартизации.
В настоящее время существуют несколько широко используемых интерфейсов: RS‑232C/V.28, EIA‑232D/V.28, RS‑423, -422, – 485. Эти стандарты регламентируют обмен данными в последовательном канале на физическом уровне. Они учитывают особенности линии связи, рекомендуют оптимальные схемы соединения, оптимальные характеристики приёмников и передатчиков. Принципиальное различие перечисленных интерфейсов состоит в используемом типе линий связи. В этом отношении интерфейсы можно разделить на однопроводной, несимметричный, дифференциальный и симметричный дифференциальный.
К стандартам, описывающим однопроводной интерфейс, относятся EIA RS‑232C, EIA‑232D, аналогичные европейские спецификации CCITT V.24, V28 и рекомендация ISO 2110, а также российские ГОСТ 18145–81, 23675–79.
Первоначально интерес RS‑232 был разработан для сопряжения терминалов с модемами. Сейчас этим интерфейсом комплектуется большинство популярных компьютеров для связи с внешними устройствами, в том числе и персональные компьютеры IBM PC. Поскольку ядром любой современной измерительной системы служит компьютер, использование штатного машинного интерфейса – наиболее простой и дешёвый способ организации связи в рассредоточенной системе.
1.4.2 Основы асинхронной последовательной связи
Говоря о передаче данных, мы интересуемся передачей байтов данных от одного устройства к другому, например, от персонального компьютера к модему или к последовательному принтеру. Если мы имеем восемь линий между двумя устройствами, то мы можем назначить каждой линии бит и послать сразу один байт данных. Это будет параллельная передача. Таким образом работает параллельный порт персонального компьютера, кроме того, в дополнение к восьми линиям данных имеются другие сигнальные линии, оказывающие помощь в передаче данных.