概述
列控中心(TCC)與ZPW-2000系列軌道電路接口采用CAN總線通信,連接TCC和軌道電路通信接口單元。
TCC向ZPW-2000系列軌道電路發(fā)送載頻和低頻編碼等信息,ZPW-2000系列軌道電路向TCC發(fā)送軌道區(qū)段狀態(tài)等信息。
通過(guò)該接口實(shí)現(xiàn)軌道編碼控制和軌道占用狀態(tài)獲取。
總線特點(diǎn)
TCC通過(guò)CAN總線與軌道電路通信接口單元(以下簡(jiǎn)稱通信接口單元)連接。通信接口單元成對(duì)冗余配置,每對(duì)通信接口單元對(duì)應(yīng)最多控制10個(gè)軌道電路區(qū)段。
01
遵從CAN2.0B協(xié)議標(biāo)準(zhǔn)
CAN(Controller Area Network)是一種用于實(shí)時(shí)控制系統(tǒng)中通信的串行通信總線協(xié)議,由德國(guó)BOSCH公司于1986年開發(fā)。CAN總線協(xié)議廣泛應(yīng)用于汽車、工業(yè)自動(dòng)化、醫(yī)療設(shè)備等領(lǐng)域。
CAN2.0B是CAN協(xié)議的一種擴(kuò)展協(xié)議,也稱為CAN 2.0(Bosch)協(xié)議。
02
使用擴(kuò)展結(jié)構(gòu)格式
CAN2.0B協(xié)議標(biāo)準(zhǔn)支持兩種幀格式:標(biāo)準(zhǔn)幀格式(11位標(biāo)識(shí)符)和擴(kuò)展幀格式(29位標(biāo)識(shí)符)。
TCC與軌道電路通信接口單元采用擴(kuò)展幀格式進(jìn)行通信。對(duì)比實(shí)際擴(kuò)展幀格式和協(xié)議描述:
其中FF可以理解為識(shí)別符擴(kuò)展位,即標(biāo)準(zhǔn)幀為顯性"0",擴(kuò)展幀為隱性“1”。
RTR為遠(yuǎn)程標(biāo)志位,遠(yuǎn)程幀為隱性“1”,數(shù)據(jù)幀為顯性“0”。
DLC為數(shù)據(jù)長(zhǎng)度,使用4位二進(jìn)制描述0-8個(gè)字節(jié)長(zhǎng)度。
其余內(nèi)容均根據(jù)實(shí)際應(yīng)用特征定義。
03
通信拓?fù)浣Y(jié)構(gòu)為總線型
總線通信采用分時(shí)間片,主從式同步傳送方式,只允許由主節(jié)點(diǎn)到從節(jié)點(diǎn)或從節(jié)點(diǎn)到主節(jié)點(diǎn),不允許從節(jié)點(diǎn)之間互相傳送信息。
我們知道CAN協(xié)議標(biāo)準(zhǔn)的一個(gè)優(yōu)勢(shì)就是仲裁機(jī)制,即數(shù)據(jù)以電平形式在CAN總線傳輸過(guò)程中,按位優(yōu)先顯示顯性(低電平“0”)然后再顯示隱形(高電平“1”),那么為什么還要采用分時(shí)間片的方式進(jìn)行數(shù)據(jù)傳遞呢?
實(shí)際上仲裁機(jī)制確實(shí)可以實(shí)現(xiàn)1個(gè)主節(jié)點(diǎn)(TCC)和n個(gè)從節(jié)點(diǎn)(通信接口單元)通信方式,但是除通信鏈路兩端收發(fā)節(jié)點(diǎn)外,會(huì)引入其他節(jié)點(diǎn)參與仲裁判斷,無(wú)形中增加了鏈路故障點(diǎn)。除此外,仲裁產(chǎn)生的數(shù)據(jù)通信延時(shí)也是很難控制的,會(huì)使得通信數(shù)據(jù)過(guò)程難以追蹤,不便于總線調(diào)試和維護(hù)。
04
通信速率為1Mbit/s
CAN2.0B協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)傳輸速率可以達(dá)到1Mbps,高于CAN2.0A協(xié)議的500Kbps。
05
軌道電路通信接口單元地址分配
這里的地址(ADR)是指,軌道電路通信接口單元識(shí)別的GPIO硬線信號(hào)。
相同的通信接口單元通過(guò)讀取不同的硬線地址信號(hào),確定發(fā)送CAN通信數(shù)據(jù)中的地址內(nèi)容。
06
地址碼和屏蔽碼
CAN總線通信中主節(jié)點(diǎn)和從節(jié)點(diǎn)采用1對(duì)多方式,而從節(jié)點(diǎn)之間是不允許相互傳送信息的。那么總線節(jié)點(diǎn)就需要有一種能夠過(guò)濾總線無(wú)效信息,只接收所需信息的方法。
是不是可以通過(guò)在應(yīng)用程序中對(duì)接收到的信息進(jìn)行識(shí)別,只保留需要的信息呢?
這樣是不行的,當(dāng)總線數(shù)據(jù)較少,且通信周期充裕時(shí),或許可以嘗試。但當(dāng)總線數(shù)據(jù)周期占用率很高,而單節(jié)點(diǎn)所需數(shù)據(jù)在周期內(nèi)占比又很低的情況時(shí)。通過(guò)應(yīng)用來(lái)處理大量的無(wú)用數(shù)據(jù)就會(huì)使系統(tǒng)運(yùn)行非常低效,而且會(huì)占用很多的軟件中斷資源,所以在處理CAN數(shù)據(jù)時(shí)很少使用這種方式。
而采用CAN控制器中的屏蔽寄存器設(shè)置同樣可以實(shí)現(xiàn)過(guò)濾效果,而且通過(guò)硬件實(shí)現(xiàn)過(guò)濾,能夠使處理過(guò)程更加高效。
ACR寄存器是用于實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)屏蔽設(shè)置,AMR寄存器是用于實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)屏蔽。
CAN節(jié)點(diǎn)在設(shè)置ACR值和AMR值之后,當(dāng)AMR值對(duì)應(yīng)位為“0”時(shí),該節(jié)點(diǎn)只能接收與ACR該位的值相同的地址,而當(dāng)AMR值對(duì)應(yīng)位為“1”時(shí),該節(jié)點(diǎn)將屏蔽ACR該位值,即該位可以是“0”或“1”的地址。
例如:列控1系CPU1的ACR值0x8000 FFFF,AMR值0x7FFF 0000,那么列控1系CPU1可以接收地址ID1、ID2為0b1*** **** **** ****的所有數(shù)據(jù)。
通信接口單元 0 槽號(hào) 0 CPU1的ACR1值0b0001 0111,AMR1值0b0110 1000,那么該CPU只能接收地址ID2為0b0**1 *111的數(shù)據(jù)。
07
數(shù)據(jù)幀類型
TCC與通信接口單元的數(shù)據(jù)幀類型總共有三種:
a) TCC→通信接口單元(同步幀)
用于告知各從節(jié)點(diǎn)發(fā)送數(shù)據(jù)的時(shí)間基準(zhǔn),各從節(jié)點(diǎn)根據(jù)接收到同步幀的時(shí)刻起依次延時(shí)固定毫秒后發(fā)送狀態(tài)數(shù)據(jù)。
b) TCC→通信接口單元(編碼數(shù)據(jù)幀)
TCC每周期固定向各個(gè)通信接口單元依次發(fā)送編碼數(shù)據(jù)幀,發(fā)送完畢后發(fā)送一幀同步幀。數(shù)據(jù)內(nèi)容包括主軌道載頻、小軌道載頻、主軌道低頻、小軌道低頻。
c) 通信接口單元→TCC(狀態(tài)數(shù)據(jù)幀)
通信接口單元在收到TCC發(fā)送的同步幀后根據(jù)所屬地址延時(shí)固定毫秒后,發(fā)送狀態(tài)數(shù)據(jù)。數(shù)據(jù)內(nèi)容包括主機(jī)主軌道狀態(tài)、并機(jī)主軌道狀態(tài)、主機(jī)小軌道狀態(tài)、并機(jī)小軌道狀態(tài)。
總線時(shí)序示意圖如下:
通信線纜端頭引腳定義
TCC側(cè)DB9引腳
軌道電路通信接口單元側(cè)引腳
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6629瀏覽量
110653 -
CAN總線
+關(guān)注
關(guān)注
145文章
1952瀏覽量
130819 -
AMR
+關(guān)注
關(guān)注
3文章
429瀏覽量
30250 -
GPIO
+關(guān)注
關(guān)注
16文章
1205瀏覽量
52149
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論