Sosyal Medya  

FacebookTwitterDiggLinkedinRSS Feed
   

Sinyal işlemenin mühendislik alanında çok büyük yeri vardır. Analog bir dünyada yaşıyoruz ve bu analog dünyanın bir benzerini dijital dünyaya aktarmaya çalışıyoruz. İnsanların 5 duyu organıyla çevresini algıladığı gibi, dijital dünyada da benzer sensörler geliştiriliyor. Sensörler, analog dünyadan gelen bilgileri olduğu gibi alıp dijital dünyaya aktarmada kullanılmakta. Bu veriler istenmeyen analog sinyallerle dolu. Bu yüzden sensörden gelen verileri filtreler yardımıyla süzüp, sadece istediğimiz sinyali almamız gerekiyor. Bunun için karmaşık matris işlemlerle, uzun algoritmalar ve büyük sayılarla uğraşmalıyız. MATLAB bu konularda mühendise büyük kolaylıklar sağlayan bir program. Birçok karmaşık algoritmayı ve matris işlemlerini çok rahatlıkla yapabilmekte. MATLAB programı sadece işletim sistemine sahip çok hızlı işlem yapabilen ve büyük bir belleğe sahip işlemciler üzerinde kullanılmakta(bilgisayarlar). Peki normal bir mikroişlemci ile tüm bu işlemleri nasıl yapacağız?

 Dijital dünyada normal bir işlemci için virgüllü sayıların, çok büyük sayıların, matrislerin, kareköklerin vb. üst düzey matematik gerektiren işlemlerin yeri yoktur. Ses ve görüntü işleme gibi konularda çalışılmak istenildiğinde, işlemlerimizin çoğunda matrislere, filtrelere, üst düzey matematiksel işlemlere(karekök alma, cosh, sinh vb.) ihtiyaç duyulmakta. Bu nedenle işlemci üreten firmalar bu tür işlemleri yapabilecek özel bir mikroişlemci geliştirdiler: Dijital Sinyal İşleme(DSP). DSP özelliğine sahip işlemciler ile MATLAB üzerinde yapılabilecek birçok işlemi gerçekleştirebilir olduk.

MATLAB programında sinyal işlemeyle ilgili bir çok tasarım, kod satırları yerine simülasyon özelliği olan Simulink üzerinde gerçeklenir. Geniş kütüphanesi ve gelişmiş ayar seçenekleriyle sistemler hızlıca kurulup, analizleri daha doğru bir şekilde alınır. MATLAB üzerinde doğru sonuca ulaşıldıktan sonra aynı sistem programsal olarak DSP içerisine yazılmalıdır. Bu üst düzey mühendislik ve programlama bilgisi gerektiren bir iştir.

Texas Insrument firması, MATLAB üzerine bir eklenti geliştirdi ve kendi üretmiş olduğu DSP işlemcilerini doğrudan MATLAB Simulink üzerinden programlayabilme imkanı verdi. Bu, mühendisler için oldukça büyük bir kolaylık. Bu makalemizde MATLAB üzerinden DSP programlamayı öğreneceğiz. Yazımın devamında örnek olarak TMS320F2827 işlemcisi üzerinde duracağım ve programlamayı bu işlemciye yapacağım.

Kurulum Aşamaları

Öncelikle aşağıdaki programlar bilgisayarınızda kurulu olmalıdır.

Gerekli Programlar:

Programlama Aşamaları

Programlama Aşamaları

  • F2802x C/C++ Header Dosyası ve F2802x Flash Dosyasının kurulumu yapıldıktan sonra bilgisayarın “C” klasöründe “tidcs” isminde bir klasör oluşmaktadır. Bu klaörün içerisinde “c28” isimli klasörün içinde DSP2802x ve Flash28_API isimli dosyalar oluşmalıdır.
  • Bu dosyaların bilgisayardaki yönergesi ise şu şekilde olmalıdır; “C:\tidcs\c28”
  • Bu dosyalar MATLAB’de yapılacak yol tanımlamaları için kullanılacaktır.
  • Bu aşamada ise MATLAB’de gerekli çevre değişkenlerinin kontrolü için; Command Window’a şu komut yazılmalıdır;

