Elektroda.pl
Elektroda.pl
X
Asaj - Inteligentny DomAsaj - Inteligentny Dom
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Magistrala CAN, Atmel i Bascom. Domowa automatyka.

01 Paź 2007 23:32 12791 40
  • Poziom 36  
    Witam.

    Ponieważ jestem zainteresowany tematem automatyki domowej mam pewne pytanie. Otóż swojego czasu w prasie elektronicznej (choćby przy okazji kursów Bascom) było bardzo dużo na temat mikrokontrolerów Atmel we współpracy z różnymi magistralami, przede wszystkim i2c, 1WIRE.

    Natomiast odnośnie magistrali CAN, w moim przekonaniu, zawsze panowała cisza. Czy jest jakiś szczególny powód, czy może chodzi o niewspieranie magistrali CAN przez dialekt MCS-basica?

    Wydaje mi się, że magistrala CAN w znakomity sposób nadaje się do zastosowania w domowej automatyce.
  • Asaj - Inteligentny DomAsaj - Inteligentny Dom
  • Poziom 26  
    Niech mnie ktoś poprawi jeśli się mylę, ale zawsze mi się wydawało, że CAN to po prostu definicja "formatu" komunikacji, a medium nośnym może być nawet RS232.
    Też bym chciał żeby było jak najwięcej dobrze znanych i powszechnie używanych standardów w urządzeniach elektronicznych, ale z tego co wiem, CAN został zaprojektowany na tyle uniwersalnie jak, powiedzmy, XML w informatyce - dlatego w prostych projektach jego użycie przypominałoby trochę polowanie na muchy z karabinem :D .
  • Poziom 26  
    No dobrze - 1 osoba się wypowiedziała ;) A inni?? Nikt tego nie używa? Nie ma zwolenników i przeciwników? Gdzie dyskusja czy to jest lepsze niż to czy tamto? :P Też interesuję się tym tematem i w miarę możliwości podrzućcie jakieś materiały o tym ;)
  • Poziom 33  
    ja z powodzeniem w wielu systemach kozystam z interfeisu RS485 - max 255 urządzeń adresowalnych oddalonych od centrali max 2km !!! ,cóż wiecej potrzeba ;)
  • Poziom 30  
    Teraz Can jest magistralą stosowaną w każdym nowym samochodzie, sa alarmy które to obsługują tzn zamieniają sygnały z lini can na analogowe.
    Tyle wiem w temacie Can i z checią bym to zgłębił:)
  • Asaj - Inteligentny DomAsaj - Inteligentny Dom
  • Poziom 26  
    Fajnie fajnie :P Samochód to nie dom - tu mamy małe odległości, ale z tego co ja przeczytałem to zaczyna mnie kusić :P
    Rs-485 - szkoda, że tylko 255, ale przecież można opracować swój standard? I nie korzystać z gotowych układów, tylko zostawić charakterystykę elektryczną no nie? Ciekawe tak swoją drogą czy dałoby się do interfejsu i2c podpiąć jakiś konwerter na rs485 i działać :P Poczytam o tym ;)
  • Poziom 35  
    pidpawel napisał:
    Fajnie fajnie :P Samochód to nie dom - tu mamy małe odległości, ale z tego co ja przeczytałem to zaczyna mnie kusić :P
    Rs-485 - szkoda, że tylko 255, ale przecież można opracować swój standard? I nie korzystać z gotowych układów, tylko zostawić charakterystykę elektryczną no nie? Ciekawe tak swoją drogą czy dałoby się do interfejsu i2c podpiąć jakiś konwerter na rs485 i działać :P Poczytam o tym ;)

    Twoja wypowiedz jest calkowice pozbawiona sensu i wydaje mi sie ze nie wiesz o czym wogole piszesz
    ad1
    w standardzie rs485 nie ma ograniczen odnosnie wielkosci(ilosci) urzadzen znajdujacych sie na liniach A i B jedyne co nas ogranicza to elemety dostarczone przez producenta... ergo Ja bym byl wstaine podlaczyc i 2048 urzadzen na rs485 i nie byla by to wielka sztuka
    ad2 swoj standard...super... to jeszcze zaplac producentowi np ST aby wyprodukowal chipa do twojego standardu... jak cie stac oczywiscie
    ad3 dalo by rade podpiac rs485 do i2c i nawet by to dzialalo ,,, o ale ja juz tak zrobilem w jednym projekcie .. i o zgrozo dziala !!!
    ad 4 POCZYTAJ O CZYM PISZESZ A POTEM SIE WYPOWEDZ
    - nie zaniżaj poziomu elektroda.pl
    Dziękujemy!
    rs485 rs232 i2c to standardy komunikacji okreslaja one napiecia... prady i sposob komunikacji 2 lub wiecej urzadzen
    a CAN to protokol w jakim ta komunikacja sie odbywa
    CAN moze dzialac na rs232..na rs485.. na i2c pewnie tez by sie dalo
  • Poziom 26  
    Dzięki, że mnie uściśliłeś. Jeśli chodzi o max urządzeń, to tak zrozumiałem jeden z powyższych postów.
    Ze standardem chodziło o sposób przesyłania danych. Rozmiar ramki, oznaczenia bitów itp. Chip do mojego standardu może to być nawet max232, tylko inaczej zaimplementuję obsługę wszystkiego.
    Jeśli o 3 chodzi to tak. i2c z tego co wiem jest na standardowych napięciach tj. ttl. Mylę się? Są konwertery, które zmieniają poziomy napięć itp na inny standard. Chodziło mi o zastosowanie protokołu i2c w projekcie wykorzystującym urządzenia do konwertowania sygnałów na inny standard, tak ab można było przesyłać go na inne odległości na przykład. Mówię o komunikacji między dwoma klockami cały czas, o przecież nie o podpinaniu 24c32 na rs485!
    ad 4 czytam - tylko nie umiem odróżnić prawdy, od "zamysłów" innych - nie moja wina że inni piszą nie jasno.
    Ostatnie 3 linijki Twojego postu się przydały i za nie dziękuję ;)
    Pozdrawiam
    Paweł
  • Poziom 11  
    avatar napisał:

    rs485 rs232 i2c to standardy komunikacji okreslaja one napiecia... prady i sposob komunikacji 2 lub wiecej urzadzen
    a CAN to protokol w jakim ta komunikacja sie odbywa
    CAN moze dzialac na rs232..na rs485.. na i2c pewnie tez by sie dalo


    CAN to żaden "protokół", tylko tak samo jak rs485, rs232, i2c "standard komunikacji", w którym określone są prądy, napięcia i sposób komunikacji 2 lub więcej urządzeń. Ściśle określone są również ramki używane do komunikacji, które są zupełnie inne niż RS485, RS232 czy I2C więc nie ma szans aby CAN współpracował poprawnie z tymi interfejsami. Polecam przeczytanie sobie na temat CANa chociażby tutaj: http://www.ely.pg.gda.pl/~rkraj/can/parametr.htm
  • Poziom 26  
    I więcej takich użytkowników na tym forum, a nie krytykantów :P

    Mam za to pytanie. Czy da się do któregoś z interfejsów przerobić format ramek? Tzn opracować swój własny standard przesyłu informacji? Charakterystyka prądowa powinna zostać taka, jak jest. Chcę przerobić troszkę protokół i2c - formę ramek podobną do tej, a właściwości - czytaj odległość taką jak np w rs485
  • Poziom 28  
    pibpawel -> potrzebujesz poprostu:
    Transcievera CAN (i tu pytanie do avatar: skoro CAN to tylko protokół to skąd dedykowany do niego transciver, pojedyncze słowo CAN można różnie zrozumieć):

    L9616

    lub poprostu transcievera do środowiska mocna zakłuconego:

    SN75176

    lub drivera/recivera RS485:

    MAX485CPA

    lub drivera/recivera RS232:

    MAX232

    Musisz rozróżnić Transciver'y, Driver'y, Reciver'y od Controller'ów. Te drugie są przeważnie 10x droższe ;-).

    Dodano po 3 [minuty]:

    Przez te układy wyżej wymienione możesz przesłać wszystko co Ci sie podoba na duże odległości. (gołe bajty, ramkę, ramkę z sumą kontrolną , .... pojedyncze bity, paczki po 8bitów, 16bitów .....)
  • Poziom 26  
    Ok - dzięki piękne ;) Zaraz poszukam, który najtańszy :P A takie pytanie mam. Te drivery czy jakieś inne :P muszą mieć jakoś określany kierunek czy 2-kierunkowe? I jakiś schemat aplikacyjny? Czy te układy można zapinać do magistrali w topologii magistrali? :P I czy gdybym po prostu do urządzeń pracujących w i2c dopinał takie cusie :P to działałoby? Oczywiście i w mikro i w układzie? Wątpię, ale może mi uprościć sprawę.
    Dziękuję za info ;) Zapomina się o tym, a to magiczne słowo.
  • Poziom 26  
    PCA82C251 - takie coś znalazłem... drogie tylko trochę jest. Szukam tańszych. Powiedzcie jeszcze pod jakimi interfejsami mogę szukać. Te to 60 gr kuszą, ale 32 urządzenia - tyle podobna na rs485 można podpiąć to za mało. Więc szukam innych. Macie gdzieś specyfikację rs485? Nie mogę znaleźć rzetelnych informacji o tym ile da się podpiąć.
  • Poziom 35  
    Na rs 485 Da sie sporo biorąc pod uwagę że można jeszcze sieć rs485 podzielić na podsieci stosując np megę 162 mamy do dyspozycji 2 uarty czyli ilość razy 2 . Z drugiej strony niech mi ktoś wymieni 255 urządzeń w domu.
  • Poziom 26  
    Gniazdka policz :P Kontakty :P Okna - tj czujniki otwarcia :P Jak szaleć to szaleć ;) To ma być na tyle uniwersalne, że zastanawiałem się czy nie puścić kabli od głośników po domu i na tej głównej magistrali nie podłączyć urządzeń do przełączania sygnałów :P Nie chcę dzielić na podsieci, bo chcę, aby dowolne urządzenie mogło bezpośrednio z dowolnym się komunikować. No może przesadzam, ale jak szaleć to szaleć ;)

    Dodano po 1 [minuty]:

    Tak swoją drogą to tu zapraszam: https://www.elektroda.pl/rtvforum/topic912771.html
  • Poziom 18  
    pidpawel moja rada postaw najpiers prosty system skladajacy sie z kulku urzadzen na RS485 a potem rzucaj sie na gleboka wode

    zobaczysz ze bedzie bardzo duzo zabawy z doborem modulow oraz zakluceniami na linii transmisyjnej

    a kabel od glosnikow ma tylko 2 zyly a potrzebujesz 4 ;)
  • Poziom 26  
    O co innego mi chodziło ;) Puszczam skrętkę, a 2 żyły na głośnik wykorzystam. Ale jak na mój gust to odpada bo będą duże zakłócenia. No ok, ale jak zainwestuję w 485, a potem mi się spodoba i powiem, że dalej chcę w to brnąć? To co? Wyrzucam 485 i od 0? Wolę od razu zrobić coś fajnego ;)
  • Poziom 15  
    Witam,

    w temacie CAN Busa moge pomoc tak weic jesli jest ktos zainteresowany to prosze pytac, jesli bede w stanie to pomoge.
  • Poziom 26  
    No ja jestem zainteresowany ;) Nigdzie nie mogę znaleźć jakiegoś schematu podłączenia urządzeń. Ilu żył potrzebuję? Masa i 2 dane?
  • Poziom 15  
    Do podlaczenia urzadzen wymagane sa dwie zyly tzw CANL i CANH.

    Ja w swoich projektach nie mam masy podlaczanej gdyz urzadzenia pracuja na jednej masie. Podlaczenie CANL i CAN H wystarczy aby wysylac ramki i je odbierac.

    Jesli idzie o schemat podlaczenie, to aby wpiac sie w szyne CAN z nowym urzadzeniem wystarczy do CANH podpiac CANH i do CANL podpiac CANL.
    Wazne jest naturalne aby urzadzenia pracowaly na tj samej predkosci przesylu danych np 500 kB. CANa mozna zaprogramowac na max predkosc do 1MB
  • Poziom 26  
    No ok ;) A jaki jest najoptymalniejszy protokół przesyłu dla CAN? Jaka jest optymalna szybkość?
  • Poziom 15  
    Jaka ci pasuje, praktycznie mozesz wybrac kazda.

    Jedynie na co trzeba zwrocic uwage, to im wieksza predkosc tym odleglosci miedzy urzadzeniami powinny byc mniejsz.

    Dokladnie z glowy nie powiem, trzeba by sie wczytac.

    Na 500kB/s komunikuja sie urzadzenia (sterowniki) w aucie a tam odleglosci nie sa wielkie 2-3 metry
  • Poziom 23  
    Malutkie sprostowanie, prędkość CANa to np 500kb/s (kilo bitów) a nie 500kB/s.
  • Poziom 35  
    Fakt malutkie osiem razy mniej ale i tak to bardzo dużo...
  • Poziom 26  
    No dalej dużo - w końcu jest to kilo ;) To nie ma być znowu internet ;) Nie trzeba mi "giga" sieci, tylko taką, żeby po włączeniu gniazdka nie trzeba było czekać minuty na włączenie światła :P
  • Poziom 33  
    Może z tej dyskusji coś skorzystasz, choć na początek nie radził bym Ci się pakować w CAN, już sama inicjalizacja sterowników i przekopywanie się przez setki dziwnych rejestrów może zniechęcić.
    2 skręcone druty, driverki rs-485 po złotówce, procesorki z uartem i protokół typu I-BUS stosowany w BMW. Do sterowania nawet hotelem wystarczy.
    http://www.mikrocontroller.net/forum/hausbus
    http://www.mikrocontroller.net/topic/50639

    Pzdr. N.
  • Poziom 26  
    Niestety, ale nic nie czaję z linków, które podałeś. Chociaż powiem szczerze - nie wiem, czy rs485, czy CAN bardziej mnie kręci. Właściwie oba są na bardzo wysokim poziomie ;) Z tego co wiem to CAN można również podpiąć pod uart? Tylko trzeba takie troszkę inne układy kupić i można szaleć ;) Can jakoś mi się bardziej podoba ze względu na ilość urządzeń. Jednak droższe kilkukrotnie. Protokół pewnie zastosuję własny. Tylko przeglądnę inne i zmodyfikuję biblioteki. Nie wszystkie standardy mi pasują. Zaczynam się chwiać nad centralnym masterem. No i kusi mnie ta wizja połączeń jak w internecie. Każde urządzenie jest swojego rodzaju serwerem, który udostępnia dane. Można je modyfikować itp. Tylko w tym układzie zarządzanie jest dość kłopotliwe, bo nie ma jak dodawać nowych funkcji do systemu. Trzeba wyciągać układ, programować i dopiero można korzystać. Powiedzcie mi jeszcze o zastosowaniu drivera, konwertera, albo jakiegoś podobnego dla CAN.
  • Spec od GSM
    Rozróżnij wreszcie warstwę fizyczną sieci i warstwę protokołu, na końcu warstwe aplikacji. Każda z tych warstw może być niezależnie projektowana (jeśli chcesz się bawić w coś niestandartowego). Wartwa fizyczna - wydaje mi się że najlepszym wyjściem będzie rs485 - standart z założenia przeciwzakłóceniowy co przy prowadzeniu linii w pobliżu przewodów energetycznych może być pożyteczną cechą. W warstwie protokołu mam niewielkie doświadczenie ale powinien zawierać conajmniej sprawdzanie poprawności i integralności danych, powtarzanie transmisji w przypadku błędów, łatwe adresowanie.
  • Poziom 15  
    kolega ma racje naturalnie jest to 500kbitow/s

    jesli idzie o drivery to do CANa to podaje jakie ja stosuje, bez wiekszycj problemow.

    CAN wolny do 125kb/s mozesz stosowac ukald TDA1054 (16 pin)
    a do CAN szybkiego do max predkosci stosuje sie np uklad PCA82C250 (8 pin),

    Jesli idzie o podlaczenie CAN do USART to nie wiem skad masz takie niusy. Ja nie znam takiego konwertera i raczej takiego nie ma.
    Jesli chcesz podejrzec co sie dzieje na CAN i rzucic to na USARTA to trzeba to zrobic np na uC ktory potrafi zarowno CANa jak i USARTa. Kiedys takie urzadzonko robilem i calkiem przyzwoicie funkcjonowalo.
  • Spec od GSM
    Sa jeszcze uC dedykowane, wyposarzone w sprzętowe drivery CAN.