Zezwala się na korzystanie z artykułu na warunkach licencji Creative Commons Uznanie autorstwa 3.0

Artykuł recenzowany nadesłany 04.11.2015 r., przyjęty do druku 30.11.2015 r.

DOI: 10.14313/PAR_218/21

Przetwornik funkcyjny impulsowo-kodowy o wybieralnej rozdzielczości i charakterystyce opisanej funkcją pierwiastka kwadratowego

Maria Wrzuszczak, Volodymyr Khoma

Politechnika Opolska, Wydział Elektrotechniki, Automatyki i Informatyki, Instytut Automatyki i Informatyki, ul. Sosnkowskiego 31, 45-272 Opole

Streszczenie: W artykule przedstawiono przetwornik impulsowo-kodowy o wybieralnej rozdzielczości i charakterystyce statycznej opisanej funkcją pierwiastka kwadratowego. Przeanalizowano możliwości i koszty jego realizacji na bazie układów FPGA oraz porównano jego właściwości i koszty realizacji z przetwornikiem zbudowanym z wykorzystaniem pamięci stałej ROM.

Słowa kluczowe: przetwornik impulsowo-kodowy, przetwornik funkcyjny o charakterystyce y = x1/2, dokładność przetwarzania, estymator kosztów realizacji

1. Wprowadzenie

Rozwój technologii i coraz szersze zastosowania czujników inteligentnych stwarzają nowe możliwości i wyzwania przed projektantami tych układów w celu osiągniecia większej dokładności pomiaru [1, 2]. Pewne działania wykonuje się w nich na sygnałach analogowych, inne po przetworzeniu na postać cyfrową.

W czujnikach inteligentnych konieczne jest najczęściej przetwarzanie sygnałów pomiarowych w czasie rzeczywistym, według określonego algorytmu. Ponadto dąży się do miniaturyzacji układu, z równoczesnym zmniejszaniem mocy admisyjnej. Często wymagane jest przetwarzanie sygnału w torze pomiarowym przez układ o odpowiedniej charakterystyce statycznej nieliniowej, na przykład logarytmicznej lub wykładniczej (w celu linearyzacji charakterystyki przetwarzania czujnika), czy też o charakterystyce opisanej funkcją potęgową y = x2 lub y = x1/2 [3]. Tego typu przetworniki nazywane są popularnie przetwornikami funkcyjnymi.

Przetwarzanie funkcyjne może być zrealizowane w różny sposób, na przykład z wykorzystaniem układów przetwarzania cyfrowego i pamięci stałej (ROM) lub z wykorzystaniem układów całkowania cyfrowego [4, 5]. Alternatywnym podejściem jest zastosowanie przetworników funkcyjnych impulsowo-kodowych. Są to układy cyfrowe ze sprzężeniem zwrotnym [6, 7].

W zależności od sposobu zastosowania przetworniki funkcyjne impulsowo-kodowe można podzielić na dwie grupy:

1. przetworniki, które są wbudowane w tor pomiarowy, przetwarzają dane na bieżąco, w czasie rzeczywistym,

2. przetworniki używane do formowania różnych sekwencji impulsów i kodów.

Przetworniki impulsowo-kodowe, zaliczane do grupy pierwszej, są stosowane do przetwarzania takich wielkości jak przedział czasu, częstotliwość, faza i kąt obrotu oraz do pomiaru napięcia lub prądu z pośrednim przetwarzaniem tych wielkości w sekwencję impulsów [5, 6]. Przykładem zastosowań przetworników impulsowo-kodowych grupy drugiej jest realizacja akumulatora fazy w syntezatorach cyfrowych DDS (ang. Direct Digital Synthesis), co pozwala na przetwarzanie wielobitowych kodów z szybkością ograniczoną jedynie przez opóźnienie kilku bramek logicznych [8, 9].

Podstawowymi parametrami metrologicznymi przetworników impulsowo-kodowych są: dokładność, zakres przetwarzania i czas przetwarzania [10]. Przy doborze metody przetwarzania bierze się pod uwagę również złożoność układu i możliwości wykonania układu jako układu zintegrowanego (ograniczenia technologiczne) [11, 12].

W publikacji [6] stwierdzono, że należące do układów całkowania cyfrowego przetworniki impulsowo-kodowe z impulsowym sprzężeniem zwrotnym pozwalają uzyskać lepsze właściwości metrologiczne. W pracach [6, 12] zostały przeanalizowane przetworniki impulsowo-kodowe ze sprzężeniem zwrotnym przeznaczone do realizacji funkcji logarytmicznej i homograficznej. Wykazano ich lepsze parametry i właściwości niż przetworników opartych na układach pamięci.

Celem niniejszej publikacji jest przedstawienie przetwornika funkcyjnego o wybieralnej rozdzielczości z ujemnym sprzężeniem zwrotnym przeznaczonego do realizacji matematycznej funkcji pierwiastkowania oraz ocena jego właściwości.

2. Schemat blokowy i zasada działania przetwornika funkcyjnego impulsowo-kodowego

Schemat blokowy układu przedstawiono na rys. 1. Przetwornik funkcyjny składa się z układu sumującego, rejestru binarnego, licznika impulsów, transkodera, układu odejmowania oraz bramki iloczynu logicznego (AND).

Przedstawiony na rys. 1 schemat blokowy przetwornika impulsowo-kodowego jest jedną z wielu możliwych realizacji układowych [6, 13], ale jego cechą wyróżniającą jest wykorzystanie układu całkującego z przeniesieniem równoległym na bazie sumatora akumulującego z ujemnym sprzężeniem zwrotnym. Przewaga tego typu przetwornika funkcyjnego nad innymi rozwiązaniami (na przykład z wykorzystaniem mnożnika binarnego lub z dodatnim sprzężeniem zwrotnym) została wykazana w publikacji [6]. Na podstawie przedstawionych tam wyników można wywnioskować, że:

– przetworniki funkcyjne impulsowo-kodowe z ujemnym sprzężeniem zwrotnym o zmiennej rozdzielczości zapewniają uzyskiwanie dokładniejszej charakterystyki statycznej przybliżającej funkcję pierwiastka kwadratowego (x1/2) w porównaniu z przetwornikami z dodatnim sprzężeniem zwrotnym i z wykorzystaniem dzielników binarnych;

– przetworniki funkcyjne impulsowo-kodowe na bazie sumatora akumulującego wprowadzają mniejsze błędy przetwarzania niż układy zrealizowane za pomocą mnożników binarnych.

Rys. 1. Schemat blokowy przetwornika funkcyjnego z ujemnym sprzężeniem zwrotnym realizującego funkcję pierwiastka kwadratowego
Fig. 1. Block diagram of the impulse-code converter with feedback and square-root transfer function

Należy zaznaczyć, że w układach, w których wykorzystano dzielniki binarne, zwiększenie rozdzielczości m poprawia dokładność przetwarzania, jednak uzyskuje się to kosztem obniżenia szybkości, ponieważ rośnie liczba impulsów w pętli dodatniego sprzężenia zwrotnego podczas formowania każdego binarnego słowa wyjściowego. Dlatego w celu uzyskania szerokiego zakresu przetwarzania, przy zachowaniu małych błędów przetwarzania w czasie rzeczywistym i dużej szybkości przetwarzania, najlepszym rozwiązaniem jest wykorzystanie układu całkowania z przeniesieniem równoległym, realizowane za pomocą sumatora z rejestrem (z pamięcią) i ujemnym sprzężeniem zwrotnym.

Pracę przetwornika można rozpatrywać w podzakresach:

– dla sygnału wejściowego

22t – 2 ≤ n ≤ 22t, (1)

– dla sygnału wyjściowego (po pierwiastkowaniu, czyli potęgi wykładników są podzielone przez 2)

2t – 1 ≤ NP ≤ 2t, (2)

gdzie: n – liczba impulsów wejściowych, NP – wynik przetwarzania, t = 1, 2, 3, ..., (m – 1)/2 – wskaźnik podzakresu, m – liczba bitów układu sumującego oraz rejestru, (m jest liczbą nieparzystą, zaś liczba bitów licznika impulsów wynosi m + 1).

