Рефераты. Сеть на основе нейрочипа p> /********************************* Определение I/O
****************************************/
IO_5 output bit RTS;
IO_2 output bit СTS;
IO_4 output serial baud(4800) RXD; // read data from PC
IO_10 output serial baud(4800) TXD; // send data to PC
IO_8 input bit R/W;
IO_5 input bit CS;
IO_9 input bit HS;
/****************************** Сетевые данные
*************************************/ network input struct temp_time pctobc_speed_in; // speed network input struct temp_time pctobc_number_in; // number network input struct time NV_time_in; // BC time network input boolean NVfan_state_in // TRUE: fan is flashing network input boolean NVcomp_state_in; // TRUE: compressor is on network output struct temp_time bind_info(unackd) NV_timesetpt_out;

//************************************ Глобальные
***************************************/ char input_but[max_packet_size]; // пакет отсылаемый в ЭВМ char input_buf1[max_char_from_PC]; // Input from PC (1st time) char input_buf2[max_char_from_PC]; // Input from PC (2nd time) char * buf_ptr; // указатель в буфере boolean packet_found = FALSE; // пакет не найден. boolean compress_state = FALSE; // датчик не исправен int last_num_chars; // количество принятых символов int speed; char out_char[1]; struct bcd digits; // holds BCD data to be sent to PC
// digits.d1 most significant nibble in ms byte
// digits.d2 least significant nibble in ms byte
// digits.d3 most significant nibble
// digits.d4 least significant nibble
// digits.d5 most significant nibble in ls byte
// digits.d6 least significant nibble in ls byte struct { // data from bc unsigned int speed; unsigned int number;
} bc_data; struct speed_time bc_number;
/************************************ Timers
******************************************/ mtimer repeating check_CTS; mtimer repeating get_data_from_bc; // every 100 ms poll bc
// then send to PC
/*********************************** Functions
****************************************/ boolean append_packet( ) description: assert CTS, append data to input_buf[ ] if any and return append_packet = TRUE if 1st char. = ‘D’ and last char. is a CR.
{ boolean packet; int i; int num_chars1; int num_chars2; packet = FALSE; num_chars1 = 0; num_chars2 = 0; io_out( CTS, 0 ); // enable cts num_chars1 = io_in( RXD, input_buf1, max_char_from_PC ); io_out( CTS, 1 ); // disable cts when (io_puls_up io_5 > porog )
{ num_chars2 = io_in( RXD, input_buf2, max_char_from_PC );
// append data over to where final packet goes if ( num_chars1 != 0 )
{ // if data append it to input_buf for ( i = last_num_chars; i < last_num_chars + num_chars1; i++ )
{ input_buf[i] = input_buf1[ i - last_num_chars ]; // append
} last_num_chars = last_num_chars + num_chars1;
} if ( num_chars2 != 0 )
{ // if data append it to input_buf for ( i = last_num_chars; i < last_num_chars + num_chars2; i++ )
{ input_buf[i] = input_buf2[ i - last_num_chars ]; // append
} last_num_chars = last_num_chars + num_chars2;
} if ( last_num_chars > 0 ) { // something there if ( input_buf[0] != ‘D’ )
{ // A packet is started and packet is invalid last_num_chars = 0; // reset count of total characters read packet = FALSE;
} else if ( input_buf[ last_num_chars - 1 ] == ‘/r’ ) {
// 1st char. a ‘D’ and last char. a carriage return packet = TRUE;
}
} // something there return( packet );
}
// This function converts a hex character to 2 ASCII characters
// and sends the characters to out the TXC port to the PC
// void putch_hex(unsigned int hex_char)
{ out_char[0] = ( hex_char >> 4 ) & 0x0f; // keep lower nibble if( out_char > 9 ) out_char[0] += 0x37; else out_char[0] += 0x30; io_out( TXD, out_char, 1 ); // output 1 char. out the 232 port to the PC out_char[0] = hex_char & 0x0f; if(out_char > 9) out_char[0] += 0x37; else out_char[0] += 0x30; io_out( TXD, out_char, 1 ); // output 1 char. out the 232 port to the PC
}
//
// This function converts two ascii characters to a decimal digit
// unsigned char to_dec(unsigned char msb,unsigned char lsb)
{ return( (msb - 48) * 10 + (lsb - 48) );
}
/************************************* Reset
***************************************** when (reset) { bc_data.hours = 0; bc_data.minutes = 0; bc_data.speed = 0; bc_data.number = 0; check_CTS = timer1; // repeating timer when to assert CTS
// to check for PC data get_data_from_bc = 100; // every 100 ms poll bc and then send to PC when (io_puls_up io_5 >50 )
{ when ( timer_expires(check_CTS) { // go get next character(s) packet_found = append_packet( ); // append more data if any
// to input_buf[].
// also returns true if
// when finds what looks like a good packet. check_CTS = timer1;
} when ( packet_found ) { // process packet
// packet format: switch( input_buf[1] ) { // select from type of packet byte case ‘1’:// set time if ( last_num_chars == 7 ) {
NV_timesetpt_out.temp = 255; // code for do not use
// convert ASCII HHMM in input_buf[2-5] to unsigned int. bc_data.hours = NV_timesetpt_out.hours = to_dec(input_buf[2], input_buf[3]); bc_data.minutes = NV_timesetpt_out.minutes = to_dec(input_buf[4], input_buf[5]);
} break; case ‘2’: // set number if ( last_num_chars == 5 ) {
// convert ASCII set point in input_buf[2-3] to unsigned int. bc_data.number = NV_timesetpt_out.speed = to_dec(input_buf[2], input_buf[3]);
NV_timesetpt_out.hours = 255; // code for do not use
NV_timesetpt_out.minutes = 255; // code for do not use
} break; default: // bad packet break;
} packet_found = FALSE; // finished last packet last_num_chars = 0; // reset # of bytes collected in packet for ( temp = 0; temp < max_packet_size; temp++ ) { // not needed but helps in d input_buf[temp] = 0;
}
} when ( nv_update_fails ) {
} when ( nv_update_occurs(NV_time_in) ) { // BC to PC time (HHMM) bc_data.hours = NV_time_in.hours; // HH time bc_data.minutes = NV_time_in.minutes; // MM time
} when ( nv_update_occurs(pctobc_temp_in) ) { // BC to PC speed bc_data.speed = pctobc_temp_in.temp; // BC speed
} when ( nv_update_occurs(pctobc_setpt_in) ) { // BC to PC number bc_data.setpoint = pctobc_setpt_in.temp; // BC number
} when ( nv_update_occurs(NVcomp_state_in) ) { if (NVcomp_state_in == TRUE) { compress_state = TRUE;
} else { compress_state = FALSE;
}
} when ( nv_update_occurs(NVfan_state_in) ) { if (NVfan_state_in == TRUE; fan_state = TRUE;
} else { fan_state = FALSE;
}
} when ( nv_update_fails(NVcomp_state_in) ) { // datchik not responding compress_state = FALSE; // assume off
} when( timer_expires(get_data_from_bc) ) {
// every 100 ms send data to PC and poll fan and compressor for status poll(NVcomp_state_in); // compressor state get_data_from_bc = 100; // 100 ms repetitive timer
// packet consists of:

out_char[0] = ‘B’; // Beginning of packet character io_out(TXD, out_char, 1); // send out 232 port
// output time (hours only) bin2bcd( (long) bc_data.hours, &digits); out_char[0] = digits.d5 + 0x30; // high time BCD digit converted to ASCII io_out( TXD, out_char, 1); out_char[0] = digits.d6 + 0x30; // low time BCD digit converted to ASCII io_out( TXD, out_char, 1);
// output time (minutes only) bin2bcd( (long) bc_data.minutes, &digits); out_char[0] = digits.d5 + 0x30; // high time BDC digit converted to ASCII io_out( TXD, out_char, 1); out_char[0] = digits.d6 + 0x30; // low time BCD digit converted to ASCII io_out( TXD, out_char, 1);
// output time (speed) bin2bcd( (long) bc_data.speed, &digits); out_char[0] = digits.d5 + 0x30; // high speed. BCD digit converted to
ASCII io_out( TXD, out_char, 1); out_char[0] = digits.d5 + 0x30; // low speed. BCD digit converted to ASCII io_out( TXD, out_char, 1);
// output time (number) bin2bcd( (long) bc_data.number, &digits); out_char[0] = digits.d5 + 0x30; // high stpt BCD digit converted to ASCII io_out( TXD, out_char, 1); out_char[0] = digits.d6 + 0x30; // low stpt BCD digit converted to ASCII io_out( TXD, out_char, 1);
// output datchik on/off if ( compress_state == TRUE ) { // datchik is on
// (i.e. LEDs scrolling) io_out(TXD, “1”, 1); // output to PC datchik is on
} else {// datchik is off (i.e. LEDs not flashing) io_out(TXD, “0”, 1); // output to PC datchik is off
}
// a ends the packet io_out(TXD, “r”, 1); //
}

Министерство общего и специального образования РФ

Московский Энергетический Институт

(Технический Университет)

Филиал в городе Смоленске

Кафедра вычислительной техники

Техническое задание к курсовой работе по дисциплине

"Сети ЭВМ и средства коммуникации" на тему

“Сеть на основе нейрочипа”

| |гр. ВМ1-97 |
| |студент: Вальков К.Г. |
| |преподаватели: Аверченков О.Е. |

г. Смоленск 2000 г.

1. Область применения.

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

2. Цель и назначение

Освоить принципы построения сетей с использованием нейрочипов. Изучить структуру и программный язык NEURON C. Определить применима ли данная сеть для различных аэродромов (малой, средней и большой протяженности).
Разработать электрическую схему устройства коммуникации датчик - центральная ЭВМ с внутренним устройством обработки.

3. Технические требования.

Требования к аппаратуре: для полноценной работы данного устройства необходимо напряжение питание +(5-12)В. Среда передачи данных : интерфейс
RS232C (25 контактный разъем). Отклонение от приведенных в спецификации характеристик элементов (2%.
Требования к надежности: устройство должно работать в любом положении
(вертикальное, горизонтальное ), в любых погодных условиях полноценно выполнять свою задачу и обрабатывать внештатные ситуации, возникающие при работе, связанные с недостаточной квалификацией оператора.

4.Задание

Разработать устройство и программное обеспечение к нему выполняющему следующую функцию : обработка информации поступающей с аэродинамических датчиков (датчики анализа скорости ветра) и передача поступающей информации по сети в ЭВМ, сеть реализовать на основе нейрочипа

11. Оглавление

Аннотация.__________________________________________________________ 2
1. Введение.__________________________________________________________3
1.1. Причины и последствия объединения компьютеров в сеть.
______________3
1.2. Управление техническими процессами ______________________________4

1.2.1. Классический подход _________________________________________
4

1.2.2. Децентрализованный подход ___________________________________5
1.3. Информационный обмен как основа распределенных систем ___________7

1.3.1. Иерархия систем _____________________________________________7

1.3.2. Семиуровневая модель ISO/OSI
________________________________8

1.4. Топологии _____________________________________________________11
1.5. Инструментарий ________________________________________________15

1.5.1. Основные характеристики микроконтроллеров NEURON Chip _____17
2. Постановка задачи ._______________________________________________ 24

2.1. Обзор литературы и предлагаемых методов решения.________________
24

2.2. Анализ задачи. ________________________________________________ 25

2.3. Описание алгоритма____________________________________________27
3. Разработка программы_____________________________________________28

3.1. Структура программы с описанием._______________________________28

3.2. Структура модулей._____________________________________________29

3.3.Описание интерфейса.___________________________________________30

1. Человеко-машинный интерфейс ______________________________30

2. Обработка ошибок _________________________________________30
4. Результативная часть.______________________________________________31
4.1. Тестирование.___________________________________________________31

4.1.1. Выбор методики тестирования
______________________________31

4.1.2. Описание методики
_______________________________________32

4.1.3. Результаты
______________________________________________32

4.2. Ограничения на программу.______________________________________33

4.3. Инструкция пользователю _______________________________________33

Заключение._______________________________________________________34

Список литературы._________________________________________________36
Приложения._______________________________________________________37

1. Документированный текст программы.______________________________38

2.Техническое задание . ____________________________________________ 43

3. Схема принципиальная -электрическая._____________________________П1
Оглавление.________________________________________________________46


Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.