|
|
  |
Сгенерировать случайное число, Возможно ли? |
|
|
|
Aug 13 2008, 01:15
|

Профессионал
    
Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486

|
Цитата(DpInRock @ Aug 13 2008, 03:39)  Как вообще генерировать случайные числа я себе представляю. Как генерировать их без внешних устройств - вот в этом вопрос. А поиском в инете пользовался? Встречал генерирование как случайных так и псевдослучайных чисел, если интересно, вечером дам ссылки.
--------------------
И на камнях растут деревья!
|
|
|
|
|
Aug 13 2008, 04:21
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 18-02-08
Из: Челябинск
Пользователь №: 35 141

|
Конечно, обсуждаемая тема имеет некий общеобразовательный смысл, но такое решение очень ненадежно, поскольку велика вероятность совпадения "случайных" чисел, сгенерированных по одному и тому же алгоритму на почти идентичном "железе". Вы же не собираетесь производить Ваш девайс миллионами экземпляров, так почему бы просто не прошить в каждый, намертво, уникальный (в рамках предполагаемог количества экземпляров) серийный номер? За всех не поручусь, но возможность автоматического инкрементального присвоения серийного номера достаточно часто встречающаяся в средах разработки функция (обычно находится во вкладке флэш лоадера).
Сообщение отредактировал Ledmaster - Aug 13 2008, 04:22
|
|
|
|
|
Aug 13 2008, 13:35
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Цитата(rv3dll(lex) @ Aug 13 2008, 15:28)  когда микрочип разрабатывал свой модуль шифрования сигналов автосигнализаций он не надеясь на случайность и количество сделал их все разными алгоритм шифрования там достаточен чтобы поменять батарейку и после этого не ломать дверь. как будете разруливать ситуацию разряда батареи??? Адрес генерируется раз в жизни. И пишется во флэшку. Устройство крайне маленькое, потреблять должно не более 5 микроампер (в среднем). Достаточно сделать генерацию нового адреса по подсоединению батарейки, как все проблемы с совпадениями снимаются. Если совпало - просто переткни батарейку еще раз. Но я так не сделал. Ибо на пиковый случай, когда в одном месте собираются очень много устройств (сложная система), то там присутсвует управление устройством через RS232? где ты можешь в ручную задать все параметры. А для простых случаев - сойдет и так. Это устройство - просто радиокнопка на 10 выключателей. Типа умный дом и все такое. Просто встала задача при массовом тираже (всего 1000 шт. в год) упростить задачу записи разных адресов по умолчанию.
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Aug 13 2008, 13:53
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(DpInRock @ Aug 13 2008, 17:35)  А для простых случаев - сойдет и так.
Это устройство - просто радиокнопка на 10 выключателей. Типа умный дом и все такое. Просто встала задача при массовом тираже (всего 1000 шт. в год) упростить задачу записи разных адресов по умолчанию. И все же я бы подумал и о дополнительном "аппаратном" решении. В виде хоть какого джампера/кнопки на плате, выполняющего начальный сброс устройства. Т.е. при установке батареи хоть каким из предложенных способов генерируем некоторое "суррогатное" "случайное" число, а потом в течении какого-то разумного времени пользователь должен сделать сброс. А вот в течении этого времени до сброса крутить счетчик с максимальной скоростью. Момент сброса будет вполне случайным и результат (сохраняемый в оперативной памяти) - тоже. Ну, а если все ж сброса не было, то по истечении таймаута (а то цикл сожрет много электропитания) будет то, что сгенерировалось в момент включения. В конце концов, возможность аппаратного сброса есть практически везде и повсеместно, начиная от наручных часов... Стоп-стоп... Радиокнопка, говорите ? Т.е. кнопка уже есть ? Ну так от включения и до первого нажатия на кнопку можно медленно и печально, не особо расходуя питание, крутить какой-нибудь таймер. И по нажатию на кнопку сохранить полученный результат, который и будет требуемым "случайным числом". Или я чего-то в логике работы недопонял ?
Сообщение отредактировал rx3apf - Aug 13 2008, 14:08
|
|
|
|
|
Aug 13 2008, 17:12
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 18-02-08
Из: Челябинск
Пользователь №: 35 141

|
Цитата(xelax @ Aug 13 2008, 19:56)  Ставте DS2411 и не мучайтесь ненужными проблемами. Кнопки, еепром, ацп, память и прочее...  Да, дополнительные пару долларов себестоимости, это как раз то, что нужно для радиобрелка! А все таки, как насчет банальной сериализации? В конце концов, можно успокоится на внешней проге, которая непосредственно в .hex файл будет прописывать серийный номер и править CRC (если нужно) перед каждой прошивкой.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|