Розробка програмного забезпечення

Автор работы: Пользователь скрыл имя, 06 Ноября 2013 в 09:48, курсовая работа

Краткое описание

Мікропроцесор – це напівпровідниковий прилад, який складається з однієї або кількох програмно-керуючих великих інтегральних схем і виконує функції автоматичної обробки інформації. Сучасні мікропроцесорні вимірювальні прилади можуть бути подані як засоби вимірювання, що здійснюють двосторонню взаємодію: з оператором і системою збирання інформації, і односторонньою: з об’єктом вимірювання і навколишнім середовищем. Застосування у вимірювальних приладах мікропроцесорів, що мають можливість програмної обробки інформації, вводить у прилад деякий „інтелект” і дозволяє не тільки поліпшити параметри приладу, але й надати йому абсолютно нових якостей.

Содержание

Вступ
Аналіз теми та інженерна інтерпретація…………………………………………….

2. Розробка апаратних засобів:
2.1. Розробка структурної схеми пристрою............................................……………….
2.2. Вибір елементної бази........…………………………………………………………
2.3. Розробка принципової схеми пристрою.............................................……………..

3. Розробка програмного забезпечення:
3.1. Алгоритм роботи пристрою................................................................................……
3.2. Програма..........................................................................……………………………

Висновки.................................................................................................................................

Література...............................................................................................................................

Додатки

Вложенные файлы: 1 файл

Цифровий_термометр_курсовий_проект[1].doc

