FPGA-AET'ye Dayalı CPCI Sisteminin Tasarımı ve Uygulanması

0 Önsöz

Mevcut cihazların veya endüstriyel kontrol sistemlerinin çoğu, entegre endüstriyel kontrol kasasını kullanır.Şasi arka paneli, endüstriyel kontrol bilgisayarları ve çeşitli edinim kartları, kontrol kartları vb. Dahil olmak üzere genellikle tüm eklenti kartlarına CPCI (Kompakt PCI) arabirimi üzerinden bağlanır. Kartlar tasarlanırken CPCI arabirim uygulaması ve iletişim mekanizması dikkate alınmalıdır. Mevcut kartlar çoğunlukla PCI9054 yongaları gibi özel arabirim yongaları kullanır. Bu yonga türü zayıf ölçeklenebilirliğe sahiptir ve kullanımı esnek olmayan FPGA yongasının harici genişletilmesini gerektirir ve doğrudan FPGA kullanır CPCI protokolünün IP çekirdeği çok fazla kaynak işgal eder, geliştirme maliyeti yüksektir ve bazı özel ihtiyaçlar olduğunda genişletmek elverişsizdir.

Bu makale, FPGA tabanlı bir CPCI sisteminin tasarımını ve uygulamasını önermektedir.CPCI iletişim protokolünü uygulamak için ucuz bir FPGA çipi kullanır.Aynı zamanda, güç kontrolü, esnek kesme, harici tetikleme, harici iletişim ve diğer özel uygulamaların işlevlerini gerçekleştirmek için FPGA'nın programlanabilir özelliklerini kullanır. CPCI protokolü CPCI köprüsünden geçtiğinde ortaya çıkan çatışma sorunu çözülür.

1 Sistem tasarımı

1.1 Sistem blok şeması

Şekil 1'de gösterildiği gibi, bu sistem esas olarak gömülü kartları ve CPCI endüstriyel kontrol kasasını içerir ve kart, CPCI kasa arka panel yuvasına takılır. Gömülü karttaki FPGA ve CPCI yuvası CPCI veriyolu ile bağlanır ve kullanıcı IO, FPGA ve ARM belirli bir IO veri yolu ile bağlanır ve bir transistör tarafından sürülen bir röle FPGA'ya bağlanır.

1.2 Sistem işlevi

FPGA ile arka panel arasındaki arayüz, CPCI protokolü aracılığıyla iletişim kuran CPCI arayüzüdür; ARM, verileri FPGA'nın RAM tamponuna yazmak için özel veri yolu protokolü kullanır ve ardından ana bilgisayara göndermek için CPCI arayüzünü kullanır ve bunun tersi de geçerlidir. FPGA, ARM'de kesintiler oluşturmak için CPCI sinyallerini tanıyabilir ve ayrıca CPCI'ye etkili kesintiler oluşturmak için ARM sinyallerini tanıyabilir.Ayrıca, röle aracılığıyla panonun gücünü açma, kapatma ve sıfırlamayı kontrol edebilir. ARM'nin ISP'sini gerçekleştirebilir (çevrimiçi yükseltme, Yalnızca bir ARM pini) işlevini kontrol etmeniz ve arka panel tetik sinyali oluşturmanız gerekir.

Aşağıdaki üç yönden bir açıklamadır: FPGA tasarımı, ARM tasarımı ve iletişim mekanizması.

2 FPGA tasarımı

