PRACA ZNOŚNA


Spis treści

1. Wstęp 9

2. Zagadnienie rozpoznawania mowy w sterowaniu 11

2.1. Sygnał mowy 11

2.1.1. Opis sygnału głosowego w dziedzinie czasu 12

2.1.2. Opis sygnału w dziedzinie częstotliwości 13

2.1.3. Czasowo-częstotliwościowa zmienność sygnału głosowego 14

2.2. Rozpoznawanie mowy 15

3. Moduły rozpoznawania głosu 17

3.1. Moduł VRbot 17

3.2. Moduł EasyVR 18

3.2.1. Różnice między modułami EasyVR a VRbot 20

3.3. Moduł SmartVR 20

3.4. Obwód rozpoznawania mowy SR-07 22

3.5. Moduł VR Stamp 23

4. Sterowanie głosowe dla interfejsu RS-232 25

4.1. Specyfikacja modułu EasyVR wraz z komponentami 25

4.1.1. Interfejs szeregowy modułu EasyVR 27

4.1.2. MAX323 Board 28

4.1.3. Mikrofon 30

4.1.4. Programowanie modułu EasyVR 31

4.1.5. Wykorzystanie i konfiguracja portów I/O 32

4.2. Interfejs RS-232 33

4.2.1. Opis magistrali interfejsu 34

4.2.2. Kable w interfejsie RS-232 36

4.2.3. Tryby pracy interfejsu RS-232 38

5. Implementacja sterowania głosowego w sterowniku PLC 40

5.1. Komunikacja Point-to-Point 41

5.1.1. Konfiguracja portów modułu komunikacyjnego RS-232 42

5.1.2. Konfiguracja parametrów nadawczych 44

5.1.3. Konfiguracja parametrów odbiorczych 45

5.1.4. Tryby pracy komunikacji punkt-punkt 51

5.1.5. Instrukcje konfiguracyjne 51

5.1.6. Instrukcja SEND_PTP 54

5.1.7. Instrukcja RCV_PTP 55

5.1.8. Instrukcje pomocnicze 56

5.1.9. Status i kody warunkowe 57

5.2. Analiza sygnałów w komunikacji z EasyVR 59

5.2.1. Analiza poprawnie wykonanej transmisji z rozpoznaniem głosu 60

5.2.2. Analiza niepoprawnych transmisji rozpoznania głosu 61

5.3. Program do komunikacji sterownika PLC z modułem EasyVR 63

5.3.1. Konfiguracja właściwości modułu RS232 pod komunikacje z EasyVR 63

5.3.2. Program sterowania głosowego modułem dla sterownika PLC 64

5.4. Dalsze kierunki rozwoju badań nad sterowaniem głosowym 68

6. Wnioski 70

Spis literatury 71

  1. Wstęp

Tematem pracy dyplomowej jest sterowanie głosowe w sterownikach PLC. Programowalne Sterowniki Logiczne są uniwersalnymi urządzeniami mikroprocesorowymi służącymi do sterowania pracą urządzeń oraz maszyn. Są niezwykle uniwersalne ponieważ można dostosować każdy ze sterowników do konkretnego urządzenia a także przeznaczenia jakie mu nadajemy dzięki wprowadzeniu algorytmu pisanego w jednym z kilku dedykowanych języków programowania do pamięci sterownika. Sterowniki są szeroko stosowane w przemyśle automatyzując
w sposób znaczny pracę fabryk. Sterowanie w sterownikach PLC odbywało się przede wszystkich za pomocą przycisków stykowych lub paneli dotykowych HMI. Jednak
w dobie ciągłych udoskonaleń i ułatwień stało się jasnym iż technika pozwoli na sterowanie nimi za pomocą głosu. Wiele firm i instytucji mogłoby przyjąć tą drogę rozwoju w celu jeszcze większego ułatwienia pracownikom obsługi sterowników
i maszyn, którymi sterują, zwiększyły by bezpieczeństwo samych pracowników oraz pracy z uwagi na szybszy czas reakcji w nagłym przypadku zagrożenia życia. Ileż łatwiej byłoby wydać komendę głosową niż podbiec do odpowiedniego przycisku by wyłączyć park maszynowy w sytuacji zagrożenia dla życia ludzkiego lub uszkodzenia maszyn. Praca porusza temat nowy dla sterowników, gdyż nie zostało jeszcze rozpowszechnione sterowanie głosem przez firmy produkujące sterowniki.

Rozpoznawanie mowy jest szeroko stosowane w komputerach osobistych PC oraz technice biometrycznej, tworzone jest oprogramowanie mające na celu rozpoznawanie głosu pod względem fizycznych właściwości. Wiadomo, że sygnał mowy zawiera złożoną informację pozwalającą odebrać nie tylko podstawowe znaczenie wypowiedzi, ale także ocenić między innymi płeć, wiek, stan zdrowia, nastrój, pochodzenia, status społeczny, wykształcenie i inne podobne cechy. Jednak dla celów przemysłowych nie dopatruje się jednak potrzeby wykorzystania wszystkich tych cech. Dla poprawnej pracy sterowników ważne jest tylko znaczenie wypowiedzi, które wprowadzone do algorytmu powodowałoby zaistnienie jakiejś operacji na sterowniku, nie jest natomiast ważne dla sterownika czy wypowiadającym komendę jest kobietą, mężczyzna, mający 20 lat czy 50. Program obsługujący moduł rozpoznawania głosu powinien zatem zająć się detekcją znaczenia komend w językach, które zostały mu zaprogramowane. Istnieje szereg modułów rozpoznawania głosu, niestety niekoniecznie przeznaczonych dla sterowników PLC, w pracy zbadam ich efektywność, a także sposób najlepszego przekwalifikowania ich do użyteczności w automatyce przemysłowej, a szczególnie we współpracy ze sterownikami PLC.

