Mikroişlemci ile Gerçek Zamanlı USB ye Veri Kayıt etmek

Mikroişlemci ile Gerçek Zamanlı USB ye Veri Kayıt etmek

Robson Benjamin tarafından

PIC18F452 mikrodenetleyici (MCU), VNC1L-1A USB ana bilgisayar denetleyici yongası, DS1302 RTC yongası ve LCD kullanan USB tabanlı gerçek zamanlı veri kayıt sistemi sunulmaktadır. Sistem, veri ölçümünün zamanını ve süresini ayarlama esnekliğine sahiptir.

Veri kaydediciler uzak veri toplama sistemleri için gereklidir ve genellikle alınan verileri depolamak için depolama ortamı gerektirir. Kalem sürücüleri gibi depolama ortamları, elde edilen verileri aktarmak için USB ana bilgisayar özelliğine sahip bir cihaz veya PC gerektirir. Genel amaçlı bir MCU’da USB ana bilgisayar özelliği yoktur. İşte USB ana bilgisayar işlevselliği sağlayan bir Vinculum çipli yeni bir veri toplama sistemi. Ayrıca, DS1302 yongası ve 4×4 tuş takımını kullanarak veri ölçümlerinin zamanını ve süresini ayarlayabilirsiniz.

Gerçek zamanlı USB veri kayıt cihazının blok şeması Şekil 1’de gösterilmiştir. Yazarın prototip panosu Şekil 2’de gösterilmiştir.

1: Gerçek zamanlı USB veri kaydedicisinin blok şemasıŞekil 2: Yazarın prototipi

Devre ve çalışma

Gerçek zamanlı USB veri kayıt cihazının devre şeması Şekil 3’te gösterilmiştir. 3.3V voltaj regülatörü MAX882 (IC1), sıcaklık sensörü LM35 (IC2), Vinculum ana bilgisayar kontrolörleri VNC1L-1A (IC3) ve PIC18F452 ( IC4), gerçek zamanlı, damlama şarj süresi tutma DS1302 çip (IC5), 16 × 2 likit kristal ekran (LCD1) ve diğer birkaç bileşen.

PIC18F452 MCU veri toplama işlevselliği sağlar. VNCIL-1A, UART arabirimi üzerinden PIC18F452 ile arayüzlenmiştir.

3: Gerçek zamanlı USB veri kaydedicisinin devre şeması

VNC1L-1A

İki USB bağlantı noktası ve birleşik seri UART, seri çevresel arabirim (SPI) veya FIFO arabirimi vardır. Pimler USB1DP ve USB1DM, USB Port-1’in sırasıyla D + ve D- USB veri sinyallerini taşır. Pimler USB2DP ve USB2DM, USB Port-2’nin sırasıyla D + ve D- USB veri sinyallerini taşır.

Port-1, USB slave çevre birimlerini destekler (kullanılmaz). Port-2, USB flash sürücüler gibi BOMS (yalnızca toplu depolama) sınıfı cihazları destekler. VNC1L-1A ve PIC18F452 arasındaki iletişim için seri UART, SPI veya FIFO arayüzü, pimleri toprağa veya 3.3V’ye bağlayarak bir çift pim, ACBUS5 (pim 46) ve ACBUS6 (pim 47) kullanılarak seçilebilir.

UART arayüzü, IC3’ün 46 ve 47 pinleri 47kΩ direnç üzerinden toprağa bağlanarak seçilir. ADBUS0 (pim 31) ve ADBUS1 (pim 32) sırasıyla TxD ve RxD sinyallerini taşır ve ADBUS2 (pim 33) ve ADBUS3 (pim 34) sırasıyla UART arayüzünün RTS # ve CTS # sinyallerini taşır.

Vinculum, VNC1L-1A’nın farklı işlevlerini desteklemek için önceden derlenmiş birkaç standart ürün yazılımı sürümü sunar. Mevcut uygulama için, donanım yazılımı sürümü VDAP (disk ve çevre birimleri) kullanılır. Bellenim, VNC1A-1A’daki çip üzeri 64kB flash bellekten çalışır ve harici PIC MCU’nun komut izleme arabirimi aracılığıyla komut / veri göndermesine ve almasına izin veren bir komut monitörü içerir.

Monitör, dizin işlemleri (dizin oluşturma, silme veya listeleme), dosya işlemleri (dosya oluşturma, açma, okuma, yazma, kapatma, silme veya yeniden adlandırma) ve hata ayıklama işlemlerini (bellenim sürümlerini tanımlama veya alma) gerçekleştirmek için DOS benzeri disk yönetimi komutlarını destekler . Ayrıca VNC1L-1A’ya flash bellek sürücüsünün takılmasını ve çıkarılmasını sağlayan komutlar içerir.

Aygıt yazılımı USB bağlantı noktasına takılı bir flash sürücü algıladığında, UART arabiriminde DOS benzeri bir D: \> istemi gönderir. Flash sürücüye veri yazıldığında pim 18’e bağlı bir LED’i (LED2) yanıp sönmesi için kodlar üretir.

Komut monitörü komut veya veri modunda çalışır. Komut modunda, VNC1L-1A monitör bağlantı noktasındaki kodları komut olarak yorumlar ve üzerinde çalışır. Veri modunda, verileri monitör bağlantı noktasından USB aygıtına geçirir. Başlangıçta, VNC1L-1A başladığında, komut modunda kalır. Daha sonra seri UART arayüzünün DTR # ve DSR # sinyallerini taşıyan VNC1L-1A pinleri ADBUS5 (pin 36) ve ADBUS6 (pin 37) sinyallerini verir ve çalışma modunu değiştirir. Mevcut başvuruda, VNC1L-1A yukarıda belirtilen pinlerin 3.3V ila 47kΩ arasına bağlanarak komut modunda çalışacak şekilde yapılmıştır.

VNC1L-1A’nın ADBUS0 – ADBUS3, PROG #, RESET #, Vcc ve GND pinleri FTDI programcısı üzerinden programlama için kullanılır.

Programlama sırasında CON4 ve CON5 konnektörlerindeki köprü bağlantılarını sökün, aksi takdirde 9 ve 10 pinleri 3.3V’a bağlanmalıdır.

FTDI programlaması dahil Vinculum ana bilgisayar denetleyicisi hakkında daha fazla bilgi kaynak kodu ile birlikte source.efymag.com adresinde mevcuttur.

Yazılım açıklaması

PIC18F452’nin pim 2 ve 3’üne düzenli aralıklarla uygulanan iki analog voltajı örneklemek ve VNC1L-1A’ya bağlı USB flash sürücüdeki bir dosyaya veri kaydetmek için bir ürün yazılımı programı burada açıklanmaktadır. Yazılım CCS C derleyicisi kullanılarak yazılmıştır ve PIC18F452 flash belleğe yüklenmiştir.

Yazılım, aşağıdaki görevleri yerine getiren modülleri içerir:

UART iletişimini senkronize etme

VNC1L-1A ve PIC18F452 arasındaki UART iletişimi, PIC18F452’den gönderilen E ve e karakterlerinin yankıları alınarak sağlanır.

Veri Al Mevcut kesme (INT_RDA) işleme

Kesme, UART arayüzü üzerinden PIC18F452’nin alma tamponunda VNC1L-1A’dan bir bayt alındığında PIC18F452’de üretilir. Program karakteri okur ve USB flash sürücüye gönderir.

Reklam ad2

Analog kanalları örnekleme

Bellenim, analog kanallar 0 ve 1’i örneklemek için kodlar içerir. Ayrıca, CCS C Derleyicisi kanal seçmek ve dönüştürülmüş veri almak için çip üzerindeki ADC’yi yapılandırmak için dahili işlevlere sahiptir. Bu fonksiyonlar program tarafından analog kanalları örneklemek için kullanılabilir.

USB flash sürücüye veri yazma kodları

Ürün yazılımı, flash sürücüde Results.dat dosyası oluşturmak, dosyaya yirmi değer örneklenmiş veri yazmak ve dosyayı kapatmak için komutlar göndermek için kodlar içerir.

RTC ve kullanıcı arayüzü

Mevcut tasarımda, giriş için klavye ve çıkış süresini izlemek için çıkış ekranı için LCD ile bir kullanıcı arayüzü sağlanmıştır. DS1302 yongası sisteme gerçek zamanlı veri sağlar. DS1302’nin bir MCU ile arabirimi, senkron seri iletişim kullanılarak basitleştirilir. Yonga etkinleştirme (CE), G / Ç (veri hattı) ve seri saat (SCLK) sinyalleri için DS1302 ile iletişim kurmak için sadece üç kablo gereklidir.

Okuma veya yazma işlemi sırasında, bu pimin toprakta dahili 40kΩ aşağı çekilme direnci olduğundan CE yüksek olmalıdır. SCLK, seri arayüzdeki veri hareketini senkronize etmek için kullanılır. Dahası, DS1302 çok düşük güçte çalışacak şekilde tasarlanmıştır, böylece verileri tutar ve 1µW’dan daha düşük güç tüketimi ile bilgi alır.

