Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Memahami Pipa Grafis Heterogen MCU i.MX RT1170

Dalam artikel ini, pelajari tentang pipeline grafis heterogen dari i.MX RT1170 MCU dan tiga mesin akselerasi grafis utamanya.

Perangkat tertanam konsumen dan kelas profesional modern menjadi semakin mampu menawarkan berbagai fitur berguna yang terus bertambah. Namun, kekayaan fitur ini membuat para desainer mempertanyakan bagaimana membuat semua fungsi dapat diakses oleh pengguna tanpa membebani mereka dengan antarmuka yang rumit.

GUI seperti ponsel cerdas dapat menjadi alternatif yang efektif untuk tombol fisik tradisional, karena menawarkan beberapa peningkatan dibandingkan kontrol fisik klasik. NXP membuat pengembangan antarmuka pengguna yang kaya fitur dan grafis lebih mudah diakses dengan berbagai pengontrol tampilan terintegrasi dan akselerator grafis seperti yang disertakan dalam MCU crossover i.MX RT1170.

Gambar 1. i.MX RT1170 MCU

Tiga Mesin Tampilan dari i.MX RT1170 MCU

Sementara sebagian besar mikrokontroler NXP dapat mendukung periferal GUI yang diperlukan, beberapa perangkat (seperti i.MX RT1170 MCU) dilengkapi dengan antarmuka tampilan bawaan dan akselerator grafis yang dirancang untuk mendukung aplikasi GUI yang kaya. Lebih konkretnya, i.MX1170 menyertakan GPU grafis vektor 2D, akselerator grafis PxP, dan dukungan LCDIFV2.

GPU 2D khusus dengan akselerasi grafik vektor membantu mengoptimalkan konsumsi daya dan kinerja perangkat yang disematkan dengan mendukung CPU dalam merender grafik vektor yang dapat diskalakan serta menyusun dan memanipulasi bitmap. GPU 2D juga dapat mengubah gambar (skala, rotasi dengan sudut sembarang, pantulan, geser) dan mengubah warna dengan cepat.

Pixel Processing Pipeline (PxP) menggabungkan berbagai operasi transformasi gambar seperti penskalaan, rotasi, dan konversi ruang warna menjadi satu mesin pemrosesan yang efisien.

Dukungan LCDIFV2 memungkinkan desainer tertanam untuk membuat dan bekerja dengan hingga delapan lapisan tampilan, menawarkan kemampuan pencampuran langsung.

GPU Grafik Vektor 2D

Dibandingkan dengan grafik piksel, grafik vektor tidak bergantung pada piksel individu untuk membentuk gambar yang lengkap. Model grafik vektor menggunakan perintah (seperti memindahkan, garis ke, kurva ke) dan koordinat untuk menggambarkan bentuk yang kemudian akan rasterisasi ke gambar akhir.

Setiap piksel dalam grafik piksel, seperti foto yang disimpan sebagai file JPEG, memiliki ukuran konstan, yang biasanya berarti bahwa mengubah grafik piksel selalu menghasilkan penurunan kualitas. Grafik vektor, di sisi lain, lebih fleksibel dalam hal transformasi. Sangat mudah untuk mengubah titik-titik bentuk primitif, misalnya, dan kemudian menggambar ulang gambar tanpa kehilangan kualitas, karena gambar vektor beroperasi secara independen dari resolusi gambar akhir.

Oleh karena itu, menggunakan grafik piksel masuk akal saat mengambil gambar dengan banyak detail, seperti foto. Sebaliknya, grafik vektor paling baik digunakan saat bekerja dengan bentuk sederhana, seperti kaligrafi, logo perusahaan, dan antarmuka pengguna grafis.

Rendering gambar vektor biasanya memerlukan target rendering, data jalur, informasi isi, data transformasi, informasi warna, dan aturan campuran. Target rendering adalah buffer yang menyimpan gambar yang dirender setelah selesai. Data jalur adalah bagian paling penting dari gambar vektor, karena berisi koordinat dan segmen jalur yang menggambarkan geometri elemen yang ada dalam gambar vektor. Ini terdiri dari pasangan kode operasi dan argumen yang menyertai setiap operasi, masing-masing:

