Mikrodenetleyiciler daha basit IC'leri değiştirdi mi?


37

Örneğin, bir 555 zamanlayıcısının dirençler ve kapasitörler ile nasıl ayarlanacağını, insan tarafından okunabilen bir programlama dilinde bir mikroişlemci için bir zamanlayıcı programı yazarken öğrenmeye değer mi?

Ya da başka bir deyişle, IC'lerin bu mikrodenetleyiciler için iyi olmadıkları problemler var mı?


4
@ jes5199 - Bu sorunun bir meta etiketi nasıl hak ettiğini tam olarak bilmiyorum; gerekçeniz hakkında yorum yapabilir misiniz?
J. Polfer,

3
benim fikrim, belirli bir sorun hakkında değil, tüm alan hakkında bir soru sormamdı. Bu bana biraz meta gibiydi.
user955

Ayrık bileşenli bir devre kartı ve bir 555 zamanlayıcı olarak etiketlenmiş bir çip, bir çipte depolanan programdan çok daha insan tarafından okunabilir durumdadır.
Kaz

Yanıtlar:


35

Çoğunlukla, mikrodenetleyiciler ayrık IC'lerin yerini almıştır. 555'li bir devre tasarlayabilsem bile, aynı devrenin başka bir şey yapmak için birkaç hafta içinde ince ayar yapılması gerekebileceğini ve bir mikro bu esnekliği koruduğunu düşünüyorum.

Ancak birkaç istisna vardır.

Kesikli mantık çoğu mikrodenetleyiciden daha hızlıdır. Ayrık mantık için yayılma gecikmesi ve anahtarlama zamanları 1-10 ns aralığındadır. Bunu bir mikroişlemci ile eşleştirmek için, 1 komutta ihtiyacınız olan mantığı uygulayabilmeniz ve 100 MHz - 1 GHz aralığında bir saatiniz olması gerekir. Bunu yapabilirsin, ama belki garajındaki ekmek tahtası üzerinde değil.

Buna güzel bir örnek, HCTL2020 dörtlü kod çözücüsüdür. İki darbe serisi alır ve motorunuzun hangi yönde döndüğünü size söyler. Hız uğruna programlanamayan bir çip olarak uygulanır.

Hem dijital mantığın hem de mikrodenetleyicilerin başarısız olduğu bir başka ilginç alan sinyal filtrelemektir. Dijital olarak filtrelemek istediğiniz bir analog sinyalin varsa, bir hızda örneklemeniz gerekir. Ne kadar hızlı numune alırsanız verin, örnekleme frekansınızın yarısından daha fazla frekanslarda görünen sinyaldeki gürültü, sinyalinize engel olabileceği düşük frekanslara indirgenir. Bu problemi, örneklemeniz gerçekleşmeden önce bir kapak ve bir dirençten oluşan bir alçak geçirgen filtre ile çözebilirsiniz. Örneklemeden sonra, berbatsınız. (Tabii ki, sık sık gürültünün frekansta sinyalinizi üst üste bindirmemesi durumunda, ve sonra bir dijital filtre harika çalışacaktır.)


> Kesikli mantık çoğu mikrodenetleyiciden daha hızlıdır. Bir Cypress PSoC3 kullanmıyorsanız.
Rocketmagnet

3
@Rocketmagnet - Bir FPGA gibi, PSoC hala ham mantıktır. Kesikli değil, elbette, ama o kadar hızlı.
Kevin Vermeer 23.03

29

Garip bir şekilde, tamamen Çin'in fabrikalarından birine sahiptim, tamamen overlall olduğu bir projeye mikro eklemeye çalışıyordum ve onlara 555 kullanmalarını söyledim. Bir 555, 6 kuruşa, 60 kuruşa ucuz bir mikroişlemciye mal oluyor. Ürünleri büyük miktarlarda yaparken, bu maliyet farkı önemlidir ve kesinlikle daha ucuz IC'nin nasıl kullanılacağını bilmek isteyeceksiniz. Yani evet, daha ucuza mal olurlar. :)


12
Buna güvenilirlik de ekleyebilirsiniz. Son yazılımın kaldırılmasından sonra her yazılımda bir hata var.
stevenvh

13

Orada ayrık bir mantık var hala bir alanı mikrosları atıyor uzun vadeli parça kararlılığı.

Bu mikro 10 yıl içinde piyasaya sürülecek mi? 20? IDE ve alet zinciri o zaman hala destekleyecek mi?

Kesikli mantığın gelecekte hala kesikli mantık olacağını garanti edebilirsiniz. Micros, çok değil. Uzun bir üretim ömrüne, genel mantığa ve mümkün olduğunca uzun süreye sahip olmasını beklediğiniz bir ürünü tasarlıyorsanız, genel parçalar, parça kullanılabilirliği değiştiğinde cihazı yeniden tasarlama gereksinimini azaltır.

Ayrıca, yonga üreticiniz geri sipariş verilmişse, SOL olamazsınız. Pek çok insan uyumlu jenerik mantığı oluştururken temel olarak jenerik mikro yoktur.


11

Basit bir iş yapmak için ayrık devrelerin kullanılması daha ucuz hale gelir. Örneğin, yanıp sönen bir LED. En ucuz PIC, bir PIC10F200, 5ku'da yaklaşık 0.35 ABD dolarıdır ve bu, programlama maliyetlerinden önce ve küçük boyutu hesaba katmadan önce (ve üretim ile ilgili problemler). 5ku’daki TI’dan 0.10 dolar ve tam bir çözüm muhtemelen 0.20 dolar civarında olacak.

Dikkate alınması gereken başka bir şey de, mikrodenetleyicilerin doğal olarak dijital cihazlardır. Elbette, çoğu ADC'ye ve bazılarında bile DAC'lere sahipler, ancak yine de ayrı zaman birimleri üzerinde çalışıyorlar ve bireysel bitler ve baytlar üzerinde çalışıyorlar. Tasarımcının ihtiyaç duyduğu şeyi yapmak için bir analog devre tam olarak ayarlanabilir, çünkü teoride, analogun sonsuz çözünürlüğü vardır **. Bir dijital devre, en yavaş bileşeni ile sınırlıdır.

Son olarak, arz sorunu var. İlk örneğime NE555 döneceğim. Bu 20 yıldan fazla bir süredir var ve muhtemelen bundan sonra 50 kişi daha olacak. Öyle bir jellybean kısmı muhtemelen sonsuza dek üretilecek (ya da en azından geleneksel elektronlar elektronikte eski hale gelene kadar). Oysa, bir PIC10F herhangi bir zamanda NRND yapılabilir. Microchip gibi tek bir tedarikçiyle, bunun bir ürünü mahvetme riski vardır.

** Tamam, bu tam olarak doğru değil. Gerçekte, elektronların çözünürlüğü ile sınırlıdır. 1 amper = 6.24 × 10 18 elektron / saniye. Böylece alabileceğiniz en iyi akım çözünürlüğü, saniyede yaklaşık 6 elektron olan attoamper veya 10 ^ -18 amperdir . Fakat çoğu pratik amaç için bu sorun değil. :)


4
Çözünürlüğü hassasiyetle karıştırıyorsunuz, sıklıkla yapılan bir hatadır. Sürüklenme etkin hassasiyetin yalnızca iki basamak olmasına neden olursa,> 10 basamak çözünürlük elde etmenin bir anlamı yoktur. Dijital çözüm, ayrı ve dolayısıyla daha sınırlı bir çözünürlüğe sahip olmasına rağmen daha yüksek bir hassasiyete sahip olabilir .
stevenvh

8

Programlanabilir mantığı unutma - CPLD'ler ve FPGA'lar. Kesikli mantığı bir CPLD ile değiştirerek parçaların kesilmesinden etkilenmezsiniz ve çok daha fazla performans, daha düşük boyut ve daha düşük maliyet elde edebilirsiniz. Sistemde bir FPGA'nız varsa, içinde yumuşak bir çekirdek uygulayabilirsiniz, gereksinimler değişirse kolayca yükseltilebilir ve her şey kolayca "geleceğe hazır hale getirilebilir".


6

Bir 555 zamanlayıcısını "sadece durumda" bilgisi olarak ayarlamayı öğrenirim. "Bütün hayatımı cebirsiz yaşadım, neden çocuklara öğretiyoruz?" Dedikleri gibi. Bir aracın nasıl kullanılacağını bilmiyorsanız, uygulanabileceği bir sorunu asla göremezsiniz.

Spesifik bir cevaba gelince: Bugünlerde FPGA'larda / ASIC'lerde çok hızlı dijital mantık uygulanmaktadır, çünkü mikrodenetleyici / işlemcide çok yavaş olacaktır (DSP gibi özel olarak tasarlanmış bir işlemci olmasaydı).


6

Şu andaki projemde, 500MHz'de çalışan ve çok sayıda DIO portu sunmak için FPGA ile çalışan bir Marvell ARM9 yongası kullanıyoruz. Yine de, ayrı mantıklarla ele alınan şeyler var. Örneğin, tek tek kontrol edilen 4 step motor için bir step motor kontrolü gerekir. Bir dizi atımın geçmesine izin verecek bir sayacı olan bir frekans üretmek için bir osilatör vardır. Sayaç, mikrodenetleyiciden ayarlanır, ancak daha sonra mikrodenetleyiciden başka bir denetim yapmadan çalışır, bu da diğer görevlerde çalışma zamanı verir.

Daha fazla mikrodenetleyici seçebilirdik. Ancak geleneksel ayrık mantıkla çalışan merkezi bir kontrol cihazı güçlü ve çok güvenilir bir çözüm olabilir.

Ayrıca, açıkça tanımlanmış bir probleminiz varsa, çözüm her zaman mümkün olduğunca basit olmalı, ancak daha basit olmamalıdır (orada gizli alıntı ;-)). 555 çalışıyorsa, neden kullanmıyorsunuz? Esneklik başkasının seçtiği gibi bir argüman olabilir, ancak olmayabilir. Hepsi probleminize ve en basit çözümün ne olduğuna dair yorumunuza bağlıdır.


1
G / Ç genişleticinizin FPGA’nın bir step kontrolünün “mantık” kısmı için harika bir yer olacağını düşünüyorum.
Chris Stratton,

5

Yüksek frekanslı iletişim uygulamaları akla geliyor. Şimdi 'yazılım tanımlı radyo'ya sahip olsak da, 100MHz + sinyal işleme en azından bazı analog aşamalara sahip değilse çok şaşırtıcı olurdu.


4

Yakın zamandaki mikrodenetleyici tasarımlarımın çok azı ayrı bir mantık gerektiriyordu. Bunun bir istisnası, bir Ctrl-Alt-Del sıfırlama tipi uygulamaktı; bu sayede, özel bir klavyede iki özel tuşa iki saniye basılması, mikro için sert bir sıfırlama yapacaktır. Bir NOR geçidi (2 ters girişi olan bir AND geçidi olarak kullanılır), bir AND geçidi ve 74HC123 kullandım. DIP günlerinde 4 geçit / paket yerine, bir SMT paketinde tek geçitlerde ihtiyaç duyduğum belirli geçitleri alabilmem kolaydı.


4

Yıllardır yazılım geliştiricisi olma şansını elde ettim ve şimdi elektronik mühendisi olarak çalışıyorum.

Karmaşıklığı olan herhangi bir sistem, hata ve hatalarla gelir. Hem mikrodenetleyiciler hem de IC'ler kullanım alanlarına göre avantaj ve dezavantajlarına sahiptir.

Küçük ölçekli projeler için, IC'ler Mikrodenetleyicilerden daha hızlı, daha ucuz ve daha güvenilirdir. Milyonlarca girdi içeren büyük ölçekli projeler için, analiz ve karşılaştırma mantığı, mikroişlemcilerin IC'lerde üstünlükleri vardır.

Tüm yazılımlar bir noktada arızalanır, bugsless kod bile değişikliklere eğilimlidir, çünkü ROM'a kaydedilir; bu da algılanması zor ancak bazen felaketle sonuçlanan mantıksal hatalara (örn. Bellek sızıntılarına) neden olur.

