www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Вопросы по различным протоколам http://www.open-tager.ru/forum/viewtopic.php?f=5&t=1468 |
Страница 2 из 4 |
Автор: | Gaspar [ 09 мар 2012, 23:09 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
Ну солнечная засветка сильно снижает дальность, так что скорее первое. У TSAL 6100 не только угол меньше, но и мощность повыше, может замены будет достаточно. Насчёт частоты американцы да и смоленцы, пишут что на 56 дальность выше, в связи с тем, что на этой частоте помех от солнца меньше, но встречалось и другое мнение, так что точно сказать не могу |
Автор: | Hold [ 10 мар 2012, 19:32 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
Понято, привезем несколько приемников на 56 кгц, посмотрим как они. По поводу мощности - имеется ввиду мощность излучения же? по даташиту там почти тоже самое, импульсный ток максимум 1.5 А. Есть только различия в пункте Power dissipation, которые 160 и 210 мВт соответственно. Зимой, кстати, игры не проводятся, а в летнее время снега нет, отражает солнца поменьше. Либо надо программо бороться с короткими импульсами солнечного ИК излучения. Кстати, проводил кто нибудь анализ средней длительности принятой помехи от солнца TSOP-ом? на разных частотах (36, 56 кгц) |
Автор: | KorSar [ 10 мар 2012, 22:53 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
Излучатель из Прицела получается не очень хороший. У меня таким излучателем на солнце На снегу метров 30 получал. Ваши 110 метров результат неплохой с таким излучателем. |
Автор: | Hold [ 11 мар 2012, 15:32 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
фильтрую программно) помехи берутся откуда угодно, от люминесцентных ламп до солнечного ИК излучения. Картинки выше - эт из симулятора proteus, там осциллограф есть. В течении часа попробую в железо зашить и в упор лампу дневного света направить, посмотрю как оно работает. UPD: некоторые результаты. В два датчика TSOP31236 направлена в упор лампа дневного света, расстояние до лампы - 2 см. Также в два датчика смотрит излучатель. Проверял прошивку с фильтрацией "тычков" и без оной. Без фильтрации - из 100 однобайтных посылок 24 посылки не принялись. С фильтрацией - не дошло 3 посылки, 3 посылки принялись некорректно. Работает блин. Надобно солнце, а в сибири как назло пасмурно. UPD №2: неоднозначные результаты. Чуть увеличил допуски в обоих протоколах, по плюс/минус 160 мкс. Теперь ни одной потери или некорректного приема данных. А вот на небольших допусках, порядка плюс/минус 40-50 мкс, там с фильтрацией коротких импульсов ошибок меньше. Выходит зря писал фильтрацию. Напишу на всякий случай свои допуски: 2400: от 2240 до 2560 мкс 1200: от 1040 до 1360 мкс 600: от 400 до 800 мкс(чуть больше чем в остальных, плюс/минус 200 мкс) Щас попробую написать простенький код, чтобы в течении часа мегабайты попередавал при постоянной помехе от лампы, все же интересно где больше ошибок будет. И будут ли они. |
Автор: | Pacifist [ 11 мар 2012, 17:40 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
Hold писал(а): фильтрую программно) помехи берутся откуда угодно, от люминесцентных ламп до солнечного ИК излучения. Картинки выше - эт из симулятора proteus, там осциллограф есть. В течении часа попробую в железо зашить и в упор лампу дневного света направить, посмотрю как оно работает. UPD: некоторые результаты. В два датчика TSOP31236 направлена в упор лампа дневного света, расстояние до лампы - 2 см. Также в два датчика смотрит излучатель. Проверял прошивку с фильтрацией "тычков" и без оной. Без фильтрации - из 100 однобайтных посылок 24 посылки не принялись. С фильтрацией - не дошло 3 посылки, 3 посылки принялись некорректно. Работает блин. Надобно солнце, а в сибири как назло пасмурно. UPD №2: неоднозначные результаты. Чуть увеличил допуски в обоих протоколах, по плюс/минус 160 мкс. Теперь ни одной потери или некорректного приема данных. А вот на небольших допусках, порядка плюс/минус 40-50 мкс, там с фильтрацией коротких импульсов ошибок меньше. Выходит зря писал фильтрацию. Напишу на всякий случай свои допуски: 2400: от 2240 до 2560 мкс 1200: от 1040 до 1360 мкс 600: от 400 до 800 мкс(чуть больше чем в остальных, плюс/минус 200 мкс) Щас попробую написать простенький код, чтобы в течении часа мегабайты попередавал при постоянной помехе от лампы, все же интересно где больше ошибок будет. И будут ли они. Фильтрацию писали не зря - пригодится однозначно. Допуски ИМХО уж очень лояльные, 33% - мне кажется многовато. Раз у вас уже испытательный стенд собран - не желаете проверить свои датчики на реальную пропускную способность? Мне, например, не удалось на 4800 бод получить прием с ТСОП-а 56кГц (по даташиту так и должно быть, но все равно обидно ) Интересно на какой скорости пойдет искажение или неприем информации. |
Автор: | Pingvin [ 12 мар 2012, 06:21 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
Hold писал(а): фильтрую программно) помехи берутся откуда угодно, от люминесцентных ламп до солнечного ИК излучения. Картинки выше - эт из симулятора proteus, там осциллограф есть. В течении часа попробую в железо зашить и в упор лампу дневного света направить, посмотрю как оно работает. UPD: некоторые результаты. В два датчика TSOP31236 направлена в упор лампа дневного света, расстояние до лампы - 2 см. Также в два датчика смотрит излучатель. Проверял прошивку с фильтрацией "тычков" и без оной. Без фильтрации - из 100 однобайтных посылок 24 посылки не принялись. С фильтрацией - не дошло 3 посылки, 3 посылки принялись некорректно. Работает блин. Надобно солнце, а в сибири как назло пасмурно. UPD №2: неоднозначные результаты. Чуть увеличил допуски в обоих протоколах, по плюс/минус 160 мкс. Теперь ни одной потери или некорректного приема данных. А вот на небольших допусках, порядка плюс/минус 40-50 мкс, там с фильтрацией коротких импульсов ошибок меньше. Выходит зря писал фильтрацию. Напишу на всякий случай свои допуски: 2400: от 2240 до 2560 мкс 1200: от 1040 до 1360 мкс 600: от 400 до 800 мкс(чуть больше чем в остальных, плюс/минус 200 мкс) Щас попробую написать простенький код, чтобы в течении часа мегабайты попередавал при постоянной помехе от лампы, все же интересно где больше ошибок будет. И будут ли они. А Вы уверенны, что с передатчика сигнал выходит "ровный да гладкий"? А то у меня была проблема - передавался "рваный" пакет из за "конкуренции" прерываний - в одном прерывании как раз формировался пакет, а другое, которое мешало правильно сформировать пакет, генерило звук. Выход был найден, и ошибки прекратились. Как формируете несущую? Проверьте и передатчик. |
Автор: | Hold [ 12 мар 2012, 09:31 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
Передатчик проверяли на запоминающем осциллографе, там все чисто. Там просто нечему мешаться, там только одно прерывание Таймера2, больше в передатчике ничего нет. Впрочем выложу код передатчика Цитата: #include <mega8.h>
#include <delay.h> #define ID_RPG 9 //номер РПГ, отсылается на броню 0-15 #define RPG_CODE 11 //код, отсылаемый на броню 0-15 #define CPU_F 16000000 //частота МК, Гц #define FREQ 56000 //частота модуляции, Гц #define START (2400*FREQ)/500000 //длительность старт-бита, мкс #define PAUSE (600*FREQ)/500000 //длительность паузы, мкс #define DATA_1 (1200*FREQ)/500000 //длительность логической 1, мкс #define DATA_0 (600*FREQ)/500000 //длительность логического 0, мкс #pragma used+ unsigned char n=8,buf=0; int i; struct { unsigned char end_data:1; unsigned char end_start_bit:1; } flag; interrupt [TIM2_COMP] void timer2_comp_isr(void) { i--; if (i==0)//если отсчитали все, отключаем таймер { TCCR2=0x00; } } void SendData(unsigned char data) //функция передачи байта { while (i==0 && n!=255) // если таймер закончил отсчет или посылка не отправлена, то { if (flag.end_start_bit==0) //если стартовые бит не отправлен, то { flag.end_start_bit=1; //стартовый бит отправлен i=START; TCCR2=0x19; //включаем таймер 2 break; } else { if (flag.end_data==0) { flag.end_data=1; if(data & (1<<n)) i=DATA_1; else i=DATA_0; TCCR2=0x19; break; } else { flag.end_data=0; i=PAUSE; TCCR2=0x09; n--; if (n==255) // посылка отправлена { delay_ms(1000); buf++; flag.end_data=1; flag.end_start_bit=0; n=8; break; } } } } } void main(void) { PORTB=0x00; DDRB=0x08; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR2=CPU_F/(FREQ*2); MCUCR=0x00; TIMSK=0x80; ACSR=0x80; SFIOR=0x00; #asm("sei") flag.end_data=1; //buf=ID_RPG<<4; //присваиваем переменной buf номер РПГ, и сдвигаем влево на 4 разряда //buf=buf+RPG_CODE; while (1) { if (PINB.1==1) { SendData(buf); } }; } |
Автор: | семеныч [ 15 мар 2012, 12:36 ] |
Заголовок сообщения: | Re: Вопросы по различным протоколам |
друзья! ближайшие к нам клубы, все на оборудовании от "полигон64", у нас LW. есть ли какие нибудь варианты совместить наши протоколы? новое оборудование полигона64 совместно с LW? |
Страница 2 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |