Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Дипломный проект - Программно-аппаратный терминал с CAN-шиной - файл 5 разработка ПО микроконтроллера.doc


Дипломный проект - Программно-аппаратный терминал с CAN-шиной
скачать (3931.1 kb.)

Доступные файлы (45):

avr.c
main.c
Programmator.hex
spi_init.c
usart_init.c
1 системотехническое проектирование.doc199kb.22.06.2011 21:36скачать
Programmator.hex
Project1.bpr
Project1.~bpr
Project1.cpp
Project1.~cpp
Project1.obj
Project1.res
TrComPort_BCB.lib
TrComPort.dll
TrComPort.h
Unit1.cpp
Unit1.ddp
Unit1.dfm
Unit1.h
Unit1.obj
2 структурное проектирование.doc170kb.22.06.2011 21:41скачать
3 схемотехническое проектирование.doc1434kb.22.06.2011 21:53скачать
4 конструктоское проектирование.doc75kb.23.06.2011 00:03скачать
5 разработка ПО микроконтроллера.doc93kb.22.06.2011 22:05скачать
6 экономика1.docx98kb.22.06.2011 23:10скачать
7.doc90kb.22.06.2011 23:58скачать
8.doc99kb.23.06.2011 00:02скачать
(A1)ПЕЧАТНАЯ ПЛАТА.vsd
(A1)ПЛАКАТ.vsd
(A1)ПРИНЦИПИАЛЬНАЯ СХЕМА1.vsd
(A1)СТРУКТУРНАЯ СХЕМА.vsd
(A1)СХЕМА ПРОГРАММЫ.vsd
(A1)СХЕМА ПРОГРАММЫ(С++).vsd
ВВЕДЕНИЕ.doc42kb.17.06.2011 10:42скачать
Задание - шаблон.doc37kb.23.06.2011 00:16скачать
Заключение.doc32kb.23.06.2011 00:02скачать
ПРОЧИТАТЬ!!!!!!!!!!.txt1kb.03.07.2011 23:28скачать
Содерж.doc65kb.21.06.2011 20:48скачать
список исп. источников.doc34kb.23.06.2011 01:29скачать
текст программы2.doc35kb.20.06.2011 22:09скачать
текст программы.doc36kb.15.06.2011 11:11скачать
текст программы титульник2.doc100kb.20.06.2011 22:05скачать
текст программы титульник.doc100kb.20.06.2011 22:05скачать
Титульный лист и аннотация.docx31kb.17.06.2011 10:27скачать

5 разработка ПО микроконтроллера.doc





5 Разработка программного обеспечения

5.1 Разработка программного обеспечения для микроконтроллера

Целью является разработка программного обеспечения (ПО) для микроконтроллера Atmega128 программно-аппаратного терминала. Для разработки программного обеспечения микроконтроллера используется язык программирования С, среда AVRStudio 4, компилятор WinAVR.

Во время разработки ПО будут использоваться протоколы передачи данных SPI, CAN 2.0, RS232.

CAN - последовательный протокол связи, который эффективно поддерживает распределенное управление в реальном масштабе времени с высоким уровнем безопасности.

Область применения - от высокоскоростных сетей до дешевых мультиплексных шин. В автоматике, устройствах управления, датчиках используется CAN со скоростью до 1 Mбит/с.

Задача данной спецификации состоит в том, чтобы достигнуть совместимости между любыми двумя реализациями CAN - систем. Однако, совместимость имеет различные аспекты относительно, например электрических элементов и интерпретации данных, которые будут передаваться.

Для достижения прозрачности проекта и гибкости реализации, CAN был подразделен на различные уровни согласно модели ISO/OSI:

  • уровень передачи данных (Data Link Layer);

  • подуровень логического управления линией (LLC);

  • подуровень управления доступом к среде передачи (MAC);

  • физический уровень (Physical Layer).

В предыдущих версиях спецификации CAN функции LLC и MAC подуровней, уровня передачи данных, были описаны в уровнях, обозначенных как объектный уровень и канальный уровень.