checkEnvSetup('ccs','f28027','check')

  • Bu komut yazıldıktan sonra aşağıda görüldüğü gibi bir çıktı elde edilir.

1. CCS (Code Composer Studio)

   Your version    :

   Required version: 3.3.82.13

   Required for    : Automation and Code Generation

2. CGT (Texas Instruments C2000 Code Generation Tools)

   Your version    :

   Required version: 5.2.1

   Required for    : Code generation

3. DSP/BIOS (Real Time Operating System)

   Your version    :

   Required version: 5.33.05

   Required for    : Real-Time Data Exchange (RTDX)

4. 2802x C/C++ Header Files

   Your version    : 1.26

   Required version: 1.26

   Required for    : Code generation

   DSP2802x_INSTALLDIR="C:\tidcs\c28\DSP2802x\v126"

5. Flash Tools (TMS320F2802x Piccolo(TM) Flash API)

   Your version    : 2.00

   Required version: 1.00

   Required for    : Flash Programming

   FLASH_2802X_API_INSTALLDIR="C:\tidcs\c28\Flash28_API\Flash2802x_API_V200_using_CCS4.0v"

  • Burada, programlama için gerekli olan en düşük programın versiyonu, sizin bilgisayarınızdaki kurulu programın versiyonu ve bu programın ne için kullanılacağı ile kısa bilgi ve eğer bu programlardan bazıları çevre değişkeni olarak tanımlanmışsa yukarıda da görüldüğü üzere örneğin;  "FLASH_2802X_API_INSTALLDIR="C:\tidcs\c28\Flash28_API\Flash2802x_API_V200_using_CCS4.0v" şeklinde bir bildirim alınır.
  • Burada Flash ve Header dosyalarının kurulum yollarının yukarıda gösterildiği yapılabilmesi için aşağıdaki adımlar sırasıyla izlenmelidir.
  • Bilgisayarıma sağ tıklanır.
  • Daha sonra gelişmiş sistem ayarlarına tıklanır.
  • Burada gelişmiş sekmesine tıklanır.
  • Bu kısımdaki ortam değişkenleri kutucuğuna tıklanır.
  • Burada “new” kutucuğuna tıklanarak header ve flash dosyalarının yol tanımlamaları şu şekilde yapılmalıdır:
  • New seçeneğine tıkladıktan sonra ;
  • Header dosyasını çevre değişkeni olarak göstermek için
  • Değişken adı:

            DSP2802x_INSTALLDIR

         Değişken değeri:

           C:\tidcs\c28\DSP2802x\v126

şeklinde doldurulup, tamam kutucuğuna tıklanmalıdır.  Aşağıdaki şekildeki gibi olmalıdır.


 

  • Yine Flash dosyasını çevre değişkeni olarak göstermek için

Değişken adı:

FLASH_2802X_API_INSTALLDIR

Değişken değeri: 

C:\tidcs\c28\Flash28_API\Flash2802x_API_V200_using_CCS4.0v şeklinde doldurulup, tamam kutucuğuna tıklanmalıdır. Aşağıdaki şekildeki gibi olmalıdır.

 

