Mühendisçe Yazılar

Mühendislik, elektronik, gömülü sistemler ve diğerleri…

İnsan öldüren yazılımlar

Yazan: ctasdemir Nisan 30, 2008

Bugün etrafımızda birçok sistem insan kontrolü olmadan çalışıyor.Asansörümüze binip gitmek istediğimiz katın butonuna basıyoruz ve o bizi istediğimiz kata götürüyor.Arabalarımızın motoru kendini en optimum seviyede çalışacak şekilde ayarlıyor.Otomatik kahve makinesi bizim için kahvemizi otomatik olarak hazırlıyor, hem de istediğimiz şeker seviyesiyle.

Artık uçakları, füze savunma sistemlerini de büyük oranda içlerindeki yazılımlar kontrol ediyor.Kısacası gömülü yazılımlar hayatın her alanında çalışıyorlar.Hal böyle olunca yazılımlar çok kritik roller oynuyor.Oluşabilecek hatalar can kayıplarına ve büyük hasarlara yol açıyor.Geçmişte olmuş büyük yazılım hatalarına bir göz atalım isterseniz:

Arienne 5 füzesi faciası:

4 Temmuz 1996 günü Arienne 5 füzesi fırlatıldıktan 40 saniye sonra havada infilak etti.Olayın sonrasında yapılan soruşturma sonucunda kazanın bir yazılım hatasından olduğu ortaya çıktı.Arienne 4 füzesindeki yazılım Arienne 5’e uyarlanmıştı.Modül bazında testler yapılmıştı ancak genel sistem testleri zaman sıkışıklığından dolayı tam olarak gerçekleştirilmemişti.Arienne 5 füzesinin uçuş profili Arienne 4’ten farklı olduğundan kalkıştan kısa bir süre sonra bir değişkendeki taşma sonucu kontrol sistemi devre dışı kaldı.500 milyon dolarlık kayıba malolan bu hata tarihteki en pahalı yazılım hataları arasında yerini aldı.

Hedefi Iskalayan Patriot Füzeleri:

25 Şubat 1991 tarihinde Körfez Savaşı sürerken Amerika’nın İsrail’e yerleştirdiği Patriot füzelerinden biri Irak’tan gelen Scud füzesini ıskaladı ve bir Amerikan askeri barakasına isabet eden füze 29 Amerikan askerinin ölümüne yol açtı.Daha sonra yapılan incelemede Patriot füzelerinde zaman hesaplamasında kullanılan 24 bitlik sabit noktalı değişkende oluşan hatanın buna neden olduğu anlaşıldı.100 saat açık kalan füze sistemindeki zaman hatası 0.34 saniyeyi bulmuştu ve bu da füzenin 500 metrelik bir sapma yapmasına neden olmuştu.

Therac-25 tedavi cihazındaki hata:

Therac-25 hastalara belirli dozlarda radyasyon uygulayarak tümörlerin yok edilmesinde kullanılan medikal bir cihazdı.Cihazın kullanımında iki farklı mod bulunuyordu: Düşük güç modu ve yüksek güç modu.Düşük güç modunde düşük seviyedeki elektron ışını hastaya direk olarak uygulanıyordu.Yüksek güç modunda ise otomatik olarak hastayla cihaz arasına metal bir plaka koyuluyordu.

Operatörün cihaza önce yanlışlıkla yüksek güç moduna geç komutu vermesi ve ardından bunu iptal edip düşük güç moduna alması sonucu cihaz bir hata mesajı verir.Aslında hata mesajı verdiği durumda sinyalin hastaya uygulanmamış olması gerekirken yüksek güçlü radyasyon hastaya uygulanmıştır.Operatörün işlemi birkaç kere tekrar etmesiyle hasta çok büyük oranda radyasyona maruz kalır.Cihazdaki hata sonucu 1985-1987 yılları arasında 6 kişi hayatını kaybetti.

Bütün bu tarihi trajedilerden gömülü yazılımların ne kadar kritik roller oynayabileceğini görmüş oluyoruz.Tabi aynı zamanda ne kadar ciddi sonuçlara yol açabileceklerini de.Günümüzde hala “hatasız yazılımlar”ın arayışı devam etmektedir.

Linkler:

http://en.wikipedia.org/wiki/Ariane_5_Flight_501

http://en.wikipedia.org/wiki/Therac-25

http://en.wikipedia.org/wiki/MIM-104_Patriot#Failure_at_Dhahran


Yazı kategorisi: Yazılım hataları, gömülü yazılım | 2 Yorum »

Bir üniversite ziyareti ve düşündürdükleri…

Yazan: ctasdemir Nisan 13, 2008