Область LLC подуровня:

  • обеспечение сервиса для передачи данных и для удалённого запроса данных;

  • решение, какие сообщения, полученные LLC подуровнем, должны быть фактически приняты;

  • обеспечение средствами для управления восстановлением и уведомления о перегрузке.

Область MAC подуровня главным образом – протокол передачи, то есть: арбитраж, проверка на ошибки, сигнализация и типизация ошибок. Внутри MAC подуровня решается, является ли шина свободной для начала новой передачи или возможен только приём данных.

В MAC подуровень также включены некоторые элементы битовой синхронизации. Всё это находится внутри MAC подуровня и не имеет никакой возможности к модификации.

Область физического уровня - фактическая передача битов между различными узлами с соблюдением всех электрических правил.

Внутри одной сети, физический уровень одинаков для всех узлов.

Однако существует свобода в выборе физического уровня. Цель этой спецификации - определить MAC подуровень и небольшую часть LLC подуровня уровня передачи данных и описать действие протокола CAN на окружающие уровни

Основные характеристики:

  • приоритетность сообщений;

  • гарантированное время отклика;

  • гибкость конфигурации;

  • групповой прием с синхронизацией времени;

  • система непротиворечивости данных;

  • обнаружение ошибок и их сигнализация;

  • автоматическая ретрансляция испорченных сообщений, как только шина снова станет свободной;

  • различие между нерегулярными ошибками и постоянными отказами узлов и автономное выключения дефектных узлов.

Для достижения безопасности передачи данных, в каждом узле CAN имеются мощные средства самоконтроля, обнаружения и сообщения об ошибках.

Имеются два формата, которые отличаются по длине поля идентификатора:

  • кадры с 11-разрядным идентификатором - называются стандартными кадрами;

  • кадры, содержащие 29 разрядные идентификаторы, называются расширенными кадрами.

Кадр данных передает данные от передатчика приемнику. Кадр удаленного запроса данных передается узлом, чтобы запросить передачу кадра данных с тем же самым идентификатором.

Кадр ошибки передается любым узлом при обнаружении ошибки на шине.

Кадр перегрузки используется, чтобы обеспечить дополнительную задержку между предшествующим и последующим кадром данных или кадром удаленного запроса данных.

Кадры данных и кадры удаленного запроса данных могут использоваться и в стандартном и в расширенном формате; они отделяются от предшествующих кадров межкадровым пространством.

В таблице 5.1 представлена структура информационного пакета.


Таблица 5.1 – Формат информационного пакета

Поле данных

Название

Значение

1

Начало кадра

Это поле состоит из одиночного нулевого бита

2

Поле арбитража

В стандартном формате поле арбитража, состоит из 11 разрядного идентификатора и RTR-бита. Биты идентификатора обозначены.

В расширенном формате поле арбитража состоит из 29 разрядного идентификатора, SRR-бита, IDE-бита, и RTR-бита

3

Поле управления

Поле управления состоит из шести бит: код длины данных (DLC), бит IDE, который передается нулевым уровнем (см. выше), и зарезервированный бит r0.

4

Поле данных

Поле данных состоит из данных, которые будут переданы внутри кадра данных. Оно может содержать от 0 до 8 байт, каждый содержит 8 бит, которые передаются, начиная с MSB.

5

Поле CRC

Содержит последовательность CRC и CRC - разделитель

6

Поле подтверждения

Поле подтверждения имеет длину два бита и содержит: "область подтверждения" и разделитель подтверждения.

7

Конец кадра

Каждый кадр данных и кадр удаленного запроса данных ограничен последовательностью флагов, состоящей, из семи единичных бит.


За реализацию данного протокола будет отвечать CAN-контроллер, который обеспечивает взаимодействие с сетью. Таким образом, протокол CAN реализуется на аппаратном уровне. Данные на CAN-контроллер будут передаваться через SPI интерфейс.

