Modul pengontrol universal untuk Internet of things. Pengujian FatFs
Pada artikel ini saya akan mendemonstrasikan proyek pengujian perpustakaan FatFs porting ke modul K66BLEZ1. Pustaka sumber terbuka FatFs dikenal oleh pemrogram mikrokontroler dan mengimplementasikan dukungan untuk sistem file FAT32 pada kartu SD dan MMC. Suatu hal yang tak terpisahkan dalam pengembangan penebang, pengontrol logika yang dapat diprogram, perekam suara, pelacak, dll. Tetapi kadang-kadang itu bisa menjadi hambatan dalam sistem waktu-nyata.Memperkenalkan modul K66BLEZ1 dimulai pada artikel ini:Modul Pengendali Universal untuk Internet of Things. Breathing LifeArtikel tersebut menyebutkan paket perangkat lunak (SDK) untuk keluarga mikrokontroler K66.Secara khusus, di SDK Anda dapat menemukan contoh untuk menguji FatFs. Contohnya sangat sederhana dan karena itu saya memodifikasinya untuk kepraktisan yang lebih besar.Organisasi output informasi debugging.
Untuk contoh asli dari SDK agar dapat bekerja di papan K66BLEZ1, Anda tidak perlu melakukan perubahan apa pun terhadapnya. Tapi ada satu hal, tapi! Tidak akan ada output ke terminal debug. Karena papan modul tidak memiliki konektor khusus untuk debug output dengan antarmuka RS232.Modul debugging dirancang untuk pekerjaan yang ketat melalui antarmuka SWD dan menggunakan teknologi Real Time Terminal (RTT) yang dijelaskan dalam artikel ini. Namun, pendekatan ini mungkin tidak menarik bagi pemilik adapter debugging yang tidak kompatibel dengan J-Link. Oleh karena itu, saya tidak memperbaiki kode output debug dalam aplikasi, tetapi mengarahkannya ke UART4. Di sini sekali lagi, untuk menghindari prototipe, saya mengambil keuntungan dari J-Link. Sinyal RX dan TX dari UART built-in <-> Konverter port Virtual COM adalah output ke adaptor ini pada konektor SWD. Saya menggunakan mereka. Dengan demikian, penyetelan pertama muncul di papan modul. Itu ditunjukkan pada diagram di bawah ini dengan warna merah.
(Klik untuk memperbesar)mis. pada papan K66BLEZ1, solder koneksi sinyal merah dari konektor debugging dengan sinyal yang diperlukan berasal dari mikrokontroler.
(Klik untuk memperbesar)Di bawah ini adalah diagram adaptor dari konektor J-Link ke konektor debug papan K66BLEZ1 untuk memahami dari mana sinyal berasal dari adaptor.
(Klik untuk memperbesar)Organisasi proyek.
IAR Embedded Workbench for ARM 7.40.7FatFs
SDK .
, SDK , .
UART
board.h.
sdcard_FatFs.c BOARD_BootClockRUN BOARD_BootClockHSRUN, ..
180 120 MHzProyek ini terletak di sini,proyek kedua didasarkan pada yang pertama, tetapi dengan penambahan yang signifikan.Proyek ini memungkinkan Anda untuk menguji kecepatan membuka, membuat, menulis, membaca, menutup, dan menghapus file.Proyek ada di siniDeskripsi tes
Kami mengkompilasi proyek di IAR dan memprogram melalui adaptor JTAG / SWD ke dalam mikrokontroler MK66FN2M0VLQ18 di papan tulis.Setelah program dimulai, menu jenis berikut ini ditampilkan di terminal:
(Klik untuk memperbesar)Menu menawarkan untuk menjalankan salah satu dari tiga tes dan kemampuan untuk mengubah beberapa parameter tes.Tes nomor 1 secara berurutan menulis jumlah file yang ditentukan dengan ukuran yang ditentukan. Data acak yang diperoleh oleh fungsi rand direkam. Setiap catatan disertai dengan ukuran waktu pembukaan, perekaman dan penutupan file.Kemudian file dibaca berurutan dan isinya diperiksa, waktu pembukaan, membaca dan menutup file juga diukur.Jika bendera Hapus diatur, maka file kemudian dihapus dan waktu yang diperlukan untuk menghapus file diukur.Untuk 3 grup operasi: pembuatan file, baca dan hapus terbalik, statistik dirangkum.Beginilah tampilan jendela untuk pengujian penulisan, membaca, menghapus 5 file ukuran 8192 baht.
(Klik untuk memperbesar)Jumlah file dan ukurannya dapat diubah secara sewenang-wenang. Jika nilainya terlalu besar, program akan menampilkan pesan tentang memori yang tidak mencukupi.Tes nomor 2 membuat, menulis, membaca, menghapus file dengan ukuran tertentu dan mengulangi ini beberapa kali.Nama file berubah setiap saat. Di sini jumlah entri bisa sangat besar. Tes ini memungkinkan Anda untuk menguji kartu untuk menyelesaikan keausan dan pada saat yang sama melihat gambar degradasi kecepatan tulis dan baca.Tes nomor 3membuat file dan menulis padanya nomor yang ditentukan (nilai File Cnt) kali blok dari ukuran yang ditentukan. Kemudian prosedur diulang untuk file lain. Skenario ini memungkinkan Anda untuk menguji mode perekaman kontinu yang khas pada perangkat perekaman audio dengan perubahan volume.Hasil
Pada papan K66BLEZ1, perpustakaan FatFs menunjukkan hasil yang sangat baik.Untuk pengujian, kami menggunakan kartu microSD 8GB GOOD RAM SDU8GDMGR (kelas 10).Kecepatan tulis rata-rata file 32,768 byte adalah 5,1 Mb / s.Kecepatan tulis maksimum file 32768 byte adalah 11,8 Mb / s.Kecepatan baca rata-rata 32768 byte adalah 15,9 Mb / sKecepatan membaca maksimum file 32.768 byte adalah 16,2 Mb / s.Pengukuran dilakukan dengan nomor tes 1 pada 100 file.Telah diamati bahwa banyaknya ukuran file ke ukuran cluster memiliki efek yang kuat pada kecepatan baca dan tulis.Juga, dengan sejumlah besar file, waktu pembukaan file mulai mempengaruhi kecepatan keseluruhan, yang meningkat dua kali lipat ketika jumlah file berubah dari satu menjadi seratus.Nilai praktis dari tes ini adalah mereka memungkinkan Anda menemukan opsi pemformatan kartu yang optimal, ukuran file yang optimal, serta mengoptimalkan ukuran blok dari file yang direkam untuk kinerja maksimum.Tes yang sama akan membantu untuk melihat dan mengevaluasi karakteristik keterlambatan perekaman sporadis untuk kartu SD dan MMC sehubungan dengan pengoperasian mekanisme internal mereka untuk menaikkan level keausan sektor memori.Semua bahan yang terkait dengan proyek ini disimpan di sini - https://github.com/Indemsys/K66BLEZ1Source: https://habr.com/ru/post/id392955/
All Articles