Obecnie istnieje wiele modułów CAN wbudowanych w mikrokontrolery. PIC18F2480 jest przykładem. Czy ten mikrokontroler (z wbudowaną magistralą CAN) może samodzielnie sterować magistralą CAN, czy też wymagany jest zewnętrzny transceiver / kontroler CAN?
Wierzę, że CAN ma zarówno warstwę programową, jak i sprzętową. Wygląda na to, że te mikrokontrolery z obsługą CAN wydają się mieć tylko oprogramowanie, ale nie stwierdza, że może lub nie może sterować magistralą CAN taką, jaka jest.
Chcę podłączyć więcej niż sześć mikrokontrolerów za pośrednictwem magistrali CAN i chciałbym wiedzieć, czy potrzebuję nadajnika-odbiornika na wszystkich z nich, czy też wbudowane elementy mogą obsługiwać komunikację z perspektywy oprogramowania i sprzętu.
Załóżmy, że będę mieć niezbędne rezystory terminujące i inne małe dyskretne elementy (zaślepki, rezystory itp.)
LPC11Cxx rodzina mikrokontrolerów (ARM Cortex-M0 oparty) obejmują transceiver CAN on-chip.
źródło
Tak, potrzebujesz transceivera. Piny CAN na mikro są odbierane i transmitowane. Sama magistrala CAN wykorzystuje skrętkę z sygnalizacją różnicową na dwóch przewodach zwanych HIGH i LOW.
Jednym z zadań transiwera jest podniesienie poziomu logiki na pinie TX i przekształcenie go w sygnały magistrali CAN:
Drugim jest wzięcie tego, co jest w autobusie, i przekształcenie go z powrotem w poziom logiczny, aby odesłać z pinu RX do mikro.
źródło
Potrzebujesz procesora transceivera CAN między CPU a magistralą CAN. Sprawdź MCP2551.
Aktualizacja 17 sierpnia 2017 r .:
Jestem teraz na konferencji Microchip Masters. Inżynierowie Microchip powiedzieli mi wprost, że jedna z nowych części, które powstały w wyniku przejęcia Atmel, jest zarówno tańsza, jak i lepsza niż MCP2551.
źródło
Urządzenia analogowe mają przykładowy układ nadawczo-odbiorczy CAN wykorzystujący wzmacniacz różnicowy.
Nie próbowałem tego, po prostu jestem tego świadomy. Interesuje mnie również, czy można go zrealizować za pomocą wzmacniacza operacyjnego
Zalety korzystania z dedykowanego urządzenia nadawczo-odbiorczego IC CAN polega na tym, że zajmą się one arbitrażem za Ciebie i nie musisz się martwić o ingerencję w magistralę. Jeśli obserwujesz tylko magistralę i nie jest to środowisko krytyczne pod względem awarii, obwód może być w porządku. Chociaż mcp2551 jest bardzo popularny, istnieje wiele opcji układów scalonych.
Nowa ewolucja to układy typu System Base, które obejmują regulację napięcia, tryby zasilania i ochronę ESD przed magistralą.
Jak wspomniano powyżej timorr, LCP11C24 firmy NXP jest wyjątkowy, ponieważ procesor zawiera nadajnik-odbiornik CAN. Płyta demo z tym kosztuje tylko 19 USD. Innym niedrogim rozwiązaniem jest użycie płyty demo Cypress PSoC5 za 9,38 USD, CY8CKIT-059. PSoC5 nie ma kontrolera CAN; idzie o krok dalej: kontroler jest zaimplementowany w blokach uniwersalnych podobnych do FPGA. Rejestry kontrolera są konfigurowane za pomocą GUI IDE, dzięki czemu filtrowanie i prace badawczo-rozwojowe są bardzo łatwe.
Kluczową metodą, którą znalazłem podczas przeglądania kart danych, jest to, że mcu TTL jest oznaczony jako CAN-Tx i CAN-Rx, podczas gdy linie danych transiwerów do magistrali są zawsze oznaczone CAN-H i CAN-L. Nie podoba mi się diagramy w drugiej odpowiedzi, w której pokazano TxRx podłączone do magistrali; jest to sprzeczne z konwencją i przyczynia się do zamieszania.
źródło