Şekil 2'de gösterildiği gibi, FPGA temel olarak CPCI protokolü, IO_MEM, ARM kod çözme, okuma kesme oluşturma, CPCI kesinti oluşturma, güç kontrolü ve diğer modülleri içerir. FPGA yongası, kullanılan kaynaklara ve maliyete göre Xilinx'in XC2S100'ünü seçer ve son olarak 387 Dilim kaydı (% 16'ya karşılık gelir) ve 882 LUT (% 36'ya karşılık gelir) kullanır.

2.1 CPCI protokol modülü

2.1.1 Sözleşme

CPCI protokolü, PCI2.2 protokolü ile uyumludur ve kullanıcı arayüzünün bir kısmını genişletir.Bu nedenle, modül, konfigürasyon alanı yönetimi, IO okuma ve yazma, Bellek tek kelime okuma ve yazma, Hafıza burst okuma ve yazma, tahkim ve kesme fonksiyonlarını elde etmek için standart PCI2.2 protokolüne uygun olarak tamamlanır. Lütfen anlaşmanın ayrıntıları için literatüre bakın.

2.1.2 FPGA simülasyonu

ISE kablolamadan sonra dosyaların zamanlama sonrası simülasyonu için ModelSimXE'yi kullanın.Aşağıda, CPCI veriyolu üzerinden bellek patlaması okuma ve yazma simülasyonu gösterilmektedir.IO okuma ve yazma ve Bellek tek sözcük okuma ve yazma zamanlaması, bellek patlaması okuma ve yazma ile benzer olduğundan, burada olmayacaktır. Tekrar et.

Şekil 3'ün üst kısmı, Bellek patlaması yazmanın sıralı işlemidir, 0xd000 adresinde, 10 ardışık olarak artan 32-bit veri sürekli olarak yazılır ve başlangıç verisi 0x15896345'tir. Alt kısım, yazıldıktan sonra hafıza patlaması okuma zamanlamasıdır 0xd000'den okunan sürekli 32 bitlik verinin yazma ile tamamen tutarlı olduğu görülebilir.

Bu sorun, CPCI kartı gerçek kasa yuvasına takıldığında ortaya çıkar: bazı üreticilerin kasaları belirli bir yuvaya takıldığında çökebilir. Bu problem, piyasadaki bitmiş CPCI kartlarını kullanırken de karşılaşılabilir Analizden sonra, CPCI kart protokolündeki bir CPCI köprü arayüzü değiştirilir ve çarpışma durumu artık meydana gelmez.

2.2 IO_MEM modülü

Bu modül, CPCI sisteminde BA0, BAR1, BAR2 olarak adlandırılan 3 adet çift bağlantı noktalı RAM'den oluşur.BAR0 ve BAR2, yalnızca tek sözcük okumayı destekleyen 16 B IO alanıdır ve BAR1, tek sözcükleri destekleyen 2.048 B MEM alanıdır Okuyun ve yazın ve hızlıca okuyun ve yazın. Bunların arasında BAR1, yalnızca güç kontrolü ve ISP için kullanılan ve diğer çevre birimlerinden erişilemeyen 1 B alan erişimini destekler.

2.3 ARM kod çözme modülü

Bu modül, FPGA ve ARM arasındaki IO ve Bellek arayüzünün zamanlamasını uygular.İkisinin zamanlamaları temelde aynı olduğundan, Belleğin zamanlaması örnek olarak alınır.Tanım Şekil 4 ve Şekil 5'te gösterilmiştir. Donanım arayüzü saat, etkinleştirme, RAM seçimi, okuma-yazma seçimi, adres veri yolundan (8) oluşur. Saat hattının FPGA'nın global saat pinine bağlı olması gerektiği unutulmamalıdır.

Bellek okuma / yazma sırası, A adresi geçerli olduktan sonra ikinci saat çevriminde verilerin alındığından / girdiğinden emin olmalıdır. 32 bit veri, 4 B'den oluşur, düşük bayttan yüksek bayta kadar olan çıktı / giriş, veri kombinasyonu / sökme Puanlar ARM tarafından tamamlanır. Farklı adres segmentlerinde veri almak / yazmak için önce en_arm devre dışı bırakılmalı ve sonra etkinleştirilmelidir.

2.4 ARM okuma kesintisi

FPGA'da BAR0 yazma geçerli olduğunda int_arm'ı etkinleştirin, bu sinyal ARM'ın harici IO kesmesini tetikleyecektir. CPCI arabirimi aracılığıyla BAR0'a herhangi bir veri yazmak, bir darbe tetik sinyali üretebilir, bu sinyali ARM'i kesmek için kullanabilir.

2.5 CPCI kesintisi

ARM, CPCI için bir kesinti oluşturmalıdır, mekanizma aşağıdaki gibidir:

(1) ARM, 0x01'i IO0 boşluk ofset adresi 2'ye yazar ve INTA # üzerinde düşük seviyeli bir tetikleme sinyali belirir;

(2) Ana bilgisayar, kesmeyi tetiklemek için bu seviyeyi algılar, kesmeyi hemen devre dışı bırakır, IO1 boşluk ofset adresi 0'a 0xfb yazar ve ardından INTA # yüksek çekilir, bu sırada ARM kesmeyi adım (1) aracılığıyla tekrar gönderemez, ayrıca Başka bir deyişle, INTA # ARM tarafından aşağı çekilemez;

(3) Ana bilgisayar kritik kodu işlemeyi bitirdikten sonra, ARM'nin kesintiler oluşturmasına izin vermek için IO1 boşluk ofset adresi 0'a 0xfa yazın, yani ARM, adım (1) ile tekrar kesintiler oluşturabilir.

2.6 Çevresel kontrol

Güç kontrolü ve tetikleme sinyalleri, önceden belirlenmiş bilgileri yazmak için ARM veya ana bilgisayar aracılığıyla CPCI'nin belirli alanına yazılır ve daha sonra bilgiyi algıladıktan sonra karşılık gelen işlemi yapar.

(1) Ana bilgisayar, açılış, kapanma, sıfırlama ve ISP işlevlerini gerçekleştirmek için BAR2 alanının 0 ofsetine 0xff, 0xfe, 0xfd, 0xfc yazar;

(2) Ana bilgisayar, BAR2 boşluğunun 0 ofsetine 128'den küçük bir sayı yazar Bu değer, arka düzlem için üretilen tetik darbelerinin sayısıdır;

(3) ARM, BAR0 boşluğunun 1 ofsetine 256'dan küçük bir sayı yazar Bu değer, arka düzlem için üretilen tetikleme darbelerinin sayısıdır. ARM'ün üretebileceği tetik darbesi, ana birimin iki katıdır.

3 kol tasarımı

Bu sistemde ARM ve FPGA arasındaki veri yolu bağlantısı IO port simülasyonu ile gerçekleştirilir. Yukarıda açıklanan zamanlama sırasına göre, ARM'deki arayüzle ilgili işlevler şunları içerir:

(1) Sinyalleri kesmeye yanıt olarak, IO komutlarını okuyun ve çalıştırın;

(2) IO verilerini okuyun;

(3) Hafıza verilerini okuyun ve yazın.

Arayüz zamanlamasının ARM kodunun uygulanması nispeten basit olduğundan, burada tekrarlanmayacaktır Spesifik uygulama mekanizması için lütfen sonraki iletişim mekanizması tasarımına bakın.

4 İletişim mekanizması tasarımı

CPCI açısından bakıldığında, ARM ve ana bilgisayar ana aygıtlardır ve FPGA da bağımlı aygıttır. FPGA için, CPCI arayüzü ve ARM arayüzü tamamen bağımsızdır, ancak her ikisi de RAM okuyabilir ve yazabilir.Kordinasyon mekanizması yoksa, okuma ve yazma çakışmaları meydana gelebilir ve veri aktarımını koordine edecek bir kural olması gerekir. CPCI standart bir arayüz olduğu için tanımlanması gereken, FPGA ile ARM arasındaki arayüz ve ana bilgisayar sürücüsü okuma ve yazma kurallarıdır.Aşağıda FPGA ve ARM arayüzü ve ana okuma ve yazma kuralları açıklanmaktadır.

Ana bilgisayarın ve ARM'nin etkileşime girmesi gereken verilerin tümü FPGA'nın RAM'inde arabelleğe alınır. Uygulama kuralları aşağıdaki gibidir:

(1) Ana bilgisayar tarafından gönderilen komutları depolamak için IO alanında yalnızca 1 B ayrılır;

(2) Hafızadaki okuma ve yazma alanını ayırın, ana yazma ve ARM okuma veri alanı için 0 - 999 ofset, 1000 - 2048 ana okuma, ARM yazma veri alanı.

Şekil 6, ARM, CPCI ve master'ın veri akışını ve okuma ve yazma süreçlerini açıklamaktadır. Sistem okuma-yazma çakışmalarını önlemek için, aşağıdaki kurallara göre işlemler gerçekleştirmeniz gerekir:

(1) ARM, CPCI'nin Bellek alanını okumadan ve yazmadan önce, write_acc veya read_acc'yi geçersiz kılın ve okuyup yazdıktan sonra geçerli hale getirin.

(2) Ana bilgisayar Belleği okuduğunda, önce read_acc'yi okuyun, eğer geçerliyse, gerekli belleği okumaya başlayın, aksi takdirde tekrar denemek için bir süre bekleyin; Belleğe yazarken, önce write_acc'yi okuyun, geçerliyse, belirtilen belleğe veri yazmaya başlayın, aksi takdirde bir süre bekleyin Tekrar deneyin; ana birimin GÇ yazmak için write_acc okumasına gerek yoktur.

(3) Ana bilgisayarın Belleğe yazmak için genel süreci şu şekildedir: önce gerekli komutlara göre hangi alana veri yazılacağını belirleyin, ardından yapılandırma verilerini Belleğe yazın ve son olarak kontrol komutunu IO alanına yazın; Belleği doğrudan okuyun veri.

Bu çözüm, veri toplama kartları, dijital temel bant analog kartlar, yerel osilatör sinyal üreteci kartları ve orta frekanslı frekans dönüştürme alıcı kartları gibi çok işlevli uygulamalarda kullanılır ve Advantech ve ADLINK gibi birkaç büyük üreticinin endüstriyel kontrol kabinleri ile uyumludur.

5. Sonuç

Bu makale, FPGA tabanlı bir CPCI sistem tasarım planı sunar, düşük maliyetli, yüksek yoğunluklu, genişletmesi kolay CPCI iletişimini sağlamak için tasarım planına göre temel çerçevenin, CPCI protokolünün, özel veri yolu iletişim protokolünün ve iletişim çatışmasını önleme mekanizmasının uygulanmasını sunar. Sistemin mühendislikte uygulanması kolaydır, endüstriyel kontrol ve ölçüm alanlarında yaygın olarak kullanılabilir ve benzer tasarımlar için referans sağlar.

Referanslar

Ren Yongfeng, Peng Qiaojun, Liu Zhanfeng.FpGA'ya dayalı CPCI yüksek hızlı okuma arayüzü tasarımı Elektronik Cihazlar, 2015 (1): 148-151.

Tian Yuan, Wang Lide, Yan Xiang, vb FPGA + CPCI'ye dayalı WTB iletişim kartı tasarımı.Lokomotif Elektrikli Sürücü, 2014 (4): 28-32, 56.

Wang Rui, Zhang Youfang, Chen Yanyun, vb FPGA tabanlı veri toplama kartının CPCI arayüz tasarımı Elektronik Teknoloji, 2010, 37 (2): 35-37.

PICMG2.0R3.0, CompactPCI Spesifikasyonu. 1999.

PCI Yerel Veri Yolu Spesifikasyonu (Revizyon 2.3) PCI Yerel Veri Yolu, 2001.

Liu Qing, Ma Tianyi CPCI veri yolu arayüzünün tasarımı ve uygulaması Elektronik Teknolojisi, 2011, 24 (6): 95-96, 100.

SHANLEY T, ANDERSON D. PCI sistem yapısı Beijing: Electronic Industry Press, 2000.

Li Guishan, Qi Dehu. PCI Yerel Otobüs Geliştirici Kılavuzu Xi'an: Xidian University Press, 1997.

Wu Yao, Su Tao, Shi Jiahuan CPCI veriyolu arayüz tasarımı ve genel sinyal işleme kartlarının sürücü gelişimi Yabancı elektronik bileşenler, 2007 (2): 26-30.

Guo Lijun, Tan Jianbo. FPGA tabanlı CPCI veri yolu arayüz tasarım yöntemi. Journal of Hefei University of Technology (Natural Science Edition), 2014 (5): 596-599.

yazar bilgileri:

Wei Jianyong

(Wuhan Hongxu Information Technology Co., Ltd., Wuhan 430074, Hubei)

Gerçekten harika! Tanrıça Profesörü Sexy Hot Girl'den "The Brave Game" Teaser'ı "Yağlı Amca" ya Dönüştü
önceki
100.000'den az, çok satan dört küçük otonom SUV modeli
Sonraki
"Akademik Belge" Ultra geniş bant tabanlı mobil robotlar için bir iç mekan konumlandırma sisteminin tasarımı
Li Guoqing uygunsuz sözler için özür diliyor, ilk kez olağan dışı sözler dışında "ağızdan ağza" gelmiyor
100.000 eve gidebilir mi? Hayalinizdeki tüm kompakt arabalar burada!
Jackie Chan, "Makinenin Kanı" filminin çekimleri sırasında yaralandı ve yüzü kanla kaplıydı, ancak hastaneye gitmedikçe yaralanmadığını söyledi.
Yerinde deneyim: Ülkede yalnızca 21 kişi olan JD.com'un ebeveynleri ne olacak? AI bacak tuttuktan sonraki fark nedir?
Highlander'dan 30 mm daha uzun, daha keskin bir görünüme sahip ve 250.000'e satılıyor Orta boy SUV yeni güç katıyor
Tek elden temizlik deneyiminin, Philips S serisi elektrikli süpürge ve paspas makinesinin deneyim raporunun keyfini çıkarın
Ülkem harika, Çin'deki yapay zeka patent başvurularının sayısı ilk sırada yer alıyor
Bu Game Boy izle, çalar saat "Mario Continental" in tema şarkısı
Tencent'in makalesi Interspeech 2017 için seçildi: Tek kanallı konuşma ayırmada kullanılan derin sinir ağlarının eğitim optimizasyonu
Chongqing'deki bu yer son zamanlarda 4A manzaralı bir yer haline geldi ve kışın ziyaret etmek için mükemmel bir yer!
Philips Sonicare Yeni Yıl Koi Hediye Kutusu: Şans tanrıçası olun, Yeni Yıl "koi" yi seçin
To Top