<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è) > 嵌入式系統 > 設計應用 > 基于K線(xiàn)/CAN總線(xiàn)的KWP2000協(xié)議分析及協(xié)議棧的開(kāi)發(fā)測試

基于K線(xiàn)/CAN總線(xiàn)的KWP2000協(xié)議分析及協(xié)議棧的開(kāi)發(fā)測試

作者: 時(shí)間:2014-03-19 來(lái)源:網(wǎng)絡(luò ) 收藏


33.jpg

圖3 基于的KWP2000診斷服務(wù)流程圖

從上面的服務(wù)流程可以看出,基于支持多包數據傳輸,并且多包數據的管理和組織是在網(wǎng)絡(luò )層完成的,應用層不必關(guān)心數據的打包和解包過(guò)程。為實(shí)現這一功能,網(wǎng)絡(luò )層定義了四種PDU(以PCI類(lèi)型進(jìn)行區分,如表5所示):

單幀(Single Frame,SF) - 數據域及PCI可在一個(gè)CAN數據幀中容納時(shí),服務(wù)報文以單幀CAN報文進(jìn)行發(fā)送。

第一幀(First Frame,FF) -數據域及PCI不能在一個(gè)CAN數據幀中容納時(shí),服務(wù)報文以多幀CAN報文進(jìn)行發(fā)送,其中第一幀(FF)除傳送數據外,還包含了多包數據的長(cháng)度信息。

連續幀(Consecutive Frame,CF) - 多包數據中除第一幀外的連續數據幀,除傳送數據外,還包含了多包數據的包序號。

流控制幀(Flow Control,FC) -用于多包數據傳輸過(guò)程中的流控制,不包含數據,只包含流控制狀態(tài)、數據塊大小和最小間隔時(shí)間等流控制信息。

5.jpg

表5 15765協(xié)議網(wǎng)絡(luò )層四種PDU對應的PCI格式[7]

1) 單幀數據中數據域的字節長(cháng)度,PCI的長(cháng)度不包括在內。

2) 多包數據的數據域字節總長(cháng)度。

3) 多包數據的數據包編號。

4) 流控制狀態(tài)信息。

5) 數據塊大小。

6) 多包數據傳輸的最小時(shí)間間隔。

多包數據的傳輸流程如圖4所示。發(fā)送節點(diǎn)首先發(fā)送“第一幀”,告知接收節點(diǎn)將要發(fā)送的數據的總長(cháng)度;接收節點(diǎn)分配好資源、準備接收數據,然后以一幀“流控制幀”告知發(fā)送節點(diǎn)一次可以發(fā)送的數據包數目和時(shí)間間隔;發(fā)送節點(diǎn)接下來(lái)就根據接收節點(diǎn)的接收能力將編好序號的數據包依次發(fā)送過(guò)去。

44.jpg

圖4 多包數據傳輸流程圖

在數據傳送過(guò)程中,一個(gè)網(wǎng)絡(luò )層PDU被編排成一個(gè)CAN數據幀,它們之間的對應關(guān)系由尋址模式(Addressing mode)決定?;贗SO 15765協(xié)議規定了四種尋址模式:正常尋址模式(Normal)、正常固定尋址模式(Normal fixed)、擴展尋址模式(Extended)和用于遠程診斷的混合尋址模式(Mixed)。其中,正常固定尋址模式必須采用CAN擴展幀,并且SAE J1939為該尋址模式下的KWP2000診斷服務(wù)保留了兩個(gè)專(zhuān)用參數組編號(PGN):其中PF=218(PF的具體定義請參考SAE J1939數據鏈路層協(xié)議)的參數組用于物理尋址(phy),PF=219的參數組用于功能尋址(fcn)。正常固定尋址模式的PDU與CAN數據幀之間的對應關(guān)系如表6所示。

6.jpg

表6 正常固定尋址模式下N_PDU與CAN數據幀之間的對應關(guān)系[7]

混合尋址模式與正常固定尋址模式類(lèi)似,唯一的區別是CAN數據域的第一個(gè)字節用于填充遠程地址(RA),N_PCI和診斷服務(wù)數據的填充位置向后移動(dòng)一個(gè)字節?;旌蠈ぶ纺J接糜诳缭骄W(wǎng)段進(jìn)行遠程診斷,遠程診斷的機制如圖5所示。圖中CAN1和CAN2兩個(gè)不同的子網(wǎng)通過(guò)網(wǎng)橋相連,網(wǎng)橋在子網(wǎng)1中的源地址為200,在子網(wǎng)2中的源地址為10,位于子網(wǎng)1中的診斷設備(源地址為241)可通過(guò)網(wǎng)橋對子網(wǎng)2中的ECU(源地址為62)進(jìn)行診斷。

55.jpg

圖5 跨越網(wǎng)段的遠程診斷

4 兩種協(xié)議的簡(jiǎn)單比較

從前面基于和基于可以看出,兩種協(xié)議在物理層、數據鏈路層及網(wǎng)絡(luò )層(15765)上存在以下主要差別,這也是被CAN總線(xiàn)取而代之的主要原因所在:

通訊速率較低,最大波特率僅為10400bps;CAN總線(xiàn)通訊速率較高,最大波特率可達1Mbps。

K線(xiàn)采用單端信號傳輸,抗干擾能力較弱,可靠性較差;CAN總線(xiàn)采用差分信號傳輸,抗干擾能力強,信號傳輸的可靠性高。

K線(xiàn)診斷在啟動(dòng)應用層診斷服務(wù)之前必須對ECU進(jìn)行初始化建立連接,并且初始化過(guò)程比較復雜;而基于CAN總線(xiàn)的診斷設備不需要對ECU進(jìn)行初始化即可進(jìn)行診斷服務(wù)。

K線(xiàn)診斷應用程序開(kāi)發(fā)者必須親自管理數據傳輸過(guò)程中的字節間定時(shí),并處理底層通訊錯誤;CAN數據幀以整幀報文的形式進(jìn)行發(fā)送,應用程序開(kāi)發(fā)者不必管理字節間定時(shí),并且CAN總線(xiàn)物理層和數據鏈路層具備完善的錯誤檢測和錯誤恢復機制,應用程序不必監視和處理底層通訊錯誤。



評論


相關(guān)推薦

技術(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>