SlideShare uma empresa Scribd logo
1 de 4
Темою моєї курсової роботи є «Проектування генератора імпульсів
з програмованими параметрами на основі PsoC».
Робота складається з вступу, п’ятьох розділів та висновків.
Метою курсової роботи є засвоїти програмну реалізацію на мові С
алгоритмів роботи з даними та програмно-апаратними компонентами PSoC4.
Оволодіти практичним застосуванням програмно-апаратних компонентів
UART, Timer, Interrupt та Digital Output Pin. Робота виконується по варіанту №2
згідно методичних вказівок щодо виконання курсової роботи.
У першому розділі я розповідається про мій Варіант індивідуального
завдання та опис технічного завдання курсової роботи. Індивідуальним
завданням є АТ-команда що приймає 3 параметри від користувача через
термінал та конфігурує канал, відповідно до параметрів D, H та L.
За допомогою PSoC4 розробити цифровий пристрій формування
періодичних імпульсів на двох виходах (каналах). На кожному з виходів
імпульси конфігуруються наступними трьома параметрами:
1) початкова затримка (D);
2) тривалість імпульсу (H);
3) тривалість паузи (L).
У другому розділі йдеться про Обґрунтування концепції реалізації
пристрою
Враховуючи технічне завдання, програмну реалізацію цифрового
пристрою доцільно розділити на два потоки:
- перший потік – основна програма,
- другий потік - підпрограма обробки переривань від таймера з періодом
500 мс. В основній програмі асинхронно реалізується приймання байтів даних по
інтерфейсу UART та проводиться їх аналіз.
У третьму розділі йдеться про Ключові алгоритми та їх програмна реалізація.
У підрозділі 3.1. Отримання даних по UART – UartDataReader.
Розташування байт в приймальному буфері UART наведено у таблиці 1.
Реалізаця здійснюється за рахунок приймання символів методом опитування про
наявні нові символи на інтерфейсі UART та складанні їх один за одним в буфер,
доки буфер повністю не заповниться. Наповнення буфера в моєму варіанті
завдання означає прийняття 6 символів по інтерфейсу UART.
У підрозділі 3.2 Аналіз отриманих даних (парсання) – UartBufferParser
Алгоритм підпрограми UartBufferParser забезпечує наступні функції:
1. Здійснює перевірку фіксованих символів в приймальному буфері, а саме
символів на позиціях: 0, 1 та 2.
2. Перевіряє чи динамічні символи на позиціях 3, 4 та 5 знаходяться в
допустимих межах згідно з технічним завданням .
3. У разі успішної перевірки попередніх двох умов – витягує з пакету даних
необхідну корисну інформацію про значення параметрів D, H та L для обох
каналів.
У підрозділі 3.3 Критична секція програми – UpdateChannelDescriptor
Оскільки реалізація програми відбувається двома потоками,
важливим елементом програми є так звана критична секція. В програмі є
глобальні змінні, що використовуються в обох потоках. Це створює
імовірність виникнення проблеми, коли у момент оновлення полів
дескриптора каналу успішно прийнятою новою АТ-командою
відбувається переривання. При цьому частина полів нехай вже оновлена, а
частина ще ні. В результаті цього цифровий пристрій, що проєктується,
працюватиме некоректно.
Для вирішення даної проблеми введена заборона переривань від
таймера безпосередньо перед початком модифікації спільної для обох
потоків глобальної змінної і включення дозволу переривань після
завершення модифікації.
У підрозділі 3.4. Програма Channel Controller
При початковому пуску системи, коли дескриптори у пам’ять ще не
завантажені, їх значення є нульові. І тому під час переривання система перебуває
у стані Idle. На Рисунку. 4. Зображено Графік станів каналу та переходів між
станами.
Підрозділ 3.5. Дескриптор стану каналів. Вньому йдеться про
Дескриптор стану каналу являє собою структуру даних, яка описує стан каналу
в даний момент часу і спрощує реалізацію програмної зміни значень пінів і
імпульсів. З точки зору реалізації на мові С дескриптор являє собою
користувацьку (створену користувачем) структуру даних з полями, що
відповідають полям дескриптора. В таблиці 3 представленні поля дескриптора та
їх опис.
У підрозділі 3.6 йдеться про Обґрунтування вибору глобальних змінних
Вище визначений дескриптор каналу, який описує його стан в будь-який момент
часу. Оскільки, згідно з технічним завданням, потрібно реалізувати два канали,
то доцільно створити масив дескрипторів довжиною, що рівна кількості каналів.
Назвемо цей масив ChannelDescriptorsArray. Для отримання даних по
інтерфейсу UART передбаченний приймальний буфер (масив байт в оперативній
пам’яті) в який відбувається «складання» отриманних байт (символів). Згідно з
прикладом технічного завдання, довжина пакета даних рівна 6 символів
(наприклад АТ-команда «АТ=022»). Відповідно, довжину масиву встановлено 6,
а кожен елемент буде типу char (char – тип для зберігання символів). Названо цей
масив UartBuffer. Також ініціалізованна змінна UartBufferIdx, яка служить
індексом поточного елемента в буфері UartBuffer. Ця змінна вказує на наступний
вільний елемент буфера, куди можна записувати отриманий символ.
У підрозділі 3.7 Програма верхнього рівня. У роботі прехдставлена блок схемі
рисунок 3.
Блок-схема підпрограми обробки переривань від таймера передають
макрос, оскільки за варіантом канал конфігурується однією командою, який
потрібно опрацювати програмою ChannelController шляхом виклику та
виконання однойменної функції. Функція ChannelController параметром приймає
макрос яким і визначається поточний канал. Таким чином, на кожне переривання
від таймера відбувається виклик функції ChannelController, що відповідає
кількості каналів, які, своєю чергою, забезпечують зміни їх станів.
РОзділ 4 розкриває Конфігурація програмно-апаратних компонентів
PSoC4.
Для виконання поставленого технічного завдання курсової роботи
необхідні наступні програмно-апаратні компоненти:
 Timer
 Digital Output Pin
 Interrupt
 Timer clock
 Zero Terminal
 UART Serial Communication Block
