Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кодер и декодер на AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Alex_1811
Хочу сделать 4-канальную систему радиоуправления на AVR (ATtiny2313, 90S2113)
Радиомудули есть но проблема с програмой для МК (кодер декодер).
Буду благодарен любой помощи.
Deka
Может начать хотя-бы с блок схемы? А не с кодеров/декодеров? Какое управление-то? Пропорциональное или дискретное?
Alex_1811
Нужно просто включать и выключать 4 устройства.
xemul
Если не требуется особой защищенности кода, посмотрите даташиты на энкодеры/декодеры от Холтека (http://www.holtek.com/english/products -> Remote Controllers) и сделайте нечто подобное.
Nanobyte
Цитата(Alex_1811 @ Nov 1 2006, 18:30) *
Нужно просто включать и выключать 4 устройства.

1) Используйте UART, одним байтом - 8 устройств.
2) Пусть МК изображает из себя инфракрасный приёмник/передатчик, типа RC5. Примеров навалом.
3) Если ответ от устройства не нужен, можно использовать SPI.
=GM=
Цитата(Alex_1811 @ Nov 1 2006, 14:30) *
Нужно просто включать и выключать 4 устройства.

Не радиовзрыватели, случайно(:-)? Парни, будьте поаккуратнее с ответами на такие актуальные для нашего времени вопросы.
Harbinger
Радиовзрыватели, к сожалению, только включаются - если без таймера. Хочется верить, что речь не о них.
Маленький вопрос: 4 устройства - это конечная цель или же планируется расширение возможностей?
prottoss
Цитата(Nanobyte @ Nov 1 2006, 21:51) *
Цитата(Alex_1811 @ Nov 1 2006, 18:30) *
Нужно просто включать и выключать 4 устройства.

1) Используйте UART, одним байтом - 8 устройств.
2) Пусть МК изображает из себя инфракрасный приёмник/передатчик, типа RC5. Примеров навалом.
3) Если ответ от устройства не нужен, можно использовать SPI.
Конечно, ИМХО, лучше всего UART - минимальная защита от помех, еще и аппаратно. А алгоритм декодирования можно свой придумать, хоть самый простецкий - каждому переданному числу соответсвтует своя команда. А можно и еще чего наворотить, например, защищать код CRC - улучшится помехозащищенность...

Поле для гениальных и не очень решений широчайшее)))



PS: Если опасаться всего и вся, то этот форум вообще в пору закрывать. Мало ли чему террористы могут здеся научиться...Вах)))
xemul
UART, конечно, хорошо и просто, но в чистом виде его выход толкать в RF не очень удобно - в общем случае постоянная составляющая посылки != 0. Придется или применять дополнительное кодирование типа манчестера или NRZ, или, если требуется только вкл./выкл. четырех устройств, выбрать соответствующим образом 8 команд.
Alex_1811
Я НЕ ТОРОРИСТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Хочу управлять приборами автомобиля.
Посылка должна состоять из 16 бит или более.
prottoss
Цитата(Alex_1811 @ Nov 2 2006, 00:44) *
Я НЕ ТОРОРИСТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Хочу управлять приборами автомобиля.
Посылка должна состоять из 16 бит или более.
Ну ежели не терррорист, тада хорошо. Взял бы да поэкспериментировал с радиомодулями, на UART посадил, или SPI, или еще куда прицепил. Поэкпериметировал бы.

Цитата(xemul @ Nov 2 2006, 00:27) *
UART, конечно, хорошо и просто, но в чистом виде его выход толкать в RF не очень удобно - в общем случае постоянная составляющая посылки != 0.
Отчего же? Поясните
singlskv
Цитата(prottoss @ Nov 1 2006, 20:57) *
Цитата(xemul @ Nov 2 2006, 00:27) *
UART, конечно, хорошо и просто, но в чистом виде его выход толкать в RF не очень удобно - в общем случае постоянная составляющая посылки != 0.
Отчего же? Поясните