Yüksek lisans sınavı için başvurumu İstanbul’daki özel üniversitelerin birinde gerçekleştirdim.Gittiğim saat tam öğle tatiline denk geldiğinden bu bir saati değerlendirecek birşey aradım.Tabi ki aklıma ilk gelen üniversitenin kütüphanesini görmek oldu.

İstanbul’un göbeğindeki bu üniversite adeta bir “alışveriş merkezi “ havasındaydı.Yürüyen merdivenler, mağazalar, banka şubeleri ,kuaför ve hatta ünlü kahve zincirlerinden birinin şubesi bile vardı.Böyle bir manzaradan sonra okulun kütüphanesini iyice merak etmiştim.Orası da oldukça büyük olmalı diye düşündüm.

Kütüphanede gördüklerim benim için tam bir hayal kırıklığı oldu.Bir üniversite için oldukça cılız bir kütüphaneydi.İlk işim elektronik mühendisliği ile ilgili kitapları bulmak oldu.Bu da benim için ikinci bir hayal kırıklığıydı.Elektronik mühendisliği eğitimi de verilen bu üniversitenin elektronik mühendisliği alanındaki kitapları yok denecek kadar azdı.Bir an “belki de kitapların çoğu öğrenciler tarafından alınmıştır “ diye umutlansam da ilgili kitaplara ayrılmış bölümün küçüklüğü bu umudumu da söndürdü.Kendi kendime “ ne olacak bu memleketin hali” diye iç geçirdim umutsuzca.

Kütüphanenin genel havası da kendi üniversite yıllarımda gördüğümden çok da farklı değildi: Sohbet etmek için orada bulunan öğrenciler, sadece ödev yapanlar, gazetelere göz gezdirenler … Sınav zamanları da olmasa sanırım kütüphaneye kimse uğramayacak.

Söz üniversite kütüphanelerinden açılınca aklıma hep üniversitedeyken yaşadığım bir olay gelir: Bir ikinci sınıf öğrencisi şunları söylemişti “ aa burası kütüphane mi? İki senedir burdayım ilk defa geliyorum” . Bu sözleri söylerken yaptığından gurur duyarmış gibi alaycı bir havası vardı. Bu arkadaş da sanırım bugün üniversite mezunu bir “aydın” olarak ortalıkta dolaşıyordur.

Üniversitelerimizin kütüphanelerinden belki de ülkemizde üniversite eğitiminin seviyesini anlayabiliriz.İçi insan kaynayan , herkesin birşeyler okuyup araştırdığı ama buna rağmen çıt çıkmayan bir kütüphane manzarası ne yazık ki ülkemizde çok görülür birşey değil.Ülkemizdeki bütün üniversiteleri gezmedim, eğer böyle bir kütüphane manzarası gördüyseniz lütfen bana bildirin.

Kütüphanesinde elektroniğe dair kitap sayısı yok denecek az olan bir üniversitede verilen elektronik mühendisliği eğitimi… Ne alakası var diyebiliriz belki… Ve yine kaldığımız yerden devam edelim.Efendim ülkemizde ar-ge’ye önem verilmiyor… Nitelikli işgücü bulamıyoruz… Bilgi çağını yakalamalıyız…Nerde kalmıştık?

Yazı kategorisi: Eğitim, Mühendislik | 2 Yorum »

İşlemcimizi tasarlasak da mı kullansak tasarlamasak da mı?

Yazan: ctasdemir Nisan 7, 2008

Uzunca süredir bir yarışma devam ediyor : Türkiye İşlemcisini Tasarlıyor. Yarışmayla birlikte birçok tartışma da beraberinde geldi.Yarışmanın ismi oldukça iddialı olduğundan olsa gerek buna karşı bazı eleştiriler de oluyor.Türkiye’de bir işlemci üretmenin zorluklarından tutun da zaten dünya pazarını ele geçirmiş şirketlerle aşık atmanın imkansızlıklarına kadar.

Yarışmanın adı işlemci tasarımı olarak geçiyor olsa da aslında asıl amaç bu değil sanırım.Ülkemiz gibi teknoloji tüketimi konusunda ilk sıralarda bulunan ancak üretiminde adı bile geçmeyen bir ülkede böyle bir yarışmanın önemli bir misyonu var:Konuya dikkat çekmek ve bu alanda yapılacak çalışmaları teşvik etmek.Bu açıdan bu yarışmanın çok önemli olduğunu düşünüyorum.

Sadece bilgisayar dünyasıyla ilgili insanların “işlemci” kelimesini duyduğunda akıllarına sadece bir iki markanın gelmesi doğaldır.Ancak elektronik ve özellikle de gömülü sistemler alanında çalışanların bildiği gibi PC’lerde kullanılan işlemciler dünyada üretilen işlemcilerin çok küçük bir yüzdesini oluşturmaktadır.Geri kalan büyük çoğunluk etrafımızdaki onlarca sistemin içinde sessiz sedasız çalışmaktadır.Bugün ortalama bir aile otomobilinde 20’nin üzerinde işlemci bulunduğu söylenmektedir.

