C dilini öğrenmeye gerek olduğunu düşünüyorum. Sanırım gömülü sistemler için yazılım yapacaksın. Gömülü sistem, kullandığımız cihazlar için olan yazılımlardır. Örneğin metrolardaki aburcubur otomatları. Parayı atarsınız, rakamı girersiniz ve ürünü alırsınız. Bunlar bilgisayarla değil, kendilerine özel yazılmış yazılımlarla çalışır.
Gömülü sistemi anladıysak bu yazılımlar nasıl oluyor biraz ondan bahsedelim. Aslında kendine has makine dili vardır fakat bu insanlar için anlaşılmaz. Bu yüzden bilgisayardaki not defterinde bile yazılabilen asm kodlama yapılır. Ama bu da karışıktır. Bu yüzden basic kodlama vardır. Ama bu da karışık gelebilir. Bu yüzden C kodlama yapılır. Aynı yazılımı asm, basic, c yapabilirsiniz size kalmış.
Peki bu gömülü yazılımlar neyle yapılır? Mikroişlemcilerle. Piyasada çeşit çeşit mikroişlemciler vardır. Pic, atmel, STM 32 ya da temeli atmel olan ardunio olabilir. Bunları bilmek için aynı zamanda elektronik de bilmelisiniz.
Peki mikroişlemciler nasıl çalışır? Öncelikle dahili veya harici osilatör devreleri vardır. Bu osilatör devreleri yazılım satır satır ilerlerken ne kadar hızda ilerleyeceğini belirler. Örneğin 1 megahertz bir osilatör demek, yazılımın satırlarının 10 mikrosaniyede bir alt satıra geçeceği demektir. Bu mikroişlemcinin hızı olmuş olur.
Mikroişlemcilerin en temel özelliği bacaklarının (yazının devamında pin olarak bahsedilecektir) giriş veya çıkış olarak ayarlanabilmesidir. Buton, anahtar, potansiyometre, sensör, ldr, ptc, ntc gibi şeyler giriş olarak ayarlanır. Led, motor, hoparlör, ekran gibi şeyler çıkış olarak ayarlanır.
Şimdi asıl konumuza dönelim. ikili sayılar. Yani binary sistemler. Gömülü yazılımlarda bacaklar (pinler) gruplanır ve port olarak adlandırılır. A portu, B portu, C portu gibi. Örneğin siz B portu çıkış olarak ayarlayabilirsiniz.
Diyelim ki B portumuzdaki ledlerin hepsini yakmak istiyoruz. B portumuzda 8 bacak var. O zaman 11111111 yapabiliriz. Ya da sağdan 3. Ledi yakmak istiyoruz sadece 00000100 yapabilirsiniz. Burdan şunu anlıyoruz. 1 elektrik var, 0 elektrik yok demektir. Her rakam 1 pindir.
Bizim onluk sayı sistemimize decimal denilir. 0 1 2 3 4 5 6 7 8 9 rakamları olur.
ikilik sayı sistemine ise binary denilir. 0 1 olur.
8'li sayma sistemine octal denilir. 0 1 2 3 4 5 6 7 rakamları olur.
16'lı sayma sistemine hexadecimal denilir. 0 1 2 3 4 5 6 7 8 9 A B C D E F rakam ve harflerinden oluşur.
Bu kadar detaylı yazmamın sebebi bilimsel hesap makinesinde bunları birbirleri arasında çevirebilirsin. Hesap makinesinde;
Decimal: DEC
Binary: BIN
Octal: OCT
Hexadecimal:HEX olarak yazacaktır.
Asıl konumuz olan Binary ile devam edelim. ikilik sayı sistemleri genelde yazılım içinde bacaklara elektrik ver ya da verme şeklinde kullanılır. ikinci olarak mantıksal işlemlerde kullanılır. 3. Olarak adresleme ve şifreleme işlemlerinde kullanılır. ilk kullanımı için yukarda örnek vermiştim. 00000010 gibi. ikinci pinde elektrik var diğerlerinde yok. Burada bir bilgiden daha bahsetmek istiyorum. 8 hane varsa bu rakamda biz diyebiliriz ki bu rakam 8 bitliktir. Kaç haneyse o kadar bitlik olur bilgi.
Mantıksal işlemler: Ve kapısı, Veya kapısı gibi işlemlerfir. Ve kapısı çarpma işlemini, Veya kapısı toplama işlemini ifade eder. Tabii ki başka birçok kapı var ama onlara değinmeyeceğim. Kapı denilen sistem şudur. Girişlerimdeki bacaklarda elektrik olup olmamasına göre çıkışta elektrik olup olmayacağını belirler. [1]
Ve kapısı: Bütün girişleri 1 olursa (elektrik varsa) çıkış 1 olur. Girişlerinden bir tanesi bile 0 (elektrik yoksa) ise çıkış 0 olur.
Veya kapısı: Girişlerden Herhangi birisi 1 ise çıkış 1 olur.
Değil kapısı: Giriş 1 ise çıkış 0, giriş 0 ise çıkış 1 olur.
Adresleme olarak kullanmak: Bazı protokoller var. Ben ana makinemden 25. Cihaz şu şu şu işlemleri yapsın diyebilirim. 25. Cihaz'a ben 25. Cihaz olduğunu tanıtmam gerekir. Bu cihazlarda ufak switchler olur. Hatta genelde 8'li olur bu ufak anahtarlar. İşte bu noktada bizim notmal sayıları binary sayılara çevirmemiz gerekebilir.
Öncelikle örnek saymayı yapayım.
0: 0
1: 1
2: 10
3: 11
4: 100
5: 101
6: 110
7: 111
8: 1000
Ben burda bit sayısını gerekli olduğu kadar kullandım. Ama kişi isterse 8 hanenin hepsini kullanabilir. Örneğin 8 decimal sayısı için;
8: 00001000 bu şekilde de yazılabilir.
Şimdi normal onluk sayılara nasıl çeviriyoruz ona bakalım. En sol taraftaki rakamdan başlayarak üzerine hayali rakamlar koyuyoruz. Bunlar;
64 - 32 - 16 - 8 - 4 - 2 - 1
0 - 0 - 0 - 1 - 0 - 0 - 0 şeklinde olacaktır. Görüldüğü gibi 8 hanesinin altında 1 var sadece. Şimdi 25. Adresimizi adreslemek için hangi anahtarları 1 yapmalıyız? 16, 8 ve 1 hanelerinin anahtarlarını 1 yaparsam 25 sayısını bulabilirim. Yani 0011001 böylece 3 haneyi topladığımda 25 sayısını bulabilirim. Artık cihazımı 25 olarak ayarladım. Bu sayede ana makineden 25. Cihaz şunları yapsın dediğimde, 25. Cihaz bilgilerin kendine geldiğini bilecektir.
Bunların haricinde şifreleme olarak da kullanımı var. Bcd kodlama gibi şeyler ama bunları bu aşamada öğrenmen gereksiz. Bunların yanısıra digit göstergelerde kodlamalarda kullanılabilir.
Kaynaklar
-
lektrikport. Lojik Devreler (Kapılar) | Elektrikport Akademi. Alındığı Tarih: 13 Kasım 2022. Alındığı Yer: elektrikport
| Arşiv Bağlantısı