ВИСНОВКИ
У даній роботі було розроблено за допомогою PSoC4 цифровий пристрій
формування періодичних імпульсів на двох виходах (каналах). Цей пристрій
сприймає від користувача потрібний масив символів, що називається АТ-
командою та має жорсткі умови перевірки на відповідність до формату
(варіанту АТ-команди) та належності динамічних параметрів до власного
визначеного діапазону. Після чого, з допомогою програмно-апаратного
компоненту UART, введена АТ-команда трансформується в ASCII код та
передається до процесору PSoC 4200 Pioner Kit, де завдяки кодовому
забезпеченню (наведено в додатку) проходить трансформацію та конфігурує n-
ий канал відповідно до параметрів, що були введені користувачем. Такий
пристрій дозволяє швидко керувати величезною кількістю каналів, їхніми
конфігураціями за допомогою зрозумілого вводу через АТ-команду. Таким
чином людина, що не освоєна в програмуванні, зокрема логіці мови С, може з
легкістю конфігурувати вихідні канали, використовуючи зрозумілий та
елементарний ввід з клавіатури.
Для цього я ознайомився з логікою написання програми в середовищі
розробки PSoC Creator, зокрема засвоїв програмну реалізацію на мові С
алгоритмів роботи з даними та програмно-апаратними компонентами PSoC4.
Оволодів практичним застосуванням програмно-апаратних компонентів
UART, Timer, Interrupt та Digital Output Pin.
Навчився приймати пакети даних по послідовному інтерфейсу та проводити
їх аналіз («парсання»).
Мною були проведенні наступні дії:
1. Зробив корекцію блок-схем та тексту програми, поданого в методичних
вказівках, згідно власного варіанту.
2. Дорисував блок-схеми алгоритмів, що не були наявні в методичних
вказівках до курсової роботи.
3. Налагодив роботу програми експериментальним шляхом.
4. Провів кілька десятків тестів на стійкість до помилок – успішно.
Гаврилюк К.docx

Mais conteúdo relacionado

Semelhante a Гаврилюк К.docx

Програмовані логічні контролери стандарту МЕК 61131
Програмовані логічні контролери стандарту МЕК 61131Програмовані логічні контролери стандарту МЕК 61131
Програмовані логічні контролери стандарту МЕК 61131Пупена Александр
 
