Чем больше передавать за одну посылку, тем чаще будут невалидные посылки (при той же вероятности единичного сбоя) - очевидно жеLavr wrote:Верно... вот иShaos wrote:Мы можем наблюдать всё, что угодно с той или иной степенью вероятности, если вероятность события больше нуля...He3HauKo wrote:Если есть вероятность збоя передачи по SPI, то какая разница сколько передавать
[nedoPC-180] Самодоговаривающаяся по SPI этажерка
Moderator: Shaos
-
Shaos
- Admin
- Posts: 24636
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
Lavr
- Supreme God
- Posts: 16855
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
He3HauKo
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
Товарищи физики-теоретики, таким темпом мы скоро к квантовой механике дойдем
Я всего то предложил поднять на несколько байт во благо определения параметров железки!!!!
1 байт - на тип устройства
2 байта - на количество портов
3 байта - на количество памяти
Чтобы не ужимать прям до бит, и не делить память по параграфам или чем то еще(секторам).
К то муже простенькая проверка на ошибки все исправит!
Я всего то предложил поднять на несколько байт во благо определения параметров железки!!!!
1 байт - на тип устройства
2 байта - на количество портов
3 байта - на количество памяти
Чтобы не ужимать прям до бит, и не делить память по параграфам или чем то еще(секторам).
К то муже простенькая проверка на ошибки все исправит!
Хочу стать всезнайкой 
-
Shaos
- Admin
- Posts: 24636
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Если мы будем много раз пробовать, то количество будет приближаться к соотношеню, определяемому вероятностью - чему вас там в ваших академях учут?Lavr wrote:Совершенно нет... может быть ни одной. Это же вероятность, а не обязательство.Shaos wrote:Чем больше передавать за одну посылку, тем чаще будут невалидные посылки (при той же вероятности единичного сбоя) - очевидно же
P.S. Я не просто так делю память по страницам кратным степеням двойки - так декодеры адресов будут проще...
-
He3HauKo
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
-
Lavr
- Supreme God
- Posts: 16855
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
Shaos
- Admin
- Posts: 24636
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Для особо непонятливых - программка:
Программка принимает из командной строки 2 аргумента - количество посылок (пакетов) и количество бит в посылке. Исходя из предположения, что 1% передаваемых бит передаётся с ошибкой, программа симулирует передачу и подсчитывает кол-во плохих пакетов. Вот запуски с одинаковой вероятностью ошибки 1% и с одинаковым количеством пакетов, но с разной их длиной (10,20 и 30):
Ещё вопросы есть?...
Code: Select all
#include <stdio.h>
#include <time.h>
int main(int argc,char **argv)
{
int i,j,k,c,ok;
int number_of_packets = 100;
int bits_per_packet = 10;
int total_bits = 0;
int error_bits = 0;
int error_packets = 0;
srand(time(NULL));
if(argc>1) number_of_packets = atoi(argv[1]);
if(argc>2) bits_per_packet = atoi(argv[2]);
printf("\n");
for(j=0;j<number_of_packets;j++)
{
ok = 1;
for(i=0;i<bits_per_packet;i++)
{
k = rand()%100;
if(k==99) c='*'; /* one percent of errors */
else if(k>=50) c='1';
else c='0';
printf("%c",c);
if(c=='*') { ok=0; error_bits++; }
total_bits++;
}
if(ok) printf(" - GOOD\n");
else { printf(" - BAD\n"); error_packets++; }
}
printf("\n");
printf("Bits per packet - %i\n",bits_per_packet);
printf("Total bits - %i\n",total_bits);
printf("Error bits - %i (%2.2f%%)\n",error_bits,(error_bits*100.0/total_bits));
printf("Total packets - %i\n",number_of_packets);
printf("Failed packets - %i (%2.2f%%)\n",error_packets,(error_packets*100.0/number_of_packets));
printf("\n");
return 0;
}
Code: Select all
bash-4.1$ ./one_percent 50 10
110*001101 - BAD
00011*0011 - BAD
0010101110 - GOOD
1001001101 - GOOD
0010101101 - GOOD
1010100001 - GOOD
0010011011 - GOOD
1110000001 - GOOD
1000110110 - GOOD
1000010100 - GOOD
1100100101 - GOOD
0100100011 - GOOD
1011111100 - GOOD
1001011001 - GOOD
0001010111 - GOOD
011100*010 - BAD
0001000010 - GOOD
1100100110 - GOOD
1101111010 - GOOD
0101001000 - GOOD
1010110000 - GOOD
1010010010 - GOOD
0111011111 - GOOD
*110011011 - BAD
0011111110 - GOOD
1110101100 - GOOD
1010001010 - GOOD
1100011101 - GOOD
1110010111 - GOOD
1011100010 - GOOD
1011010111 - GOOD
1001100100 - GOOD
1000111000 - GOOD
0010000000 - GOOD
100111*111 - BAD
0111101000 - GOOD
0111001100 - GOOD
1010010110 - GOOD
0001001001 - GOOD
0101111101 - GOOD
0001100010 - GOOD
0101101011 - GOOD
1100001100 - GOOD
0010111111 - GOOD
1010001101 - GOOD
1110101001 - GOOD
0110000010 - GOOD
0100001011 - GOOD
1100001*00 - BAD
0101001111 - GOOD
Bits per packet - 10
Total bits - 500
Error bits - 6 (1.20%)
Total packets - 50
Failed packets - 6 (12.00%)
Code: Select all
bash-4.1$ ./one_percent 50 20
00110100110010001110 - GOOD
01011110101001001010 - GOOD
11001100*00000101011 - BAD
01111011011110110100 - GOOD
10000111111111101011 - GOOD
01000011011000001011 - GOOD
01001000011101100100 - GOOD
11100*10001001101101 - BAD
01011111011111010010 - GOOD
00010111000110101000 - GOOD
00001100100100111101 - GOOD
10100001011110001000 - GOOD
01010011011111111101 - GOOD
00111010110000001001 - GOOD
11001110010110001011 - GOOD
11110010011001011110 - GOOD
01110000100100101111 - GOOD
01111011010111001001 - GOOD
10101001111110010011 - GOOD
11101100111111100100 - GOOD
00101101100001010010 - GOOD
11100010100101110100 - GOOD
11100111110000101000 - GOOD
10010101011*10101110 - BAD
01010101010101011111 - GOOD
1001000*110100011110 - BAD
10000100000111111110 - GOOD
10101101001010000011 - GOOD
11111100101111011111 - GOOD
01100111101101110101 - GOOD
00010111100011010001 - GOOD
10000001010010011010 - GOOD
0101*011000010001011 - BAD
00000110011000100001 - GOOD
10100011001101110000 - GOOD
10010101011001101011 - GOOD
10011111101000000101 - GOOD
1000010100010100*011 - BAD
0100110011*101101111 - BAD
00110110100100101101 - GOOD
0100110111*001011101 - BAD
01101001100000111101 - GOOD
00000110000101100101 - GOOD
10110001111000111011 - GOOD
11100000101110100010 - GOOD
01111011001*11101001 - BAD
0011010*101100101011 - BAD
1*000000000000101010 - BAD
10000001110111101100 - GOOD
10111110111110000101 - GOOD
Bits per packet - 20
Total bits - 1000
Error bits - 11 (1.10%)
Total packets - 50
Failed packets - 11 (22.00%)
Code: Select all
bash-4.1$ ./one_percent 50 30
0111100000*0011010001111111110 - BAD
101101001001111100101111100010 - GOOD
001110001111110011100101000000 - GOOD
001111100010100010110010001011 - GOOD
1111*0110111101011011011001011 - BAD
110010011000011001010111010110 - GOOD
001111000110001110010011010001 - GOOD
101110101011000110111111010000 - GOOD
*10001111010110000110100100100 - BAD
111001010110111101000101111010 - GOOD
001100010011101010001101101010 - GOOD
111000100011*01010101000111010 - BAD
000*00101001010100110011000010 - BAD
010010010000110100111110010111 - GOOD
11011010*1100100011*1101101010 - BAD
010010101000011101100111011100 - GOOD
101001101100000111001000100010 - GOOD
*11100111000100111110101111010 - BAD
001000010011111001011101111011 - GOOD
010111110111110100001101001011 - GOOD
100011000110010000100010111111 - GOOD
011000110101011001000101010001 - GOOD
000001*10001011000111000011101 - BAD
010110001000100000101100110011 - GOOD
001001100000000011011011010100 - GOOD
011010010011010111001011011100 - GOOD
000010110110111110010001011001 - GOOD
101000110010*10101111100001101 - BAD
00010100101111110001*001100110 - BAD
011111001010001100010111101010 - GOOD
000010110011010110100000010110 - GOOD
110011*11010010010011110011100 - BAD
011010111010010110110111101100 - GOOD
001110001101100111011000100101 - GOOD
10100111100100011*000011100100 - BAD
1010100010100010011001011111*0 - BAD
0111011000111111110100*0101001 - BAD
111100110111001110110111110000 - GOOD
00110111010000100110100010110* - BAD
101001110110000010011110110011 - GOOD
101010111110110111*00101101010 - BAD
10110100111010010*001100011111 - BAD
010001000100010011101101000010 - GOOD
101001101111111010011100011001 - GOOD
000110001110010000100110011111 - GOOD
111100010011101000010111100111 - GOOD
100011001100010010101100000101 - GOOD
00100110001*011011110001000000 - BAD
111001100101110100111000100111 - GOOD
00*110011110011100010101000110 - BAD
Bits per packet - 30
Total bits - 1500
Error bits - 20 (1.33%)
Total packets - 50
Failed packets - 19 (38.00%)
-
Lavr
- Supreme God
- Posts: 16855
- Joined: 21 Oct 2009 08:08
- Location: Россия
Исходя из взятого с потолка "предположения, что 1% передаваемых бит передаётся с ошибкой",Shaos wrote:Исходя из предположения, что 1% передаваемых бит передаётся с ошибкой, программа симулирует передачу и подсчитывает кол-во плохих пакетов.
никаких вопросов к автору нет.
Только вероятность не имеет ничего общего с этим предположением.
Это больше похоже на внесение некой систематической погрешности...
А для "этажерки", где платы фактически рядом, 1% передаваемых по SPI бит с ошибкой -
это не очень хорошая реализация SPI - не более того.
iLavr
-
He3HauKo
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
-
Shaos
- Admin
- Posts: 24636
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
Shaos
- Admin
- Posts: 24636
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Я могу тоже самое пересчитать для 0.1% - суть презентации была показать, что процент отбраковки пакетов сильно зависит от их длины при прочих равных...Lavr wrote:Исходя из взятого с потолка "предположения, что 1% передаваемых бит передаётся с ошибкой",Shaos wrote:Исходя из предположения, что 1% передаваемых бит передаётся с ошибкой, программа симулирует передачу и подсчитывает кол-во плохих пакетов.
никаких вопросов к автору нет.
Только вероятность не имеет ничего общего с этим предположением.
Это больше похоже на внесение некой систематической погрешности...
А для "этажерки", где платы фактически рядом, 1% передаваемых по SPI бит с ошибкой -
это не очень хорошая реализация SPI - не более того.
-
Lavr
- Supreme God
- Posts: 16855
- Joined: 21 Oct 2009 08:08
- Location: Россия
А зачем?Shaos wrote:Я могу тоже самое пересчитать для 0.1% - суть презентации была показать, что процент отбраковки пакетов сильно зависит от их длины при прочих равных...
Если бы процесс был вероятностный - то в твоих тестах не было бы такого количества ошибок,
как и такого регулярного их появления.
Лучше собирай свой железный SPI, и ты увидишь, что взятые тобой с потолка проценты не имеют
к нему никакого отношения, как на взятой тобой длине посылок, так и на той, о которой He3HauKo
говорил... "Прочих равных" - тут как раз и нет.
И его предложение "не ужимать прям до бит" - на мой взгляд, вполне верно, в рамках вышесказанного.
PS. Я поясню, чтоб не было впечатления о придирках: понятие вероятность вводится для случайного процесса.
С этой точки зрения для выбранной тобой длины пакета и предложенной He3HauKoй - никакой практической
разницы нет.
Поскольку длины пакетов слишком малы, чтобы проявилась статистика случайного процесса.
Если у тебя есть регулярный источник помех, что ты демонстрируешь своими выборками, то твои выкладки
совершенно вернЫ, но только процесс этот не случайный, и говорить о вероятности - бессмысленно.
iLavr
-
Lavr
- Supreme God
- Posts: 16855
- Joined: 21 Oct 2009 08:08
- Location: Россия
