piątek, 26 września 2014

Sieć 1wire, moduły USB i I2C, OWFS

     Do komunikacji z chipami 1wire wykorzystuję konwerter brytyjskiej firmy AB Electronics zrealizowany na układzie DS2482-100.   Wpinany bezpośrednio w GPIO maliny, wykorzystuje piny na których jest zrealizowana szyna i2C.

Płytka konwertera
Konwerter zamontowany na malince


Płytka posiada złącze ma RJ12. Obszycie pinów wygląda następująco:

GNIAZDO RJ12 w module

 _____________     1- 5V
| ___________ |    2- GND
||I I I I I I||    3- DATA 1wire
||1 2 3 4 5 6||    4- GND 1wire
||___________||    5- NC
|____     ____|    6- NC
     |___|
Widok od przodu


Polska firma MERA-PROJEKT produkuje także konwertery USB na 1wire. Wykorzystywałem kiedyś moduł MP00200A oparty o chip DS2490. Niestety, nie jest już dostępny w sprzedaży.



Polski konwerter MP00200A produkcji MERA-PROJEKT


Aby chipy 1wire były widoczne w systemie posługuję się pakietem OWFS (One Wire File System). Program ten działa w ten sposób, że tworzy wirtualny system katalogów i plików, które w swej strukturze udostępniają parametry oferowane przez dany chip.  Poniżej przykład takiej struktury. W głównym katalogu, którego nazwa jest zgodna z ROM-em, czyli unikalnym numerem dla każdego wyprodukowanego układu, znajdują się pliki z wielkościami i parametrami chipa. Przykład  dla układu DS18S20 jest poniżej,nazwa katalogu 10.000010EF0000 to ROM układu, plik temperature przechowuje zmierzoną temperaturę:

10.000010EF0000
|-- address
|-- crc8
|-- die
|-- family
|-- id
|-- locator
|-- power
|-- present
|-- r_address
|-- r_id
|-- r_locator
|-- temperature
|-- temphigh
|-- templow
|-- trim
|-- trimblanket
|-- trimvalid
`-- type


Instalacja owfs w Raspbianie jest bardzo łatwa. Wydajmy polecenie:

#sudo apt-get install owfs

Przygotowujemy katalog do którego owfs zamontuje swój wirtualny system plików:

#sudo mkdir /mnt/1wire

Po poprawnym zainstalowaniu oprogramowania, uruchamiamy demona, który połączy się poprzez konwerter usb lub i2c z magistralą 1wire i pokaże podpięte układy.
Dla konwertera usb wydajemy polecenie:

#sudo owfs --allow_other --usb -m /mnt/1wire

Dla konwertera poprzez szynę i2c:

#sudo owfs --allow_other --i2c -m /mnt/1wire 

W opcjach polecenia owfs deklarujemy:
 --allow_other aby wszyscy użytkownicy systemu mieli dostęp do utworzonych katalogów i plików,
 --i2c lub --usb to rodzaj konwertera,
 -m /mnt/1wire to punkt montowania wirtualnego systemu plików.
Aby system po uruchomieniu udostępnił zawartość magistrali 1wire, trzeba dopisać jedno z powyższych poleceń w pliku /etc/init.d/rc.local. Przegladanie zawartości plików, można realizować poleceniami dostępnymi w systemie:

#ls -all /mnt/1wire
#cat /mnt/1wire/10.000010EF0000/temperature
Dzięki takiemu rozwiązaniu mamy dostęp do magistrali praktycznie z każdego języka programowania, który pozwala na czytanie plików.

Brak komentarzy:

Prześlij komentarz