Bu kısmı biraz daha açıklayacak olursak;

  • İlk başta bahsettiğimiz F2802x C/C++ Header Dosyası ve F2802x Flash Dosyasının kurulumu yapıldıktan sonra bilgisayarın “C” klasöründe “tidcs” isimli dosyanın içindeki c28 dosyasına tıklayıp, oradan da DSP2802x  dosyasına tıklayıp, v126 dosyasına tıkladığımızda aşağıda şekilde de görülen dosya yoluna ulaşılır. İşte elde edilen bu dosya yolu: C:\tidcs\c28\DSP2802x\v126 değişken değeri kısmına yukarıda da anlatıldığı üzere kopyalanır.

  • Yine flash dosyası için de bilgisayarın “C” klasöründe “tidcs” isimli dosyanın içindeki “c28” dosyasına tıklayıp, “Flash28_API” dosyasına tıklayıp, daha sonra da “Flash2802x_API_V200_using_CCS4.0v” dosyasına tıkladığımızda aşağıda şekilde de görülen dosya yoluna ulaşılır. İşte elde edilen bu dosya yolu: C:\tidcs\c28\Flash28_API\Flash2802x_API_V200_using_CCS4.0v değişken değeri kısmına yukarıda da anlatıldığı üzere kopyalanır ve bu işlemler tamamlanır.

  • CCS ile MATLAB/Simulink’in iletişime geçebilmesi, yani Simulink oluşturu-lan programların CCS üzerinden koda dönüştürülebilmesi için konfigürasyon ayarları yapılmalıdır. Bu konfigürasyon ayarları yapmak için de MATLAB’de Command Window’a şu komut yazılmalıdır: xmakefilesetup. Bu komut yazıldıktan sonra karşınıza karşınıza kurulum penceresi açılacaktır. Aşağıdaki şekilde karşınıza gelecek yapı verilmiştir. Burada gerekli yol tanımlamaları yapılacaktır.

 

Bu denemeyi ilk defa yaptığınızda size bir dosya sormaktadır: Bu dosyayı da “C” klasöründe bulunan code composer studio olarak göstermeniz gerekmektedir. Şimdi bu söylediğimiz şeyi biraz daha açacak olursak şunları yapmanız gerekmektedir.

Template: gmake

Configuration: ticcs_c2000_ccsv4 olarak seçilmelidir.  Yukarıdaki şekilde önceden bu işlemler yapıldığı için ticcs_c2000_ccsv4_clone olarak görülmek-tedir.

  • Daha sonrada yine şekilde görüldüğü üzere çalışma yolumuz olan user templates sizin oluşturacağınız config isimli dosyanın yolu gösterilerek şekilde de görüldüğü gibi C:\Program Files\Matlabb\config\ şeklinde tanımlanabilir. ve konfigürasyon yolumuz olan user configurations için ise yol tanımlaması da C:\Program Files\Matlabb\config\ şeklinde olmalıdır. Yani user templates için yaptığımız yol tanımlamasını kopyalayıp, user configurations kısmına yapıştırılanilir.
  • Bu ayarlamalar yapıldıktan sonra “apply” kutucuğuna tıklanır ve ayarlar kaydedilir. Ayarların kaydedilmesi birkaç saniye sürdükten sonra yukarıdaki şekilde gördüğünüz blok tekrar aktif olur ve ayarlamalar kaydedilir.
  • Ayarlamalar kaydedildikten sonra Tool Directionies kısmı şu şekilde olmalıdır:
  • MATLAB bu ayarlardan yararlanarak clone ya da bir diğer anlamıyla Simulink’ten gönderilen komutların program programı oluşturulacaktır. Bunun için de “clone” dosyası oluşturulmalıdır. Clone dosyası oluşturmak için ise new butonuna tıkladığımızda karşımıza aşağıdaki blok gelecektir. Ve bu bloktaki “ok” kutucuğuna tıklanmalıdır.

 

clone dosyasını da oluşturması birkaç saniye sürebilir.  clone dosyasını oluştur-duktan sonra configuration aşağıdaki gibi olmalıdır: yani configurationun karşısında ticcs_c2000_ccsv4_clone yazmalıdır.

 

