This shows you the differences between two versions of the page.
pm:prj2021:agrigore:hw_pass_mgr [2021/04/25 16:05] victor.barbu0503 [Hardware Design] |
pm:prj2021:agrigore:hw_pass_mgr [2021/06/02 23:11] (current) victor.barbu0503 [Download] |
||
---|---|---|---|
Line 23: | Line 23: | ||
Pentru debugging pe partea de hardware, voi folosi un logic analyzer. | Pentru debugging pe partea de hardware, voi folosi un logic analyzer. | ||
+ | |||
+ | Urmatoarea este schema electrica: | ||
+ | |||
+ | {{:pm:prj2021:agrigore:hw_pass_mgr_schema.jpeg?800|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
Line 28: | Line 32: | ||
Codul pentru aplicatia de linux va fi scris intr-un limbaj high-level, de genul Python, pentru ca operatia lui nu este dificila (implica doar calluri de ''read'' si ''write'' pe serial device). | Codul pentru aplicatia de linux va fi scris intr-un limbaj high-level, de genul Python, pentru ca operatia lui nu este dificila (implica doar calluri de ''read'' si ''write'' pe serial device). | ||
+ | |||
+ | Partea software contine urmatoarele module: | ||
+ | - SPI (''spi.h'') faciliteaza transferul de date prin SPI catre memoria flash. | ||
+ | - Flash (''flash.h'') abstractizeaza accesul la memoria flash folosindu-se de modulul SPI si de instructiunile suportate de memorie. | ||
+ | - MemHdr (''mem_hdr.h'') abstractizeaza structura de date prin care se stocheaza indexul de parole in memoria flash intr-o maniera care salveaza spatiu de stocare. | ||
+ | - IoUtil (''io_util.h'') si LCD (''lcd.h'') ajuta la folosirea LCD-ului HD44780 intr-o maniera transparenta, folosind ''printf''. | ||
+ | - DB (''db.h'') este inca un layer de abstractizare peste SPI, Flash si MemHdr si expune functionalitati high-level de initializare, adaugare, stergere si citire din indexul de parole. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | Functionalitatea de comunicare prin USB cu un computer si cea de criptare a datelor vor fi adaugate intr-o versiune ulterioara. In acest moment, partea hardware este pregatita pentru a scrie, citi, sterge si lista parole din memoria flash. | ||
+ | |||
+ | Device-ul suporta chiar si hot-swap al memoriei flash. Cand aceasta se schimba, ea va fi initializata fara ca macar sa fie nevoie de restartarea microcontrollerului. | ||
+ | |||
+ | Pentru a prezenta un demo al produsului, microcontrollerul a fost programat sa scrie doua parole, iar, in alta iteratie, sa le citeasca din memorie si sa le afiseze pe display. | ||
+ | |||
+ | Mai jos se poate vedea ruland iteratia in care parolele sunt citite cu succes din memorie. Este au labelurile "foo" respectiv "bar", iar parola insasi apare dupa ":". | ||
+ | |||
+ | {{ :pm:prj2021:agrigore:hw_pass_mgr_demo.jpg?300 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Device-ul isi poate atinge toate functionalitatile prezentate in introducerea acestui document. Implementarea a durat mai mult decat era anticipat, deci criptarea si comunicarea prin USB cu USART vor veni intr-o versiune ulterioara a proiectului. | ||
+ | |||
+ | Ca directii viitoare, imi doresc sa comand componente SOIC si sa pun dispozitivul pe un PCB si intr-o carcasa astfel incat el sa poata fi folosit cu adevarat. Cu mici imbunatatiri generale atat la nivel hardware cat si software, acest lucru este posibil. | ||
+ | |||
+ | Consider ca proiectul a fost util pentru ca a dat start a ceva ce chiar poate deveni un device util. | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | * Cod sursa: {{:pm:prj2021:agrigore:hw_pass_mgr.zip|}} | ||
+ | * PDF: https://ocw.cs.pub.ro/courses/pm/prj2021/agrigore/hw_pass_mgr?do=export_pdf | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | |||
+ | * 20 aprilie - am ales tema proiectului | ||
+ | * 26 aprilie - creat pagina de wiki | ||
+ | * 10 mai - 1 iunie - lucru la montaj si software | ||
+ | * 2 iunie - finalizarea acestui wiki | ||
+ | |||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | Pdf: link-pdf | + | |
+ | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega164A_PA-324A_PA-644A_PA-1284_P_Data-Sheet-40002070B.pdf|Datasheet ATmega1284P]] | ||
+ | * [[http://ww1.microchip.com/downloads/en/DeviceDoc/20005045C.pdf|Datasheet SST25VF080B]] | ||
+ | * [[https://www.sparkfun.com/datasheets/LCD/HD44780.pdf|Datasheet HD44780]] |