DSP çipi TMS320F2812'ye dayalı güç kalitesi izleme terminalinin tasarımı

Güncelleme: 12 Aralık 2023
DSP (Dijital Sinyal İşlemcisi), günümüz mühendislik uygulamalarında giderek daha sık kullanılmaktadır. Bunun üç ana nedeni vardır: Birincisi, FFT ve dijital filtreleme gibi çeşitli dijital sinyal işleme algoritmalarını kullanabilen güçlü bilgi işlem yeteneklerine sahiptir; İkincisi, büyük DSP üreticileri, ürünleri için ilgili IDE'leri (entegre geliştirme) tasarladılar. DSP uygulamalarının geliştirilmesini daha da güçlü kılan Çevre; üçüncüsü, yüksek maliyet performansına sahiptir ve güçlü performansı ve düşük fiyatıyla kesinlikle rekabetçidir.

TI, şirketin DSP'si için entegre görsel geliştirme ortamı CCS'yi (CodeComposerStudio) tasarladı ve DSP/BIOS, CCS'nin önemli bir parçasıdır. Temel olarak TMS320 serisi DSP platformunu temel alan gerçek zamanlı bir işletim sistemi çekirdeğidir ve aynı zamanda TI'nin gerçek zamanlı yazılımının temel bir parçasıdır. teknoloji-eXpressDSP teknolojisi. DSP/BIOS temel olarak üç hususu içerir: çok iş parçacıklı çekirdek, gerçek zamanlı analiz aracı, çevre birimi yapılandırma kitaplığı.

1 Sistem işlevi gereksinimleri

Güç kalitesi izleme terminalinin ana işlevi, güç şebekesinin güç kalitesini izlemek ve analiz etmektir (Üç faz Voltaj ve güncel) gerçek zamanlı olarak. Ana izleme değişkenleri şunlardır: gerilim ve akım etkin değeri, aktif ve reaktif güç, gerilim frekansı, üç faz dengesizliği, her bir harmonik gerilim ve akım içerik oranı, güç faktörü, faz kaydırmalı güç faktörü, gerilim dalgalanması, uzun süre, Titreşim. kısa zaman.

Sistem, işlem çekirdeği olarak TI'nin yüksek performanslı DSP çipi TMS320F2812'yi seçiyor ve 150MIPS işlem hızı, sistemin gerçek zamanlı gereksinimlerini karşılamak için yeterli. Sistem gereksinimlerine göre sistem aşağıdaki fonksiyonel modüllere ayrılmıştır: rehberli kendi kendini kontrol etme modül, toplama görevi yürütme modülü, güç kalitesi veri ön işleme modülü, güç kalitesi analizi işlem modülü, veri depolama modülü, iletişim modülü ve insan-bilgisayar etkileşimi modülü.

Geleneksel programlama yöntemine göre, bu fonksiyonel modüller sıralı bir yapıda bir arada düzenlenecek ve modüller arasındaki çağrılar ve geçişler her modülün koduyla tamamlanacak, böylece uygulamanın modülleri eşleştirilmiş bir durumda olacak. Yeni bir işlev modülü eklemek veya mevcut bir işlev modülünü değiştirmek isterseniz, yalnızca ilgili modülün çağırma kodunu değiştirmekle kalmaz, aynı zamanda yeni modül aynı zamanda orijinal sistemin zaman yanıtı özelliklerini de açıkça etkileyerek yükseltmeyi ve bakımı oldukça zahmetli.

DSP/BIOS'un ortaya çıkışı, uygulama programlarının işlevsel modüllerini düzenlemek için başka bir mekanizma sağlar. Her işlevsel modülü bir görev iş parçacığı olarak ele alır. Yapılandırılabilir çekirdek hizmeti aracılığıyla, her görev iş parçacığı, CPU kaynaklarını sistem zamanlayıcının önceliğine göre çoğaltır. Her görev iş parçacığı senkronizasyon, iletişim ve Veri alışverişi vb. ile koordine edilir. Bu mekanizma, uygulamanın sürdürülebilirliğini artırır ve daha kullanışlı ve gelişmiş bir yeniden test aracı sağlar. Yukarıdaki özelliklere göre bu sistem DSP/BIOS'u gerçek zamanlı çekirdek olarak benimser ve tüm sistemi buna göre tasarlar.

Şekil 1, sistemin işlevsel modüllerinin DSP/BIOS kapsamındaki sınıflandırmasını göstermektedir.

2 DSP/BIOS'a dayalı yazılım tasarımı

