Проектирование автоматизированнь2х станков и комплексов (862477), страница 35
Текст из файла (страница 35)
Информация после записи в буферный регистр автоматически побитно выдается на линию связи в соответствии с протоколом выбранного режима. В буфере приемника также автоматически записывается информация,и после его заполнения наступает прерывание, при обработке которого следует считывать буфер приемника.В синхронном режиме буфер приемника или передатчика передает и принимает информацию через выводRxD,а через выводTxDведущим устройством выдаются импульсы синхронизации.Остальные три режима обмена УСАПП являются асинхронными. Информация передается через вывода принимается через выводФормат слова может бытьстарт-бит,1ОилиTxD,11 бит:8RxD.бит данных, дополнительный бит и стоп-бит.
Частота приема и передачи может быть кратнойчастоте резонатора или задаваться первым таймером-счетчикомT/Cl.Девятый бит используют или как бит четности для проверки достоверности передаваемой информации, или для организации магистральных линий связи(см. рис.13.4).В составе регистра управленияSCONесть специальный битSM2 -разрешение многопроцессорной работы. Если он установлен, прерывание приемника наступает только в том случае, если девятый бит слова равен«1».Когда ведущий сети намерен передать блок данных одному из ведомых микроконтроллеров, он выдает на линию слово с адресом ведомого. Адресноеслово отличается от слова данных тем, что в нем девятый бит данных всегдаравен«1»,а в слове данных-«О».
Таким образом, приSM2 = 1ни один изведомых микроконтроллеров не будет реагировать на слово данных, но все13.3.ОднокрисmШlьные микроконтроллеры в станках и станочных комплексах171среагируют на адресное слово. Проанализировав полученный адрес, адресуемый микроконтроллер сбрасывает свой битSM2,а остальные оставляют егобез изменения. После этого ведущий микроконтроллер может начинать выдачу на линию блока слов с «О» в девятом бите, на что будет реагироватьтолько адресуемый микроконтроллер.Система прерываний микроконтроллера является автовекторной с двумявнешними (выводыINТl порта РЗ) и тремя внутренними (два таймераINTO,и приемопередатчик) источниками.
Система прерываний, как и остальныересурсы, управляется регистрами специальных функций. Используя регистрразрешения прерываний, можно запретить все прерывания либо индивидуально разрешить их от отдельных источников. Регистр приоритетов устанавливает приоритеты прерываний.Система обеспечения надежности работы также интегрирована в современных микроконтроллерах. Основные причины сбоев в работе микроконтроллерапомехи по линиям связи с объектом управления и по цепям-питания.
Если напряжение питания упадет ниже установленного предела (дляMCS-51это4,6В при норме в5В), в счетчике команд микроконтроллеравозможен сбой, т. е. он не перейдет к выполнению следующей предписаннойкоманды, а считает из памяти программ неверный код или даже ссьшку наоперанд. Адекватной реакции на программный код не будет и микроконтроллер «подвиснет». Вернуть его к нормальной работе можно, только активизировав вывод сбросаReset.При этом в счетчике команд записывается «О» имикроконтроллер начинает правильно интерпретировать программное обеспечение.Одно из средств предотвращения таких сбоев(см.
рис.13.12,-компаратор напряженияд), который при падении напряжения ниже определенногопредела подключает резервный источник питания, а если напряжение падаетниже4,6 В, -сбрасывает микроконтроллер.Сторожевой таймерWDтакже относится к системе обеспечения надежности и призван обнаруживать программные сбои, наблюдая за исполнениемпрограммного обеспечения. Через определенные периоды времени сторожевой таймер пытается активизировать выводResetи сбросить микроконтроллер. В программное обеспечение микроконтроллера должна быть включенапроцедура, которая сама регулярно перезапускает сторожевой таймер . Кактолько работа программы будет нарушена, процедура сброса сторожевоготаймера вовремя не запустится и микроконтроллер будет перезагружен.13.3.3. Системакоманд и программирование микроконтроллераВ основе программного обеспечения, на каком бы языке его не разрабатывали, лежит система команд.
Система команд микроконтроллеров семействаMCS-51включает111команд, содержащих один, два или три байта и17213.Микроэлектронные устройства в станках и станочных комплексахвыполняемых за один, два или четыре (умножение, деление) машинных цикла. Длительность машинного цикла -1 мкс.Язык ассемблера описывает систему команд микроконтроллера.
Синтаксис его команд состоит из мнемонического обозначения предписанного действия, вслед за которым идут операнды или их адреса. Например, мнемоническое обозначениеMOV(переместить) используется18 различными командами для обработки трех типов данных (битов, байтов, адресов) в различныхадресных пространствах. Всего в ассемблере насчитьmается42мнемоники,которые при комбинации с различными способами адресации и составляют111 команд микроконтроллера.Используется четыре способа адресации: подразумеваемая, косвеннорегистровая, прямая и непосредственная.
При подразумеваемой или косвенно-регистровой адресации код команды содержит все необходимые сведенияоб операндах, и команда занимает всего один байт. Например, командаADDА,R7предписывает сложить аккумулятор А с содержимым регистраобщего назначенияи использует подразумеваемую адресацию, а по командеА микроконтроллер перешлет содержимое аккумуляR7MOVX @DPTR,тора в ячейку внешнего ОЗУ, адрес которой содержится в регистре DPTR.При прямой адресации адрес операнда следует за кодом команды, а при65непосредственнойманда SUВB А,за кодом команды следует значение операнда.
Так, копредписывает вычесть из аккумулятора А содержимоеячейки резидентного ОЗУ с адресомаккумулятора А числором-65.65, а команда SUВB А, #65 -вычесть изВ первом случае используется прямая, а во втонепосредственная адресация.Команды ассемблера удобно разделить на пять групп:1) пересылки данных;2) арифметические;3) логические с байтами;4) работы с битами (команды битового процессора);5) ветвления программ и передачи управления.Команды пересылки данных предназначены для обмена информациейвнутри резидентного ОЗУ, между аккумулятором и внешней памятью данных, а также между аккумулятором и памятью программ (резидентной иливнешней). Они используют мнемонику«MOV приемник,источник» и внутри резидентного ОЗУ позволяют комбинировать различные методы адресации.
Например, в командепрямая, в командекомандеMOV А, 27 используется подразумеваемая иMOV А, #27 - подразумеваемая и непосредственная, а вMOV 27, @RO -прямая и косвенно-регистровая адресация. Первая и вторая команды предписывают загрузить в аккумулятор А содержимое ячейки ОЗУ с адресомзить в ячейку с адресомрегистреRO.2727и число27соответственно, а третья-загрусодержимое ячейки, адрес которой находится вЯчейка внешнего ОЗУ объемом64Кбайт может быть выбранатолько с использованием косвенно-регистровой адресации через регистр13.3.ОднокрисmШlьные микроконтроллеры в станках и станочных комплексахDPTR ивозможна пересылка только в аккумулятор:из него:MOVX @DPTR, А.MOVXА,173@DPTR илиАрифметические команды включают операции сложения, сложения сучетом бита переноса, вычитания с заемом, инкрементирования (увеличенияна1),декрементирования, сравнения, умножения и деления.
Операции влияют на биты переполнения, переноса и четности в регистре состояния микроконтроллераPSW.В командах сложения и вычитания аккумулятор являетсяпервым операндом и принимает результат операции. Вторым операндом может быть регистр общего назначения, ячейка резидентного ОЗУ с косвеннорегистровой или прямой адресацией или непосредственно байт данных.
Выполняются эти команды в течение одного машинного цикла.DIVУмножение МUL АВ и делениеныхцикла.ДляихпроведениявАВ выполняются за четыре машинмикроконтроллереестьспециальныйрегистр В, в который записывают один из сомножителей или делитель. Второй сомножитель или делимое заносят в аккумулятор. После выполненияоперации умножения старший байт результата помещается в аккумулятор, амладшийостаток--в регистр В; после деления частное помещается в аккумулятор, ав регистр В.Логические команды с байтовыми переменными реализуют логическиеоперации И, ИЛИ и исключающее ИЛИ в аккумуляторе и байте-источнике.Второй операнд адресуется так же, как и в арифметических командах.Команды битового процессора могут выполняться с операндами, размещенными только в зонах резидентного ОЗУ с прямой побитной адресацией.Каждый из адресуемых битов может быть установлен винвертирован или проверен.