W podzakresie opisanym nierównościami (1) układ sumujący oraz rejestr spełniają rolę sumatora akumulującego o liczbie bitów

s = 2 t – 1 (3)

Taką samą liczbę bitów ma licznik impulsów, więc licznik ma wyjścia o wagach od 20 do 22t-2, przy czym na początku przetwarzania najstarszy bit licznika, czyli 22t-1 jest ustawiony na logiczną „1”. Uwzględniając to, oraz zasadę działania sumatora akumulującego z ujemnym sprzężeniem zwrotnym, można zapisać

(4)

dx ≈ dn – df (5)

NX = 22t – 1 + x (6)

NC = NX – 22t – 1 (7)

gdzie: x – liczba odebranych impulsów na wyjściu układu odejmującego od początku podzakresu określonego zależnością (1), dn, df, dx – przyrosty liczby impulsów na wejściach i wyjściu układu odejmowania, NX – liczba impulsów w liczniku, NC – kod wysterowania sumatora akumulującego (stan młodszych bitów sygnału wyjściowego przetwornika NP).

Z zależności (3)−(7) wynika, że

NX = (22t – 1 + x) dx ≈ 22t – 1 dn. (8)

Przy założeniu, że waga najmłodszego wykorzystanego bitu licznika impulsów wynosi WLSB = 2 – t, z uwzględnieniem zależności (6), otrzymujemy

NP = 2 – t NX = 2 t – 1 + 2 – t x. (9)

W początkowych punktach podzakresów określonych wzorami (1) i (2), wartości NX, NC wynoszą odpowiednio NX = 22t – 1, NC = 2t – 1 oraz x = 0.

Ponieważ podzakresy (1) i (2) są określone w sposób ogólny za pomocą wskaźnika podzakresu t, można założyć, że w ich punktach początkowych n = NC2 = 22t – 1. Całkując równanie (8) z uwzględnieniem granic

, (10)

otrzymujemy:

x2+22t x+24t – 2 – 22t n ≈ 0. (11)

Dodatni pierwiastek równania (11) jest równy

. (12)

Funkcję przetwarzania układu z rys. 1 otrzymujemy na podstawie równania (9) uwzględniając zależność (12), co można zapisać jako

. (13)

Ponieważ podzakresy określone zależnościami (1) i (2) są zapisane w postaci ogólnej, równanie (13) jest prawidłowo zapisane dla wszystkich t, czyli jest właściwe dla całego zakresu zmienności n z przedziału

1 ≤ n ≤ 2m + 1. (14)

3. Ocena dokładności przetwarzania przetworników funkcyjnych impulsowo-kodowych

Jak wspomniano, podstawową zaletą przetworników funkcyjnych impulsowo-kodowych jest przetwarzanie danych pomiarowych, np. kąta obrotu w czasie rzeczywistym. Przedstawione w postaci kodu cyfrowego dane są rezultatem kwantyzacji pewnych wielkości analogowych. W związku z tym dokładność funkcyjnego przetwornika impulsowo-kodowego może być oszacowana przez porównanie jego błędu przetwarzania z transformowanym błędem kwantyzacji w odniesieniu do długości całego zakresu pomiarowego (zakresu przetwarzania).

Błąd przetwarzania przetworników funkcyjnych impulsowo-kodowych można oszacować jako

. (15)

Transformowany błąd kwantyzacji dla funkcji realizującej pierwiastek kwadratowy z kodu liczbowo-impulsowego ma charakter monotonicznej funkcji narastającej zależnej od n, której wartości minimalną i maksymalną określają zależności [6, 10]:

, (16)

. (17)

W celu oszacowania błędu przetwornika funkcyjnego względem transformowanego błędu kwantyzacji wprowadźmy za [6] estymator zdefiniowany jako

. (18)

Można przyjąć, że gdy wartość estymatora (18) jest bliska jedności, to przetwornik impulsowo-kodowy wprowadza błąd przetwarzania w granicach dopuszczalnych, czyli ma zadowalające parametry metrologiczne. W przypadku, gdy wartość estymatora jest znacznie mniejsza od jedności, to przetwornik impulsowo-kodowy charakteryzuje się dużą nadmiarowością dokładności, której zwykle towarzyszy złożoność konstrukcyjna, co nie zawsze jest uzasadnione ekonomicznie. Można przyjąć, że jeżeli wartość kM będzie dużo większa od jedności, to dokładność przetwornika jest niezadowalająca i nie satysfakcjonuje użytkownika.

Na rys. 2 przedstawiono obliczone wartości błędów ∆, ∆max, ∆min w funkcji liczby impulsów n (dla n = 1...200).

Rys. 2. Wartości błędów ∆, ∆max, ∆min przetwornika impulsowo-kodowego w funkcji liczby impulsów wejściowych n (dla n = 1...200)
Fig. 2. Values of impulse-code converter error ∆, ∆max, ∆min versus number of input pulses n (for n = 1...200)

4. Oszacowanie efektywności realizacji funkcyjnych elektronicznych przetworników impulsowo-kodowych

Złożoność budowy lub koszty realizacji technologicznej przetworników funkcyjnych projektowanych do celów pomiarowych można określić za pomocą wskaźnika oszacowującego liczbę elementów elektronicznych różnych typów, które są niezbędne do budowy przetwornika, z jednoczesnym zapewnieniem odpowiednich charakterystyk metrologicznych produktu końcowego.

Impulsowo-kodowe przetworniki funkcyjne mogą być zrealizowane między innymi z wykorzystaniem układów programowalnych FPGA. Układy FPGA zawierają bloki konfiguracyjne składające się z trzech rodzajów komponentów: przerzutników, bramek logicznych i komórek pamięci. Odnośnie prezentowanego przetwornika impulsowo-kodowego (o schemacie jak na rys. 1) można stwierdzić, że:

za pomocą bloków przerzutników można zrealizować rejestr, licznik impulsów oraz układ odejmowania;

za pomocą układów kombinacyjnych (bramek logicznych) można zrealizować układ sumatora i transkodera.

W celu osiągnięcia dużej szybkości przetwarzania do budowy sumatora i transkodera należy zastosować metody syntezy elementów kombinacyjnych z równoległym i równolegle-szeregowym przeniesieniem. Ogólna liczba przerzutników – oznaczmy ją lE1, potrzebnych do budowy impulsowo-kodowych przetworników funkcyjnych o strukturze przedstawionej na rys. 1, w zależności od liczby bitów m jest równa

lE1 = 3∙m + (m +1) + 1 = 4∙m + 2. (19)

Liczba m jest powiązana z górną granicą odpowiadającą zakresowi przetwornika

nmax = 22t = 2m+1. (20)

Przetworniki funkcyjne impulsowo-kodowe mogą być zrealizowane również z wykorzystaniem układu przetwarzania cyfrowego oraz pamięci ROM, co schematycznie przedstawiono na rys. 3.

Rys. 3. Schemat blokowy impulsowo-kodowego przetwornika funkcyjnego zrealizowanego z wykorzystaniem pamięci ROM
Fig. 3. Block diagram of the impulse-code function converter implemented on ROM

Załóżmy, że do realizacji przetwornika impulsowo-kodowego (zgodnie ze schematem z rys. 3) potrzebne są:

– kE2 przerzutniki do realizacji licznika impulsów,

– kM2 komórki pamięci ROM.

Uwzględniając wymóg zapewniania tej samej dokładności i zakresu przetwarzania jak w przypadku budowy przetwornika impulsowo-kodowego z ujemnym sprężeniem zwrotnym o zmiennej rozdzielczości bitowej (według rys. 1), znajdujemy zależności

kE2 = m+1, (21)

(22)

gdzie: lE2 – liczba przerzutników, lM2 – liczba komórek pamięci.

Na rys. 4 przedstawiono wyniki oszacowania koniecznej liczby elementów elektronicznych do realizacji funkcyjnych przetworników impulsowo-kodowych w technologii FPGA według rys. 1 oraz według rys. 3 w zależności od zakresu przetwornika nMAX.

Rys. 4. Wyniki oszacowania koniecznej liczby elementów elektronicznych do realizacji przetworników impulsowo-kodowych w technologii FPGA oraz na pamięci ROM w zależności od zakresu przetwarzania; lE1 – liczba przerzutników do budowy przetwornika impulsowo-kodowego na układzie FPGA, lE2 i lM2 – liczba przerzutników i komórek pamięci do budowy przetwornika na pamięci ROM
Fig. 4. Estimation of number of necessary electronical elements for developing impulse-code converter circuits based on FPGA and on ROM versus range of processed input pulses; lE1 – number of flip-flops in project based on FPGA technology, lE2 i lM2 – number of flip-flops and memory cells in project based on ROM technology

W celu porównania hipotetycznych kosztów realizacji można wprowadzić estymator k określający stosunek koniecznej liczby elementów elektronicznych z użyciem pamięci ROM do liczby elementów potrzebnych do realizacji przetwornika w technologii FPGA (w obu przypadkach pominięto liczbę bramek logicznych, bo będzie ona taka sama)

k = (lE2 + lM2)/lE1. (23)

Jeżeli przyjąć założenie, że koszt komórki pamięci będzie 10-krotnie mniejszy od kosztu pojedynczego przerzutnika, to względny współczynnik kosztów budowy przetwornika określony jako stosunek liczby elementów w obu wariantach realizacji wyniesie

k1 = (lE2 + lM2/101)/lE1.

Analogicznie można rozważyć koszty budowy przetwornika przy założeniu, że koszt komórki pamięci byłby stukrotnie, czyli zapis 102 razy mniejszy (k2) i tysiąckrotnie – zapis 103 razy mniejszy (k3)

k2 = (lE2 + lM2/102)/lE1 i k3 = (lE2 + lM2/103)/lE1.

Wartości względnych kosztów realizacji k1, k2, k3 w zależności od zakresu przetwornika przedstawiono na rys. 5.

Rys. 5. Porównanie względnych kosztów realizacji k1, k2, k3 przetwornika funkcyjnego impulsowo-kodowego zbudowanego z pamięci ROM oraz FPGA w zależności od zakresu nmax
Fig. 5. Comparison of the relative developing costs (parameters k1, k2, k3) of the impulse-code converter on ROM and FPGA versus range of input pulses

Wyniki oszacowania kosztów pozwalają stwierdzić, że koszty budowy przetwornika funkcyjnego impulsowo-kodowego na bazie pamięci ROM są dużo wyższe i znacznie rosną wraz ze zwiększaniem liczby bitów, w porównaniu z zaprezentowanym przez autorów układem.

5. Wnioski

Przeprowadzona analiza wykazała, że przetwornik funkcyjny impulsowo-kodowy z ujemnym sprzężeniem zwrotnym realizujący funkcję matematyczną pierwiastka kwadratowego jest efektywny pod względem metrologicznym i konstrukcyjnym. W artykule wprowadzono estymatory do ilościowego oszacowania błędów przetwarzania i oceny złożoności realizacji układowej. Zmienna rozdzielczość zaprojektowanego przetwornika funkcjonalnego pozwala na dobór liczby bitów słowa wyjściowego do zakresu przetwornika. Ponadto budowa przetwornika funkcyjnego impulsowo-kodowego z ujemnym sprzężeniem zwrotnym jest dużo prostsza w porównaniu z budową przetwornika z użyciem pamięci ROM, a koszty realizacji zaprezentowanego w pracy przetwornika funkcyjnego znacznie obniżają się wraz z rozszerzeniem zakresu przetwarzanej wielkości, czyli z liczbą bitów słowa wyjściowego.

Bibliografia

1. Cho S., Yun C.-B., Lynch J.P., Zimmerman A.T., Spencer Jr. B.F., Nagayama T., Smart Wireless Sensor Technology for Structural Health Monitoring of Civil Structures, “Steel Structures”, No. 8, 2008, 267−275.

2. Iniewski K., Smart sensors for industrial applications, CRC Press, Canada 2013.

3. Miłek M., Pomiary wielkości nieelektrycznych metodami elektrycznymi, Oficyna Wydawnicza Uniwersytetu Zielonogórskiego, Zielona Góra 2006.