Celem pracy więc jest odnalezienie modułów rozpoznawania mowy, wybranie jednego, spełniającego największą ilość przydatnych w automatyce cech, wybranie konkretnego sterownika PLC, przeanalizowanie możliwości przekwalifikowania danego modułu pod wybrany sterownik PLC, skonfigurowaniu połączenia między nimi a także napisaniu odpowiedniego programu dla sterownika, mogącego wykorzystać atuty modułu w automatyce. Niestety brak jest prac z tego obszaru badań, więc ciężko będzie porównać efekty pracy dyplomowej z innymi pracami z obszaru badań. Dlatego trzeba założyć iż priorytetem jest doprowadzeniu do układu tych dwóch urządzeń tak by możliwa była ingerencja w algorytm sterownika za pomocą głosu. Wszelkie inne uzyskane podczas prac efekty mogą zostać wykorzystane do rozbudowy a także wskażą kierunek ich rozwoju

W następnych rozdziałach pracy dyplomowej będę chciał przybliżyć opis sygnału mowy i problem jego rozpoznawania. Przedstawić bogatą ofertę modułów rozpoznawania głosu, by móc wybrać najbardziej optymalny model i go opisać. Poruszę także kwestię komunikacji przez interfejs RS-232 a także rozwiązanie tej kwestii
w sterowniku PLC, dla którego omówię bardzo dokładnie sposób nawiązywania transmisji, konfigurację sprzętową i programową, a także instrukcje służące do komunikacji z urządzeniami zewnętrznymi. Zaprezentuje także prosty program wykonujący połączenie i wymianę danych między modułem rozpoznawania głosu
a sterownikiem.

  1. Zagadnienie rozpoznawania mowy w sterowaniu

Sterowanie głosowe jest czymś niewątpliwie nowym w automatyce przemysłowej
a także ze względu na to bardzo interesującym zagadnieniem. Należało by najpierw ocenić zalety i wady użycia go w automatyce a szczególnie w sterownikach PLC, które i tak same w sobie są w czasach dzisiejszych wręcz niezbędne do funkcjonowania choćby niewielkiej firmy opartej na automatyzacji. Niewątpliwą zaletą byłaby możliwość sterowania sterownikiem a co za tym idzie maszynami za pomocą głosu, co mogłoby ułatwić pracę operatorowi, gdyż sterowanie głosem zwolniłoby go przed przymusem stania za panelem operatorskim lub przy panelu HMI w celu podjęcia jakiejkolwiek akcji związanej ze sterownikiem. Mogłoby także zmniejszyć czas reakcji w sytuacjach zagrożenia, gdy dalsza praca sterownika lub maszyny mogłaby zagrozić życiu ludzkiemu lub samej maszynie. Zniwelowałaby też możliwość zagrożenia samego operatorowa, który nie musiałby zbliżać się nawet do panelu by wyłączyć sterownik
a wystarczy że wydałby komendę słowną, której wykonanie zajmuje znacznie mniej niż ruch. Sterowanie głosowe daje także możliwość operatorowi sprawnego działania także w warunkach ciemności czy stresu fizycznego lub psychicznego. Sterowanie głosowe jest naturalnym sposobem sterowania co upraszcza i skraca dotąd przeważnie długotrwały trening operatora. Wadą sterowania głosowego mogłaby być tylko zatem wada wymowy ludzkiej, która mogłaby być wręcz niwelowana zwiększeniem czułości urządzenia bądź uwrażliwienie go na błędy wymowy ludzkiej.

    1. Sygnał mowy

Wytwarzanie mowy jest złożonym procesem, angażującym do pracy płuca, oskrzela i tchawice, narządy te mają za zadanie doprowadzić strumień powietrza do krtani.
W krtani zaś znajdują się struny głosowe które zdolne są wytworzyć ton krtaniowy, który zostaje filtrowany przez specyficzny ludzki filtr, złożony z:

0x08 graphic
Narządy te tworzą rezonator wnękowy, którego zadaniem jest wzmocnienie pewnych częstotliwości tonu wytworzonego przez krtań. Ludzka odmienność przejawia się także na tym etapie, dlatego też głos każdego z nas jest inny a co za tym idzie parametry wytwarzanego głosu są dla każdej osoby unikalne. Proces wytwarzania głosu można przyrównać na potrzeby przykładu do modelu źródło-filtr (Rys.2.1):

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic


Rys.2.1 Proces wytwarzania sygnału mowy

Z punktu widzenia techniki sygnał mowy jest bardzo interesującym obiektem, gdyż zakodowany najefektywniej może służyć do komunikacji między człowiekiem
a maszyną. Sam sygnał mowy możemy próbować opisywać różnymi metodami i za pomocą różnorakich parametrów, pragnę przedstawić jedynie krótki opis wybranych metod analizy sygnału mowy.

      1. Opis sygnału głosowego w dziedzinie czasu

Jeśli potraktujemy sygnał mowy jako przebieg czasowy dostaniemy skomplikowany przebieg (Rys.2.2), co odwzorowuje złożoność procesu jego artykulacji. Przebieg przedstawia zarejestrowany głos męski wypowiadający słowo „serce”. Na parametry tego sygnału mają wpływ przede wszystkim źródło sygnału czyli wiązadła głosowe oraz własności dynamiczne, które formują strukturę całego sygnału. Kształt tego przebiegu jest przez składniki przypadkowe, dlatego też różne słowa wypowiadane przez tego samego człowieka będą postrzegane przez system jakby miały więcej wspólnego z sobą niż to samo słowo wypowiadane przez różne osoby, co dyskwalifikuje tą metodę opisu jako wiarygodne do pobrania parametrów przydatnych w automatycznych systemach rozpoznawania mowy [1]. Mimo nieprzydatności w automatyce opis ten jest ważny ponieważ stanowi swoisty punkt wyjścia dla innych opisów sygnału głosowego.

0x01 graphic

Rys.2.2. Przebieg czasowy sygnału mowy [1].

      1. Opis sygnału głosowego w dziedzinie częstotliwości