Shapovalov g
Shapovalov gShapovalov g
Shapovalov ggarasym
 
мв лр зівкс
мв лр зівксмв лр зівкс
мв лр зівксSergiy Isaev
 
2 3 утиліти для роботи з COM-портами ПК
2 3 утиліти для роботи з COM-портами ПК 2 3 утиліти для роботи з COM-портами ПК
2 3 утиліти для роботи з COM-портами ПК Пупена Александр
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігаціяПупена Александр
 
Computers and Computing Works lecture №8
Computers and Computing Works lecture №8Computers and Computing Works lecture №8
Computers and Computing Works lecture №8Lesia Sobolevska
 
Будова комп'ютера
Будова комп'ютераБудова комп'ютера
Будова комп'ютераjap2006
 
Hardware workshop with Lampa (Arduino intro course)
Hardware workshop with Lampa (Arduino intro course)Hardware workshop with Lampa (Arduino intro course)
Hardware workshop with Lampa (Arduino intro course)Hackraft
 
Computers and Computing Works lecture №3
Computers and Computing Works lecture №3Computers and Computing Works lecture №3
Computers and Computing Works lecture №3Lesia Sobolevska
 
Лекція 3. Архітектурні принципи побудови мікропороцесорів
Лекція 3. Архітектурні принципи побудови мікропороцесорівЛекція 3. Архітектурні принципи побудови мікропороцесорів
Лекція 3. Архітектурні принципи побудови мікропороцесорівAlex Slobodyanyuk
 
пк апаратне забезпечення іс 2
пк апаратне забезпечення іс 2пк апаратне забезпечення іс 2
пк апаратне забезпечення іс 2iDeus3D
 

Semelhante a Гаврилюк К.docx (20)

лр5 основи modbus tcp
лр5 основи modbus tcpлр5 основи modbus tcp
лр5 основи modbus tcp
 
Програмовані логічні контролери стандарту МЕК 61131
Програмовані логічні контролери стандарту МЕК 61131Програмовані логічні контролери стандарту МЕК 61131
Програмовані логічні контролери стандарту МЕК 61131
 
2 2 символьний обмін
2 2 символьний обмін2 2 символьний обмін
2 2 символьний обмін
 
Shapovalov g
Shapovalov gShapovalov g
Shapovalov g
 
мв лр зівкс
мв лр зівксмв лр зівкс
мв лр зівкс
 
2 3 утиліти для роботи з COM-портами ПК
2 3 утиліти для роботи з COM-портами ПК 2 3 утиліти для роботи з COM-портами ПК
2 3 утиліти для роботи з COM-портами ПК
 
Анімовані компоненти та навігація
Анімовані компоненти та навігаціяАнімовані компоненти та навігація
Анімовані компоненти та навігація
 
сп
спсп
сп
 
UNITY PRO – ШВИДКИЙ СТАРТ
UNITY PRO – ШВИДКИЙ СТАРТUNITY PRO – ШВИДКИЙ СТАРТ
UNITY PRO – ШВИДКИЙ СТАРТ
 
лр7 ethernet
лр7 ethernet лр7 ethernet
лр7 ethernet
 
характеристика основних вузщлів компютера
характеристика основних вузщлів компютерахарактеристика основних вузщлів компютера
характеристика основних вузщлів компютера
 
Computers and Computing Works lecture №8
Computers and Computing Works lecture №8Computers and Computing Works lecture №8
Computers and Computing Works lecture №8
 
Будова комп'ютера
Будова комп'ютераБудова комп'ютера
Будова комп'ютера
 
КР-1.docx
КР-1.docxКР-1.docx
КР-1.docx
 
Opc
OpcOpc
Opc
 
Hardware workshop with Lampa (Arduino intro course)
Hardware workshop with Lampa (Arduino intro course)Hardware workshop with Lampa (Arduino intro course)
Hardware workshop with Lampa (Arduino intro course)
 
Computers and Computing Works lecture №3
Computers and Computing Works lecture №3Computers and Computing Works lecture №3
Computers and Computing Works lecture №3
 
