FPGA tabanlı bir çevrimiçi program yükseltme şeması

Zhang Yongle, Wang Yongyong, Zheng Wei

(Beijing Aerospace Wanyuan Technology Co., Ltd., Pekin 100176)

XILINX FPGA tabanlı bir çevrimiçi program yükseltme programı tanıtıldı.Program ek cihaz gerektirmez ve donanım durumunu değiştirmeden ürünün yazılım işlevi yükseltmesini gerçekleştirir. Yapılandırma yongası (PROM) üzerindeki tüm işlemler FPGA'nın dahili mantığı tarafından uygulandığından, bu çözüm iyi bir taşınabilirliğe ve ölçeklenebilirliğe sahiptir.

FPGA; çevrimiçi yükseltme; JTAG

Çin Kütüphanesi Sınıflandırma Numarası: TN791

Belge tanımlama kodu: Bir

DOI: 10.16157 / j.issn.0258-7998.2017.03.011

Çince alıntı biçimi: Zhang Yongle, Wang Yongyong, Zheng Wei.FpGA'ya dayalı bir çevrimiçi program yükseltme programı. Elektronik Teknoloji Uygulaması, 2017, 43 (3): 48-50, 54.

İngilizce alıntı biçimi: Zhang Yongle, Wang Yongyong, Zheng Wei. FPGA'ya dayalı bir sistem içi program güncellemesi şeması. Application of Electronic Technique, 2017, 43 (3): 48-50, 54.

0 Önsöz

Bu makalenin araştırma konusu, belirli bir modele uygulanan bir tür füze kaynaklı test ekipmanına dayanmaktadır.Genel gereksinimlerdeki değişiklikler nedeniyle, fabrikadan çıktıktan sonra ürün fonksiyonlarının yükseltilmesi gerekmektedir. Bu tür ürünler fabrikadan çıkmadan önce özel işlem gerektirdiğinden, teslimattan sonra kapağı açıp yakma prosedürünü tekrarlayacak şartlara sahip olmadıklarından ve model geliştirme gerekliliklerine göre, sistem eşleştirme testi ve kapsamlı test tamamlandıktan sonra araç üstü ekipmanın sökülmesi ve bakımı yasaktır. , Ekipmanın durumu demonte edildikten sonra tahrip olduğu için, erken aşamada gerçekleştirilen çeşitli testlerin yeniden değerlendirilmesi gerekir, bu da model geliştirme sürecini etkiler. Bu sorunu çözmek için, bu makale, ürünün donanım durumunu bozmadan kendi yazılım işlevlerini yükseltmek için FPGA'nın esnek dahili mantık kaynaklarını kullanan bir çevrimiçi program yükseltme programı önermektedir.

1 Uygulama arka planı

Giderek artan dahili kaynaklar ve tekrarlanabilir konfigürasyonun avantajları ile FPGA, test ekipmanında önemli bir rol oynar ve gerçekleştirilen fonksiyonlar daha karmaşık ve çeşitli hale gelir.Ürün fonksiyonlarının yeniden konfigürasyonu için uygulama gereksinimleri de artmaktadır. . Ürün işlevinin yeniden yapılandırılması, aygıt donanım durumunu değiştirmeden FPGA program dosyalarını güncelleyerek ürün işlevi değişikliklerini ve yükseltmelerini gerçekleştirme yöntemidir. Mevcut ana uygulama şeması, MCU (veya DSP) + bellek yongasının mimarisini kullanmaktır.MCU, bellek yongasının okunması ve yazılmasından sorumludur. Bellek yongası, FPGA'nın program kod belleği olarak kullanılır. Ürün açıldıktan sonra, MCU bellek yongasındaki verileri okur. Belirli bir zamanlamaya göre (FPGA yükleme zamanlaması) FPGA'ya gönder, bu işlem FPGA veri yükleme işlemidir. Bu çözüm, iki nedenden dolayı bu makalenin araştırma konusu için uygun değildir: Birincisi, bu çözüm ek iki yonga, MCU ve bellek yongası gerektirir ve özellikle karta basılan ekipman için, baskılı tahtanın düzeni daha zor hale gelir. Fazladan boşluğun olmaması durumu daha belirgindir; ikincisi, yazılım miktarı artar.MCU yazılımı eklendikten sonra arıza olasılığı da artar çünkü MCU'nun sadece bellek yongasını okuyup yazması değil, aynı zamanda FPGA'yı çalıştırması gerekir. Yükleme işlemi simüle edilir.Yükleme başarısız olursa sadece ürünün yükseltme işlevi başarısız olmaz, ürünün temel işlevleri de başarısız olur.Bu ürünün özel uygulama durumları düşünüldüğünde bu çözüm risklidir ve benimsenmemelidir.