Насколько я ничего не понимаю, RF приемники очень не любят когда количество
передаваемых ноликов и единичек в посылке не равны, у них от этого
настроение портится. smile.gif
Собственно по этому и применяют коды типа манчестера, у которых количество
ноликов и 1 всегда одинаково.

UART конечно можно использовать, но тогда надо загонять в него значения
кодированные ну например тем же манчестером с равными количеством 0 и 1 в
посылке(учитывая старт,стоп и parity биты)
Nanobyte
Цитата(singlskv @ Nov 2 2006, 01:23) *
UART конечно можно использовать, но тогда надо загонять в него значения
кодированные ну например тем же манчестером с равными количеством 0 и 1 в
посылке(учитывая старт,стоп и parity биты)

Зачем такие сложности? Радиомодуль сам принимает меры для баланса постоянной составляющей. Если он использует ЧМ, то вообще проблем не возникнет. На выходе РМ присутствует готовый импульсный сигнал.
singlskv
Цитата(Nanobyte @ Nov 2 2006, 00:34) *
Цитата(singlskv @ Nov 2 2006, 01:23) *
UART конечно можно использовать, но тогда надо загонять в него значения
кодированные ну например тем же манчестером с равными количеством 0 и 1 в
посылке(учитывая старт,стоп и parity биты)

Зачем такие сложности? Радиомодуль сам принимает меры для баланса постоянной составляющей. Если он использует ЧМ, то вообще проблем не возникнет. На выходе РМ присутствует готовый импульсный сигнал.

Я конечно говорил про АМ.
А какие модули принимают меры для баланса постоянной составляющей ?
И как ?
Те модули которыми я пользовался(telecontrolli), этого делать не умеют.
Nanobyte
Цитата(singlskv @ Nov 2 2006, 01:41) *
Я конечно говорил про АМ.
...
А какие модули принимают меры для баланса постоянной составляющей ?
....

Ну да, для АМ трудно добиться постоянной составляющей.
Для FM легче, но если в выходных цепях есть конденсаторы, тогда будет ограничена наименьшая частота сигнала.
...
Название этих модулей не знаю (их приносил заказчик), но они были точно FM.
singlskv
Есть еще одна серьезная причина не пользоваться UART(по крайней мере на принимающей стороне).
UART принимает всю посылку целиком, при этом контролируется целиком(16 выборок) только
стартовый бит, и если он правильный, то остальные биты посылки просто читаются.
То есть если мы поймали стартовый бит, то далее обязательно ловим всю посылку.
Может получиться так, что это не наш стартовый бит, а часть чужой посылки, а наш
стартовый бит будет в тот момент когда мы ловим уже часть чужой посылки.
То есть нашу посылку мы просто пропустим.

Если же мы пользуемся например манчестерским кодом, то мы можем контролировать каждый
получаемый бит(переход 0->1 или 1->0) и при неправильном бите сразу переключаться
на начало(прием стартового бита) не дожидаясь окончания всей посылки.
Таким образом мы сильно уменьшаем вероятность не поймать нашу посылку.
prottoss
Цитата(singlskv @ Nov 2 2006, 05:28) *
Есть еще одна серьезная причина не пользоваться UART(по крайней мере на принимающей стороне).
UART принимает всю посылку целиком, при этом контролируется целиком(16 выборок) только
стартовый бит, и если он правильный, то остальные биты посылки просто читаются.
То есть если мы поймали стартовый бит, то далее обязательно ловим всю посылку.
Может получиться так, что это не наш стартовый бит, а часть чужой посылки, а наш
стартовый бит будет в тот момент когда мы ловим уже часть чужой посылки.
То есть нашу посылку мы просто пропустим.

Если же мы пользуемся например манчестерским кодом, то мы можем контролировать каждый
получаемый бит(переход 0->1 или 1->0) и при неправильном бите сразу переключаться
на начало(прием стартового бита) не дожидаясь окончания всей посылки.
Таким образом мы сильно уменьшаем вероятность не поймать нашу посылку.
Для этого существуют протоколы типа 1 мастер - несколько слэйвов, например тот же MODBUS
=GM=
Цитата(Alex_1811 @ Nov 1 2006, 17:44) *
Я НЕ ТЕРРОРИСТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Хочу управлять приборами автомобиля.
Посылка должна состоять из 16 бит или более.

