Разработка программной и аппаратной поддержки к методическим указаниям Программирование микроконтроллеров
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
внешними устройствами реализуется через параллельные порты ввода/вывода. Во многих МК выводы этих портов служат также для выполнения других функций, например последовательного или аналогового ввода/вывода.
Во многих МК отдельные выводы портов могут быть запрограммированы на ввод или вывод данных. Необходимо обратить особое внимание на то, при вводе данных считывается значение сигнала, поступающего на внешний вывод, а не содержимое триггера данных. Если к внешнему выводу подключены выводы других устройств, то они могут установить свой уровень выходного сигнала, который будет считан вместо ожидаемого значения данных, записанных в триггер. В некоторых МК существует возможность выбора между чтением данных, установленных на выходе триггера или на внешнем выводе.
Когда на шину необходимо вывести 0 или 1, то сначала записывают соответствующее значение в триггер данных, а затем с помощью триггера управления на выходе устанавливается необходимый уровень потенциала. Триггер управления разрешает вывод данных на шину. В современных МК обеспечивается индивидуальный доступ к триггерам данных и управления с помощь адресной шины.
Внешний вывод может быть также использован для подачи запроса прерывания. Это обычно реализуется, когда вывод работает в режиме ввода.
Наиболее распространенный вид связи между различными электронно-вычислительными системами это последовательный обмен. В этом случае байт данных передается по единственному проводу бит за битом с обеспечением синхронизации между приемником и источником данных. Очевидное преимущество последовательной передачи данных состоит в том, что она требует небольшого количества линий связи.
Существует множество стандартных последовательных протоколов передачи данных. В некоторых МК эти протоколы реализуются внутренними схемами, размещенными на кристалле, что позволят упростить разработку различных приложений.
Аналоговый компаратор.
Часто в МК встраивается аналоговый компаратор напряжений. Компаратор представляет собой простую схему, которая, которая сравнивает два напряжения. Обычно один сигнал называют входным, а другой опорным.[7] На выходе устанавливается 1, если входное напряжение больше, чем опорное (см. рис. 1.6). этот способ наиболее удобно использовать в таких устройствах, как термостаты, где необходимо контролировать достижение определенного уровня измеряемой величины, которая задается значением входного напряжения.
Рис. 1.6. Сигналы на входе и выходе аналогового компаратора.
Программирование устройств.
Программирование устройств, в том числе и микроконтроллеров обычно происходит следующим образом. В регистр программатора загружается значение, которое необходимо разместить по определенному адресу, затем включается схема, которая пересылает содержимое этого регистра по заданному адресу, проходит некоторое время ожидания, пока завершиться процесс программирования выбранной ячейки памяти и, на конец, выполняется верификация, т.е. проверяется правильность записанного значения. Программирование всего устройства может занять от нескольких секунд до нескольких минут в зависимости от размера памяти и алгоритма программирования.
Часто оборудования для программирования оказывается слишком дорогим, особенно для радиолюбителей и предприятий малого бизнеса. Но в некоторых случаях для программирования требуется весьма простое и доступное оборудование. К примеру, некоторые модели PIC и AVR микроконтроллеров программируются очень легко. Существует также устройства, которые не требуют оборудования для программирования, на пример, МК Basic STAMP, или имеют встроенный аппаратно-программный блок, избавляющий от необходимости использования внешнего оборудования, кроме источника повышенного напряжения для программирования, как МК 68НС05.
Очень важный аспект, касающийся программирования устройств, заключается в том, что может ли устройство быть запрограммировано в системе. Это называется внутрисистемное программирование (ВСП) от английского In-System Programming (ISP). Если МК допускает возможность такого программирования, то это означает, что он может быть смонтирован на плату с пустой памятью программ, которая затем может быть запрограммирована без какого либо влияния на остальные компоненты схемы. Это может стать важным обстоятельством при выборе МК. Использование ВСП избавляет МК от необходимость покупать специальный программатор, дает возможность обновлять программное обеспечения без изменения расположенных на плате аппаратных средств и позволяет производителям создавать запас готовых изделий, которые могут легко модифицироваться в соответствии с поступающими заказами.
Безопасность памяти программ.
Для многих приложений желательно защитить программный код, записанный в МК. Чтобы обеспечить такую возможность многие МК содержат специальные средства для предотвращения считывания хранящихся в них программ. Часто такая возможность реализуется путем установки определенного значения конфигурационного бита в процессе программирования. Обычно значения этого бита можно изменить только в процессе перепрограммирования содержимого памяти МК, например при УФ стирании содержимого EPROM.
Встроенная защита не может предотвратить все возможности считывания программного кода. Такое считывание можно произ