Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Мікроконтролери 8ХС51СВ фірми INTEL. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Мікроконтролери До складу групи 8XC51GB входять мікроконтролери 80С51GВ, 83С51GВ, 87С51GВ, 80С51GВ-1, 83С51GВ-1 та 87С51GВ-1. На момент підготовки статті всі вони випускалися у 68-вивідному корпусі РLСС і маркувалися з префіксом N (N80С51GВ, N83C51GВ тощо). Кристали виконані за СНМОS III-Е технологією фірми Intel. Версії з програмованим внутрішнім ПЗУ немає прозорого вікна у корпусі, т. е. ставляться до розряду одноразово программируемых. Це дещо обмежує коло їх споживачів через те, що при налагодженні не вдається працювати методом проб і помилок із багаторазовим перепрограмуванням кристала, а обов'язково доводиться використовувати відповідний емулятор. Перші з названих вище контролерів працюють при частоті тактового сигналу від 3,5 до 12 МГц, інші працездатні в інтервалі частот 3,5...16 МГц. Напруга живлення всіх контролерів - 5, низьковольтні версії не випускалися. Основні технічні характеристики контролерів групи 8хС51GВ:
Більшість із названих характеристик притаманні всьому сімейству МСS51, у зв'язку з чим ми не будемо докладно на них зупинятися. Тим, хто не знайомий з ними, рекомендуємо звернутися до статей про однокристальні мікро-ЕОМ, опубліковані в [1-3]. Крім того, при аналізі мікроконтролерів 8хС51Fх, 8x151Fх [4] був докладно описаний масив програмованих лічильників, у зв'язку з чим він також буде розглянутий тільки з точки зору його відмінностей від 8хХ51Fх. Предметом нашого знайомства будуть ті з особливостей 8хС51GВ, яких немає в жодній з інших груп сімейства МСS51. Зазначимо, що контролери 80С51GВ і 80С51GВ-1 але містять внутрішньої пам'яті програм, 83С51GВ і 83С51GВ-1 мають масочно програмоване ПЗУ об'ємом відповідно 8 і 16 Кбайт, а 87С51Gв і 87С51G1-8. ПРИЗНАЧЕННЯ ВИСНОВОК Призначення висновків контролерів аналізованої групи таке: Більшість із названих висновків знайомі тим, хто вже мав справу із мікроконтролерами сімейства МСS51. Новими є висновки портів Р4, Р5 зі своїми альтернативними функціями (вони наведені після знака /), висновки живлення (АVrol, АVss) та сигналів, пов'язаних з АЦП (СОМРREF, АСН0-АСН7, TRIGIN), які будуть розглянуті при описі відповідних пристроїв. Порт РВ аналогічний відповідним портам більш ранніх мікросхем і виконує самі функції. У контролерів 8хС51GВ з'явилися два нових порти - Р4 та Р5. Як і Р1-РЗ. є восьмибітними квазидвунаправленными портами вводу-виведення з потужним внутрішнім резистором, що забезпечує швидке встановлення на виходах рівня логічної 1 при перемиканні. Резистор підключається до вихідного каскаду на два періоди тактового генератора для переведення виведення у вказаний стан, а потім відключається. Висновки портів Р1-Р5, що перебувають у стані логічної 1, мають високий потенціал за рахунок внутрішнього резистора і можуть використовуватися в цьому стані як входи. На відміну від РВ, вхідні лінії портів Р1-Р5 забезпечені тригерами Шмітта. Майже всі висновки портів мають альтернативне призначення (табл. 1). При скиданні висновки порту РЗ встановлюються в одиничний стан, інших - у нульовий. Вхід RESET # - скидання. Низький рівень цьому вході протягом двох машинних циклів при працюючому тактовому генераторі призводить до скидання контролера. Висновки портів встановлюються у вихідний стан у момент, коли напруга на вході RESET# знижується до 0,3...0,4 В. Процедура скидання триває п'ять машинних циклів (60 періодів тактового генератора). Необхідно звернути увагу, що полярність сигналів скидання мікроконтролерів групи 8хС81GВ - зворотна стосовно іншим мікросхем сімейства МСS51. Причини цієї інверсії автору невідомі. Вхід ALE/PROG# повністю аналогічний до відповідного входу інших контролерів сімейства МСS51. Зазначимо, що у 8хС51GВ користувач має можливість заборонити видачу сигналу АLE. встановивши 0 молодший біт з регістру SFR, розташований за адресою 8ЕН. Сигнал А1Е видається тільки в момент дії команди МО/С або МО/Х, в інших випадках на цьому висновку утримується одиничний рівень. Працюючи лише із внутрішньої пам'яттю програм та даних на виході АLЕ взагалі нічого очікувати ніяких сигналів. Вхід ЕА#/Vрр служить дозволу вибірки команд із внутрішньої пам'яті програм, якщо така є на кристалі і вхід з'єднаний із загальним проводом. Під час подачі на нього одиничного рівня виконується програма із зовнішньої пам'яті програм. Однак останнє можливе лише до того моменту, поки не встановлено біти захисту внутрішньої пам'яті програм, про що буде сказано нижче. На цей висновок подають напругу програмування Vрр = 12,75 при програмуванні внутрішнього ПЗУ мікросхем 87С51GВ, 87С51GВ-1. ВІДЗНАКИ 8ХС51GВ ВІД ІНШИХ ВИРОБІВ СІМЕЙСТВА МСS51 Отже, перерахуємо найістотніші відмінності контролерів 8хС51GВ. Це:
ВУЗОЛ АЦП АЦП мікроконтролерів 8хС51GВ (див. функціональну схему на рис. 1) має вісім аналогових входів (висновки AСН0-АСН7), вхід зовнішнього запуску ТRIGIN, висновки живлення (АVHrol) і загального дроту (АVss) аналогової частини, розв'язані гальванічно з а також виведення опорної (зразкової) напруги порівняння СОМРREF. До складу АЦП входять восьмиканальний мультиплексор, 256-елементна резистивна лінійка, компаратор, пристрій вибірки/зберігання, вісім регістрів результату, регістр послідовного наближення та регістр результату порівняння. Фактично у просторі SFR є 10 додаткових регістрів. Регістри АD0-АD7 (84Н, 94Н, 0А4Н, 0В4Н, 0С4Н, 0D4Н, 0Е4Н, 0F4Н) містять результати перетворення по кожному з восьми каналів. Значення кожного регістру оновлюється після завершення перетворення на відповідному каналі, починаючи з каналу 0. Регістр результатів порівняння АСМР (0С7Н) містить вісім прапорів, що відображають результати порівняння сигналів на аналогових входах АСН0-АСН7 з напругою на вході СОМРREF (табл. 3). Відповідний прапор встановлюється в 1 у тому випадку, якщо вхідна напруга на цьому аналоговому вході перевищує "СОМРREF", інакше прапор скидається. Регістр АСОМ (097Н) містить прапор переривання АЦП АLF, біт дозволу перетворення АСЕ, два біти вибору каналу АСSО та АСS1, біти режиму входу АІМ та режиму запуску АТМ (табл. 4). РЕЖИМ ПОРІВНЯННЯ Цей режим завжди активний і використовується для порівняння напруги на входах АСН0-АСН7 із зразковою напругою, що подається на вхід СОМРREF контролера. При кожному запуску АЦП стан кожного біта регістру АСМР змінюється на новий, починаючи з каналу 0 незалежно від встановленого режиму опитування каналів. Режим дозволяє швидко здійснити порівняння типу більш-менш двох аналогових сигналів апаратним методом, що може істотно скоротити і спростити програму, що виконується. Якщо режим порівняння не використовується, на вхід СОМРREF можна подати будь-яку напругу від Vcc до Vss. РЕЖИМ ЗАПУСКУ Запуск АЦП можливий як від внутрішнього, так і зовнішнього джерела. У першому випадку біт АТМ регістру АСОN повинен бути встановлений в 1. У цьому режимі в циклі, наступному потім, в якому біт АСЕ був встановлений в 1, починається перетворення з каналу 0. Після завершення перетворення в сьомому каналі встановлюється прапор АLF, якщо переривання від АЦП дозволено, встановлення прапора 1 викликає переривання по вектору АЦП. Новий цикл починається після завершення попереднього. Установка біта АСЕ в 0 завершує перетворення, У режимі зовнішнього запуску перетворення починається за наявності нульового рівня на вході TRIGIN. На цьому вході немає фіксації перепаду і його стан визначається шляхом опитування в кожному машинному циклі. Іншими словами, для запуску перетворення тривалість сигналу з нульовим рівнем на вході TRIGIN повинна бути більшою за тривалість машинного циклу. Після запуску циклу до завершення стан входу TRIGIN ігнорується і перетворення здійснюється так само, як і в попередньому випадку. Після завершення циклу АЦП зупиняється до приходу на вхід TRIGIN нового імпульсу або внутрішнього запуску бітом АСЕ. РЕЖИМ ВХОДУ Установка біта AIM 0 переводить АЦП в так званий режим сканування, в якому перетворення здійснюється в послідовності АСНО, АСН1.....АСН7. Результати перетворення містяться відповідно в регістри ADO. AD1.....AD7. При установці біта AIM 1 після старту АЦП виробляються чотири послідовних перетворення сигналу в каналі, номер якого визначається станом бітів ACS0 і ACS1 регістра ACON. Результати цих вимірювань сигналу у вибраному каналі записуються в регістри AD0-AD3. Після цього АЦП. як і режимі сканування, опитує канали АСН4-АСН7. результати перетворення заносяться AD4-AD7. ВИКОРИСТАННЯ АЦП ДЛЯ МЕНШОГО ЧИСЛА КАНАЛІВ Є кілька варіантів використання АЦП з кількістю каналів, меншим за вісім. Якщо час перетворення не критичний, то можна просто дочекатися переривання після завершення перетворення в сьомому каналі і рахувати результати тільки з вибраних каналів. Якщо ж важливо отримати результат відразу після завершення перетворення у вибраному каналі, Intel пропонує відраховувати потрібний часовий інтервал із використанням таймера та його переривань. Ще один рекомендований спосіб - періодичне опитування стану відповідного регістру результату. Його зміна дає інформацію про те, що відбулося нове перетворення (щоправда, цей спосіб годиться тільки в тому випадку, якщо напруга, що вимірюється, непостійно). Використання режиму вибору каналу не зменшує час перетворення, а лише збільшує чиспо вимірювань у вибраному каналі за один цикл. АЦП У РЕЖИМІ МІКРОСПОЖИВАННЯ До складу АЦП контролерів 8xC51GB входить ланцюг, що обмежує енергоспоживання вузла в режимах XX та МП до значення струму витоку. Для нормального функціонування цього ланцюга на виведення AVioi мікроконтролера потрібно подати потенціал Усе. Протягом часу знаходження АЦП у режимі зниженого споживання напругу живлення можна зменшувати до 2,5 Ст. МАСИВИ ПРОГРАМУВАНИХ ЛІЧИЛЬНИКІВ До складу мікроконтролера 8xC51GB входить масив програмованих лічильників (РСА), аналогічний використовуваному в 8xC51Fx [4]. Однак у 8xC51GB є ще й другий аналогічний масив – РСА1. Його відмінності від РСА полягають у наступному:
Мікроконтролери 8хС51GВ підтримують 15 векторів переривань (табл. 6). Молодші п'ять з них аналогічні наявним у всіх контролерах сімейства МСS51, шостий обслуговує третій таймер/лічильник (він з'явився тільки починаючи з кристалів сімейства МСS52), сьомий, наявний тільки в 8хС51FX, 8х151FXі8хС51GВ, підтримує матрицю. Останній додатково має у своєму розпорядженні переривання від п'яти зовнішніх входів (INT2 - INT6). другий матриці програмованих лічильників, АЦП та розширеного послідовного порту. У всіх контролерах сімейства МСS51 кожне переривання може бути заборонено установкою в низький рівень відповідного біта в регістрі IЕ. Природно, це справедливо і для 8хС51GВ. Однак оскільки він містить удвічі більше джерел переривання, то для їх вирішення/заборони використовується додатковий регістр ІЕА (табл. 7). Як і попередньому випадку, установка біта в 1 призводить до дозволу відповідного переривання, скидання в 0 забороняє його. Адреса регістру IЕА-0А7Н. Зазначимо, що це переривання, зокрема і описані в табл. 7 можуть бути одночасно заборонені установкою в 0 біта ЕА (IЕ.7) - старшого біта регістра IЕ. Кожне переривання може мати свій власний пріоритет (від рівня 0 – нижчого, до рівня 3 – вищого). Рівень пріоритету визначається станом біт у регістрових парах ІР, ІРН та ІРА, ІРНА. Перша їх ідентична наявної у більш ранніх контролерах і докладно описана під час розгляду групи 8хС51Fх. Друга пара (адреси регістрів відповідно 0В8Н і 0В6Н) є лише у 8хС51GВ і обслуговує переривання, які є лише у цих контролерах. У табл. 8 показано відповідність між бітами регістрів та перериваннями, рівень яких вони визначають, у табл. 9 - відповідність між рівнями пріоритетів та станом біт у регістрових парах ІР, ІРН та ІРА, ІРНА. Переривання з низьким пріоритетом можуть бути, у свою чергу, перервані лише подією вищого пріоритету (але не рівного). Відповідно переривання з найвищим пріоритетом перервано бути не може. Якщо процесор одночасно отримав запити на два або більше переривань з однаковим пріоритетом, то черговість обробки визначається спеціальною послідовністю опитування прапорів переривання. У контролерів 8хС51GВ вона виглядає так: Зовнішні переривання I NT0 і INТ1 мікроконтролера 8хС51GВ повністю відповідають аналогічним перериванням всіх мікросхем сімейства МСS51 і в залежності від стану біт ITО та IT1 регістра ТСОN можуть фіксуватися як за рівнем, так і перепадом з 1 в 0. Зовнішні висновки INТ2 і INТЗ можуть реагувати як у позитивний, і на негативний фронт сигналу. Мікросхема має регістр ЕХIСОN (0С6Н), що містить біти IT2 та ITЗ, що визначають активний фронт сигналу на висновках Р5.2(INT2) та Р5.3(INTТЗ). При установці біта ITn в 0 переривання ініціюється негативним фронтом, при ITn = 1 - по позитивному. Зовнішні події INT4 - INT6 фіксуються лише з позитивного фронту на висновках P5.4(INT4) - P5.6(INT6). Всі зовнішні переривання генерують відповідні прапори, що апаратно встановлюються. Для подій INTO, INT1 - це біти 1Е0 та IE1 регістра TCON. Прапори IE2-IE6 знаходяться у регістрі EXICON. Їхнє скидання здійснюється апаратно в момент переходу процесора на підпрограму обробки відповідного переривання. За час машинного циклу опитування висновків зовнішніх переривань здійснюється лише один раз. Тому щоб переривання було зареєстровано, тривалість його активного рівня має перевищувати тривалість одного машинного циклу (12 періодів тактового генератора). Призначення біт регістру EXICON наведено у табл. 10. РОЗШИРЕНИЙ НАСЛІДНИЙ ПОРТ Розширений послідовний порт (SEP) має у своєму розпорядженні апаратні засоби для реалізації шини 1C-bus, де-факто є стандартом послідовного обміну. SEP допускає функціонування у чотирьох різних режимах, має три різні джерела тактування. Під його потреби задіяно два виведення мікросхеми: Р4.1 - введення/виведення даних та Р4.0 - для виведення тактуючого сигналу. Переданий або пакет, що приймається, складається з восьми біт даних. У цьому використовується вісім тактів роботи SEP. У відсутність прийнятої або переданої інформації тактовий сигнал та дані неактивні. За SEP закріплені три SFR-реєстри: SEPCON (0D7H), SEPDAT (0Е7Н) та SEPSTAT (0F7H). Адресуються вони лише побайтно. Призначення біт у регістрах SEPCON і SEPSTAT наведено у табл. 11 та 12 відповідно. На рис. 2 показані відмінні риси режимів роботи SEP - активні рівні сигналу тактування та фронти, що використовуються для прийому або передачі. Як випливає з табл. 11 режим роботи SEP визначається станом біт CLKPOL і CLKPH, розташованих в регістрі SEPCON. Для прийому або передачі байта користувач повинен вибрати режим роботи порту (біти CLKPOL і CLKPH), швидкість передачі (SEPS1 і SEPS0) і встановити 1 біт SEPE Процес передачі починається відразу після завантаження байта в регістр SEPDATA. Прийом ініціюється установкою в 1 біт SEPREN у разі, коли регістр SEPDATA порожній і немає передачі. Після прийому восьми біт SEPREN апаратно скидається. Завершення прийому або передачі призводить до встановлення в 1 біт SEPIF. Його скидання можливе лише програмним шляхом. Якщо користувач спробує записати інформацію в регістр SEPDATA (або прочитати її з нього) в момент передачі або прийому, встановлюється відповідний біт помилки. Прапор SEPFWR встановлюється під час спроби зробити це процесі передачі байта, a SEPFRD - у процесі приема. Переривання, пов'язані з установкою цих бітів відсутні, внаслідок чого користувач повинен контролювати їх стан самостійно. Звичайно, скидання цих прапорів може бути здійснене лише програмним шляхом. АПАРАТНИЙ СТОРОЖОВИЙ ТАЙМЕР Апаратний сторожовий таймер (HWDT) скидає мікроконтролер при переповненні, що є засобом боротьби із зависанням системи (зациклюванням програми). На виконання аналогічної функції може бути налаштований і таймер/лічильник модуля 4 РСА, але його застосування обмежує можливості користувача, у зв'язку з чим у 8xC51GB з'явився самостійний WDT, що не вимагає використання РСА. Апаратний сторожовий таймер складається з 14-бітного лічильника, що інкрементується в кожному машинному циклі, та SFR-реєстру WDTRST (0А6Н). Таймер завжди активний і при працюючому тактовому генераторі безперервно збільшує вміст лічильника, засобів зупинки таймера немає. Якщо програма користувача не записує у WDTRST жодної інформації, то через кожні 16 384 машинних циклів HWDT формує сигнал RESET, який скидає мікроконтролер. При цьому лічильник обнулюється. Для попередження спрацьовування HWDT програма користувача з проміжком не рідше 16 383 машинних циклон повинна заносити в регістр WDTRST послідовно два байти - 01ЕН і 0А6Н. Зазначимо, що WDTRST можна лише записувати інформацію, засоби читання його вмісту відсутні. Не рекомендується здійснювати згаданий перезапуск сторожового таймера за допомогою підпрограми обробки переривання від одного з таймерів/лічильників, оскільки переривання можуть оброблятися і за основною програмою, що зависла. Краще місце розташування команд обнулення сторожового таймера - циклічно виконуваний програмний фрагмент, період повторення якого менше часу спрацьовування HWDT. При переведенні 8xC51GB в мікроспоживання внутрішній тактовий генератор і HWDT зупиняються. Виведення контролера з режиму мікроспоживання, як і у всіх його попередників, може бути здійснено двояко: скиданням або викликом зовнішнього переривання, дозволеного перед переведенням 8xC51GB у названий режим. У першому випадку обнуляється HWDT, у другому при старті тактового генератора вміст лічильника HWDT продовжить збільшуватися. Але оскільки для стійкого запуску тактового генератора потрібен час близько двох десятків його періодів, рекомендується тривалість імпульсу зовнішнього переривання, що виводить контролер з мікроспоживання, робити не меншою згаданого часу. Програма обробки переривання почне виконуватися тільки після переходу рівня зовнішнього сигналу переривання в 1, коли частота генерації стабілізується. Тоді ж почнеться інкрементування лічильника HWDT, тобто поки сигнал переривання має нульовий рівень, HWDT не працює. У XX тактовий генератор контролера не відключається. Внаслідок цього вміст лічильника HWDT безперервно збільшується і для запобігання перескиданню необхідно використовувати таймерне переривання, по якому будуть здійснюватися вихід з цього режиму, обнулення лічильника сторожового таймера та повернення в режим Idle. Нижче наводиться фрагмент коду, що використовує переривання від Т/З для періодичного скидання HWDT. Правда, як зазначалося вище, використання такого переривання - не найкраще місце для обнулення лічильника, і подібну процедуру краще вбудувати в періодично виконувану частину програми - опитування клавіатури або відображення інформації. Тому фрагмент, що наводиться, слід розглядати як демонстраційний приклад, а не як підпрограму, яку потрібно використовувати в програмах без будь-яких змін. ВИНАХОДЖЕННЯ ЗБОЮ ТАКТОВОГО ГЕНЕРАТОРА Ланцюг виявлення збою тактового генератора (OFD) призначений для скидання мікроконтролера, якщо частота генератора виявиться нижчою від граничного значення, заданого технічними умовами. Якщо після скидання тактова частота не зміниться (вірніше не зросте до допустимого значення), контролер так і залишиться в цьому стані. Зазначимо, що перевищення частоти понад встановлену межу не призводить до його скидання. Ланцюг OFD завжди включається після скидання або при виході контролера з мікроспоживання. Для її відключення необхідно записати послідовно 0Е1Н і 01ЕН в регістр OSCR (0А5Н). Це необхідно зробити, зокрема, перед переходом до режиму мікроспоживання, оскільки в ньому тактовий генератор вимкнений. Дозволити роботу ланцюга можна лише перескиданням або виходом з режиму мікроспоживання по зовнішньому перериванню. Стан ланцюга OFD може бути визначено читання регістра OSCR. При OSCR=0FFH виявлення збоїв дозволено, при OSCR=0FEH - заборонено, ВИСНОВОК Отже, ми завершили розгляд особливостей восьмирозрядних мікроконтролерів сімейства MCS51, розроблених та випущених фірмою Intel. Вони виявилися настільки вдалими, що тиражування багатьох із них (з деякими технологічними удосконаленнями) триває й досі. Стійкий попит на ці контролери визначається тим, що сотні тисяч розробників звикли до них, напрацювали величезний обсяг програмного забезпечення, обзавелися парком налагоджувальних та крос-коштів. У багатьох випадках нова розробка не вимагає заміни мікроконтролера на щось кардинально нове, у зв'язку з чим доцільніше виконати її на тому, що вже знайоме та забезпечене засобами підтримки, а не витрачати сили та кошти на перехід до іншої елементної бази. Тому Intel регулярно вдосконалила свої контролери, щоб розширити коло розв'язуваних з їх використанням завдань. Більше того, до такого вдосконалення приєдналися фірми, які не мали стосунку до початкової розробки. Так, сьогодні сумісні з цим сімейством мікроконтролери випускають фірми Philips, Siemens, Dallas Semiconductor, Atmel, OKI та деякі менш відомі виробники, зокрема й низка підприємств на території колишнього СРСР. Всі контролери мають однакові набір команд та базову архітектуру, як правило, сумісні за "цоколівкою" і мають схожі алгоритми програмування. Однак є і суттєві відмінності у наборі додаткових регістрів та апаратних засобів. Так, мікроконтролери фірми Dallas Semiconductor мають два регістри DPTR і механізм їх перемикання, вироби Philips - АЦП підвищеної розрядності, у контролерів Siemens на кристалі нерідко розташована зовнішня пам'ять, адресована командами MOVX, і т.д. література
Автор: А.Фрунзе, м.Москва Дивіться інші статті розділу Мікроконтролери. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Лазерний проектор Panasonic PT-CMZ50 ▪ DaVinci для відеододатків з високою роздільною здатністю ▪ Ідеальну піну розроблять у космосі ▪ Яєчник надрукували на 3D-принтері Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Регулятори тембру, гучності. Добірка статей ▪ стаття Засклимо веранду плівкою. Поради домашньому майстру ▪ стаття Що таке повне обстеження? Детальна відповідь ▪ стаття Амла. Легенди, вирощування, способи застосування ▪ стаття Переговорний пристрій із старих телефонів. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Проткнута монета. Секрет фокусу
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |