F20-23 (1041603), страница 20
Текст из файла (страница 20)
Ниже перечислены основные характеристики ядра CIP-51:- Полная совместимость с MCS-51 по системе команд- Пиковая производительность 25 MIPS на частоте 25 МГц- Тактовая частота от 0 до 25МГц- 256 байт внутреннего ОЗУ- 8/4 8-разрядных порта ввода-вывода- Развитая система прерываний- Вход сброса- Различные режимы энергопотребления- Встроенные средства отладки- Защита памяти программ и данныхРисунок 12.1.
Структурная схема CIP-51D8D8D8РЕГИСТР BTMP2PSWD8D8АЛУРЕГИСТРАДРЕСАСОЗУСОЗУ(256 X 8)D8TMP1Указатель стекаD8АККУМУЛЯТОРD8D8ШИНА ДАННЫХШИНА ДАННЫХSFR_АдресБуферD8Указатель данныхD8D8Интерфейсрегистровспециальногоназначения(SFR)SFR_УправлениеSFR_Запись_данныхSFR_Чтение данныхИнкрементор ПСMEM_АдресD8Программный счетчик (ПС)MEM_УправлениеРег. адр.
памяти программA16Интерфейспамяти(MEMORY)MEM_Запись_данныхMEM_Чтение_данныхКонвейерСБРОСD8ЛогикаУправлениятактовыеимпульсыD8СТОПОЖИДАНИЕ101Регистр управлениярежимами питанияИнтерфейспрерыванийСистемныепрерыванияПрерывание отэмулятораD8Ред. 1.4C8051F020/1/2/3ПроизводительностьCIP-51 использует конвейерную архитектуру, что существенно повышает скорость исполнения команд посравнению со стандартной архитектурой 8051.
В МК с архитектурой 8051 все команды, кроме MUL и DIV,исполняются за 12 или 24 тактовых цикла, а максимальная тактовая частота составляет обычно 12 МГц. МК сядром CIP-51 исполняют 70% своих команд за один или два тактовых цикла, и ни одна команда не требуетболее восьми тактовых циклов.При работе на максимальной тактовой частоте 25 МГц производительность ядра CIP-51 может достигать25 MIPS. Система команд CIP-51 состоит из 109 команд, которые требуют от одного до восьми тактовых цикла:Количество командКоличество тактовых циклов26150252/314373/43414/52518Средства поддержки программирования и отладкиПоследовательный интерфейс JTAG предназначен для внутрисистемного программирования Flashпамяти программ и взаимодействия со встроенными средствами отладки. Кроме этого перепрограммируемаяFlash-память может быть прочитана и изменена прикладной программой в любое время в побайтном режиме,используя команды MOVC и MOVX.
Эта возможность позволяет использовать память программ длядолговременного хранения данных, а также обновлять программный код под управлением программы.Встроенные аппаратные средства отладки позволяют осуществлять внутрисхемную отладку в режимереального времени, при этом возможны расстановка точек останова и временных меток, запуск, остановка ипошаговое исполнение программы (включая процедуры обработки прерываний), проверка программного стека,чтение/запись содержимого регистров и памяти.
Это метод отладки является «неразрушающим», не требуетвмешательства в структуру отлаживаемой системы и использования внутренних ресурсов МК (например, ОЗУ,стека, памяти и др.).CIP-51 поддерживается аппаратными и программными средствами разработки от фирмы SiliconLaboratories и других фирм. Фирма Silicon Laboratories предлагает интегрированную среду проектирования(IDE), которая включает в себя редактор, макроассемблер, отладчик и программатор.
Отладчик ипрограмматор, входящие в состав IDE, взаимодействуют с CIP-51 посредством JTAG интерфейса, чтопозволяет осуществлять быстрое и эффективное программирование МК и его отладку. Доступны такжемакроассемблеры и С-компиляторы независимых фирм-производителей.12.1. СИСТЕМА КОМАНДСистема команд CIP-51 полностью совместима с системой команд MCS-51™, поэтому разработкапрограммного обеспечения может осуществляться с использованием средств проектирования для стандартнойархитектуры 8051. Все команды CIP-51 являются двоичным и функциональным эквивалентом аналогичныхкоманд MCS-51™, включая коды операций, режимы адресации и изменение флагов состояния.
Однако, повремени выполнения команды отличаются.12.1.1. Команды и тактированиеВо многих МК с архитектурой 8051 существует различие между машинным циклом и цикломтактирования, при этом машинный цикл длится от 2 до 12 циклов тактирования. Однако, CIP-51 основанисключительно на синхронизации тактовым сигналом и все временные параметры команд приводятся наоснове циклов тактирования.Благодаря конвейерной архитектуре CIP-51, количество тактовых циклов, требуемых для выполнениябольшинства команд, равно количеству байтов в команде.
Команды условных переходов требуют длязавершения на один цикл меньше, если переход не происходит (по сравнению с тем случаем, когда переходпроисходит). Система команд CIP-51 приведена в таблице 12.1, которая содержит мнемонику, количествобайтов и количество тактовых циклов для каждой команды.12.1.2. Команда MOVX и память программВ CIP-51 команда MOVX используется для доступа к трем типам памяти: встроенной XRAM, внешнейXRAM, встроенной Flash-памяти программ.
Возможность доступа к Flash-памяти программ обеспечиваетмеханизм, посредством которого программа пользователя может обновлять программный код и использоватьобласть памяти программ для долговременного хранения данных (см. раздел 15). Интерфейс внешней памятиобеспечивает быстрый доступ к внешней XRAM (или отображенным на память периферийным модулям) спомощью команды MOVX (см. раздел 16).Ред. 1.4102C8051F020/1/2/3Таблица 12.1. Система команд CIP-51МнемоникакомандыADD A,RnADD A,directADD A,@RiADD A,#dataADDC A,RnADDC A,directADDC A,@RiADDC A,#dataSUBB A,RnSUBB A,directSUBB A,@RiSUBB A,#dataINC AINC RnINC directINC @RiDEC ADEC RnDEC directDEC @RiINC DPTRMUL ABDIV ABDA AANL A,RnANL A,directANL A,@RiANL A,#dataANL direct,AANL direct,#dataORL A,RnORL A,directORL A,@RiORL A,#dataORL direct,AORL direct,#dataXRL A,RnXRL A,directXRL A,@RiXRL A,#dataXRL direct,AXRL direct,#dataCLR ACPL ARL ARLC A103ОписаниеАРИФМЕТИЧЕСКИЕ ОПЕРАЦИИСложение аккумулятора с регистром (n = 0…7)Сложение аккумулятора с прямо-адресуемым байтомСложение аккумулятора с косвенно-адресуемым байтом ОЗУСложение аккумулятора с константойСложение аккумулятора с регистром и переносомСложение аккумулятора с прямо-адресуемым байтом и переносомСложение аккумулятора с косвенно-адресуемым байтом ОЗУ и переносомСложение аккумулятора с константой и переносомВычитание из аккумулятора регистра и заемаВычитание из аккумулятора прямо-адресуемого байта и заемаВычитание из аккумулятора косвенно-адресуемого байта ОЗУ и заемаВычитание из аккумулятора константы и заемаИнкремент аккумулятораИнкремент регистраИнкремент прямо-адресуемого байтаИнкремент косвенно-адресуемого байта ОЗУДекремент аккумулятораДекремент регистраДекремент прямо-адресуемого байтаДекремент косвенно-адресуемого байта ОЗУИнкремент указателя данныхУмножение аккумулятора на регистр ВДеление аккумулятора на регистр ВДесятичная коррекция аккумулятораЛОГИЧЕСКИЕ ОПЕРАЦИИЛогическое И аккумулятора и регистраЛогическое И аккумулятора и прямо-адресуемого байтаЛогическое И аккумулятора и косвенно-адресуемого байта ОЗУЛогическое И аккумулятора и константыЛогическое И прямо-адресуемого байта и аккумулятораЛогическое И прямо-адресуемого байта и константыЛогическое ИЛИ аккумулятора и регистраЛогическое ИЛИ аккумулятора и прямо-адресуемого байтаЛогическое ИЛИ аккумулятора и косвенно-адресуемого байта ОЗУЛогическое ИЛИ аккумулятора и константыЛогическое ИЛИ прямо-адресуемого байта и аккумулятораЛогическое ИЛИ прямо-адресуемого байта и константыИсключающее ИЛИ аккумулятора и регистраИсключающее ИЛИ аккумулятора и прямо-адресуемого байтаИсключающее ИЛИ аккумулятора и косвенно-адресуемого байта ОЗУИсключающее ИЛИ аккумулятора и константыИсключающее ИЛИ прямо-адресуемого байта и аккумулятораИсключающее ИЛИ прямо-адресуемого байта и константыСброс аккумулятораИнверсия аккумулятораСдвиг аккумулятора влево циклическийСдвиг аккумулятора влево через переносРед.
1.4БайтыЦиклы12121212121211211121111112221222122211221122148112122312122312122311111222231222231222231111C8051F020/1/2/3МнемоникакомандыRR ARRC ASWAP AMOV A,RnMOV A,directMOV A,@RiMOV A,#dataMOV Rn,AMOV Rn,directMOV Rn,#dataMOV direct,AMOV direct,RnMOV direct,directMOV direct,@RiMOV direct,#dataMOV @Ri,AMOV @Ri,directMOV @Ri,#dataMOV DPTR,#data16MOVC A,@A+DPTRMOVC A,@A+PCMOVX A,@RiMOVX @Ri,AMOVX A,@DPTRMOVX @DPTR,APUSH directPOP directXCH A,RnXCH A,directXCH A,@RiXCHD A,@RiCLR CCLR bitSETB CSETB bitCPL CCPL bitANL C,bitANL C,/bitORL C,bitORL C,/bitMOV C,bitMOV bit,CJC relОписаниеБайтыЦиклыСдвиг аккумулятора вправо циклическийСдвиг аккумулятора вправо через переносОбмен местами тетрад в аккумулятореКОМАНДЫ ПЕРЕДАЧИ ДАННЫХПересылка в аккумулятор из регистра (n = 0…7)Пересылка в аккумулятор прямо-адресуемого байтаПересылка в аккумулятор косвенно-адресуемого байта ОЗУЗагрузка в аккумулятор константыПересылка в регистр из аккумулятораПересылка в регистр прямо-адресуемого байтаЗагрузка в регистр константыПересылка по прямому адресу аккумулятораПересылка по прямому адресу регистраПересылка прямо-адресуемого байта по прямому адресуПересылка косвенно-адресуемого байта ОЗУ по прямому адресуПересылка по прямому адресу константыПересылка в косвенно-адресуемую ячейку ОЗУ аккумулятораПересылка в косвенно-адресуемую ячейку ОЗУ прямо-адресуемогобайтаПересылка в косвенно-адресуемую ячейку ОЗУ константыЗагрузка указателя данныхПересылка в аккумулятор байта из памяти программПересылка в аккумулятор байта из памяти программПересылка в аккумулятор байта из внешней памяти данныхПересылка байта из аккумулятора во внешнюю память данныхПересылка в аккумулятор из расширенной внешней памяти данныхПересылка из аккумулятора в расширенную внешнюю память данныхЗагрузка в стекИзвлечение из стекаОбмен аккумулятора с регистромОбмен аккумулятора с прямо-адресуемым байтомОбмен аккумулятора с косвенно-адресуемым байтом ОЗУОбмен младшей тетрады аккумулятора с младшей тетрадойкосвенно-адресуемого байта ОЗУОПЕРАЦИИ С БИТАМИСброс переносаСброс битаУстановка переносаУстановка битаИнверсия переносаИнверсия битаЛогическое И бита и переносаЛогическое И инверсии бита и переносаЛогическое ИЛИ бита и переносаЛогическое ИЛИ инверсии бита и переносаПересылка бита в переносПересылка переноса в битПереход, если перенос равен единице1111111212122223231122212222323222231111112212123333333221221212121222222221212122222222/3Ред.
1.4104C8051F020/1/2/3МнемоникакомандыJNC relJB bit,relJNB bit,relJBC bit,relACALL addr11LCALL addr16RETRETIAJMP addr11LJMP addr16SJMP relJMP @A+DPTRJZ relJNZ relCJNE A,direct,relCJNE A,#data,relCJNE Rn,#data,relCJNE@Ri,#data,relDJNZ Rn,relDJNZ direct,relNOP105ОписаниеБайтыЦиклыПереход, если перенос равен нулюПереход, если бит равен единицеПереход, если бит равен нулюПереход, если бит установлен, с последующим сбросом битаПРОГРАММНЫЕ ПЕРЕХОДЫАбсолютный вызов подпрограммы в пределах страницы в 2 КбайтаДлинный вызов подпрограммыВозврат из подпрограммыВозврат из подпрограммы обработки прерыванияАбсолютный переход внутри страницы в 2 КбайтаДлинный переход в полном объеме памяти программКороткий относительный переход внутри страницы в 256 байтКосвенный относительный переходПереход, если аккумулятор равен нулюПереход, если аккумулятор не равен нулюСравнение аккумулятора с прямо-адресуемым байтом и переход, еслине равноСравнение аккумулятора с константой и переход, если не равноСравнение регистра с константой и переход, если не равноСравнение косвенно-адресуемого байта ОЗУ с константой и переход,если не равноДекремент регистра и переход, если не нульДекремент прямо-адресуемого байта и переход, если не нульХолостая команда23332/33/43/43/42311232122345534332/32/333/4333/43/434/52312/33/41Ред.
1.4C8051F020/1/2/3Условные обозначения:Rn - Регистр R0-R7 выбранного банка регистров.@Ri – Ячейка ОЗУ данных, адресуемая косвенно через регистры R0-R1rel - 8-битное смещение со знаком (в дополнительном коде) относительно первого байта следующейкоманды. Используется командой SJMP и всеми командами условных переходов.direct - 8-битный адрес ячейки внутреннего ОЗУ данных.