Bir Modüler Kontrol Kartı Tasarımı
Özet: Gömülü elektronik cihaz ve sistem tasarımlarında modüler donanımsal yapı çok önemli bir ihtiyaçtır. Modüler sistem birimler ile araştırma-geliştirme zamanı kısalır, geliştirme maliyetleri düşer, verim artar, esneklik artar. Elektronik cihazlar mikroişlemci, giriş-çıkış arayüzleri, güç birimleri v.b. farklı işlevlere sahip bloklardan oluşmaktadır. Her blok kendine özel işlemleri yerine getirmektedir. Farklı işlevlere ihtiyaç oldukça da bu blokların değiştirilmesi gerekliliği ortaya çıkmaktadır. Modüler olmayan sistemlerde bu değişiklik uzun zaman almakta ve ürün maliyetini de arttırmaktadır. Elektronik cihazlarda malzeme ve tasarım maliyeti en yüksek olan birim mikroişlemci içeren kontrol ünitesidir. Bu çalışmada, kontrol ünitesinin modüler tasarımı uygulaması Sodimm arayüzü kullanılarak sağlanmıştır. Bu kartın gerçeklenmesi sırasında görüntü ve ses işlemlerini gerçekleştiren bir mikroişlemci, NAND flash, DDR2 RAM ve güç yönetim entegresi kullanılmıştır. Ses çalabilme, LCD çalıştırma, SD kart ve USB çalıştırma gibi birçok özelliği destekleyebilen, Linux işletim sistemi ile çalışan, Sodimm arayüzü ile modülerliği sağlanmış, üzerinde yazılım geliştirilebilecek bir kontrol kartı tasarlanmıştır.
Anahtar Sözcükler: Modüler donanım tasarımı, Sodimm arayüzü, Kontrol kartı tasarımı.
A Modular Controller Board Design
Abstract: Modular hardware structure is very important requirement in electronics and embedded system design process. Research and development time is shortened, development costs are reduced, productivity is increased, and flexibility is increased by use of modular units. Electronic devices are composed of blocks with different functions, such as microprocessors, input-output interfaces, power units etc. Each block is fulfilling its own special operations. In non-modular systems, these changes take long time and increase the product cost. In embedded electronic devices that have microprocessors, highest material and design cost occurs with the control unit which contains microprocessors. In this study, the modular design of the control unit application has been achieved by using Sodimm interface.
During the implementation of this project, a microprocessor that performs video and audio processing, an NAND flash, a DDR2 RAM and a power management IC is used. Thus, a control board which can support many features like playing audio, running LCD, support SD cards and USBs, working with Linux operating system, the modularity provided by Sodimm interface, supported for software developed is designed.
Keywords: Modular hardware design, Sodimm interface, Controller card design.
1. Giriş
Günümüzde, gelişen teknoloji ile birlikte gömülü sistemlerde modüler yapılar ön plana çıkmaktadır. Özellikle Araştırma-Geliştirme (R&D) maliyetlerinin ve zamanının azaltılması için modüler yapılar sıklıkla kullanılmaktadır. Bu çalışmada, genel kullanım amaçlı Small Outline Dual In-line Memory Module (Sodimm) arayüzlü bir mikroişlemcili kart tasarlanmıştır.
Gömülü sistemler, özel amaçlar için tasarlanmış sistemlerdir. Kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Gömülü Sistemlerde göreceli olarak yavaş sayılabilecek bir işlemci, bir bellek ve diğer yardımcı birimler kullanılır. Gömülü Linux, JavaOS, LynxOS, Mobilinux, Windows CE gibi birçok işletim sistemi de gömülü sistemlerde kullanılmaktadır. Cep Telefonları, Ağ Ekipmanları, Motor Denetleyiciler, Fren Sistemleri, Ev Otomasyon Ürünleri, Hava Savunma Sistemleri, Tıbbi Ekipmanlar, Ölçüm Sistemleri gömülü sistemlere örnek olarak verilebilecek sistemlerdir.
Genel olarak bir gömülü sistemin yapısında işlemci, güç kısmı, bellek, kayıt birimleri, haberleşme arayüzleri, sensörler vs. bölümler bulunmaktadır. Gömülü sistemlerdeki işlemci, sabit disk, bellek (Random Access Memory, RAM) ve bu kısımları besleyen güç blokları birbirine bağlı olan kısımlardır.
İşlemci değiştiğinde bu bölümdeki diğer birimler de genellikle değişmektedir. Bu nedenle modülerliği arttırılmış bir gömülü sistem için işlemci bloğunu modül haline getirmek önemlidir.
Modüler işlemci sayesinde yeni gömülü sistem geliştirecek olan kişiler, tasarımın zor kısmı olan işlemci bloğunun tasarımını yapmadan, sadece çevresel birimleri ekleyip,
kendi cihazlarını tasarlamış olurlar. Böylece her yeni tasarımda işlemci bloğunu tasarlamayıp zamandan ve maliyetten kazanılmış olur. Bizim çalışmamızda ise bu modüler işlemci kartının farklı parametreler göz önünde bulundurularak tasarlanması konusu işlenmektedir. Tasarım esnasında genel kullanıma yönelik özellikleri destekleyen bir modül olması sağlanmıştır.
Tasarlanan kartta mikroişlemci olarak Freescale firmasının piyasaya sürmüş olduğu iMX25 serisi entegre tercih edilmiştir [7]. Bu IC performans/maliyet dengesine göz önünde bulundurularak seçilmiştir. Ayrıca bu entegre ile birlikte çalışacak 128Mb Double Data Rate Random Access Memory (DDR2 RAM) ve 512Mb NAND bellek da modülün temel özellikleri olarak söylenebilir. Bu modül görüntü ve ses oynatabilen sistemler için
düşük maliyetli olarak
değerlendirilebilmektedir.
Tasarlanan kartta bulunan özelliklerin, arayüzlerin, genel giriş çıkış birimlerinin ( GPIO) vs. dış dünyaya çıkış arayüzü olarak da 200 uçlu Sodimm arayüzü tercih edilmiştir. Bu arayüz fiziksel boyutlar, uç sayısı, piyasada kullanım durumu, maliyet vs.
gibi kıstaslar göz önünde bulundurularak seçilmiştir.
Sodimm arayüzü kullanımı büyük ölçüde DDR RAM çeşitleri ile olmaktadır. Sodimm arayüzlü RAM kullanımı birçok bilgisayar sistemi ile birlikte gömülü sistem tasarımlarında da yaygın olarak kullanılmaktadır. Bu tip modüller, Nükleer bilimlerde kullanılan cihazlarda [14], Alanda Programlanabilir Kapı Dizileri (Field Programmable Gate Array, FPGA) kullanılan gömülü sistemlerde [11] çok sık kullanılmaktadır. Ayrıca Astronomi bilimlerinde kullanılan cihazlarda [3], Sağlık alanındaki sistemlerde [15], Sismolojik cihazlarda [13], bilimsel amaçla kullanılan gömülü sistem cihazlarda [12], Bilgisayar
Bilimlerinde [6], Sinyal İşleme alanları [8]
gibi birçok farklı disiplinde yaygın olarak kullanılmaktadır.
Sodimm arayüzünü kullanarak bir DDR3 RAM tasarımının nasıl yapıldığı inceleyen [4], Sodimm soket tasarımlarında performansa etki eden yan etmenler ve tasarımda dikkat edilmesi gereken elektriksel karakteristikler ve mekanik gereksinimler üzerinde yapılan [9], mekaniksel olarak Sodimm dayanıklılığı ile ilgilenen [20], Sodimm kartlarının üretiminde kalite geliştirme çalışmaları yapan [10], Sodimm kartlarda lehimleme ile ilgili dayanıklılık problemleri üzerinde çalışan [2], Nükleer bilimler alanında bizim projemize benzer bir modül kullanarak ve yine benzer arayüzleri dışarıya alarak kullanan [1] çalışmalara rastlamak mümkündür.
Yapılan çalışmalar incelendiğinde genel olarak Sodimm arayüzlü sistemlerin kullanımının yapıldığı görülmektedir.
Sodimm kartları kullanılarak sistemler tasarlanmış ve geliştirilmiştir. Ancak, bir Sodimm arayüzlü kartın elektriksel olarak nasıl tasarlanacağı, mikroişlemcili bir sistem kullanarak nasıl gerçekleneceği, testlerinin nasıl gerçekleştirileceği vs. gibi konularda çalışmaya rastlanamamıştır. Bizim çalışmamızda, bu konular göz önüne alınarak mikroişlemcili bir Sodimm arayüzlü modül tasarımı, birçok farklı disiplin göz önünde bulundurularak gerçekleştirilmiştir.
2. Kontrol Kartı Tasarımı
Kart tasarımı yapılırken öncelikle kartın blok tasarımı ve Sodimm arayüzüne çıkarılacak gereken arayüzler belirlenmiştir. Tasarım esnasında daha fazla özelliklerin gerekebileceği durumlarda kullanılabilecek olan arayüzler de belirlenmiştir. Bu arayüzler kullanılan microişlemci tarafından desteklenmemekle birlikte daha güçlü üst seri entegreler ile desteklenebilecek şekilde
belirlenmiştir. Bu duruma göre Sodimm arayüzünde bulunan 200 uç bazı uçlar seçeneğe bağlı olacak şekilde dağıtılmıştır.
Uçların yerleşimi de baskılı devre (Printed Circuit Board, PCB) çizimi esnasındaki kolaylığına göre yapılmıştır. Tasarlanan kart çeşitli Ethernet, evrensel seri hat (Universal Serial Bus, USB), Inter-Integrated Circuit (I2C), çevresel seri arayüz (Serial Peripheral Interface, SPI), darbe genişlik modülasyon içeren uç (Pulse-width modulation, PWM), güvenli sayısal hat (Secure Digital, SD), evrensel asenkron alıcı verici hat (Universal Asynchronous Receiver Transmitter, UART), entegreler arası ses hattı (Integrated Interchip Sound, I2S), tek hat dat (One Wire Data, OWD), 24bit likit kristal ekran arayüzü (Liquid Crystal Display, LCD), abone kimlik modülü arayüzü (Subscriber Identification Module, SIM), Analog giriş ve GPIO bağlantılarını içermektedir. Tasarlanan kart üzerinde DDR2 RAM, NAND bellek, güç denetimi ve mikroişlemci tümleşik devrelerini barındırmaktadır. Şekil 1’de tasarlanan kartın basitleştirilmiş blok çizimi görülebilir.
Şekil 1. Tasarlanan kartın blok çizimi
Tasarlanan Sodimm arayüzlü bu kart öncelikli olarak ücret toplama sistemlerinde bulunan validator cihazlarında ve PDA’larda kullanılacaktır. Ayrıca araç takip cihazları, Ticket Vending Machines v.b. ürünlerde de kullanımı öngörülmektedir
Şematik tasarımından sonra PCB çizimi gerçekleştirilmiştir. Bu çizim esnasında en önemli kısım mikroişlemci ile DDR2 arasındaki veri ve adres hatlarının çizimidir.
Gürültü yalıtımı için hat empedanslarının tasarımı uygun değerlere göre yapılmıştır.
Kart üzerindeki diferansiyel hatların çizimi uygun empedanslara göre gerçekleştirilmiştir.
PCB tasarımı 8 katlı yapılmıştır. Analog sinyallerin çiziminde gürültü yalıtımı toprak hatları ile sağlanmıştır. PCB’nin şekli standart Sodimm mekaniğine göre yapılmıştır. Ayrıca sarsıntılı ortamda sabitlemeye yardımcı olacak vida delikleri de karta eklenmiştir.
Tasarımda bulunan mikroişlemci, NAND, DDR2 RAM ve Ethernet birimleri için güç gereksinimleri belirlenmiştir. Gerekli olan voltajlar 3.3V, 1.45V, 1.8V, 1.5V ve gerçek zaman (Real Time Clock, RTC) beslemesi için 1.2V pil beslemesidir. Pilin enerjisi Sodimm konektörü ile dışarıdan alınmaktadır.
Modüle dışarıdan 2.7V-5.5V aralığında giriş yapılabilmektedir. PMIC biriminde 3 tane, dışarıdan da 1 tane regülatör kullanılmıştır ve bütün istenen voltajlar sağlanmıştır.
Mikroişlemci entegresinin enerji geldiğinde açılış zamanlaması tasarımı ve ölçümleri yapılmıştır. Mikroişlemci entegresine yeniden başlatma (Reset) sinyali gelmeden önce tüm voltajların gelmiş olması gerekmektedir.
Besleme voltajlarının durumu zamana göre Şekil 2’de görülebilir. 1.8V beslemesi seviyesine ulaşmasından 10ms sonra yeniden başlatma sinyali PMIC’ten mikroişlemciye gider ve sistemin çalışması başlar.
Şekil 2. Sistem açılış güç sinyalleri Tasarım yapılırken yeniden başlatma ve Aç/Kapat işlemleri de göz önünde bulundurulmuştur. Sodimm arayüzüne Başlatma-Giriş, Başlatma-Çıkış, Güç-Açma (Power-On Reset, POR) ve PMIC buton sinyalleri bağlanmıştır. Başlatma-Giriş sinyali mikroişlemciyi doğrudan yeniden başlatan sinyaldir. Sodimm kartına dışarından gelen bir sinyaldir. Başlatma-Çıkış sinyali ise Sodimm modülününden dışarıdaki birimleri yeniden başlatmayı sağlar. PMIC buton sinyali PMIC entegresinin Aç/Kapat girişine bağlanır. Mekanik bir anahtar kullanılarak sistemin açılmasını sağlamak amacıyla konulmuştur. POR sinyali ise mikroişlemci entegresinin POR girişine bağlanır. Bu bacağa modül dışından yeniden başlatma entegreleri bağlanıp yeniden başlatmayı sağlamaktadır. PMIC’ten gelen yeniden başlatma bacağı mikroişlemcinin POR bacağına seçeneğe bağlı olarak bağlanmıştır ve mikroişlemci yeniden başlatma işlemini yapmaktadır.
3. Test ve Tasarım Doğrulama
Tasarlanan Sodimm modülünün test edilebilmesi için öncelikle donanımın hazır olması gerekmektedir. Tasarlanan 8 katlı modül PCB’si ürettirilmiştir. PCB’ye gerekli olan mikroişlemci, PMIC, NAND, RAM gibi tüm ana birimler ve çevreselleri dizdirilmiştir ve test etmeye uygun bir Sodimm modül elde edilmiştir. Şekil 3’te tasarlanan kartın dizilmiş fotoğrafı görülebilir. Ayrıca yine modülün desteklemiş olduğu tüm özelliklerin
denenebileceği bir alt kart tasarımı da yapılmıştır. Bu kartta USB, Ethernet, LCD, Seri portlar vs. tüm özelliklerin test edilebileceği bir donanımsal ortam sağlanmıştır.
Tasarlanan donanımsal birimlerin test edilmesi işlemi için Mikroişlemcinin üzerinde Linux işletim sisteminin çalıştırılması gerekmektedir. Tüm özellikler Linux aracılığı ile test edilecek ve modülü kullanacak kullanıcılar için de gerekli geliştirme ortamı oluşturulmuştur.
Şekil 3. Tasarlanan dizgili kart
Linux Kernel 2.6.35.3 işletim sisteminin ARM çekirdekli kullanılan mikroişlemcisine uygun olacak şekilde derlenmesini sağlayacak olan çapraz geliştirme ortamı bir Linux Ubuntu bilgisayara kurulmuştur.
Derleyici Bootloader ve Kernel derleyecek şekilde bu bilgisayarda çalıştırılmıştır.
Bootloader kodunda kullanılacak olan DDR2 RAM’in parametre ayarlamaları yapılmıştır.
İşletim sisteminin ilk ayağa kaldırılabilmesi için NAND, SD, UART, USB vs. farklı arayüzlerden herhangi biri ile çalışabilmesini gerekmektedir. Bizim çalışmamızda ilk aşamada SD kart ve NAND arayüzlerinden açılması sağlanmıştır. Derlenen ilk Bootlarder ve Kernel kodları ile kök dosya sistemi (Root File System, Rootfs) NAND’a ve SD karta kopyalanmıştır. Kopyalama işlemlerinde kopyalanacak ikili sistem kodların büyüklükleri dikkate alınmıştır.
Sistemin açılmasından sonra Linux Kernel komut satırına ulaşılmıştır. Komut satırından geliştirme işlemleri devam ettirilmiştir.
NAND üzerinde bulunacak Bootloader,
Kernel (uImage), Rootfs vs. ikili sistem dosyaları ve Şekil 4’teki gibi NAND üzerinde adreslenerek yerleştirilmiştir.
Şekil 4. NAND dosya yerleşimi Tasarlanan modülün birimlerinin çalışması için Kernel’de ve Bootloader’da gerekli birimler değiştirilmiştir. Kullanılan GPIO’lar ve uçlar koda işlenmiştir. Kernel sürücülerinde gerekli değişiklikler özelliklerin çalıştırılması için yapılmıştır.
SPI, LCD, I2C, Analog giriş, RTC gibi birimlerin çalıştırılabilmesi için gerekli olan kullanıcı kütüphaneleri ve uygulamaları C dili kullanılarak Eclipse derleyicisinde yazılmıştır. Tüm çevresel birimler fonksiyonel olarak test edilmiştir.
Sistem çalışırken ayrıca performans testleri de yapılmıştır. Yapılan testler ekrana görüntü basma, ses çalıştırma, sabit diske kayıt yapma gibi işlemleri kapsamaktadır. Bu işlemler yapılırken mikroişlemcinin kullanım oranları Linux işletim sisteminin araçları kullanılarak incelenmiştir. Toplam yük ortalama olarak
%3,5 civarındadır. Kısa sürelerde anlık olarak da %70-80 oranında kullanıma çıkmaktadır.
Bu performans beklenen performansa uygundur.
4. Sonuç ve Öneriler
Proje öncesi hedeflenenler doğrultusunda, modüler donanımsal ihtiyaçları karşılayacak, mikroişlemcili, Sodimm arayüzlü bir kart tasarlanmıştır. Tasarlanan kartta donanım ve yazılım çalışmaları gerçekleştirilmiş, Linux işletim sisteminin çalışacağı bir modül kart
elde edilmiştir. Projenin geliştirilmesi esnasında birçok test yapılmış ve tasarım doğrulama işlemleri yapılmıştır. Geliştirilen modüler kartın kullanımı ile tasarlanacak elektronik sistemler daha hızlı hayata geçebilecek ve tasarım maliyetleri oldukça düşük olacaktır.
Gelecekte, bu projenin benzeri olabilecek daha yüksek performanslı modüller de tasarlanabilir. Bu modüller ile de yüksek performans ihtiyacı bulunan görüntü işleme, video işleme vs. işlemleri de gömülü cihazlarda yapılmış olabilecektir.
5. Teşekkür
Yazarlar, 3140775 Teydeb projesi olan projeye desteklerinden dolayı Kent Kart Ege Elektronik A.Ş. firmasına ve Türkiye Bilimsel ve Teknik Araştırma Kurumu’na (TÜBİTAK) teşekkür eder.
6. Kaynaklar
[1] Ahn, H.S., et all, “The Cosmic Ray Energetics and Mass (CREAM) timing charge detector”, Nuclear Instruments and Methods in Physics Research A 602, pp:
525–536 (2009).
[2] Cinar, Y., et all, “Failure mechanism of FBGA solder joints in memory module subjected to harmonic excitation”, Microelectronics Reliability 52, pp: 735–743 (2012).
[3] Gunst, A. et all, “The application of UniBoard as a beam former for APERTIF”, Experimental Astronomy, February 2014, Volume 37, Issue 1, pp 55-67 (2014).
[4] Harini, V., and Rajendar, S., “Design, Validation and Correlation of Characterized SODIMM Modules Supporting DDR3 Memory Interface”, IOSR Journal of Electronics and Communication
Engineering Volume 6, Issue 5 (Jul. - Aug.
2013), PP 01-11 (2013).
[5] Huang, C. J., Chou, C. Y., and Chiang K.
N., “Dynamic Study and Structure Enhancement of Small Outline Dual-in-line Memory Module”, 10th International Conference on Thermal, Mechanical and Multi-Physics simulation and Experiments in Microelectronics and Microsystems, EuroSimE 2009, pp 1-5 (2009).
[6] Hussain, T., et all, “AMC: Advanced Multi-accelerator Controller”, Parallel Computing 41, pp: 14–30 (2015).
[7] i.MX25 Applications Processor for Automotive Products Silicon Version 1.2 Datasheet, Freescale Semiconductor (2013).
[8] Kumar, P., Kamakoti, V., and Das, S.,
“System on programmable chip implementation for on line face recognition”, Pattern Recognition Letters 28, pp: 342–
349 (2007).
[9] Li, P., et all, “Development and Evaluation of a High Performance Fine Pitch SODIMM Socket Package”, Electronic Components and Technology Conference, Proceedings. 54th (Volume:1 ), pp 1161 – 1166 (2004).
[10] Lin Z., and Ho, C., “Quality improvement by using grey prediction tool compensation model for uncoated and TiAlCN-coated tungsten carbide tools in depanel process of memory modules”, Int J Adv Manuf Technol 40, pp: 857–864 (2009).
[11] Mann, A. B., Konorov, I., Goslich, F.
and Paul, S., “An AdvancedTCA Based Data Concentrator and Event Building Architecture”, Real Time Conference (RT), 2010 17th IEEE-NPSS, pp 1-3 (2010).
[12] Tapperoa, F., and Abe, Y., “In situ plasma diagnostics study by means of optical emission spectroscopy for diamond chemical vapor deposition under high gravity conditions”, Rev. Sci. Instrum., Vol. 74, No.
10, October 2003, pp: 4458 – 4461 (2003).
[13] Riascos, P., et all, Ossodas, “A Portable Digital System For Seismological Signal Acquisition”, Earth Sci. Res. J. Vol 8 No: 1 (Dec. 2004), pp: 52 – 55 (2004).
[14] Rodrigues, P. et all, “Intelligent Platform Management Controller Software Architecture in ATCA Modules for Fast Control Systems”, Nuclear Science, IEEE Transactions on (Volume:61 , Issue: 4 ), pp 2318 – 2322 (2012).
[15] Xia, F., Dou, Y., and Jin, G., “The unified accelerator architecture for RNA secondary structure prediction on FPGA”, J Supercomput 61, pp: 826–855 (2012).