atmega, tiny, etc., USB i "ukryte urzadzenie".

Dec 12, 2005 12 Replies

Witam serdecznie,



Ciezko powiedziec, czy dokladnie dobra grupe wybralem, ale zaryzykuje. Podlaczyc jakis maly uC pod USB to raczej nie jest wielki problem, istnieje kilka projektow, wiec da sie. Chce zrobic "klucz" na usb. Na ow kluczu ma byc powiedzmy 250 bajtow danych, czytanych przez program, ktory pewnie tez bede musial napisac.



Pytanie:



- jak dostac sie do urzadzenia, nie instalujac zadnych sterownikow, lub



- jesli trzeba zainstalowac sterowniki, jak widzielibyscie ten projekt, aby po wlozeniu klucza sterowniki same sie zainstalowaly (tak jak flash drive).



Nie wiem jak zrobic pierwsze, w przypadku drugiego problemow moze byc kilka - np FAT. Ale co ciekawsze, uzyszkodnik moze usunac cos z takiego dysku, i co? I zle...



Chcialbym tylko pobierac kilkaset bajtow danych z klucza przez jeden program a nie mam za bardzo koncepcji.



Moze ktos przerabial cos podobnego, jakbym dostal jakies linki to juz w ogole podskocze z radosci.



Dzieki! m.



Jakies rozwiazanie, nie koniecznie najlepsze przedstawiam na dole.

Mikroprocesor udaje zwykle urzadzenie mass-storage takie jak flash drive. Jest na tymze urzadzeniu jeden plik. Wszystkie operacje kasowania i zmieniania tego pliku urzadzenie ignoruje, chyba ze jako poczatek danych do zapisania do tego pliku wyslany jest specjalny klucz. Tenze klucz oczywiscie nie jest faktycznie zapisywany w tym pliku tylko wycinany.

W razie potrzeby, jezeli trzeba uchronic dane tez przed odczytem przez uzytkownika to wymagamy przed komenda odczytu komende zapisu z takim kluczem, albo cos w tym stylu.

Zaleta takiego rozwiazania jest ze nie potrzebujesz zadnych sterownikow do komputera. Natomiast nie wiem na ile latwe jest zaimplementowanie (okrojone) urzadzenia mass-storage USB w mikrokontrolerze.

Oczywiscie nalezy pamietac, ze takie zabezpieczenie nie jest zabezpieczeniem przed kimkolwiek chcacym je zlamac, a jedynie przed uzytkownikiem ktory przez przypadek by skasowal cos z klucza USB.

Witam

Je¿eli poszukuje Pan gotowago rozwi±znia " klucza USB" to polecam nasz± stronê

formatting link
zak³adka produkty: TeleKlucz TASP i TeleToken AES

Pozdrawiam Jaros³aw Czu³a TeleVox

U¿ytkownik "Marcin Lukasik" snipped-for-privacy@milea.usun.pl> napisa³ w wiadomo¶ci news:29cf6$439d60a0$c1263429$ snipped-for-privacy@ZOO.CO.UK...

No wlasnie to jest jedno z tych, o ktorych myslalem. Tylko najlepiej byloby, jakby po prostu dalo sie jakos dostac do urzadzenia po adresie. Cos w C zalozymy, zeby laczylo sie z urzadzeniem pod jakims adresem... Pytanie, pewnie niebanalne, jak to zrobic... Jestem pewien, ze sie da. Tylko nie wiem jak.

Moze ktos jeszcze ma jakies pomysly?

m.

Jarek Kutylowski napisal:

Mala uwaga - "zwykle" niezbyt tu pasuje. Do tej konkretnej aplikacji skonfigurownanie urzadzenie jako MassStorage moze byc calkiem ok bo host(PC) ma pelna kontrole nad zawartosci "dysku" - jesli jednak mikrokontroler ma samodzielnie modyfikowac dane (np. generowac "plik statusowy" ) to jest to kiepski pomysl. Specyfikacja UsbMassStorage nie przewiduje takiego zachowanie i np. nie daje mozliwosci poinformaowania PC ze dane na dysku ulegly modyfikacji, typowy objaw - PC sciaga dane raz a potem przy kazdej probie dostepu siega do zbuforowanych danych. Mozna to obejsc wylaczjac buforowanie ale jest to na tyle upierdliwe ze lepiej uzyc innego typu urzadznia. Typowy mikrokontroler z USB "fabrycznie" nie przedstawia sie jako cos konkretnego i, z dpowiednim programem na pokladzie, moze udawac cokolwiek.

