| Автор |
Съобщение |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 протокол за 485
някой беше поствал нещо, но не можах да го намеря, та питам. искам да направя няколко устройства, които да са вързани по 485 (или можеби по-добре по CAN?). да могат да се адресират да имат регистри, вкоито да може да се пише/чете да могат да се ресетват ако може и да се енумерират по някакъв начин от хост ще е чудесно то май ще трябва да си мисля протокол, ама ако някой има линкове или идеи ще е по-добре да не се почва от нулата
|
| Вто Дек 06, 2005 12:43 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Мога да ти дам няколко паразитни идеи, които аз съм ползвал, и съм сигурен, че работят.
1. Не ползвай стандартния RS232 протокол със стартов и стопов импулс, на който само му сменяш физическите нива. Ползвай някакво кодиране, което ти осигурява около 50% нули / единици, защото така ще постигнеш по-висока скорост. В противен случай DC нивото ще ти отмести праговете на приемника.
2. На всяко устройство дай индивидуален мрежов адрес, нещо като MAC адреса на NIC. В протокола, който ще ползваш ( или ще правиш ), включи пакет "за запитване", с който хостът ще търси включените устройства. Този пакет трябва да има две полета : търсен адрес и маска на адреса. Всяко устройство, което открие такъв пакет, с маска != -1 ( с колкото бита ти е адресът ), за което
(собствен адрес XOR търсен адрес) AND маска = 0,
отговаря с "0", ако са няколко такива, сигналите им се наслагват. По този начин хостът може да открие всички инсталирани устройства, постепенно прецизирайки маската. Стандартна процедура за обхождане на дърво. Оттам нататък с индивидуални заявки може да установи за какво устройство става дума. Другият вариант е със случайно закъснение, така работят всички мрежови адаптери.
|
| Вто Дек 06, 2005 1:23 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
за нивата - ясно имам си написан манчестер на VHDL. мога да го допиша малко да смята CRC32 и да хваща преамбюл.
|
| Вто Дек 06, 2005 1:48 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Ако не ти е много голямо разтоянието можеш и да си работиш директно с RS232. На 200 метра и UTP kabel съм инсталирал една системка и работи вече повече от месец. Направил съм да води статистика на погрешно приети пакети досега се е случвало само един пакет да е бил приет погрешно а всяка секунда нон стоп има по около 80баита трансфер с 4 устроиства.
А ако в протокола направиш малък брой възможни адреси не е проблем да се пингват последователно при търсене на нови устроиства на линията. Но по универсално е както казва батето.
PS това ми е на 76800 връзка. И на 615К работеше но тогава се случваше чат пат и да бърка да кажем 1-2пакета на ден
|
| Вто Дек 06, 2005 1:51 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
хмм? как правиш мулти-дроп на 232? по-точно как връзваш предавателите?
|
| Вто Дек 06, 2005 2:07 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Един мастер и всички останали слеив. Предавателя се активира само в момента когато трябва да се предава и веднага след предаването се деактивира.
|
| Вто Дек 06, 2005 2:11 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
какъв чип ползваш за 232, който да има TE? за 485 е ясно, ама за 232?
|
| Вто Дек 06, 2005 2:31 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
232 по 485 линия.
SN65176
но имаи пред вид че това при неактивен предавател гълта 30ма при включен около 65. Има по добри чипове вече за тая работа.
и си сложи резистори по 120 ома в 2та края на линията за да се съгласува. Може и ватианта с шотки диоди да ползваш за съгласуване разправят че било по добре но не съм пробвал.
|
| Вто Дек 06, 2005 3:11 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
|
| Вто Дек 06, 2005 4:38 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Да де нали това разправям.
Ама само 2 ромчета съм си налял ама то времето горещо днес и вместо да ги изпия те се изпариха не можах да ги близна даже 
|
| Вто Дек 06, 2005 5:01 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
да - явно си е мислил за асинхронна комуникация то нивата нямат значение за вида на комуникацията, в общия случай.
|
| Вто Дек 06, 2005 5:09 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
offtopic:
:- ))))
нямаше как да не отбележа , че ме заболя корема от смях - хехеххе , добре измислено  даже не можа да ги близнеш , а .. тъжно ми е сега, заради теб ....
-------
интересна тема иначе , т.е има предпоставка да стане много интересна и полезна
Keep the good spirit < както се казва
Само така на БГ :- ))
|
| Сря Дек 07, 2005 1:04 am |
|
|