2.1 Yürütme iş parçacığı planlaması

Sistemin gerçek zamanlı çalışmasında bazı fonksiyon fonksiyonları harici kontrol sinyalleriyle çalıştırılır veya önceden belirlenmiş bir sürede çalıştırılır. Bu nedenle sürüş modu ve işlevin yürütme süresi, gerçek zamanlı sistem için çok önemlidir. DSP/BIOS çok iş parçacıklı uygulamaları destekler ve iş parçacıkları farklı öncelikler olarak tanımlanabilir.

Yüksek öncelikli iş parçacıkları düşük öncelikli iş parçacıklarını kesebilir ve farklı iş parçacıkları arasındaki engelleme, iletişim ve senkronizasyon gibi etkileşimler aşağıdaki 4 türe ayrılır (öncelik yüksekten düşüğe doğru): Donanım Kesintisi (HWI), Yazılım Kesintisi ( SWI), Görev (TSK), Arka Plan İş Parçacığı (IDL). Güç kalitesi izleme terminal sisteminin işlevsel gereksinimlerine göre, sistemin alt işlev modülleri yukarıdaki 4 tip iş parçacığına bölünmüştür.

Öncelikle donanım kesme iş parçacığını (HWI) zamanlayın. Normal şartlarda sistemin ana program kodu yazılım kesmesine veya görevine yerleştirilir; ancak harici cihazla yakından ilgili olan ve yüksek gerçek zamanlı performans gerektiren fonksiyonel modülün program kodunun donanım kesmesine yerleştirilmesi gerekir.

Yukarıdaki gereksinimlere uygun olarak sistem, aşağıdaki alt işlev modüllerini donanım kesme iş parçacıkları olarak ayarlar: A/D edinim görev modülü ve iletişim modülü (alma). A/D edinimi bu sistemin önemli bir temelidir ve sistemin temelindeki donanımla yakından bağlantılıdır, dolayısıyla bir donanım kesme iş parçacığı (HWI) olarak ayarlanır.

Ana süreç şudur: A/D çipi, elektrik şebekesinin gerçek zamanlı verilerini belirli bir frekansta toplar ve ardından DSP'nin McPSP bağlantı noktasıyla iletişim kurar. DSP, A/D çipi tarafından toplanan verileri alır ve diğer iş parçacıklarının çalışmasına hazırlanmak için bunu çip üzerindeki RAM'in belirli bir alanında saklar. İletişim modülü, sistemin temelindeki donanımla yakından ilişkili olan ana bilgisayarla iletişim kurmak için RS485'i kullanır ve DSP'nin SCI arayüzünde yalnızca maksimum 16 kelimeden oluşan bir FIFO bulunur. Alınan veriler zamanında işlenmezse veriler kaybolacaktır.

Aşağıda HWI modülünün DSP/BIOS'taki parametre ayarları açıklanmaktadır. McBSP seri bağlantı noktasının alma kesmesi, HWI modülünün HWI_INT6 konumuna yerleştirilir ve alma kesmesinin ISR işlevi ad_rx_isr(), HWI_INT6 kesmesinin işlev çağrı öğesine doldurulur; aynı zamanda, McBSP'ye yanıt verirken DSP/RI-OS'nin HWI planlama fonksiyonunu kullanmayı seçin. Seri port bir kesinti aldığında, sistem otomatik olarak ad_rx_isr() fonksiyonunu çağıracaktır. McBSP seri port alma kesme ayarı Şekil 2'de gösterilmektedir.

McBSP seri bağlantı noktası alma kesmesinin ayarına benzer şekilde, SCIA alma kesmesi iletişim alma kesmesi olarak ayarlanır ve ISR işlevi scia_rx_isr(), HWI_INT9 kesmesinin işlev çağrısı öğesine doldurulur. Alma kesmesine yanıt verirken sistem, işlem için scia_rx_isr() işlevini çağırır. CLK iş parçacığı aynı zamanda HWI donanım kesme iş parçacıklarından biridir. Tüm sistemin çalışması için bir zaman referansı sağlar, kullanıcıların belirli aralıklarla işlevleri çağırabilmesi için bir yöntem sağlar ve bazı kod değerlendirme araçları için bir zaman referansı sağlar. CLK modülü tamamen DSP'nin zamanlayıcı kesintisine dayanır. TMS320C2812, DSP/BIOS için 2 zamanlayıcı sağlar.