Metoda opisy w dziedzinie częstotliwości jest podstawową i najbardziej przydatną metodą opisy sygnału głosowego. Widmowa prezentacja sygnału jest niezwykle użyteczna z uwagi na fakt iż podczas powstawania mowy kształtujemy obwiednią amplitudowo-częstotliwościową naszego sygnału, zaś jeszcze w procesie percepcji struktury ucha wewnętrznego wydzielają składowe o poszczególnych częstotliwościach. Zatem cały aparat mowy kształtuje głównie właśnie widmo sygnału [1]. Można dobrać zestaw filtrów do opisu sygnału głosowego i badać przebiegi w wybranych pasmach częstotliwości, które dostarczają niezbędnych informacji o dynamice w wybranym fragmencie widma. Na rysunku 2.3 po raz kolejny mamy do czynienia ze słowem „serce” wypowiadanym przez mężczyznę jak uprzednio (Rys.2.2) lecz tym razem zobrazowaną przy przepuszczeniu sygnału przez dwa różne filtry, o nastawach dobranych przy pomocy metody opisu sygnału w dziedzinie częstotliwości. Widać jak na pierwszej części rysunku widoczne są głównie przebiegi związane z samogłoskami, zaś na drugiej części rysunku znikły prawie wszystkie składowe pochodzące od samogłosek, zaś widoczne są wyłącznie spółgłoski.

0x01 graphic

Rys.2.3. Przebiegi będące wynikiem filtracji sygnału dopasowanego według metody opisu w dziedzinie częstotliwości: a) szerokość pasma filtra 125 Hz i częstotliwości środkowej 750 Hz, b) szerokość pasma filtra 125 Hz i częstotliwości środkowej 5000 Hz. [1]

      1. Czasowo-częstotliwościowa zmienność sygnału głosowego

Dla pełni badań nad sygnałem głosowym powinno się spróbować połączyć analizę w dziedzinie czasowej z analizą w dziedzinie częstotliwościowej, a w celu równoczesnemu uchwyceniu czasowej zmienności oraz wymiaru częstotliwościowego wybranego sygnału można zaprezentować go w trójwymiarowo. Prawdziwą zaletę prezentacji czasowo-częstotliwościowej odkrywamy dopiero przy analizie różnych słów (Rys.2.4.). Jednak ta metoda jest możliwa do wykorzystania w automatyce jedynie gdy zastąpimy sterownik PLC wystarczająco silnym komputerem by możliwe było prezentowanie „trójwymiarowych” dynamicznych widm.

0x01 graphic

Rys.2.4. Widma trójwymiarowe różnych wypowiedzi: a) oferta, b) wiosło [1]

    1. Rozpoznawanie mowy

Rozpoznawanie mowy przez systemy elektroniczne zaczynają się od wprowadzenia sygnału mowy do pamięci urządzenia. Następnie należy zredukować objętość informacyjną sygnału poprzez wydobycie z niego najważniejszych parametrów określających znaczenie dźwięku. Jeśli dysponujemy wybranym dla naszych celów opisem parametrycznym należy dokonać na sygnale mowy dostatecznej segmentacji aby wyróżnić dźwięki-klucze. Najlepszym rozwiązaniem wynikającym z naszego punktu widzenia jest stworzenie bazy słów, co ogranicza całą analizę, jednak do naszych celów nie należy określanie całych zdań jako komendy a jedynie rozpoznanie pojedynczych słów. Samo rozpoznawanie zaczynamy od znormalizowania czasu wypowiedzi, ponieważ nawet ta sama osoba może wypowiedzieć dane słowo inaczej
w funkcji czasu, a co dopiero kiedy mamy do czynienia z różnymi osobami. Deformacja skali czasowej ma niestety charakter nieliniowy co może utrudnić sam proces rozpoznawania i to nie tylko biorąc pod uwagę działanie modułów rozpoznawania mowy ale także rozpoznanie mowy przez komputery. Można to zilustrować poprzez prosty przykład (tab.2.1).

Tab. 2.1. Przykład różnego zapisu słów w różnej funkcji czasu

Fonetyczny zapis słowa z nagrania

Rodzaj nagrania

sssooowwaaa

Nagranie wzorcowe

csoooofffaa

Obecność szumów w nagraniu

ssooaoowwaeaa

Nagranie niewyraźnej wymowy

zzsssuooooaaa

Nagranie innej osoby np. kobiety

Przykład ten miał pokazać jedynie możliwe rozbieżności między nagraniem wzorcowym a innymi nagraniami. Stosowanie słowników wzorców, czyli naszej puli słów jest jedną z dróg rozpoznawania mowy i wyszukuje się najbliższe słowo jednocześnie zgodne z określonym przez nas kryterium. Jest to algorytm działający na bazie programowania dynamicznego, które są dosyć szybkie i sprawne. W systemie automatyki jedyną słuszną racją jest danie operatorowi dość dużego wyboru słów komunikującej jednocześnie tą samą akcję do sterownika, co można wykonać programowo już na samym sterowniku. Dla przykładu na rozruch systemu należy umieścić w bazie wyrazów nie tylko słowo „start”, ale także „rozruch”, „włącz”, „zaczynaj”, daje to operatorowi odczuć pewną naturalność sterowania, o którą właśnie chodzi by wykazać podstawową różnicę między sterowaniem głosem a sterowaniem
z panelu operatorskiego. Najważniejsze problemy z naszego punktu widzenia
w rozpoznawaniu głosu to właśnie problem poziomu akustycznego, który odpowiada za dostatecznie głośne wprowadzenie sygnału do identyfikacji a także problemu poziomu semantycznego, które jest związane z identyfikacją sensu danego słowa, gdyż dla nas przy założeniu korzystania z bazy słów, która porównuje własności podczas procesu rozpoznawania nie ważne są problemy syntaktyczne lub złożoność problemu strukturalnego w takim stopniu jak dla programów rozpoznających mowę ciągłą.

  1. Moduły rozpoznawania głosu

Na rynku istnieje kilka gotowych modułów rozpoznawania głosu, mogących służyć w automatyce, robotyce oraz w zastosowaniu ze sprzętem PC. Wybór najlepszego nie jest łatwy. Należy sobie bowiem postawić pytanie jakich parametrów oczekujemy od naszego modułu. Przede wszystkich możliwość ustalenia własnego słownika wyrazów-kluczy, których będziemy używać do sterowania sterownikiem PLC, następnie należy brać pod uwagę takie parametry jak czułość mikrofonu, odporność urządzenia na szum, czy też cenę takiego modułu. Przydatne jest też przy wyborze sugerować się prostotą urządzenia, łatwością implementowania bazy słów, oprogramowaniem a także możliwością aktualizacji oprogramowania.

    1. Moduł VRbot

Moduł ten jest jednym z pierwszych modułów rozpoznawania głosu firmy Veear (rys.3.1), przeznaczony głównie z myślą o robotach, dostępnych na rynku m.in. Robonova oraz Robozak MR-C3024 (rys.3.2), którym był dedykowany. Moduł ten idealnie nadaje się do współpracy z mikroprocesorami.

0x01 graphic

Rys.3.1. Moduł VRbot [2]

Cechami tego modułu są:

0x01 graphic

Rys.3.2. Sposób połączenia modułu z płytą główną robota ROBONOVA-1 [3]

    1. Moduł EasyVR

Moduł ten jest uniwersalnym modułem rozpoznawania głosu, zaprojektowany by zwiększyć efektywność, stabilność i ekonomiczność poprzez sterowanie głosowe daną aplikacją. EasyVR to druga generacja modułu rozpoznawania głosu firmy Veear (rys.3.3), następca modułu VRbot, zbudowany na funkcjonalności i cechach poprzednika. Moduł ten idealnie nadaje się do współpracy z kartami PIC lub Arduino. Firma Veear zapewniła wręcz specjalnie nakładki modułowe pod Arduino (rys.3.4). Istnieje możliwość dokupienia do modułu firmowego programatora na USB (rys.3.4).

0x01 graphic

Rys.3.3. Moduł EasyVR [4]

0x01 graphic
0x01 graphic

Rys.3.4. Płytki rozszerzające do modułów: nakładka na Arduino (po lewej),
programator USB (po prawej) [4]

Cechy modułu:

      1. Różnice między modułami EasyVR a VRbot

W porównaniu do starszej wersji w EasyVR posiada dograne dwa języki więcej. Dodano wyjście audio na głośnik 8Ω, z którego możliwe jest odtwarzanie aż do 9 minut dźwięku w kompresji SX-2, które można uzyskać dzięki dołączonemu do oryginalnego oprogramowania programowi Sensory's Quick Synthesis. Samo oprogramowanie zyskało nowe funkcje, aktualizacji oraz podziału komend na zwykłe, hasła oraz komendy nadrzędne. Do układu zostały dodane trzy piny linii wejścia/wyjścia, których sterowanie zapewnia nowy protokół. Dzięki kartom rozszerzającym moduł można łatwiej zastosować w systemie Arduino a także bez problemu programować. Dlatego też EasyVR został okrzyknięty godnym następcą modułu VRbot, którego prawie całkowicie wyparł z rynku sprzedaży, wykorzystując do maksimum nowe oprogramowanie, dołączone przez producenta, EasyVR Commander.

    1. Moduł SmartVR

Jest to moduł wyposażony w platformę do syntezy mowy i aplikacje do rozpoznawania głosu bazującej na sensorycznym procesorze sygnału RSC-4128. Moduł oparty o program Virtual Machine obniża koszty wielu aplikacji przy skupieniu się na rozpoznawaniu mowy.

0x01 graphic

Rys.3.5. Moduł SmartVR [5].

Cechy modułu:

0x01 graphic

Rys.3.6. Okno programu SmartVR IDE [5].

    1. Obwód rozpoznawania mowy SR-07

Jest to moduł potrafiący rozpoznać do 40 jednosekundowych słów lub 20 dwu sekundowych (Rys.3.7). Nie posiada wbudowanych słów, cała bazę słów należy stworzyć samemu. Cały obwód oparty jest o pojedynczy chip HM2007. Moduł rozpoznaje mowę w dwóch typach: izolowaną lub połączoną. Mowa izolowana to baza dźwięków pojedynczych jednosekundowych, mowa połączona to rozpoznawanie mowy na podstawie bazy słów lub zdań zawartych w dwusekundowej bazie, symulującą mowę ciągłą. Dodatkowo moduł posiada klawiaturę do programowania oraz wyświetlacz pokazujący status błędu. Moduł posiada dwa tryby pracy: ręczny oraz CPU. W trybie CPU moduł pracuje w sieci pod innym komputerem lub modułem. Moduły SR-07 można łączyć kaskadowo uzyskując poszerzenie pamięci kolejnych słów. W trybie ręcznym posiada wszystko by pracować jako samodzielny układ. Układ można zaprogramować dzięki klawiaturze i wyświetlaczowi bez potrzeby programowania go
z użyciem komputera. Podczas odłączenia od zasilania pamięć zasilana jest z baterii, która podtrzymuje pamięć przed skasowaniem.

Cechy modułu:

0x01 graphic

Rys.3.7. Zestaw SR-07 [6].

    1. Moduł VR Stamp

Moduł firmy Sensory (Rys.3.8) jest pierwszym urządzeniem używającym szybkiego układu Quick T2SI stanowiącego własność firmy, produkt jest całkowicie programowalny, może posiadać nagraną własną bibliotekę słów u każdym języku. Układ wyposażony w kanał audio o bardzo małym natężeniu szumu, a także układy pozwalające na niezwykle szybkie przetwarzanie dźwięku. Produkt oferuje 24 linie wejścia/wyjścia. Urządzenie włącza się pod wpływem rozpoznania dźwięku.

0x01 graphic

Rys.3.8. Moduł VR Stamp [7].

Cechy modułu:

0x01 graphic

Rys.3.9. Diagram blokowy modułu [7].

  1. Sterowanie głosowe dla interfejsu RS-232

W pracy dyplomowej mam za zadanie wybrać i skonfigurować moduł rozpoznawania głosu a także zaprogramować sterownik PLC tak aby możliwe było sterowanie głosem. Z bogatej oferty modułów rozpoznawania głosu i mowy wybrałem najprostszy, właśnie ze względu na jego prostotę, najmniejsza ingerencje procesorów dźwięku w sygnał mowy, posiadający wbudowane a także programowalne komendy. Wybór był także kierowany ceną i dostępnością produktu na rynku europejskim. Moim wyborem jest moduł rozpoznawania głosu EasyVR, gdyż spełnia założenia priorytetowe i podstawowe, nie jest potężnym procesorem dźwiękowym jak pozostałe moduły, nie będę także korzystał z możliwości programowania w języku C\C++ jakie dają także pozostałe opcje, skupiając się na pozostawieniu całego algorytmu programu po stronie sterownika. Pisanie programu tylko w języku dedykowanym dla sterownika PLC daje według mnie większą przejrzystość tego algorytmu, pozostawiając moduł rozpoznawania głosu tylko na szczeblu konwertowania sygnału mowy na konkretny rozkaz wchodzący na wejście sterownika. Od strony sterownika wybór padł na sterownik Siemens S7-1200 o jednostce centralnej 1214C DC/DC/DC wraz
z procesorem komunikacyjnym CM 1241 RS232 do komunikacji z interfejsem RS232.

    1. Specyfikacja modułu EasyVR wraz z komponentami

Mając za sobą już ogólny wgląd na możliwości modułu rozpoznawania głosu EasyVR, należy się dokładnie przyjrzeć temu urządzeniu pod względem przydatności urządzenia ze sterownikiem Siemensa. Sam producent modułu wskazuje jego przydatność w automatyce domowej lub do współtworzenia inteligentnych domów. Mimo iż z zastosowań samego produktu wynika jego silne powiązanie z produktem Arduino ja zajmę się przydatnością samego modułu bez kart rozszerzających.

Moduł stworzony przez firmę Veear oprócz cech podanych przeze mnie w ogólnym rozważaniu na temat modułów rozpoznawania głosu jest urządzeniem prostym
w obsłudze i budowie. Posiada jednak wszystkie cechy dobrego modułu rozpoznawania głosu. Sama płytka modułu (Rys.4.1) przedstawiona poniżej nie jest skomplikowana, opis do płytki przedstawiono w tabelce 4.1.

0x01 graphic

Rys.4.1. Rozkład elementów na płytce drukowanej [4].

Tab. 4.1. Wykaz i opis elementów z płytki modułu EasyVR

Złącze

Numer pinu

Nazwa

Opis

J1

1

GND

Masa

2

VCC

Wejście stałego napięcia

3

ERX

Wejście danych interfejsu UART (TTL)

4

ETX

Wyjście danych interfejsu UART (TTL)

J2

1-2

PWM

Wyjście głośnikowe

J3

1

MIC_RET

Masa wejścia mikrofonowego

2

MIC_IN

Wejście sygnału mikrofonowego

J4

1

/RST

Asynchroniczny reset

2

/XM

Selektor uruchamiania systemu

3

IO1

Pin wejścia/wyjścia (3VDC TTL)

4

IO2

Pin wejścia/wyjścia (3VDC TTL)

5

IO3

Pin wejścia/wyjścia (3VDC TTL)

Układ pracuje przy minimalnym napięciu 3.3 V do maksymalnego napięcia 5,5V. Oprócz pinów wejścia/wyjścia, które pracują w zakresie 2,4 - 3,3V.

      1. Interfejs szeregowy modułu EasyVR

EasyVR pracuje jako moduł w trybie slave, poprzez asynchroniczny interfejs szeregowy potocznie znany jako UART. Ustawienia interfejsu według instrukcji obsługi są następujące [4]:

Przykład ramki dla interfejsu szeregowego reprezentujący znak „A” (decymalnie 65, heksadecymalnie 41) podana jest na rysunku 4.2.

0x01 graphic

Rys.4.2. Przykład ramki urządzenia dla znaku „A” [4].

0x08 graphic
0x08 graphic
Istnieje kilka sposobów podłączenia modułu EasyVR z urządzeniami zewnętrznymi (np. sterownik, komputer) zalecane przez firmę Veear [8]. Podłączenie obydwa się na zasadzie jak na rysunku 4.3. Sygnał ERX modułu musi być podany na wyjście TX hosta, a sygnał ETX na wejście RX. Ważne jest aby oba urządzenia, moduł i host posiadały identyczną konfigurację interfejsu/portu szeregowego.

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Rys.4.3. Sposób połączenia EasyVR z hostem.

Do tego celu można wykorzystać jeden z poniższych sposobów połączenia, jakim jest: kabel programujący 4D Systems, MAX323 Board lub USB UART 2 Board. Sposób połączenia każdym z powyżej wymienionych urządzeń komunikacyjnych jest bardzo prosty (Rys.4.4) i nie powinien sprawiać problemów. Po podłączeniu do portu hosta

0x01 graphic

Rys.4.4. Sposób połączenia modułu EasyVR z modułami komunikacyjnymi: biała linia - ETX, niebieska linia - ERX, czerwona linia - zasilanie, czarna linia - masa [8].

      1. MAX323 Board

Jest to standardowy interfejs RS232C firmy Mikroelektronika (Rys.4.5) dla PC i urządzeń obsługujących ten standard. Poziom napięciowy konwertera UART TTL do RS232 to -12V do 12V. Układ zbudowany jest na układzie MAX232 firmy National Instruments, które zasilane jest napięciem 5V. Napięcie to należy dostarczyć
z zewnętrznego źródła zasilania. W przypadku zastosowania MAX323 Board wraz EasyVR stosujemy go dwojako, jako podłączenie do komputera PC w celu zaprogramowania bazy słów-kluczy a także jako podłączenie do modułu Siemens'a CM 1241 RS232. Ze względu na fakt iż EasyVR używa tylko sygnałów TX i RX, sygnały znajdujące się na schemacie połączeń MAX323 Board CTS oraz RTS są przez nas nieużywane. Układ mostkuje także sygnały na wtyczce DB-9 z pinów 1,4 oraz 6. Piny te odpowiadają sygnałom protokołu RS232: DCD, DTR oraz DSR (Rys.4.6).

0x01 graphic

Rys.4.5. MAX323 Board [9].

0x01 graphic

Rys.4.6. Schemat połączeń oraz widok wtyczki DB-9 dla układu MAX323 Board [9].

Oba układy ze względu na brak zasilania zostały wyposażone w zewnętrzne zasilanie, które zostało wykonane z ładowarki do telefonu firmy Nokia wraz z prostym dzielnikiem napięciowym, zmniejszającym napięcie do wymaganego 5V. Napięcie to zostało podane na oba urządzenia EasyVR oraz MAX323 Board, czego nie uwzględnia instrukcja połączeń tych modułów stworzona przez firmę Veear, a do którym odnosiłem się uprzednio. Tego problemu nie ma w przypadku zasilania z konwertera UART TTL na USB, które zapewnia napięcie podawane przez port USB komputera. Jednak ujednolicając układ tak aby nadawał się zarówno do komunikacji z komputerem jak
i sterownikiem zdecydowałem się na wybranie interfejsu RS232.

      1. Mikrofon

