- Mikrodenetleyiciler için Güç Tasarruf Teknikleri
- 1. Uyku Modları
- 2. İşlemci Frekansının Dinamik Olarak Değiştirilmesi
- 3. Interrupt Handler Firmware Yapısı
- 4. Güç İçin Optimize Edilmiş Ürün Yazılımı
- Sonuç
Tıpkı gazın (benzin / dizel) bisikletler, kamyonlar ve arabaların (evet, Tesla hariç!) Taşınması için önemli olması gibi, çoğu elektronik uygulamada ve daha fazlası için elektrik gücü de öyle, genellikle bataryalı (sınırlı enerji), normal cep telefonlarından diğerlerinin yanı sıra akıllı ev cihazlarına kadar.
Pil gücünün Sınırlı niteliği, bu cihazların güç tüketim oranlarının benimsenmelerini ve kullanılmalarını teşvik etmek için makul olması gerektiğini ifade eder. Özellikle bir cihazın pil değiştirmeden tek bir şarjla 8-10 yıl kadar dayanmasının beklendiği IoT tabanlı cihazlarla.
Bu eğilimler, gömülü sistemlerin tasarımında düşük güç hususlarının uygulanmasını sağlamıştır ve yıllar boyunca, tasarımcılar, mühendisler ve üreticiler birkaç noktada ürünler tarafından tüketilen gücü etkin bir şekilde yönetmek için çeşitli akıllı yöntemler geliştirmişlerdir. tek şarj. Bu tekniklerin çoğu, çoğu cihazın kalbi olan mikro denetleyiciye odaklanır. Bugünün makalesinde, bu tekniklerden bazılarını ve mikrodenetleyicilerde güç tüketimini en aza indirmek için nasıl kullanılabileceklerini keşfedeceğiz. Bir Mikroişlemci daha az güç tüketmesine rağmen her yerde Mikroişlemciye yerleştirilerek kullanılabilir, Mikroişlemcinin Mikroişlemciden ne kadar farklı olduğunu öğrenmek için bağlantıyı izleyin.
Mikrodenetleyiciler için Güç Tasarruf Teknikleri
1. Uyku Modları
Uyku modları (genellikle düşük güç modları olarak adlandırılır), mikrodenetleyicilerdeki güç tüketimini azaltmak için tartışmasız en popüler tekniktir. Genellikle mikro denetleyicilerin belirli çevre birimlerini çalıştıran belirli devrelerin veya saatlerin devre dışı bırakılmasını içerirler.
Mimariye ve üreticiye bağlı olarak, mikrodenetleyiciler genellikle farklı türde uyku modlarına sahiptir ve her mod, diğerine kıyasla daha fazla iç devreyi veya çevre birimini devre dışı bırakma yeteneğine sahiptir. Uyku modları genellikle derin uyku veya kapalı, boşta ve uyku modları arasında değişir.
Mevcut modlardan bazıları aşağıda açıklanmıştır. Bu modların adlarının yanı sıra özelliklerinin üreticiden üreticiye değişiklik gösterebileceği unutulmamalıdır.
ben. Boşta / Uyku Modu
Bu genellikle tasarımcıların uygulayabileceği en basit düşük güç modudur. Bu mod, mikro denetleyicinin çok hızlı bir hızda tam çalışmaya dönmesini sağlar. Bu nedenle, cihazın güç döngüsü, mikrodenetleyici uyku modundan çıktığında büyük miktarda güç çekildiğinden, uyku modundan çok sık çıkmasını gerektiriyorsa, en iyi mod değildir. Bekleme modundan aktif moda dönüş genellikle kesintiye dayalıdır. Bu mod, mikro denetleyicide, MCU birincil yüksek frekanslı saat çalışırken CPU devresini çalıştıran saat ağacını kapatarak uygulanır.. Bununla CPU, uyandırma tetiği etkinleştirildiği anda işlemlere devam edebilir. Saat geçitleme, mikro denetleyiciler için düşük güç modlarında sinyalleri kesmek için yoğun bir şekilde kullanılmıştır ve bu mod, CPU üzerinden saat sinyallerini etkili bir şekilde geçirir.
ii. Bekleme Modu
Bekleme Modu, tasarımcıların uygulaması kolay olan başka bir düşük güç modudur. İşlemci boyunca saat geçişinin kullanılmasını da içerdiği için boşta / uyku moduna çok benzer, ancak ana farklardan biri, ram içeriğinde genellikle boşta / uyku modunda olmayan değişikliklere izin vermesidir. Bekleme modunda, DMA (doğrudan bellek erişimi), Seri Bağlantı Noktaları, ADC ve AES çevre birimleri gibi yüksek hızlı çevre birimleri, CPU uyandıktan hemen sonra kullanılabilir olduklarından emin olmak için çalışmaya devam eder. Belirli MCU'lar için, RAM de aktif tutulur ve verilerin CPU müdahalesi olmadan depolanmasına ve alınmasına izin veren DMA tarafından erişilebilir. Bu modda çekilen güç, düşük güçlü mikro denetleyiciler için 50uA / MHZ kadar düşük olabilir.
iii. Derin Uyku Modu
Derin uyku modu, genellikle yüksek frekanslı saatlerin ve mikrodenetleyicideki diğer devrelerin devre dışı bırakılmasını, yalnızca bekçi uygulaması zamanlayıcısı, karartma algılaması ve sıfırlama devresindeki güç gibi kritik öğeleri sürmek için kullanılan saat devresini bırakmasını içerir. Diğer MCU'lar, genel verimliliği artırmak için ona başka unsurlar ekleyebilir. Bu modda güç tüketimi, belirli MCU'ya bağlı olarak 1uA kadar düşük olabilir.
iv. Stop / OFF Modu
Bazı mikro denetleyiciler, bu ek modun farklı varyasyonlarına sahiptir. Bu modda, hem yüksek hem de düşük osilatörler genellikle devre dışı bırakılır ve yalnızca bazı yapılandırma kayıtları ve diğer kritik öğeler açık kalır.
Yukarıda belirtilen tüm uyku modlarının özellikleri MCU'dan MCU'ya farklılık gösterir ancak genel kural şudur; uyku ne kadar derinse, uyku sırasında devre dışı bırakılan çevre birimlerinin sayısı o kadar fazla ve tüketilen güç miktarı o kadar az olsa da, bu genellikle aynı zamanda anlamına gelir; sistemi yeniden çalıştırmak için tüketilen enerji miktarı o kadar yüksek olur. Bu nedenle, bu varyasyonu göz önünde bulundurmak ve görev için doğru MCU'yu sistemin özelliklerini etkileyen ödün vermeden seçmek tasarımcıya kalmıştır.
2. İşlemci Frekansının Dinamik Olarak Değiştirilmesi
Bu, bir mikro denetleyici tarafından tüketilen güç miktarını verimli bir şekilde azaltmak için yaygın olarak kullanılan bir başka tekniktir. Açık farkla en eski tekniktir ve uyku modlarından biraz daha karmaşıktır. İşlemcinin frekansı ile tüketilen güç miktarı arasındaki ilişki doğrusal olduğundan (aşağıda gösterildiği gibi) yüksek ve düşük frekans arasında değişen, sabit yazılımın işlemci saatini dinamik olarak çalıştırmasını içerir.
Bu tekniğin uygulanması genellikle bu modeli izler; sistem boşta olduğunda, aygıt yazılımı saat frekansını düşük bir hıza ayarlar ve cihazın biraz güç tasarrufu yapmasına izin verir ve sistemin ağır hesaplamalar yapması gerektiğinde saat hızı geri getirilir.
Genellikle kötü bir şekilde geliştirilmiş ürün yazılımının bir sonucu olarak, işlemci frekansını değiştirmek için ters etki senaryoları vardır. Bu tür senaryolar, sistem ağır hesaplamalar yaparken saat frekansı düşük tutulduğunda ortaya çıkar. Bu senaryodaki düşük frekans, sistemin belirlenen görevi gerçekleştirmek için gerekenden daha fazla zaman alacağı ve böylece tasarımcıların tasarruf etmeye çalıştıkları aynı miktarda gücü birikimli olarak tüketeceği anlamına gelir. Bu nedenle, zaman açısından kritik uygulamalarda bu tekniği uygularken ekstra özen gösterilmelidir.
3. Interrupt Handler Firmware Yapısı
Bu, mikro denetleyicilerdeki en uç güç yönetimi tekniklerinden biridir. SCR yazmacında bir çıkışta uyku bitine sahip ARM korteks-M çekirdekleri gibi birkaç mikro denetleyici tarafından mümkün kılınmıştır. Bu bit, mikro denetleyiciye bir kesinti rutini çalıştırdıktan sonra uyuma yeteneği sağlar. Bu şekilde sorunsuz çalışacak uygulamaların sayısında bir sınır varken, bu alan sensörleri ve diğer, uzun vadeli, veri toplama tabanlı uygulamalar için çok yararlı bir teknik olabilir.
Benim görüşüme göre diğer tekniklerin çoğu, yukarıda bahsedilenlerin varyasyonlarıdır. Örneğin, seçici çevresel saat tekniği, esasen tasarımcının çevre birimlerini açmak veya kapatmak için seçtiği uyku modlarının bir varyasyonudur. Bu teknik, hedef mikro denetleyicinin derinlemesine bilgi sahibi olmasını gerektirir ve başlangıç için pek uygun olmayabilir.
4. Güç İçin Optimize Edilmiş Ürün Yazılımı
Bir mikrodenetleyici tarafından tüketilen güç miktarını azaltmanın en iyi yollarından biri, verimli ve iyi optimize edilmiş ürün yazılımı yazmaktır. Bu, CPU tarafından zaman başına yapılan iş miktarını doğrudan etkiler ve bu, ek olarak, mikro denetleyici tarafından tüketilen güç miktarına katkıda bulunur. Yürütülen her gereksiz talimat, boşa harcanan pilde depolanan enerjinin bir kısmı olduğundan, kod boyutunun ve döngülerinin azaltılmasını sağlamak için aygıt yazılımı yazılırken çaba gösterilmelidir. Aşağıda, optimize edilmiş aygıt yazılımı geliştirme için bazı yaygın C tabanlı ipuçları verilmiştir;
- Güç tüketen dizilerin, yapıların vb. Çalışma zamanında kopyalanmasını önlemek için "Statik Sabit" Sınıfını olabildiğince kullanın.
- İşaretçiler kullanın. Yeni başlayanlar için muhtemelen C dilinin anlaşılması en zor kısmıdır, ancak yapılara ve birliklere verimli bir şekilde erişmek için en iyisidir.
- Modulo'dan kaçının!
- Mümkünse global değişkenler üzerindeki yerel değişkenler. Yerel değişkenler CPU'da bulunurken, global değişkenler RAM'de saklanırken, CPU yerel değişkenlere daha hızlı erişir.
- İmzasız veri türleri, mümkün olduğunda en iyi arkadaşınızdır.
- Mümkünse döngüler için "geri sayımı" benimseyin.
- İşaretsiz tamsayılar için bit alanları yerine bit maskeleri kullanın.
Bir mikrodenetleyicinin tükettiği güç miktarını azaltma yaklaşımları, yukarıda belirtilen yazılım tabanlı yaklaşımlarla sınırlı değildir , çekirdek voltaj kontrol tekniği gibi donanım tabanlı yaklaşımlar mevcuttur, ancak bu yazının uzunluğunu makul bir aralıkta tutmak için tasarruf edeceğiz. onları başka bir gün için.
Sonuç
Düşük güçte ürün uygulamak, mikro denetleyici seçiminden başlar ve piyasada bulunan çeşitli seçenekleri gözden geçirmeye çalıştığınızda oldukça kafa karıştırıcı olabilir. Tarama sırasında, veri sayfası MCU'ların genel performansını elde etmek için iyi çalışabilir, ancak güç açısından kritik uygulamalar için çok maliyetli bir yaklaşım olabilir. Bir mikro denetleyicinin gerçek güç özelliklerini anlamak için geliştiriciler, mikro denetleyicinin kullanabileceği elektriksel özellikleri ve düşük güç işlevlerini hesaba katmalıdır. Tasarımcılar yalnızca MCU'nun veri sayfasında tanıtılan güç modlarının her birinin akım tüketimi ile ilgilenmemeli , uyanma zamanına, uyanma kaynaklarına ve çevre birimlerine bakmalıdırlar. düşük güç modları sırasında kullanılabilir.
Düşük güç uygulaması için sahip olduğunuz seçenekleri belirlemek için kullanmayı planladığınız mikro denetleyicinin özelliklerini kontrol etmeniz önemlidir. Mikrodenetleyiciler, teknolojideki ilerlemenin en büyük faydalanıcılarından biri olmuştur ve şu anda, güç bütçeniz dahilinde kalmanıza yardımcı olacak kaynaklara sahip olmanızı sağlayan birkaç ultra düşük güçlü mikro denetleyici bulunmaktadır. Bunların bir kısmı, etkili tasarım için yararlanabileceğiniz çeşitli güç analizi yazılım araçları da sağlar. Texas Instrument'ın MSP430 mikro denetleyici serisi kişisel bir favoridir.