Daha önceki yazımda Micro framework e bir giriş yapmıştık ama sanırım olayın backgroundunu pek incelemedik.
Jens Kühner kitabında çok güzel bir şekilde .Net Microframework ün tanımını yapmıştı:

"The Microsoft .NET Micro Framework is a small and efficient .NET runtime environment used to run managed code on devices that are too small and resource constrained for Windows CE and the .NET Compact Framework.

The .NET Micro Framework enables you to write embedded applications for small, connected, embedded devices with Visual Studio and C#. That means you can now use the same development tools and language that you use to build desktop and smart device (PDA and smartphone) applications to develop applications for microcontrollers. The .NET Micro Framework also provides an extensible hardware emulator for rapid prototyping and debugging.

The .NET Micro Framework requires no underlying operating system. A scaled-down version of the Common Language Runtime (TinyCLR) sits directly on the hardware, so the framework is often called a bootable runtime. The runtime has a small footprint; it uses only a few hundred kilobytes of RAM and does not require the processor to have a memory management unit (MMU). Therefore, the .NET Micro Framework can run on small and inexpensive 32-bit processors without consuming a lot of power."

Platformu biraz daha tanıyalım istedim, bildiginiz gibi yanlızca yazılım yönü yoktur platformun birde donanım kısmı var. 
Dünyada bir çok CPU üreticisi olmasına ragmen, şu an için işlemcisini MF boardına port eden çok az firma var. Donanım üreticileri kendi işlemcilerini veya piyasada ki başka ARM işlemci üreticilerinden aldıkları işlemciyi, RAM, ROM ve besleme elemanlarını bir araya getirip kendi board larını oluşturuyorlar.

MF de yazılan kodların çalışması için 32 bitlik ARM bir işlemci ve 64K den az RAM yeterli oluyor. MMU olmaması, CE cihazlarından daha ucuza gelmesini saglıyor.
Bu yüzden MF yüklü cihazlar düşük maliyetli, yüksek beceri gerektiren, yanlızca bir fonksiyona atanmış ve baglanabilir sistemler için iyi bir tercih.

Potansiyel uygulama alanları çok. POS cihazlarından tutun da, medikal cihazlar, ev veya endüstriyel otomasyonlar, otomotiv ve PC baglantılı görev verebileceginizi her yerde kullanılabilir. Akıllı, baglantı halinde ve kolay yönetilebilen bir cihaza ihtiyacınız varsa ve buna uygulama geliştirmek te kolay olsunsa buyurun size MF yüklü cihazlar.

