- Teknik Penjimatan Kuasa untuk Pengawal Mikro
- 1. Cara Tidur
- 2. Pengubahsuaian Dinamik Kekerapan Pemproses
- 3. Struktur Firmware Pengendali Interrupt
- 4. Firmware Dioptimumkan Kuasa
- Kesimpulannya
Sama seperti gas (petrol / diesel) yang penting untuk basikal, trak dan kereta (ya, tidak termasuk Teslas!) Untuk bergerak, begitu juga kuasa elektrik untuk kebanyakan aplikasi elektronik dan lebih-lebih lagi, untuk aplikasi berasaskan sistem tertanam yang biasanya bateri (tenaga terhad) berkuasa, dari telefon bimbit biasa hingga peranti rumah pintar antara lain.
Sifat kuasa bateri yang terhad menunjukkan perlunya memastikan kadar penggunaan kuasa peranti ini wajar untuk mendorong penggunaan dan penggunaannya. Terutama dengan peranti berasaskan IoT di mana peranti boleh dijangka bertahan selama 8 - 10 tahun dengan sekali caj tanpa penggantian bateri.
Kecenderungan ini telah menjadikan pelaksanaan pertimbangan daya rendah dalam reka bentuk sistem tertanam dan selama bertahun-tahun, para pereka, jurutera dan pengeluar pada beberapa titik telah mengembangkan beberapa cara pintar untuk menguruskan kuasa yang digunakan oleh produk dengan berkesan, untuk memastikan ia bertahan lebih lama caj tunggal. Sebilangan besar teknik ini tertumpu pada mikrokontroler, yang merupakan nadi bagi kebanyakan peranti. Dalam artikel hari ini, kita akan meneroka beberapa teknik ini dan bagaimana ia dapat digunakan untuk meminimumkan penggunaan kuasa pada mikrokontroler. Walaupun Mikroprosesor menggunakan tenaga yang lebih sedikit tetapi dapat digunakan di Mikrokontroler di mana-mana, ikuti pautan untuk mengetahui bagaimana Mikroprosesor berbeza dari Mikrokontroler.
Teknik Penjimatan Kuasa untuk Pengawal Mikro
1. Cara Tidur
Mod tidur (umumnya disebut sebagai mod daya rendah) boleh dikatakan teknik paling popular untuk mengurangkan penggunaan kuasa pada mikrokontroler. Mereka secara amnya melibatkan penonaktifan litar atau jam tertentu yang mendorong periferal tertentu dari mikrokontroler.
Bergantung pada seni bina dan pengeluarnya, mikrokontroler biasanya memiliki jenis mod tidur yang berbeza, dengan setiap mod memiliki kemampuan untuk menonaktifkan litar dalaman atau periferal yang lain daripada yang lain. Mod tidur biasanya berkisar dari tidur nyenyak atau mati, hingga mod tidur dan tidur.
Beberapa mod yang ada dijelaskan di bawah. Harus diingat bahawa ciri-ciri serta nama mod ini mungkin berbeza dari pengeluar ke pengeluar.
i. Mod Idle / Tidur
Ini biasanya adalah mod kuasa rendah yang paling sederhana untuk dilaksanakan oleh pereka. Mod ini membolehkan pengawal mikro kembali beroperasi sepenuhnya pada kadar yang sangat pantas. Oleh itu, ini bukan mod terbaik, jika kitaran kuasa peranti, memerlukannya untuk meninggalkan mod tidur sangat kerap, kerana sejumlah besar daya ditarik, ketika mikrokontroler keluar dari mod tidur. Kembali ke mod aktif dari mod siap sedia biasanya berdasarkan gangguan. Mod ini dilaksanakan pada mikrokontroler dengan mematikan pohon jam yang menggerakkan litar CPU sementara jam frekuensi tinggi MCU tetap berjalan. Dengan ini, CPU dapat meneruskan operasi dengan segera pemicu bangun diaktifkan. Jam pagar telah digunakan secara meluas untuk memotong isyarat dalam mod kuasa rendah untuk mikrokontroler dan mod ini secara efektif mengaktifkan isyarat jam di seluruh CPU.
ii. Mod bersedia
Mod Sedia adalah mod kuasa rendah yang lain, mudah dilaksanakan oleh pereka. Ini sangat mirip dengan mode idle / sleep kerana ia juga melibatkan penggunaan jam pagar di seluruh CPU, tetapi satu perbezaan utama adalah memungkinkan perubahan kandungan ram yang biasanya tidak berlaku dengan mode idle / sleep. Dalam mod Sedia, periferal berkelajuan tinggi seperti DMA (akses memori langsung), Pelabuhan Serial, periferal ADC dan AES terus berjalan untuk memastikannya tersedia sebaik sahaja CPU terjaga. Untuk MCU tertentu, RAM juga tetap aktif dan dapat diakses oleh DMA yang memungkinkan data disimpan dan diterima tanpa campur tangan CPU. Kuasa yang ditarik dalam mod ini boleh serendah 50uA / MHZ untuk mikrokontroler berkuasa rendah.
iii. Mod Tidur Dalam
Mod tidur nyenyak, biasanya melibatkan penonaktifan jam frekuensi tinggi dan litar lain di dalam mikrokontroler yang hanya meninggalkan litar jam yang digunakan untuk menggerakkan elemen kritikal seperti pemasa pengawas, pengesanan brown out dan daya pada litar ulang. MCU lain mungkin menambah elemen lain untuk meningkatkan kecekapan keseluruhan. Penggunaan kuasa dalam mod ini boleh serendah 1uA bergantung pada MCU tertentu.
iv. Mod Berhenti / MATI
Pengawal mikro tertentu mempunyai variasi berbeza dari mod tambahan ini. Dalam mod ini, kedua-dua pengayun tinggi dan rendah biasanya dilumpuhkan dengan hanya membiarkan beberapa daftar konfigurasi dan elemen kritikal lain dihidupkan.
Ciri-ciri semua mod tidur yang disebutkan di atas berbeza dari MCU ke MCU tetapi peraturan umum adalah; semakin dalam tidur, semakin banyak bilangan periferal yang dilumpuhkan semasa tidur, dan semakin rendah jumlah daya yang habis, walaupun, ini biasanya juga bermaksud; semakin tinggi jumlah tenaga yang digunakan untuk mengembalikan sistem. Oleh itu, perancang harus mempertimbangkan variasi ini dan memilih MCU yang tepat untuk tugas tersebut tanpa membuat kompromi yang mempengaruhi spesifikasi sistem.
2. Pengubahsuaian Dinamik Kekerapan Pemproses
Ini adalah teknik lain yang sangat popular untuk mengurangkan jumlah kuasa yang digunakan oleh mikrokontroler dengan cekap. Ini adalah teknik yang paling lama dan agak rumit daripada cara tidur. Ini melibatkan firmware secara dinamis menggerakkan jam pemproses, bergantian antara frekuensi tinggi dan rendah kerana hubungan antara frekuensi pemproses dan jumlah daya yang digunakan adalah linear (seperti ditunjukkan di bawah)
Pelaksanaan teknik ini biasanya mengikut corak ini; ketika sistem dalam keadaan tidak aktif, firmware menetapkan frekuensi jam ke kelajuan rendah yang membolehkan peranti menjimatkan sedikit tenaga dan apabila sistem perlu melakukan pengiraan yang berat, kelajuan jam dibawa kembali.
Terdapat senario kontraproduktif untuk mengubah frekuensi pemproses yang biasanya disebabkan oleh firmware yang dibangunkan dengan teruk. Senario sedemikian timbul apabila frekuensi jam tetap rendah ketika sistem melakukan pengiraan yang berat. Frekuensi rendah dalam senario ini bermaksud sistem akan memerlukan lebih banyak masa daripada yang diperlukan untuk melakukan tugas yang ditetapkan dan dengan demikian akan menggunakan jumlah tenaga yang sama yang cuba dijimatkan oleh para pereka. Oleh itu, perhatian tambahan mesti diambil semasa melaksanakan teknik ini dalam aplikasi kritikal masa.
3. Struktur Firmware Pengendali Interrupt
Ini adalah salah satu teknik pengurusan kuasa yang paling ekstrem dalam pengawal mikro. Ini dimungkinkan oleh beberapa mikrokontroler seperti, core ARM cortex-M yang mempunyai bit sleep-on-exit di daftar SCR. Bit ini memberikan kemampuan mikrokontroler untuk tidur setelah menjalankan rutin gangguan. Walaupun ada batasan untuk jumlah aplikasi yang dapat berjalan dengan lancar dengan cara ini, ini bisa menjadi teknik yang sangat berguna untuk sensor lapangan dan aplikasi berbasis pengumpulan data jangka panjang lainnya.
Sebilangan besar teknik lain pada pendapat saya adalah variasi dari teknik yang telah disebutkan di atas. Contohnya teknik jam periferal selektif pada dasarnya adalah variasi dari mod tidur di mana pereka memilih periferal untuk menghidupkan atau mematikan. Teknik ini memerlukan pengetahuan mendalam mengenai mikrokontroler sasaran dan mungkin tidak mesra pemula.
4. Firmware Dioptimumkan Kuasa
Salah satu kaedah terbaik untuk mengurangkan jumlah kuasa yang digunakan oleh mikrokontroler adalah dengan menulis firmware yang cekap dan dioptimumkan dengan baik. Ini secara langsung mempengaruhi jumlah kerja yang dilakukan oleh CPU setiap masa dan ini, secara lanjutan menyumbang kepada jumlah daya yang digunakan oleh mikrokontroler. Usaha harus dilakukan semasa menulis firmware untuk memastikan pengurangan ukuran kod dan kitaran kerana setiap arahan yang tidak perlu dilaksanakan, adalah sebahagian daripada tenaga yang tersimpan dalam bateri yang terbuang. Berikut adalah beberapa petua berdasarkan C yang biasa untuk pengembangan firmware yang dioptimumkan;
- Gunakan "Static Const" Class sebanyak mungkin untuk mengelakkan runtime menyalin array, struktur dan lain-lain yang menghabiskan tenaga.
- Gunakan Penunjuk. Mereka mungkin merupakan bahagian paling sukar dalam bahasa C untuk difahami untuk pemula tetapi mereka adalah yang terbaik untuk mengakses struktur dan kesatuan dengan cekap.
- Elakkan Modulo!
- Pemboleh ubah tempatan berbanding pemboleh ubah global jika boleh. Pemboleh ubah tempatan terkandung dalam CPU sementara pemboleh ubah global disimpan dalam RAM, CPU mengakses pemboleh ubah tempatan lebih cepat.
- Jenis data yang tidak ditandatangani adalah rakan baik anda di mana mungkin.
- Mengamalkan "hitung mundur" untuk gelung jika boleh.
- Daripada medan bit untuk bilangan bulat yang tidak ditandatangani, gunakan topeng bit.
Pendekatan untuk mengurangkan jumlah kuasa yang digunakan oleh mikrokontroler tidak terhad kepada pendekatan berasaskan perisian yang disebutkan di atas, pendekatan berasaskan perkakasan seperti teknik kawalan voltan teras, ada, tetapi untuk memastikan panjang jawatan ini dalam jarak yang munasabah, kami akan menjimatkan mereka untuk hari yang lain.
Kesimpulannya
Mengimplementasikan produk berkuasa rendah bermula dari pilihan mikrokontroler dan boleh membingungkan apabila anda mencuba pelbagai pilihan yang ada di pasaran. Semasa mengimbas, lembar data mungkin berfungsi dengan baik untuk memperoleh prestasi umum MCU, tetapi untuk aplikasi kritikal kuasa, kaedah ini dapat menjadi pendekatan yang sangat mahal. Untuk memahami ciri daya sebenar mikrokontroler, pembangun mesti mengambil kira spesifikasi elektrik dan fungsi daya rendah yang ada pada mikrokontroler. Pereka tidak hanya perlu mengambil berat tentang penggunaan semasa oleh setiap mod kuasa yang diiklankan oleh lembar data MCU, mereka juga harus melihat masa bangun, sumber bangun, dan periferal yang tersedia untuk digunakan semasa mod kuasa rendah.
Penting untuk memeriksa ciri mikrokontroler yang anda rencanakan untuk digunakan untuk memastikan pilihan yang anda miliki untuk pelaksanaan kuasa rendah. Mikrokontroler telah menjadi salah satu penerima kemajuan teknologi terbesar dan kini terdapat beberapa mikrokontroler berkuasa ultra rendah yang memastikan anda mempunyai sumber untuk membantu anda tetap dalam anggaran kuasa anda. Sebilangan dari mereka juga menyediakan beberapa alat perisian analisis kekuatan yang boleh anda manfaatkan, untuk reka bentuk yang berkesan. Kegemaran peribadi adalah barisan mikrokontroler MSP430 dari Texas Instrument.