Dobrý den,
potřeboval bych radu. Nevím zda jsem ve správné rubrice. Mám modul GPS. Tento modul má čtyři IO porty (+5V,GND,Rx,Tx). Potřebuji ho připojit na CAN sběrnici. Mohl by mě někdo poradit co vše budu potřebovat.
Děkuji za info a ochotu
Ahoj
Je to o tom, že jsi zatím poskytnul jenom málo informací. Standardů CAN je více typů a trochu se od sebe liší. Existují i speciální integrovaná HW řešení, ale jsou spíše nedostupná. Proto je nejschůdnějším řešením použít mikrokontrolér s integrovaným modulem CAN a transceiver jako budič sběrnice. Do procesoru si zatáhneš přes UART Tvojí GPS a pak to vysypeš do CAN busu. Ovšem to není jen tak jednoduché, proto je nutné mít odpovídající informace. A je určitě nutno začít tím, zda budeš dělat jak SW, tak HW řešení.
A to co bude posielat MCU na CAN bus zalezi od toho, do akeho auta to pojde a ake PID su na CAN buse vyhradene pre GPS (vychadzam z toho, ze chces do auta dorobit GPS, ktore nemas vo vybave, ale inak je auto nachystane na pripojenie modulu).
Děkuji za reakce. Do auta to nemám. Potřebuji získat data z GPS modulu , který jen vysílá data do řídící jednotky. Komunikaci CAN mám typu CanOpen. Použití mcu jsem si myslel, jen jsem chtěl vědět jestli někdo nezná lepší způsob.
No tak to je jina. Ja bych to udelal bud s nejakym mcu bez can periferie a pouzil externi can ioic napr. MCP2515 nebo nejakej malej ARM treba STM32F042 s can na cipu. Rozparsovat NMEA a vejde se ti to jednoho PDO jako 2x float. Neni co resit
Když použiješ ATtiny2313 + MCP2515, tak Tě to vyjde prakticky na stejný peníze, ale aspoň jsou k dispozici. STM32F042 není skladem (i když - koukal jsem jen do TME, takže jinde možná bude). A ATtiny2313 má HW UART pro GPS čip i HW SPI pro MCP2515, takže to bude zvládat levou zadní taky.
Prudíš správně. Do ATTINY2313 nevleze “normální” CANbus.
Lze tam však naprogramovat něco jako micro verzi,
kdy odesílá jen jednu (nebo dvě) konkrétní sekvence,
popřípadě příjem jedné (nebo dvou) konkrétních sekvencí.
Občas to postačí.
Ta 2313 byl příklad. HW výbavu na to má. A pokud je někomu málo 2kB Flash a 128 bytů SRAM, tak za stejnou cenu (jen větší pouzdro) je ATmega8, která má 8kB Flash a 1kB SRAM. Jenom o pár korun dražších je ATmega16 (16kB Flash, 1kB SRAM). To už by snad na obyčejný CAN bus mělo stačit každýmu.
Já tím chtěl jenom naznačit, že realizovat tento záměr lze i jinak, než ARMem. Ne každý má programátor schopný ARMa naprogramovat (pro AVRko je programátorů nespočet). Všeobecně jsou informace a vše kolem AVR a PIC procesorů daleko dostupnější, než kolem ARMů… Ale tohle tady není o dohadování o procesorech, tak bych toho nechal, ať to tu nezaplevelíme a rozhodnutí o volbě procesoru bych nechal zcela na tazateli. Jinak si nemyslím, že 2kB Flash by bylo nějak málo. Spíš si myslím, že je limitující těch 128 byte SRAM. Při rychlostech používaných na CAN bus není rychlost MCU nějak kritická - i když High-speed CAN s 1 MBitem už procesor zvládne prohnat.
Neni to o procesoru a jeho rychlosti, ale pokud bude mít jako protihráče pedantský PLC který nic neodpustí (jednou jsem to zažil) tak si nastuduj kolik toho obnáší CAN_OPEN_minimum a zjistíš, že si s malým procesorem (malá flesh, malá ram) ani neškrtneš, nic vic, nic míň. Víc k tomu taky nemám.
v nouzi stačí MCP2551 nebo 82C250 nebo 82C251 a něco se sériovou linkou.
Také Dallas dělal hotové moduly s DS80C400 (tzv. Tiny), které měly CAN bus, Ethernet a sériovou linku. Programovaly se v Javě.
Je mnoho řešení a netřeba hned ARM.
Mr. Hopkins zřejmě nikdy nic s CAN bus nedělal, protože by jinak věděl, že MCP2551/82C250/82C251 jsou jen převodníky na fyzickou vrstvu a pokud procesor na sobě nemá can kontrolér jako například zmíněná DS80C400, tak pouhá “sériová linka” nestačí. Dále by si porovnal složitost použití procesoru co ani nemá na sobě vlastní flash, zato bohatou a jistě skvěle zdokumentovanou rom s knihovními funkcemi od výrobce, se zapojením jednoho malého ARM M0 (za asi 40Kč) dohromady s onou 82C250 a pravděpodobně by nenapsal to co napsal…
To Radius: Mr. Hopkins ještě nikdy nikomu neporadil, ale zato umí skvěle rýpat a vytahovat se, jak by to či ono postavil lépe, rychleji, jednodušeji … Konkrétního zatím nepředvedl vůbec nic.