Хочу уточнить. Вас никто никак не называл, даже в мыслях не было. Но вашу тему могут читать разные люди, даже из разных стран. Сиё надо учитывать.
Валентиныч
Для начала познакомтесь со стандартными принципами кодирования, принятыми в системах дистанционного управления моделями, и с имеющимися разработками/наработками в этой области, сделанными людьми, которые уже давно в этой "теме".
Например:
http://www.rcmaster.ru/forum/viewforum.php?f=39 ,
http://i158.com/forums/index.php ,
и на других сайтах/форумах, посвященных радиоуправляемым моделям.
Но не понятна изначальная постановка вопроса: для чего использовать радиоканал, если все компоненты системы находятся в непосредственной близости - "на борту" автомобиля? Не проще ли (и существенно надежнее!) обойтись обычной проводной связью, пусть даже с использованием стандартных интерфейсов (TWI, I2C, USART, и т.д.)?
И еще более непонятно, зачем городить огород на микроконтроллере, если конечная цель - 4 дискретных исполнительных устройства?
Или вы не корректно формулируете задачу, или просто сами не понимаете, что же вам нужно в конечном итоге.
singlskv
Цитата(prottoss @ Nov 2 2006, 10:03) *
Цитата(singlskv @ Nov 2 2006, 05:28) *
Есть еще одна серьезная причина не пользоваться UART(по крайней мере на принимающей стороне).
UART принимает всю посылку целиком, при этом контролируется целиком(16 выборок) только
стартовый бит, и если он правильный, то остальные биты посылки просто читаются.
То есть если мы поймали стартовый бит, то далее обязательно ловим всю посылку.
Может получиться так, что это не наш стартовый бит, а часть чужой посылки, а наш
стартовый бит будет в тот момент когда мы ловим уже часть чужой посылки.
То есть нашу посылку мы просто пропустим.

Если же мы пользуемся например манчестерским кодом, то мы можем контролировать каждый
получаемый бит(переход 0->1 или 1->0) и при неправильном бите сразу переключаться
на начало(прием стартового бита) не дожидаясь окончания всей посылки.
Таким образом мы сильно уменьшаем вероятность не поймать нашу посылку.
Для этого существуют протоколы типа 1 мастер - несколько слэйвов, например тот же MODBUS

ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
prottoss
Цитата(singlskv @ Nov 3 2006, 05:22) *
ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
А что там городить то? 200-300 байт кода, написанного на Си?
singlskv
Цитата(Валентиныч @ Nov 2 2006, 14:27) *
Но не понятна изначальная постановка вопроса: для чего использовать радиоканал, если все компоненты системы находятся в непосредственной близости - "на борту" автомобиля? Не проще ли (и существенно надежнее!) обойтись обычной проводной связью, пусть даже с использованием стандартных интерфейсов (TWI, I2C, USART, и т.д.)?

Попробую тут с Вами не согласиться...
Стандартными для подобных систем являются:
1. Включить/выключить сигналку.
2. Дистанционно завести мотор для прогрева.
3. ПРОГРЕТЬ МЕСТО ПОД ПОПУ ХОЗЯИНА (это главное)
4. Сообщить хозяину(дистанционно) о попытках доступа к его прогретому креслу smile.gif
и т.д.

то есть, радиоканал вполне рулит...
singlskv
Цитата(prottoss @ Nov 3 2006, 01:30) *
Цитата(singlskv @ Nov 3 2006, 05:22) *
ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
А что там городить то? 200-300 байт кода, написанного на Си?

prottoss
А Вы пробовали реально(в железе) использовать UART для передачи данных по RF ?
Если пробовали, то раскажите что получилось.
Очень интересно.
prottoss
Цитата(singlskv @ Nov 3 2006, 05:53) *
Цитата(prottoss @ Nov 3 2006, 01:30) *

Цитата(singlskv @ Nov 3 2006, 05:22) *
ИМХО, "воротить" какие-то протоколы сверху UART только для того чтобы принять посылку
по RF, это уже извращение smile.gif
Встаки здесь не шина "1мастер - несколько слейвов", а просто достаточно сильно
зашумленный канал связи (RF), и просто важно отделить "чужое" от "своего"
А что там городить то? 200-300 байт кода, написанного на Си?

prottoss
А Вы пробовали реально(в железе) использовать UART для передачи данных по RF ?
Если пробовали, то раскажите что получилось.
Очень интересно.
Нет, к сожалению, пока не занимался подобными экспериментами. Но задумки были. А у Вас есть опыт организации данных по RF?
singlskv
Цитата(prottoss @ Nov 3 2006, 01:59) *
Нет, к сожалению, пока не занимался подобными экспериментами. Но задумки были. А у Вас есть опыт организации данных по RF?

Да, у меня есть некоторый опыт в этом вопросе.
ИМХО:
1. RF каналы очень "шумные"(особенно в "открытых" диапазонах например: 433Мгц-сигнализации)
2. Основная задача отделить "свое" от "чужого".
3. Собственно из первых двух пунктов и следует, что желательно(по возможности),
отслеживать принимаемый сигнал в реалтайме, с возможностью рестарта, если начали
принимать что-то не то...
Собственно, UART, к сожалению не дает нам такой возможности sad.gif

P.S. Проводил следующий эксперимент:
ловим переход 0->1 на внешнем прерывании и запускаем таймер на опрос по
серединкам битов в посылке(то есть без контроля длительности стартового бита), так
вот, оказалось что нужный нам код приходит за единицы секунд, хотя мы его
не посылали blink.gif
prottoss
Цитата(singlskv @ Nov 3 2006, 06:31) *
Цитата(prottoss @ Nov 3 2006, 01:59) *

Нет, к сожалению, пока не занимался подобными экспериментами. Но задумки были. А у Вас есть опыт организации данных по RF?

Да, у меня есть некоторый опыт в этом вопросе.
ИМХО:
1. RF каналы очень "шумные"(особенно в "открытых" диапазонах например: 433Мгц-сигнализации)
2. Основная задача отделить "свое" от "чужого".
3. Собственно из первых двух пунктов и следует, что желательно(по возможности),
отслеживать принимаемый сигнал в реалтайме, с возможностью рестарта, если начали
принимать что-то не то...
Собственно, UART, к сожалению не дает нам такой возможности sad.gif

P.S. Проводил следующий эксперимент:
ловим переход 0->1 на внешнем прерывании и запускаем таймер на опрос по
серединкам битов в посылке(то есть без контроля длительности стартового бита), так
вот, оказалось что нужный нам код приходит за единицы секунд, хотя мы его
не посылали blink.gif
Ну а Вы просто, ради эксперимента, пробовали цеплять РФ приемник-передатчик к USART? Или не стали это делать благодаря своей железной логике?
singlskv
Цитата(prottoss @ Nov 3 2006, 10:40) *
Ну а Вы просто, ради эксперимента, пробовали цеплять РФ приемник-передатчик к USART? Или не стали это делать благодаря своей железной логике?

Нет, не пробовал.
Собственно и интересуюсь, может быть кто то пробовал.
Интересует, что получилось с помехозащищенностью.
prottoss
Цитата(singlskv @ Nov 3 2006, 17:50) *
Цитата(prottoss @ Nov 3 2006, 10:40) *

Ну а Вы просто, ради эксперимента, пробовали цеплять РФ приемник-передатчик к USART? Или не стали это делать благодаря своей железной логике?

Нет, не пробовал.
Собственно и интересуюсь, может быть кто то пробовал.
Интересует, что получилось с помехозащищенностью.
ну дык а чем спорт тогда? Я вот, до армии, (а служил я в ПВ, так что 28 мая могете мяня по здравить), увлекался радиоуправляемыми штучками, мотал катушки, и занимался всяким [email="он@низмом"]он@низмом[/email], который счас уже не в моде, хотя всего 5 лет прошло.... Вот ИМХО , что все работать будет...А задумки у мя были в полне профф.
singlskv
Цитата(prottoss @ Nov 3 2006, 17:51) *
.... Вот ИМХО , что все работать будет...А задумки у мя были в полне профф.

Работать то будет. Но вот вопрос со стабильностью...
Конечно можно повторять посылку несколько раз, тогда наверняка дойдет,
но это не всегда возможно(повторять посылку).

У меня в девайсе, по приему RF посылки запускается таймер, поэтому важно принять
с первой попытки.
xemul
Цитата(prottoss @ Nov 3 2006, 10:40) *
Ну а Вы просто, ради эксперимента, пробовали цеплять РФ приемник-передатчик к USART? Или не стали это делать благодаря своей железной логике?

Неужели обязательно самому наступать на все возможные и невозможные приборы, предназначенные преимущественно для удаления продуктов жизнедеятельности растительных организмов?smile.gif
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
U_S_ART в контексте треда поминать вообще не стОит.
Или посмотрите в каком-нибудь MicroCap'e, Proteus'e etc на картинки сигнала UART, пропущенного через диф. цепочку и восстановленного компаратором - это процентов на 50 покажет проблемы передачи и приема ASK сигнала. Останется только шум наложить.smile.gif
Harbinger
Скорость 2400 устроит? Есть лобовое решение, одно из самых помехоустойчивых. Применяется готовый MSK-модем. К примеру, AK2361. Опознавание "свой-чужой" и анализ команды идет в несколько этапов - вначале заголовок фрейма (обозначающий тип девайса, в 2358 и 2361 это C96C или 236B, остальное отвергается, в 2368 можно прописать любое значение), затем ID экземпляра устройства (произвольной длины в пределах разумного), затем код команды, параметры команды, контрольная информация (CRC или что угодно другое по вкусу)... И ЧМ приемопередатчик. Желательно многоканальный, с анализом squelch.
Концепция "обкатана" на миллионах "дальнобойных" радиотелефонов, и применить ее для радиоуправления после творческой переработки - почему бы нет? Вполне годится также для пейджинга - к примеру, Ваш автомобиль, если с ним что-то случилось, сможет отправить Вам текстовое сообщение wink.gif
Габариты пульта, правда, в "брелок" не уложатся. В корпус сотового телефона - запросто.
prottoss
Цитата(xemul @ Nov 3 2006, 22:23) *
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
МЕНЯ данная тема, пока, не интересует... Похоже автора топика тоже... Хоть бы что нибудь сказал для приличия)
Alex_1811
Цитата(prottoss @ Nov 4 2006, 15:39) *
Цитата(xemul @ Nov 3 2006, 22:23) *
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
МЕНЯ данная тема, пока, не интересует... Похоже автора топика тоже... Хоть бы что нибудь сказал для приличия)



За форумом я слежу. Конкретных предложений по реализации устройства пока не вижу.
singlskv
Цитата(Alex_1811 @ Nov 6 2006, 12:26) *
Цитата(prottoss @ Nov 4 2006, 15:39) *

Цитата(xemul @ Nov 3 2006, 22:23) *
Если тема Вас действительно интересует, поищите что-нибудь про радиолюбительские телетайпы - имхо, это можно рассматривать как одно из первых массовых применений UART over RF.
МЕНЯ данная тема, пока, не интересует... Похоже автора топика тоже... Хоть бы что нибудь сказал для приличия)



За форумом я слежу. Конкретных предложений по реализации устройства пока не вижу.

А каких конкретных предложений по реализации Вы ожидаете после вот такого
первого поста:
Цитата
Хочу сделать 4-канальную систему радиоуправления на AVR (ATtiny2313, 90S2113)
Радиомудули есть но проблема с програмой для МК (кодер декодер).
Буду благодарен любой помощи.

А какие есть радиомодули?
А какая Вам необходима скорость передачи ?
Какие данные нужно передавать и как часто?
Главное доставить данные, или у Вас некоторый "реалтайм"?
и т.д. и т.п.

Если Вы хотите ответов по существу, то и вопросы задавайте поконкретнее... smile.gif
Alex_1811
[/quote]
А какие есть радиомодули?
А какая Вам необходима скорость передачи ?
Какие данные нужно передавать и как часто?
Главное доставить данные, или у Вас некоторый "реалтайм"?
и т.д. и т.п.

Если Вы хотите ответов по существу, то и вопросы задавайте поконкретнее... smile.gif
[/quote]

Микросборки FRM RX5000 TX5000.
Скорость ~ 20 пакетов/сек, 16-бит пакет (ID пульта+состаяние кнопок+проверка на четность).
Посылка данных передается только после нажатия кнопки пульта.
singlskv
Цитата(Alex_1811 @ Nov 7 2006, 11:25) *
Микросборки FRM RX5000 TX5000.
Скорость ~ 20 пакетов/сек, 16-бит пакет (ID пульта+состаяние кнопок+проверка на четность).
Посылка данных передается только после нажатия кнопки пульта.

Откуда поступает тактовая на мк в передатчике/приемнике ?
Кварц, или внутренний RC генератор ?
Если RC генератор, то нужно озаботиться синхронизацией по стартовому биту, а если
кварц, тогда все намного проще

ИМХО, TX/RX5000 для Вашей задачи дороговатое решение
Alex_1811
Цитата(singlskv @ Nov 8 2006, 02:27) *
Откуда поступает тактовая на мк в передатчике/приемнике ?
Кварц, или внутренний RC генератор ?
Если RC генератор, то нужно озаботиться синхронизацией по стартовому биту, а если
кварц, тогда все намного проще

ИМХО, TX/RX5000 для Вашей задачи дороговатое решение


Тактовая частота от кварца.

TX/RX5000 дорого, предложите модули дешевле.
ReM37
Мне нужно передавать данные по радиоканалу (скорость 1200-4800). Пробовал такие модули
http://home.att.net/~wzmicro/rf_xmitter_receiver.htm
но приемник шумит и принимает что угодно даже если передатчик выключен. Подключал к USART'у. Передать хоть байт правильно неполучаеться. Растояние было не больше 2 метров. sad.gif
Dog Pawlowa
Цитата(ReM37 @ Dec 11 2006, 01:10) *
но приемник шумит и принимает что угодно даже если передатчик выключен.

Возможно, Вы не поверите, но так должно быть! laugh.gif Это происходит, так как АРУ повышает чувствительность приемника при снижении можности принимаемого сигнала. В таком ценовом диапазоне радиомодули настолько просты, что предполагается, что Вы сами будете контролировать достоверность приема сигнала. Например, путем анализа аналогового сигнала, а не цифрового. Или и того, и другого. И, конечно же, добавлением в поток специальной служебной информации, алгоритмов перезапросов и проч.
Я использовал приемники Linx с кодированием Holtec, 300 метров открытого пространства обеспечивается легко и непринужденно. Дальность сильно зависит от условий.
А уж советы по поводу выбора микроконтроллера... Что тут сказать? smile.gif Я использовал AtMega 32.
P.S. Кстати, создание помех радиобрелку активно используется при кражах автомашин.
В автоматизации, как медицине - должен работать принцип - "НЕ НАВРЕДИ!" w00t.gif
ReM37
Верю, что так и должно быть. smile.gif
Вот прочитал в форуме, что для этого можно использовать:
"МК изображает из себя инфракрасный приёмник/передатчик, типа RC5.
Кодирование типа манчестера или NRZ."
Что выбрать и где почитать?
GDI
http://aly.projektas.lt/Projects/SimpleRFNet/SimpleRFNet.htm почитайте, по-моему как раз по искомой тематике.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.