1 Wstęp...1 2 Jak aplikacja obsługuje procesory?...2 2.1 Przesył danych między procesorem a tabelą zmiennych...2 2.2 Polecenia wysyłane do procesorów...2 3 Podstawowe peryferia procesora HallChip...3 3.1 Port RS232...3 3.2 Wejścia adresowe...3 3.3 Dioda kontrolna LED...3 4 Łączenie procesorów z komputerem...3 4.1 Podłączenie jednego procesora z konwerterem MAX232...3 4.2 Podłączenie kilku procesorów z jednym konwerterem MAX232...4 4.3 Podłączenie kilku procesorów z konwerterami MAX232...4 4.4 Połączenie sieci procesorów z zastosowaniem konwerterów RS232/422...4 5 Rezonator kwarcowy i układ resetu...5 6 Wejścia i wyjścia cyfrowe...5 7 Wejścia analogowe...5 8 Konfiguracja procesorów...5 9 Konfiguracja procesora wysyłana do procesora...6 9.1 TimeOut...6 9.2 Filtr wejść...6 9.3 Blokada ustawiania wejść...6 1 Wstęp W dokumencie tym opisano zagadnienia ogólne dotyczące procesorów serii HallChip i ich użycia w programie. Konkretne procesory opisane są szczegółowo w ich dokumentacjach
2 Jak aplikacja obsługuje procesory? Rozkaz Chip_Command wysyłający polecenia bezpośrednio do pocesora. Rozkaz Chip_LCD wysyłający tekst do procesora z wyświetlaczem LCD 2.1 Przesył danych między procesorem a tabelą zmiennych Tworząc aplikację korzystamy ze zmiennych przypisanych do procesorów. Możemy np. zmienną reprezentującą stan wejścia procesora przypisać do komponentu LED będzie się on świecił wtedy kiedy wejście będzie załączone. Analogicznie możemy przypisać stan zmiennej wyjściowej do komponentu przełącznika będzie on wtedy sterował odpowiednim wyjściem. Możemy też używać tych zmiennych w skrypcie sterującym. Dla każdego z procesorów przypisano pewien zakres zmiennych. O tym do czego służą i jak są opisane w tablicy zmiennych decyduje to jaki procesor wybrano podczas konfiguracji. Kolumna funkcja opisuje wtedy co robi dana zmienna. Zmienne bitowe Dla każdego procesora przewidziano 48 zmiennych bitowych 24 zmienne odczytywane z procesora i 24 zmienne wysyłane do procesora. Domyślne nazwy tych zmiennych (możemy je zmienić) składają się z przedrostka P, numeru procesora, określenia kierunku (in lub out) i numeru zmiennej, np. P1_out3 to 3 zmienna wyjściowa 1 procesora a P4_in6 to 6 zmienna wejściowa 4 procesora. Zmienne integer Dla każdego procesora przewidziano 8 zmiennych integer 5 zmienne odczytywane z procesora i 3 zmienne wysyłane do procesora. Domyślne nazwy składają się z przedrostka P, numeru procesora, określenia kierunku (Ain lub Aout) i numeru zmiennej, np. P1_Aout1 to 3 zmienna wyjściowa 1 procesora a P4_Ain2 to 2 zmienna wejściowa 4 procesora. Zmienne real Dla każdego z procesorów przewidziano dwie zmienne real służące głównie do odczytu cyfrowych czujników temperatury które można podłączyć do niektórych procesorów HallChip. Zmienne te są tylko do odczytu 2.2 Polecenia wysyłane do procesorów Poza wymianą zmiennych między procesorami a programem która odbywa się poza świadomością programisty przewidziano dwie komendy do użycia w programie (skrypcie sterującym) : Chip_command wysyłający polecenie lub polecenie z parametrem do wybranego procesora oraz Chip_LCD która wysyła tekst do wyświetlenia do procesora HCHLCD. Kody dla polecenia Chip_Command opisane są w dokumentacjach procesorów
3 Podstawowe peryferia procesora HallChip Pewne peryferia są wspólne dla każdego z procesorów każdy procesor ma wejście i wyjście portu komunikacyjnego, wejścia adresowe i kontrolną diodę świecącą. Większość z nich wejścia analogowe i wejścia termometrów cyfrowych. 3.1 Port RS232 Komunikacja z procesorem odbywa się za pośrednictwem portu RS232. W procesorach w obudowie z 40-toma wyprowadzeniami wykorzystywane są wyprowadzenia 14 (Rx) i 15 (Tx) a dla procesorów w obudowie z 28-oma wyprowadzeniami 2(Rx) i 3 (Tx). Ponieważ końcówki portu procesora są w standardzie TTL to aby podłączyć procesor z komputerem musimy zastosować konwerter. Jeden procesor połączyć z komputerem możemy np. za pośrednictwem układu MAX232 który konwertuje poziomy sygnałów do standardu RS232. Przykład znajduje się w następnym rozdziale. 3.2 Wejścia adresowe Każdy z podłączonych procesorów musi mieć nadany odpowiedni adres ( z zakresu 1 do 8). Wyjątkiem jest sytuacja gdy ustawiamy w konfiguracji sieci procesorów że podłączony będzie tylko jeden procesor. Adresowanie procesora odbywa się za pomocą trzech wejść procesora. Które wejścia są wejściami ustalającymi adres opisano w dokumentacji konkretnego procesora. Przykład podłączenia wejść adresowych i kodowanie numeru (adresu) procesora. Rezystory pomiędzy wejściami adresowymi a +5V są opcjonalne i zwiększają odporność wejść adresowych na zakłócenia 3.3 Dioda kontrolna LED Każdy procesor HallChip wyposażono w wyjście sterujące kontrolną diodą świecącą. Led kontrolny pulsuje z częstotliwością ok. 0,5Hz wtedy kiedy układ pracuje ale nie ma transmisji oraz z częstotliwością kilku Hz wtedy gdy układ komunikuje się z komputerem 4 Łączenie procesorów z komputerem Procesory komunikują się z komputerem za pośrednictwem portu RS232. Jednak aby podłączyć procesor który ma wejście i wyjście portu komunikacyjnego w standardzie TTL do portu w komputerze musimy zadbać o dopasowanie poziomów. Najprościej zrobić to za pomocą konwertera Max232. 4.1 Podłączenie jednego procesora z konwerterem MAX232
4.2 Podłączenie kilku procesorów z jednym konwerterem MAX232 Kiedy chcemy połączyć kilka procesorów które mają być blisko siebie wystarczy nam jeden konwerter max232 dostosowujący poziomy do portu RS w komputerze PC. Sygnały TxD procesorów separujemy za pomocą zwykłych diod. 4.3 Podłączenie kilku procesorów z konwerterami MAX232 Dzięki niewielkiej prędkości transmisji i dobrej korekcji błędów niewielkie domowe sieci na niewielkie odległości możemy budować bez stosowania konwerterów prądowych (max422). Pamiętać należy że konwertery prądowe nie tylko służą zapewnieniu bezbłędnej transmisji pomiędzy komputerem a interfejsem ale chronią też linie komunikacyjne przed skutkami przepięć elektrycznych. 4.4 Połączenie sieci procesorów z zastosowaniem konwerterów RS232/422 Na rynku dostępne są różnego rodzaju konwertery rs232/485/422. Wiele z konwerterów rs485 pracuje również w trybie 422. Również wykonanie konwerterów we własnym zakresie jest o wiele prostsze ponieważ dzięki zastosowaniu dwu linii transmisyjnych odpada problem ze sterowaniem kierunkiem. Stosując konwertery 422 można łączyć procesory z komputerem na duże odległości przekraczające znacznie 1000m
5 Rezonator kwarcowy i układ resetu Prawidłowa praca procesora wymaga podłączenia układu resetu i rezonatora kwarcowego dla wewnętrznego generatora taktującego. Rezonator kwarcowy o częstotliwości 11.0592 MHz podłączamy do wyprowadzeń 12 i 13 i blokujemy kondensatorami 33 lub 47piko do masy. Procesor posiada wewnętrzny układ resetu ale dla jego stabilnej pracy musimy podłączyć jego wyprowadzenie (9) do zasilania poprzez rezystor 10k i zblokować kondensatorem ceramicznym 100n do masy 6 Wejścia i wyjścia cyfrowe Wejścia sterowane są poprzez podanie masy kiedy linia wejściowa wisi w powietrzu lub jest podłączona do plusa to odczytywany jest stan zera logicznego a kiedy podłączymy do masy to mamy stan jedynki logicznej. Zaleca się podciągnięcie wejść do plusa zasilania przez rezystory 10k ale nie są one bezwzględnie wymagane. Wyjścia pracują w standardzie TTL i możemy do nich podłączyć np. diodę świecącą do masy(np. w optoizolatorze lub optotriaku ) albo układ uln2803. Przykłady wejść i wyjść 7 Wejścia analogowe Procesory HallChip oparte są na procesorach ATMEGA a te posiadają wbudowany 10-bitowy przetwornik ADC z multiplekserem wejść. Wejścia analogowe odczytują napięcie na odpowiednich wejściach w zakresie od 0V do napięcia referencji podanego na wyprowadzenie 32 procesora. Aby przetwornik prawidłowo funkcjonował musimy podłączyć masę analogową i zasilanie +5V o odpowiedniej jakości do odpowiednio wyprowadzeń 31 i 30. 8 Konfiguracja procesorów W oknie konfiguracji widoczna jest sieć ośmiu procesorów. Każdy z rozrysowanych procesorów odpowiada kolejnemu adresowi. Na rysunku procesora wyświetlony jest typ przyporządkowanego procesora i jego priorytet w sieci Dla każdego procesora mamy przycisk konfiguruj który otwiera okno konfiguracji procesora. Poniżej mamy dwa przełączniki pozwalające na wybór który z procesorów będzie symulowany w dwu dostępnych symulatorach. Ustalamy też czas zaniku transmisji TimeOut i sposób w jaki program ma zareagować na jej zanik. Po zaniku transmisji zależnie od ustawień albo wyświetlane jest okienko z informacją o braku połączenia i program oczekuje na wznowienie transmisji, albo nic się nie dzieje albo program zostaje zatrzymany.
Określamy też czy po zaniku transmisji mają zostać skasowane zmienne procesorów. Sama konfiguracja procesora polega na wyborze z listy właściwego procesora, ustaleniu priorytetu (normalny lub niski) i na ustaleniu konfiguracji wysyłanej do procesora która jest zależna od typu odłączonego procesora i która została opisana niżej. Jeżeli wszystkie procesory mają ten sam priorytet to sprawa jest prosta najpierw program łączy się z pierwszym, potem z drugim, trzecim itd. Ponieważ jednak każde połączenie z procesorem trwa jakiś określony czas a nie każde urządzenie wymaga równie częstego odczytywania odświeżania to możemy je odpytywać rzadziej a co za tym idzie szybciej odpytywać pozostałe. Ustalenie niskiego priorytetu spowoduje że procesor będzie odpytywany co 4 cykl. 9 Konfiguracja procesora wysyłana do procesora Do procesora wysyłanych jest kilka parametrów decydujących o sposobie jego pracy. Niektóre ustawienia charakterystyczne są dla konkretnych procesorów i pisane są w ich dokumentacji lecz są też ustawienia wspólne dla wszystkich procesorów (poza procesorem HCHMicroPLC). 9.1 TimeOut Ustawienie TimeOut decyduje czy i jak reagować ma procesor na zerwanie transmisji. Jeżeli parametr timeout jest wyłączony to stan wyjść po zerwaniu transmisji pozostaje bez zmian. Jeżeli załączymy TimeOut wtedy po określonym czasie po zaniku komunikacji stan wyjść zostanie kasowany. Następnym parametrem określamy też czy czas timeout ma być krótki (ok. 2 sekund) czy długi (ok. 10 sekund). W dokumentacji każdego procesora opisano sposób jego reakcji na przekroczenie czasu jakie wyjścia są kasowane 9.2 Filtr wejść Podstawowe wejścia są filtrowane tzn. nie reagują na krótkie zmiany stanu (zakłócenia). konfigurując procesor ustalamy za pomocą parametru filtr wejść czy ignorować zmiany krótsze niż 20ms (parametr filtr wejść wyłączony) czy krótsze niż 200ms. 9.3 Blokada ustawiania wejść Stanem wejść można sterować za pomocą komend z poziomu skryptu sterującego ale wtedy musimy załączyć ten parametr bo inaczej stan zmiennych wyjść przesyłanych cyklicznie do procesora będzie pokrywał zmiany powodowane przez komendy takie jak Chip_command