Üzerinde ARM işlemci bulunan bütün Single-Board-Computer lara uygulanma imkanı var. Şu an board olarak satılan ve içine MF port edilmiş cihazlardan bir kaçı üreten firmalar şunlar :
 
  • Aug-electronics  (ATMEL AT91SAM9261 üzerinde)
  • Crossbow  (Marvell PXA271 XScale ARM tabanlı)
  • Device Solutions  (Meridian 100 Mhz, 4 Mb flash, 8 Mb RAM, 16 GPIO, SPI, I2C, 2xUART. üzerinde)
  • Digi  (NS7520, NS9215, NS9210 işlemcileri üzerine)
  • emtrion  (Atmel AT91RM9200 üzerinde)
  • GHI  (ARM 7 işlemciler üzerine <75 Mhz)
  • SJJ Micro (Cirrus Logic EP9302 ARM9 200MHz)

    Neredeyse hepsinin developer kitleri var. Bazılarının yanlızca single-boardlarıda var. Developer kitler $200 ile $500 arasında degişiyor. Üzerinde sundukları donanımlara göre fiyatlar çeşitli. Single-Boardlar ile 50$ civarlarında.
  • Uzun zamandır bekledigim gün gerçekleşti. Uzun bir araştırma sonucu en iyi MF developer kit olarak düşündügüm Tahoe kartı bugun elime geçti.
    10 ayda Tahoe-I için niyetlenmiştim ama bekledigime degdi, Tahoe-II framework 3.0 ile geldi.

    Tahoe nin en büyük özelligi diger dev-kit lerde sınırlı sayıda olan giriş-çıkış sayısının fazla olması. Üzerinde bir çok ek donanımı barındırması, ilk başlayanlar için güzel bir nokta.
    Hem ihtiyacınız olan ek donanımları takarken mevcut I/O ları kullanmamış olmuyorsunuz, hemde toplu satın alındıgı için tek tek  almaktan daha hesaplıya geliyor.

    Eger kartı endüstri otomasyonlarında kullanmayı düşünüyorsanız Taheo sizin işinizi fevkalade görecektir. Connected uygulamalarda o portlara çok ihtiyacımız olacak.
    Kartın MF çekirdeginde (core) olarak Meridian işlemci kullanılmış. Meridian, ARM9 serisi bir CPU, 100Mhzde çalışır. Port edilmiş kartın üzerine 4Mbyte Flash ve  8Mbyte da SDRAM yerleştirilmiş. MSIL kodlarımız  burada derlenecek.

    Taheo-II nin diger genel özellikleri şunlar :

    • 3.5” Yatay Dokunmatik TFT LCD Ekran
    • 9 buton, kullanıcının erişebilecegi
    • RS232 seri port (DB9)
    • USB 
    • Ethernet (RJ45)
    • Accelerometer (serbest düşme eventi olan) Nokia N95 ve iPhone da bulunan hareket (ivme) sensoru
    • SD Card 
    • Sıcaklık Sensörü
    • 2x ADC (Analogdan digitale cevirici)
    • XBee wireless module (XBee standartı kablosuz iletişim protokolu- RF modullü)
    • GPIO, I2C, SPI veUART sinyalleri için genişletme connector leri
    • PWM çıkışı

    Kartla ilgili yaptıgım uygulamaları buradan paylaşıcam, 
    görüşmek dilegiyle.



    Kartın resimleri burada 1 , 2 , 3

    TC Kimlik numaraları bildiginiz üzere 11 basamaktan oluşmakta. Ama aslında sondaki 2 rakam checksum için kullanılıyor.
    Bizi temsil eden numara ilk 9 basamak aslında. Bu ilk 9 basamak arasında kurulan bir algoritma bize 10. basmağı,
    ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.

    • 1. 3. 5. 7. ve 9. hanelerin toplam degerinin 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartılır ve 10'a göre modu alınır, yani 10 a bölündügünde kalan sayı bizim 10. hane oluyor.
    • 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin yani ilk 10 haneninin toplamından elde edilen sonucun 10'a göre modu ise bize 11. haneyi veriyor.

    Örnegin:  50984646282
    MOD10 ( ( (5+9+4+4+2) * 7) - (0+8+6+6) ) = 8
    MOD10 (5+0+9+8+4+6+4+6+2+8) = 2

    Hiç karmaşık degil ama sen sizin için bir TC kimlik numarası türeticim var,
    istediginiz kadar geçerli T.C. No su üretebilirsiniz. Generate TC Number
    buradan üretin

    C# 2.0 ve Java (J2SE 5.0) arasındaki farklar

    28 Oca 2009 In: .net
    Buyurunuz efendim
    http://www.harding.edu/fmccown/java1_5_csharp_comparison.html

    ve VB.Net ile C# arasındaki farklar tablosu
    http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

    Otomasyon Çözümleri

    22 Oca 2009 In: elektronik

    Her otomasyon sisteminde çeşitli cihaz ve sensörlerden aldığımız verilere göre sistemimizi (makinalarımızı) kontrol etmemiz gerekmektedir. Sisteministenilen şekilde çalışması için gereken her noktadan alınana veriler sağlıklıbir şekilde işlenmelidir. Donanım kısmı bu verileri toplarken, yazılım kısmıkararları almaktadır.

    Otomasyon sistemleri için günümüze değin birçok yazılım ve donanım geliştirilmiştir. Kontrol ünitelerinin çekirdeğinde gömülü sistemlerbulunmaktadır. Nadiren PClerde bu amaç için kullanılabilir olsalar da işletimsistemi ihtiyacı nedeniyle tercih edilmemektedir.

    Belirli bir fonksiyonu yerine getirmek için tasarlanmış yazılım ve donanım birleşimiolan gömülü sistemler, tercih edilebilecek en ideal sistemlerdir. Az enerjiharcamaları, düşük maliyetleri, seri üretime uygun olmaları tercih edilme nedenleri olmuştur.

    Gömülü sistemlerin tek eksiği yazılımlarının kolay ve süratle geliştirilebilir olmamasıdır.

    Günümüzdeki mevcut teknolojileri  birinceleyelim:
    - PIC
    - PLC
    - Embedded Systems

    1. PIC nedir ? (Peripheral Interface Controller -Çevrebirim arayüzdenetleyicisi)

    PIC Serisi mikroişlemcilerMICROCHIP firması tarafından geliştirilmiş ve üretim amacı çok fonksiyonlulogic uygulamalarının hızlı ve ucuz bir mikroişlemci ile yazılım yoluyla karşılanmasıdır.

    İlk olarak 1994 yılında 16 bitlikve 32 bitlik büyük işlemcilerin giriş ve çıkışlarındaki yükü azaltmak vedenetlemek amacıyla çok hızlı ve ucuz bir çözüme ihtiyaç duyulduğu için geliştirilmiştir. 

    2. PLC nedir ? (ProgrammableLogic Controller-Programlanabilir Mantıksal Kontrolör)

    PLCler içlerinde bir PIC alan veendüstriyel kontrol sistemleri için özelleştirilmiş sistemlerdir. İşletilecekverilerin gerçek ortamdan gelmesi işlenmesi ve sonuçların yine gerçek ortamaanalog veya sayısal (dijital) olarak gönderilmesi işlemini yapar.

    PIClerin maliyeti daha düşükolmasına rağmen, PLC'lerin tercih edilmelerinin sebebi; elektronik tasarım içinharcanacak zamanı en aza indirmesidir. Aynı zamanda endüstriyel ortamlarınsahip olduğu zor koşullardan (manyetik alan, büyük sıcaklık farkları, toz vb.)etkilenmeden çalışabilen hazır çözümler olmalarıdır. İçerisinde besleme devresihazır, parazit ve gerilim dalgalanmalarına karşı iyi bir filtreleme yapılmış (buendüstriyel uygulamalarda PLC nin kilitlenmesini engeller), giriş-çıkış larıopto kublör ler ile yalıtılmış, çıkışları röleler ile sürülmüş, programlayıcısıkendi içerisinde bulunması gibi avantajları vardır

    İçinde bir mikroişlemcisi olup karmaşık sistemlerin programlanmasındakullanılabilir. PC'lerden en temel farkı, sinyal girişlerinin ve çıkışlarınınçalışma ve işlenme şeklinde ortaya çıkmaktadır. PLC'ler ilk olarak karmaşıkröle sistemlerinin yükünü hafifletmek için çıkarılmış basit mantıksal (lojik)işlemleri yapan cihazlardır.

    Bir fabrikanın tüm otomasyonişlerini yüklenebilecek kadar Giriş/Çıkış sayısına sahip PLC'ler bulunmaktadır.Günümüzde geliştirilen modüler yapıdaki PLC'lere gerektiğinde ek giriş-çıkışmodülleri, RS232, RS485, modem, ethernet gibi haberleşme modüllerieklenebilmektedir. Bu gibi özelliklerle mevcut yapı geliştirilebilmektedir.Ayrıca bir çok modelde proses kontrolüne yönelik hazır ON-OFF (AÇ-KAPA),  PID,  Fuzzy (Bulanık) vb. tiplerdeki kontrolörlerstandart olarak bulunmaktadır.

    PLC,  başlangıçta röle ile kontrole alternatifolarak geliştirildi. Fakat sonradan, sadece röle yerine kullanılmadı ve PLC’ninyeni fonksiyonları geliştirildi. PLC’nin röleli kontrolden en önemli farkı,kontrol elemanlarını kontrol etme yöntemidir. Röleli kontrolde, her bir röle vediğer ekipmanlar birbirlerine kablolama ile bağlanır. PLC’de ise bu işlemlerintamamı bilgisayarda ya da programlama konsolunda yazılan programın PLC’yeyüklenmesi ile yapılır ve kablolama işlemi sadece giriş sinyalleri ve çıkış elemanlarıiçin yapılır. Günümüzde MITSUBISHI, OMRON, SIEMENS gibi pek çok firma PLCüretimi yapmaktadır. Her firma, ürettiği PLC için, kendine özel programlamaprogramlarını da üretmektedir. Fakat tüm PLC’ler için program yapma mantığı vedüşünce şekli neredeyse aynıdır, sadece bazı özel fonksiyonlar ve programlamadili farklılığı olabilir. 

    3. Embedded Systems(Gömülü Sistemler)

    Belirli bir fonksiyonu yerine getirmek için tasarlanmışyazılım ve donanım kombinasyonudur. Gömülü sistemleri diğer genel amaçlıbilgisayar sistemlerinden ayıran özelliklerin başında, bu sistemlerin belirlibir amaç için tasarlanmış olmaları gelir. Bir video cihazını kontrol eden gömülüsistem bütün kullanım ömrü boyunca bu işi gerçekleştirecektir. Ancak ev veişyerlerimizde kullandığımız PC’lerde birçok farklı işlemi gerçekleştirmekteyiz.PC’lerde bu değişik işleri değişik yazılımlarla yapmaktayız. Ancak gömülüsistemlerin içinde çalışan yazılım genellikle “tektir”.

    Gömülü sistemler adlarından da anlaşılabileceği gibigenellikle daha büyük bir sistemin içinde “gömülü” olarak çalışırlar. Örneğinbir çamaşır makinesinde birçok mekanik kısım bulunmakla birlikte, bütün bunlarıkontrol eden bir veya birden fazla mikrodenetleyici tabanlı sistem bulunur. Busistemler kullandığımız cihazların “akıllı olmasını” sağlayan birimlerdir.

    Her gömülü sistemin başlangıçta tanımlanan tasarımkriterleri farklı olduğundan, tasarımı da kendine özgüdür. Bir oyun konsolununiçerdiği birimlerle, bir mikrodalga fırının içerdiği gömülü sistemler birimleribirbirinden farklıdır.

    Burada donanım ve yazılım bileşenleri birbirleriyle sıkısıkıya bağlı olduğundan tasarım ekibinde bulunan yazılımcı ve donanımcılarınbir arada çalışmaları gerekmektedir. Bu anlamda gömülü sistemler için“multi-disipliner” bir alan diyebiliriz.

    Gömülü yazılımların karmaşıklığı artıkça ve aynı andayapılacak işlemlerin sayısı arttığında değişik yapılara ihtiyaç duyulur. Aslındabir mikrodenetleyici aynı anda sadece bir tek işi yapabilir. Ancak işlemleri mili,mikro hatta nanosaniyeler mertebesinde gerçekleştirdiğinden, birçok işi aynıanda yapıyormuş gibi görünebilir. Genel olarak mikrodenetleyicili sistemlerdebu tür işlemler kesmeler ve zamanlayıcılar sayesinde periyodik olarak gerçekleştirilir.Bu anlamda kesmeler yazılımlarda önemli bir rol oynar.

    Gömülü sistemler de ayrıca gerçek zamanlı işletim sistemleride kullanılır (RTOS – Real Time Operating Systems). Böylelikle tasarımcıdonanım ayrıntılarıyla çok uğraşmadan ana işlemleri gerçekleştirmeyeodaklanabilir. Arka plandaki görevlerin senkronizasyonu işletim sistemitarafından gerçekleştirilir. 

     







    Yardımcı Kaynak : http://ctasdemir.wordpress.com/2007/06/10/onlar-her-yerde-gomulu-sistemler-ii/

    Harika bir video, "Turk Olmak"

    17 Oca 2009 In: hoş, ilginç
    Buyurun sonuç açıklanmış tıklayınız
    Ve nihayet .NET Micro Framework v3.0 geliyor ve bu sefer native code desteğide var. 2.0 ve 2.5 sürümlerindeki real-timeda yaşanan sıkıntılarını aşmak için native code dan event callback oluşturabilecegiz.

    Yanlızca managed code kullanmanın bazı yerlerde eksik kaldığını anlayınca  ekip bu büyük değişikliği yapmış. Maalesef henüz beta aşamasında.

    İşte yenilikler şunlar; 

    -Interop 
    -Dokunmatik Ekran(Touchscreen )
    -Dosya Sistemi (Filesystem) 
    -VS2008 
    -DPWS Araçları
    -Wi-Fi 
    -SSL 
    -Serial enhancements 
    -USB Device 
    -Fonts 
    -daha fazla çekirdek
    -Emulator ve ölçüm gereçleri

    Ben Kimim ?

    Celiker BahceciMerhabalar, ben Çeliker BAHÇECİ. 2004 den beri özel sektörde bilgisayar mühendisligi ve egitmenlik yapıyorum. Yine aynı yılın Ekim ayından beri sitemde .Net ile programlama ve hayat görüşüm ile ilgili makalelerimi yayınlıyorum. Blogum dışında Yazgelistir.com, mobilnedir.com gibi ineta kapsamındaki bir çok siteye Microsoft teknolojileri ile ilgili yazılar yazmaktayım.
    Bu site ile sizinde hayatınızı anlamlandırmanızda bir parça katkımın olması dilegiyle...