İkinci olarak, yazılım kesme iş parçacığını (SWI) düzenleyin. Tüm yazılım kesintileri, DSP/BIOS çekirdeğinin API çağrısı yoluyla başlatılır. Kontrolü kolaylaştırmak amacıyla sistem, her SWI nesnesi için karşılık gelen posta kutusunu koşullu olarak başlatmak için kullanılabilecek 16 bitlik bir posta kutusu (Posta Kutusu) ayarlar. Yazılım kesintisi. Sıradan görevlerden daha önemli olan ve sıklıkla meydana gelen alt işlev modülleri, yazılım kesme iş parçacığında (SWI) düzenlenebilir. Alt fonksiyon modülleri şunları içerir: güç kalitesi veri ön işleme modülü, iletişim modülü (gönderme).

Güç kalitesi verileri ön işleme modülü esas olarak A/D dönüştürme sonuçlarının sonraki işlenmesini tamamlar. A/D dönüşüm sonucunun ön işlenmesi gereklidir. A/D çipi alım için sabit bir frekans seçtiğinden ancak güç şebekesinin frekansı dalgalandığından, elde edilen veriler üzerinde doğrudan FFT işlemleri gerçekleştirmek spektrum sızıntısına neden olacaktır. Bu nedenle elde edilen verilerin ön işleme tabi tutulması gerekir. Örneğin 1024 çevrimin her biri için 1024 noktalık toplam 256 veri üzerinde 4 noktalı FFT işlemi gerçekleştirilir. 4 döngünün ortalama frekansının f, frekans çözünürlüğünün f/4 ve FFT işlem sonuçlarının f/4, 2f/4, 3f/4, f, 5f/4… frekanstaki yoğunluk olduğunu varsayalım. Bu nedenle, elektrik şebekesi frekansı fo değiştiğinde, FFT hesaplaması için elektrik şebekesi veri frekansı f de buna göre değişir, böylece FFT hesaplamasından önceki elektrik şebekesi veri frekansı f her zaman mevcut elektrik şebekesi frekansı fo ile tutarlı olur.

Güç kalitesi veri ön işleme modülünün spesifik çalışması, A/D dönüşümünden sonra verileri enterpolasyona tabi tutmaktır ve enterpolasyon algoritması doğrusal enterpolasyonu kullanır. Doğrulamadan sonra, nominal gerilim altında, doğrusal enterpolasyon algoritmasının neden olduğu FFT işlemi hatası 0 dahilindedir. ‰ dahilindedir. Ayrıca modülün bir diğer işlevi de bir çevrim içindeki voltajın etkin değerini hesaplamaktır. Bu, voltaj dalgalanmalarını ve uzun vadeli ve kısa vadeli titremeyi hesaplamak için gerekli verilerdir. İletişim modülü (gönder), üst bilgisayara veri gönderilmesinden sorumludur. Gerçek zamanlı gereksinimleri yüksek olmasa da donanımın alt katmanıyla yakından ilişkilidir, dolayısıyla bir yazılım kesme iş parçacığı olarak ayarlanır.

Seri port alma kesintisi meydana geldiğinde, alınan veri komutunu işlemek için scia_rx_isr() fonksiyonunu çağırın ve ilgili komuta göre karşılık gelen güç kalitesi verilerini gönderin. DSP/BIOS, yazılım kesme nesnesi için 0 ile 14 arasında bir öncelik sağlar. Yukarıdaki iş parçacığının önemine göre, toplama veri işleme iş parçacığının önceliği 14'e, ana bilgisayar iletişim iş parçacığı 8'e ayarlanmıştır ve diğer öncelikler gelecekteki yazılım yükseltmelerine ayrılmıştır.

Kesme iş parçacıklarının (donanım kesmeleri ve yazılım kesmeleri dahil) hepsinin aynı yığında çalıştığına dikkat edilmelidir. Yüksek öncelikli bir kesinti meydana geldiğinde ve sistemin görevleri değiştirmesine neden olduğunda, yüksek öncelikli kesme iş parçacığı, düşük öncelikli kesme iş parçacığını keser; Yüksek öncelikli kesme iş parçacığını çalıştırmadan önce, düşük öncelikli kesme iş parçacığının ilgili kayıt içeriği kaydedilecek ve yüksek öncelikli kesme iş parçacığı çalıştırıldıktan sonra, kayıt orijinal içeriğine geri yüklenecek ve orijinali tamamlamaya devam edecektir. düşük öncelikli iş parçacığı.