Bu makalede benimsenen şema, FPGA içinde işlevsel bir modül oluşturmaktır ve bu modül PROM yonga programlaması için gerekli olan ilgili işlemleri tamamlar. Modül, ürünün yazılımını yükseltirken, yükseltme çalışmasını gerçekleştirir.Yükseltme gerekmediğinde, modül boşta kalır ve bir rol oynamaz. Bu modül ve ürünün orijinal işlevsel modülü birbirinden bağımsız çalışır ve birbirine karışmaz. Aygıt açıldığında, FPGA program yükleme işlemi, yerleşik PROM yapılandırma yongası tarafından yine otomatik olarak tamamlanır. Bu çözüm, hata riskini büyük ölçüde azaltan ek yonga veya ek yazılım sayısı eklemez.

2 Fonksiyon gerçekleştirme

Ekipmanın sistem bağlantı blok şeması Şekil 1'de gösterilmektedir. Ekipman, RS-422 arayüzü ile yer ölçüm ve kontrol istasyonuna bağlanır ve yer ölçüm ve kontrol istasyonu, ağ iletişim arayüzü üzerinden bilgisayara bağlanır. Test ekipmanının ana kontrol çipi FPGA, XILINX Company'nin Virtex-4 serisi XC4VSX35 çipi, PROM konfigürasyon çip modeli XCF32PFSG48C ve depolama kapasitesi 32 Mbit'tir.

Bilgisayar, programlama dosyasını ağ arayüzü üzerinden ölçüm ve kontrol istasyonuna gönderir ve ölçüm ve kontrol istasyonu programlama verilerini ekipmana RS-422 arayüzü üzerinden gönderir ve ekipman durum bilgilerini RS-422 arayüzü üzerinden ölçüm ve kontrol istasyonuna geri gönderir. Aşağıda dört yönden açıklamalar verilmiştir: programlama dosyasının oluşturulması, ölçüm ve kontrol istasyonu ile cihaz arasındaki iletişim protokolü, FPGA ile PROM arasındaki bağlantı ve FPGA yazılım tasarımı.

2.1 Yazma dosyası oluşturma

XILINX tasarım aracı (PROMGen) birden fazla formatta konfigürasyon veri dosyaları oluşturabilir.Bu veri dosyaları PROM veya diğer geçici olmayan bellek yongalarında saklanabilir. Konfigürasyon dosyasının ortak formatı Tablo 1'de gösterilmektedir.

FPGA programı yazılır ve ISE (ISE Design Suite 14.2) geliştirme ortamı kapsamlı bir şekilde uygulandıktan sonra, programcı aracılığıyla IMPACT aracı tarafından PROM'a programlanabilen bir .bit programlama dosyası doğrudan oluşturulur. .Bit format dosyası, başlık dosyası verilerini içeren iki seviyeli bir konfigürasyon veri dosyasıdır Başlık dosyası verileri PROM programlama sürecini kontrol etmek için kullanılan PROM ile ilgili bilgileri içerir Bu format dosyası bir programcı ile programlama için uygundur. .Hex dosyası, yalnızca yapılandırma verilerini içeren ve başlık dosyalarını ve diğer bilgileri içermeyen bir ASCII PROM dosya biçimidir.PROMGen veya iMPACT araçları kullanılarak oluşturulabilir. .Hex dosyası, bu makalede kullanılan dosya biçimidir.

2.2 Cihaz iletişim protokolü