Интерфейс SPI позволяет осуществлять высокоскоростную синхронную передачу данных между микроконтроллером AVR и периферийными устройствами или между несколькими микроконтроллерами AVR. В большинстве случаев этот интерфейс имеет второе назначение — он используется для внутрисхемного программирования (ISP).

Взаимодействие между двумя устройствами SPI всегда осуществляется между устройством в режиме Master (далее по тексту «ведущий») и устройством в режиме Slave (далее по тексту «ведомый»). В отличие от некоторых периферийных устройств, таких как датчики, которые могут выступать только в роли ведомых, интерфейс SPI микроконтроллеров AVR может быть сконфигурирован как для работы в режиме ведущего, так и для работы в режиме ведомого. Режим работы интерфейса SPI микроконтроллера AVR определяется битом master (MSTR) регистра управления интерфейсом SPI (SPCR). Особое внимание следует уделить линии SS, подробнее о которой будет написано далее в разделе «Системы с несколькими ведомыми – функционирование линии SS».

SPI содержит четыре сигнальных линии. Это линия генератора сдвига (SCK), линия «Выход ведущего вход ведомого» (Master Out Slave In или MOSI), линия «Вход ведущего выход ведомого» (Master In Slave Out или MISO) и линия выбора ведомого с низким активным уровнем (SS) [5]. Когда SPI включен, направление передачи данных на выводах SCK, MOSI, MISO и SS изменяется в соответствии с таблицей 5.2.


Таблица 5.2 – Направление выводов в режимах ведущего и ведомого

Вывод

Направление в режиме ведущего

Направление в режиме ведомого


MOSI


Определяется пользователем


Вход


MISO


Вход


Определяется пользователем


SCK


Определяется пользователем


Вход

__

SS


Определяется пользователем


Вход


Из таблицы видно, что автоматически инициализируются только входные линии. Выходные линии должны быть явно инициализированы программой. Это сделано с целью избежать повреждения портов.

RS232 - популярный протокол, применяемый для связи компьютеров с модемами и другими периферийными устройствами.

Скорость передачи информации по RS-232 измеряется в Бодах. Эта единица названа в честь Эмиля Бодо (Jean Maurice-Emile Baudot) (1845-1903), французского инженера по телеграфии, изобретателя первого печатающего устройства для телеграфа (телепринтера) , представленного на Международной Телеграфной конференции в 1927. Максимальная скорость согласно стандарту 20000 Бод. Однако современное оборудование может работать значительно быстрее. Не имеет значения, на сколько быстрое (медленное) ваше соединение – максимальное число чтения за секунду можно установить с помощью используемого программного обеспечения.

При передаче по последовательному каналу контроль четности может быть использован для обнаружения ошибок при передаче данных. При использовании контроля четности посылаются сообщения подсчитывающие число единиц в группе бит данных. В зависимости от результата устанавливается бит четности. Приемное устройство также подсчитывает число единиц и затем сверяет бит четности.

Для обеспечения контроля четности компьютер и устройство должны одинаково производить подсчет бита четности. То есть, определиться устанавливать бит при четном (even) или нечетном (odd) числе единиц. При контроле на четность биты данных и бит четности всегда должны содержать четное число единиц. В противоположном случае соответствует для контроля на нечетность.

Проверка на четность - это простейший способ обнаружения ошибок. Он может определить возникновение ошибок в одном бите, но при наличии ошибок в двух битах уже не заметит ошибок. Также такой контроль не отвечает на вопрос какой бит ошибочный. Другой механизм проверки включает в себя Старт и Стоп биты, циклические проверки на избыточность, которые часто применяются в соединениях Modbus.

В программе необходимо обрабатывать данные, поступающие от интерфейса RS232 и интерфейса CAN-bus.

Сначала необходимо проинициализировать микроконтроллер, для чего используются функция void usart_init(void) – инициализация USART. Так же необходима инициализация внутренних регистров микроконтроллера. USART проинициализируем таким образом: скорость передачи 9600 бод, данные передаются по 8 бит, бит паритета отсутствует, 1 стоповый бит.

