= HF8V = / = SP8WJT = / = SP0106RZ =


THFS




Project Info

System plików THFS to opracowany od podstaw przeze mnie system który jest właściwie czymś pomiędzy systemem rekordów a systemem plików. Jest tak dlatego że nazwa pliku jest jedynie opcjowalna w tym systemie a wywołanie plików wykonuje się podając liczbę hexadecymalną. Jest to więc system idealny dla małych 8-bitowych systemów cyfrowych opartych na małych mikroprocesorach, posiadajacych niewielką ilość RAM. Na większych systemach można natomiast zaimplementować funkcje wyszukiwania pliku po nazwie co już nie jest częścią specyfikacji THFS.

Początkowo opracowana została jedynie wersja THFS8 i ona jest najczęściej używana w praktyce, choć opracowania teoretyczne specyfikują wersje od THFS5 do THFS20... Przydatność niektórych z tych wersji jest dyskusyjna, niemniej są one zdefiniowane programistycznie i mogą być użyte jeśli tylko zajdzie taka potrzeba.


Wersje specyfikacji THFS

WERSJAROZMIAR SEGMENTUMIN. PAMIĘĆ (*)MAX. PAMIĘĆ (**)SEG. SYSTEMOWEMAX. SEG. UŻYTKOWNIKAUWAGI
THFS532644K1127może być zainstalowana nawet na EEPROM 24C02
THFS66412816K1255może być zainstalowana nawet na EEPROM 24C02
THFS712825664K1511może być zainstalowana nawet na EEPROM 24C02
THFS8256512256K11023najpopularniejsza wersja używana na wielu systemach 8-bitowych
THFS8.22564K512K82040specjalna wersja dla większych pamięci
THFS95121K1M12047
THFS9.25122K2M24094
THFS101K8K16M416380dla systemów 32-bitowych jak np. STM32
THFS112K32K128M865528
THFS124K128K1G16262128dla pamieci które mają sektory kasowania 4K
THFS138K512K8G321048544
THFS1416K2M32G642097088
THFS1532K8M512G12816777088
THFS1664K32M4T25667108608
THFS17128K128M32T512268434944
THFS18256K512M256T10241073740800
THFS19512K2G2P20484294965248
THFS201M8G16P409617179865088


(*) - określa minimalny rozmiar pamięci na której może być zainstalowana dana wersja THFS. W najgorszym przypadku mamy jednak 1 plik systemowy i 1 plik użytkownika, co jest mało praktycznie użyteczne.

(**) - określa maksymalny rozmiar pamięci na której może być zainstalowana dana wersja THFS. Obliczane według zasady że połowa przestrzeni systemowej zajmuje FAT. Faktycznie pojemność może być trochę większa.

File Types

Typ pliku jest odpowiednikiem rozszerzenia pliku w DOS. Jest to pierwszy bajt pliku. Obecnie zdefiniowałem i w większości używam ponad 20 typów plików.


File Type
TYPEDESCRIPTION
0x00reserved
0x20Text file
0x42Crypto array
0x48Help file
0x7CPack file
0x80Multisegment file
0x88HAVR6 program
0x99reserved for HAVR7 program
0xA1CW file
0xA8reserved for AVR loadable code
0xAAHAVR8 program
0xACSpectrum Analyser data
0xADVoltage measurrment file
0xB0Autoexec file (system boot)
0xB1Transfer manager
0xBAMusic player file
0xBBHAVR Boot segment
0xBFBatch File
0xC2I2C load file
0xCCHAVR16 program
0xCFChecksum file
0xDADigital Analyser data file
0xDFData file
0xECHAVR Extra Code segment
0xEDHAVR Extra Data segment
0xF0Frequency Manager data file
0xFFFree segment


Media Descriptor

Ważną częścią specyfikacji THFS jest Media Descriptor. Jest to 16-bitowy znacznik który pozwala systemowi cyfrowemu na jednoznaczną identyfikację typu pamięci i wywołanie odpowiedniego sterownika dla danego układu scalonego (protokołu, magistrali). Jak do tej pory zdefiniowane zostało kilkadziesiąt typów pamięci różnego typu (równoległe, szeregowe, z magistralą I2C i SPI). Stale dodawane są nowe, nawet jeśli nie są faktycznie wykorzystywane w istniejących konstrukcjach. Są to definicje przyszłościowe.