CCS C Derleyici gerçek zamanlı saat DS1302 ve 4×4 klavye için sürücü sağlar. Ayrıca MCU, Port B pimleri için yazılım komutları kullanılarak etkinleştirilebilen dahili çekme dirençlerine sahiptir. Bu nedenle, MCU’nun Port B pimleri ile klavye arasındaki bağlantı doğrudan verilir. Dakika, saat, tarih ve gün gibi zaman aralığını ayarlama yetkisine sahiptir, böylece yeterli güç sağlanırsa verilerin tüm gün boyunca sürekli olarak kaydedilmesi sağlanır. Zaman ayarları LCD’de izlenebilir1.

İnşaat ve test

Elde tutulan veri kaydedici için bir PCB düzeni Şekil 4’te ve bileşen düzeni Şekil 5’te gösterilmiştir. Devreyi PCB’ye monte edin.

4: Gerçek zamanlı USB veri kaydedicisinin gerçek boyutlu PCB düzeni5: PCB için bileşen yerleşimi

PCB ve bileşen yerleşim PDF’lerini indirin: buraya tıklayın

PCB montajı tamamlandığında, DataLogger.hex hex kodunu uygun bir programlayıcı kullanarak PIC18F452’ye yazın. Programladıktan sonra, programlayıcıdan çıkarın ve PCB’ye yerleştirin. Devreniz artık kullanıma hazırdır.

CON2 konektörüne bir kalem sürücü takın. Devreye güç vermek için 5V DC’yi CON1 üzerinden bağlayın. LED1 ve LED2, bir kalem sürücü bağlanana kadar iki saniye boyunca yanıp söner. Sıcaklık sensörü LM35 otomatik olarak ortam sıcaklığını algılar. PIC18F452’nin pim 19una bağlı LED3’ün yanması sıcaklık verileri ölçümünün devam ettiğini gösterir.

PIC18F452’nin pim 2’sine bağlanan 10 kilo-ohm’luk bir potmetre (VR1) önceden tanımlanmış bir okuma belirler (örneğin, 2V). Yani, biri LM35 ve diğeri VR1 ayarıyla olmak üzere iki okuma alınır ve USB sürücüye gönderilir.

Ayarlar ve test

Zaman ayarları için 4 × 4 klavyeyi CON3’e bağlayın. Klavyeden girişleri beslemek için aşağıda bir örnek verilmiştir. Devreyi test etmek için aşağıdaki adımları izleyin.

  1. Tüm devre bağlantılarını kontrol edin
  2. Devre kartını 5V, 500mA DC güç kaynağı ile bağlayın
  3. LCD’de Başlatılıyor mesajı görüntülenir. LCD’de Başlat mesajı için 1’e basın görüntüleninceye kadar biraz bekleyin1
  4. Klavyede 1 tuşuna basın
  5. Yıl 19’a basın
  6. Aylık 09’a basın
  7. Tarih için 08 tuşuna basın
  8. Basın 01 hafta içi (Pazar)
  9. Saat için 08 tuşuna basın
  10. Dakika 30’a basın
  11. Başlangıç ​​saati için 08 tuşuna basın
  12. 32 başlangıç ​​dakikasına basın
  13. Bitiş saati için 08 tuşuna basın
  14. Bitiş dakikası için 35 tuşuna basın
  15. Saat boyunca 00 tuşuna basın
  16. Dakika süre 01’e basın

Yukarıdaki örnekte, veri kaydı 8 Ekim 30, Pazar, 8 saat 30 dakika, başlar. Gerçek veri kaydı 8 saat 32 dakikadan başlar. İşlem 8 saat 35 dakikada durur. Ölçüm süresi bir saat içinde (bu durumda 00) ve her dakika güncelleme döngüsü ile.

Kalem sürücüsünü karttan çıkarın. Artık Microsoft Excel veya başka bir uyumlu program kullanarak kayıtlı verileri USB’den açabilirsiniz. Excel kullanılarak açılan Kayıtlı Veri Sonuçları dosyası Şekil 6’da gösterilmiştir. İlk sütun voltajı, ikinci sütun sıcaklık değerlerini gösterir. Prototip panosu Scandisk 16GB, Sony 32GB ve HP 16GB / 32GB ile test edildi.

6: Sonuç Excel formatında

Böylece, Vinculum ana bilgisayar denetleyicisini kullanan USB tabanlı veri toplama sistemi, sinyali önceden tanımlanmış zaman aralıklarında örnekler ve verileri bir flash sürücüde depolar.

, Çıktısı, verilere hızlı erişimi kolaylaştıran Microsoft Excel formatında kaydedilir. Ayrıca, Excel biçimi verilerin daha ileri analizini kolaylaştırır.

Kaynak kodunu indirmek için:  buraya tıklayın

 

 

 

https://drive.google.com/file/d/13t4wffuWoSCq1LbQeZG-Mx38e4lH1XdV/view?usp=sharing

Reklam ad3
Posted in Makaleler.