Durum böyle olunca özel sayısal devrelerin / işlemcilerin önemi de oldukça artmaktadır.Değişik uygulamalar için özel işlemcilerin tasarımı gerekmektedir.Bu alanda büyük bir ihtiyaç bulunmaktadır.

Günümüzde “üretim” kavramı da oldukça büyük değişimler geçirmiştir.Sanayi çağında üretim denildiğinde aklımıza harıl harıl çalışan bir fabrika gelmesi çok doğaldı.Ancak günümüzün bilgi dünyasında fiziki anlamda hiçbir çıktı üretmeyen ancak milyon dolarlık kazançlar elde eden firmaların sayısı hiç de az değildir.Sizce Google ,Microsoft gibi firmalar ne üretiyor? Fiziki anlamda hiçbirşey…

Fiziki olmayan üretime en güzel örneklerden biri de İngiliz ARM (Advanced Risc Machines ) firması.Özellikle mobil cihazlarda gün gittikçe kullanımı daha da artan ARM çekirdekli işlemcilerin tasarımını yapan bu firma hiçbir fiziki üretim gerçekleştirmiyor.Tasarladığı ARM serisi çekirdekleri mikrodenetleyici üreten firmalara satıyor. 8 bit işlemcilerde INTEL’in 8051’i gibi ARM çekirdekleri de 32 bitlik mikrodenetleyici piyasasında endüstri standartı olma yolunda ilerliyor.Bugün birçok firma ARM tabanlı işlemciler üretmekte.

Sonuç olarak , artık fiziki üretim teknolojisi kadar tasarım da büyük önem kazanmış durumda.İçerdiği yüksek maliyetler nedeniyle mikroçip tesisleri kurmak o kadar kolay değil.Ancak temel kaynağı yetişmiş insan gücü olan tasarım alanında Türkiye çok büyük şanslar yakalayabilir.Eğer bu alanda yeterince insan gücü oluşturabilirsek, büyük yarıiletken firmalarının da dikkatini çekip ülkemize yatırım yapmaları için ikna edebiliriz.

Türkiye işlemcisini tasarlıyor yarışması sayısal tasarım alanında çok önemli bir adımdır.Umarım bu yarışmayla atılmış adımlar daha da büyüyerek Türkiye’yi teknnoloji üreten bir ülke konumuna getirecek harekete dönüşür.

Bundan sonraki yazılarımda sayısal tasarımda önemi gittikçe artan FPGA’ler ( Alanda programlanabilir lojik kapı dizileri – Field Programmable Gate Arrays ) konusuna değineceğim.Görüşmek üzere….

Linkler:

Yarışma : http://www.cpu-turkey.com/

ARM Firması hakkında bilgi : http://en.wikipedia.org/wiki/ARM_Limited

Yazı kategorisi: Donanım, Mühendislik | » yorum bırak;

Steve Jobs’ın Mükemmel Konuşması : Aç kal budala kal!

Yazan: ctasdemir Şubat 3, 2008

Eğer hala izlemediyseniz Steve Jobs’ın Stanford üniversitesinde yaptığı konuşmayı Türkçe altyazılı olarak aşağıdaki linkten izleyebilirsiniz.Hepimizin Jobs’ın hayat hikayesinden kendimize çıkaracağımız dersler olduğuna inanıyorum

http://www.dailymotion.com/video/x3j81k_steve-jobs-ac-kal-budala-kal

Yazı kategorisi: Diğer | » yorum bırak;

Dünya Elektronik Mühendislerinin Durumu

Yazan: ctasdemir Aralık 16, 2007



Elektronik mühendisliğiyle ilgili internetteki önemli yayınlardan biri olan “Electronics Design News “ sitesi belirli aralıklarla sektörün genel olarak durumuyla ilgili araştırma ve anketler yayınlamaktadır.Sitede geçtiğimiz günlerde çıkmış olan yeni bir “küresel rapor”da elektronik mühendisliğinin durumu ve mühendislerin iş tatmini gibi konulara değinilmiş.Buradaki bazı sonuçları sizlerle paylaşmak istiyorum:

- Rapordan çıkan genel sonuç dünyanın değişik yerlerinde çalışan mühendislerin genel olarak aynı eğilim ve kaygıları paylaştıkları. İş tatmini, uzun çalışma saatleri, iş-özel yaşam dengesi, gelir durumu gibi konular bütün mühendislerin paylaştığı ortak konular olarak öne çıkıyor.

