|
|
  |
Скоростной доступ к SRAM |
|
|
|
Jan 18 2006, 15:57
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата SRAM на предельно допустимых скоростях будет работать нестабильно Хочу еще добавить, что SRAM стоит намного дороже SDRAM. Вообще, я согласен с одним из вариантов, предложенных _artem_: Цитата б. любой микро со страничной ОЗУ или флешем или харддиском , где данные размешены в соответствии с вашей реализацией Взаимодействовать с винтом несложно, уже реализована разбивка по секторам (даже избыточного размера - пригодится если структура записей расширится). А можно взять CompactFlash - интерфейс практически такой же, как у винта, но размеры и энергопотребление намного приятнее. Скорость считывания при этом будет достаточно высокой, что бы не было визуальных тормозов.
|
|
|
|
|
Jan 18 2006, 16:39
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892

|
Цитата(vesago @ Jan 18 2006, 19:26)  Флэш боюсь долго не проживет. Надо журнал писать - несколько тысяч событий ежедневно. Ну и что из этого? Большой кольцевой буфер. Чем он больше - тем реже перезапись. 100к циклов любой флеш держит. Пусть 128к в день - при 8Мбайт это 64 дня длина буфера * 100к - у Вы сами столько проживете? Только не надо делать FAT!!! Ссылочную структуру. В конце каждого блока - указатель на следующий. При старте сканируем все блоки и находим последний (ну и пусть загрузка займет 1 минуту - это страшно?) Или это смотрим http://www.caxapa.ru/echo/arm.html?id=48631
|
|
|
|
|
Jan 18 2006, 17:55
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата Большой кольцевой буфер. Если ему нужно ежедневно лопатить до 30000 записей, то кольцевой буфер, а тем более ссылочная структура, получатся весьма ресурсоемкими. К сожалению, я не знаю количества гарантированных циклов у таких носителей, как MMC, SmartMedia, CompactFlash. Но врядли несколько миллионов. Ну что ж, тогда используйте винт.
|
|
|
|
|
Jan 18 2006, 18:24
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892

|
Цитата(AndyBig @ Jan 18 2006, 20:55)  ...Ну что ж, тогда используйте винт... Таким образом, мы от AVR дружно пришли к промПЫсюку. А что? (хоть я и терпеть не могу x86) 1. Берем http://www.ipc2u.ru/catalog/U/U2/20603.html - 171$ 2. Берем к нему IDE FLASH модуль мегов на 16 - он всего ничего стоит. Можно и на винче со свалки поработать. 3. Качаем Линух http://www.dmp.com.tw/tech/os-xlinux/Закатав готовый образ, полагаю, можно и без видеокарты установить. 4. Быстренько пишем апликуху. Ндя... вот поэтому и живут x86, чтоб их... Человек сейчас скажет, что мол не по бюджету все это, я лучше сам проводками спаяю. На этот случай можно взять на той же свалке, где и винч, 386 борду, и ISA Ethernet карточку на RTL8019 (что я пишу  ). А когда устройство заработает, его можно перенести на промПЫсю. Если к тому моменту не найдется 200$ - это уже клиника. (производство своих плат в малых тиражах будет дороже.)
|
|
|
|
|
Jan 18 2006, 18:46
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(AndyBig @ Jan 18 2006, 19:55)  К сожалению, я не знаю количества гарантированных циклов у таких носителей, как MMC, SmartMedia, CompactFlash. Но врядли несколько миллионов. Ну что ж, тогда используйте винт. MMC, CompactFlash - 100k записей на сектор. Правильно говорит Evgeny_CD 64 дня * 100k. Ведь каждый день можно работать (записывать) с новыми секторами. По чтению ресурс этих носителей - 40 лет. > vesago Как вам такой вариант (ядро 386sx): http://www.gensw.com/pages/prod/bios/chipsets/m6117.htmесть много готовых плат на этом чипе... Цитата(Evgeny_CD @ Jan 18 2006, 20:24)  Вы всегда меня опережаете на 1 шаг! Respect!
|
|
|
|
|
Jan 18 2006, 19:02
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892

|
Цитата(defunct @ Jan 18 2006, 21:46)  Как вам такой вариант (ядро 386sx): http://www.gensw.com/pages/prod/bios/chipsets/m6117.htmесть много готовых плат на этом чипе... http://www.m6117.com/ - тут лучше описано! Цитата(defunct @ Jan 18 2006, 21:46)  ...Вы всегда меня опережаете на 1 шаг! Respect! ...  Не ставил свой целью. Все равно с этого форума я знаний беру гораздо больше, чем отдаю.
|
|
|
|
|
Jan 18 2006, 21:50
|

учащийся
    
Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249