Bundan sonraki kısımda ise clone dosyası için gerekli yol tanımlamalarını yapmak için execute kısmında gerekli yol tanımlamaları yapılmalıdır.

  • İlk önce Execute tool kısmına şu yol tanımlaması yapılmalıdır. Browse… kutucuğuan tıkladıktan sonra eğer CCS programını “C” klasörünün içindeki Program Files(x86)’ın içine kurulmuşsa; “C” klasörüne tıklayıp, Program Files(x86)’ya tıklayıp, Texas Instruments dosyasına tıklayıp, oradan da ccsv4’e tıklayıp, scripting dosyasına tıklayıp, bin dosyasına tıklayıp, dosya tipi olarak all files yada tüm dosyaları seçip, dss.bat isimli dosya seçilip, open seçeneğine tıklayarak execute tool kısmının yol tanımlaması tamamlamış olunur.
  • Ardından da Arguments kısmında bazı ayarlar yapılmalıdır. Eğer bu ayarlamalar yapılmazsa Mathworks’un sitesinde de göreceğiniz “echo” hatasını almak durumunda kalabilirsiniz.
  • Bu hatayı almamak için argümen tanımlamaları yapılmalıdır. İlk argümen tanımlaması için MATLAB klasörü içindeki java isimli dosyanın yeri bu argument isimli kutucuğa kopyalanmalıdır.
  • Şu yol takip edilebilir; “C” klasörü içindeki “Matlabb” klasörüne tıklayıp, toolbox klasörüne tıklayıp, idelink klasörüne tıklayıp, extensions klasörüne tıklayıp, bu klasörün içindeki ticcs klasörüne tıklayıp, ccsdemos klasörüne tıkladığımızda bu klasörün içinde “runProgram” isminde bir dosya yolu bulunmaktadır. Bu aşamaları yapınca aşağıdaki yol tanımlaması elde edilecektir.

C:\Program Files\Matlabb\toolbox\idelink\extensions\ticcs\ccsdemos

  • Yukarıda görülen yol tanımlaması kopyalanıp, Arguments bloğunun karşısına "C:\ProgramFiles\Matlabb\toolbox\idelink\extensions\ticcs\ccsdemos " şeklinde yapıştırılıp, en sonuna \runProgram.js yazılıp çift tırnak ile bu kısım kapatılmalıdır. Burada bu yol tanımlamaları çift tırnak içinde ve arada boşluk olmadan yapılmalıdır. Yani çift tırnak ile başlayıp, çift tırnak ile bitmelidir. Bu yapılan tanımlama argumen1’i oluşturmaktadır.
  • İkinci argumen tanımlaması ise code composer studio içerisindeki target dosyasının yer tanımlamasından oluşmaktadır.
  • Bunun için de code composer programı açıldıktan sonra Target sekmesine tıklayıp, New Target Configuration sekmesine tıklayıp, File name kısmına belirlediğiniz bir ismi verip, örneğin deneme123 gibi finish butonuna basarak bu işlem tamamlanır. Ve target konfigürasyonu oluşturmaya başlanır. Karşınıza aşağıdaki gibi gelen ekranda Connection kısmında Texas Instruments xDS100v1 USB Emulator seçilmelidir. Yine Texas Instruments xDS100v2 USB Emulator seçeneği de seçilebilir. Daha sonra ise device kutucuğunun karşısından uygun işlemciyi yani bizim kullandığımız işlemci olan TMS320F28027 seçilmelidir. Bu seçimleri yaptıktan sonra save butonuna tıklayarak bu değişiklikler kaydedilmelidir. Bu ayarları kaydettikten sonra view sekmesine tıklayıp, Target Configuration’a tıklayarak oluşturmuş olduğumuz target dosyasını görebiliriz.
  • Burada LaunchPad ile bağlantı yapılıp, yapılamadığını anlamak için oluşturulmuş olan NewTargetConfigurationyeni123.ccxml dosyasına sağ tıklayıp, Launch Selected Configuration kutucuğuna tıklayıp debug emulator ekranının açılması beklenir. Ardında…………sağ tıklayıp, connect target butonuna tıklayıp bağlantının gerçekleşip gerçekleşmediği kontrol edilir.
  • Daha sonra bu oluşturduğumuz NewTargetConfigurationyeni123’ü de argüment 2 olarak göstertmemiz gerekir. Bunun için de bendeki yol tanımlaması şu şekildedir: “C” klasörü içindeki Kullanıcılar’a tıklayıp, ANIL klasörüne tıklayıp, user klasörüne tıklayıp, CCSTargetConfigurations klasörüne tıkladığımızda aşağıdaki gibi bir dosya yolu elde edilir.

