Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Читать онлайн Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 110 111 112 113 114 115 116 117 118 ... 150
Перейти на страницу:

// стек - 0x4000

//********************************************************************

#include <stdio.h>

#include "hcs12dp256.h"

#pragma abs_address 0x3000

unsigned int count1; //счетчики переменных

unsigned int count2;

unsigned int sensor;

char sensoravg; //сохраняют данные датчиков в виде 8-разрядных чисел

volatile unsigned p; // текущий счетчик

#pragma end_abs_address

//********************************************************************

void main(void) {

 //Инициализация робота

 PWME = 0x00; //запрет ШИМ

 DDRA = 0xFF; //конфигурирование портов A и В как выходных

 DDRB = 0xFF;

 PORTA = 0xAA; //подача питания на датчики

 PORTB = 0xFF; //индикация режима программы на линейке светодиодов

               //Инициализация модуля ATD

 PORTAD1 = 0x00; //конфигурирование портов как входных

 ATD1CTL2 = 0xC2; //инициализация ATD с установкой флагов

                  //преобразования в каналах

 ATD1CTL3 = 0x00; // функция установки ATD

 ATD1CTL4 = 0x80; //установить 8-разрядный режим

 PORTB = 0xFE; //показать состояние программы на линейке

               // светодиодов

 // Инициализация режима входного захвата

 TSCR1 = 0x80; //включение таймера (нормальный режим)

 TSCR2 = 0x80; //установить период переполнения счетчика временной

               // базы 8.192 мс, коэффициент деления = 1

 TIOS = 0x00; //установить каналы таймера в режим входного захвата

 TMSK1 = 0xE0;//биты разрешения прерывания по событиям на линиях [7:5]

 TFLG1 = 0xE0; //очистить флаги прерываний TFLG1

 PORTB = 0xFC; // показать состояние программы на линейке светодиодов

 // инициализация ШИМ

 PWMCTL = 0x00; //установить 8-разрядный режим

 PWMCAE = 0x10; //установить фронтовую ШИМ

 PWMPOL = 0x5F; //выбрать активным высокий логический уровень

                //назначить режим ШИМ для каналов 0,1,2,3,4 и 6

 PWMCLK = 0x50; //каналы 0,1,4 тактируются CLOCK_A и каналы

                //2,3,6 - CLOCK_В

 PWMSCLA = 0x20; //период A 0x20 = 4.1 мс

 PWMSCLB = 0x04; //период B 0x02 = 255 мкс, выбрать

                 // наибольший коэффициент заполнения для всех каналов

 PWMPER0 = 255;

 PWMPER1 = 255;

 PWMPER2 = 255;

 PWMPER3 = 255;

 //Запуск двигателей

 PWME = PWME | 0x5F; // разрешения режима ШИМ для каналов 0,1,2,3,4 и 5

 PWMDTY0 = 80; // установить коэффициенты заполнения

               // для каналов 0,1,2 и 3

 PWMDTY1 = 80;

 PWMDTY2 = 80;

 PWMDTY3 = 80;

 // Взлет

 while (PWMTY0 < 200) {

  PWMDTY0 = PWMDTY0 + 1;

  PWMDTY1 =PWMDTY1 + 1;

  PWMDTY2 = PWMDTY2 + 1;

  PWMDTY3 = PWMDTY3 + 1;

 }

 P = 20;

 // установить коэффициенты заполнения для двигателей на режим полета

 while (battery == 1) //проверить включение батареи

 {

  // двигатель 1

  ATD0CLT5 = 0x04; //режим оцифровки многоканальный

  while ((ATD0STAT0 & 0x80) == 0);

  sensoravg = ATD0DR4H; //установить PAD00 для датчика 1

  if ((int)sensoravg > 80) {

   PWMDTY0 = PWMDTY0 + 20;

   delay2();

   for (i=0; i<p; i++) PWMDTY0--;

  }

  // двигатель 2

  ATD0CLT5 = 0x04;

  while ((ATD0STAT0 & 0x80) == 0);

  sensoravg = ATD0DR5H; //установить PAD00 для датчика 2

  if ((int)sensoravg > 80) {

   PWMDTY1 = PWMDTY1 + 20;

   delay2();

   for (i=0; i<p; i++) PWMDTY1--;

  }

  // двигатель 3

  ATD0CLT5 = 0x04;

  while ((ATD0STAT0 & 0x80) == 0);

  sensoravg = ATD0DR6H; //установить PAD00 для датчика 3

  if ((int)sensoravg > 80) {

   PWMDTY2 = PWMDTY2 + 0;

   delay2();

   for (i=0; i<p; i++) PWMDTY2--;

  }

  // двигатель 4

  ATD0CLT5 = 0x04;

  while ((ATD0STAT0 & 0x80) == 0);

  sensoravg = ATD0DR7H; //установить PAD00 для датчика 4

  if ((int)sensoravg > 80) {

   PWMDTY7 = PWMDTY7 + 20;

   delay2();

   for (i=0; i<p; i++) PWMDTY7--;

  }

 } //конец while

 // снизить скорость двигателей для посадки

 while (PWMDTY0 > 80) {

  PWMDTY0--;

  PWMDTY1--;

  PWMDTY2--;

  PWMDTY3--;

  delay1();

 }

 // остановить двигатели

 PWME = 0x00;

}