Gambar 2. Rendering gambar vektor biasanya memerlukan target rendering, data jalur, informasi isi, data transformasi, informasi warna, dan aturan campuran.

Aturan isian menjelaskan aturan apa yang harus diterapkan saat menentukan bagian mana dari bentuk tertutup yang harus diisi dengan warna solid. Properti ini dapat mengambil salah satu dari dua nilai yang mungkin:bukan nol dan genap-ganjil. Dengan memilih aturan bukan nol, algoritme isian memancarkan sinar dari titik yang bersangkutan hingga tak terhingga di setiap arah. Kemudian menghitung seberapa sering sinar itu melewati garis lain dalam grafik vektor. Jika sinar mengenai garis dari kiri ke kanan, ia menambahkan satu ke jumlah akhir. Jika garis bergerak dari kanan ke kiri, algoritma mengurangi satu. Jika angka terakhir adalah nol, titik terletak di luar.

Sebaliknya, algoritma genap-ganjil menghitung setiap pukulan garis tanpa memperhatikan arah garis. Jika jumlah yang dihasilkan genap, titik yang dimaksud berada di luar bentuk. Jika tidak, itu ada di dalam.

Selanjutnya adalah transformasi, yang dilakukan dengan memanipulasi matriks untuk merepresentasikan berbagai operasi seperti translasi, rotasi, dan penskalaan. Transformasi affine adalah fitur canggih dari GPU vektor 2D bawaan MCU i.MX RT1170.

Saat menggambar bentuk yang dihasilkan, pemrogram dapat menetapkan informasi warna ke setiap jalur:

Gambar 3. Transformasi dilakukan dengan memanipulasi matriks untuk mewakili berbagai operasi. Saat menggambar bentuk, pemrogram dapat menetapkan informasi warna ke setiap jalur.

Aturan pencampuran, yang menyatakan cara memadukan jalur ke konten buffer yang diperluas, adalah informasi terakhir yang membentuk gambar vektor akhir. Nilai alfa dari parameter warna jalur dan fungsi campuran menentukan efek yang akan dimiliki alfa pada jalur vektor itu sendiri dan buffer tujuan.

VGLite API — salah satu opsi untuk mengakses mesin vektor 2D i-MX RT1170 — mengimplementasikan berbagai aturan campuran yang dibahas lebih rinci dalam catatan aplikasi NXP AN13075. Terlepas dari pipa vektor, API VGLite juga menyediakan pipa untuk gambar raster. Selengkapnya tentang bagian API tersebut dapat ditemukan di catatan aplikasi AN13075.

Akselerator PxP 2D

Pixel Processing Pipeline (PxP) adalah akselerator 2D yang kuat yang dapat memproses buffer grafis atau video komposit sebelum mengirimkannya ke layar. Ini mengintegrasikan beberapa operasi pemrosesan grafis 2D yang umum digunakan seperti blitting, alpha blending, konversi ruang warna, rotasi sudut tetap, dan penskalaan.

Salah satu kemungkinan kasus penggunaan mesin ini adalah memadukan dua buffer untuk membentuk gambar keluaran tunggal yang dikirim ke LCD. Misalnya, salah satu buffer dapat berisi gambar latar belakang, sedangkan buffer lainnya menampung elemen UI seperti label teks atau tombol. Lapisan dapat memiliki ukuran yang berbeda, dan mesin PxP juga memungkinkan penskalaan yang cepat dan mudah. Catatan aplikasi AN12110 membahas contoh aplikasi yang lebih mendalam di mana PxP menskalakan buffer internal agar sesuai dengan layar LCD proyek itu.

Mengalihdayakan operasi 2D umum ke pengontrol perangkat keras khusus, seperti PxP, menawarkan berbagai manfaat dibandingkan dengan mengimplementasikan fungsi pada CPU utama mikrokontroler tertanam. Pengembang perangkat lunak tidak perlu menemukan kembali roda, karena fungsi yang paling umum sudah tersedia. CPU utama juga tidak harus berurusan dengan manipulasi 2D yang rumit beberapa kali dalam satu detik, yang berarti CPU dapat fokus pada perhitungan lain sebagai gantinya, yang menghasilkan pengalaman pengguna yang lebih lancar dan berpotensi meningkatkan efisiensi energi.