4 2 3 ip
4 2 3 ip 4 2 3 ip
4 2 3 ip
 
Лекція 3. Архітектурні принципи побудови мікропороцесорів
Лекція 3. Архітектурні принципи побудови мікропороцесорівЛекція 3. Архітектурні принципи побудови мікропороцесорів
Лекція 3. Архітектурні принципи побудови мікропороцесорів
 
пк апаратне забезпечення іс 2
пк апаратне забезпечення іс 2пк апаратне забезпечення іс 2
пк апаратне забезпечення іс 2
 

Гаврилюк К.docx

  • 1. Темою моєї курсової роботи є «Проектування генератора імпульсів з програмованими параметрами на основі PsoC». Робота складається з вступу, п’ятьох розділів та висновків. Метою курсової роботи є засвоїти програмну реалізацію на мові С алгоритмів роботи з даними та програмно-апаратними компонентами PSoC4. Оволодіти практичним застосуванням програмно-апаратних компонентів UART, Timer, Interrupt та Digital Output Pin. Робота виконується по варіанту №2 згідно методичних вказівок щодо виконання курсової роботи. У першому розділі я розповідається про мій Варіант індивідуального завдання та опис технічного завдання курсової роботи. Індивідуальним завданням є АТ-команда що приймає 3 параметри від користувача через термінал та конфігурує канал, відповідно до параметрів D, H та L. За допомогою PSoC4 розробити цифровий пристрій формування періодичних імпульсів на двох виходах (каналах). На кожному з виходів імпульси конфігуруються наступними трьома параметрами: 1) початкова затримка (D); 2) тривалість імпульсу (H); 3) тривалість паузи (L). У другому розділі йдеться про Обґрунтування концепції реалізації пристрою Враховуючи технічне завдання, програмну реалізацію цифрового пристрою доцільно розділити на два потоки: - перший потік – основна програма, - другий потік - підпрограма обробки переривань від таймера з періодом 500 мс. В основній програмі асинхронно реалізується приймання байтів даних по інтерфейсу UART та проводиться їх аналіз. У третьму розділі йдеться про Ключові алгоритми та їх програмна реалізація. У підрозділі 3.1. Отримання даних по UART – UartDataReader. Розташування байт в приймальному буфері UART наведено у таблиці 1. Реалізаця здійснюється за рахунок приймання символів методом опитування про наявні нові символи на інтерфейсі UART та складанні їх один за одним в буфер, доки буфер повністю не заповниться. Наповнення буфера в моєму варіанті завдання означає прийняття 6 символів по інтерфейсу UART. У підрозділі 3.2 Аналіз отриманих даних (парсання) – UartBufferParser Алгоритм підпрограми UartBufferParser забезпечує наступні функції: 1. Здійснює перевірку фіксованих символів в приймальному буфері, а саме символів на позиціях: 0, 1 та 2. 2. Перевіряє чи динамічні символи на позиціях 3, 4 та 5 знаходяться в допустимих межах згідно з технічним завданням . 3. У разі успішної перевірки попередніх двох умов – витягує з пакету даних необхідну корисну інформацію про значення параметрів D, H та L для обох каналів. У підрозділі 3.3 Критична секція програми – UpdateChannelDescriptor
  • 2. Оскільки реалізація програми відбувається двома потоками, важливим елементом програми є так звана критична секція. В програмі є глобальні змінні, що використовуються в обох потоках. Це створює імовірність виникнення проблеми, коли у момент оновлення полів дескриптора каналу успішно прийнятою новою АТ-командою відбувається переривання. При цьому частина полів нехай вже оновлена, а частина ще ні. В результаті цього цифровий пристрій, що проєктується, працюватиме некоректно. Для вирішення даної проблеми введена заборона переривань від таймера безпосередньо перед початком модифікації спільної для обох потоків глобальної змінної і включення дозволу переривань після завершення модифікації. У підрозділі 3.4. Програма Channel Controller При початковому пуску системи, коли дескриптори у пам’ять ще не завантажені, їх значення є нульові. І тому під час переривання система перебуває у стані Idle. На Рисунку. 4. Зображено Графік станів каналу та переходів між станами. Підрозділ 3.5. Дескриптор стану каналів. Вньому йдеться про Дескриптор стану каналу являє собою структуру даних, яка описує стан каналу в даний момент часу і спрощує реалізацію програмної зміни значень пінів і імпульсів. З точки зору реалізації на мові С дескриптор являє собою користувацьку (створену користувачем) структуру даних з полями, що відповідають полям дескриптора. В таблиці 3 представленні поля дескриптора та їх опис. У підрозділі 3.6 йдеться про Обґрунтування вибору глобальних змінних Вище визначений дескриптор каналу, який описує його стан в будь-який момент часу. Оскільки, згідно з технічним завданням, потрібно реалізувати два канали, то доцільно створити масив дескрипторів довжиною, що рівна кількості каналів. Назвемо цей масив ChannelDescriptorsArray. Для отримання даних по інтерфейсу UART передбаченний приймальний буфер (масив байт в оперативній пам’яті) в який відбувається «складання» отриманних байт (символів). Згідно з прикладом технічного завдання, довжина пакета даних рівна 6 символів (наприклад АТ-команда «АТ=022»). Відповідно, довжину масиву встановлено 6, а кожен елемент буде типу char (char – тип для зберігання символів). Названо цей масив UartBuffer. Також ініціалізованна змінна UartBufferIdx, яка служить індексом поточного елемента в буфері UartBuffer. Ця змінна вказує на наступний вільний елемент буфера, куди можна записувати отриманий символ. У підрозділі 3.7 Програма верхнього рівня. У роботі прехдставлена блок схемі рисунок 3. Блок-схема підпрограми обробки переривань від таймера передають макрос, оскільки за варіантом канал конфігурується однією командою, який потрібно опрацювати програмою ChannelController шляхом виклику та виконання однойменної функції. Функція ChannelController параметром приймає макрос яким і визначається поточний канал. Таким чином, на кожне переривання
  • 3. від таймера відбувається виклик функції ChannelController, що відповідає кількості каналів, які, своєю чергою, забезпечують зміни їх станів. РОзділ 4 розкриває Конфігурація програмно-апаратних компонентів PSoC4. Для виконання поставленого технічного завдання курсової роботи необхідні наступні програмно-апаратні компоненти:  Timer  Digital Output Pin  Interrupt  Timer clock  Zero Terminal  UART Serial Communication Block ВИСНОВКИ У даній роботі було розроблено за допомогою PSoC4 цифровий пристрій формування періодичних імпульсів на двох виходах (каналах). Цей пристрій сприймає від користувача потрібний масив символів, що називається АТ- командою та має жорсткі умови перевірки на відповідність до формату (варіанту АТ-команди) та належності динамічних параметрів до власного визначеного діапазону. Після чого, з допомогою програмно-апаратного компоненту UART, введена АТ-команда трансформується в ASCII код та передається до процесору PSoC 4200 Pioner Kit, де завдяки кодовому забезпеченню (наведено в додатку) проходить трансформацію та конфігурує n- ий канал відповідно до параметрів, що були введені користувачем. Такий пристрій дозволяє швидко керувати величезною кількістю каналів, їхніми конфігураціями за допомогою зрозумілого вводу через АТ-команду. Таким чином людина, що не освоєна в програмуванні, зокрема логіці мови С, може з легкістю конфігурувати вихідні канали, використовуючи зрозумілий та елементарний ввід з клавіатури. Для цього я ознайомився з логікою написання програми в середовищі розробки PSoC Creator, зокрема засвоїв програмну реалізацію на мові С алгоритмів роботи з даними та програмно-апаратними компонентами PSoC4. Оволодів практичним застосуванням програмно-апаратних компонентів UART, Timer, Interrupt та Digital Output Pin. Навчився приймати пакети даних по послідовному інтерфейсу та проводити їх аналіз («парсання»). Мною були проведенні наступні дії: 1. Зробив корекцію блок-схем та тексту програми, поданого в методичних вказівках, згідно власного варіанту. 2. Дорисував блок-схеми алгоритмів, що не були наявні в методичних вказівках до курсової роботи. 3. Налагодив роботу програми експериментальним шляхом. 4. Провів кілька десятків тестів на стійкість до помилок – успішно.