Keil ile Arm Programlama - 5
USART
Dostlar merhaba. Arm programlama yazılarına kaldığımız yerden devam ediyorum. Bugün Arm'da haberleşme protokolleri üzerine konuşacağız ve Keil'de bunu nasıl programladığımızı öğrenmeye çalışacağız.
Haberleşme protokollerinde amaç bilginin bir cihazdan mikrodenetleyiciye veya mikrodenetleyiciden bir cihaza gönderilmesini sağlamaktır. Farklı bir tanımlaması ise ; 0 ve 1'lerden oluşan verileri 2 dijital sistem arasında alma - gönderme işlemlerine haberleşme protokolleri denir. Bu protokollerin çeşitli yöntemleri bulunmakla birlikte hepsinin genel adına " Usart " denir. Usart'ın açıklaması kısaca bu şekilde diyebiliriz.
Haberleşme protokolleri fiziksel yapılarına göre 2'ye ayrılır ;
- Seri Haberleşme
- Paralel Haberleşme
Paralel haberleşmede bilgiler alıcıya paralel data hatları üzerinden gönderilir.
Bu haberleşme yönteminde bilgiler alıcıya seri haberleşme yöntemine göre daha hızlı gönderilir. Bu sebeple hız gerektiren uygulamalarda tercih edilir. Paralel haberleşmenin dezavantajı ise gönderilen bilginin bit uzunluğu kadar data hattı kullanılması gerekmesidir. Çok fazla pin kullanıldığı için tüketilen enerji miktarı ve maliyet artar.
Seri haberleşmede ise bilgiler tek bir data hattı üzerinden gönderilir.
Bu haberleşme yönteminin avantajı daha az fiziksel pin kullanmasıdır ve hız gerektirmeyen uygulamalarda tercih edilir. En çok kullanılan seri haberleşme protokolleri ise şunlardır ;
- SPI
- I2C
- RS 232
- RS 485
- UART
- USB
RS-232, 10m'ye kadar olan uzaklıklara veri gönderir. RS-485'de ise bu mesafe 1 km'ya kadar çıkabilmektedir. I2C ise 70 cm ila 100 cm arasındaki mesafelere veri alıp gönderebilir. SPI haberleşme de bu mesafe diğerlerine göre daha düşüktür ve maksimum 30 cm ile sınırlıdır. Projelerimizde kullanacağımız haberleşme protokolünü seçerken bu mesafelere dikkat etmek zorundayız. Aksi takdirde veriler hatalı bir şekilde gidecektir.
RS-232 İLETİŞİMİ
RS-232'de veriler 8 bitlik karakterler halinde iletilmektedir. Veriler hatta iletildikten sonra alıcı sürekli olarak hattı denetler. Start bitini gören alıcı stop bitini görene kadar verileri okur.
Parity Bit : Kendisinden önce gelen verilerin bozulup bozulmadığını kontrol eden bit'tir. Odd, Even ve Noun olmak üzere 3 tipi vardır.
odd : tek - even : çift - none : yok
Bu haberleşme portu - 12 V ile 12 V arasında gerilimle çalışır. Bu gerilimi 3V - 5V arasında dönüştürebilecek entegreler bulunmaktadır. ( Ör : Max232 )
Şimdi artık Keil'de kodları nasıl yazacağımıza geçebiliriz. Kodlara geçmeden önce ise bilmek gerekir ki mikrodenetleyeciler çoğunlukla " C " diliyle programlanır ve C gibi dillerde string veri tipi tanımlı değildir. String yerine gönderilecek veri chat tipinde bir karakter olmalıdır.
String ifadeleri haberleşme protokolleri ile gönderebilmek için her bir karakter tek tek gönderilmelidir.
Kodlar ;
Yine satırların yanına açıklamalarını yazdım. Umarım faydalı olmuştur. Sorularınızı yorum kısmına yazabilirsiniz.
Ek Notlar ;
- USB/TTL dönüştürücü, usb portundan gelen bilgiyi işleyerek RS-232 iletişim protokolüne dönüştürür. Stm32f4 ile gerçekleştirdiğiniz projelerde bu dönüştürücüyü tercih edebilirsiniz. Kolaylık sağlar.
- USB/TTL Converter cihazı için kullanılabilecek 2 adet ücretsiz arayüz vardır. Bunlardan biri Arduino Ide diğeri ise Termite'dir.
çok teşekkürler. Çok düzgün ve açıklayıcı olmuş. Devamına HID ile yapılmış bir versiyonda anlatılırsa çok güzel olur.
YanıtlaSil