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

протокол за 485
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1383
Страница 1 от 1

Автор:  ДедоБоре [ Вто Дек 06, 2005 12:43 pm ]
Заглавие:  протокол за 485

някой беше поствал нещо, но не можах да го намеря, та питам.

искам да направя няколко устройства, които да са вързани по 485 (или можеби по-добре по CAN?).
да могат да се адресират
да имат регистри, вкоито да може да се пише/чете
да могат да се ресетват :wink:
ако може и да се енумерират по някакъв начин от хост ще е чудесно

то май ще трябва да си мисля протокол, ама ако някой има линкове или идеи ще е по-добре да не се почва от нулата

Автор:  bateAz [ Вто Дек 06, 2005 1:23 pm ]
Заглавие: 

Мога да ти дам няколко паразитни идеи, които аз съм ползвал, и съм сигурен, че работят.
1. Не ползвай стандартния RS232 протокол със стартов и стопов импулс, на който само му сменяш физическите нива. Ползвай някакво кодиране, което ти осигурява около 50% нули / единици, защото така ще постигнеш по-висока скорост. В противен случай DC нивото ще ти отмести праговете на приемника.
2. На всяко устройство дай индивидуален мрежов адрес, нещо като MAC адреса на NIC. В протокола, който ще ползваш ( или ще правиш ), включи пакет "за запитване", с който хостът ще търси включените устройства. Този пакет трябва да има две полета : търсен адрес и маска на адреса. Всяко устройство, което открие такъв пакет, с маска != -1 ( с колкото бита ти е адресът ), за което
(собствен адрес XOR търсен адрес) AND маска = 0,
отговаря с "0", ако са няколко такива, сигналите им се наслагват. По този начин хостът може да открие всички инсталирани устройства, постепенно прецизирайки маската. Стандартна процедура за обхождане на дърво. Оттам нататък с индивидуални заявки може да установи за какво устройство става дума. Другият вариант е със случайно закъснение, така работят всички мрежови адаптери.

Автор:  ДедоБоре [ Вто Дек 06, 2005 1:48 pm ]
Заглавие: 

за нивата - ясно
имам си написан манчестер на VHDL. мога да го допиша малко да смята CRC32 и да хваща преамбюл.

Автор:  Nikola Kirov [ Вто Дек 06, 2005 1:51 pm ]
Заглавие: 

Ако не ти е много голямо разтоянието можеш и да си работиш директно с RS232. На 200 метра и UTP kabel съм инсталирал една системка и работи вече повече от месец. Направил съм да води статистика на погрешно приети пакети досега се е случвало само един пакет да е бил приет погрешно а всяка секунда нон стоп има по около 80баита трансфер с 4 устроиства.
А ако в протокола направиш малък брой възможни адреси не е проблем да се пингват последователно при търсене на нови устроиства на линията. Но по универсално е както казва батето.

PS това ми е на 76800 връзка. И на 615К работеше но тогава се случваше чат пат и да бърка да кажем 1-2пакета на ден

Автор:  ДедоБоре [ Вто Дек 06, 2005 2:07 pm ]
Заглавие: 

хмм? как правиш мулти-дроп на 232? по-точно как връзваш предавателите?

Автор:  Nikola Kirov [ Вто Дек 06, 2005 2:11 pm ]
Заглавие: 

Един мастер и всички останали слеив. Предавателя се активира само в момента когато трябва да се предава и веднага след предаването се деактивира.

Автор:  ДедоБоре [ Вто Дек 06, 2005 2:31 pm ]
Заглавие: 

какъв чип ползваш за 232, който да има TE?
за 485 е ясно, ама за 232?

Автор:  Nikola Kirov [ Вто Дек 06, 2005 3:11 pm ]
Заглавие: 

232 по 485 линия.
SN65176

но имаи пред вид че това при неактивен предавател гълта 30ма при включен около 65. Има по добри чипове вече за тая работа.

и си сложи резистори по 120 ома в 2та края на линията за да се съгласува. Може и ватианта с шотки диоди да ползваш за съгласуване разправят че било по добре но не съм пробвал.

Автор:  bateAz [ Вто Дек 06, 2005 4:38 pm ]
Заглавие: 

Никола май имаше предвид RS232 времедиаграми с RS485 нива. Бе тоя човек много от рано го е уважил Никулден. :lol: :lol: :lol:

Автор:  Nikola Kirov [ Вто Дек 06, 2005 5:01 pm ]
Заглавие: 

Да де нали това разправям. :)
Ама само 2 ромчета съм си налял ама то времето горещо днес и вместо да ги изпия те се изпариха не можах да ги близна даже :wink:

Автор:  ДедоБоре [ Вто Дек 06, 2005 5:09 pm ]
Заглавие: 

да - явно си е мислил за асинхронна комуникация :wink:
то нивата нямат значение за вида на комуникацията, в общия случай.

Автор:  the_real_maniac [ Сря Дек 07, 2005 1:04 am ]
Заглавие: 

Nikola Kirov написа:
Да де нали това разправям. :)
Ама само 2 ромчета съм си налял ама то времето горещо днес и вместо да ги изпия те се изпариха не можах да ги близна даже :wink:


offtopic:

:- ))))

нямаше как да не отбележа , че ме заболя корема от смях - хехеххе , добре измислено :) даже не можа да ги близнеш , а .. тъжно ми е сега, заради теб ....
-------

интересна тема иначе , т.е има предпоставка да стане много интересна и полезна :)

Keep the good spirit < както се казва :)

Само така на БГ :- ))

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