- Mühendislerin meslekleriyle ilgil düşünceleri de ortak noktalarda buluşuyor : Problem çözmekten zevk almak, sürekli yeni şeyler öğrenmek mühendislerin işleriyle ilgili önemsedikleri konuların başında geliyor.Tabi ki hızla gelişen teknolojiye ayak uydurmanın zorluğu da herkesin ortak derdi.

- Genel olarak mühendisler arasında iş tatmini oranı yüksek.

- Ar-Ge alanında çalışan mühendislerin 35’li yaşlara geldiklerinde proje yönetimi ,satış ve pazarlama gibi daha “soft “ alanlara kaydıkları gözleniyor.Burada AR-GE mühendisliğinin zor ve fedakarlık isteyen bir alan olmasının ve belirli bir yaştan sonra genç, dinamik mühendislerle rekabet edilebilmesinin zorluğunun rol oynadığı söylenebilir.Uzun yıllar AR-Ge tecrübesi kazanmış birçok mühendis kendi işini kurmayı düşünmekte.

- Birçok mühendis uzun çalışma saatleri ve yorucu tempodan şikayet etse de ortaya yeni bir ürün koymanın verdiği tatmin duygusunun buna değdiğini düşünüyor.

- Raporda farklı disiplinler arasında uzmanlaşmış – örneğin analog ve dijital elektronik ,ya da donanım ve yazılım – insan gücü açığının giderek arttığı belirtiliyor.Bunda giderek artan bilgi birikiminin zorunlu olarak tek alanda uzmanlaşmayı getirdiği sonucu çıkarılabilir.Ayrıca farklı alanlarda kendilerini geliştiren “genelci” mühendislere olan talebin de artacağı öngörülebilir.

- Genelde mühendisler salt AR-GE mühendisliği yapmanın ufuklarını daraltacağı görüşünde. Bu düşünce ile mühendisler arasında finans, yönetim gibi alanlarda yüksek lisans yapma eğilimlerinde de artış olduğu söylenebilir.

Raporda Kuzey Amerika, Avrupa, Japonya , Kore , Tayvan ve Hindistan’dan birçok mühendisle yapılmış olan anket sonuçları temel alınmış.Araştırmanın tamamına aşağıdaki linkten ulaşabilirsiniz:

http://www.edn.com/article/CA6495294.html

Yazı kategorisi: Mühendislik | » yorum bırak;

Onlar Her Yerde :Gömülü Sistemler II

Yazan: ctasdemir Haziran 10, 2007


Önceki yazımda gömülü sistemlere kullanıcı gözüyle bakmıştık .Bu sefer işin teknik boyutuna biraz daha eğileceğiz.Gömülü sistemlerin tanımını yapmakla işe başlayalım.Genel olarak gömülü sistemler:

“belirli bir fonksiyonu yerine getirmek için tasarlanmış yazılım ve donanım kombinasyonudur” şeklinde tanımlanabilir.

Gömülü sistemleri diğer genel amaçlı bilgisayar sistemlerinden ayıran özelliklerin başında , bu sistemlerin belirli bir 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 ve iş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 gibi genellikle daha büyük bir sistemin içinde “gömülü” olarak çalışırlar. Örneğin bir ç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. Bu sistemler kullandığımız cihazların “akıllı olmasını” sağlayan, beyin vazifesi gören birimlerdir.

Her gömülü sistemin başlangıçta tanımlanan tasarım kriterleri farklı olduğundan ,tasarımı da kendine özgüdür.Bir oyun konsolunun içerdiği birimlerle, bir mikrodalga fırının içerdiği gömülü sistemler birimleri birbirinden farklıdır. Ancak genel olarak her gömülü sistem şekildeki birimlere sahiptir:

Gömülü sistemlerin tasarım gereksinimleri şunlardır:

- İşlem Gücü

- Bellek

- Geliştirme Maliyeti

- Birim Üretim hacmi

- Beklenilen yaşam süresi

- Güvenilirlik

Bunlar dışında her sistemin kendine has başka gereksinimleri de olabilir.Örneğin pille çalışacak bir sistemde güç tüketimi de önemli bir kriterdir.

Tasarımlardaki kriterlere göre bu gereksinimlerinden bazıları arasında tercih yapmak gerekebilir. Örneğin karmaşık hesaplamaların gerekli olabileceği sistemlerde yüksek işlem gücü ihtiyacı ön planda olurken, çok büyük miktarlarda üretilecek sistemlerde düşük maliyet daha önemli olabilir.

Gömülü sistemler kullanım alanlarına göre zaman zaman oldukça kritik görevleri yerine getirebilirler.Burada oluşabilecek hatalar büyük mal ve can kayıplarıyla sonuçlanabilir.Bu açıdan bakıldığında bu sistemlerin “güvenilir” ve “hataları tolere edebilir” özellikte olmaları çok önemlidir.Bir mikrodalga fırının ya da bir oyuncağın içindeki sistemin zaman zaman hatalı çalışması çok büyük sorun oluşturmaz,ancak bir uçağın otomatik pilot sistemindeki hata birçok insanın hayatını tehlikeye atabilir.

Bugün dünyada üretilen mikroişlemcilerin/mikrodenetleyicilerin büyük çoğunluğu gömülü sistemlerde kullanılmaktadır. Genellikle 8 bit mikrodenetleyiciler yoğun olmakla beraber, 32 bitlik mikrodenetleyiciler de düşen maliyetleri sonucu artık geniş kullanım alanı bulmaktadır.

Gömülü sistemlerde tasarımcıların kullandığı temel araçlar:

- Programlayıcılar

- Hata Ayıklayıcılar (Debuggers)

- Derleyiciler

- Emülatörler

- Tümleşik Geliştirme Ortamları

şeklinde sayılabilir.

Gömülü sistemlerin donanım ve yazılım olarak iki ana bölümden oluştuğunu söylemiştik. 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ın bir arada çalışmaları gerekmektedir.Bu anlamda gömülü sistemler için “multi-disipliner” bir alan diyebiliriz.Bu alandaki mühendislerin donanım,yazılım,kontrol sistemleri vs.. gibi birçok alanda bilgi sahibi olmaları gerekmektedir.

Gömülü yazılımların karmaşıklığı artıkça ve aynı anda yapılacak işlemlerin sayısı arttığında değişik yapılara ihtiyaç duyulur.Aslında bir 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 sistemlerde bu 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 sistemleri de 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ştirmeye odaklanabilir. Arka plandaki görevlerin senkronizasyonu işletim sistemi tarafından gerçekleştirilir.

Çok geniş bir alanı kapsayan gömülü sistemlerin bütün özelliklerini ele almak çok zor olsa da bu yazıda genel özellikleri tanımış olduk.Bundan sonra değişik özellikleriyle gömülü sistemleri tanımaya devam edeceğiz.


Yazı kategorisi: Gömülü sistemler, gömülü yazılım, mikrodenetleyici | 1 Yorum »

Coşkun Askerde

Yazan: ctasdemir Nisan 22, 2007

Askerlik görevim nedeniyle uzunca zamandır yeni yazı yazamadım.İnşallah 25 gün sonra yeniden sizlerle birlikte olacağım.Bu zaman zarfında önceki yazılarımla ilgili görüş ve eleştirilerinizi benimle paylaşırsanız, bu ilerki çalışmalarımda bana yol gösterecektir.Yeniden, yeni yazılarla görüşmek üzere, hoşçakalın…

Yazı kategorisi: Diğer | » yorum bırak;

ONLAR HER YERDE:Gömülü Sistemler

Yazan: ctasdemir Kasım 6, 2006

Dikkat ettiniz mi: Etrafımızdaki akıllı cihazların sayısı ne kadar da arttı.Cep telefonlarımız artık sadece iletişim sağlamakla kalmıyor,müzik çalıyor,fotoğraf,video çekiyor,bilgilerimizi saklıyor.Çamaşır makinalarımız bile akıllı artık.Kendi bilgisayarlarını barındırıyorlar.Çevremizdeki cihazlara bir bakarsak artık birçoğunun tamamen olmasa da elektronik birimler barındırdığını görürüz:

Kişisel bilgisayar
- Yazıcı
- Tarayıcı (Scanner)
- Hesap makinesi
- Cep telefonu
- Cep bilgisayarı
- Televizyon
- Radyo / Kasetçalar
- Müzik amplifikatörü
- Video kamera
- DVD oynatıcı
- CD çalar
- Alarmlı Saat
- Fotograf Makinesi
- Elektronik daktilo
- Hırsız alarmı
- Mikrodalga fırın
- Bulaşık makinesi
- Buzdolabı
- Mutfak robotu
- Çamaşır makinesi
- Tansiyon ölçme cihazı
- Elektronik oyuncaklar

Bu liste daha da uzatılabilir.Listedeki bütün cihazların içinde birer bilgisayar lar var dersek çok da yanlış bir şey söylemiş olmayız.Hepsinin içine “gömülmüş” bilgisayarlar var.Gömülü sistemler tabiri de buradan geliyor zaten.