Для приема/передачи данных через USART будут использоваться функции get_usart() и put_usart(), которые предназначены для посимвольного обмена данными.

После того, как принят информационный пакет из линии RS232, он анализируется на наличие ошибок (функция анализа ErrorAnalys()). Если все в порядке, то после конвертации информационного пакета происходит его передача в линии CAN-bus через SPI (функция передачи spi_transmit()). После этого происходит передача ответного информационного пакета из линии CAN-bus (ответный информационный пакет spi_receive()). После конвертации ответного информационного пакета происходит передача его в линии RS232.

Схема алгоритма работы разрабатываемого программно-аппаратного терминала изображена на чертеже БрГТУ.07817 – 12 90 00.


^ 5.2 Разработка программного обеспечения для ПЭВМ

Целью является разработка программного обеспечения (ПО) для ПЭВМ, выполняющего функцию управления программно-аппаратным терминалом. Для разработки программного обеспечения для ПЭВМ используется язык программирования С++, среда разработки С++ Builder 6.

C++Builder – одна из самых мощных систем, позволяющих на самом современном уровне создавать как отдельные прикладные программы Windows, так и разветвленные комплексы, предназначенные для работы в корпоративных сетях и в интернет.

Объектно-ориентированное программирование (сокращенно ООП) – это в наше время совершенно естественный подход к построению сложных (и не очень сложных) программ и систем. Когда вы открываете любую программу Windows, вы видите окно с множеством кнопок, разделов меню, окон редактирования, списков и т.п. Все это объекты. Причем сами по себе они ничего не делают. Они ждут каких-то событий – нажатия пользователем клавиш или кнопок мыши, перемещения курсора и т.д. Ко­гда происходит подобное событие, объект получает сообщение об этом и как-то на него реагирует: выполняет некоторые вычисления, разворачивает список, заносит символ в окно редактирования. Такая программа Windows и есть объектно-ориентиро­ванная программа [6].

Приложение, построенное по принципам объектной ориентации – это не последовательность каких-то операторов, не некий жесткий алгоритм. Объектно-ориентрованная программа – это совокупность объектов и способов их взаимо­действия. Отдельным (и главным) объектом при таком подходе во многих случаях можно считать пользователя программы. Он же служит и основным, но не единственным, источником событий, управляющих приложением.

В программе необходимо передавать данные через COM-порт и обрабатывать данные, поступающие от интерфейса RS232. Программа представляет собой приложение, с помощью которого пользователь сможет осуществлять управление работой программно-аппаратного терминала. Для этого пользователю будет предложено меню, посредством выбора пунктов которого он сможет выполнять какие-либо операции.

Для организации меню в программе мы воспользовались компонентов MainMenu. Главное меню представлено на рисунке 5.1 и содержит следующие пункты:

  • пункт “Открыть” – вызов диалогового окна для выбора и подтверждения файла hex, который необходимо открыть (использовали компоненту OpenDialog) ;

  • пункт “Сохранить” – вызов диалогового окна для указания места, в котором нужно сохранить текущий открытый файл, и его имени (использовали компоненту SaveDialog);

  • пункт “Редактировать” – делает доступной опцию редактирования открытого файла;

  • пункт “Передать” – начинает передачу данных, содержащихся в текущем файле;

  • пункт “Выход” – закрывает приложение.





Рисунок 5.1 – Главное меню


Пункт “Печать” – позволяет настроить опции печати и выполнить печать.

Для реализации окна редактирования используется компонента Memo, которая является окном редактирования многострочного текста. Она снабжена множеством функций, свойственных большинству редакторов.

Для реализации передачи и приема данных через COM-порт использовали библиотеку TrComPort.lib. Функция TrComPortWriteAndRead() осуществляет непосредственно прием и передачу данных. Для побайтового считывания данных из файла будет использована стандартная функция ввода/вывода fscanf();

Схема алгоритма работы разрабатываемого приложения для программно-аппаратного терминала изображена на чертеже БрГТУ.07817.012 – 12 91 00.








Скачать файл (3931.1 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации