Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IrDA интерфейс
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Shread
Собственно интересует такой вопрос: Есть адаптер rs-232-IrDA, стандартный- tekram, с прибора с программным портом ему посылают байт со стартовым и стоповым битом, на скорости 9600 бод, тестовой прогой читаю состояние порта, приходит полная чушь. Отсюда ряд вопросов, как это преобразователь понимает скорость обмена. Я рассматриваю связь двух компов на таких преобразователях как оптический удлинитель нульмодемного кабеля, работающего в полудуплексном режиме, я прав?
Так же интересует спецификация на интерфейс IRDA, в свободном доступе почемуто не нашел sad.gif
Shread
В доке Vishay Telefubken касательно SIR написано:
This type of transmission covers the data range up to
115.2 kbit/s which is the maximum data rate supported
by standard UARTs (see figure 1). The minimum
demand for transmission speed for IrDA is only
9600 bit/s. All transmissions must be started at this
frequency to enable compatibility. Higher speeds are
a matter of negotiation of the ports after establishing
the links.
Собственно вопрос, где взять спецификацию SIR и конкретно, как организуется "negotiation of the ports", после которого, дружно договорившись, девайсы общаются на большей чем 9600 скорости?
aal
Здесь ситуация очень интересная:
1. SIR это физичиский уровень, на старых пальмах к нему был доступ, теперь только через стек протоколов.
2. Стек протоколов имеет противоречия даже в стандарте, поэтому можно нарватся на ситуацию когда с одним девайсом всё ок, а с другим облом.
3. В стеке есть протокол организующий виртуальный уарт (под ним всего 2 уровня), для большинства применений его может хватить. И тут может помочь микрочип со своим МСР2150. А вот если больше надо то пиши сам на мк.
4. Стандарт доступен только после вступления в группу (за кучку баксов в год).

вот такие пирожки с котятками, их едят - они глядять....
Shread
Нужен или SIR или IrCOMM, это сразу было понятно, и нужно чтобы это было реализовано на MSP430 и при этом не занимало очень много места в программе.
В SIR есть какой-то стандрартный способ переключения скоростей?
Нужно только переключитсья с 9600 на 19200 и все.
rezident
Я уже предлагал сделать второй IrDA на стороне PC тоже на MSP430. MSP430 должен использоваться только в качестве IrDA кодека. У TI есть пара аппликейшнов с примерами на эту тему. Напомню ссылки на всякий случай Implementing IrDA with the MSP430 и MSP430C112 IrDA SIR Encoder/Decoder
BVU
Смотрите инфу (IrDA) по данным ссылкам:
http://uniper.ru/shems_ir1.php
http://radiomod.fatal.ru/helpfiles/irda01.htm
http://www.evm.wallst.ru/
Joy
Цитата(aal @ Nov 3 2005, 06:42)
И тут может помочь микрочип со своим МСР2150. А вот если больше надо то пиши сам на мк.

год назад пробовал МСР2150 и МСР2155. при попытке связи с ноутом дальше NDM ни один, ни второй не продвинулся. на форумах нашел сотоварищей по несчастью, которые тоже никуда не продвинулись. так что, эти чипы - не самое простое решение sad.gif
Shread
Вариант со вторым устройством на MSP отападает, по изначальному разумению. Весь смысл использовать стандартные адаптеры SIR. Если делать свой собственный адаптер, тогда это уже не IRDA будет. Так и не стало понятно как заставить этот tekram принять посылку на 19200 sad.gif
Joy
Цитата(Shread @ Nov 2 2005, 14:40)
с прибора с программным портом ему посылают байт со стартовым и стоповым битом, на скорости 9600 бод, тестовой прогой читаю состояние порта, приходит полная чушь.
*

Не могли бы Вы уточнить задачу?
если Вы хотите просто посылать отдельные байты (без упаковки в соответствующие пакеты), то боюсь, это не совсем тривиальная задача (по крайней мере, это ирдой не называется).
Если говорить о стандартном интерфейсе, то скорость обмена устанавливается при переходе обоих устройств в соединенное состояние. Скорость соединения - это максимальная общая скорость, заявленная обоими устройствами в процессе установки соединения.
Вся дока есть на irda.org
Shread
Насколько я понял, работа с адаптером через ком порт осуществляется стандартнысмми средствами, и параметры этой работы опереляются стандартом SIR, параметрами работы на физическом уровне. Сейчас просто посылаем байт состоящий из стартового бита +8 бит данных+стоповый бит, с интервалами и длиной импульса, соответветствующими IrPHY, на скорости 9600 бод. Нужно на 19200. Когда просто увеличиваю частоту посылок и уменьшаю длину импульса, на выходе адаптера(то что в ком-порт летит) на всю длину моей посылки втыкается глухой ноль(+12вольт) и все, т.е байт не проходит. На принимающем приемо-передатчика в адаптере сигнал есть а на UART'е приемо-передатчика уже его нет. На 9600 все работает стабильно.
Joy
В адаптере есть проц, который мог бы фильтровать данные и детектировать ошибки?
Возможно, дело в настройках скорости микросхемы приемо-передатчика адаптера? Проверьте, на какую скорость она настроена в момент поднятия Вами скорости передачи (как правило, есть три ноги, задающие скорость).
Может еще есть ошибка в сформированном пакете (импульсы сдвинуты или неверной длины). На 9600 это могло быть еще незаметно, а на 19200 уже вылезло...
Shread
Цитата
Проверьте, на какую скорость она настроена в момент поднятия Вами скорости передачи (как правило, есть три ноги, задающие скорость)

-Не понял о каком "как правило" идет речь, я не видел приемопередатчиков, с таким управлением, разве что вы говорите о преобразователе интерфейсов IrDA<-->RS232.
Ситуация такая: в том адаптере, который сейчас у нас есть-Tekram ir-210b, внутри стоит проц и приемопередатчик, и все. приемопередатчик представляет из себя светодиод+фотодиод+транзистор управления+некоторая логика. Сам приемопередатчик управлять скоростью не умеет. Он просто преобразует логический сигал в ик импульс и обратно, регулировки скорости у него нет.
Как я понимаю при использовании протоколов верхнего уровня, когда обменом управляет компьютер, скорость задается через драйвер адаптера. Если эта функция не является стандартной(в com порт нужно забивать разные стопки данных для конфигурации разных адаптеров), тогда придется использовать IrCOMM и работать через сокеты, кто-нить такое делал?
Joy
Боюсь, что если в адаптере стоит проц, то он и рулит скоростью передачи. рулит он ею с помощью сигналов, идущих от него на приемо-передатчик (в тех передатчиках, которые я видел, это три линии, комбинация уровней на которых определяет скорость, на которой работает приемопередатчик). Так вот, в соответствии со стандартом, без установленного ирда-соединения все общение происходит на 9600.Скорее всего, стек ирда реализован в драйвере. Поэтому пока драйвер не получит осмысленные пакеты и не договорится по ирда-протоколу с вашим девайсом, скорость он менять не будет (не выдаст команду процу поменять скорость). По-моему, нужно или выковырять команды изменения скорости, или руками рулить ногами приемопередатчика, задающими скорость (перепрошить его)...
Для поддержки сокетов со стороны вашего устройства на нем, ессно, нужно поднять стек. Самый простой стек, поддерживающий сокет IrLPT (эмуляция 3-проводного СОМ порта) состоит из уровней IrLAP, IrLMP и двух сервисов. IrCOMM - это круче на два уровня.
Shread
А вы можете сказать что за приемопередатчик имеет ноги управления скоростями. Мы сейчас со стороны устройства используем TFDU4100, он такой же как TFDS4500, и еще много других приемо-передатчиков от Vishay. Кроме того я сначала тыкался с HP-1000, у него тоже нет ног управления скорости. И та понятно, что в данном адаптере всем управляет процессор. То что изначально скорость должна быть 9600 а потом они договорившись переходят на большую скорость. В моем предыдущем посте чуть повыше я написал,что скорость задается через драйвер адаптера, вот интересно как. А так вообще сейчас уже нужна инфа по IrCOMM, если кто такое делал. А именно реализация IrCOMM и всех нижестоящих стеков протоколов с минимальными требованиями к ресурсам процессора.
Joy
Мда, пардон, неувязка с терминологией вышла: когда я говорил про приемопередатчик, имелась ввиду связка енкодер-трансивер (например, HSDL7001-TFDU4100). Соответственно, ноги управления имелись у енкодера, а не у трансивера.
Как я понял, в данном адаптере енкодер встроен в проц Так что кроме выковыривания команд драйвера другого пути не вижу. Можно поставить слушалку на СОМ-порт и записать соседним портом все, что лезет от драйвера.
До IrCOMM'a я не добрался, есть только неотлаженая версия IrLMP. Под AVR это заняло около 10к кода и байт 300 озу (минимальная реализация).
Shread
Там кодер программный просто, и управления целиком из драйвера. Слушать драйвер и прочее, это уже попахивает совком. Стоит производителю адаптера изменить один бит в строке инициализации и каюк. Полное отсутствие поддержки новых устройств. Это не вариант, лучше тогда сделать свой адаптер и с ним продавать, этого делать не хотелось, да и не хочется. Думаем пока, возможно остановимся на 9600. Пока не очень ясно, даст ли какой-нить прирост в скорости переход на 19200 с IrCOMM, т.к этот протокол и все ниже стоящие создают такую избыточность, что мне показалось что SIR На 9600 будет раза в два шустрее чем IrCOMM 19200 blink.gif Что совершенно не устраивает. А реализовать более шустрый инетерфейс не получится из-за того что сам прибор работает на 2мгц(MSP430F413, DCO2MHz*FLL+*32768Hz) blush.gif Вот и будем думать чего делать. Девайс и так забит под завязку, толком ничего не выкинешь, тут или на более объемистый 415-417 переходить или довольствоваться малым.
Joy
Цитата(Shread @ Nov 5 2005, 03:43)
Пока не очень ясно, даст ли какой-нить прирост в скорости переход на 19200 с IrCOMM, т.к этот протокол и все ниже стоящие создают такую избыточность, что мне показалось что SIR На 9600 будет раза в два шустрее чем IrCOMM 19200 blink.gif Что совершенно не устраивает.
*

Да уж, по моим прикидкам, ИрДА на скорости 115к выдавал эффективный поток меньше 57к sad.gif
Мда, остается только помечтать о более мощном проце и пожелать Вам удачи smile.gif
Colombo
Цитата(Shread @ Nov 2 2005, 15:40)
Собственно интересует такой вопрос: Есть адаптер rs-232-IrDA, стандартный- tekram, с прибора с программным портом ему посылают байт со стартовым и стоповым битом, на скорости 9600 бод, тестовой прогой читаю состояние порта, приходит полная чушь. Отсюда ряд вопросов, как это преобразователь понимает скорость обмена. Я рассматриваю связь двух компов на таких преобразователях как оптический удлинитель нульмодемного кабеля, работающего в полудуплексном режиме, я прав?
Так же интересует спецификация на интерфейс IRDA, в свободном доступе почемуто не нашел sad.gif
*


Tekram 210B после подачи питания настроен на 9600.
Для изменения скорости нужно дрыгать DTR и RTS соблюдая временные соотношения и посылая управляющий байт, который и задает скорость.
Пример кода для этого можно найти в дистрибутивах Linux, файл tekram.c.
Вот комменты из этого файла. Сам файл, я думаю, найдешь сам.

94 /*
95 * Function tekram_change_speed (dev, state, speed)
96 *
97 * Set the speed for the Tekram IRMate 210 type dongle. Warning, this
98 * function must be called with a process context!
99 *
100 * Algorithm
101 * 1. clear DTR
102 * 2. set RTS, and wait at least 7 us
103 * 3. send Control Byte to the IR-210 through TXD to set new baud rate
104 * wait until the stop bit of Control Byte is sent (for 9600 baud rate,
105 * it takes about 100 msec)
106 * 5. clear RTS (return to NORMAL Operation)
107 * 6. wait at least 50 us, new setting (baud rate, etc) takes effect here
108 * after
109 */

200 /*
201 * Function tekram_reset (driver)
202 *
203 * This function resets the tekram dongle. Warning, this function
204 * must be called with a process context!!
205 *
206 * Algorithm:
207 * 0. Clear RTS and DTR, and wait 50 ms (power off the IR-210 )
208 * 1. clear RTS
209 * 2. set DTR, and wait at least 1 ms
210 * 3. clear DTR to SPACE state, wait at least 50 us for further
211 * operation
212 */

Спецификации IrDA еще год назад можно было скачать свободно. Могу выслать или выложить, только куда тут принято класть?
rezident
Цитата(Colombo @ Nov 6 2005, 08:20) *
Спецификации IrDA еще год назад можно было скачать свободно. Могу выслать или выложить, только куда тут принято класть?

Принято приаттачивать или на местный ftp. Однако, судя по тому, что у вас это только первое сообщение в форуме, то доступа к ftp вы пока не имеете. Так что можете приаттачить с своему сообщению, а кто-нибудь зальет спецификации на ftp.
Colombo
Цитата(rezident @ Nov 6 2005, 23:22) *
Цитата(Colombo @ Nov 6 2005, 08:20) *

Спецификации IrDA еще год назад можно было скачать свободно. Могу выслать или выложить, только куда тут принято класть?

Так что можете приаттачить с своему сообщению, а кто-нибудь зальет спецификации на ftp.


OK, приаттачиваю спеки коры и двух основных примочек. Остался еще с десяток спек на редко используемые фичи как IrMC, IrFM, IrLAN, IrWW, IrTranP, IrModem и т.п.
Кору пришлось проредить, т.к. как оказалось (о чем нигде явно не сказано) что размер приаттаченного файла в этом форуме не может превышать 2 метров. В основном пострадал IrPHY. Но так как этот уровень делается аппаратно чипом трансивера, то вряд ли это большая потеря для тех, кто не собирается разрабатывать такие чипы.

Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Shread
Цитата(Colombo @ Nov 7 2005, 04:06) *
В основном пострадал IrPHY. Но так как этот уровень делается аппаратно чипом трансивера, то вряд ли это большая потеря для тех, кто не собирается разрабатывать такие чипы.

biggrin.gif Спасибо!
Ну это вы не совсем прав насчет Physicak Layer, у нас программно реализован этот самый уровень, процессор напрямую рулит приемо-передатчиком ИК. Это обосновано в первую очередь ценой, понижает ее ровно на ту самую стоимость аппаратного кодера-декодера, т.е на 3-6$ примерно.
Colombo
Цитата(Shread @ Nov 7 2005, 07:46) *
Цитата(Colombo @ Nov 7 2005, 04:06) *

В основном пострадал IrPHY. Но так как этот уровень делается аппаратно чипом трансивера, то вряд ли это большая потеря для тех, кто не собирается разрабатывать такие чипы.

Ну это вы не совсем прав насчет Physicak Layer, у нас программно реализован этот самый уровень, процессор напрямую рулит приемо-передатчиком ИК. Это обосновано в первую очередь ценой, понижает ее ровно на ту самую стоимость аппаратного кодера-декодера, т.е на 3-6$ примерно.


Ну вот он, IrPHYНажмите для просмотра прикрепленного файла
Shread
Все заработало. На 19200 бод. Интересно, что в описании работы алгоритма указана одна последовательность управления адаптера, а в коде реализована другая biggrin.gif
Подготовлю подборку по IrDA и залью на ftp. Всем спасибо
p.s Желающим поглядеть, прилагаю сишный файл из дистриба линуха.
rezident
Закачал все эти четыре зипа на FTP.
/upload/DOC/IrDA_spec/
Shread, а где приложенный исходник-то?
Shread
Тут smile.gif
Почему-то с первого раза не добавилось, а я не заметил, может потомучто *.с был.
На всякий слачай сделал *.txt.
Все отлично зашуршало, без особых переделок в устройстве. Сделали программный формирователь коротких импульсов(SIR), заменили им модуль UART'а программного, в устройстве. Со стороны ПК добавили в программу инициацлизацию девайса, и все. Обмен по IR без поддержки протоколов верхнего уровня, т.е SIR+10 битный байт(8 бит данных+стартовый, стоповый биты)+Modbus. Теперь остались небольшие доработки, как то организовать в устройстве некий свой протокол, который обеспечит минимальное энергопотребление в режиме ожидания, потому как сам приемо-передатчик(TFDU4100) даже в режиме приема потребляет пару милиампер. Тут уже все просто, с компа тупо молотит запрос, а устройство раз в секунду включает приемник, вот собственно и все.
Colombo
Цитата(Shread @ Nov 8 2005, 21:47) *
Все отлично зашуршало, без особых переделок в устройстве.


Поздравляю!

Ну а поскольку топик несколько шире, чем обсуждение частного случая, то хочу добавить сюда ссылочку на еще одну простейшую реализацию стандартного протокола.

http://www.blaulogic.com/pico_irda.shtml
Colombo
Цитата(rezident @ Nov 8 2005, 21:15) *
Закачал все эти четыре зипа на FTP.


Так и чего, теперь можно удалить файлы из сообщений?
rezident
Цитата(Colombo @ Nov 10 2005, 00:55) *
Цитата(rezident @ Nov 8 2005, 21:15) *

Закачал все эти четыре зипа на FTP.


Так и чего, теперь можно удалить файлы из сообщений?

А я знаю? Хозяин-барин smile.gif Но напомню, что не у всех есть доступ к FTP.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.