Ölçüm ve kontrol istasyonu ekipmana RS-422 üzerinden asenkron seri iletişim kullanılarak bağlanmıştır, baud hızı 921.6 kb / s, 8 bit veri biti, 1 bit tek parite, 1 bit durdurma bitidir. RS-422 fiziksel katman iletişimi için doğrulama kullanılmaz. İletim ve alım, veri çerçevesi iletimini benimser Tablo 2, örnek olarak ölçüm ve kontrol istasyonu tarafından gönderilen veri çerçevesini alır.

Tablo 2'de, 0xFD ve 0x55 çerçeve başlıklarıdır; komut türü 0x02, komutun bir veri aktarım talimatı olduğunu belirtir ve diğer talimat türleri burada açıklanmamıştır; veri uzunluğu, çerçeve verilerinin veri alanında, veri alanında bulunan veri baytlarının sayısını gösterir Bayt sayısı değişkendir. 0x00 ~ 0xFF veri uzunluğu, 0 ila 255 arasındaki veri alanındaki gerçek veri sayısını temsil eder; sağlama toplamı, veri alanındaki tüm verilerin (0 ila 255) kümülatif toplamıdır.

İletilen dosya bir ".hex" saf veri dosyası olduğundan, dosya yalnızca üç tür karakter içerir: A ~ F, a ~ f, 0 ~ 9 ve karşılık gelen onaltılık veriler 0x41 ~ 0x46, 0x61 ~ 0x66, 0x30 ~ 0x39, çerçeve başlık verilerinin 0xFD ve 0x55'in tüm veri çerçevesindeki benzersizliğini sağlayabilir ve alıcı bunu her veri çerçevesinin başlangıcını değerlendirmek için temel olarak kullanabilir.

2.3 Arayüz uygulaması

FPGA ve PROM, JTAG'ın spesifik bağlantı ilişkisi Şekil 2'de gösterilmektedir.

Şekil 2'de, JTAG1 indirme bağlantı noktası FPGA'nın çevrimiçi hata ayıklaması ve simülasyonu için kullanılır ve JTAG2 indirme bağlantı noktası PROM'u programlamak için kullanılır. FPGA'nın 4 I / O portu JTAG2 zincirine bağlanır PROM çipini programlarken, I / O 1 ~ I / O 4 yüksek empedans durumundadır ve programcı PROM'u JTAG2 portu üzerinden programlayabilir. Programlama tamamlandıktan sonra, FPGA programı çalıştırır ve PROM'un çevrimiçi yükseltme işlevi bu programa yerleştirilir.PROM çipinin çevrimiçi olarak yükseltilmesi gerektiğinde, I / O 1 ~ I / O 4 sırasıyla TCK, TMS, TDI, TDO'yu simüle eder Pinler, JTAG zamanlama kontrol fonksiyonunu uygulamak, PROM'u silme, programlama ve doğrulama gibi işlemleri gerçekleştirmek ve PROM'un program yükseltmesini tamamlamak için FPGA'nın dahili mantığı tarafından uygulanır.

2.4 Modül bileşimi

FPGA 422 haberleşme modülü, merkezi kontrol modülü ve JTAG zamanlama kontrol modülü olmak üzere 3 modülden oluşmaktadır Kompozisyon diyagramı Şekil 3'te gösterilmiştir.

422 modülü, ölçüm ve kontrol istasyonuyla veri alışverişi yapar, ölçüm ve kontrol istasyonu tarafından gönderilen program verilerini alır ve ölçüm ve kontrol istasyonuna karşılık gelen durum bilgilerine yanıt verir. JTAG modülü, sınır tarama kontrol zamanlamasını oluşturmak ve PROM'u silme, programlama ve doğrulama gibi ilgili işlemleri gerçekleştirmek için kullanılır. Kontrol modülü, 422 modülünü ve JTAG modülünü koordine etmek ve kontrol etmek, 422 modülü tarafından alınan verileri doğrulamak ve JTAG modülünün mevcut çalışma durumunu değerlendirdikten sonra, verileri özel el sıkışma protokolüne göre JTAG modülüne göndermek ve aynı zamanda JTAG modülü tarafından döndürülen bilgiler 422 modülüne geri beslenir.

