1 / 19

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama. TUNA AYAN www.tuna-ayan.com tunayan@gmail.com. BAŞLAMADAN ÖNCE. GPS Modülü İle Konum Belirleme I2C Haberleşme Protokolü Magnetometre İle I2C Haberleşmesi GPIO, ADC , Timer ve UART Uygulamaları. GPS İLE KONUM BELİRLEME.

yori
Download Presentation

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama TUNA AYAN www.tuna-ayan.com tunayan@gmail.com

  2. BAŞLAMADAN ÖNCE GPS Modülü İle Konum Belirleme I2C Haberleşme Protokolü Magnetometre İle I2C Haberleşmesi GPIO, ADC, Timerve UART Uygulamaları

  3. GPS İLE KONUM BELİRLEME GPS(Global PositioningSystem): Uydular ile arasındaki mesafeyi ölçerek konumunu bulan sistemdir. Bu sistem 24 adet uydudan oluşur. GPS alıcısı ise bu uydulardan gelen sinyal zamanlarını yorumlayarak konumunu hesaplar. Konum hesaplamasını üçgenleme metodu olarak adlandırılan bir metot kullanarak gerçekleştirir.

  4. GPS İLE KONUM BELİRLEME GPS(Global PositioningSystem): Uydular ile arasındaki mesafeyi ölçerek konumunu bulan sistemdir. Bu sistem 24 adet uydudan oluşur. GPS alıcısı ise bu uydulardan gelen sinyal zamanlarını yorumlayarak konumunu hesaplar. Konum hesaplamasını üçgenleme metodu olarak adlandırılan bir metot kullanarak gerçekleştirir.

  5. GPS İLE KONUM BELİRLEME GPS Nasıl Çalışır: GPS ile uydular arasında her hangi bir açı bilgisi gelmez. İlk olarak 24 uydunun hepsiyle iletişime geçer. Daha sonra kendisine en yakın olan 3 adet uydu yardımıyla konumunu belirler. Uydudan uzaklık bilgisini aldıktan sonra o uyduyu merkez kabul ederek çevresinde yarı çapı uzaklık olan bir çember çizer.

  6. GPS İLE KONUM BELİRLEME GPS Modul Uzaklık Bilgisini Nasıl Kullanıyor : Yol = Hız x Zaman Zaman olarak sinyalin seyahat zamanı bilgisini kullanıyor. Uydu sinyal cevabını gönderirken o anki saat bilgisini de gönderecektir. Her uydudan aynı anda veri alındığı kabul edilmektedir. GPS hatalarının nedenlerinde birisi budur. Hız olarak sinyalin hızı kullanılır. (ışık hızı)

  7. GPS İLE KONUM BELİRLEME GPS Modul Uzaklık Bilgisini Nasıl Kullanıyor : Yol = Hız x Zaman Zaman olarak sinyalin seyahat zamanı bilgisini kullanıyor. Uydu sinyal cevabını gönderirken o anki saat bilgisini de gönderecektir. Her uydudan aynı anda veri alındığı kabul edilmektedir. GPS hatalarının nedenlerinde birisi budur. Hız olarak sinyalin hızı kullanılır. (ışık hızı)

  8. GPS İLE KONUM BELİRLEME GPS Modül Hataları: GPS sinyallerini gönderirken havadaki partiküller nedeniyle sinyal hızı yavaşlayabilir(ışık hızı) GPS ve Uydu arasındaki zaman kaymaları(saat hataları) sinyal zamanını etkilecektir. Hataların Giderilmesi: Bu hatalar çift yönlü frekans hesabı ile iki taşıyıcı sinyal arasındaki gecikme kullanılarak çözülebilmektedir. A-GPS(assisted GPS) yöntemi ile hatalar azaltılabilmektedir. Saat doğruluğu için GPS modül üzerinde atom saati kullanılarak zaman kayması giderilebilir.

  9. GPS İle Konum Belirleme GPS Modül Çıktılarının Yorumlanması: GPS Modül üzerinde NMEA protokolü ile bilgileri alacağız. GPS modül bize bir çok bilgi göndermektedir. Data paketleri içerisinden istediğimiz verileri ayrıştırmak ve yorumlamak zorundayız. GGA paket verisi üzerinden koordinat bilgilerimizi çekeceğiz.

  10. I2C HABERLEŞME PROTOKOLÜ I2C Nedir: I2C bir haberleşme protokolüdür. 2 kablo ile bir çok cihaza erişebilmemizi sağlar. Hızlı olması bir çok cihazla sadece iki kablo üzerinden haberleşmesi tercih nedenleridir. Kısa mesafeli bir protokoldür.

  11. I2C HABERLEŞME PROTOKOLÜ I2C Özellikleri: SDA(Data kablosu) ve SCL(Clock kablosu) kabloları ile haberleşme gerçekleştirilir. SDA ve SCL çıkışları open-drain yani ‘low’ konumda sürülürler.(0volt) Sistem pull-up direnç ile sürülmek zorundadır. Sisteme bağlı cihaz sayısı pull-up direnç sayısını etkilemez. 1 tane yeterlidir.

  12. I2C HABERLEŞME PROTOKOLÜ I2C Özellikleri: Master ve Slave olmak üzere iki moda sahiptir. Master komut veren slave ise cevap veren kısımdır. I2C destekleyen bir modül iki şekilde de ayarlanabilir. Data transferini her zaman master başlatır. Slave data transferini başlatamaz. SDA bacağında bilgi çift taraflı gönderilebilir. SCL kısmında bilgi taşınmaz. Sisteme ortak clock vermek senkronizasyonu sağlamak için kullanılır.

  13. I2C HABERLEŞME PROTOKOLÜ I2C Nasıl Çalışır: Master slave ile konuşmak istediğinde önce start sinyali gönderilmelidir. Veri gönderildikten sonra ise stop sinyali gönderilmelidir. Start yada stop işlemi SCL saati 1 konumunda iken SDA nın değişmesine göre belirlenir. Veri transferi tamamlandıktan sonra bir adet ACK sinyali oluşur. Bu yüzden 8 bitlik veri transferinde 9 bit çıktı alırız.

  14. I2C HABERLEŞME PROTOKOLÜ I2C Nasıl Çalışır: Veri 8-bit paketler halinde taşınır. Her bir bit SDA yoluna MSB(Mostsignificant bit) olarak atanır. Standart SCL hızı 100KHz dir. 400KHz e kadar çıkabilir. Cihazlar ile haberleşebilmek için cihazların bir kişisel adresi olmak zorundadır. Bu adres slave adres olarak tanımlanır. Slave adresleri 7 bit tir.

  15. I2C HABERLEŞME PROTOKOLÜ I2C Algoritması: Master Start sinyalini gönderir. Master Cihaz adresini gönderir.(Slave adres) Slave üzerinden okumak ya da yazmak istediği register adresini gönderir. Yazma ya da okuma yapar. Bütün yazma ve okumaları bittikten sonra stop sinyalini gönderir.

  16. MAGNETOMETRE İLE I2C HABERLEŞMESİ Magnetometre Nedir: Manyetik alanın doğrultusunu hesaplamamıza yarayan modüldür. Hesaplama birimi tesladır. Metal detektörlerde kullanılabilir. Yönelme uygulamalarında kullanılır.

  17. MAGNETOMETRE İLE I2C HABERLEŞMESİ MAG3110: 3 eksenli bir magnetometre modülüdür. I2C protokolü ile çalışır. I2C adresi = 0x0E

  18. MAGNETOMETRE İLE I2C HABERLEŞMESİ StellarisWare I2C Algoritması(yazma işlemi): I2C Modülü aktif hale getirilir. SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0); LM3S811 i master olarak tanımla. Hızını 100kbps olarak tanımla I2CMasterInitExpClk(I2C0_MASTER_BASE, SysCtlClockGet(), false); Cihazın Slave adresini tanımla. false yazma true okuma anlamına gelir. I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, SLAVE_ADDRESS, false); Gönderilecek datayı buffer üzerine al I2CMasterDataPut(I2C0_MASTER_BASE, ulDataTx[i]); Start sinyali ile birlikte gönderimi başlat. I2CMasterControl(I2C0_MASTER_BASE,I2C_MASTER_CMD_BURST_SEND_START); Transfer bitene kadar bekle while(I2CMasterBusy(I2C0_MASTER_BASE)) Veri gönderme bittikten sonra stop sinyalini gönder. I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_BURST_SEND_FINISH);

  19. MAGNETOMETRE İLE I2C HABERLEŞMESİ StellarisWare I2C Algoritması(okuma işlemi): Önce magnetometre üzerinde okunacak reg adresi sisteme yazma işlemi ile yazılır. Ardından okuma yapılır. I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, SLAVE_ADDRESS, false); I2CMasterDataPut(I2C0_MASTER_BASE, 0x01); I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_SINGLE_SEND); Slave adresi bu sefer okumak için gönderilir. (true) I2CMasterSlaveAddrSet(I2C0_MASTER_BASE, SLAVE_ADDRESS, true); Data okuma isteği gönderilir. I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START); Transfer bitene kadar beklenir. while(I2CMasterBusy(I2C0_MASTER_BASE)) Veri kaydedilir. Data[0] = I2CMasterDataGet(I2C0_MASTER_BASE); Data çekilmeye devam edilebilir. I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_BURST_RECEIVE_CONT) while(I2CMasterBusy(I2C0_MASTER_BASE)) Okuma bitince stop sinyali gönderilir. I2CMasterControl(I2C0_MASTER_BASE, I2C_MASTER_CMD_BURST_RECEIVE_FINISH);

More Related