Kurşun geçirmez yazılım tabanlı sistemlerin kritik uygulamalardaki arızalardan (örneğin askeri sınıf veya tren kontrol sistemleri gibi hayat kurtarıcı sistemler gibi), "başarısız güvenli" kavramlarının uygulanması ve geliştirilmesi.

Hatalı güvenli sistemler, istisnai bir hata meydana geldiğinde güvenli bir duruma geri döner. Genellikle iki işlemci aynı kodu çalıştırır, her komutun sonuçlarını karşılaştırır ve eğer eşitlerse komut yürütülür. Aksi halde sistem güvenli bir duruma dönmek için fiziksel elektrik rölelerini kullanır.

Başarısız güvenli yazılım tabanlı sistemler, tren kilitleme ve ATP'ler (Otomatik Tren Koruması) sistemlerinde kullanılır.

Ics ile aynı karmaşık sistemi tasarlamak her mühendis için büyük bir baş ağrısıdır. Ve bu yüzden yazılım ilk günden itibaren tasarlandı!


3

IC'ler alana özel olabilir. Bir DTMF kod çözücüyü düşünüyorum. İki frekansı çözmek için bir mikroişlemci programlayabilirim, ancak kullanıma hazır bir çip kullanmak daha kolay, daha hızlı ve daha ucuz.

Hangi araçları kullanacağını bilmek için tüm araçlar hakkında yeterli bilgiye sahip olmanın önemli olduğunu düşünüyorum.


