26.09.2011

Acemilik Döneminden Anılar - 1

Selam Millet;

Biliyorum size teknik yazılar sözü verdim lakin yazarken fark ettim ki teknik yazı yazmak umduğumdan daha zormuş. Halbuki bildiri yazmış biri olarak bu işin bu kadar da zor olmaması gerekiyordu. uzun lafın kısası blog da yazı görmek isteyen takipçilerime teknik yazı yetiştiremediğim zamanlarda acemilik dönemlerimden anılar aktarmaya karar verdim.

Üniversite ikinci sınıfı bitirdiğimde yaz dönemi zorunlu stajımı yapmak için uygun bir yer arıyordum. Eğer ikinci sınıf biri iseniz sizi staja kabul etmemek için ellerinden geleni yapıyorlar buna emin olabilirsiniz. Neyse bir şekilde stajımı ayarladım ve staja başladım.

Stajdayken garip bir iş geldi.
Bazı yazıcılarda çıktı adedi sınırlayan bir denetleme döngüsü varmış. Bu döngü değişkeni çıktı alındıkça bir eepromdan kota değerini düşüyormuş. Bu eeprom da güvenlikli olsun diye şifreli korumaya sahipmiş. İşin garibi kotayı tekrardan yükleyebilmek için cihaz yurt dışına gidiyormuş. Amaç bu harici eeprom içine istenilen değerin yazılmasını sağlamak.

Bu konuyu araştırmam için bana DS2432 ve PIC16F877A verdiler. DS2432 tek kablolu (one-wire) haberleşme protokolüne sahip bir eeprom. İlk gördüğümde şaşırdığım bir bağlantı şekli vardı.altı bacaklı entegrenin sadece iki bacağı kullanılıyordu. Bunlarda biri toprak hattı diğeri ise haberleşmenin yapıldığı hat. Bu bacak üzerinden aynı zamanda enerjisini de alıyordu. PIC16F877A gömülü sistemler ile uğraşmak isteyen bir kişinin ilk öğrendiği işlemcilerden biridir. Çok basit bir yapısı olmakla birlikte bir çok çevresel birimi barındırmasıyla yeni başlayanlara çeşitli uygulamalar yapabilme şansı verir.

İki hafta DS2432 nin 24 sayfalık teknik dökümanı ezberleyecek kadar okuduktan sonra tek kablolu iletişim ile alakalı kısmı hallettik ( Burada internetten bulduğumuz hazır bir kütüphanenin de çokça faydaları oldu :)). Bu kısmı halledince eeprom içerisindeki tüm bilgileri okuyabilir hale geliyorsunuz ama olay yazma kısmına gelince işler değişti. Çünkü yazma yapabilmeniz için 160-bitlik SHA1 algoritması ile şifrelenmiş bir kod göndermeniz gerekmekte. İşin bu kısmında da aslında çok problemli değil zira teknik dökümanda bu işin nasıl yapılacağını anlatmışlar. Ama bir türlü beceremedim. Sonra acaba bu işi yapan bir kütüphane de var mıdır diye ararken o kütüphaneyi de buldum. Artık her şey tamam projeyi bitirmeme çok az kaldı diye sevinirken derleyiciden daha önce hiç görmediğim ( şu ana kadar da bir daha hiç görmek nasip olmadı) bir hata ile karşılaştım. "Not enough RAM for all variables". Az buçuk ingilizcem sayesinde fazlaca değişken kullandığımızı hemen fark ettim ama 160 Bitlik kodu oluşturmak için bir sürü değişken ile işlem yapmak zorunluluk olduğundan bu sorunu gideremedim.

Şimdi düşününce bilgisayarınızın RAMi size yetmiyorsa ne yapıyorsunuz RAMi arttırıyorsunuz değil mi? O an aklıma böyle bir şey gelmedi çünkü dünyam gerçekten küçüktü ve bildiğim işlemciler PIC16F628A ve PIC16F877A idi ve 877 bu işi çözemiyorsa ne yapabilirdim ki?

Merak etmeyin o iş yarım kalmadı. Bir kaç ay sonra USB ile ilgili bir iş yapmam için bana PIC18F4550 verdiler ve o işi yaparken bu işlemcinin eeprom projesini yapabileceğini anladım ve o proje kodlarını güncelledim ve işi hallettim.

Biliyorum bu yazı sizi çok bağlamadı aklınız USB projesine takıldı. Ama güzel bir bilgi ile bitireyim. Akbillerin içerisinde de DS serisinde SHA1 algoritma korumasıyla bilgi saklayan bir eeprom var. Bu bilgi çok işe yaramasa da havalı.

kendinize iyi davanın.

Hiç yorum yok:

Yorum Gönder