4. Chai O.H., Wong, Y.S., Poo A.N., A DDA Parabolic Interpolators for Computer Numerical Control of Machine Tools, „Mechatronics”, Vol. 4, No. 7, 1994, 673−692, DOI: 10.1016/0957-4158(94)90031-0.

5. Monnerat N., A New Digital Differential Analyzer Approach for Inertial Technologies, Carleton University, Ottawa 2000.

6. Dudykevych V., Maksymovych V., Moroz L., Chyslo-impulsni funkcionalni preretvoryuvachi z impulsnym zvorotnym zvyazkom, Monografia, Wydawnictwo Politechniki Lwowskiej, Lviv 2011.

7. Oberman R., Counting and counters, MacMillan, London 1981.

8. Nieznanski J., An Alternative Approach to the ROM-less Direct Digital Synthesis, “IEEE Journal of Solid State Circuits”, Vol. 33, No 1, 1998, 169−170, DOI: 10.1109/4.654951.

9. Mathew T., Jaganathan S., Scott D., Krishnan S., Wei Y., Urteaga M., Rodwell M., Long S., 2-bit adder carry and sum logic circuits clocking at 19 GHz clock frequency in transferred substrate HBT Technology, Department of Electrical and Computer Engineering, University of California, Santa Barbara, USA, DOI: 10.1109/ICIPRM.2001.929191.

10. Dudykevych V., Gorpeniuk A., Maksymovych V., Viter O., Metrological expedience of different types feedback use in number-pulse functional converters, Materiały VI Międzynarodowego Seminarium Metrologów, Metody i technika przetwarzania sygnałow w pomiarach fizycznych, Rzeszów 1998, 59−63.

11. Chuan H., Numerical solutions of differential equations on FPGA-enhanced computers, A dissertation, Texas A&M University, 2007.

12. Maksymovych V., Baran R., Ocinka tekhnologichnoi efektyvnosti logarytmichnogo chyslo-impulsnogo funkcionalnogo peretvoruvacha iz zminnoyu rozriadnistyu, Wydawnictwo Politechniki Lwowskiej “Automatyka, pomiary i sterowanie”, Nr 741, 2012, 59−63.

13. Dudykevych V., Maksymovych V., Number-pulse functional transducers with bits variability. Materiały IV Międzynarodovego Seminarium Metrologów, Metody i technika przetwarzania sygnałów w pomiarach fizycznych, Rzeszów 1997, 61−66.

Impulse-Code Converter with Selected Resolution and Square-Root Transform Function

Abstract: In the paper an impulse-code converter with selected number bit of output signal with square-root transform function is presented. There are analyzed two methods of realization this type of function converter (on FPGA and ROM) and an estimation of costs both implementations is compared.

Keywords: impulse-code converter, square root function converter, accuracy of impulse-code converter, estimator of implementation cost

dr hab. inż. Maria Wrzuszczak, prof. PO

m.wrzuszczak@po.opole.pl

Jest profesorem nadzwyczajnym na Wydziale Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej. W 2012 r. uzyskała stopień naukowy doktora habilitowanego. Jest autorką lub współautorką kilkudziesięciu publikacji naukowych. Zainteresowania naukowe to metrologia, cyfrowe układy pomiarowe, cyfrowe przetwarzanie sygnałów oraz badania materiałów metodą prądów wirowych.

prof. dr hab. inż. Volodymyr Khoma

v.khoma@po.opole.pl

Jest profesorem nadzwyczajnym na Wydziale Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej. W 1990 r. uzyskał stopień naukowy doktora nauk technicznych, w 2001 r. doktora habilitowanego. Dorobek naukowy obejmuje około 150 prac. Jest autorem i współautorem 19 patentów. Problematyka badań naukowych obejmuje zagadnienia cyfrowego przetwarzania sygnałów w systemach pomiarowych.

mgr inż. Roman Baran

romko_bar@yahoo.com

Jest starszym wykładowcą Instytutu Technologii Komputerowych, Automatyki i Metrologii Narodowego Uniwersytetu „Politechnika Lwowska”. Zainteresowania naukowe obejmują cyfrowe układy pomiarowe, realizację układów elektronicznych w technologii FPGA, budowę przetworników impulsowo-kodowych o zmiennej rozdzielczości.