基于AVRçš„CAN總線通信å”(xié)è°åˆ†æžæŠ€è¡“(shù)
時(shÃ)間:2008-12-15 15:55:31來(lái)æºï¼šdujing
å°Ž(dÇŽo)語(yÇ”):?介紹了一種基于AVR單片機(jÄ«)çš„CAN總線通信å”(xié)è°åˆ†æžæŠ€è¡“(shù).采用é‚輯分æžå„€å…ˆåˆ†æž CAN總線上主機(jÄ«)å°(duì)å„節(jié)點(diÇŽn)進(jìn)行控制所產(chÇŽn)生的ä¸åŒå•(wèn)ç”æ•¸(shù)據(jù)çš„å«ç¾©
摘 è¦ ä»‹ç´¹äº†ä¸€ç¨®åŸºäºŽAVR單片機(jÄ«)çš„CAN總線通信å”(xié)è°åˆ†æžæŠ€è¡“(shù).采用é‚輯分æžå„€å…ˆåˆ†æž CAN總線上主機(jÄ«)å°(duì)å„節(jié)點(diÇŽn)進(jìn)行控制所產(chÇŽn)生的ä¸åŒå•(wèn)ç”æ•¸(shù)據(jù)çš„å«ç¾©ï¼Žå†ä½¿ç”¨ AVR單片機(jÄ«) ATmega168L控制ç¨(dú)ç«‹çš„ CAN控制器 MCP2510å°(duì) CANç¸½ç·šä¸Šçš„å ±(bà o)文進(jìn)行監(jiÄn)è½(tÄ«ng),并通éŽ(guò)ä¸Šä½æ©Ÿ(jÄ«)傳輸給 Pc機(jÄ«)顯示.çµ(jié)åˆ CAN總線è¦(guÄ«)范åŠå…ˆå‰åˆ†æžçš„å•(wèn)ç”æ•¸(shù)據(jù)的定義,通éŽ(guò) Pc機(jÄ«)上顯示的 å ±(bà o)æ–‡å°(duì)å”(xié)è°é€²(jìn)行完整的分æžï¼Ž
é—œ(guÄn)éµè©ž CAN總線;AVRï¼›ä¸Šä½æ©Ÿ(jÄ«) SPI
1 CAN總線è¦(guÄ«)范概述
CAN(controller area networkï¼‰ï¼Œå³æŽ§åˆ¶å™¨å±€åŸŸç¶²(wÇŽng),是一種串行通信å”(xié)è°ï¼Œå…·æœ‰è¼ƒé«˜çš„安全性能åŠéŒ¯(cuò)誤處ç†èƒ½åŠ›ï¼Žä½œç‚ºä¸€ç¨®å¯é ,高效åŠç¶“(jÄ«ng)濟(jì)的平臺(tái),CAN總線憑借諸多優(yÅu)點(diÇŽn)廣泛應(yÄ«ng)用于汽車系統(tÇ’ng)ã€æ©Ÿ(jÄ«)械è¨(shè)å‚™ã€å·¥æ¥(yè)控制ç‰åˆ†å¸ƒå¯¦(shÃ)時(shÃ)系統(tÇ’ng)ä¸ï¼Œå–代了傳統(tÇ’ng)控制系統(tÇ’ng)ä¸å¾©(fù)雜的接線é…線.æˆç‚ºç›®å‰å»£æ³›ä½¿ç”¨çš„ç¾(xià n)å ´(chÇŽng) 總線之一.但是,國(guó)å…§(nèi)ä¸€äº›å» å®¶åœ¨é–‹(kÄi)發(fÄ)ç¶²(wÇŽng)絡(luò)產(chÇŽn)哿™‚(shÃ)ç¼ºä¹ CAN總線標(biÄo)準(zhÇ”n)化的指導(dÇŽo),導(dÇŽo)致ä¸åŒç¶²(wÇŽng)絡(luò)產(chÇŽn)å“互ä¸å…¼å®¹ï¼Œå‰Šå¼±äº†ä¸åŒç”¢(chÇŽn)å“之間的互æ“作性¨J.特別是在 CAN總線的應(yÄ«ng)用最為廣泛汽車行æ¥(yè),由于ä¸åŒæ±½è»Šç”Ÿç”¢(chÇŽn)å» å®¶å°(duì)產(chÇŽn)å“çš„CAN總線上數(shù)據(jù)å«ç¾©çš„定義å„ä¸ç›¸åŒä¸”ä¸å°(duì)外公開(kÄi),使得å°(duì)ä¸åŒæ±½è»Šçš„æ€§èƒ½é€²(jìn)è¡Œè¨ºæ–·è®Šå¾—ç•°å¸¸å›°é›£ï¼Žå› æ¤å°(duì) CAN總線通信å”(xié)è°é€²(jìn)行分æžå°¤ç‚ºé‡è¦ï¼Ž
ç›®å‰æ‰€ä½¿ç”¨çš„CAN總線è¦(guÄ«)范V2.0版本主è¦ç”±A,B兩部分組æˆï¼ŽA部分å³CANè¦(guÄ«)范VI.2版本,其采用的地å€èŒƒåœç”± 11個(gè)è˜(shÃ)別ä½å®šç¾©ï¼Œå³æ¨™(biÄo)準(zhÇ”n)æ ¼å¼ï¼Œ B部分包括標(biÄo)準(zhÇ”n)æ ¼å¼å’Œæ“´(kuò)å±•æ ¼å¼ï¼ŒåŽè€…為應(yÄ«ng)å°(duì)地å€èŒƒåœæ“´(kuò)大而制定的29個(gè)è˜(shÃ)åˆ¥ä½æ ¼å¼ï¼Žæ¨™(biÄo)準(zhÇ”n)æ ¼å¼èˆ‡æ“´(kuò)å±•æ ¼å¼çš„å€(qÅ«)別在于擴(kuò)å±•æ ¼å¼ä½¿ç”¨äº† CAN1.2版本ä¸çš„第一個(gè)ä¿ç•™ä½ï¼Œå› 而擴(kuò)å±•æ ¼å¼ä»æ˜¯æœ‰æ•ˆçš„.為了兼容 CAN2.0,è¦(guÄ«)定 CANè¨(shè)備應(yÄ«ng)采用 CAN2.0ä¸çš„A或 B部分 引.
2 CAN總線通信å”(xié)è°åˆ†æž
2.1 å”(xié)è°åˆ†æžåŽŸç†
CAN總線被細(xì)分為三個(gè)ä¸ åŒçš„層次:å°(duì)象層 (object layer)ã€å‚³è¼¸å±¤ï¼ˆtransfer layer)和物ç†å±¤ï¼ˆphy— ical layer).å°(duì)象層和傳輸層相當(dÄng)于 ISOï¼OSI模型定義的數(shù)據(jù)éˆè·¯å±¤ï¼Žå°(duì)象層的作用包括:查找被發(fÄ)é€çš„å ±(bà o)文;確定由實(shÃ)éš›è¦ä½¿ç”¨çš„傳輸層接收哪一個(gè)撤文;為應(yÄ«ng)用層相關(guÄn)硬件æä¾›æŽ¥å£ï¼Žé€™é‡Œçš„定義å°(duì)象處ç†è¼ƒç‚ºéˆæ´»ï¼Žå‚³è¼¸å±¤çš„ä½œç”¨ä¸»è¦æ˜¯å‚³é€è¦(guÄ«)則,也就是控制幀çµ(jié)æ§‹(gòu)ã€åŸ·(zhÃ)行仲è£ã€éŒ¯(cuò)誤檢測(cè)ã€å‡ºéŒ¯(cuò)標(biÄo)å®šã€æ•…障界定.總線上什么時(shÃ)候開(kÄi)始發(fÄ)逿–°å ±(bà o)æ–‡åŠä»€ä¹ˆæ™‚(shÃ)候 é–‹(kÄi)始接收?qÇng)?bà o)文,å‡åœ¨å‚³è¼¸å±¤é‡Œç¢ºå®šï¼Žæ‰€ä»¥å‚³è¼¸å±¤çš„ä¿® 改是å—到é™åˆ¶çš„.物ç†å±¤çš„作用是在ä¸åŒç¯€(jié)點(diÇŽn)ä¹‹é–“æ ¹æ“š(jù)其電氣屬性進(jìn)行ä½ä¿¡æ¯çš„實(shÃ)éš›å‚³è¼¸ï¼Žåœ¨é¸æ“‡ç‰©ç†å±¤æ–¹é¢æ¯”較自由 J.
å°(duì)CAN總線的å”(xié)è°åˆ†æžä¸»è¦æœ‰ä»¥ä¸‹ä¸‰å€‹(gè)æ¥é©Ÿï¼š
1)使用é‚輯分æžå„€å°(duì)特定網(wÇŽng)絡(luò)產(chÇŽn)å“çš„ CAN總線上主機(jÄ«)å°(duì)å„節(jié)點(diÇŽn)控制所產(chÇŽn)生的å•(wèn)ç”æ•¸(shù)據(jù)進(jìn)行分æžï¼Žå¾žä¸å¯ä»¥ç²å¾—主機(jÄ«)與節(jié)點(diÇŽn)ä¹‹é–“é€šä¿¡çš„æ³¢ç‰¹çŽ‡ï¼ŒåŠæ•¸(shù)據(jù)所表示的å«ç¾©ï¼Žå¦‚在汽車系統(tÇ’ng)ä¸ï¼Œé‚£å€‹(gè)數(shù)據(jù)表示引擎,那個(gè)數(shù)據(jù)表示出ç¾(xià n)æ•…éšœç‰ï¼Ž
2)è¨(shè)計(jì)出基于AVR的單片機(jÄ«)系統(tÇ’ng).AVR單片機(jÄ«)å°(duì) CANç¸½ç·šä¸Šçš„å ±(bà o)文進(jìn)行監(jiÄn)è½(tÄ«ng).并通éŽ(guò)ä¸Šä½æ©Ÿ(jÄ«)é€ Pc機(jÄ«)顯示.ç²å–主機(jÄ«)與å„節(jié)點(diÇŽn)的所有å•(wèn)ç”æ•¸(shù)據(jù).
3)å°(duì)ç²å–çš„å•(wèn)ç”æ•¸(shù)據(jù)æ ¹æ“š(jù) CAN總線è¦(guÄ«)范åŠå…ˆå‰ç”¨é‚輯分æžå„€æ‰€ç²å–的數(shù)據(jù)å«ç¾©è¡¨é€²(jìn)行完整分æžè©²ç³»çµ±(tÇ’ng)çš„ CAN總線å”(xié)è°ï¼Ž
全文
基于AVRçš„CAN總線通信å”(xié)è°åˆ†æžæŠ€è¡“(shù).pdf