Mikrofon, który został dołączony do zestawu EasyVR to pojemnościowy mikrofon elektretowy, wielokierunkowy o charakterystykach:

Producent zastrzega, iż najlepsze efekty uzyskujemy w odległości ok. 60 cm od mikrofonu, chociaż zalecane jest aby odległość tą zmniejszyć do 30 cm. Niestety jest to jedyny model mikrofonu wspierany przez EasyVR, niejako całe urządzenie jest dedykowane dla niego. Dla najlepszego użytkowania mikrofonu i przede wszystkim by algorytm rozpoznawania mowy działał najskuteczniej należy przestrzegać pewnych reguł dotyczących mechanicznego montażu mikrofonu (Rys.4.7).

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

Rys.4.7. Reguły mechanicznego zamontowania mikrofonu.

Płaszczyzna mikrofonu powinna być zainstalowana jak najbliżej statywu/obudowy tak by między plastikową obudową mikrofonu a samym mikrofonem nie było tunelu
z pustą przestrzenia, który może prowadzić do rezonansu akustycznego jak na rysunku 4.7 w podpunkcie a. Przestrzeń poza obudową a między operatorem powinien być czysty, mnie zasłonięty przez żadne przedmioty Dziurka obudowy na mikrofon powinna mieć średnice przynajmniej 5mm a grubość plastikowej obudowy nie powinna być większa niż 0,7 mm (Rys.4.7b). Jeśli to możliwe obudowa boczna mikrofonu powinna być odizolowana od samego mikrofonu za pomocą wygłuszającego miękkiego materiału, który zniweluje szum i zakłócenia spowodowane przemieszczaniem mikrofonu, odkładaniem i każdym stuknięciem w obudowę (Rys.4.7c).

      1. Programowanie modułu EasyVR

Protokół komunikacyjny używa do komunikowania się znaków ASCII, które można podzielić na dwie grupy:

cała komunikacja podczas programowania EasyVR odbywa się między modułem rozpoznawania głosu a programem EasyVR Commander (Rys.4.8). Program ten pozwala na uczenie modułu nowych wyrazów oprócz gotowych słów, których wykaz znajduje się w tabelce poniżej, z uwagi na brak języka polskiego można nagrać odpowiadającą tym słowom bazę słów w języku polskim, jednak lepiej wykorzystać wolne miejsce na omawianą wcześniej naturalność sterowania głosowego, przypisując różne rozkazy temu samemu znaczeniu. Podczas uczenia program dwukrotnie zapisuje słowo w bazie, porównując oba słowa ze sobą oraz pobierając najważniejsze parametry z nich, które w obu przypadkach nagrania wzorcowego muszą być takie same, każde przekłamanie powtórzenia nagrania będzie skutkowało nienagraniem słowa. Słowa dzielimy na słowo wyzwalacz, słowo hasło, a także komendy programowalne oraz komendy, które są wgrane standartowo w pamięć modułu. Komendy programowalne są pogrupowane w grupy, co ułatwi nam dodawanie rozkazów, gdyż w każdej grupie możemy nagrać komendy o tym samym znaczeniu wypowiadane innymi słowami. Program wykrywa automatycznie jeśli jedna z nowo nagranych komend będzie przypominała pod względem pobranych parametrów komendę, która już jest ulokowana w pamięci. Ma to za zadanie uniknięcie błędów wystawienia niewłaściwej komendy.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

Rys.4.8. Wygląd i struktura EasyVR Commandera

      1. Wykorzystanie i konfiguracja pinów I/O

Wolne piny wejścia/wyjścia mogą zostać wykorzystane z różnoraki sposób, od zapalenia diody LED, informującej o ustawieniu aktywności pinu po przesterowanie wejścia urządzenia zewnętrznego lub by odebrać sygnał wyjściowy z urządzenia zewnętrznego. Przed użyciem piny należy skonfigurować programowo, jest to proste
w językach C/C++ i zapewne byłoby możliwe w sterownikach PLC ale może być wykorzystane w dalszych badaniach nad sterowaniem głosowym tym modułem
w sterownikach PLC. By zaadaptować linie jako wyjście należy sprzętowo je skonfigurować, co pokazuje przykład na rysunku 4.9, gdzie mamy pokazaną konfigurację począwszy od założenia zwykłej diody, po napięcia 5 i 12V, budując wyjście 24V uzyskalibyśmy zakres wejść/wyjść zgodny ze sterownikiem Siemens. Podobną konfigurację przedstawia rysunek 4.10, dla wyłącznika oraz napięcia 5V, typowego dla urządzeń opartych na TTL (np. mikroprocesory).

0x01 graphic

Rys.4.9. Konfiguracja wyjść pinów I/O: dla diody LED (po lewo), na napięcia 5V (środek), dla napięcia 12V (po prawej) [4].

0x01 graphic

Rys.4.10. Konfiguracja wejść pinów I/O: dla przełącznika (po lewo), dla napięcia 5V (po prawo) [4].

    1. Interfejs RS-232

Jest to interfejs, którego pierwotnym zadaniem było znormalizowanie połączeń między różnymi urządzeniami znakowymi w systemach komputerowych, powstał on
w 1962 roku, znormalizowany zaś 7 lat później jako standard RS-232C. Standard opracowano w celu normalizacji interfejsu pomiędzy urządzeniem komunikacyjnym dla danych (DCE) a urządzeniem końcowym dla danych (DTE). Transmisja odbywa się w trybie asynchronicznym, szeregowo [10]. Zilustrować przesył informacji można za pomocą wyobrażenia sobie go jako przesyłu paczek o z góry określonej objętości
i formacie mające sygnały początku i końca nadawania paczki. Szybkość transmisji
w bitach na sekundę to odwrotność to odwrotność czas trwania pojedynczego bitu, co nosi także nazwę odstępu jednostkowego. Długość pola danych to zakres od 5 do 8 bitów. Istnieje także bit, który można ustawić opcjonalnie w jednej z dwóch funkcji: kontrola parzystości lub kontrola nieparzystości. Koniec transmisji jest znaczony jednym lub dwoma bitami stopu (Rys.4.11).

