Leff
20.05.2012, 12:54
У меня есть знакомые радиолюбители, с большим опытом работы с различной электроникой, но по разным причинам не освоившим работу микроконтроллеров.
Попытаюсь тут изложить мой вариант учебного курса для этой категории "начинающих эмбеддеров". :)
Рассматриваю только варианты на микроконтроллере 8051 (совместимый с 8052).
Для создания собственного проекта на МК 8051 нужно сделать несколько вещей:
1. Купить программатор и демоплату.
2. Нужно установить на компьютер компилятор (среду программирования) поддерживающий программатор и выбранный МК.
3. Найти в интернет демопроект соответсвующий среде программирования и МК. Или написать свой.
Варианты с прграммированием на Ассемблере не рассматриваю, т.к. они сложны для "этой категории" начинающих эмбеддеров. Язык Си намного проще в освоении - с ним и будем работать.
У меня есть несколько вариантов демоплат, но так как мне нужны в настоящий момент микроконтроллеры фирмы SiLabs и я уже купил программатор и демоплату для МК S8051F320, то буду рассматривать этот вариант. Мне так проще.
Фирма SiLabs предлагает свою среду программирования IDE, в которую можно подключить несколько разных компиляторов. Компиляторы могут быть платные и бесплатные - их выбор предлагается сделать пользователю. Одновременно с этим делается упор на программный продукт фирмы Keil, предлагают специальный драйвер программатора и т.д.
В интернете пишут, что Keil взяли за основу компилятор Franklin (купили фирму вместе с ее продуктом) и усовершенствовали его. Мне приходилось раньше работать с компилятором Franklin, поэтому выбор среды программирования Keil предпочтителен.
Есть еще популярный компилятор фирмы IAR, для МК 8051. Кстати, на его досовском варианте (DOS) мне посчастливилось изучать язык ANSI C.
В ДОС удобно изучать еще и потому, что там все этапы компиляции видны, наглядны и доступны. Имеется его полное описание на русском языке. Что есть большая редкость.
Предлагаю изучать язык программирования ANSI C и принципы работы компилятора на ДОС версии IAR. А сам учебный проект делать на современной windows версии Keil.
Среды программирования Keil и IAR дают возможность делать небольшие учебные проекты с размером кода до 2 или 8 кБайт ( у всех фирм по разному, бывает до 32 кБайт). Обьем 8 кБайт достаточно для работы очень многих устройств. Трудно в 8 кб реализовать расчеты с плавающей точкой или интернет приложения, а портативный измерительный прибор или устройство автоматики - без проблем.
Микроконтроллер Intel 8052 отличается от Intel 8051 расширенными возможностями. Традиционно их называют i8051, но фактически выпускаются только 8052.
В старых моделях на кристалле был только микропроцессор. Например, в отечественном аналоге КР1816ВЕ31 (i8031) вообще не было никакой памяти - ни ПЗУ, ни ОЗУ. Только "голый" процессор. Вся память была внешней. В современных МК 8052 на криссталее установлена многократно перепрограммируемая память программ (Flash), электрически программируемая память (ПЗУ) данных , оперативная память (ОЗУ), а кроме этого АЦП, ЦАП, компараторы, ШИМ, Интерфейсы с аппаратной поддержкой - I2C, SPI, UART, USB, Ethernet и т.д. Все, что кроме памяти и ядра называют "периферией".
В старых 8051 одна команда (типовая пересылка одного байта из регистра в регистр) выполнялась за 12 тактов генератора. Если частота генератора 12 мГц, то МК имел производительность 1 млн операций в секунду. Во многих современных 8052 одна операция выполняется за 1 такт, соответственно производительность равна тактовой частоте, при 25 мГц - 25 млн операций в секунду. Для сравнения IBM PC имел 8 Мгц генератор, 8-разрядную шину данных и одну команду выполнял за 12 тактов.
Есть модели МК 8051 с тактовой частотой 400 мГц и более.
Ядро 8051 удобно изучать по книге: Однокристальные микро ЭВМ. Справочник. Бобрыкин А.В. и др. М.: МИКАП, 1994 - 400 с.
В интернете много электронных копий этой книги, - позже выложу ее на файлообменник.
Язык программирования ANSI C подробно описан в документации к компилятору DOS IAR.
Там же описание работы компилятора DOS IAR для МК 8051, что тоже является общим для всех других компиляторов - есть небольшие отличия, но не существенные. Сам принцип общий.
Для начала нужно изучить материал, в книге "Однокристальные микро ЭВМ" начиная с 107 страницы, о принципах работы ядра 8051.
Затем изучить описание языка ANSI C.
Далее прочитать документацию на компилятор DOS IAR.
Это необходимый минимум. :)
Компилятор создает файл обычно формата HEX (расширение типа - name.hex, но бывают и другие форматы) который с помощью программатора загружается в область памяти программ (Flash). Этот код выполняется МК. Обычно всегда бывают ошибки - среды программирования предоставляют различные инструменты для отладки кода программы. Собственно этим они и отличаются друг от друга.
Продолжение следует... :rolleyes:
Попытаюсь тут изложить мой вариант учебного курса для этой категории "начинающих эмбеддеров". :)
Рассматриваю только варианты на микроконтроллере 8051 (совместимый с 8052).
Для создания собственного проекта на МК 8051 нужно сделать несколько вещей:
1. Купить программатор и демоплату.
2. Нужно установить на компьютер компилятор (среду программирования) поддерживающий программатор и выбранный МК.
3. Найти в интернет демопроект соответсвующий среде программирования и МК. Или написать свой.
Варианты с прграммированием на Ассемблере не рассматриваю, т.к. они сложны для "этой категории" начинающих эмбеддеров. Язык Си намного проще в освоении - с ним и будем работать.
У меня есть несколько вариантов демоплат, но так как мне нужны в настоящий момент микроконтроллеры фирмы SiLabs и я уже купил программатор и демоплату для МК S8051F320, то буду рассматривать этот вариант. Мне так проще.
Фирма SiLabs предлагает свою среду программирования IDE, в которую можно подключить несколько разных компиляторов. Компиляторы могут быть платные и бесплатные - их выбор предлагается сделать пользователю. Одновременно с этим делается упор на программный продукт фирмы Keil, предлагают специальный драйвер программатора и т.д.
В интернете пишут, что Keil взяли за основу компилятор Franklin (купили фирму вместе с ее продуктом) и усовершенствовали его. Мне приходилось раньше работать с компилятором Franklin, поэтому выбор среды программирования Keil предпочтителен.
Есть еще популярный компилятор фирмы IAR, для МК 8051. Кстати, на его досовском варианте (DOS) мне посчастливилось изучать язык ANSI C.
В ДОС удобно изучать еще и потому, что там все этапы компиляции видны, наглядны и доступны. Имеется его полное описание на русском языке. Что есть большая редкость.
Предлагаю изучать язык программирования ANSI C и принципы работы компилятора на ДОС версии IAR. А сам учебный проект делать на современной windows версии Keil.
Среды программирования Keil и IAR дают возможность делать небольшие учебные проекты с размером кода до 2 или 8 кБайт ( у всех фирм по разному, бывает до 32 кБайт). Обьем 8 кБайт достаточно для работы очень многих устройств. Трудно в 8 кб реализовать расчеты с плавающей точкой или интернет приложения, а портативный измерительный прибор или устройство автоматики - без проблем.
Микроконтроллер Intel 8052 отличается от Intel 8051 расширенными возможностями. Традиционно их называют i8051, но фактически выпускаются только 8052.
В старых моделях на кристалле был только микропроцессор. Например, в отечественном аналоге КР1816ВЕ31 (i8031) вообще не было никакой памяти - ни ПЗУ, ни ОЗУ. Только "голый" процессор. Вся память была внешней. В современных МК 8052 на криссталее установлена многократно перепрограммируемая память программ (Flash), электрически программируемая память (ПЗУ) данных , оперативная память (ОЗУ), а кроме этого АЦП, ЦАП, компараторы, ШИМ, Интерфейсы с аппаратной поддержкой - I2C, SPI, UART, USB, Ethernet и т.д. Все, что кроме памяти и ядра называют "периферией".
В старых 8051 одна команда (типовая пересылка одного байта из регистра в регистр) выполнялась за 12 тактов генератора. Если частота генератора 12 мГц, то МК имел производительность 1 млн операций в секунду. Во многих современных 8052 одна операция выполняется за 1 такт, соответственно производительность равна тактовой частоте, при 25 мГц - 25 млн операций в секунду. Для сравнения IBM PC имел 8 Мгц генератор, 8-разрядную шину данных и одну команду выполнял за 12 тактов.
Есть модели МК 8051 с тактовой частотой 400 мГц и более.
Ядро 8051 удобно изучать по книге: Однокристальные микро ЭВМ. Справочник. Бобрыкин А.В. и др. М.: МИКАП, 1994 - 400 с.
В интернете много электронных копий этой книги, - позже выложу ее на файлообменник.
Язык программирования ANSI C подробно описан в документации к компилятору DOS IAR.
Там же описание работы компилятора DOS IAR для МК 8051, что тоже является общим для всех других компиляторов - есть небольшие отличия, но не существенные. Сам принцип общий.
Для начала нужно изучить материал, в книге "Однокристальные микро ЭВМ" начиная с 107 страницы, о принципах работы ядра 8051.
Затем изучить описание языка ANSI C.
Далее прочитать документацию на компилятор DOS IAR.
Это необходимый минимум. :)
Компилятор создает файл обычно формата HEX (расширение типа - name.hex, но бывают и другие форматы) который с помощью программатора загружается в область памяти программ (Flash). Этот код выполняется МК. Обычно всегда бывают ошибки - среды программирования предоставляют различные инструменты для отладки кода программы. Собственно этим они и отличаются друг от друга.
Продолжение следует... :rolleyes: