Aplikacja czujnika temperatury dla modułu uniwersalnego UNIV 1.0 i procesora UNIV 1.0 (CPU) Cechy: Z uŝyciem cyfrowych sensorów DS18B20, DS18B20-PAR lub DS1822, DS1822-PAR. Mierzy temperaturę od -55 C do +125 C. Dokładność pomiaru ±0.5 C z układem DS18B20, DS18B20-PAR lub ±2.0 C z układem DS1822- DS1822-PAR. 12 bitowa rozdzielczość temperatury. Napięcie zasilania 10-24V. Pobór prądu 14mA. Aplikacja zawiera termostat o rozdzielczości 1.0 C. Rozdzielczość histerezy 1 C. Pamięta ostatnia nastawę termostatu na wypadek zaniku zasilania. Aplikację moŝna wgrać do urządzeń z bootloaderem w wersji 2.5 i kompatybilnymi. Wersja aplikacji UNIV 1. 0. 4. 0 wersja firmware firmware sensora temperatury wersja urządzenia moduł uniwersalny 1. Opis działania Moduł wysyła na magistralę wiadomość o aktualnej temperaturze sensora, kiedy ta zmieni się o 0.5 C. Moduł moŝe być uŝyty jako termostat. Wysyła on wiadomość o stanie termostatu, kiedy temperatura sensora jest powyŝej lub poniŝej nastawy termostatu. Istnieje moŝliwość ustawienia histerezy 1-90 C z rozdzielczością 1 C. Nastawa termostatu moŝe być regulowana przez inne moduły w sieci np. moduł przycisku lub odbiornik podczerwieni. Ta wersja aplikacji umoŝliwia podłączenie tylko jednego sensora. 2. Dane techniczne Strona magistrali Parametr Symbol Wartość Jednostka Napięcie zasilania U s 10-24V V Pobór prądu I s 14 ma Sensor temperatury Parametr Symbol Wartość Jednostka Zakres odczytu temperatury T -55 - +125 C Rozdzielczość odczytu temperatury T RES 0.0625 C Dokładność odczytu T ERR DS18B20, DS18B20-PAR: ±2 ±0.5 (-10 C - +85 C) DS1822, DS1822-PAR: ±3 ±2 (-10 C - +85 C) Zakres nastawy termostatu T THM -55 - +125 C Rozdzielczość nastawy termostatu T THMRES 1 C Histereza termostatu T HIS 1 90 C Rozdzielczość nastawy termostatu T HISRES 1 C C 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 1 / 7
3. Hardware 3.1. Schematy Rysunek 1. Schemat ideowy aplikacji czujnika temperatury dla modułu UNIV 1.0 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 2 / 7
Rysunek 2. Schemat ideowy aplikacji czujnika temperatury dla procesora UNIV 1.0 (CPU). 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 3 / 7
3.2. Połączenie DS18B20, DS1822 X1-1 X1-2 CAN H CAN L DS18B20-PAR DS1822-PAR X1-1 X1-2 CAN H CAN L X1-3 CAN X1-3 CAN X1-4 CAN V+ X1-4 CAN V+ VDD NC Jeśli moduł jest pierwszy lub ostatni na magistrali, to pomiędzy piny CAN H i CAN L musi być włączony rezystor 120ohm. Rysunek 3. Schematy połączeń dla róŝnych typów sensorów. 1 8 1 biało-pomarańczowy - CAN H 2 pomarańczowy - CAN L 3 biało-zielony - nieuŝywane 4 niebieski CAN V+ 5 biało-niebieski CAN 6 zielony - nieuŝywane 7 biało-brązowy CAN 8 brązowy - CAN V+ 1 8 Rysunek 4. Schemat połączenia magistrali dla wersji ze złączem RJ45. 4. Firmware Oprogramowanie moŝe być wgrane do modułu przy uŝyciu HAPCAN Programatora, który moŝe być pobrany ze strony http://siwilo.com/hapcan/software. 4.1. Ramka temperatury Moduł wysyła wiadomość na magistralę, kiedy temperatura sensora zmieni się o 0.5 C. Ta wiadomość moŝe zmieniać stan innych modułów na magistrali. Budowę ramki temperatury przedstawia Tabela 1. Tabela 1. RAMKA TEMPERATURY 0x304 0x0 Node Nr Group Nr 0xFF 0xFF 0x01 TEMPMSB TEMPLSB VALUE HYSTER 0xFF 0x304 moduł uniwersalny, aplikacja czujnika temperatury 3 - - flaga nieuŝywana o wartości zawsze 0 2 - - flaga nieuŝywana o wartości zawsze 0 1 - - flaga nieuŝywana o wartości zawsze 0 0 ODP - flaga odpowiedzi. Jeśli ramka została wysłana w skutek zapytania o stan to ODP = 1, inaczej ODP = 0. ODP = 0 informuje, Ŝe stan modułu właśnie się zmienił. Node Nr - numer modułu czujnika temperatury Group Nr - numer grupy czujnika temperatury 0x01 - typ danych w ramce (0x01 - ramka temperatury) TEMPMSB - najbardziej znaczący bajt temperatury TEMPLSB - najmniej znaczący bajt temperatury VALUE HYSTER - nastawa termostatu 0xC9 0x7D (-55 C - +125 C) - histereza (1-90 C) Zmierzona wartość temperatury podawana jest w bajtach MSB i LSB jako wartość 9 bitowa zapisana w kodzie dwójkowym ze znakiem, w postaci uzupełnienia do dwóch. Znak S oznacza znak wartości temperatury. Dla wartości nieujemnych S=0, a dla ujemnych S=1. Bajt MSB Bajt LSB S S S S S 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2-1 0 0 0 Rysunek 5. Bajty temperatury w ramce temperatury. 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 4 / 7
4.2. Ramka termostatu Kiedy temperatura spadnie poniŝej wartości nastawy termostatu, lub podniesie się powyŝej tej nastawy, moduł wyśle ramkę termostatu. Parametr histereza powoduje, Ŝe termostat nie reaguje szybko na zmiany w okolicach temperatury nastawy termostatu. Ramka termostatu moŝe zmieniać stan innych modułów na magistrali. Tabela 2. RAMKA TERMOSTATU 0x304 0x0 Node Nr Group Nr 0xFF 0xFF 0x02 STATUS 0xFF INSTR1 INSTR2 TIMER 0x304 moduł uniwersalny, aplikacja czujnika temperatury Node Nr - numer modułu czujnika temperatury Group Nr - numer grupy czujnika temperatury 0x02 - typ danych w ramce (0x02 - ramka termostatu) STATUS - stan termostatu (0x00 temperatura poniŝej wartości nastawy, 0xFF - temperatura powyŝej wartości nastawy) INSTR1 INSTR2 TIMER - instrukcja oczekująca na wykonanie, lub wartość 0xFF, jeśli Ŝadna nie oczekuje - drugi bajt instrukcji oczekującej na wykonanie, lub wartość 0xFF - czas opóźnienia wykonania instrukcji, lub wartość 0x00 4.3. Pytanie o status Stan modułu moŝe być sprawdzony poprzez wysłanie ramki PYTANIE O STATUS (0x109) (Tabela 3). Tabela 3. Ramka PYTANIE O STATUS (0x109). 0x109 0x0 COMP ID1 COMP ID2 0xXX 0xXX Node Nr Group Nr 0xXX 0xXX 0xXX 0xXX 0x109 Ramka PYTANIE O STATUS COMP ID1 - identyfikator komputera (musi to być unikalny numer w sieci) COMP ID2 - identyfikator komputera (musi to być unikalny numer w sieci) Node Nr Group Nr 0xXX - numer modułu, który jest pytany - numer grupy modułu, który jest pytany - dane nieistotne, mogą być dowolnej wartości W odpowiedzi moduł wyśle ramkę błędu, jeśli występuje problem na magistrali, lub dwie ramki statusu ramkę temperatury-status i ramkę termostatu-status (Tabela 4). Znaczenie poszczególnych bajtów jest identyczne jak w Tabeli 1 i Tabeli 2. Tabela 4. Odpowiedź na PYTANIE O STATUS. Ramka błędu 0x304 0x1 Node Nr Group Nr 0xFF 0xFF 0xFF ERROR CODE 0xFF 0xFF 0xFF 0xFF ERROR CODE = 0x01 niepodłączony czujnik. ERROR CODE = 0x02 dwa lub więcej czujników na magistrali, lub czujnik bez kodu 64 bitowego. ERROR CODE = 0x03 nieprawidłowy czujnik ERROR CODE = 0x04 problem CRC (problem transmisji na magistrali ) lub Ramka temperatury status 0x304 0x1 Node Nr Group Nr 0xFF 0xFF 0x01 TEMPMSB TEMPLSB VALUE HYSTER 0xFF Ramka termostatu - status 0x304 0x1 Node Nr Group Nr 0xFF 0xFF 0x02 STATUS 0xFF INSTR1 INSTR2 TIMER Rejestry temperatury w ramce temperatury status, podają wynik z rozdzielczością 12 bitów (Rysunek 6). 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 5 / 7
Bajt MSB Bajt LSB S S S S S 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2-1 2-2 2-3 2-4 Rysunek 6. Rejestry temperatury w ramce temperatury - status. 4.4. Sterowanie Moduł moŝe być sterowany bezpośrednio z komputera, lub pośrednio przez inne moduły. W obu przypadkach mogą być uŝyte 3 instrukcje sterując. Wartością regulowaną jest nastawa termostatu, która moŝe być zmieniana np. prze moduł przycisku lub pilotem sterowania przez moduł odbiornika podczerwieni. Na wypadek zaniku zasilania nowa wartość nastawy będzie zapamiętana przez moduł, po około 4s po zmianie. 4.4.1. Instrukcje sterujące Moduł rozpoznaje 3 instrukcje sterujące (Tabela 5). Tabela 5. Kodowanie instrukcji Instrukcja Kod instrukcji Opis INSTR1 INSTR2 Ustaw termostat na 0x00 0xC9 0x7D Ustawia termostat na wartość równą INSTR2 (-55 C - +125 C) Zmniejsz termostat o 0x01 0x00 0xFF Zmniejsza nastawę o wartość INSTR2 Zwiększ termostat o 0x02 0x00 0xFF Zwiększa nastawę o wartość INSTR2 4.4.2. Timer Wykonanie wszystkich instrukcji moŝe być opóźnione wykorzystując timer. Czas opóźnienia moŝe być ustawiony w zakresie 1s- 20h. PoniŜszy wykres pokazuje zaleŝność czasu opóźnienia od wartości rejestru TIMER. Rysunek 7. ZaleŜność czasu opóźnienia od wartości rejestru TIMER. 4.4.3. Sterowanie bezpośrednie Sterując bezpośrednio naleŝy wysłać na magistralę, poprzez interfejs, ciąg bajtów jak w Tabeli 6. MoŜna równieŝ sterować wykorzystując HAPCAN Programator. W odpowiedzi moduł wyśle ramkę aktualnych stanów. Tabela 6. Ramka STEROWANIE BEZPOŚREDNIE (0x10A). 0x10A 0x0 COMP ID1 COMP ID2 0xXX 0xXX Node Nr Group Nr 0xXX INSTR1 INSTR2 TIMER 0x10A Ramka STEROWANIE BEZPOŚREDNIE COMP ID1 - identyfikator komputera (musi to być unikalny numer w sieci) COMP ID2 - identyfikator komputera (musi to być unikalny numer w sieci) Node Nr Group Nr INSTR1 INSTR2 TIMER - numer modułu, który jest pytany - numer grupy modułu, który jest pytany - instrukcja do wykonania (bajt1) - instrukcja do wykonania (bajt2) - opóźnienie wykonania instrukcji 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 6 / 7
4.4.4. Sterowanie pośrednie Przy sterowaniu pośrednim moduł będzie reagował na wiadomości wysłane przez inne moduły w sieci. To, które wiadomości mają oddziaływać na moduł, określa się podczas konfiguracji zaleŝności komunikacyjnych. 4.5. Konfiguracja PoniŜsze parametry modułu mogą być konfigurowane w tej wersji aplikacji. - Identyfikator modułu (numer modułu i numer grupy); - Opis modułu (16 znaków); - Wartość nastawy termostatu po włączeniu zasilania; - Wartość histerezy; - ZaleŜności komunikacyjne; Proces konfiguracji wykonuje się uŝywając oprogramowania HAPCAN Programator. 4.5.1. Identyfikator modułu KaŜdemu modułowi w sieci HAPCAN musi być przypisany unikalny numer. Numer ten składa się z dwóch bajtów, numeru modułu (1 bajt) i numeru grupy (1 bajt). PrzynaleŜność modułu do konkretnej grupy nie ma tu znaczenia, moŝe być wykorzystana w przyszłych aplikacjach. 4.5.2. Opis modułu KaŜdy moduł moŝe zostać opisany 16 znakami w celu ułatwienia uŝytkownikowi identyfikowania ich. Przykłady opisów: sypial-temp, salon-temp itp. 4.5.3. Wartość nastawy termostatu po włączeniu zasilania Wartość ta moŝe być w przedziale 0xC9 0x7D (-55 C - +125 C). MoŜe być równieŝ wybrana wartość zapamiętana sprzed awarii zasilania. 4.5.4. Histereza termostatu Histereza zapobiega częstemu przełączaniu termostatu w okolicach temperatury nastawy. Termostat zostanie przełączony do stanu wysokiego TH, kiedy temperatura podniesie się do poziomu nastawy termostatu + wartość histerezy. Termostat zmieni stan na TL kiedy temperatura spadnie do poziomu nastawy wartość histerezy (Rysunek 6). HYST TH TL T [ C] T TH Nastawa termostatu TH Stan wysoki termostatu TL Stan niski termostatu HYST wartość histerezy T TH Rysunek 7. Nastawa termostatu i histereza 4.5.5. ZaleŜności komunikacyjne Moduł posiada 24 komórki pamięci (boksy), do których moŝna wpisać wiadomości, na jakie przekaźnik ma reagować, kiedy odbierze je z magistrali. KaŜdy boks zawiera informację o tym, jaka wiadomość ma zainicjować działanie modułu oraz jaka instrukcja ma być wykonana, kiedy ta wiadomość zostanie odebrana. 5.0. Wersja dokumentu Plik Opis Data univ_v1-0-4-0a_pl.pdf Wersja oryginalna Sierpień 2007 univ_v1-0-4-0b_pl.pdf Korekta wartości T ERR Październik 2007 univ_v1-0-4-0c_pl.pdf Uaktualnienie o procesor UNIV 1.0 (CPU) Luty 2008 2008 siwilo.com univ_v1-0-4-0c_pl.pdf - strona 7 / 7