Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Буфериране на комуникационна линия - как е най-културно?
http://mcu-bg.com/mcu_site/viewtopic.php?f=4&t=6386
Страница 1 от 3

Автор:  tolstolob [ Пет Дек 19, 2008 8:58 pm ]
Заглавие:  Буфериране на комуникационна линия - как е най-културно?

Здравейте,
Хардуера не ми е от силните страни, та рекох да се консултирам с вас първо :) Трябва да направя връзка между две MCU-та (master-slave) по три жици:
жица 1: GND
жица 2: захранване (на слейва направо ще му се подават 5 волта)
жица 3: двупосочна асинхронна комуникация (УАРТ, 5V, под 38400 kbaud), няма да има полване, всичко ще е на събития(и за двете страни).

Идеята е минимум жици.

Конкретния ми въпрос е как най-културно да се буферира комуникацията? Искам да е на 5 волта, да не се ползва RS232, защото в мастъра мисля да реализирам детектция за включен слейв по захранване (шунт и компаратор да гледа напрежението върху него).
Гледам, че има някакви 74HC243 трансивъри, със защити от ESD и др. - такова животно ли да ползвам? Ситуациите, когато едновременно предават и двете страни могат ли да прецакат нещо?

Автор:  Syrius-B [ Пон Дек 22, 2008 4:58 am ]
Заглавие: 

Схема с отворен колектор от двете страни. Два транзистора и няколко съпротивления. Активна нула.
Или нещо на принципа на i-Button на Тексас. Имат и готови чипове, ако не ти се лепят дискретни елементи

Автор:  Dimitar [ Пон Дек 22, 2008 6:36 am ]
Заглавие: 

Най-културно става със single wire CAN tranceiver AU5790, ако ти се занимава да човъркаш някой PIC с CAN интерфейс. На въпросната скорост даже ще закара на доста голямо разстояние :) :
[url]http://www.nxp.com/#/pip/pip=[pip=AU5790_5]|pp=[t=pip,i=AU5790_5]|[/url]

Автор:  tolstolob [ Пон Дек 22, 2008 9:38 pm ]
Заглавие:  Прекалено културно:)

Въй, 2,29 паунда е това AU5790D14 във Фарнел... Трябва да се ориентирам към по-сиромашки вариант... Нещо с някакви елементарни логики не може ли да се измисли?

Автор:  Dimitar [ Пон Дек 22, 2008 9:44 pm ]
Заглавие: 

2.29 паунда сравнено с времето и нервите, дето ще хвърлиш със "снесените" идеи са нищо - има няма 3 бири. Ама времето и нервите са си твои така, че дерзай 8) .
Да не забравя само да ти спомена, че CAN интерфейса е железен от към колизии и грешки, докато твоите идеи тепърва ще трябва да ги правиш такива, а това не става от днес за утре 8) .

Автор:  Syrius-B [ Пон Дек 22, 2008 11:25 pm ]
Заглавие: 

Не смесвайте прекалено хардуера и софтуера.
Двете работят заедно, но са си отделни инженерни проблеми, и могат да се решават и поотделно.
Всичко зависи от инженерното ниво на ползвателя. Дали разбrра товаq което прави или се задоволява с copy-paste.

Автор:  [ Пон Дек 22, 2008 11:46 pm ]
Заглавие: 

Според мен най-уместния въпрос на който трябва да се отговори преди да се започне с избора на интерфейс, е на колко метра/сантиметра един от друг са тези професори :) Това с детекцията на включен слейв не го разбрах, защо ти е по захранване да го детектираш ( допълнителни елементи все пак ), като имаш изграден интерфейс ? Просто като се включи слейва праща един байт ишерет на мастера и толкова.

Автор:  plameniv [ Вто Дек 23, 2008 12:18 am ]
Заглавие:  Re: Прекалено културно:)

tolstolob написа:
Въй, 2,29 паунда е това AU5790D14 във Фарнел... Трябва да се ориентирам към по-сиромашки вариант... Нещо с някакви елементарни логики не може ли да се измисли?

A сигурен ли си че е належащо буфериране ?
Най добре става с MAX232 може до няколко метра по усукана двойка става идеално даже до 20м съм пробвал и е 6+. Има доста схемки как да предаваш данни така?
Тази схемка си има всичко нужно да ти свали този сигнал към ТТЛ нива!

Автор:  tolstolob [ Вто Дек 23, 2008 12:19 am ]
Заглавие: 

Май нещо такова ще да е:

Изображение

Пикльовците ще работят на не повече от 15 метра един от друг. И преди всичко гледам да е по възможност по-евтино (не е толкова отговорно, че да е за CAN).
Идеята на детектването по захранване е факта, че Rx-а на 'мастъра' ще е шернат с друга комуникация и искам по тоя начин да ги различавам.

Автор:  plameniv [ Вто Дек 23, 2008 12:37 am ]
Заглавие:  Хех

tolstolob написа:
Май нещо такова ще да е:

http://img155.imageshack.us/img155/2489/commlinetp3.jpg

Пикльовците ще работят на не повече от 15 метра един от друг. И преди всичко гледам да е по възможност по-евтино (не е толкова отговорно, че да е за CAN).
Идеята на детектването по захранване е факта, че Rx-а на 'мастъра' ще е шернат с друга комуникация и искам по тоя начин да ги различавам.

За 15М изобщо не ти трябва това !
Направо си ги свържи с ширмован кабел с 3 жички и няма да има грам смущения, дори захранването пускаш по 4-та за отсрещния :D
Кабели бол всякакви по магазините , дори и да не е ширмовано пак ще пее :wink:

Автор:  tolstolob [ Вто Дек 23, 2008 12:39 am ]
Заглавие: 

^ Е жиците баш на пика ли директно?

Автор:  Syrius-B [ Вто Дек 23, 2008 12:41 am ]
Заглавие: 

При тези колекторни съпротивления и при 20 метра губи стабилност към 9600 бода. (пробвано!)
Ако искаш по-голяма скорост, трябва да сложш по-малки съпротивления - колко, определяш опитно :)
Тригерите на входа не ти вършат никаква работа

Автор:  [ Вто Дек 23, 2008 12:46 am ]
Заглавие: 

Ще вържеш изхода на втория слейв предавател към RxD пина на приемника мастър, обаче изходите на двата слейв предавателя ще са вързани в паралел и ще се бият, за това трябва да са с отворен колектор. Скоростта не ти е висока, можеш и на ТТЛ нива да минеш. Помисли за използването на MAX232(RS232) или SP485(RS485), и двата чипа са евтини и достъпни и са точно за тази цел. Ако сложиш 485, можеш да навържеш поне 20-тина у-ва с тая скорост без да вземаш допълнителни мерки, а жицата може и десетки метри да стане.

Автор:  tolstolob [ Вто Дек 23, 2008 12:54 am ]
Заглавие: 

^ Ще хубаво да мина само с 1 жица за комуникация.
А колко дълго ще изтраят RS232 драйверите ако се пресрещат двата Tx-a (ако заменя тия инвертори на схемата горе с рс232)?

Автор:  Syrius-B [ Вто Дек 23, 2008 1:01 am ]
Заглавие: 

За да няма конфликт сфтуера ти трябва да осигури полудуплексен режим - в даден момент да говори само един.
Това се нарича протокол

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/