Cyfrowe czujniki do pomiarów wielkości nieelektrycznych w automatyce
Piotr Szymczyk, Magdalena Szymczyk, Mirosław Gajer – Akademia Górniczo-Hutnicza print
W artykule przedstawiono zagadnienia związane z pomiarem wielkości nieelektrycznych dokonywanym za pomocą cyfrowych czujników. Omówiono spotykane interfejsy tych czujników i sposoby ich podłączania do systemów automatyki przemysłowej. Podano również konkretne przykłady czujników mierzących wielkości nieelektryczne.
Jednym z ważniejszych elementów systemu automatyki są czujniki, które zapewniają pozyskiwanie informacji o aktualnym stanie sterowanego układu. Często stosuje się czujniki wielkości nieelektrycznych, które przekształcają fizyczną wielkość nieelektryczną w wielkość elektryczną taką, jak:
- zwarcie-rozwarcie styków (NO/NC, OC-NPN/PNP)
- rezystancja
- pojemność
- napięcie
- prąd
- częstotliwość.
Wielkość ta następnie jest przetwarzana przez układ sterujący. Rozwiązanie takie jest w większości przypadków dość proste i tanie, ale dokładność wykonywanych pomiarów nie zawsze jest zadowalająca. Jest to spowodowane tym, że całkowita dokładność pomiaru zależy od dokładności przekształcenia wielkości fizycznej w elektryczną, zakłóceń i błędów podczas przesyłania analogowego sygnału oraz od dokładności przetwarzania danych przez układ sterujący.
Pierwsza grupa czujników to czujniki, które wielkość nieelektryczną przekształcają na wartość biernego elementu w obwodzie elektrycznym (rezystancja, pojemność). Przykładami czujników o wyjściu kontaktronowym są: magnetycznie wyzwalany czujnik zbliżeniowy (np. MK 67B firmy Meder), czujnik przechyłu (np. CU 603 firmy Sancera Co. Ltd., D6BN-1 firmy Omron), czujnik wibracji i ruchu (np. CM4400-1 firmy Comus Group) oraz czujniki bimetaliczne (np. AB03-100 firmy Tomic). W czujnikach temperatury typu Pt 100 wykorzystywana jest zależność rezystancji od temperatury, a w czujnikach wilgotności SENS-HYD1 firmy Philips – pojemności od wilgotności.
Druga grupa czujników to czujniki przekształcające wielkość nieelektryczną wprost w wielkość elektryczną, która z kolei może być mierzona za pomocą odpowiedniego przetwornika analogowo-cyfrowego. Przykładem czujnika mającego analogowe wyjście napięciowe jest czujnik ciśnienia typu MPX (np. MPX2200AP firmy Motorola), w którym napięcie wyjściowe jest funkcją mierzonego ciśnienia, lub czujnik wilgotności z liniowym wyjściem napięciowym typu HIH-4000-002 firmy Honeywell.
Ultradźwiękowy czujnik odległości 943K4U2G1C0400E firmy Honeywell ma analogowe wyjście prądowe (4-20 mA) i napięciowe (0-10 V). Przetwornik obrotowo-impulsowy (enkoder) typu E6B2-CWZ6C-2000 firmy Omron jest przykładem czujnika przekształcającego prędkość kątową w częstotliwość impulsów. Służy on również do pozycjonowania i pomiarów obrotów, długości przesunięcia za pomocą zliczania generowanych przez niego impulsów.
Dość często zachodzi potrzeba wykonywania pomiarów wielkości nieelektrycznych za pomocą systemów wbudowanych, które mają bardzo ograniczone możliwości sprzętowe.
Dobrym rozwiązaniem jest zastosowanie czujników cyfrowych z interfejsem, za pomocą którego będzie można stosunkowo łatwo podłączyć czujnik do systemu wbudowanego. W systemach wbudowanych bardzo często wykorzystywane są mikrokontrolery, które mają kilka standardowych interfejsów szeregowych [3, 4].
Interfejsy czujników cyfrowych
Czujniki cyfrowe mogą być wyposażone w różnego rodzaju interfejsy potrzebne do przesłania wyników pomiarów do układu sterującego. Najczęściej spotykane interfejsy [1, 2]:
- I2C
- 1-Wire
- SPI.
Interfejsy te są również bardzo popularne w mikrokontrolerach, stąd możliwość podłączenia czujników wyposażonych w tego typu interfejs wprost do mikrokontrolera.
Magistrala I2C
Magistrala I2C [1] (Inter-Integrated Circuit bus) została opracowana przez firmę Philips. Zbudowana jest z dwóch przewodów SDA i SCL. Przewodem SDA transmitowane są dane, a SCL impulsy zegarowe. Bezpośrednio do magistrali może być podłączone do 112 urządzeń (w nowym standardzie do 1024). Każde urządzenie ma swój unikalny adres (7- lub w nowszym standardzie 10-bitowy).
Magistrala standardowo może pracować z maksymalną szybkością wynoszącą 100 Kb/s, która może być podwyższona nawet do 3,4 Mb/s w trybie HS-mode (high-speed-mode). Magistrala I2C może być zasilana napięciem od 3 V do 15 V, najczęściej stosuje się 5 V. Fizyczna długość magistrali jest ograniczona dopuszczalną pojemnością pasożytniczą połączeń, która wynosi 400 pF, co powoduje, że standardowo ma ona długość do kilku metrów.
W większości przypadków nie stanowi to problemu, tym bardziej że często wszystkie układy podłączone do magistrali znajdują się na tej samej płytce drukowanej lub w obrębie pojedynczego urządzenia. Philips zaleca stosowanie układów typu I2C bus extender w celu zwiększenia długości magistrali.
Przykładem takiego układu jest układ scalony 82B715, który umożliwia 10-krotne zwiększenie odległości. Zasięg I2C to maksymalnie około 100 m.
Do magistrali zazwyczaj podłączony jest jeden układ typu master i jest to mikrokontroler. Pozostałe układy, na przykład czujniki, pracują w trybie slave. Każdy układ ma swój unikalny adres nadawany przez producenta, który może być częściowo zmodyfikowany przez użytkownika, jeśli kilka takich samych urządzeń ma pracować na tej samej magistrali. Układ typu master nadzoruje transmisję na magistrali oraz wytwarza sygnał zegarowy.
Magistrala I2C zdobyła sobie dużą popularność ponieważ jest prosta, bardzo łatwa do skonfigurowania i modyfikacji. W chwili obecnej istnieje bardzo dużo układów wyposażonych w tę magistralę, są to przede wszystkim:
- mikrokontrolery
- układy zegarowe – zegary czasu rzeczywistego
- układy pamięci EEPROM
- układy pamięci RAM
- przełączniki cyfrowe i multipleksery
- sterowniki wyświetlaczy LED i LCD
- szereg różnego typu czujników wielkości elektrycznych i nieelektrycznych.
Wybór tej magistrali może okazać się optymalny, jeśli na przykład w urządzeniu wbudowanym zastosujemy równocześnie kilka z wymienionych urządzeń i dzięki jednej magistrali uprościmy jego budowę.
Magistrala 1-Wire
Magistrala 1-Wire [1, 9] została opracowana przez firmę Dallas Semicondactoru (Maxim) z myslą o przesyłaniu danych za pomocą jednego przewodu z szeregu układów peryferyjnych do mikrokontrolera na niewielkie odległości.
Dane i zasilanie są przesyłane jednym kablem. Do budowy magistrali, która może również zasilać czujnik, potrzebna jest tylko jedna para przewodów. Transmisja przebiega w układzie master-slave. Układ master wytwarza sygnał zegarowy, steruje przesyłaniem danych, a także wyszukuje i adresuje układ typu slave.
Szybkość transmisji jest ograniczona w trybie standard do 16,3 Kb/s, możliwa jest transmisja w trybie overdrive z szybkością do 115 Kb/s.
Każdy układ z interfejsem 1-Wire ma niepowtarzalny 64-bitowy numer identyfikacyjny ustalany na etapie produkcji. Ilość adresów jest więc bardzo duża. Praktycznie nie ma ograniczenia liczby podłączonych układów do magistrali. Jeśli jest podłączony więcej niż jeden układ typu slave, to układ typu master musi zidentyfikować adresy poszczególnych układów, realizowane jest to za pomocą szybkich i zoptymalizowanych procedur [1].
Układy są zazwyczaj zasilane napięciem 5 V. Wiele z nich pobiera energię potrzebną do pracy wprost z magistrali. Długość magistrali to około 200 m, ale można ją zwiększyć do około 750 m stosując skrętkę kategorii 5.
W magistralę 1-Wire są wyposażone układy przede wszystkim produkowane przez firmę Maxim-Dallas i są to:
- mikrokontrolery
- precyzyjne cyfrowe czujniki temperatury (DS18B20)
- pamięci RAM
- pamięci EEPROM
- pamięci ROM (z unikalnym numerem identyfikacyjnym, np. układy iButton)
- zegary czasu rzeczywistego
- przetworniki A/C
- monitory stanu baterii
- potencjometry cyfrowe
- czujniki wielkości elektrycznych i nieelektrycznych.
Implementacja programowa magistrali 1-Wire jest bardzo prosta, stąd na mikrokontrolerach, które nie mają takiej magistrali można oprogramować jeden ze standardowych portów wyjścia-wejścia.
Magistrala SPI
Interfejs SPI [1] (Serial Peripherial Interface) został opracowany przez firmę Motorola. Wykorzystuje on cztery przewody (SI, SO, CLK i SS). SI jest wyjściem układu master, SO jego wejściem. CLK to sygnał zegarowy, a SS jest przewodem wyboru układu slave. Podobnie jak w przypadku poprzednich interfejsów, tak i tutaj pracą magistrali zarządza układ typu master.
Układy podłączone do tego interfejsu nie mają adresów, wybieranie aktywnego układu typu slave następuje po podaniu sygnału selekcji na specjalną linię SSn. Układ typu master wytwarza sygnał zegarowy. Transmisja jest dwukierunkowa typu duplex, czyli układ typu master może równocześnie nadawać i odbierać dane.
Gwarantowana szybkość interfejsu SPI wynosi 2,1 Mb/s, spotyka się układy poprawnie pracujące nawet do 10 Mb/s. W magistralę SPI wyposażone są:
- mikrokontrolery
- programowane generatory
- układy ładowania i kontroli baterii
- cyfrowe czujniki temperatury
- potencjometry cyfrowe
- układy watchdog, power-on reset, kontroli napięcia zasilania
- pamięci EEPROM
- układy pomiaru napięcia, prądu, przesunięcia fazowego
- czujniki wielkości nieelektrycznych.
Przykłady cyfrowych czujników
Pomiar temperatury
Jednym z najbardziej popularnych cyfrowych czujników temperatury jest układ DS18B20 firmy Maxim-Dallas [9]. Układ ten wyposażony jest w interfejs 1-Wire. Pracuje w zakresie od -55 °C do +128 °C. Rozdzielczość pomiarów wynosi 0,0625 °C, a dokładność 0,5 °C dla temperatury w zakresie od -10 °C do 85 °C. Maksymalny czas pomiaru wynosi 750 ms, zasilanie 5 V. Czujnik ten nie wymaga kalibrowania i linearyzowania.
Firma MicroChip [10] jest producentem cyfrowego czujnika temperatury TC72 wyposażonego w interfejs SPI. Parametry tego czujnika są następujące: napięcie: 2,65 V do 5,5 V, zakres temperatury: -55 °C do +125 °C, dokładność: ±2 °C (-40 °C do +85 °C), ±3 °C (-55 °C do +12 °C), rozdzielczość: 0,25 °C (10 bit).
Pomiar wilgotności
Firma Sensirion [12] jest producentem cyfrowych czujników wilgotności i temperatury SHT21. Czujniki te są wyposażone w magistralę I2C. Zakres mierzonej wilgotności od 0 % do 100 % RH a zakres temperatury od -40 °C do +125 °C. Czas pomiaru wynosi 8 s, zasilanie 2,1–3,5 V.
Pomiar ciśnienia
Czujnik ASDXL30D44D-D0 firmy Honeywell [8] z interfejsem I2C jest zasilany napięciem 4,75–5,25 V i umożliwia różnicowy pomiar ciśnienia w zakresie 0–30 psi w temperaturze otoczenia od -20 °C do +105 °C.
Firma Epcos [6] ma w swojej ofercie barometryczny czujnik ciśnienia – model T5300. Jest wyposażony w inerfejs SPI i I2C, zasilany jest napięciem 2,7 do 5,5 V, nie wymaga kalibracji, a jego wymiary to 2,2×2,6×0,9 mm. Czujnik może mierzyć ciśnienie w zakresie od 300 mbar do 1200 mbar.
Pomiar natężenia światła
Firma Osram Opto Semiconductors [11] jest producentem czujnika natężenia światła z interfejsem I2C, jest to model SFH5712. Czujnik ten umożliwia pomiar natężenia światła w zakresie od 3 lx do 65 000 lx. Czas pomiaru wynosi 0,5 s. Nie wymaga żadnych elementów współpracujących.
Czujnik kolorów
S11059-78HT firmy Hamamatsu [7] jest czujnikiem kolorów z interfejsem I2C. Jest czuły na barwę czerwoną (615 nm), zieloną (530 nm) i niebieską (460 nm) oraz na podczerwień (855 nm). Pracuje z napięciem zasilania od 2,5 V do 3,3 V.
Pomiar przyspieszenia
Czujnik LIS302DL firmy STMicroelectronics [13] ma interfejsy I2C i SPI. Jest zasilany napięciem od 2,16 V do 3,6 V. Służy do pomiaru przyspieszenia w trzech prostopadłych osiach (x, y, z) o wartości do ±2g (±8g); jego czułość wynosi 18 (72) mg/digit.
Żyroskop
Firma Analog Devices [5] jest producentem żyroskopu i zarazem czujnika przyspieszenia ADIS16350. Układ ten jest wyposażony w interfejs SPI. Trzyosiowy żyroskop z maksymalną prędkością kątową: ±75°/s, ±150°/s, ±300°/s i z rozdzielczością 14 bitów, trzyosiowy czujnik przyspieszenia z zakresem pomiarowym ±10g i z rozdzielczością 14 bitów.
Podsumowanie
Czujniki wartości nieelektrycznych są często elementem układów automatyki, w tym również systemów wbudowanych wykorzystujących mikrokontrolery. Bardzo wygodnym rozwiązaniem i dającym dużą dokładność pomiarów jest zastosowanie cyfrowych czujników wielkości nieelektrycznych wyposażonych w interfejs cyfrowy taki jak I2C, 1-Wire czy SPI.
Takie podłączenie czujników powoduje, że nie ma konieczności stosowania układów dopasowujących sygnał z czujnika, ponieważ mierzona wielkość przekształcana jest wewnątrz czujnika w postać cyfrową i transmitowana za pomocą którejś z opisanych magistral wprost do mikrokontrolera.
W obecnej chwili jest dostępna szeroka gama różnego rodzaju czujników wielkości nieelektrycznych z różnego rodzaju interfejsami cyfrowymi i liczba ich szybko zwiększa się.
Bibliografia
- Bogusz J.: Lokalne interfejsy szeregowe w systemach cyfrowych. BTC, Warszawa 2004.
- Nawrocki W.: Rozproszone systemy pomiarowe. WKŁ, Warszawa 2006.
- Szymczyk P., Szymczyk M.: Bezprzewodowy system automatyki bazujący na protokole SimpliciTI. Pomiary Automatyka Robotyka 7-8/2009.
- Szymczyk P., Szymczyk M.: System operacyjny czasu rzeczywistego uCRTOS. [w:] Praca zbiorowa pod redakcją Z. Zielińskiego: Systemy czasu rzeczywistego Postęp badań i zastosowania, WKŁ Warszawa 2009.
- Analog Devices
- EPCOS
- Hamamatsu Photonics
- Honeywell International
- Maxim Integrated Products
- Microchip Technology
- OSRAM Opto Semiconductors
- Sensirion
- STMicroelectronics