Jesli dysponujesz wyspecjalizowanym chipem do obslugi USB ktory wystarczy odpowiednio skonfigurowac (np. CY7C68001 - bardzo wygodny - tyle ze uzycie tego do opisywanej aplikacji byloby spora przesada :) i ktory odwala praktycznie cala brudna robote zwiazana z obsluga usb - implementacja MassStorage jest latwa. Sprzet wbudowany w uC jest zwykle dosc prymitywny i wymaga zlozonego kodu (na szczescie producent zwykle udostepnia przyklady) - mimo wszystko powiedzialbym ze uzycie tego jest znacznie trudniejsze (sam nie probowalem - ale pamietam kolege wyklinajacego na jakis kontroler cypresa i firmowe procedury obslugi usb :). Trzecie rozwiazanie - uzyc chipa FTDI - driverow zwykle instalowac nie trzeba, obsluga od strony uC jest banalna, od strony PC tez. Powiedzialbym ze dla poczatkujacego byloby to najprostsze rozwiaznie. GRG

U¿ytkownik "Marcin Lukasik" snipped-for-privacy@milea.usun.pl> napisa³:

A nie wystarczy karta sieciowa na USB i jej adres MAC?

Nie, bo adres MAC nie jest tym, co chce tam przechowywac. Co wiecej, to sieciowka a nie klucz na usb.

m.

Marcin Lukasik snipped-for-privacy@milea.usun.pl> napisał(a):

Może ten link coś Ci podpowie:

formatting link
Albo może oprogramować coś jak przelotkę USB->COM, a dać po drugiej stronie jakiś mikrokontroler (FTDI+AVR ?), z którym możesz się porozumiewać. Jeśli Windowsy XP/200/ME nie potrzebują sterowników z dyskietki, to może będzie działać.

K.

No, prawie cos takiego... ale 59zl netto za sztuke... Gdybym potrzebowal 5 to moze bym bardzo nie plakal, ale potrzebuje "troche" wiecej.

m.

Nie chce zeby nic udawal. Chce, zeby po prostu "byl" w systemie po wlozeniu, i zeby mozna bylo przeczytac z niego ciag znakow. I tyle.

No wiec tak. To musi byc cos malego, jakies attiny albo cos w tym klimacie. Znalazlem to:

formatting link
nie wiem jak bedzie to wygladac pod windowsem. A co jakby emulowal port szeregowy i ja bym sie laczyl z programu pod jakis tam adres i po prostu pobieral dane?

Zrobic cos takiego na jakims LPT czy COMie to nie widze problemu. Ale z USB mam, i to wielki :/

Ale wlasnie tego nie chce. Nie chce, zeby uzytkownik nawet wiedzial, ze to cos robi ;-) Pozatym mass storage wiaze sie dodatkowo z FATem albo jakims innym systemem plikow, co zre pamiec i nie jest mi do niczego potrzebne.

Ja tylko pytam jak to bedzie wygladalo z USB. Bo o ile sama transmisja problemem nie bedzie o tyle nie wiem jak powiedziec windowsowi, zeby dalo sobie spokoj z instalacja driverow. Chcialbym, zeby wygladalo to jak podpiecie czegos na LPT czy COM. Zero pytan, po prostu dziala.

m.

U¿ytkownik "Marcin Lukasik" snipped-for-privacy@milea.usun.pl> napisa³:

Adres MAC ca³kiem dobrze sprawdza siê w roli elementu identyfikuj±cego maszynê.

Dnia 12-12-2005 o 12:35:59 Marcin Lukasik snipped-for-privacy@milea.usun.pl> napisał:

Skoro już wspomniałeś o flashdrive to może mikrokontroler z USB pracujący jako mass storage device? Producenci (Microchip, Atmel) podają przykłady. Program przeszukuje katalogi główne napędów szukając określonego pliku, który świadczyłby, że napęd jest "tym właściwym", komunikuje się z napędem/mikrokontrolerem poprzez zapisywanie i pobieranie 1 lub więcej plików, tak to sobie przynajmniej wyobrażam. BTW, TeleKlucz HASP jest jak widzę tańszy od wcześniej wspomnianych.

U¿ytkownik snipped-for-privacy@WYTNIJ.gazeta.pl> napisa³ w wiadomo¶ci news:dnkr01$mf8$ snipped-for-privacy@inews.gazeta.pl...

Poczytaj notê aplikacyjn±:

AVR309: Software Universal Serial Bus (USB) (25 pages, revision A, updated

07/05) This application note describes the USB implementation in a low-cost microcontroller through emulation of the USB protocol in the firmware. Supports Low Speed USB (1.5 Mbit/s) in accordance with USB2.0.

Jest do niej kod ¼ród³owy, driver itd.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required