Elbette devrede bir mikrodenetleyiciye ihtiyacınız olup olmadığına bağlı. Geçenlerde bir DMTF kod çözücüye ihtiyaç duyduğum bir projem vardı. Cipslerin miktarı dolar cinsinden yaklaşık. Bir PIC24F veya eşdeğeri bir dsPIC33F (ayrıca bir DSP'ye sahip olan) arasındaki fiyat farkı da yaklaşık olarak bir dolar civarındaydı. DTMF kod çözücü DSP rutinleri Microchip içermiyordu. Artı şimdi başka şeyler için de bir DSP var.
tcrosley

Bilginize, birkaç yıl önce PIC 16C622 için oldukça iyi bir DTMF kod çözücü yazdım, sadece karşılaştırıcıyı girdi olarak kullandım.
supercat

3

Mikro denetleyici kullanmak yerine sadece ayrık bileşenleri kullanarak bir şey tasarlamak arasında büyük bir fark vardır; yazılımın hataları var. Güvenilirlik önemli bir özellikse, ayrı bileşenlerden yapılmış bir şeyin tasarımını doğrulamak mümkündür. Knuth bile yazılımının hatasız olduğunu iddia etmeye cesaret edemiyor.

Elbette, tasarımınızın da hataları olabilir ve yalnızca çok nadir durumlarda ortaya çıkabilirler, ancak anlaşılması ve düzeltilmesi daha kolay olacaktır. Yazılımın, hiçbir zaman bulamayacağınız son derece belirsiz ve açık olmayan şekillerde başarısız olması mümkündür.


2
Bu durumda ayrık bileşenler muhtemelen IC'ler ve transistörler anlamına gelmediğinden, IC'lerin hatasız olduğunu düşündüren nedir? İyi yazılmış bir yazılım, yazılım olduğu için değil, karmaşık gereksinimleri çözdüğü için hatalarla bitiyor - zor bir kablolu sürümü de buggy olabilir. Bir hata bulduğunuzda, sizin için büyük bir OTP mikroskobu yakmadığınız sürece, yazılımları düzeltmeleri PCB'leri değiştirmekten daha ucuz hale getirir. Bir programcı kablosunu takması için birini eğitebilir ve SMT PCB'leri yeniden işlemede iyi olmaları için ESD kurallarına çok daha hızlı bir şekilde uygulayabilirsiniz.
Chris Stratton

IC'ler, mikrodenetleyiciler de dahil olmak üzere her türlü karmaşıklık düzeyinde bulunur. Bir IC'deki hataların olasılığı IC'nin karmaşıklığı ile orantılıdır. Soru 555 zamanlayıcı gibi daha basit IC'lerle ilgiliydi ve bence böyle bir IC'nin ve ilave bileşenlerin hatalara sahip olmalarının kümülatif olasılıkları, mikrokontrolörün hata yapma ihtimalinden çok daha düşük olduğunu düşünüyorum. Elbette 1000 bileşeni bir mikrodenetleyici ile değiştirirseniz, olasılık muhtemelen değişecek, yani resim tamamen siyah beyaz değil. Ama herhangi bir LED yanıp sönen cihaz veya ben buna benzer ...
hlovdal

... bu soruyu yaklaşık olarak algılayarak, ayrık bileşenlerin daha güvenilir olma potansiyeline sahip olduğuna hala inanıyorum. Yazılım hataları için belirleyici değildir. Elbette hiçbir şey% 100 garantili değildir, ancak bileşenli bir trafik ışığı kontrol cihazı kullanıyorsanız, fiziksel aşınma ve yıpranma biriminin arızalanmasına ve değiştirilmesine neden olana kadar X yıl boyunca çalışmaya devam edeceğini bilerek doğrulayabilir ve dağıtabilirsiniz Bundan önce yeni bir birim ile. Yazılımın herhangi bir süre boyunca güvenilir şekilde çalışacağını tahmin edemezsiniz.
hlovdal

Birkaç cümle ile karşılaştırılabilir karmaşıklık yazılımı, uygun cpu üzerinde matematiksel olarak kanıtlanabilir. Daha yaygın bir yazılıma karşı karşılaştırılabilir karmaşıklık için ayrık mantık gerçekten de hayal bile edilemeyenlere karşı tamamen güvenli hale getirilemez - her iki durumda da birincil mekanizmanın başarısız olması durumunda bazı yedek emniyetler sağlamak için ek karmaşıklığı kullanabilirsiniz.
Chris Stratton

3

Cevap Evet!

Buna üretim maliyet yönelimli bir donanım tasarımcısı olarak bakmanız gerekir. 555, çok temel kabul edilen eski bir IC'dir. Eğer bir EE iseniz, dijital elektronik derslerinde çoğu kez birkaç kez gördünüz. Çoğu uygulama için 2 veya 3 formülü çözmeniz gerektiğinden kurulumu çok kolaydır. Bu neredeyse hiç zaman almaz (çünkü siz zaten bir parçayı ve onu nasıl kullanacağınızı ve matematiği kolayca bildiğiniz için). 8 bitlik bir MCU için bile geliştirme kurulumunun yapılması ve yazılımın doğrulanması, çalıştığınız ortama bağlı olarak günlerden aylara kadar sürebilir. Bu, mühendislik maliyetlerini hayal edemeyeceğiniz miktarlara göre düşürebilir. ayrıca, muhtemelen, pazara sunma süresini kısaltır.

Gerçek hikaye - Eskiden büyük bir tıbbi şirket için çalışıyordum. Ürün doğrulama için test cihazları tasarladım. Jigs kısmen donanım ve kısmen gömülü yazılım tabanlı idi. Firmanın ürettiği ürün, vücudun korunmasız kısımlarıyla etkileşime giriyor, bu yüzden yaptığımız her şeyin teftiş edilmesi fındık oldu. Bu sefer, ürünün kendisindeki değişiklikleri yansıtacak şekilde iletişim protokolünü ayarlamak zorunda kaldım. Değişiklik belki de 10 satırlık C kodundaydı ve baud hızı değiştirildiği için kristal osilatör de değiştirildi ve orijinal olarak monte edilenler 11.0592MHz değildi ... Bu, dokümantasyon dahil olmak üzere yaklaşık 2 saatimi aldı. Digikey'den yeni parça siparişi ile şirketin maliyeti muhtemelen 300 $ veya daha azdı. Geliştirilmiş deneme testinin onaylanması birkaç ay sürdü (! ) ve ilgili konularda günde en az birkaç kez yaklaşık 3 veya 4 kişiyi meşgul etti. Bu ne kadar şirkete mal oluyor? Muhtemelen 10 bin dolar - 15 bin dolar. Bu maliyet, tasarımdaki küçük değişikliklerin gerçek maliyetini yansıtır. Çoğu zaman tasarruf edebilirsiniz ve neredeyse hazır bazı çözümler olduğunu bilmek küçük bir servet kazandırabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.