Gömülü sistem” herhangi bir sistemin içinde yer alan ve o sisteme “akıllılık” özelliğini veren elektronik donanım ve yazılımdan oluşan bütünü ifade etmektedir.Burada sözü edilen yazılımlar ,bilgisayarımızdaki genel amaçlı yazılımlardan farklı olarak ,kullanıcıyla direk değil dolaylı etkileşimde bulunan ve genellikle tek bir görevi yerine getiren yazılımlar.

Bugün ortalama bir aile otomobilinde 20-25 adet mikrodenetleyici kullanıldığı söyleniyor.Arabanıza girmeden önce uzaktan kumandayla kapıları açıyorsunuz,içeri girip kontağı çeviriyorsunuz.CD çalarınızdan bir parça seçiyorsunuz,emniyet kemerinizi takmadığınız takdirde bir uyarı sesiyle karşılaşıyorsunuz…Bütün bu sayılan adımların arka planında çalışan minik bilgisayarlar sözkonusu.Arabınızın güvenliğini sağlayan ve uzaktan kumandayla kontrol ettiğiniz alarmda, arabanızın ateşlemesini kontrol eden sistemde, cd çalarınızda ve aracınızdaki diğer sistemlerin merkezinde bir “mikroişlemci” görev yapmakta.Bu işlemciler de çoğu zaman birbirleriyle iletişim içindeler.

Bugün gömülü sistemler elektronik mühendisliğinin altında kendi başına bir dal haline gelmiştir.Dünyada birçok üniversitede lisans veya yüksek lisans düzeyinde “gömülü sistemler mühendiliği” programları bulunmaktadır.

Mikroişlemci teknolojisindeki gelişmelerle birlikte maliyetlerde büyük düşüşler yaşanmıştır.Böylelikle önceden ayrık elemanlarla tasarlanan sistemler bugün mikroişlemciler/mikrodenetleyiciler etrafında çeşitli çevrebirimlerinin entegre edilmesiyle gerçekleştirilmekte.Sözkonusu mikroişlemciler olunca, o mikroişlemciyi yöneten yazılım da önem kazanmakta.Bugün gömülü sistemlerin tasarımında donanım kadar yazılım da önemli bir maliyet unsuru haline gelmiştir.

Gömülü yazılımları genel amaçlı yazılımlardan ayıran en önemli özellik belki de tek bir amaca hizmet etmeleridir.Kullanım ömürleri boyunca aynı fonksiyonları gerçekleştirirler.Örneğin mikrodalga fırınızda sıcaklık ve zamanlama fonksiyonlarını kontrol eden yazılım ,fırının kullanım ömrü boyunca aynı şekilde çalışmaya devam edecektir.

Günümüzde en çok kullandığımız gömülü sistemler herhalde cep telefonlarımızdır.Her ne kadar gelişmelerle birlikte onlar da birer mini PC halini almaya başlasalarda gömülü sistemlere iyi birer örnektirler.Kendi bellekleri,işlemcileri bulunmaktadır.İçlerindeki gömülü yazılım sayesinde donanımları işlerlik kazanmaktadırlar.

Buraya kadar gömülü sistemler “kullanıcı” gözüyle bakarak tanımaya çalıştık.Bundan sonraki yazılarımda gömülü sistemlere “mühendis” gözüyle bakmaya çalışacağım.

Yazı kategorisi: Gömülü sistemler | 2 Yorum »

PROGRAMLAMA SADECE BİLGİSAYARCILARIN İŞİ Mİ? – 2

Yazan: ctasdemir Ağustos 21, 2006

HAYIR, ELEKTRONİKÇİLERİN DE İŞİ :)

Birkaç ay önceki “programlama sadece bilgisayarcıların işi mi?” adlı yazımda programcılığın elektronik mühendisliği alanındaki önemini tartışmıştım. Şimdi de aynı konuda yazmaya devam edeceğim.

Programlama elektronikçilerin de işidir diyoruz. Ancak bilgisayarcıların programlaması ile elektronikçilerin programlaması aynı mıdır? Önce buradan başlayalım. Bu konudaki kafa karışıklıklarımıza ilk örneği üniversitelerimizdeki “mikroişlemciler” dersinden verebiliriz. Bu ders aynı isimle birçok elektronik ve bilgisayar mühendisliği bölümlerinde okutulmaktadır. İki bölümün ortak dersi gibi görünmesine rağmen ayrım yapılması gereken noktalar var.

Çoğu zaman bilgisayar bölümündeki öğrencilere 8051 gibi “mikrodenetleyicilerin programlanması gösterilirken,elektronik bölümündeki öğrencilere 8088,80286 vs.. gibi Intel’in x86 tabanlı mikroişlemcilerinin öğretildiği görülebilmektedir.Bu “mikroişlemci ve mikrodenetleyici “ arasındaki farkın tam olarak anlaşılamamış olmasından kaynaklanmaktadır.

