Страница 2 из 2 Первая 12
Показано с 21 по 38 из 38

Тема: Переключатель направлений потоков E1

  1. #21
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex Посмотреть сообщение
    Во 1х - у тебя ошибки, эта п/п не будет делать то что ты хочешь
    Во 2-х - не проще ли просто сдвинуть биты вправо и обнулить остальные?

    if(bit_is_set(PIND, DS0)) data = ((PIND>>1)&0b00001111);
    В смысле, какое п/п не будет делать то, что я хочу? А зачем сдвигать биты? Я тут подумал и решил, что лучше сигнал DS0(появляется лог.1, когда послылка распознана и декодирована) подать на PD4, а на PD0-PD3 подать как раз бинарный код с MT8870. То есть для декодирования бин кода будет отведено ровно половина портов, которые легче описывать.
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  2. #22
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Я тут подумал и решил, что лучше сигнал DS0(появляется лог.1, когда послылка распознана и декодирована) подать на PD4
    А може, лучше на INT ?

    , а на PD0-PD3 подать как раз бинарный код с MT8870. То есть для декодирования бин кода будет отведено ровно половина портов, которые легче описывать
    Да пофиг, тем более, что декодировать там ничего не надо - в младшей тетраде и будет нужная цифра, только старшую нулифицировать.
    Если где хранить надо - можно по две цифры в байт упаковать.
    Ну, тогда и сдвигать не надо будет.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  3. #23
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex Посмотреть сообщение
    А може, лучше на INT ?
    Может быть и надо будет, но не сейчас...

    В общем с этим разобрался, записал так:
    Код:
        if(bit_is_set(PIND, DS0))
        { data = PIND & 0x0F;
    	  if(data == 10) data=0;
    	  if(data == 11) {ind(0); PORTC |= 0x38; control(); PORTC &= ~0x38; count=0;}
    	  if(data == 12) {ind(0); PORTC &= ~0x38; sound(LOW); p=v1=v2=0; count=0;}
    	  if(data < 8) {if(++count>3) count=0; sound(MID);}
    	}
    Странно, у MT8870 не переключается таблицы кодировки и при любом логическом уровне на pin 5 "0" имеет комбинацию 1010. Поэтому пришлось дописать условие - if(data == 10) data=0...

    Завтра, чувствую, что столкнусь с другими трудностями. При доступе к устройству через абонентскую телефонную линию необходимо авторизовывать пользователя. Как это сделать? Исходный код сделать в виде строки - unsigned char *s[] = {1,2,3,4}; ? А потом счетчиком перебирать символы, сравнивая дешифрированные с искомыми?
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  4. #24
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Переключатель направлений потоков E1

    Можно и так.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  5. #25
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Александр!

    Посоветуйте как сделать авторизацию пользователя при дозвоне до устройства? Я так думал, что надо сделать строковую переменную с занесенным в нее паролем unsigned char *s[] = {1234} и по счетчику if(++a>4) a=0 после набора 4-х цифр и их запоминания в какой-нибудь unsigned char *p[] = {xxxx} по нажатию кнопки подтверждения сравнивать *s[] с *p[]. Если верно, то выполнять следующие действия, иначе "положить" трубку.
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  6. #26
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Переключатель направлений потоков E1

    Да, только на мелких микроконтроллерах - сравнивать с косвенной адресацией (*) может быть чревато большими накладными расходами.
    Вообще, оператор "*" - эта та часть языка Си, которой при работе с 8-битной мелочью лучше не пользоваться совсем, только в крайних случаях или когда места много в обоих памятях.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  7. #27
    Старый знакомый Аватар для Quasar
    Регистрация
    16.03.2005
    Адрес
    Russia, Moscow.
    Сообщений
    620

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex
    Вообще, оператор "*" - эта та часть языка Си, которой при работе с 8-битной мелочью лучше не пользоваться совсем, только в крайних случаях или когда места много в обоих памятях.
    А почему, из-за того, что выделяется пространство помимо самой переменной еще и на указатель, либо есть еще какие-то причины???
    Спонсор данного сообщения - Газпром.

  8. #28
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Переключатель направлений потоков E1

    Потому что на мелких 8-битках, типа PIC, AVR, MCS51, ST07 и т.п. получается довольно громоздкий код.
    Если можно обойтись без работы через указатели - лучше обойтись.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  9. #29
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex Посмотреть сообщение
    Если можно обойтись без работы через указатели - лучше обойтись.
    Так тогда расскажите как сделать лучше? Хотя бы примерно как, мыслю !, ну и если время есть, то примерный код на Си.
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  10. #30
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,139

    По умолчанию Re: Переключатель направлений потоков E1

    Просто сравнить два массива, без указателей, никак ?
    Код:
    byte i;
    char password[4];
    char Inputbuffer[4];
    bit legalpassword;
    ....
      legalpassword=1;  // предполагаем изначально, что пароль правильный. 
      i=0;
      do{
          if (Inputbuffer[i]!=password[i] {legalpassword=0; break;}
          i++;
      } while(i<4);
    
     // ну дальше понятно:
     if (legalpassword) ....
     else ....
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  11. #31
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex Посмотреть сообщение
    Просто сравнить два массива, без указателей, никак ?
    Как раз так и получилось:
    Код:
    unsigned char x[4] = {2,5,8,0};
    
      while(1)
      { if(bit_is_set(PIND, DS0))							//Дешифрация DTMF кода
        { data = PIND & 0x0F;
    	  if(data == 10) data=0;
    	  if(data < 10)										//Набор цифр пароля
    	  { if(data != x[++parol-1]) result=result+1;		//Если есть ошибки, то result>0
    		else result=result+0;							//Иначе result=0
    		sound(MID);										//Сигнал приема кода
    	  }
    	  if(data == 11)									//Команда подтверждения
    	  { if(parol == 4 && result == 0)					//Если набрано 4 правильных цифры
    	    { PORTC |= 0x38; sound(HIGH); PORTC &= ~0x38;			//То выдаем сигнал и
    		  pause(60000); sound(HIGH); parol=0; command=1;		//переходим в подцикл
    		}														//приема команд
    	    else													//Иначе выдаем сигнал,
    		{ sound(LOW); pause(60000); sound(LOW);				//"ложим" трубку и
    		  PORTD &= ~_BV(HOCK); parol=0; result=0; command=1;	//переходим в подцикл
    		}														//приема команд
    	  }
    	  if(data == 12)									//Команда сброса введенных цифр
    	  { sound(LOW); sound(HIGH);						//Сигнал сброса
    	    parol=0; result=0;								//Обнуление переменных
    	  }
    	}
    	while(command == 1)								//Подцикл приема команд
    	{ if(bit_is_clear(PIND, CALL))						//Сигнал вызова
          { PORTC |= 0x38; pause(30000); PORTC &= ~0x38;	//Индикация вызова
    	    if(++bell>10)
    	    { PORTD |= _BV(HOCK); pause(60000);			//Захват звонка
    	      sound(HIGH); pause(60000); sound(HIGH);		//Сигнал подтверждения
    		  bell=0; command=0;							//Выход из подцикла
    	    }												//приема команд
    	  }
          if(bit_is_set(PIND, DS0))						//Дешифрация DTMF кода
          { data = PIND & 0x0F;
    	    if(data == 10) data=0;
    		if(data == 9 && bit_is_set(PIND, HOCK))		//Команда "положить" трубку
    		{ sound(HIGH); pause(60000); sound(HIGH);		//Сигнал подтверждения
    		  PORTD &= ~_BV(HOCK);							//"Ложим" трубку
    		}
    	    if(data == 11)									//Команда подтверждения
    		{ PORTC |= 0x38; control();					//Индикация подтверждения и
    		  count=0;										//обращение к функции control
    		}
    	    if(data == 12)									//Команда сброса введенных цифр
    		{ sound(LOW); sound(HIGH);						//Сигнал сброса
    		  count=0;										//Обнуление переменных
    		}
    	    if(data < 8)									//Набор цифр команды
    		{ if(++count>3) count=0;						//Счетчик принятых цифр
    		  sound(MID);									//Сигнал приема кода
    		}
    	  }
    	  if(count == 0)									//Обнуление всех переменных
    	  { PORTC &= ~0x38; ind(0);
    	    p=v1=v2=0;
    	  }
    	  if(count == 1)									//Индикация номера потока (HL1)
    	  { PORTC &= ~0x30; PORTC |= _BV(HL1);
    	    p=data; ind(p);
    	  }
    	  if(count == 2)									//Индикация номера направления №1 (HL2)
    	  { PORTC &= ~0x28; PORTC |= _BV(HL2);
    	    v1=data; ind(v1);
    	  }
    	  if(count == 3)									//Индикация номера направления №2 (HL3)
    	  { PORTC &= ~0x18; PORTC |= _BV(HL3);
    	    v2=data; ind(v2);
    	  }
    	}
      }
    Основное время работаем в подцикле while(command == 1), где принимаем команды по каналам ТЧ. После поступления с АТС двух "гудков" устройство "поднимает" трубку и выходим из подцикла в основной цикл while. После авторизации возвращаемся в подцикл while(command == 1), в котором снова можем принимать команды и "в ручную" положить трубку.

    Теперь задача другая: удаленно перезаписывать массив x[4] = {2,5,8,0} - то есть удаленно менять пароль доступа к устройству. Думаю эту функцию повесить на неиспользуемую (для управления используются только кнопки 0-7, "*" и "#") кнопку 8, назову ее "F" (функция).
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  12. #32
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    В общем, диплом защищен на отлично. Устройство разработано полностью.
    Картинки по списку:
    1. Матрица кроскоммутации
    2. Структурная схема УДПЦП
    3. Конструкция
    4. Фотка кросс-блока
    5. Фотка УДПЦП

    Устройство собрано на 3-х платах: интерфейсная часть (питание и каналы управления), микроконтроллерная часть (мат. плата) и один кросс-блок.
    При отладке устройства возникли проблемы с "телефонной" частью схемы блока управления. Схема взята из интернета. Когда VT2 открывается, шлейф телефонной линии замыкается и АТС чувствует "снятие" трубки телефонного аппарата. DA4 предназначена для генерации в ТЛ сигналов подтверждения от устройства. В ней-то и подвох - звук в трубке еле слышен и я не пойму в чем причина! Помогите разобраться что не так здесь.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Cross-matrix.GIF 
Просмотров:	242 
Размер:	11.7 Кб 
ID:	22126   Нажмите на изображение для увеличения. 

Название:	Block Diagram v1-1.gif 
Просмотров:	203 
Размер:	15.3 Кб 
ID:	22127   Нажмите на изображение для увеличения. 

Название:	Construction.gif 
Просмотров:	206 
Размер:	37.7 Кб 
ID:	22129   Нажмите на изображение для увеличения. 

Название:	Cross Unit (processing).jpg 
Просмотров:	211 
Размер:	208.0 Кб 
ID:	22130  

    Нажмите на изображение для увеличения. 

Название:	DSC00035_crop.jpg 
Просмотров:	207 
Размер:	151.8 Кб 
ID:	22131  
    Вложения Вложения
    Последний раз редактировалось Alex_Jet; 21.10.2007 в 16:09. Причина: Добавил фотку УДПЦП
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  13. #33
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Цитирую самого себя:
    При отладке устройства возникли проблемы с "телефонной" частью схемы блока управления. Схема взята из интернета. Когда VT2 открывается, шлейф телефонной линии замыкается и АТС чувствует "снятие" трубки телефонного аппарата. DA4 предназначена для генерации в ТЛ сигналов подтверждения от устройства. В ней-то и подвох - звук в трубке еле слышен и я не пойму в чем причина!
    Помогите разобраться что не так здесь!
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  14. #34
    kiko87
    Гость

    По умолчанию Re: Переключатель направлений потоков E1

    мужики кому не трудно раскажите как работает интерфейсная схема????????????

  15. #35
    Завсегдатай Аватар для Yury Novikov
    Регистрация
    08.05.2006
    Адрес
    Москва
    Возраст
    61
    Сообщений
    2,336

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    екодер DTMF. Хочу посадить его на порты PD0-PD4 ATmega8.
    А зачем в этой схемке вообще МК и какие-то сложности? Декодер ДТМФ и сразу за ним исполнительное устройство и на реле. Готовая плата и набор такого устройства вместе со схемами есть у Мастеркита.

    P.S. А вообще такое крутое и мощное название "Переключатель направлений потоков E1" для какой-то муёвинки на нескольких релюшках с управлением по ДТМФ. Я первый первый пост почитал и чуть со стула не рухнул, подумал ну нифига себе задание на диплом, человек собирается дома, в однеху, на коленке типа цисковский роутер изготовить с десятком Е1 интерфейсов... Это в каком же вузе нынче таких крутых парней выпускают... А оказывается нужно релюшки переключать...

  16. #36
    kiko87
    Гость

    По умолчанию Re: Переключатель направлений потоков E1

    можно подробней рассказать как работает устройство по принципиальной схеме ???

  17. #37
    Частый гость
    Автор темы
    Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    38
    Сообщений
    391

    По умолчанию Re: Переключатель направлений потоков E1

    Мужики! Принципиальная схема тут ни при чем. Главное тут - МК! Он управляет всем)
    А на счет управление релюшками...их тут много и может быть 72 шт. каждая из 8-ми плат самостоятельные кросс-блоки, которые сохраняют состояния.
    А вообще - офигенный опыт! Может и устройство не совсем удачное))) На основе этого диплома защитились еще двое, упростив и добавив что-то новое.

    ---------- Добавлено в 19:19 ---------- Предыдущее сообщение в 19:17 ----------

    Цитата Сообщение от Yury Novikov Посмотреть сообщение
    Это в каком же вузе нынче таких крутых парней выпускают...
    ВУЗ - один из самых лучших! ТУСУР!!!
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  18. #38
    Завсегдатай Аватар для Станислафф
    Регистрация
    18.10.2007
    Адрес
    Тольятти
    Возраст
    45
    Сообщений
    1,595

    По умолчанию Re: Переключатель направлений потоков E1

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Мужики! Принципиальная схема тут ни при чем. Главное тут - МК! Он управляет всем)

    Offтопик:
    Да ты гониш! Главное - своевременный ответ

Страница 2 из 2 Первая 12

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •