1. Opis ogólny: /XXX/YYY (XXX przyjmować może wartości 232, 485 lub TTL, zaś YYY, to 090 lub 120) jest wysokozintegrowaną płytką, stanowiącą bazę do budowy systemów współpracujących z urządzeniami PDA, systemami monitoringu, urządzeniami GPS. Moduł taki, w zależności od wersji, może działać jako kamera video, aparat cyfrowy z samodzielną kompresją i prezentacją obrazu w formacie JPEG. Transmisję danych cyfrowych w postaci obrazów cyfrowych zapewnić mogą interfejsy RS232/RS485/TTL. Urządzenia tej serii umożliwiają transmisję obrazów w formacie 640x480 bądź 320x240 pikseli. 2. Cechy: A. Wymiary: 32*32 mm B. Zasilanie: DC 5V dla wersji RS232/RS485 DC 3.3V dla wersji TTL C. Możliwe porty szeregowe RS232, RS485, TTL D. Kąt widzenia kamery 90 stopni, 120 stopni E. Transmisja obrazów JPEG poprzez port szeregowy F. Prędkość transmisji: 9600 115200 (programowalna domyślnie 38400 bps) E. Wbudowany codec JPEG (różne stopnie kompresji, rozdzielczości 640x480, 320x240 F. Pobór prądu 80-100mA 3. Zastosowania A. Systemy akwizycji danych/obrazów (SCADA) B. Monitoring środowiskowy C. Monitoring przemysłowy D. Nadzór marketingowy (Business Intelligence) E. Videofony F. Systemy bezpieczeństwa G. Systemy GPS 1
4. wymiary : 5. Opis złącz: 1 2 3 4 RDX(IN ) / A TXD(OUT) / B GND +5V/3,3V Name +5V/+3.3V GND TXD(OUT)kamery RXD(IN) kamery A B Opis Zasilanie GND Poziom RS232/TTL Poziom RS232/TTL Linia RS485 Linia Rs485 6. Opis protokołu kamery Protokół kamery jest zbliżony do protokołu Modbus RTU i oparty jest na modelu komunikacji zapytanie odpowiedź typu Master Slave. W tym modelu komunikacją zarządza urządzenie Master (zazwyczaj komputer z odpowiednim oprogramowaniem) wysyłając zapytania do innych urządzeń. Urządzenia typu Slave (jakim jest kamera) nasłuchują zapytań z własnym adresem, analizują je, wykonują polecenie i odpowiadają w formacie zgodnym z zapytaniem. 2
Struktura zapytania w protokole kamery 0x26 Reset kamery [ODPOWIEDŹ] Nr bajtu Nazwa 1 0x56 0x76 2 3 Numer funkcji 0x26 Funkcja numer 0x26 4 Ilość bajtów danych reset kamery 5-N Bajty danych Status wykonania rozkazu Struktura odpowiedzi w protokole kamery 0x36 KONTROLA BUFORA Nr bajtu Nazwa 1 0x76 Funkcja ta służy do wykonania zdjęcia i kontroli 2 bufora przetrzymującego aktualny obraz z kamery. 3 Numer funkcji W celu pobrania obrazu z kamery trzeba zatrzymać 4 Bajt statusu 5 Ilość bajtów danych uaktualnianie bufora za pomocą tej funkcji przed 6-N Bajty danych rozpoczęciem pobierania zdjęcia, a po zakończeniu odczytywania obrazu należy wznowić uaktualnianie Obsługiwane funkcje protokołu kamery Nr funkcji Nazwa bufora w celu zachowania poprawnej pracy kamery. 0x24 Prędkość transmisji 0x26 Reset kamery 0x36 Kontrola bufora [ROZKAZ] 0x31 Kompresja / Rozmiar obrazu / 0x56 0x32 Odczyt bufora 0x34 Długość bufora 0x36 Funkcja numer 0x36 0x36 Kontrola bufora kontrola bufora 0x3E Oszczędzanie energii 0x01 Ilość bajtów danych zawsze 1 Znaczenie wartości bajtu statusu w odpowiedziach /0x03 Bajt danych: 0 zatrzymaj Wartość bajtu Nazwa uaktualnianie bufora; 3 0 Polecenie wykonano poprawnie 1 Funkcja nieobsługiwana wznów uaktualnianie bufora 2 Nieprawidłowa długość danych 3 Nieprawidłowy format danych 4 Polecenie nie możliwe 0x36 Kontrola bufora [ODPOWIEDŹ] do wykonania w tym momencie 5 Wykonanie polecenia 0x76 nie powiodło się 0x36 Funkcja numer 0x36 IMPLEMENTACJA FUNKCJI kontrola bufora Status: 0 - Polecenie 0x26 Reset kamery [ROZKAZ] wykonano poprawnie Ilość bajtów danych 0x56 0x26 Funkcja numer 0x26 reset kamery 3
0x34 DŁUGOŚĆ BUFORA Odczyt aktualnego obrazu 0x0A ilość bajtów danych Funkcja ta służy do odczytu długości bufora przetrzy- zawsze 10 mującego aktualny obraz z kamery (plik JPEG). W celu A1 Najwyższy bajt adresu startu pobrania obrazu z kamery należy odczytać długość A2 Drugi bajt adresu startu A3 Trzeci bajt adresu startu bufora po uprzednim zatrzymaniu jego aktualizacji A4 Najniższy bajt adresu startu (funkcja 0x36), co pozwala na określenie końcowego L1 Najwyższy bajt długości adresu danych. odczytu 0x34 Długości bufora [ROZKAZ] L2 Drugi bajt długości segmentu odczytu 0x56 L3 Trzeci bajt długości segmentu Adres urządzenia Slave odczytu 0x34 Funkcja numer L4 Najniższy bajt długości 0x34 długość bufora segmentu odczytu 0x01 Ilość bajtów danych zawsze 1 I1 Najwyższy bajt interwału Długość aktualnego obrazu (rekomendowane ) I2 Najniższy bajt interwału (rekomendowane 0x0A) 0x34 Długości bufora [ODPOWIEDŹ] 0x76 0x32 Odczyt bufora [ODPOWIEDŹ] 0x20 Adres urządzenia Slave 0x34 Funkcja numer 0x76 0x34 długość bufora 0x20 Adres urządzenia Slave Status: 0 - Polecenie 0x32 Funkcja numer wykonano poprawnie 0x32 odczyt bufora Ilość bajtów danych Status: 0 - Polecenie wykonano poprawnie 0x32 ODCZYT BUFORA Ilość bajtów danych Funkcja ta służy do odczytu danych z bufora przetrzymującego aktualny obraz z kamery. Obraz z kamery można odczytać w całości lub odbierać go pakietami wysyłając kolejne zapytania z odpowiednio ustawionym adresem i długością odczytywanych danych. Nie należy odczytywać danych podczas gdy uaktualnianie bufora nie jest zatrzymane ponieważ uniemożliwia to poprawne odczytanie obrazu. Interwał czasowy równy (I1 * 256 + I2) * 0,01ms XX Bajt danych z adresu (A1*224 +A2*216+A3*28+A4) XX Bajt danych z adresu (A+L1 *224+L2*216+L3*28+L4-1) Interwał czasowy równy (I1 * 256 + I2) * 0,01ms 0x32 Odczytu bufora [ROZKAZ] 0x56 0x32 Funkcja numer 0x32 odczyt bufora (pliku) 0x0C Ilość bajtów danych zawsze 12 0x76 0x20 0x32 Funkcja numer 0x32 odczyt bufora Status: 0 - Polecenie wykonano poprawnie Ilość bajtów danych 4
0x31 Współczynnik kompresji [ROZKAZ] 0x3E Tryb oszczędzania energii [ ROZKAZ] 0x56 0x56 0x31 Funkcja numer 0x31 stopień 0x3E Funkcja numer 0x3E kompresji/rozmiaru tryb oszczędzania energii 0x05 0x03 0x01 0x01 0x01 0x12 0xXX 01 = ustawienie oszczędzania, 0x04 00 = wyłączenie oszczędzania 0xXX Stopień kompresji zwykle XX = 0x36 0x3E Tryb oszczędzania energii [ODPOWIEDŹ] 0x31 Współczynnik kompresji [ODPOWIEDŹ] 0x76 0x76 0x3E Funkcja numer 0x3E tryb oszczędzania energii 0x31 Funkcja numer 0x31 stopień kompresji 0x24 Prędkości transmisji [ROZKAZ] 0xXX Stopień kompresji zwykle XX = 0x36 0x56 0x31 Rozmiar obrazu [ROZKAZ] 0x24 Funkcja numer 0x24 prędkość transmisji 0x56 0x03 0x01 0x31 Funkcja numer 0x31 stopień 0xXX 0xYY Prędkości: kompresji/rozmiaru 0xAE 0xC8 9600 0x05 0x56 0xE4 19200 0x01 0x2A 0x2F 38400 0x04 0x1C 0x4C 57600 0x01 0x0D 0xA6 115 200 0x19 0x24 Prędkości transmisji [ODPOWIEDŹ] 0xXX Rozmiar obrazu 11=320x240, 00 = 640x480 0x76 0x31 Rozmiar obrazu [ODPOWIEDŹ] 0x24 Funkcja numer 0x24 prędkość transmisji 0x76 0x31 Funkcja numer 0x31 stopień kompresji/rozmiaru Rozkaz wymaga resetu urządzenia (funkcja 0x26) 5
0x31 [ROZKAZ] 0x31 [ODPOWIEDŹ] 0x56 0x76 0xXX Aktualne 0xXX Aktualne 0x31 Funkcja numer 0x31 031 Funkcja numer 0x31 zmiana prędkość transmisji 0x05 0x04 0x01 Rozkaz wymaga resetu urządzenia (funkcja 0x26) 0x06 0xYY Nowe PROCEDURA POBIERANIA ZDJĘĆ Z KAMERY: W celu uzyskanie zdjęcia z kamery należy za pośrednictwem protokołu kamery opisanego powyżej przesłać do kamery następującą sekwencję rozkazów po każdej oczekując odpowiedzi ze strony kamery sygnalizującej poprawne wykonanie rozkazu: - Polecenie kontroli bufora z parametrem zatrzymania aktualizacji bufora w celu zatrzymania w buforze obrazu do odczytu -Polecenie odczytu długości bufora w celu uzyskania końcowego adresu aktualnego zdjęcia - Polecenie odczytu bufora w zależności od potrzeb parametry komendy można ustawić tak, by odczytać cały obrazek na raz lub pakietami, w tym wypadku wymagane jest powtórzenie tej komendy z odpowiednimi parametrami, aż cały obraz zostanie odczytany - Polecenie kontroli bufora z parametrem wznowienia aktualizacji bufora w celu przywrócenia kamerze stanu normalnego, w którym jest ona w stanie wykonywać zdjęcia; UWAGA! Pominięcie tego polecenia może zakłócić dalszą pracę urządzenia. UWAGI DODATKOWE: Gdy zasilamy moduł, ten wysyła samorzutnie komunikat gotowości do pracy w postaci ciągu znaków: Ctrl infr exist User-defined sensor 625 Init end Urządzenie nadrzędne musi zatem jedynie stwierdzić przyjście ciągu Init end (36 32 35 0D 0A 49 6E 69 74 20 65 6E 64 0D 0A ). Po otrzymaniu Init end urządzenie nadrzędne może wysłać rozkazy po odczekaniu 2-3 sekund. 6
7