DMA-Direct Memory Access (Doğrudan Bellek Erişimi)

Yayınlandı: 23 Haziran 2016 / ARM STM32F4DISCOVERY Programlama...
Etiketler:, , , , , ,

AdsızGelişmiş bilgisayarların çoğunda bulunan bir yapı olan doğrudan bellek erişimi (DMA), CPU’dan bağımsız olarak verileri bir yerden başka bir yere kopyalama işlemi yapılmasına olanak sağlayan bir yapıdır. Mikrodenetleyiciler de aslında komple bir bilgisayar oldukları için, gelişmiş mikrodenetleyicilerin içerisinde de DMA bulunmaktadır.  Özellikle yoğun işlemlerin yapıldığı bir projede CPU’nun bir de bellekteki verileri çevresel birimlere , çevresel birimlerdeki verileri başka çevresel birimlere, çevresel birimlerdeki verileri belleğe veya belleğin bir kısmından başka bir kısmına veri taşıma işlemleri ile uğraşması işlemcinin zaman kaybetmesine yol açacaktır.  Bu zaman kaybını önlemek ve işlemciyi veri kopyalama işlemleri ile uğraştırmamak amacıyla DMA kontrolcüsü kavramı ortaya çıkmıştır. Bu yapı mikrodenetleyiciler içerisinde bulunur ve kullanıcı istekleri doğrultusunda programlanarak verilerin istenilen kaynaktan, istenilen hedefe aktarılması işlemini gerçekleştirir.

Adsız

Yukarıdaki şekilde DMA ‘nın işlemciyi nasıl devreden çıkardığı daha iyi görülebilmektedir. PIO (Programmed Input/Output) ve DMA yapıları arasındaki en büyük fark şekilden görüleceği üzere veri iletişiminde CPU biriminin hiç kullanılmayarak gereksiz yere zaman kaybı yaşanmasının önüne geçilmesidir.  Özellikle TFT uygulamaları, sürekli veri gönderimi yapan uygulamalar, sensörlerden sürekli veri okunan uygulamalarda DMA kullanımının çok faydalı olacağı açıktır.

STM32F407 mikrodenetleyicisinde DMA ile kullanılabilecek çevrebirimler şunlardır:

Adsız

DMA ile yapmış olduğum  uygulamaları düzenleyerek yeni kitabıma eklemeyi düşünüyorum.

İyi çalışmalar.

yorum
  1. muratpolata dedi ki:

    Yeni kitap tahminen ne zamana çıkar hocam? Kitaba koymayı düşündüğünüz konu veya uygulamalar hakkında bilgi var mı? İkinci kitap daha detay mı olacak?
    Teşekkürler

    • mikrodunya dedi ki:

      İkinci kitabı uygulama ağırlıklı çıkarmayı düşünüyorum.
      Kitapta aşağıda verdiklerimle birlikte bir kaç güncel (IOT vs..) konu daha bulunacak…

      *STM32F407 Dahili RTC Kullanımı. +

      *SD/MMC Card okuma/yazma İşlemleri.+
      -SD karta veri yazma-okuma+
      -SD kart üzerinde dosya oluşturma, dosyaya yazma/okuma işlemleri+

      *SD/MMC Card Wav player uygulaması. +

      *ENC28j60 Ethernet ile Web Server Uygulaması+

      *GPS modül ile konum belirleme uygulaması.
      -Karakter LCD ekranda GPS saatini,konumu (koordinatları) ve bağlanılan uydu sayısını göstermek.
      -Grafik LCD ekranda Türkiye üzerinde bulunulan noktayı harita üzerinde göstermek. +

      *Bluetooth üzerinden veri alış verişi uygulamaları+
      – Bilgisayardan gelen komutlara göre led yakıp söndürme.+
      – STM32F407 dahili sıcaklık sensöründen ölçülen verinin PC ekranında görüntülenmesi uygulaması.+

      *PID uygulaması (Ortam ışığına göre POWER LED parlaklık ayarı) ( Medyan filtreleme yöntemi de anlatılacaktır)+

      *TFT Ekran kullanımı (Visual TFT programı da tanıtılacak)+
      -Ekrana Renkli resim ve yazı basma uygulaması.+
      -Animasyon uygulaması.+

      *TFT Ekran + Dokunmatik Panel kullanımı (Visual TFT programı da tanıtılacak) +
      -Dokunmatik kontroller ile animasyon oynatmak +
      -Renk kodları ile dokunmatik direnç hesaplayıcı. +

      *GSM uygulaması (Telit GM-862 modülü kullanılacak)+
      -GSM modül ile arama yaptırmak+
      -GSM modül ile SMS göndermek.+
      -GSM modül ile gelen mesaja göre işlem yapmak.+

      *Accelerometer(Dahili LIS302DL) kullanılarak PC üzerinde açı ölçümü uygulaması (USB iletişim).+

  2. evliya dedi ki:

    Hocan DMA cok onemlı bır konu ancak mıcroC de bununla ılgılı bır kutuphane yok dıye biliyorum. Ancak ornek olması ıcın gpıo portundan 12 bıtlık bır verı alınıp tft ye gonderen bır uygulama yaparsanız cok sevınırız. 2. kıtabı meakla beklıyoruzz

    • mikrodunya dedi ki:

      Dma ile ilgili bir kutuphane olmasi zor bir durum degil aslinda. Ben de hazirlayabilirim biraz ugrasarak. Fakat kutuphanelik bir durumu yok dma kontrolcusunun. Dac icin kutuphane ne kadar gereksizse dma icin de bir o kadar gereksiz diye dusunuyorum.

  3. evliya dedi ki:

    Mikro c uzerinden registerlarla islem de yapabilursiniz hocam bu orta derece kullanicilar icin cok ihtiyac duyulan birsey… Birde terazi uygulamasi yapmanizi rica ederiz bununlada ilgili arm ile yapilmis bir uygulamaya rastlamadim

  4. endsa dedi ki:

    kıtap cıkıs tarıhı bellı mı hocam sabırsızlanıyoruz

  5. engerex dedi ki:

    Merhaba
    Kitabınızda Stm32f4’e ait tüm donanımlara örnek uygulamalara yer verirseniz çok güzel olur. Örneğin tek kanal adc okuma. Bu zaten bilindik bir şey. Dma ile okuma 3 kanalı kullanıp 7.2 msps okuma gibi alternatif yöntemler.

  6. Emre dedi ki:

    Kitabiniz nerden çıkacak ve ismi ne? Çıktı mi acaba?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s