Bu nedenle, çok fazla donanım kesintisi veya yazılım kesintisi iş parçacığı ayarlanırsa yığın taşar. Bu nedenle çoğu görev modülünün görev iş parçacıklarına yerleştirilmesi gerekir. Daha sonra görev iş parçacığını (TSK) zamanlayın. Çoğu gerçek zamanlı sistem gibi, görev iş parçacıkları da tüm sistemin ana bileşenidir. Görev iş parçacıklarındaki işlevler bağımsız veya paralel olarak çalışabilir. DSP/BIOS görev yönetimi modülü, işlemi görev dizisinin önceliğine göre düzenler ve anahtarlama işlevi aracılığıyla bir görevden diğerine dönüşümü tamamlar.

Her görevin 4 yürütme durumu vardır: çalıştır, hazır, engellendi ve sonlandırıldı. Ocak misyonu oluşturuldu ve her zaman dört eyaletten birinde bulunuyor. DSP/BIOS, her görev nesnesi için -l ile 15 arasında bir öncelik sağlar. Görevler kesin öncelik sırasına göre yürütülecek, aynı önceliğe sahip görevler “ilk gelen ilk alır” ilkesine göre yürütülme sırasına göre düzenlenecektir. Bir görev iş parçacığı oluşturulduğunda, aynı anda göreve ait özel bir yığının da oluşturulması gerektiğine dikkat edilmelidir. Yığın, yerel değişkenleri veya daha fazla işlev çağrısı iç içe yerleştirmeyi depolamak için kullanılır.

Güç kalitesi analizi hesaplama modülünü, veri depolama modülünü ve insan-bilgisayar etkileşim modülünü görev dizisinde (TSK) ayarladık. Güç kalitesi analizi hesaplama modülü üç bölüme ayrılabilir: harmonik hesaplama görev dizisi, voltaj dalgalanması hesaplama görevi dizisi ve titreşim hesaplama görevi dizisi.

Harmonik hesaplama görev dizisi esas olarak önceden işlenmiş güç kalitesi verileri üzerinde FFT işlemlerinin gerçekleştirilmesinden sorumludur. FFT işlemi temel olarak beş bölümden oluşur: bit dönüştürme işlemi, pencereleme işlemi, 2'ye dayalı kelebek işlemi, bölünmüş taban işlemi ve kare toplam işlemi. Gerilim dalgalanması hesaplama görevi iş parçacığı, şebeke voltajındaki dalgalanmaların 3 dakika içinde kaydedilmesinden sorumludur. Önceki güç kalitesi veri ön işleme modülü, her döngü için voltajın etkin değerini elde etmiştir.

Bu sayede sadece voltajın efektif değerinin maksimum ve minimum değerlerini 3 dakika içinde kaydetmek gerekir ve ikisi arasındaki fark voltaj dalgalanmasıdır. Titreşim hesaplama görev dizisi, kısa süreli titremenin ve uzun süreli titremenin hesaplanmasını içerir. Artık IEC titreşim ölçer tasarım yöntemi genel olarak benimsenmektedir.

Giriş uyarlamalı kendi kendini kontrol sinyali, son olarak titreme değerini elde etmek için ikinci dereceden demodülatörden, bant geçiş ağırlıklı filtrelemeden, kare birinci derece düşük geçişli filtrelemeden ve çevrimiçi istatistiksel değerlendirmeden geçer; ancak bu yöntem yeterlidir. Karmaşık ve zaman alıcıdır. Algoritmayı basitleştirerek basit ve uygulanabilir bir hesaplama yöntemi elde edilir: 256 ardışık çevrimin etkin gerilim değeri üzerinden FFT hesaplaması yapılır ve ağırlıklandırma gibi bir dizi hesaplama sonrasında 12.8s'lik kırpışma değeri elde edilebilir ve titreşim değeri 10 dakika içindedir.

Değer, korelasyon hesaplamasından sonra kısa süreli titreme alabilir ve ardışık 12 kısa süreli titreme (2 saat içinde) hesaplamadan sonra uzun süreli titreme alabilir. Doğrulamanın ardından bu algoritma, IEC titreşim ölçer algoritmasıyla karşılaştırıldığında ‰ 1 oranında bir hataya sahiptir.

Veri depolama modülü de görev dizisine yerleştirilir ve işlemi, güç kalitesi analiz sonuçlarını, voltaj dalgalanmalarını ve kırpışma değerlerini FIash'ta saklamaktır. İnsan-bilgisayar etkileşimi modülü iki bölümden oluşur: klavye algılama görevi ve sıvı kristal ekran görevi. Klavye algılama görevi iş parçacığı periyodik PRD işleviyle tamamlanabilir. PRD, fonksiyonun çalışma süresini gerçek zamanlı saate göre belirleyebilir. Burada, klavye algılama görevini, tuş vuruşlarını algılamak için 100 ms'de bir çalışacak şekilde ayarlayın. Anahtar duruma göre sıvı kristal ekran görev, geçerli en son güç kalitesi verilerini görüntüler.

