Най-разпространениете файлови системи използвани при флаш паметите са FAT12, FAT16 и FAT32. Тъй като количеството записвана и обработвана информация не е голямо (100байта/10мин) най-подходящата файлова система за използване от 8битов микроконтролер в случея на метео станцията е FAT16. Осигуряваща достатъчно голям максимален капацитет и простота на управление в сравнение с останалите файлови системи Таблица 2.4.
Размер на клъстер (байтове) | FAT 12 | FAT 16 | FAT 32 |
1024 (1K) | 4.1MB | 67MB | 4.398TB |
4096 (4K) | 16.7MB | 268MB | 17.59TB |
8192 (8K) | 33.4MB | 536MB | 35.18TB |
16384 (16K) | 66.8MB | 1.07MB | 70.36TB |
32768 (32K) | 134.2MB | 2.14MB | 140.7TB |
За създаването и боравенето с файловете и файловата система е използвана предложената библиотека на mikroC. CF картата се управлява в 8 битов режим, което отнема 16 входа/изхода от микроконтролера. Използвани са основно 7 функции за управление на файловете. По-долу е показана извадка от кода [Приложение 1] за управление на файловете и файловата система, с поясняващи коментари за всяка една команда.
if (!Cf_Fat_Init()) { // Иниц. FAT библиотеката Delay_ms(2000); // почакай Cf_Fat_QuickFormat("WeatherData"); // бързо форматиране на CF картата Delay_ms(2000); // почакай }
При If условията по-долу - ако е успешно инициалицирана CF картата и ако не е създаден вече файл - то създай нов, иначе добави данните от файловия буфер filebuft във вече съществуващия файл.
if(Cf_Fat_Init() == 0){ // ако CF картата е инициалицилана if (Files_Created==0){ // не е създаден вече файл PORTA = 0x01; // светни индик. светодиод за запис filename[5] = 'T'; // име на файла Data_T.CSV Cf_Fat_Set_File_Date(2010+year,month,day,hours,minutes,seconds);//с-ри дата и час Cf_Fat_Assign(&filename, 0xA0); // намери съществ. файл или създай нов Cf_Fat_Rewrite(); // изчисти файла и запиши на ново Cf_Fat_Write(filebuft, 52); // запиши данните на назначения файл filecnt=0; // нулирай време-брояча за запис във файла Files_Created=1; // опресни маркер, че е създаден файл PORTA = 0x00; // изгаси светодиода за запис } else { // ако вече е създаден файл PORTA = 0x01; // светни индик. светодиод за запис filename[5] = 'T'; // име на файла Data_T.CSV Cf_Fat_Assign(&filename, 0xA0); // намери съществ. файл или създай нов Cf_Fat_Set_File_Date(2010+year,month,day,hours,minutes,seconds);//с-ри дата и час Cf_Fat_Append(); // намери съществ файл и добави към него Cf_Fat_Write(filebuft, 52); // запиши данните на назначения файл filecnt=0; // нулирай време-брояча за запис във файла PORTA = 0x00; // изгаси светодиода за запис }
Избора на формат на файла за съхранение е на базата на универсалността му за по-нататъчно използване и обработка със софтуерни продукти. CSV - Comma Separated Value стандарт файлов формат се използва са съхранение на таблична информация където цифрите и текста се съхраняват в чиста текстова форма и могат да бъдат отваряни от текстов редактор. Линиите в текста показват редовете на таблицата а запетайките в редовете отделят различните полета в колони. Има различни разновидности на *.CSV формата, за да може да поддържа по-богато таблично съдържание, като например използването на друг символ за разделяне (сепаратор) нужен ако в полетата с цифри се съдържат запетаи вместо десетични точки.
В текущата разработка е използван стандарт RFC 1480 за *.CSV формата извадка, от който може да бъде видяна по-долу.
Стандарта за формат на времето е според ISO 8601.
Date,Time,AirTemp,Humidity,WindDir,WindSpeed,SoilTemp,Pressure,SolarIndex,GammaRad 2011-04-23 08:35:00,+10.27,65,1,00,+19.0,1022,1.203,0.08 2011-04-23 08:45:00,+11.29,64,1,00,+19.0,1022,1.185,0.08 2011-04-23 08:55:00,+11.56,66,1,00,+19.0,1022,1.314,0.08 2011-04-23 09:05:00,+12.03,61,1,00,+19.0,1022,1.222,0.08