0x01 graphic

Rys.4.11. Struktura ramki interfejsu RS-232 [11].

Bit kontroli parzystości przesyłany jest ostatni zaraz przed bitami stopu i jest jedną
z metod monitorowania czy przesył jest poprawny. Sprawdza ilość jedynek w polu danych i ustawia wartość tego bitu na „0” jeśli liczba jedynek jest parzysta, „1” jeśli jest nieparzysta, Bit kontroli nieparzystości działa odwrotnie.

      1. Opis magistrali interfejsu

W interfejsie można spotkać dwa typowe dla niego złącza: 25-stykowe złącze typu CANNON DB-25P lub 9-stykowe złącze typu DB-9 (Rys.4.12). Różnica między nimi jest taka, że na DB-9 dostępne są tylko i wyłącznie najważniejsze sygnały do transmisji, całkowity opis magistrali znajduje się w tabeli 4.2 poniżej:

Tab.4.2. Wyprowadzenia sygnałów dla łącza RS-232C

DB-25

DB-9

Nazwa sygnału

Oznaczenie

1

-

Masa ochronna

C.GND

2

3

Dane wysyłane

TX

3

2

Dane otrzymywane

RX

4

7

Gotowość wysłania danych

RTS

5

8

Gotowość przyjęcia danych

CTS

6

6

Gotowy zestaw danych

DSR

7

5

Masa sygnałowa

SG

8

1

Poziom sygnału odbieranego

DCD

9

-

Napięcie testowe dodatnie

-

10

-

Napięcie testowe ujemne

-

11

-

Select Transmit Channel

STF

12

-

Secondary Carrier Detect

S.CD

13

-

Secondary Clear to Send

S.CTS

14

-

Secondary Transmit Data

S.TX

15

-

Transmission Signal Element Timing

TC

16

-

Secondary Receive Data

S.RX

17

-

Receiver Signal Element Timing

RC

18

-

Local Loop Control

LL

19

-

Secondary Request to Send

S.RTS

20

4

Urządzenie gotowe

DTR

21

-

Remote Loop Control

EL

22

9

Sygnał dzwonienia

RING

23

-

Wybór szybkości transmisji

CH/CI

24

-

Transmit Clock Out

XTC

25

-

Test Mode

BUSY


0x01 graphic

Rys.4.12. Złącza DB-9 oraz DB-25 [12].

Na potrzeby pracy dyplomowej rozważam tylko i wyłącznie złącze DB-9, którego linie można podzielić funkcyjnie na:

Linie danych to sygnały TX oraz RX. TX to sygnał danych nadawanych, wykorzystujemy go do przesyłania danych DTE, standard wymaga stanu „1” pomiędzy przesyłanymi ramkami danych. Dla transmisji w tym sygnale muszą być aktywne RTS, CTS, DTR, DSR. Linia RX to natomiast dane odbierane, wykorzystywanych do przesyłania danych przez DCE. Linia powinna być w stanie „1” gdy DCD jest w stanie pasywnym lub RTS jest aktywny. Liniami sterującymi to sygnały RTS, CTS, DSR, DTR, DCD oraz RING. RTS to linia żądania nadania, która gdy staje się aktywna oznacza zgłoszenie DTE do DCE żądanie wysłania danych, DCE załącza wtedy CTS inaczej dane nie zostaną przesłane. RTS nie może zostać włączony jeśli CTS jest aktywny. CTS zaś jest linią gotowości do nadania, za jej pomocą DCE zgłasza do DTE że jest w stanie odebrać od niego dane. Może również oznaczać gotowość nadawania sygnału do innego DCE. DSR to jedna z dwóch najistotniejszych linii sterowania, oznacza gotowość DCE do wymiany sygnałów sterujących w celu nawiązania połączenia, informuje ono że nie zaistniał żaden defekt na torze transmisyjnym. DTR to drugi najistotniejszy sygnał, oznacza gotowość DTE, rozumiany jak sygnał DSR tylko że w odniesieniu do DTE. DCD to poziom sygnału odbieranego informuje iż modem posiada prawidłową częstotliwość transmisyjną co do DTE. Ostatnią linią sterowania jest linia RING i jest wskaźnikiem dzwonienia lub inaczej mówiąc wywołania,
w przypadku specyficznego połączenia DTE z DCE oraz innym oddalonym DCE, DCE przy DTE informuje go że odbiera sygnał z oddalonego DCE. Z linii masy do czynienia w DB9 mamy tylko i wyłącznie z masą sygnałową, stanowiącą odniesienie dla wszystkich sygnałów interfejsu.

      1. Kable w interfejsie RS-232

Problem z łącznością w protokole RS-232 zaczyna się kiedy chcemy go używać do czegoś innego niepołączenie terminalu (DTE) z modemem (DCE). Jeśli chcemy podłączyć urządzenie takie jak mikrokontroler, które może być i terminalem
i modemem jednocześnie musimy oprzeć się na sygnałach potwierdzających poprawności podłączenie, które wysyłają niektóre urządzenia (handshaking), jednak nie wszystkie urządzenia odpowiadają na te sygnały w przypadku ich otrzymania, niektóre w ogóle je ignorują. Niektóre problemy z połączeniem wynikają z problemu zwarcia nieodpowiednich wejść, kiedy to należy zastosować w kablu przelot z pinu 2 na 3, taki kabel nazywamy modemem zerowym. Nie wyczerpuje to niestety wszystkich możliwości, z różnorodności kabli i ich przeplotów. W praktyce możemy wyłonić następujące:

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

Rys.4.13. Kabel połączeniowy RS-232 terminala z modemem, z potwierdzeniem poprawności połączenia.

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic


Rys.4.14. Kabel połączeniowy RS-232 urządzeń tego samego typu, z potwierdzeniem poprawności połączenia.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic


Rys.4.15. Kabel połączeniowy RS-232 DTE z DCE.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic


Rys.4.16. Kabel połączeniowy RS-232 urządzeń tego samego typu.

      1. Tryby pracy interfejsu RS-232

Tryby pracy interfejsu RS-232 zależą od kierunkowości transmisji między terminalem a modemem lub urządzeniami tego samego typu, dzielimy je na:

Z trybami pracy interfejsu RS-232 łączy się pojęcie kontroli przepływu. Kontrola ta poruszana została w poprzednich podrozdziałach gdzie była mowa o sygnałach RTS oraz CTS. Kontrolę taką nazywamy sprzętową kontrolą przepływu. Sygnał CTS zostaje dezaktywowany w urządzeniu, które nie może chwilowo odebrać danych i aż do ponownej aktywacji linii sygnału CTS zatrzymuje przepływ kolejnych znaków. Sytuacja, w której urządzenie nie mogłoby odebrać danych to np. pełny bufor odbiorczy. W sprzętowej kontroli przepływu wykorzystuje się wszystkie linie sygnałowe opisane w poprzednich podrozdziałach. Istnieje także druga odmiana kontroli przepływu: programowa, prowadzona przez protokół interfejsu RS-232: XON/XOFF. Programowa kontrola przepływu polega wysyłaniu do urządzenia transmitującego specjalnego znaku, służącego do sterowania tym urządzeniem, znak ten może zatrzymać lub wznowić transmisje. W programowej kontroli przepływu nie potrzeba jest użycia wszystkich sygnałów, wystarczą linie RX oraz TX, natomiast wymogiem działania tego trybu jest transmisji w trybie dupleksu.


  1. Implementacja sterowania głosowego w sterowniku PLC

Wybrany przeze mnie sterownik jak już wspomniałem w poprzednim rozdziale to sterownik Siemens z rodziny S7-1200 to jeden z najlepszych sterowników PLC ze względu na niską cenę, konstrukcję możliwą o rozbudowę przez dołączanie dodatkowych modułów, według potrzeb programującego, baza rozkazów jest także bardzo bogata. Oprogramowanie Siemens Simatic Professional: TIA Portal V11 jest rozbudowanym oprogramowaniem do konfiguracji połączenia między komputerem osobistym a sterownikiem, istnieje możliwość w programowania w trzech dedykowanych językach programowania dla sterowników PLC: STL, LAD, FBD, konfigurowanie i programowanie ekranów HMI. Program posiada bardzo obszerną pomoc help, która w mojej pracy dyplomowej bardzo pomogła mi w zrozumieniu problemu programowania. Oprogramowanie jest kompatybilne z systemem Windows, przy tym także z dwoma jego najpopularniejszymi wersjami Windows XP oraz Windows 7 w obu wersjach: x32 oraz x64.

0x08 graphic
0x08 graphic
W pracy dyplomowej całość sterowania głosowego sterownikiem PLC wykonywałem na sterowniku Siemens o jednostce centralnej CPU 1214C DC/DC/DC (Rys.4.17a).

0x01 graphic
0x01 graphic

Rys.4.17. Produkty Siemens: a) jednostka centralna, b) moduły komunikacyjne RS-232 (złącze żeńskie-po lewo, złącze męskie-po prawo) [13].

Jest to jednostka posiadająca:

Wraz z jednostką centralną wybrałem moduł komunikacyjny w komunikacji punkt-punkt (point-to-point) Siemens CM 1241 - RS232 ze złączem DB-9 (męskim) (Rys.4.17b).

    1. Komunikacja Point-to-Point

Komunikacja punkt-punkt dla sterownika Siemens S7-1200 jest oparta na dwóch modułach komunikacyjnych, RS-232 oraz RS-485. Protokół punkt-punkt dla znakowej transmisji szeregowej umożliwia swobodne programowanie z użyciem protokołu Point-to-Point. Moduł we współpracy z tym protokołem umożliwia wysyłanie i odbieranie informacji bezpośrednio z urządzeniami zewnętrznymi w trybach pracy interfejsu RS-232 (Rys.5.1).

0x01 graphic

Rys.5.1. Schemat współdziałania modułów komunikacyjnych ze sterownikiem [14].

W sterowniku Siemens można podłączyć aż do 3 modułów komunikacyjnych RS-232 lub RS-485, które tworzą interfejs elektryczny komunikacja punkt-punt. Instaluje je się z lewej strony jednostki centralnej.

      1. Konfiguracja portów modułu komunikacyjnego RS-232

W programie TIA Portal w drzewie projektu po ustawieniu Device configuration we właściwościach (Properties) modułu komunikacyjnego można skonfigurować port modułu (rys.5.2).

0x01 graphic

Rys.5.2. Ustawienia konfiguracji portu modułu komunikacyjnego RS232 w TIA Portal.

Objaśnienie poszczególnych elementów konfiguracji portu:

W przypadku wyboru sterowania programowego XON/XOFF możemy ustawić od razu wartości XON (opcjonalnie 11) oraz XOFF (opcjonalnie 13) w konfiguracji portu w HEX'ie oraz w ASCII. Gdy mamy urządzenie które stosuje tylko linie RX oraz TX należy zastosować ten typ przepływu pamiętając, że wymogiem działania tego trybu jest transmisji w trybie dupleksu czyli transmisja między urządzeniami odbywa się w obu kierunkach w tym samym czasie.

W sterowaniu sprzętowym z przełączanym RTS'em (ang. Hardware RTS always switched). w celu wysłania danych moduł aktywuje linie sygnałową RTS i czeka aż na linii sygnału CTS dostanie sygnał aktywacji od urządzenia, gdy dostanie sygnał od urządzenia będący aktywnym sygnałem CTS moduł nadaje tak długo jak ten sygnał jest aktywny. W sterowaniu sprzętowym z zawsze włączonym RTS'em (ang. Hardware RTS always ON) moduł wystawia aktywny sygnał RTS a urządzenie zewnętrzne od razu nadaje bloki danych do modułu komunikacyjnego. Opcja ta daje możliwość nadawania
z urządzenia zewnętrznego do modułu w każdym momencie, kiedy tylko urządzenie ma do przesłania jakikolwiek blok danych. Jedyną wadą tej metody jest konieczność monitorowania przez samo urządzenie, aby nie wysłać zbyt wielu danych co mogłoby przepełnić bufor modułu, co spowodowałoby błąd
w programie.