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

Малко математическа помощ?
http://mcu-bg.com/mcu_site/viewtopic.php?f=6&t=8962
Страница 1 от 1

Автор:  kiiid [ Пон Юни 20, 2011 2:45 pm ]
Заглавие:  Малко математическа помощ?

Значи във връзка с моя стар проект с комуникационната шина запецнах на една формула. Нещо не ми идва наум как може да се изведе та ако някой се сети нека подскаже. Мерси предварително!
Значи проблемът е следния:
При работа в мрежа едно SSB устройство може да адресира до 56 други устройства, в това число себе си, както и до 8 адресни хъба. Всеки адресен хъб на свой ред може да адресира до 56 устройства във вътрешното си адресно пространство, както и 8 хъба на по-долно ниво. И така нататък...
Та значи опитвам се да изведа формула с която при известен брой на устройствата в мрежа да ми даде на колко нива би се рутнала и колко хъба биха били необходими.
Примерно: за мрежа с 10 устройства явно е че ще е 0 нива и 0 хъба, за 1000 устройства ще е 2 нива и 17 хъба и т.н.

Автор:  Reader [ Пон Юни 20, 2011 3:19 pm ]
Заглавие: 

Ако не съм сбъркал условието (че осемте хъба не влизат в бройката на 56-те устройства), тогава броят нива ти е логаритъм при основа осем от N/56, закръглено нагоре до цяло число, където N е желания брой устройства. Нямам подръка калкулатор с логаритъм, за да го проверя, а ме мързи да търся формулата за преобразуване на логаритми.

Трета редакция, дано този път я нацеля. :wink:
Броят хъбове се изчислява по по-сложен начин, съобразно вече изчисления брой нива: От N/56, закръглено нагоре, вадиш сумата по i от 0 до (брой_нива-1) от 8 на степен i.

Четвърта редакция:
Естествено, пак съм го объркал. Сумата трябва да е до (брой_нива-2), защото устройствата от предишното ниво се обслужват от хъбовете на по-предишното, а на всичкото отгоре от резултата трябва да се извади единица, защото устройствата от нулево ниво не се обслужват от хъб.

Автор:  setoy [ Пон Юни 20, 2011 4:39 pm ]
Заглавие: 

И наричате това "simple" serial bus ? :D

Автор:  relsys [ Пон Юни 20, 2011 5:22 pm ]
Заглавие: 

setoy написа:
И наричате това "simple" serial bus ? :D


Ми на днешно време всичко дето не е USB е simple...

Автор:  kiiid [ Вто Юни 21, 2011 2:48 am ]
Заглавие: 

setoy написа:
И наричате това "simple" serial bus ? :D


Ами това, да. :) Всъщност на думи изглежда много по-сложно, отколкото е в действителност. Реалната сложност е съпоставима с тази на I2C. А освен това името е само работен вариант и може да се промени в бъдеще.

Специално благодарство на Reader за решенията! :idea:

Автор:  zaphod [ Сря Юни 22, 2011 7:41 am ]
Заглавие: 

тръгваш от обратния ред - при известни етажи разписваш колко устройства има при пълно насищане
в осмична система n=70*11111...111, с толкова единици колкото етажа имаме. това число от единици е цялата част на 8^(f-1)/(1-1/8). цялата част е защото тоя израз ни дава всъщност 1111.111111 до безкрай. след точката го отсичаме.
значи f=ceil(log(n*(1-1/8)/56)/log(8)+1)
аз бих препоръчал рънтайм да се смята така:
for(f=0;56*(1<<(3*f))<n;f++);

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