Mikroişlemciler başlangıçta büyük çaptaki hesaplamaların hızlıca yapılabilmesi için üretilmişlerdi. Daha sonra geliştikçe ve PC denilen kişisel bilgisayarlar ortaya çıktıkça, hesaplama dışında teknik tasarımlardan, eğlenceye birçok alanda kullanılmaya başlandılar. Böylelikle de mikroişlemciler elektronik alanından koparak bilgisayar mühendisliği adı altında ayrı bir dalın konusu içine girdiler.

Yarıiletken teknolojisindeki gelişmeler birim hacme sığdırılabilen transistör sayısında müthiş artışlara yol açtı. Böylelikle çok daha büyük performansa sahip mikroişlemciler üretildi.

Elektronik dünyası da kendi içinden çıkan bu teknolojiden faydalanmasını bildi. Daha önceki tasarım yöntemleriyle oluşturulan “sabit” fonksiyonlu devrelerin yerini, programlanarak değişik fonksiyonlar gerçekleştirebilen “mikrodenetleyiciler “ aldı. Mikrodenetleyici tabanlı sistemler bugün “gömülü sistemler “ adı altında ayrı bir mühendislik dalı da olmuştur. Bunu başka bir yazının konusu olmak üzere burada bırakıyorum.

Mikrodenetleyiciler bugün çok yüksek hızlara ve birçok değişik fonksiyona sahiptirler. Söylenenlere göre bugün ortalama bir aile otomobilinde 20’den fazla mikrodenetleyici bulunmaktadır. Evimizde kullandığımız birçok cihazda da bu minik bilgisayarlar görev yapmaktadır.

Bugün mikrodenetleyiciler elektroniğin içine bu kadar girmişken, programlama bilgisinin elektronikçiler açısından da ne kadar önemli olduğu açıktır. Burada kastedilen programlama mikrodenetleyici programlamasıdır. Peki, mikroişlemciler nasıl programlanmaktadır?

“Ben acayip assembly bilirim!”

MİKRODENETLEYİCİLERİN PROGRAMLANMASI:

“Ben acaip assembly bilirim” diyen birini gördüğünüzde ona ,”hadi be sende “ diyebilirsiniz..Evrensel bir assembly dili olmadığı gibi assembly bilmek diye bir şey de yoktur.Ancak şöyle cümleler anlamlı olabilir:”x86 assembly bilirim,8051 assembly’si biliyorum,PIC assembly öğrenmek istiyorum”

Assembly dili bir mikroişlemcinin anadilidir diyebiliriz. Assembly komutlarının her biri işlemci için bir anda gerçekleştirebileceği bir işlemi belirtir. Bilgisayar yazılımcılığı açısından bakarsak assembly dillerinin kullanımı çok kısıtlı kalmıştır. Artan karmaşıklığın altından bu şekilde kalkılması da imkansız zaten. Yazılımlar yüksek seviyeli dillerle yazılmaktadır.

Elektronik alanında assembly hala önemini korumaktadır. Çünkü bu alanda performans önemli bir kriterdir. Örneğin en çok kullanılan 8 bitlik mikrodenetleyicilerde assembly’nin sağladığı performans göz ardı edilemez kuşkusuz. Ancak günümüzde oldukça gelişen derleyiciler sayesinde C gibi orta seviyeli dillerde de yüksek performans alınmaktadır. Zaten yapılan araştırmalar dünyada bu alanda en çok kullanılan dilin C olduğunu göstermektedir. C kullananların büyük bölümü aynı zaman da assembly de kullanmaktadır.

PROGRAMLAMANIN ab C’Si

C programlama dillerinden belki de en ünlüsüdür.70’li yıllarda Brian W. Kernighan

Dennis M. Ritchie tarafından geliştirilmiştir. İlerleyen yıllarda C dilinin popüleritesi oldukça arttı. Dilin standartlaştırılması için 1983 yılında ANSI (Amerikan Ulusal Standartlar Enstitüsü ) tarafından bir komite oluşturuldu. Komite çalışmasını 1989 yılında tamamladı ve bugün geniş kabul gören ANSI C ortaya çıktı.ANSI C ile anlatılmak isteneden ANSI komitesinin 1989 yılında kabul ettiği standart C’dir.Bir kere ANSI C öğrenildiğinde bu dille uyumlu bütün derleyicilerin kullanımı kolaylaşmaktadır. ANSI C için en temel kaynaklardan biri dilin yaratıcıları Brian W. Kernighan ve Dennis M. Ritchie tarafından yazılan ANSI C kitabıdır.Bunun dışında C dilini anlatan birçok kitap bulunmaktadır.

Yapılan araştırmala gösteriyor ki mikrodenetleyi tabanlı tasarımlarda büyük oranda C dili kullanılmaktadır* C dilini kullananların büyük çoğunluğu da kullandıkları mikrodenetleyicinin assembly dilini bilmekte ve kullanmaktadırlar.

Buradan mikrodenetleyici tabanlı tasarımda yol almak için bir yol haritası çizecek olursak:

- Kullandığımız mikrodenetleyiciyi iyi tanımalıyız.Mümkünse az da olsa assembly ile programlama yapmalıyız

- ANSI C ‘yi öğrenmeliyiz.ANSI C öğrenirken ilk başta PC programlama yaparak aşinalık kazanabiliriz.

- Mikrodenetleyici ile ufak projeler yaparak deneyim kazanmalıyız.

İnternetteki bazı arkadaşların “C öğrenmek için kursa gitmeli miyim, bana faydası olur mu?” türünden sorular sorduklarını görmekteyim. Tabiki herkesin kendine has bir öğrenme stili vardır. Ancak şunu belirtmek gerekir ki bu tür kurslarda PC tabanlı programlama anlatılmaktadır. Dolayısıyla mikrodenetleyici programlama ile ilgili kavramlara yer verilmemektedir. Ancak ANSI C dilini öğrenmek için bu tür kurslardan faydalanılabilir. Gerisi de sizin kişisel çabalarınıza bağlı.

Umarım bu yazı bir ölçüde de olsa sizlere faydalı olur. Başka bir yazıda görüşmek üzere…

*C dilinin kullanımına dair örnek bir araştırma:

http://www.ertl.jp/ITRON/survey99/graph-e/lang1.gif

- C programlama dili ile ilgili wikipedia sayfası:

http://tr.wikipedia.org/wiki/C_programlama_dili

Yazı kategorisi: Gömülü sistemler, gömülü yazılım | » yorum bırak;

MESLEK SEÇİMİ:

Yazan: ctasdemir Ağustos 6, 2006

Bugünlerde üniversite adayları tercih telaşı içindeler.Birçok forumda da “hangi bölümü seçmeliyim?” sorularının sorulduğunu görmekteyim.Tabiî ki insanlar hayatlarını etkileyecek olan bu kararı verirken dikkatli olmaya çalışıyorlar.Ancak hala meslek seçiminde belli başlı hataların yapıldığı görülmekte.Hala insanlar belirli “moda”ların peşinden giderek seçimlerini yapabiliyorlar.Sadece puanı yüksek diye mühendislik seçenler mi dersiniz,”şu üniversitenin makine bölümünü mü yoksa bu üniversitenin elektronik bölümünü mü seçeyim” diyenleri mi? Bu kadar farklı alanlar da değişik tercihler sözkonusu.Bu konuda kimseyi de suçlayamayız tabiî ki.ÖSS hazırlığının büyük bir rant haline geldiği bu sistem içinde mesleklerin tanıtımı,insanların kendilerini tanımaları için rehberlik hizmetleri oldukça ihmal ediliyor.Çoğu zaman dersaneler başarılarını yüksek göstermek için öğrencilerinin tercih formlarını tıka basa doldurabiliyorlar.

Bu önemli dönemde tercih yapacak arkadaşlara en büyük önerim, sevebilecekleri, ilgi duyabilecekleri alanları seçmeleri. Sırf “havası” veya “parası” yüzünden bölüm seçmemeleridir.

İlgi duymanın da ne olduğunu tam olarak açmak gerekmekte. Örneğin elektronik cihazlara meraklı olmak ,elektronik mühendisliği seçmek için yeterli bir sebep midir? Ya da bilgisayarla vakit geçirmekten hoşlanan biri bilgisayar bölümünü seçmeli midir? Bu tür sebeplerle mühendisliği seçenler, daha sonra mühendisliğin ağır matematik öğretimi nedeniyle sıkılabilmekte,umutsuzluğa düşebilmektedirler.

Tercih yapacak arkadaşlar kendilerini iyice tanımalı ve ona göre seçim yapmalıdırlar.Bu konuda forumlardan,etrafınızdaki deneyimli insanlardan yardım alabilirsiniz.Ama tabi en son kararı yine kendiniz vermelisiniz.Aşağıdaki linkte Elektrik Mühendisleri Odası’nın sitesinde bulunan faydalı yazılar var.Orada ayrıca elektrik/elekronik mühendisleri adı altındaki bölümlerin “saçmalığına “ da dikkat çekilmiş.Okumanızı tavsiye ederim:

http://www.emo.org.tr/genel/bizden_detay.php?kod=48840&tipi=2&sube=0

Yazı kategorisi: Eğitim, Mühendislik | » yorum bırak;