— 335.50 Кб (Скачать файл)

 

     2.2.3. Індикатор  В даній схемі було доцільно використати два світлодіодних 2-х знакові індикатори HG1 LTD6610E та  HG2 LTD6610E.

    

    

     2.3.  Розробка схеми  електричної принципової

     Основою схеми є мікроконтролер DD2 типу AT89C2051 фірми ATMEL. Індикація динамічна, реалізована програмно. Катодами індикатори HG1 і HG2 підключені до порту P1, аноди включаються транзисторами VT1-VT3. Транзистори керуються лініями сканування S0...S2. Імпульсний струм сегментів обмежений резисторами на рівні приблизно 15 мА, що вписується в навантажувальну здатність порту (20 мА) і є достатнім для одержання необхідної яскравості. Цикли сканування формуються за допомогою внутрішнього таймера мікроконтролера. За кожним циклом індикації слідує „порожній” цикл, коли всі індикатори виключені. Для регулювання яскравості світіння індикаторів досить регулювати відношення тривалості циклу індикації та тривалості „порожнього” циклу (PWM). Яскравість регулюють кнопками „UP” і „DOWN” у режимі індикації температури. Нове значення яскравості зберігається в енергонезалежній пам’яті. Для суб’єктивно постійної швидкості зміни яскравості в процесі регулювання застосований закон регулювання, близький до гіперболічного.

     Для економії портів мікроконтролера на лініях сканування розташована  І2C мікросхема flash-пам’яті DD1. Цикли сканування ігноруються мікросхемою, тому що являють собою умови, що чергуються, „старт” і „стоп”. Коли мікроконтролер обмінюється з мікросхемою, цикли сканування припиняються.

     Місцева клавіатура використовує як  лінії сканування лінії даних дисплея, а як  лінію повернення – RL-порт мікроконтролера. Сканування клавіатури відбувається в циклах сканування дисплея.

     Зовнішній і внутрішній датчики температури підключені до портів мікроконтролера через захисні ланцюги. У колі живлення датчиків включені невеликі резистори для захисту від короткого замикання на лініях термометрів. Зовнішній термометр підключений через 3-контактний 3,5-мм розйом . Однак через те, що під час під’єднання на якийсь час виявляються замкнутими всі три контакти, в колі використовується захисний резистор. На внутрішньому датчику запобіжний ланцюг встановлений про всякий випадок(для можливості перетворити цей датчик у другий внутрішній).      

     Вихід керування термостатом має двотактний каскад на транзисторах VT4 і VT5. Такий каскад забезпечує однаковий струм, що втікає і витікає. Цей струм обмежений резистором R17 з енергетичних розумінь і з метою захисту транзисторів. Обидва транзистори включені за схемою з загальним емітером, що в порівнянні зі схемою емітерного повторювача забезпечує більший розмах вихідної напруги.

     Розйом для програмування мікросхеми DS1821 використовує ту саму   лінію даних, що і зовнішній термометр, а в якості  напруги живлення використовує напругу виходу термостата (живлення потрібно виключати при переведенні мікросхеми DS1821 з режиму термостата в режим термометра). Тому при програмуванні зовнішній термометр і виконавчий пристрій термостата повинні бути відключені.

     Однією  з найскладніших частин схеми є стабілізатор. При розробці стабілізатора потрібно було виконати ряд умов. Цілком заряджені батареї мають напругу 6 В. Для нормальної роботи датчиків потрібен мінімум 4,3 В. Тому стабілізатор повинний забезпечувати якнайменше мінімальне падіння (краще не більш 200 мВ при 100 мА). Стабілізатор повинен тригерно включатись за допомогою кнопки, а виключатися сигналом з мікроконтролера. Стабілізатор повинний „відчувати” мережне живлення і при його наявності залишатися увесь час включеним. Включення і вимикання штекера мережного живлення може вироблятися „на ходу”. Батареї не повинні розряджатися при роботі від мережі. Усі перераховані вище вимоги були виконані в стабілізаторі, зібраному на дискретних компонентах. Як  регулюючий елемент у стабілізаторі застосований n-канальний logіc-level Моп-транзистор VT6 типу ІRLZ44, що випускається ПО „ІНТЕГРАЛ” під кодовою назвою КП723М. Корпус цього транзистора ТЕ-220 здатний розсіяти необхідну потужність без радіатора. У якості низьковольтного опорного джерела застосований червоний світлодіод. Підсилювач помилки виконаний на транзисторі VT9. Завдяки високому опорові навантаження цей каскад має велике підсилення. Кнопка SB1 здійснює початкове включення стабілізатора при роботі від батарей. При роботі від мережі включення стабілізатора здійснює каскад на транзисторі VT10. Транзистори VT7 і VT8 утворюють схему автоматичного відключення. Для вимикання стабілізатора мікроконтролер повинен сформувати відповідний сигнал на порт виводу. Але в мікроконтролера немає вільних ліній. Тому для відключення стабілізатора використовується лінія повернення клавіатури RL. При нормальній роботі на цій лінії спостерігається певна послідовність імпульсів, що залежить від того, яка натиснута кнопка і що тепер   на дисплеї. У всякому разі, період проходження імпульсів не може бути більше тривалості повного циклу сканування дисплея. Коли жодна з кнопок не натиснута, на лінії – рівень логічної одиниці. Для відключення стабілізатора було вирішено використовувати рівень логічного нуля, тривалістю не менш 50 мс. Щоб відрізнити цей стан лінії від нормального, сигнал лінії потрібно заінтегрувати, причому постійна часу заряду повинна бути набагато менше, ніж розряду. Транзистор VT7 включений за схемою емітерного повторювача, він здатний швидко зарядити інтегруючу ємність C8. Постійна часу розряду визначається в основному резистором R20. Транзистор VT8 використовується як граничний елемент, при розрядці C8 нижче деякого рівня транзистор закривається, розриваючи коло живлення опорного джерела VD12, і стабілізатор виключається. При роботі від мережі вузол відключення блокований за допомогою кола VD13, R21, що завжди підтримує VT8 у відкритому стані.

     Слід відзначити один недолік конструкції: відсутній сигнал розряду батарей. Мікроконтролер нормально працює при напрузі живлення 2,7 В, у той час як датчики температури можуть почати видавати хибну інформацію при напрузі живлення нижче 4,3 В. Батареї можуть бути розрядженими, покази термометра – невірними, а користувач навіть не буде здогадуватися про це. Видасть хіба що знижена яскравість світіння індикаторів. Справа тут не в складності формування сигналу BAT. LOW, а у відсутності вільних портів вводу мікроконтролера. Одне з вирішень даної проблеми – застосувати watchdog tіmer DS1232L (він же ADM1232) або подібний. Для перезапуску можна використовувати лінію сканування дисплея, а вбудований монітор живлення просто не дозволить системі працювати, якщо напруга живлення нижче 4,5 В. Схема електрична принципова подана в додатку 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
  2. 3.1. Алгоритм роботи пристрою

      На первинному етапі розробка програмного забезпечення вимагає повного розуміння принципу дії цифрового пристрою: розуміння основних процесів, особливостей перетворення первинних даних, принципів реалізації кінцевого результату. Враховуючи, що основні перетворення відбуваються в температурних датчиках, проаналізуємо їх принцип дії та побудуємо детальний алгоритм роботи пристрою.

    Представлення первинної інформації Для датчиків температура представляється у вигляді 9-бітного значення в додатковому коді. Оскільки це значення займає 2 байти, усі розряди старшого байта дорівнюють знаковому розряду. Дискретність представлення температури складає 0.5°C. Залежність вихідного коду від температури приведена в таблиці :

