реклама на сайте
подробности

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> эмулятор SD карты, есть ли такое уже на AVR?
ветерок
сообщение Feb 20 2009, 15:15
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902



в общем задача в том чтоб управлять устройством вне зависимости от операционной системы скажем линукс
или виндовс.

Пришёл к выводу что надо оформить устройство сопряжения как диск
в котором например три текстовых файла.
кидая байт в файл 1.txt мы дёргаем портА ,
данные в текстовом файле 2.txt отвечают за конфигурацию портов и таймеров к примеру.
Файл 2.txt содержит входные данные.
типа первый байт в файле данные АЦП второй третий данные таймера 4-тый байт , данные с портА
И по мере фантазии...

в общем хочу сделать так .
подскажите или киньте ссылки.
Спасибо.

Сообщение отредактировал ветерок - Feb 20 2009, 15:25


--------------------
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 20 2009, 16:31
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(ветерок @ Feb 20 2009, 18:15) *


Это слишком сложно в реализации!
К тому же проще имитировать не SD а MMC (покрайней мере не надо поддерживать сразу несолько линий данных)

К тому же что бы перехватывать запись в файлы вам надо будет еще и файловую систему имитировать.

Есть еще такая вещь как SDIO вот это специально для управления, но без аппаратной реализации, будет такой гемор...

Самое логичное ваше устройство подключить через USB или UART
для авр кстати USB софтом реализован. (лоу спид)
Go to the top of the page
 
+Quote Post
ветерок
сообщение Feb 20 2009, 17:00
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902



да это скучно и это вчерашний день...

для устройства нужны драйвера....
а тут просто диск.
и по управлять устройством можно через любой текстовый редактор.

с FAT конечно это напряг будет слегонца.

можно реализовать и по SPI ведь все SD MMC поддерживают а значит и картридеры.

ну и насчёт эмуляции USB low speed протокола от егора например.
я думаю эмулятор SD карты это несколько проще.

А прикиньте сколько софта надо писануть было...
а юзерам?
Юзерам надо разобраться в исходниках где чего там что нажать что за что отвечает, как происходит взаимосвязь устройства с приложением и так далее...

а тут юзеру говориш вот те текстовый файл первый байт порт А второй порт Б
третий чтние,всё сохранить .


--------------------
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 20 2009, 17:06
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(ветерок @ Feb 20 2009, 20:00) *
можно реализовать и по SPI ведь все SD MMC поддерживают а значит и картридеры.

нет не значит!
это для того что бы карту можно было на простом устройстве считать!
если вы сделаете только spi скорее всего ваша карта не будет работать на большинстве устройств.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Feb 20 2009, 17:08
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(ветерок @ Feb 20 2009, 22:00) *
да это скучно и это вчерашний день...

Ну если важен процесс...

Цитата
для устройства нужны драйвера....

USB-HID, или прикинуться виртуальным Serial.

Цитата
с FAT конечно это напряг будет слегонца.

Ну да, слегонца. FAT придется реализовывать наизнанку.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 20 2009, 17:15
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(ветерок @ Feb 20 2009, 20:00) *
а тут юзеру говориш вот те текстовый файл первый байт порт А второй порт Б
третий чтние,всё сохранить .

только надо учесть что данные пишутся по секторам (или даже сразу по кластерам)
к тому же еще кеш есть, т.е. операционка вообще может потом решиь записать файл!
отключиь кеш конечно можно но для этого нужно файл специальным образом открывать...
Go to the top of the page
 
+Quote Post
ветерок
сообщение Feb 20 2009, 17:24
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902



ну хорошо прикинусь я HID
мне прийдётся ещё воротить на делфи си басике и или в асме прогу чтоб всем этим управлять.

я думаю что все рарт ридеры знать SPI просто обязаны.
а вот SD и MMC не обязаны
потому как сложнее в реализации.
некоторые ридеры поэтому и медленные.(я так думаю)

"FAT"
будет с изюминкой,это верно smile.gif

важен результат конечно больше.

Мне вот видится что это решение гораздо интереснее тем что управлять элементарно устройством,в голой ОС без каких либо сторонних программ.

Ну вот с простого самого тот же светодиод...

чтоб его зажечь надо как минимум загрузить делфи и как минимум понять что к чему "прикручено" в программе
она кстати (Delphi)не бесплатная? если кого-то это интересует smile.gif

а в случае с SD картой
нам нужен любой бесплатный язык,любое бесплатное средство автоматизации типа nncron, hotkey и так делее...

которые позволяют работать с файлами на чтение и запись...
и вуаля!

ниодно решение другое не может дать такого быстрого старта.


--------------------
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 20 2009, 17:28
Сообщение #8


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(ветерок @ Feb 20 2009, 20:24) *
я думаю что все рарт ридеры знать SPI просто обязаны.
а вот SD и MMC не обязаны
потому как сложнее в реализации.
некоторые ридеры поэтому и медленные.(я так думаю)


