會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





不知道如何學習CAN Bus
中級會員
註冊日期:
2014/09/29 12:04
所屬群組:
註冊會員
文章: 65
等級: 6; EXP: 95
HP : 0 / 148
MP : 21 / 1371
離線
Hi,各位好。小弟目前正在試著搞懂CAN Bus,但是感覺進入門檻好高,比I2C跟SMBus都要高太多。

我有試過看18C family manual跟PIC18F25K80裡面的CAN Bus,但老實說都看不太懂。

最近有找到一個比較能夠讓我上手的教材,是Microchip的線上研討會pdf檔。網址:http://www.microchip.com/stellent/gro ... ts/DeviceDoc/en558265.pdf

我看到裡面的第15頁,就開始看不懂了。
圖片裡面有兩個Node,每個Node有兩個訊號(TXCAN跟RXCAN)。內文說"This screen shot shows the communication between the transceiver and the CAN module which is going to be digital."

所以TXCAN跟RXCAN還要經過Transceiver才會把變成BUS上的CANH跟CANL?
也就是說PIC18F25K80還要先透過一顆Transceiver,才能連到Bus上嗎?那Transceiver的功用是什麼呢?

另外,CAN module which is going to be digital這句話是甚麼意思?翻成中文是"將要變成數位的CAN module",看不懂作者想要表示的意思。

內文接著說"So starting at the left of the screen shot we can see that both nodes started transmitting a 11bit CAN frame with the dominant SOF."
據我所知,dominant在ISO 11898-2的定義是CANH為5V,CANL為0V。但圖片中沒有CANH跟CANL,就算把TXCAN跟RXCAN當成H跟L好了,圖片中的波形也是錯的,因為波形都是在同一個準位,我沒有看到波形有電位差的存在。

想請問一下各位前輩,這張圖配合文字內容要怎麼去理解作者想要表達的訊息?謝謝。

附加檔案:



jpg  CAN.JPG (160.72 KB)
45509_59afbda8b64a3.jpg 1049X797 px

jpg  CAN2.JPG (165.22 KB)
45509_59afbdcabe128.jpg 1092X801 px

9月06日 17:20:15
轉換PDF檔 列印


Re: 不知道如何學習CAN Bus
新會員
註冊日期:
2014/02/27 22:57
所屬群組:
註冊會員
文章: 6
等級: 1; EXP: 47
HP : 0 / 11
MP : 2 / 128
離線
我來簡單回答一下:
1、所以TXCAN跟RXCAN還要經過Transceiver才會把變成BUS上的CANH跟CANL?
是的。一般所謂CAN bus的信號是差動式的,需要經Transceiver轉換。
2、原始的CAN Bus並沒有定義physical layer,只要滿足CSMA-CD的原則即可。因此常見的physical layer的CAN Bus transceiver,雖然如上述是差動式的信號,但是其實它的CANH和CANL都是open-collector的接線方式。因此,用open-collector來想像,相接的兩個open-collector線路,只要有一邊送low,另一邊就拉high不上去了。您看到的波形,其實是一邊送low,另一邊拉不上去的現象,所以看起來信號位準是一樣的。
3、CAN bus的底層還算蠻複雜的。不過,把Microchip的教材讀懂,大概就會了。但是,實際上在用的時候,還是要搭配內建或外接所謂的CAN Controller,來幫忙完成複雜且快速的底層動作。

9月07日 09:12:13
轉換PDF檔 列印


Re: 不知道如何學習CAN Bus
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14156
等級: 72; EXP: 52
HP : 1072 / 1788
MP : 4718 / 70878
離線
最快方式式到 Microchip 上課,原本台中 RTC 月底有一堂 CAN 的課,剛看一下以經額滿了。

09/22 CAN202C 使用dsPIC33EP512MU810的CAN Engine&DMA 完成CAN 的基本通信 (一天,MCHP/何仁杰)--報名額滿

CAN 完整的應用有七層,Microchip 所講的課是最底下的兩層: 物理層及通訊層。只要搞懂通訊層基本上 CAN 就可以相互通訊了。

你可以下載教育訓練的課程 "CAN202A CAN202B CAN Bus Workshop" 先自行研讀。

http://www.microchip.com.tw/Data_CD/
在 "特殊領域技術相關課程" 的項目裡可以下載此課程。

9月07日 09:53:50
轉換PDF檔 列印


Re: 不知道如何學習CAN Bus
新會員
註冊日期:
2016/12/09 18:44
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 1 / 7
離線
請問有CAN202C講義可以下載嗎

9月07日 22:47:21
_________________
Simplicity is the ultimate sophistication
轉換PDF檔 列印


Re: 不知道如何學習CAN Bus
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14156
等級: 72; EXP: 52
HP : 1072 / 1788
MP : 4718 / 70878
離線
目前沒有。

9月07日 23:44:50
轉換PDF檔 列印


Re: 不知道如何學習CAN Bus
資深會員
註冊日期:
2004/07/23 16:25
所屬群組:
註冊會員
文章: 1176
等級: 29; EXP: 94
HP : 0 / 723
MP : 392 / 28193
離線
硬體:直接買原廠demoboard 兩張

can devcie 一定要有兩個以上才會正常

信號發出一定要有其它的 can device 回應 ack,所以一定要有能正常運作的 can device

初學時,你一個 device 怎麼寫都不會正常,(沒回ack ,can bus 就不會正確傳完)


firmware:microchip 有完善的 教育訓練,去上課。

其它:盡量google ,多看多了解,不懂再來問吧


至於你抓的這張圖,是解釋兩個node 『同時』發出信號時,會發生什麼情況,

圖上是抓兩個NODE 的 TX / RX 給你看。至於 which is going to be digital 我不會翻~~


can bus 是如何判斷信號對或錯。

bus 有tx rx ,所以發出的信號,和rx 一比就知道發的對不對。

bus 拉low 之後,除非被釋放,否則沒人能拉HIGH ,系統就是用這樣的機制來判斷發送是否成功 及 priority 高低。

CAN BUS ID 越小,優先權越高~~ (ID 比較小,一拉LOW ,另一個 ID 較大的就會發現發送錯誤)


Transceiver 是做 信號傳遞、高壓突波等保護,將TX 的數位信號,轉成類比信號,從CAN HIGH/ CAN LOW輸出輸入,同時將 類比信號轉成數位信號從 RX 輸出。
如果沒 Transceiver,基本的信號碰撞問題,就無法解決,外部干擾也無法消除。

9月08日 10:37:45
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2017 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project