//********************************************************************

7.5.6. Некоторые комментарии

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

7.6. Система защиты компьютера, основанная на нечеткой логике 

7.6.1. Описание проекта

В этом разделе описана основанная на нечеткой логике система защиты от вторжения, которая может защитить ваш компьютер от несанкционированного внешнего доступа. В частности, рассматриваемая система может с помощью встроенных в МК 68HC12/HCS12 функций поддержки нечеткой логики обнаруживать внедрение постороннего гипертекста (HTTP) при туннелировании информации по сетевой шине компьютера. Туннелирование применяется для легальной установки сеансов связи между ведущим компьютером внутри компьютерной сети и компьютером, внешним по отношению к этой сети. «Злоумышленник» использует такой внешний компьютер, чтобы установить тайный сеанс связи, формируя несанкционированные сообщения внутри пакетов обычного протокола HTTP. Чтобы предотвратить такие действия, общество защиты компьютерной информации разработало в прошедшем десятилетии ряд информационных систем. Цель описываемой микроконтроллерной системы защиты состоит не в том, чтобы заменить существующие коммерческие системы, а в том, чтобы помогать таким системам, оценивая присутствие в данных сетевого трафика внедренных посторонних HTTP сообщений.

Цель данного проекта состоит в создании переносной микроконтроллерной системы для анализа туннелирования HTTP. Эта система должна обнаруживать следующие злонамеренные и несанкционированные действия при туннелирования HTTP:

• атаки на интерактивные сеансы туннелирования;

• атаки с помощью внедрения скриптов в сеансах туннелирования; 

• внедрение несанкционированных видео и звуковых сигналов в передаваемых потоках информации.

Система защиты должна удовлетворять следующим системным требованиям:

1. Использовать МК семейства;

2. Иметь светодиодное табло для отображения состояния трафика;

3. Обнаруживать интерактивные сеансы туннелирования;

4. Проводить поиск внедренных скриптов при туннелировании;

5. Обнаруживать несанкционированное видео и звуковые сеансы передачи;

6. Использовать алгоритмы нечеткой логики для определения состояния сетевого трафика.

7.6.2. Использование системы HCS12

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

7.6.3. Основы теории

На рис. 7.27 показан полный процесс, который должна реализовать микроконтроллерная система защиты, чтобы идентифицировать нежелательный сетевой трафик. Система обрабатывает набор из шести входных сигналов, создаваемых ПК, используя алгоритмы нечеткой логики. (Обзор команд 68HC12 для реализации законов управления с нечеткой логикой см. в [11]). Входными сигналами для системы являются оценки уровня членства; нулевая оценка означает отсутствие членства, в то время как максимальная оценка представляет совершенное членство. Первые три входных сигнала отражают оценки членства для профилей поведения. Профиль поведения составлен из таких атрибутов сеанса, как размер пакета, число пакетов сеанса, продолжительность сеанса, соотношение между большими и малыми пакетами, направления передачи данных, средний размер пакета, изменение стандартного размера пакета и общих размеров полученных пакетов.

Рис. 7.27. Определение оценок членства для трех наборов и двух множеств (шесть входов)

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

1 ... 110 111 112 113 114 115 116 117 118 ... 150
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт.
Комментарии