Сеть на основе нейрочипаРефераты >> Коммуникации и связь >> Сеть на основе нейрочипа
Выводы
Теперь видно, что реализованное устройство выполняет поставленную задачу и не содержит ошибок, что позволяет без опасений работать с программой и устройством.
Заключение.
В результате проведенной работы была организована структурная схема распределенных датчиков для измерения скорости ветра. Из данной схемы и определения производительности полученной имитируемой системы были сделаны выводы о пригодности нейрочипов для данной области их использования. В результате использование датчиков на основе нейрочипов на небольших аэродромах не имеет под собой экономической основы, т.к. стоимость нейрочипа значительно больше имеющихся на данный момент аналогов, а производительность их при небольшом количестве не значительно выше других процессоров. Поэтому данное устройство нужно использовать при большом количестве датчиков, больше нескольких тысяч, тогда производительность датчиков с нейрочипами и приемо-передающих устройств на их основе значительно выше, чем при том же количестве датчиков с использованием других процессоров. Отсюда видны следующие преимущества и недостатки данного метода.
Преимущества:
· не большая стоимость компонентов для реализации отдельного прикладного узла,
- очень простая конфигурация узла нижнего уровня,
- большая номенклатура устройств и приборов, выпускаемых промышленно в странах ЕЭС и США и имеющих встроенные узлы LONWORKS для работы в составе сетей ECHELON (большая распространенность стандарта в мире),
- большое количество готовых процедур по адаптации типовой периферии в стандартной библиотеке NEURON,
- простота разработки прикладного программного обеспечения узлов.
Недостатки:
· чрезвычайно большая стоимость, хотя и весьма эффективных и удобных, отладочных средств,
- отсутствие узлов WDT, узла автоматического сброса при включении питания (требует использования внешнего супервизора) и возможности работы в “спящем режиме” у микроконтроллеров NEURON,
- крайне слабая поддержка данного стандарта дилерскими фирмами в России.
Программа полностью соответствует техническому заданию и выполняет поставленное задание.
Из-за большой стоимости пакета разработки, компиляции и компановки программ написанных на NEURON C проверить работоспособность программы является невозможным, поэтому приходится довольствоваться лишь примерным теоретическим результатам и результатам имитационного и математического моделирования.
Хотя на данный момент нейрочипы являются дорогостоящим продуктом, но
за ним будущее, т.к. в наше время главным фактором является скорость, а скорость нейрочипа пока не видит ограничений.
Список литературы.
1. Дитрих-Лой-Швайнцер. «LON -технология».ПГТУ .395с. 1999
2. Журнал «Радио и связь» №4 1999г.
3. Войкова А.П. «Нейронные сети и нейрочипы», Москва, 280с., 2000г.
8. Приложения.
8.1. Текст программы.
8.1.1 Подготовка нейрон чипов
************************************************************************
* Эта программа на Neuron C устанавливает Neuron Chip в slave A
* mode.
************************************************************************
IO_0 parallel slave s_bus;
#define DATA_SIZE 255 //максимально разрешенное поле данных
struct parallel_io_interface
{
unsigned int length; //length of data field
unsigned int data[DATA_SIZE];
}piofc
when (io_in_ready(s_bus))1 //готовность приема информации
{
piofc.length = DATA_SIZE; //максимальное число в байтах
to read
io_in(s_bus,&piofc); //получить 10 байт
incoming data
}
when (io_out_ready(s_bus)) //готовность передать 10 байт
{
piofc.length = 10; //кол-во байт
io_out(s_bus,&piofc); //передать 10 байт из буфера
}
when ( .) //условие по которому будет отправлено сообщение о заполнении буфера
{
io_out_request(s_bus); } request
8.1.2. Программа обработки
************************************************************************
* Эта программа на Neuron C задает Neuron Chip в slave A
* подсчет импульсов поступающих с нейрочипа.
************************************************************************
#pragma enable_io_pullups
////////////////////Параматры для подсчета (определяются пользователем)////////////
#define lower_limit 0 //нижний предел подсчета
#define upper_limit 100 //верхний предел подсчета
#define shaft_direction 1 //направление счета (т.е.,
0=лево,1=право)
/////////////////// Программа //////////////////////
IO_5 input pulsecount analog_input;
IO_5 input quadrature shaft_encoder; //импульсы поступают на 5 вход нейрочипа
signed long count;
signed long increment;
when (io_update_occurs(shaft_encoder){
if (shaft_direction) count += input_value;
else count -= input_value; //вывод полученных данных
/////////////////// Проверка //////////////////////
if (count<lower_limit) count=lower_limit;
if (count>upper_limit) count=upper_limit; //Проверка переполнения overflow
}
when (reset) // Сброс
{
count = 0;
}
************************************************************************
* Эта программа на Neuron C задает Neuron Chip в master A
* принимает информацию со всех нейрочипов типа slave A и в случае превышения порогового уровня в 50 импульсов, что * соответствует ветру 50м/с передает информацию в центральную ЭВМ с указанием номера того датчика с которого поступила * данная информация и времени ее поступления
************************************************************************
#pragma scheduler_reset // процедура сброса
#pragma enable_io_pull-ups // процедура подчета импульсов (описана выше)
#pragma num_addr_table_entries 1
#pragma one_domain
#pragma app_buf_out_priority_count 0
#pragma net_buf_out_priority_count 0
#define timerl 100 // таймер производит опрос по входам на наличие информации каждые 100мкС
#define max_char_from_PC 30 //максимально разрешенное кол-во символов принимаемых нейрочипом
#define porog 50 //установочный порог
{
unsigned int speed; //данные о скорости
unsigned int number; // данные о номере датчика
};
#define max_packet_size 60 // максимально разрешенный пакет отсылаемый в ЭВМ
{
unsigned int speed; //данные о скорости
unsigned int minutes; //время принятия сообщения
unsigned int hours;
unsigned int number // номер датчика
};
/******************************** Дополнительные файлы ************************************/
#include <control.h>
/********************************* Определение I/O ****************************************/