<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > can總線(xiàn)的示波器檢測方法

can總線(xiàn)的示波器檢測方法

作者: 時(shí)間:2016-12-13 來(lái)源:網(wǎng)絡(luò ) 收藏
整理自網(wǎng)絡(luò )::

stm32的can總線(xiàn)是在A(yíng)PB1上的,stm32f10x的主頻是72Mhz,can外設時(shí)鐘是36Mhz,stm32f2xx的主頻是120Mhz,can外設時(shí)鐘是30Mhz。。。

本文引用地址:http://dyxdggzs.com/article/201612/329221.htm

STM32 APB1和APB2區別:

APB2負責AD,I/O,高級TIM,串口1。

APB1負責DA,USB,SPI,I2C,CAN,串口2345,普通TIM

can總線(xiàn)電氣特性

做一想要從車(chē)上測出can總線(xiàn)上的數據還不太容易。

于是我首先使用示波器(我使用的示波器型號是TDS 220)來(lái)找出汽車(chē)上can總線(xiàn)的接口,然后測出can總線(xiàn)的波特率,測量波特率的步驟如下:

1、將示波器的兩個(gè)接口(接地和探頭)分別接在can總線(xiàn)的兩條線(xiàn)(CAN_H和CAN_L)上,
這里需要注意如果CAN線(xiàn)上需要接一個(gè)120歐姆的負載電阻,否則波形是不規整方波,
接上負載之后才是規整的方波。

2、此時(shí)如果can線(xiàn)上有數據,則會(huì )在示波器上顯示出方波如圖1所示。(這里使用示波器的RUN/STOP按鈕捕捉波形)

圖1

2、但是此時(shí)因為示波器顯示的數據太多還無(wú)法讀取單個(gè)脈沖的周期,
所以需要調節示波器的X軸的每格所代表的周期(調節SEC/DIV旋鈕)
然后使用RUN/STOP按鈕重新捕捉波形得到圖2所示的波形,

圖2

3、最后將圖2中寬度較小的脈沖再次放大(調節SEC/DIV)直到圖3所示,這時(shí)每格代表1us
可以看到這個(gè)脈沖跨度為8us

圖3

所以最終得到該can總線(xiàn)的波特率為1s/8us=125K

在車(chē)輛電子網(wǎng)絡(luò )中,CAN總線(xiàn)是一個(gè)重要的協(xié)議。它具有一個(gè)高達1兆bit的比特率, 并提供簡(jiǎn)單的微處理器網(wǎng)絡(luò ),這需要用到一種被稱(chēng)為CAN控制器的專(zhuān)用CAN總線(xiàn)芯片叫做CAN控制器。

CAN的數據傳輸報文就是數據幀。數據幀允許有一個(gè)比較長(cháng)的ID,所以稱(chēng)為可擴展幀。

適用于某些應用中的,但不是用于汽車(chē)中的是遠程幀。遠程幀允許一個(gè)節點(diǎn)響應一個(gè)特定的ID。

CAN功能是非常齊全的。這意味著(zhù)它不僅僅發(fā)現很多的錯誤,同時(shí)能夠實(shí)現自動(dòng)化傳輸或者節點(diǎn)自動(dòng)關(guān)閉。

CAN使用比特流來(lái)通過(guò)接收器到發(fā)射器。為了適合于特定的位次序,CAN必須使用位填充。位填充在傳統示波器上對CAN波形進(jìn)行解碼很困難。

CAN是一個(gè)數據鏈接層。有三種正在使用的物理層來(lái)對CAN進(jìn)行信號的電動(dòng)發(fā)射。

在使用CAN總線(xiàn)的某些地方,可能用FlexRay或者LIN更合適。

CAN總線(xiàn)的詳細說(shuō)明書(shū):can2spec.pdf


一個(gè)CAN總線(xiàn)的數據幀

CAN總線(xiàn)數據幀

CAN總線(xiàn)數據幀在CAN上運作。CAN的整個(gè)過(guò)程實(shí)質(zhì)上是在網(wǎng)絡(luò )控制器之間發(fā)送數據,這就需要數據幀來(lái)實(shí)現這個(gè)功能了。

數據幀是以一個(gè)單一的SOF(起始幀)位開(kāi)始的,跟著(zhù)就是CAN標識符。CAN標識符是用來(lái)標識報文和接下來(lái)的節點(diǎn)報文。標識符可以有11位長(cháng)或者是29位長(cháng),這主要是根據保留位的狀態(tài)來(lái)決定。


CAN數據幀以一個(gè)SOF位開(kāi)始,跟著(zhù)就是ID位

在CAN標識符之后,有一個(gè)數據段,數據段是以一個(gè)數據長(cháng)度開(kāi)始的。CAN數據幀能夠有0到8個(gè)字節,這樣它使用4位的編碼長(cháng)度。數據字節直接跟著(zhù)數據長(cháng)度。