SD MMC как раз обязаны!
а вот ридеры нет.
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 20 2009, 17:31
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(ветерок @ Feb 20 2009, 20:24) *
чтоб его зажечь надо как минимум загрузить делфи и как минимум понять что к чему "прикручено" в программе
она кстати (Delphi)не бесплатная? если кого-то это интересует smile.gif

Чего это вы зациклились на Дельфи? Есть более стандартные и более дешёвые языки Си =)
Go to the top of the page
 
+Quote Post
ветерок
сообщение Feb 20 2009, 17:33
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 29-11-06
Из: Ижевск
Пользователь №: 22 902



Цитата(KRS @ Feb 20 2009, 21:15) *
только надо учесть что данные пишутся по секторам (или даже сразу по кластерам)
к тому же еще кеш есть, т.е. операционка вообще может потом решиь записать файл!
отключиь кеш конечно можно но для этого нужно файл специальным образом открывать...


а как может это навредить ?
ведь мы записывая в первый байт файла 1.тхт не трогаем место в секторе для второго байта .
может я что-то упускаю ?


Цитата(Petka @ Feb 20 2009, 21:31) *
Чего это вы зациклились на Дельфи? Есть более стандартные и более дешёвые языки Си =)

это вы зациклились,мне вообще языки не интересны тут.
Разве это так сложно понять?


в общем я понял что такой реализации нет раз дело не пошло дальше дискуссии smile.gif

Сообщение отредактировал ветерок - Feb 20 2009, 17:38


--------------------
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 20 2009, 17:34
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ветерок @ Feb 20 2009, 18:15) *
кидая байт в файл 1.txt мы дёргаем портА ,
данные в текстовом файле 2.txt отвечают за конфигурацию портов и таймеров к примеру.
Файл 2.txt содержит входные данные.

Дурь-то какая sad.gif. Для конечных пользователей нынче просто Web интерфейсы делают.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 20 2009, 17:36
Сообщение #12


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(ветерок @ Feb 20 2009, 20:33) *
а как может это навредить ?

тем что сразу весь сектор записывается. и тем что количество записей из программы не будет равно физическому количеству записей на диск
т.е. вы записали в 1 байт потом во второй потом снова в первый, а на диск пойдет одна запись, а информация о первом значении первого байта вообще пропадет
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 20 2009, 18:10
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(KRS @ Feb 20 2009, 20:36) *
тем что сразу весь сектор записывается. и тем что количество записей из программы не будет равно физическому количеству записей на диск
т.е. вы записали в 1 байт потом во второй потом снова в первый, а на диск пойдет одна запись, а информация о первом значении первого байта вообще пропадет

Я реализовал MassStorage (на AVR). И могу сказать, что кэширование от компа в сторону девайса отключается легко, и по умолчанию, кстати, отключено. А вот наоборот, т.е. от девайса, всё кэшируется и как отключить я не знаю. У девайса нет никаких средств сказать ОС, что данный файл изменён. Я пишу логи в файлы, поэтому данная проблема меня касается и напрягает. Но я знаю всего лишь единственное решение - посекторное чтение. Да, тогда ничего не кэшируется, но файл, а тем более текстовый, таким образом считать без установки к.л. программ считать не удастся. Ксати м.б. кто мне подскажет как отключить это самое кэширование под win?
Кстати реализация файловой системы не в пример легче, чем реализация собственно MassStorage. И ещё я не знаю будет-ли работать MassStorage на LowSpeed. Бывает-ли LowSpeed Bulk EP? Что-то мне помнится, что на LowSpeed поддерживается ТОЛЬКО контрольный канал и InterruptIn/Out передачи. Смотреть описание лень т.к. я уверен, что топикстартер откажется от своей затеи.
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 20 2009, 18:37
Сообщение #14


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(galjoen @ Feb 20 2009, 21:10) *
т.е. от девайса, всё кэшируется и как отключить я не знаю.

А открывать с FILE_FLAG_NO_BUFFERING пробовали?
там правда еще тогда для чтения буфера надо VirtualAlloc ом создавать... но все это в MSDN описано.


Цитата(galjoen @ Feb 20 2009, 21:10) *
У девайса нет никаких средств сказать ОС, что данный файл изменён.

Хотя да, операционка не может подумать что кто то кроме нее мог изменить файл.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 20 2009, 18:50
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(KRS @ Feb 20 2009, 21:37) *
А открывать с FILE_FLAG_NO_BUFFERING пробовали?
там правда еще тогда для чтения буфера надо VirtualAlloc ом создавать... но все это в MSDN описано.

Не помню т.к. давно это было. Но при случае прочту и попробую. Хотя для меня самое лучшее решение - это если лог как текстовый файл смотреть можно было-бы. Т.е. ничего не запускать вообще, а взять какой-нибудь блокнот и просто посмотреть. Кстати иногда и обновляется. По времени что-ли? Но реально прочесть самый последний лог - только передёрнуть девайс.
Цитата(KRS @ Feb 20 2009, 21:37) *
Хотя да, операционка не может подумать что кто то кроме нее мог изменить файл.

Да пусть бы думала что угодно. Пусть была-бы возможность кэширование на чтение отключить.
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016