Son olarak arka plan iş parçacığı (IDL) vardır. Arka plan iş parçacığı (IDL) en düşük önceliğe sahiptir. Genellikle, uygulamanın yürütülmesi sırasında DSP uygulamasının gerçek zamanlı etkileşimini ve teşhisini gerçekleştirebilen gerçek zamanlı analiz modülü (TRA), çalışacak şekilde yerleştirilir. CCS, CPU yük diyagramı, yürütme diyagramı, ana bilgisayar kanalı kontrolü, bilgi kaydı, istatistiksel gözlem, gerçek zamanlı kontrol panosu ve çekirdek/nesne gözlemi gibi gerçek zamanlı analiz araçlarına sahiptir. Bu fonksiyonel modül serisi IDL iş parçacığına yerleştirilebilir; bu araçlar aracılığıyla tüm DSP sisteminin çalışması bir bakışta netleşecektir.

2.2 İş parçacıkları arasındaki iletişim ve senkronizasyon

Bu çok iş parçacıklı sistemde, paylaşılan kaynaklara erişim, çözmek için iş parçacıkları arasında karşılıklı koordinasyon gerektirir.

DSP/BIOS ortamında boru tabanlı (PIPE) iletişim, akış tabanlı (SIO) kanal tabanlı iletişim ve ana bilgisayar (HST) kanal tabanlı iletişim olmak üzere üç iletişim yöntemi vardır.

Tablo 1, 4 iş parçacığının verileri paylaşma ve senkronizasyon sağlama yollarını göstermektedir.

3 Sistem gerçek zamanlı analiz ve hata ayıklama

DSP/BIOS çekirdeğinin kendi yükünün sistem programının gerçek zamanlı performansı üzerinde etkisi olacaktır. Bu nedenle DSP/BIOS çekirdeğinin optimize edilmesi gerekmektedir. Tüm uygulama sisteminin DSP/BIOS yükünü ve bilgi işlem kapasitesini belirlemek için CCS'de sağlanan DSP/BIOS analiz aracını kullanabilirsiniz. Örneğin DSP/BIOS tarafından sağlanan gerçek zamanlı analiz aracındaki CPU yük diyagramı yaygın olarak kullanılan araçlardan biridir.

Son entegrasyon aşamasında, gerçek zamanlı etkileşim ve diğer nedenlerden dolayı sıklıkla bazı hatalar veya zamansız yanıtlar olacaktır. Genel olarak konuşursak, bu olayların periyodik olmaması ve oluşma sıklığının düşük olması nedeniyle bunları bulmak ve takip etmek zordur. Ancak DSP/BIOS'taki RTA modülü, geliştirici tarafından sağlanan özel algılama vektörüyle birlikte çekirdeğine gömülü olduğundan, hatanın temel nedenine ilişkin benzersiz bir görünürlük sağlar. Bu görselleştirme işlevi, genel gömülü geliştirme sistemlerinde bulunmayan hataların izole edilmesine ve düzeltilmesine büyük ölçüde yardımcı olur.

Uygulama programının tüm sistemdeki yürütme performansı aşağıdaki dört açıdan geliştirilebilir: farklı program işlevleri için iş parçacığı tipini dikkatlice seçin; sistem yığınını çip üzerindeki belleğe yerleştirin; saat kesintisi frekansını azaltın; akış giriş ve çıkış arabelleğinin boyutunu artırın.

4 özet

CCS tarafından sağlanan bir araç seti olarak DSP/BIOS'un kendisi yalnızca çok az CPU kaynağı kullanır, ancak oldukça yüksek performans sağlar ve geliştirme sürecini hızlandırır. Güç kalitesi izleme terminalinin gerçek zamanlı işletim sistemi olarak DSP/BIOS'u kullanarak, DSP programları yazarken donanım kaynaklarını kontrol etmek ve çeşitli yazılım modüllerini esnek bir şekilde koordine etmek kolaydır; bu, yazılım geliştirme ve hata ayıklamanın ilerlemesini büyük ölçüde hızlandırır. Son deney, tüm sistemin iyi bir gerçek zamanlı performansa ve istikrarlı ve güvenilir çalışmaya sahip olduğunu kanıtladı.