C:\Users\ANIL\user\CCSTargetConfigurations

Yukarıda görülen yol tanımlaması kopyalanıp, Arguments bloğunun karşısına "C:\ProgramFiles\Matlabb\toolbox\idelink\extensions\ticcs\ccsdemos"’in hemen yanına boşluk bırakmadan “C:\Users\ANIL\user\CCSTargetConfigurations\ yeni123.ccxml” yolu yine çift tırnaklı şekilde yapıştırılmalıdır.  Ve bu yapıştırılan argümenin yanına da üçüncü argümen olan "[|||MW_XMK_GENERATED_TARGET_REF[E]|||]" yine boşluk bırakmadan çift tırnak içerisinde yapıştırılmalıdır.  Argümenlerimizi tekrarlayacak olursak:

Argüman Tanımlamaları:
Arg1:"C:\Program Files\Matlabb\toolbox\idelink\extensions\ticcs\ccsdemos\runProgram.js"
Arg2:"C:\Users\ANIL\user\CCSTargetConfigurations\OluşturulanTargetDosyanınİsmi(uzantısı ile beraber)"
Arg3:"[|||MW_XMK_GENERATED_TARGET_REF[E]|||]" şeklindedir.

  • Tüm bu ayarlamalar yapıldıktan sonra bu ayarlamaları kaydetmek için apply butonuna tıklanır. Birkaç saniye içinde bu ayarlamalar yapılır.  Bu ayarlamalar yapıldıktan sonra clone dosyasının oluştuğu görülür. ok’ye tıklanır ve ayarlar kaydedilmiş olur.

Bu makalede ayarlar kısmı ele alındı. Matlab Üzerinden DSP Programlama 2 isimli 2. makalemde basit bir led yak söndür işlemini DSP işlemcisine nasıl gömülür onu öğreneceğiz.

Umarım sizler için yararlı bir kaynak olmuştur.

Anıl BERATLI
Elektrik-Elektronik Mühendisi

Yorumlar   

0 # MehmetAliAYDIN 30-12-2013 17:46
DSP programlama üzerine hiçbir kaynak kitabın(Türkçe) olmadığı ülkemizde ANIL BERATLI'nın yazısı can simidi değerinde,yazıl arının devamını dileriz.
Cevap
0 # Super User 31-12-2013 00:25
Anıl arkadaşım DSP üzerine Türkçe kaynak olarak çok değerli bir eser bıraktı. Kendisine çok teşekkür ederim.
Cevap
0 # Yusuf Yararman 18-03-2014 14:49
Gerçekten de güzel bir konu olmuş. Teşekkürler...
Cevap
0 # alpagut 15-05-2016 04:25
merhaba hocam bende "FLASH_2802X_AP I_INSTALLDIR="C :\tidcs\c28\Fla sh28_API\Flash2 802x_API_V200_u sing_CCS4.0v" kısmında sadece FLASH_2802X_API _INSTALLDIR= çıkıyor ne yaptıysam beceremedim ne yapmam gerek? win10 kullanıyorum, ccsv4.0.2 kurulu matlab 2011b,2013a,201 4a vs hepsini yükledim olmadı... Çabuk yanıt verirseniz çok memnun olurum. :-)
Cevap

Yorum ekle


Güvenlik kodu
Yenile

   
© muhammetefe.com

Joomla Hata Ayıklama Konsolu

Oturum

Profil Bilgisi

Bellek Kullanımı

Veritabanı Sorguları