在CAN幀中數據字節跟著(zhù)數據長(cháng)度(DLC)

跟在數據之后是CRC。CRC是基于CAN幀的第一部分在接收器和發(fā)射器中進(jìn)行計算的。如果計算出來(lái)的結果與接收器呈現的結果相匹配,則說(shuō)明正確接收數據。


CAN 的CRC檢查數據的完整性,同時(shí)ack表示從另一個(gè)節點(diǎn)接收

跟著(zhù)CRC的是Ack 場(chǎng),這個(gè)場(chǎng)是在所有的其他的正確接收幀的網(wǎng)絡(luò )節點(diǎn)上進(jìn)行設置的。
Ack位后,有一段靜態(tài)時(shí)間,它稱(chēng)為緊跟著(zhù)一個(gè)最小的內插幀空間的幀空間結束符。

一個(gè)CAN數據幀圖片

擴展數據幀

可擴展標識符CAN 幀使用29位用于辨識目的,而不是標準的CAN幀的11位。由于這個(gè)額外的ID空間增加了20位(18個(gè)ID和兩個(gè)保留位),它通常不使用于希望得到最高性能的網(wǎng)絡(luò )當中。

在J1939和GMLAN協(xié)議中,較大的ID分為不同的部分,每一個(gè)部分都有它的意義。比如,對于J1939和GMLAN的最低的8個(gè)ID位表明了一個(gè)字節的源地址。


單線(xiàn)CAN擴展ID是有29位長(cháng)(還沒(méi)有算入緩沖位)。許多系統設計者不使用這個(gè)ID長(cháng)度,
因為它要求比較高的費用

CAN總線(xiàn)遠程數據幀

CAN總線(xiàn)遠程幀是可選幀,它用于請求數據。遠程幀沒(méi)有包含數據段,即使數據長(cháng)碼位大于0。你能夠從RTR位的狀態(tài)來(lái)判決一個(gè)幀是否是遠程幀(RTR=1)。遠程幀通常不使用在汽車(chē)的應用當中。


在這個(gè)CAN L波形中顯示了一個(gè)遠程幀

CAN總線(xiàn)錯誤

請看圖片 >

CAN總線(xiàn)位填充

CAN波形是一系列的位。由于在CAN總線(xiàn)節點(diǎn)之間沒(méi)有共享時(shí)鐘,那么對于所有的節點(diǎn)則一定有方法從波形中得到時(shí)鐘信息。因此接收器使用CAN波形轉換來(lái)使得發(fā)射器與接收器實(shí)現同步時(shí)鐘。

為了確保有足夠的轉換,CAN總線(xiàn)執行位填充功能。位填充在連續5個(gè)相同的位之后,插入一個(gè)額外的碼流的相反位。由于填充位的出現要根據消息序列的容量,CAN幀的長(cháng)度要根據在幀里面的數據位進(jìn)行改變。這些額外的填充位自動(dòng)被接收器丟掉,因此在CAN節點(diǎn)的應用軟件中就從來(lái)不會(huì )接觸到這些填充位了。


填充位,用黃色突出,增加消耗在一個(gè)CAN報文中。這個(gè)報文有13個(gè)額外的填充位

CAN總線(xiàn)物理層

CAN協(xié)議介紹了1s和0s是如何使用在通訊當中的。CAN協(xié)議沒(méi)有介紹發(fā)射1s和0s信號的電氣方法。

最普遍流行的物理層被稱(chēng)為雙線(xiàn)物理層。這個(gè)物理層使用雙線(xiàn)CAN H和CAN L。這些線(xiàn)在不同的電壓方向(對應著(zhù)不同的信號傳輸)上傳送1或者0。

對于特定的汽車(chē)低速應用,介紹兩個(gè)其他的物理層。它們是單線(xiàn)CAN和低速容錯CAN。如果有一條線(xiàn)路斷了。低速容錯CAN總線(xiàn)將會(huì )提供容錯信息。

單線(xiàn)CAN

單線(xiàn)CAN是一個(gè)物理層,它是由普通的發(fā)動(dòng)機生成的。它允許CAN使用一條單線(xiàn)在低比特率(如33.3Kbps)的情況之下進(jìn)行通訊。同時(shí)對于閃存編程允許一個(gè)高速模式。最后,雖然很多CAN收發(fā)器僅僅提供了1或者0,但是單線(xiàn)仍能夠提供一個(gè)被稱(chēng)為高壓模式的第三狀態(tài)。這種模式能夠使得CAN節點(diǎn)的電源管理有選擇性。


這是兩個(gè)不同的單線(xiàn)CAN幀。一個(gè)在高電壓模式下發(fā)送,另一個(gè)為正常電壓

??


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>