| Микроконтролери и електроника 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 е желания брой устройства. Нямам подръка калкулатор с логаритъм, за да го проверя, а ме мързи да търся формулата за преобразуване на логаритми. Трета редакция, дано този път я нацеля. Броят хъбове се изчислява по по-сложен начин, съобразно вече изчисления брой нива: От N/56, закръглено нагоре, вадиш сумата по i от 0 до (брой_нива-1) от 8 на степен i. Четвърта редакция: Естествено, пак съм го объркал. Сумата трябва да е до (брой_нива-2), защото устройствата от предишното ниво се обслужват от хъбовете на по-предишното, а на всичкото отгоре от резултата трябва да се извади единица, защото устройствата от нулево ниво не се обслужват от хъб. |
|
| Автор: | setoy [ Пон Юни 20, 2011 4:39 pm ] |
| Заглавие: | |
И наричате това "simple" serial bus ? |
|
| Автор: | relsys [ Пон Юни 20, 2011 5:22 pm ] | |||||||||
| Заглавие: | ||||||||||
Ми на днешно време всичко дето не е USB е simple... |
||||||||||
| Автор: | kiiid [ Вто Юни 21, 2011 2:48 am ] | |||||||||
| Заглавие: | ||||||||||
Ами това, да. Специално благодарство на Reader за решенията! |
||||||||||
| Автор: | 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/ |
|