Pengontrol Tampilan LCDIFV2

Versi kedua dari antarmuka tampilan kristal cair (LCDIF) juga membantu CPU utama dengan mengambil data tampilan yang dibuat sebelumnya dari buffer bingkai dan menampilkannya pada panel LCD TFT. Frame buffer adalah ruang dalam memori dimana data gambar yang akan ditampilkan disimpan. Dimungkinkan untuk menggunakan dua buffer secara bergantian. Melakukannya memungkinkan salah satu buffer untuk diperbarui sementara pengontrol menggambar yang lain. Selain LCDIFv2, MCU i.MX RT1170 menggabungkan pengontrol tampilan eLCDIF tambahan.

Kontroler LCDIFv2 dalam i.MX mendukung hingga delapan lapisan bagi pemrogram untuk berbaur dan dikonfigurasi saat runtime. Semua ini terjadi tanpa keterlibatan modul akselerator lainnya. Setiap lapisan dapat menggunakan format warna yang berbeda, ukuran kanvas, posisi, dan mengambil konten dari buffer di lokasi memori mana pun.

Kontroler LCDIFv2 juga mendukung format Index8BPP, yang memungkinkan pemrogram untuk menentukan gambar 32-bit-per-piksel menggunakan tabel pencarian warna dan larik indeks yang menyertainya. Metode ini memungkinkan untuk mendefinisikan ARGB8888 tanpa harus mengorbankan memori ekstra. Catatan aplikasi AN13075 dan SDK resmi memberikan contoh bagaimana melakukannya.

MCU Crossover i.MX RT1170 dan Perangkat yang Didukungnya

Pipa grafis heterogen i.MX RT1170 terdiri dari tiga mesin, masing-masing dengan manfaatnya sendiri yang membantu menyederhanakan sebuah proyek dan, bila digunakan secara bersamaan, meningkatkan kinerjanya sekaligus menghemat memori. Beberapa perangkat NXP telah mendukung beberapa mesin yang dibahas dalam artikel ini:i.MX RT1170 mendukung ketiga akselerator grafis. Perangkat i.MX RT1050 dan i.MX RT106x berbasis Cortex-M7 mendukung PxP dan pengontrol LCD. i.MX RT500 didasarkan pada inti Cortex-M33 dan menggabungkan GPU 2D.

Selain perangkat keras, NXP memungkinkan pembuatan perangkat berfitur lengkap yang kecil dan cepat dengan mendukung berbagai API dan alat yang berguna untuk mengembangkan GUI untuk perangkat yang disematkan. Situs web NXP memberikan ikhtisar tentang berbagai API dan alat yang didukung dan semua perangkat yang didukung. Ini juga menawarkan materi pelatihan yang berbeda seperti catatan aplikasi, video, contoh SDK, dan webinar sesuai permintaan.

Artikel Industri adalah bentuk konten yang memungkinkan mitra industri untuk berbagi berita, pesan, dan teknologi yang bermanfaat dengan pembaca All About Circuits dengan cara yang tidak sesuai dengan konten editorial. Semua Artikel Industri tunduk pada pedoman editorial yang ketat dengan tujuan menawarkan kepada pembaca berita, keahlian teknis, atau cerita yang bermanfaat. Sudut pandang dan pendapat yang diungkapkan dalam Artikel Industri adalah milik mitra dan belum tentu milik All About Circuits atau penulisnya.


Tertanam

  1. Memahami Proses Pembuatan Poros
  2. Memahami Pentingnya Budaya Cloud
  3. Memahami manfaat pemeliharaan prediktif
  4. Mengamankan vektor ancaman IoT
  5. Memahami Dasar-dasar Mesin Penggilingan
  6. Pembelajaran Mesin di Lapangan
  7. Tips Teknologi Proto:Perbedaan Antara File Grafik Vektor dan Raster
  8. Memahami kerja shock absorber
  9. Memahami istilah kopling
  10. Memahami fleksibilitas suatu material