2.5 Modül iletişim zamanlama tasarımı

Kontrol modülü ile JTAG modülü arasındaki bağlantı Şekil 4'te gösterilmektedir.

Şekil 4'te önemli sinyaller şu şekilde açıklanmıştır:

EPV_CTRL: Silme, programlama ve doğrulama işlemlerini başlatın;

RDY: Sinyal hazır ve JTAG modülü veri almaya hazır;

LOAD: El sıkışma sinyali RDY'yi yüksek olarak alırken, verinin hazır olduğunu belirtmek için LOAD'u yüksek olarak ayarlayın.

Yukarıdaki sinyallerin tümü yüksek etkilidir ve iletişim dizisi Şekil 5'te gösterilmektedir.

Şekil 5'te, kontrol modülü EPV_CTRL sinyalini yüksek ayarlar ve RDY sinyalinin geçerli olmasını bekler.RDY sinyalinin yüksek olduğunu tespit ettiğinde, LOAD sinyalini yüksek ayarlar ve veriyi DATA satırına koyar.Bir sonraki CLK döngüsü RDY'nin olduğunu algılar. Düşükse, bir döngü gecikecektir.Bir sonraki döngüde LOAD sinyali düşük ayarlanacaktır.YÜK sinyali ve VERİ satırındaki veriler en az 2 CLK döngüsü boyunca korunacaktır (Not: VERİ veri hattında iletilen ilk bayt CRC kontrol değeridir. İlgili talimatlar için bölüm 2.8'e bakınız.

2.6 JTAG modül tasarımı

Aşağıdaki, JTAG modülünün gerçekleştirme ilkesine odaklanmaktadır.

Modülün ana işlevi, PROM cihazını silmek, programlamak ve doğrulamaktır Her adım, ilgili eylemleri gerçekleştirmek için PROM'u kontrol etmek için gerekli talimatların bir dizisidir. Örneğin, PROM'u silmek için önce PROM'u ISP moduna geçirmek için bir komut göndermeniz ve ardından silinecek bloğu (BLOCK) belirtmek için bir silme komutu göndermeniz gerekir.Silme başladıktan sonra, silme işleminin sonuna kadar bir hata olup olmadığını izleyin .

JTAG modülü, farklı işlemler gerçekleştirmek üzere PROM'u kontrol etmek için özel talimatlar gönderir. Komutun gönderme sırası, IEEE1194.1 sınır tarama protokolünü izler. Sınır tarama protokolü, orijinal olarak çipin içinde bir Test Erişim Portu (TAP) ve dahili düğümleri test etmek için özel bir JTAG test aracı tanımlayarak çipi test etmek için kullanıldı. JTAG testi, birden fazla cihazın seri olarak bağlanmasına izin verir Birlikte, her bir cihazın ayrı testini gerçekleştirmek için bir JTAG zinciri oluşturulur. Günümüzde JTAG arayüzü, sistem içi programlamayı (ISP) uygulamak ve Flash ve diğer cihazları programlamak için de yaygın olarak kullanılmaktadır.

Tam JTAG işleme zinciri, JTAG yazmacı ve TAP kontrolöründen oluşur. JTAG kaydı, sınır taraması için gereken tüm talimatları içerir. TAP denetleyicisi temel olarak, PROM programlamasını kontrol etmek için gerekli her adımı kodlayan bir durum makinesi içerir.TTCK'nın yükselen kenarındaki TMS'nin durum değeri, veri kaydına veri akışı ve talimatın talimatına dahil olmak üzere durum makinesinin atlama akışını belirler. Kaydın akışı. İlgili durum geçiş ilkeleri, burada tekrar edilmeyecek olan referanslarda bulunabilir.

2.7 Programlama işlemi

PROM'un programlanması 3 adımda silme, programlama ve doğrulama içerir.

(1) Silme: Kontrol modülü EPV_CTRL'yi yüksek ayarlar, JTAG modülü tüm PROM'u siler ve PROM'un durumunu okur, silme tamamlandıktan sonra tamamlanma durumunu veya hata durumunu kontrol eder, CLK saatinin bir sonraki yükselen kenarında RDY'yi yüksek ayarlar Ve programlama sürecine girin. Silme işlemi sırasında bir hata oluşursa ve ERROR yüksek olarak ayarlanırsa, kontrol modülü, silme işlemini yeniden denemek için JTAG modülünü RST aracılığıyla sıfırlamalı ve EPV_CTRL'yi yüksek ayarlamalıdır.

(2) Programlama: Silme işlemi başarılı olduktan sonra, JTAG modülü RDY'yi yüksek olarak ayarlar, modülün programlama verilerini almaya hazır olduğunu gösterir ve kontrol modülü LOAD'u yüksek ayarlar ve verileri aynı zamanda saatin düşen kenarında DATA satırına gönderir. , JTAG modülü verileri kilitler, saatin bir sonraki yükselen kenarı, JTAG modülü RDY'yi düşük ayarlar ve ardından saatin bir sonraki yükselen kenarı, kontrol modülü LOAD'u düşük ayarlar. JTAG modülünün veriyi bit bit PROM'a taşıması gerektiğinden, kontrol modülü veriyi gönderdikten sonra, verinin bir sonraki baytını göndermeden önce en az 8 döngü beklemesi gerekir Yeni veri göndermeden önce, RDY sinyalinin durumunu izlemesi gerekir.

Kontrol modülü 256 bit veri gönderdikten sonra, PROM bu veriler üzerinde yaklaşık 15 s süren Flash programlaması gerçekleştirir ve kontrol modülünün bir gecikme için beklemesi gerekir. Programlama sırasında modül, bir sorun olup olmadığını görmek için PROM'un durumunu izler.Kontrol modülü tüm verileri JTAG modülüne gönderdikten sonra, EPV_CTRL'yi düşük ayarlar ve JTAG modülü son 256 bit veriyi PROM'a iletir.Hata yoksa okula girin Sansür operasyonu.

(3) Kontrol edin: Kontrol modülü EPV_CTRL'yi düşük ayarladıktan sonra, JTAG modülü son veri grubunu PROM'a gönderir ve doğrulama sürecini başlatır.JTAG modülü veriler üzerinde 8 bitlik CRC doğrulaması gerçekleştirmek için PROM'daki tüm verileri okur ve .Hex dosyasının CRC kontrol değeri ile karşılaştırın. Eşit değillerse, ERROR'u yüksek olarak ayarlayın ve DONE düşük kalır. Eşitse, DONE'yi yüksek olarak ayarlayın. JTAG portuna bağlı tüm I / O pinleri yüksek empedans durumundadır ve kontrol edin Son.

2.8 Veri doğrulama

Programlama sürecinin güvenilirliğini ve anti-parazitini sağlamak için, programlama verilerinin doğrulanması gerekir.Doğrulama önlemleri aşağıdaki gibidir:

(1) Ekipman ile yer ölçüm ve kontrol istasyonu arasındaki 422 iletişim çerçevesinin sonuna bir kontrol kelimesi eklenir ve çerçeve verilerinin bütünlüğünü ve doğruluğunu sağlamak için her bir veri çerçevesi toplanır ve kontrol edilir;

(2) Oluşturulan .hex dosyası saf konfigürasyon verileri olduğundan ve dosyanın doğrulama bilgilerini içermediğinden, programlama işleminin bütünlüğünü sağlamak için tüm dosya üzerinde veri doğrulaması yapılır ve veri dosyasının tüm kelimeleri .hex dosyasının başlığına eklenir. Bölümün CRC8 kontrol değeri, programlama tamamlandıktan sonra PROM'daki tüm verileri okur ve CRC8 kontrol işlemi gerçekleştirir Dosya başlığının CRC8 kontrol değerine eşit ise programlama işleminin başarılı olduğunu gösterir.

3 Tasarım konuları

Şekil 2'deki FPGA ve PROM'un I / O portu aynı JTAG zincirindedir Program yükseltildiğinde, bu JTAG zinciri (JTAG2) programlayıcıya bağlanamaz.

Bu çözümde, PROM içeriğinin güncellenmesi 0 adresinden sırayla gerçekleştirilir. Bu güncelleme PROM içindeki kurulum kayıtlarının değerini değiştirmez, sadece PROM'daki veri alanının içeriğini değiştirir.

4. Sonuç

FPGA'nın esnek yeniden yapılandırma işlevine dayanan bu makale, PROM'u yükseltmek için bir program önermektedir. Program basit ve etkilidir. Tüm işlevler FPGA içinde uygulanır. Donanımın JTAG'yi simüle etmek için yalnızca 4 FPGA I / O bağlantı noktasını kullanması gerekir. Arayüz sıralaması, PROM içindeki verileri güncellemek için kullanılır. Ek olarak, iletişim sürecindeki çerçeve kontrolü ve CRC kontrolü, verilerin doğruluğunu ve yüksek güvenilirliğini sağlar. Şu anda, program bir dizi ürüne başarıyla uygulanmıştır.

Referanslar

Mike Peattie. Xilinx FPGA'ları ikincil seri yoluyla yapılandırmak için bir mikroişlemci kullanma veya MAP modunu seçme ... www.xilinx.com / support / document / application_notes / xapp502.pdf.

Chen Lan, Li Jiyun, Zhu Renjie. Kintex7 ve SPI Flash'a dayalı FPGA uygulaması

Çoklu yükleme Elektronik Teknoloji Uygulaması, 2014, 40 (6): 24-26.

XILINX.Platform flash sistem içi programlanabilir konfigürasyon PROMS veri sayfası..http: www.xilinx.com/support/documentation/data_sheets/ds123.pdf.

XILINX.Virtex-4 FPGA yapılandırması kullanıcı kılavuzu..http: www.xilinx.com/support/documentation/user_guides/ug071.pdf.

Randal Kuramoto. SVF..http kullanarak sistem içi bir platform Flash PROM tasarım revizyonunu güncelleme: www.xilinx.com/support/documentation/application_notes/xapp972.pdf.

"Wushuang Orochi 3" deki 170 karakterin tümü farklı eylemlere sahiptir ve açık dünya tasarımını kullanmaz
önceki
"Gezici Dünya" resmi olarak AR kupasına, herhangi bir zamanda uzaydan dünyanın 500 milyon kilometre karelik manzarasını kuş bakışı verme yetkisi verdi | Jingfen Tiyatrosu
Sonraki
"Ace Agent 2" beklentilere layık mı?
Parmak izi kilit reklamı mayın temizleme avcılarına hakaret etmekle suçlandı. Resmi marka özür diledi: reklam kaldırıldı
İlk kez, JJ Lin'in Huangshi turu biletleri kontrol etmek için yüz tanıma özelliğini kullanıyor. 30.000 kişinin gerçek isim kabul sistemi var. Çek oranı% 100.
Feng Xiaogang'ın "Fang Hua" dosyası 29 Eylül'de dosyalanacak! Sinema dizisi Ma Yun'un beğenisini destekliyor
Bu soğuk surat beni büyüledi
CORDIC geliştirilmiş algoritmasına dayalı NCO tasarımı
Japonya Oyun / Donanım Haftalık Satışları 20184,30 ~ 5,6
Cep telefonu okumak gözlerinizi incitiyor mu? Hisense çift ekranlı cep telefonu A6 satışta
ITIL'e Dayalı SOA Mimarisinin Araştırma ve Uygulaması
Huawei doktora çalışanlarının ortalama ciro oranı% 21,8. Ren Zhengfei, yüksek eğitimli yeteneklerin kaybını yansıtmak için dahili e-postalar yayınlıyor
Çok değerli nicelemeye ve performans analizine dayalı kaotik yayılma spektrum dizisi
Denizaşırı Film Haberleri Wes Anderson'ın "Canis Adası" teaser'ı, bir grup büyük kahve köpeklerin konuşmasına izin veriyor
To Top