|
МИР ЭЛЕКТРОНИКИ
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Микроконтроллеры семейства AVR Общие сведения AVR - самая обширная производственная линии среди других флэш-микроконтроллеров корпорации Atmel. Atmel представила первый 8-разрядный флэш-микроконтроллер в 1993 году и с тех пор непрерывно совершенствует технологию. Прогресс данной технологии наблюдался в снижении удельного энергопотребления (мА/МГц), расширения диапазона питающих напряжений (до 1.8 В) для продления ресурса батарейных систем, увеличении быстродействия до 16 млн. операций в секунду, встройкой реально-временных эмуляторов и отладчиков, реализации функции самопрограммирования, совершенствовании и расширении количества периферийных модулей, встройке специализированных устройств (радиочастотный передатчик, USB-контроллер, драйвер ЖКИ, программируемая логика, контроллер DVD, устройства защиты данных) и др. Успех AVR-микроконтроллеров объясняется возможностью простого выполнения проекта с достижением необходимого результата в кратчайшие сроки, чему способствует доступность большого числа инструментальных средств проектирования, поставляемых, как непосредственно корпорацией Atmel, так и сторонними производителями. Ведущие сторонние производители выпускают полный спектр компиляторов, программаторов, ассемблеров, отладчиков, разъемов и адаптеров. Отличительной чертой инструментальных средств от Atmel является их невысокая стоимость. Другой особенностью AVR-микроконтроллеров, которая способствовала их популяризации, это использование RISC-архитектуры, которая характеризуются мощным набором инструкций, большинство которых выполняются за один машинный цикл. Это означает, что при равной частоте тактового генератора они обеспечивают производительность в 12 (6) раз больше производительности предшествующих микроконтроллеров на основе CISC-архитектуры (например, MCS51). С другой стороны, в рамках одного приложения с заданным быстродействием, AVR-микроконтроллер может тактироваться в 12 (6) раз меньшей тактовой частотой, обеспечивая равное быстродействие, но при этом потребляя гораздо меньшую мощность. Таким образом, AVR-микроконтроллеры представляют более широкие возможности по оптимизации производительности/энергопотребления, что особенно важно при разработке приложений с батарейным питанием. Микроконтроллеры обеспечивает производительность до 16 млн. оп. в секунду и поддерживают флэш-память программ различной емкости: 1… 256 кбайт. AVR-архитектура оптимизирована под язык высокого уровня Си, а большинство представителей семейства megaAVR содержат 8-канальный 10-разрядный АЦП, а также совместимый с IEEE 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры megaAVR с флэш-памятью емкостью 16 кбайт и более могут программироваться через интерфейс JTAG. Производительность, приближающаяся к 1 MIPS/МГц
Микроконтроллеры с архитектурой AVR
Мироконтроллеры с архитектурой MegaAVR
Все приборы семейства AT90S совместимы по исходным кодам и тактированию. Семейство обеспечено комплектом программ и системами отладки, включающими: макро-ассемблеры, отладчики/симуляторы программ, внутрисхемные эмуляторы, и отладочные устройства. Микроконтроллеры семейства AT90S поставляются в очищенном состоянии - содержимое и Flash памяти программ и ЭСППЗУ данных находится в состоянии FF и готово к программированию. Объединение на одном кристалле усовершенствованного 8-разрядного RISC ЦПУ с загружаемым Flash ПЗУ позволило фирме создать мощный микроконтроллер, обеспечивающий высокую гибкость и экономичность в использовании прибора в качестве встраиваемого контроллера. Примечание: Более подробную информацию можно почерпнуть на web-странице html.cgi\txt\ic\Atmel\micros\avr\about.htm. 2. Технология составления программ в релейно-контактной логике. В релейно контактной логике принято использовать следующую мнемонику: -{ }- - прямой опрос входа; -{/}- - инверсный опрос входа; -( )- - включить выход; -(S )- - включить выход и зафиксировать (триггер); -(R )- - выключить выход и зафиксировать (триггер); Примеры программ. Пример 1. (прямой и инверсный опрос выходов) 10100 10101 00010 !--------{ }-------------{/}-----------( )-! Выход 00010 устанавливается в логическую единицу в случае логическая цепь 10100 находится в состоянии логической единицы контакт замкнут, а 10101 - в состоянии логического нуля контакт разомкнут. Пример 2. (установка и сброс триггера) 10100 T1 (2200) !--------{ }------------------( S )-! 10200 T1 !--------{ }------------------( R )-! Выход триггера 2200 устанавливается в логическую единицу в случае логическая цепь 10100 находится в состоянии логической единицы и сбрасывается только если вход 10200 установлен. Пример 3. (таймер на включение TWD) TWD 10 2500 ПРК 0050 !--------{ }------------------( )-! TWD 10 ПРК 0050 00020 !--------{ }------------------( )-! Таймер TWD 10 включится после установки единицу сигнала 2500. Через 5 сек таймер TWD10 включит выход 00020. Такт -десятая доля секунды. Пример 3. (таймер на отключение TOD) TOD 10 2222 ПРК 0030 !--------{ }------------------( )-! TOD 10 ПРК 0030 00011 !--------{ }------------------( )-! Таймер TOD 10 выключит выход 00011 через 3 сек таймер, после того как условия в его управляющей цепи станут ложными то есть сигнал 2222 выключен (разомкнут). Такт -десятая доля секунды. Пример 3. (таймер накапливающий THC) THC 10 2222 ПРК 0003 !--------{ }------------------( )-!
THC 10 ПРК 0003 00011 !--------{ }------------------( )-!
2501 CBC 10 !--------{ }------------------( )-! Таймер THC 10 начинает считать с тактом в секунду после замыкания сигнала 2222. Через счета в 3 импульса таймер включает выход 00011. Таймер будет сработанным до тех пор пока не пройдет сигнал сброс таймера CBC10 (замкнется контакт 2501). Пример 3. (счетчик накапливающий СHC) СHC 11 2122 ПРК 0033 !--------{ }------------------( )-!
СHC 11 ПРК 0033 00013 !--------{ }------------------( )-!
2503 CBC 11 !--------{ }------------------( )-! Счетчик СHC 11 считает число переходов вего управляющей цепи из ложного в истинное (размыкание и замыкание сигнала 2122). Через 3 сосчитанных счетчик включает выход 00013. Счетчик будет сработанным до тех пор пока не пройдет сигнал сброса CBC11 (замкнется контакт 2503). Комбинируя командами приведенными создается логическая схема работы устройства. Для любого разработчика периферийного радиотехнического устройства очень важным представляется вопрос связи с ЭВМ высшего ранга. Это крайне важно т.к. получив данные от внешнего устройства их можно обработать в программе, написанной на языке высокого уровня. Я думаю, что неоспоримым можно считать тот факт, что программа, написанная на языке высокого уровня (например Delphi) содержит более богатый спектр команд нежели скажем в любом PIC или AVR микроконтроллере. Поэтому очень важно принять данные от микроконтроллера, обработать их и выдать ответ. Какие возможности предоставляет для организации передачи данных современная ЭВМ. На страницах интернета можно найти сведения о способах передачи через COM порта, USB порт и LPT порт. По моему мнению наиболее простым и достаточно эффективным является работа через LPT порт, т.к. передача данных через COM порт достаточно медленна, через USB требует применения специальных периферийных БИС и знания алгоритма их работы. Поэтому рассмотрим работу LPT порта. Стандартный параллельный порт ( Standart Parallel Port, сокращенно SPP) имеет три регистра, расположенные в пространстве ввода-вывода последовательно друг за другом см табл.1
Таблица 1. Адреса регистров LPT -порта LPT1 LP2 Назначение Регистр данных доступен для записи и считывания, применяется в основном для вывода информации. Регистр состояния доступен в основном только для чтения. Назначение разрядов регистра следующее: бит 0-2 - не используется , установлены в ноль; бит 3 -признак ошибки ввода вывода (0-ошибка, 1-нет ошибки); бит 4 - признак выбора устройства (0-выбрано устройство, 1-нет); бит 5- промежуточный (для принтера контроль наличия бумаги 0-бумага в наличии, 1-отсутствует); бит 6- подтверждение приема (0-подтверждение приема данных, 1-обычноесостояние); бит 7- признак занятости устройства (0-устройство занято, 1-устройство свободно). Формат регистра состояния устройства.
7 BUSY 6 ACK 5 PE 4 SLC OUT 3 Error 2 1 Не используется 0 бит 0 - строб записи данных (0-обычное состояние, 1-запись байта); бит 1 - промежуточный бит для принтера автоматический перевод строки после возврата каретки ; бит 2 - сброс устройства (0-полный сброс, 1-обычное состояние); бит 3 - выбор устройства (0- отмена выбора, 1-обычное состояние); бит 4 - разрешение прерывания от устройства. биты 5-7 не используются, установлены в ноль. Формат регистра управления устройством. 7 6 Не используются 5 4 IRQ 3 SLCTIN 2 INIT 1 AUTOFEED 0 STROBE
Для передачи байта данных необходимо выполнить следующие операции. 1. Поместить передаваемый байт в регистр данных. 2. Проверить готовность устройства, для чего прочитав регистр состояния и выделив старший разряд. 3. Загрузить в регистр управления код 0DH ( установка в 1 в регистре управления формирует сигнал стробирования данных); 4. Ожидать подтверждения сигнала приема данных (когда данные приняты, бит 6 регистра состояния сбрасывается); 5. Загрузить в регистр управления значение 0СH ( в результате чего стробирование данных снимается. Примечание: Современные операционные системы компьютеров запрещают пользователю непосредственную работу с регистрами LPT порта. На страницах интернета свободно распространяется программы Userport или Porttalk. Послн их установки запреты снимаются.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||