|
Цитата(vesago @ Jan 18 2006, 18:26)  Флэш боюсь долго не проживет. Надо журнал писать - несколько тысяч событий ежедневно. А разве все 3000 операций будут приходится на одну и ту же ячейку ? Если вы собираетесь делать систему допуска интегрированную с бесконтактными датчиками и регистрацией входов выходов то навряд ли вам придется делать несколько тысяч записей на ячейку памяти в карте . Для логирования входов выходов отведите место в ОЗУ и записывайте данные туда, а два раза в день перепишите все это на карту . Учетные же записи можно оперировать через карту памяти напрямую . Или же для регистрации событий можно использовать подход Евгения . Кстати у атмела есть аппликуха на это применительная для еепрома, но можете этот принцип и для флеша использовать. Сама запись наверно будет типа - номер пользователя , номер датчика , время, день и еше чтото . Но длина записи будет постоянна . Для обрашения к записи напрямую вам будет надобен указатель , который и будет под большой нагрузкой . Так его можно и в ОЗУ держать . А если в устройстве будет баг то для восстановления можно - установите адрес этого указателя фиксированно в памяти ОЗУ. Затем в low level init до того как инициализация будет делаться считайте этот адрес напрямую (если внешнее ОЗУ прицепите то можно батарейку использовать для сохранения этих данных). Ну а в случае если значение этой ячейки нарушилось - то пройдитесь по всем записям и сверяйте день и время чтобы выявить самую свежую запись лога . Вобшем на каждую хитрую загогулину можно найти подходяшую ей отгогулину, или же другими словами - голь на выдумку хитра.)
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
|
Jan 19 2006, 06:44
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 15-07-04
Из: g.Penza
Пользователь №: 326

|
defunctНормальное решение с ПЛИС. Нечто подобное реализовали, именно на (128Mega или AT91RM9200) + FPGA + SRAM. В такой конфигурации Mega + FPGA + SRAM оказалась симпотичней. В SRAM структура, которую туда грузит Mega. Mega общается с SRAM через FPGA через окно. В FPGA реализован автомат бинарного поиска. Управляет автоматом Mega. Логирование - через SPI Flash. З.Ы. Можно конечно и SDRAM прикретить - будет дешевле, но понять как работает контроллер SDRAM чуть сложнее. З.З.Ы В FPGA можно реализовать высокоскоростной автомат логирования в Flash. З.З.З.Ы А ногами махать (аля 1-Wire) Megа всётаки удобней, чем AT91RM9200  .
|
|
|
|
|
Jan 19 2006, 07:43
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(AndyBig @ Jan 18 2006, 23:06)  Цитата Ведь каждый день можно работать (записывать) с новыми секторами Может быть я что-то упускаю из виду, но никак не пойму - каким образом это будет осуществляться?  . Кратео описать основу работы с новыми секторами каждый день, скажем - получили ключ и полезли с ним в базу, там... и т.д.?  Признаю, что упустил из виду модификацию и удаление записей. Но отпираться уже некуда, итого работать (записывать) всегода с новыми секторами можно так.... Ограничения: Поскольку изначально планировалось работа с базой в ОП, то мной рассмотрен только случай когда все основные операции над базой select/update/insert/delete выполняются только над отображением базы в ОП, а задачей флеш-носителя будет только хранение базы. При такой постановке задачи возможны два варианта использования всегда "новых" секторов флеш носителя. Реализация: 1. флеш хранилище организовать в виде линейного или кольцевого буфера в котором хранить данные инициализации и далее все действия произведенные над базой, соответственно "новые" записи просто добавлять в "новые" сектора. При старте устройства, все "непустые" сектора последовательно читать, и производить формирование базы в ОП (т.е. при каждом старте системы, выполнять все модификации всех полей с момента работы системы, получится "долгий старт"). 2. Выполнять полное сохранение базы из оперативной памяти в новую область флеш, при этом в начале базы указывать сколько секторов она занимает. Т.о. естественным путем образуется цепочка схожая с MCB-DOS, и при старте очень легко можно будет найти и прочитать базу. флеш использовать лишь только для начальной загрузки данных в случае сброса(включения) устройства. (такой подход требует наличия аккумулятора в устройстве для аварийной записи базы на флеш носитель в случае отключение питания). Зато если сохранение базы выполнять 1 раз в день, то теоретически время работы флеша будет чутли не 100k * (Объем флеша / Объем базы) дней  . Наверное, придется выполнять еще и регенерацию флеш, раз в 30 лет. Хехе  Оба варианта имеют жуткие минусы, но зато, надеюсь, отвечают на Ваш вопрос.  PS: всерьез мой утренний маразм не воспринимать, хотя если кто хочет такое сделать - пожалуйста
|
|
|
|
|
Jan 19 2006, 07:59
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(ASN @ Jan 19 2006, 08:44)  defunctНормальное решение с ПЛИС. Нечто подобное реализовали, именно на (128Mega или AT91RM9200) + FPGA + SRAM. В такой конфигурации Mega + FPGA + SRAM оказалась симпотичней. В SRAM структура, которую туда грузит Mega. Mega общается с SRAM через FPGA через окно. В FPGA реализован автомат бинарного поиска. Управляет автоматом Mega. Логирование - через SPI Flash. Ну не знаю, не знаю.. Я бы использовал просто дополнительный порт для адресации выше 64k и добавил бы один элемент 8ИЛИ, данные хеш таблицы хранил бы в фиксированном окне, эффект по скорости думаю был бы сравнимый, зато железо было бы однозначно дешевле (-ПЛИС который стоит как mega128, а то и больше).
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|