Media Descriptor Code
MEDIA DESCRIPTORTHFSMEMORY TYPE
0x2432THFS8EEPROM 24C32
0x2464THFS8EEPROM 24C64
0x2490THFS8EEPROM 24C256
0x2504THFS8.2EEPROM 25CSM04
0x2580THFS8FLASH 25Q64
0x2581THFS9FLASH 25Q64
0x2582THFS10FLASH 25Q64
0x2583THFS11FLASH 25Q64
0x2584THFS12FLASH 25Q64
0x2585THFS13FLASH 25Q64
0x2586THFS14FLASH 25Q64
0x2587THFS15FLASH 25Q64
0x2588THFS16FLASH 25Q64
0x2589THFS17FLASH 25Q64
0x258ATHFS18FLASH 25Q64
0x258BTHFS19FLASH 25Q64
0x258CTHFS20FLASH 25Q64
0x258Dreserved for FLASH 25Q64
0x258Ereserved for FLASH 25Q64
0x258Freserved for FLASH 25Q64
0x2590THFS8FLASH 25Q128
0x2591THFS9FLASH 25Q128
0x2592THFS10FLASH 25Q128
0x2593THFS11FLASH 25Q128
0x2594THFS12FLASH 25Q128
0x2595THFS13FLASH 25Q128
0x2596THFS14FLASH 25Q128
0x2597THFS15FLASH 25Q128
0x2598THFS16FLASH 25Q128
0x2599THFS17FLASH 25Q128
0x259ATHFS18FLASH 25Q128
0x259BTHFS19FLASH 25Q128
0x259CTHFS20FLASH 25Q128
0x259Dreserved for FLASH 25Q128
0x259Ereserved for FLASH 25Q128
0x259Freserved for FLASH 25Q128
0x3440THFS8FLASH S34ML01G200
0x3441THFS9FLASH S34ML01G200
0x3442THFS10FLASH S34ML01G200
0x3443THFS11FLASH S34ML01G200
0x3444THFS12FLASH S34ML01G200
0x3445THFS13FLASH S34ML01G200
0x3446THFS14FLASH S34ML01G200
0x3447THFS15FLASH S34ML01G200
0x3448THFS16FLASH S34ML01G200
0x3449THFS17FLASH S34ML01G200
0x344ATHFS18FLASH S34ML01G200
0x344BTHFS19FLASH S34ML01G200
0x344CTHFS20FLASH S34ML01G200
0x344Dreserved for FLASH S34ML01G200
0x344Ereserved for FLASH S34ML01G200
0x344Freserved for FLASH S34ML01G200
0x6340THFS8NVRAM U634H256
0xFAttallInternal RAM memory, where tt is UC type
0xFCttallInternal code memory, where tt is UC type
0xFEttallInternal EEPROM, where tt is UC type


Multi File

Multi File jest typem pliku który zawiera więcej niż jeden segment. Sens stosowania tego rodzaju pliku jest tylko na pamięciach o małych rozmiarach segmentu, przy dużej ilości segmentów i jeśli potrzebujemy pliku o większym rozmiarze niż segment. Kod pliku 0x80 określa nagłówek który łączy odpowiednie segmenty na danej pamięci (drajwie). System docelowy musi mieć odpowiednio duży zapas RAM aby załadować taki multiplik.

Interface Fizyczny

Fizyczne interfejsy pamięci mobilnych (odłączalnych) zostały zdefiniowane jak Normy (HF-10xxx), obecnie są stosowane 4 różne:

Standard interfejsu pamięci HF-10031 - równoległy standard pamięci
Standard interfejsu pamięci HF-10032 - szeregowy standard pamięci I2C
Standard interfejsu pamięci HF-10064 - równoległy standard pamięci
Standard interfejsu pamięci HF-10082 - szeregowy standard pamięci SPI

Brak interfejsu na płycie nie oznacza oczywiście że nie można używać danego typu pamieci - po prostu wtedy należy dołączyć taką pamieć zewnętrznie, kabelkami Dupont lub na zewnętrznym module - jest to znacznie gorsze i tymczasowe rozwiązanie.




Lista modułów pamięci i systemów cyfrowych z zainstalowanym systemem THFS:

  • HF-1469#1 (THFS8, 24C32, max 15 plików użytkownika)
  • HF-1469#2 (THFS8, 24C32, max 15 plików użytkownika)
  • HF-1471 (THFS8, 24C256, max 127 plików użytkownika)
  • HF-1534 (THFS8, 24C128, max 63 plików użytkownika, skasowany)
  • HF-1539 (THFS8, 24C64, max 31 plików użytkownika)
  • HF-6050 (THFS8.2, 25CSM04, max 2040 plików użytkownika)
  • HF-6421 (THFS8.2, 25CSM04, max 2040 plików użytkownika)
  • HF-64101 (THFS12, S34ML01G200, max 32752 plików użytkownika)
  • HF-64107 (THFS8, U634H256, max 127 plików użytkownika)
  • HF-64110#1 (THFS10, W25Q128, max 16380 plików użytkownika)
  • HF-64110#2 (THFS10, W25Q128, max 16380 plików użytkownika)
  • HF-64111 (THFS8.2, 25CSM04, max 2040 plików użytkownika)


  • Planowane jest szerokie użycie THFS jako standardowego systemu plików w wielu przyszłościowych systemach.



    Sources:
    [1] - Standard interfejsu pamięci HF-10031
    [2] - Standard interfejsu pamięci HF-10032
    [3] - Standard interfejsu pamięci HF-10064
    [4] - Standard interfejsu pamięci HF-10082


    HF Register

    Microcontrollers in my constructions

    Electronics

    Main Page