Температура

Вихіднй код (Binary)

Вихідний код (Hex)

Ст. байт

Мол. байт

+125°C

0000 0000

1111 1010

00FAh

+25°C

0000 0000

0011 0010

0032h

+0.5°C

0000 0000

0000 0001

0001h

0°C

0000 0000

0000 0000

0000h

-0.5°C

1111 1111

1111 1111

FFFFh

-25°C

1111 1111

1100 1110

FFCEh

-55°C

1111 1111

1001 0010

FF92h




Більш висока  роздільна здатність може бути отримана, якщо виконати додаткові обчислення на основі значень COUNT_REMAІN (значення, що залишилося в лічильнику наприкінці виміру) і COUNT_PER_C (кількість імпульсів на один градус для даної температури), що доступні. Для обчислень потрібно взяти лічене значення температури і відкинути молодший біт. Отримане значення назвемо TEMP_READ. Тепер дійсне значення температури може бути обчислене по формулі:

 

TEMPERATURE=TEMP_READ-0.25+(COUNT_PER_C - COUNT_REMAIN)/COUNT_PER_C

   У нашому випадку такий розрахунок дозволяє одержати дискретність представлення температури 0.1°C.

   Особливості пам’яті пристрою Кожен екземпляр датчика має унікальний 48-бітний номер, записаний за допомогою лазера в ПЗП в процесі виробництва. Цей номер використовується для адресації пристроїв. Крім серійного номера в ПЗП утримується код сімейства  і контрольна сума. Крім ПЗП датчик має проміжне ОЗП обсягом 8 байт, плюс два байти енергонезалежної пам'яті. Байти TH і TL являють собою температурні пороги, з якими порівнюються 8 біт кожного обмірюваного значення температури (молодший біт відкидається). За допомогою спеціальної команди можна організувати сигналізацію виходу температури за межі цих порогів. Якщо така функція не потрібна, байти TH і TL можна використовувати для збереження будь-яких даних користувача.

   Особливості 1-провідного інтерфейсу Зчитування значення вимірюваної температури, а також передача команди початку перетворення й інших команд виробляється за допомогою 1-провідного інтерфейсу (1-WіreTM) Протокол, що використовується 1-провідним інтерфейсом, досить простий. У будь-який момент часу на 1-провідній шині можна виділити майстер, яким може бути мікропроцесор або комп'ютер, і підлеглий пристрій, у нашому випадку це мікросхема термометра. Оскільки в нас на шині присутні тільки майстер і всього один підлеглий пристрій, можна опустити все те, що зв'язано з адресацією пристроїв. У результаті потрібно знати лише протокол передачі байтів, що можуть бути командами або даними.  1-провідна шина є двонапрямленою. У кожного 1-провідного пристрою до шини підключений вхід приймача і вихід передавача з відкритим стоком. Відкритий стік дозволяє підключати до шини безліч пристроїв, забезпечуючи логіку "монтажне або". Генератор струму 5мкА забезпечує на вході 1-провідного пристрою низький логічний рівень, коли шина не підключенаОскільки лінія тактового сигналу відсутня, обмін є синхронним. Це означає, що в процесі обміну потрібно досить точно витримувати необхідні тимчасові співвідношення. 1-провідна шина оперує з TTL-рівнями, тобто логічна одиниця представлена рівнем напруги близько 5В, а логічний нуль - напругою біля 0В. У вихідному стані на лінії присутній рівень логічної одиниці, що забезпечується  резисторомноміналом близько 5кОм. Ініціатором обміну по 1-провідній шині завжди виступає майстер. Усі пересилання починаються з процесу ініціалізації.

  Ініціалізація виконується в наступній послідовності:

  • майстер посилає імпульс скидання (reset pulse) - сигнал низького рівня тривалістю не менш 480 мкс.
  • за імпульсом скидання випливає відповідь підлеглого пристрою (presence pulse) - сигнал низького рівня тривалістю 60 - 240 мкс, що генерується через 15 - 60 мкс після завершення імпульсу скидання.

   Передача команди до термодатчика Відповідь підлеглого пристрою дає майстрові зрозуміти, що на шині присутній термометр і він готовий до обміну. Після того, як майстер знайшов відповідь, вона може передати термометру одну з команд. Передача ведеться шляхом формування майстром спеціальних тимчасових інтервалів (tіme slots). Кожен часовий інтервал служить для передачі одного біта. Першим передається молодший біт. Інтервал починається імпульсом низького рівня, тривалість якого лежить у межах 1 - 15 мкс. Оскільки перехід з одиниці в нуль менш чуттєвий до ємності шини (він формується відкритим транзистором, у той час як перехід з нуля в одиницю формується  резистором), саме цей перехід використовують 1-провідні пристрої для синхронізації з майстром. У підлеглому пристрої запускається схема тимчасової затримки, що визначає момент зчитування даних. Номінальне значення затримки дорівнює 30 мкс, однак, воно може коливатися в межах 15 - 60 мкс. За імпульсом низького рівня випливає переданий біт. Він повинний утримуватися майстром на шині протягом  60 - 120 мкс від початку інтервалу. Часовий інтервал завершується переведенням шини в стан високого рівня на час не менш 1 мкс. Потрібно відзначити, що обмеження на цей час зверху не накладається. Аналогічним образом формуються тимчасові інтервали для всіх переданих бітів.

   Основні команди, прийом даних Першою командою, що повинен передати майстер для датчика після ініціалізації, є одна з команд функцій ПЗП. Усього датчик має 5 команд функцій ПЗП:

  • Read ROM [33h]. Ця команда дозволяє прочитати вміст ПЗП. У відповідь на цю команду датчик передає 8-бітний код сімейства (10h), потім 48-бітний серійний номер, а потім 8-бітну CRC для перевірки правильності прийнятої інформації.
  • Match ROM [55h]. Ця команда дозволяє адресувати на шині конкретний термометр. Після цієї команди майстер повинний передати потрібний 64-бітний код, і тільки той термометр, що має такий код, буде "відгукуватися" до наступного імпульсу скидання.
  • Skіp ROM [CCh]. Ця команда дозволяє пропустити процедуру порівняння серійного номера і тим самим заощадити час у системах, де на шині є один пристрій.
  • Search ROM [F0h]. Ця досить складна у використанні команда дозволяє визначити серійні номери всіх термометрів, що є присутнім на шині.
  • Alarm Search [ECh]. Ця команда аналогічна попередійї, але "відгукуватися" будуть тільки ті термометри, у яких результат останнього виміру температури виходить за встановлені межі TH і TL.

Информация о работе Розробка програмного забезпечення