注:根據船舶AMS系統設計
CAN是Controller Area Network的縮寫(以下稱為CAN),是ISO*1國際標準化的串行通信協議。 在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”、“通過多個LAN,進行大量數據的高速通信”的需要,1986年德國電氣商博世公司開發出面向汽車的CAN通信協議。此后,CAN通過ISO11898及ISO11519進行了標準化,現在在歐洲已是汽車網絡的標準協議。
現在,CAN的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面。
CAN控制器根據兩根線上的電位差來判斷總線電平。總線電平分為顯性電平和隱性電平,二者必居其一。發送方通過使總線電平發生變化,將消息發送給接收方。
CAN連接圖
CAN的特點
CAN協議具有以下特點。
(1)多主控制
在總線空閑時,所有的單元都可開始發送消息(多主控制)。
最先訪問總線的單元可獲得發送權(CSMA/CA方式*1)。
多個單元同時開始發送時,發送高優先級ID消息的單元可獲得發送權。
(2) 消息的發送
在CAN協議中,所有的消息都以固定的格式發送。總線空閑時,所有與總線相連的單元都可以開始發送新消息。兩個以上的單元同時開始發送消息時,根據標識符(Identifier 以下稱為 ID)決定優先級。ID并不是表示發送的目的地址,而是表示訪問總線的消息的優先級。兩個以上的單元同時開始發送消息時,對各消息ID的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的單元可繼續發送消息,仲裁失利的單元則立刻停止發送而進行接收工作。
(3) 系統的柔軟性
與總線相連的單元沒有類似于“地址”的信息。因此在總線上增加單元時,連接在總線上的其它單元的軟硬件及應用層都不需要改變。
(4) 通信速度
根據整個網絡的規模,可設定適合的通信速度。 在同一網絡中,所有單元必須設定成統一的通信速度。即使有一個單元的通信速度與其它的不一樣,此單元也會輸出錯誤信號,妨礙整個網絡的通信。不同網絡間則可以有不同的通信速度。
(5) 遠程數據請求
可通過發送“遙控幀” 請求其他單元發送數據。
(6) 錯誤檢測功能
錯誤通知功能·錯誤恢復功能 所有的單元都可以檢測錯誤(錯誤檢測功能)。 檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能)。 正在發送消息的單元一旦檢測出錯誤,會強制結束當前的發送。強制結束發送的單元會不斷反復地重新發送此消息直到成功發送為止(錯誤恢復功能)。
(7) 故障封閉
CAN可以判斷出錯誤的類型是總線上暫時的數據錯誤(如外部噪聲等)還是持續的數據錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當總線上發生持續數據錯誤時,可將引起此故障的單元從總線上隔離出去。
(8) 連接
CAN總線是可同時連接多個單元的總線。可連接的單元總數理論上是沒有限制的。但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。
PCB說明
1、概述
電路板(除通信電路板之外)采用核心板+地板的設計思路,核心板設計完全相同,只需要根據不同的底板焊接不同的功能模塊。底板的電源部分及通信接口部分設計是完全相同的,其他部分電路實現具體的功能。
電路板分為:核心板、DO(數字量輸出)底板、DIN(數字量輸入)底板、RO(繼電器輸出)底板、AIN(模擬量輸入)底板、AO(模擬量輸出)底板和通信板組成。
2、核心板
圖74:核心板概況
核心板資源介紹:
圖75:核心板資源
1、CPU及最小單元。
2、4位八段數碼管2個,用來指示當前板子名稱:如 CanbusdO,CanbusrO,CanbusdI, CanbusAO,CanbusAI分別代表數字量輸出、繼電器輸出、數字量輸入、模擬量輸出、模擬量輸入電路板。
3、調試及復位接口。
4、底板接口。
5、底板接口。
6、底板接口。
7、底板接口。
8、DA單元。
9、AD單元。
10、AD單元。
11、模擬量電源單元。
12、USB轉TTL接口單元。
13、CAN接口單元。
14、RS485接口單元。
15、RS232接口單元。
16、狀態指示燈:針對輸出(DO/RO/AO)類型的電路板,如果該區域指示燈有紅色顯示,代表軟件控制輸出功能,如果顯示藍色,代表硬件(其他輸入電路板)控制器輸出通道。
17、功能選擇開關。(固定設置,絕對不能更改。)
18、掉電數據存儲芯片。
19、數碼管驅動單元。
20、DA單元。
21、運行指示。(電路板運行指示燈,以1hz的頻率閃爍。)
3、底板共性資源介紹:
圖76:電路板共性資源
1、電源輸入接口,控制電路和數字量驅動電路建議分別單獨供電,也可以共用一路電源。針對DI/DO/RO三塊電路板,因為都涉及到外部數字量的驅動,全部采用光電隔離的形式,因此需要兩路電源同時供給,對于AI/AO可以只提供控制電路24V。從上往下接口定義:控制電源24V+,控制電源24V-,IO電源24V+,IO電源24V-。
下面兩個船型開關是電源開關,控制電源和IO電源分別控制,上面控制的是控制電源24V,下面控制IO電源24V。
2、控制電源處理單元。
3、內部輸入/輸出,外部輸入/輸出切換開關,有的電路板模塊可以同時對內對外輸出,比如RO/DO模塊,這樣的模塊不需要切換開關,其他的都需要該開關來切換內外信號源及目標。在該開關附近都有IN<--->OUT字樣的絲印,撥碼開關朝向IN所指示的方向,代表使用內部的信號源或輸出給電路內部,朝向OUT所示的方向,對標使用外部的信號源或者輸出給外部電路。
4、外部接線端子。
5、CANBUS接口。
6、RS485接口。
7、RS232接口。
8、控制位置選擇開關,對于輸出性質的電路板,可以選擇軟件控制或者硬件控制。在該開關附近有BD Ctrl和SF Ctrl的絲印,開關撥到BD Ctrl方向代表受硬件控制,對應核心板的狀態指示燈顯示藍色;撥到SF Ctrl方向代表受軟件控制,對應核心板的狀態指示燈顯示紅色。
9、核心板接入區域。
以上9個功能區域對應的功能每塊電路板都一樣,不再贅述。
4、數字量輸入電路板
圖77:DIN電路板
1、光電隔離單元。
2、光電隔離單元。
3、電壓轉化單元。5V轉為3.3V輸入到CPU對應的GPIO通道。
4、輸入船型開關。
在硬件控制模式下,改電路板的1-10通道控制DO通道的1-10;11-20通道控制RO通道的1-10。
5、數字量輸出電路板
圖78:DIN電路板1、P-MOS管單元。
2、光電隔離單元。
3、指示單元,雙色LED指示,輸出通道激活顯示綠色,輸出通道不激活顯示紅色。
4、CPU電源轉化單元。
5、PTC,1A自恢復保險絲。
(輸出極性請參考電路板絲印,以圖78視角來看為左正右負)
在硬件控制模式下,改電路板受電路板第1-10路輸入信號控制。
6、繼電器輸出電路板
圖79:RO電路板1、P-MOS單元。
2、光電隔離單元。
3、繼電器單元。
4、指示單元。繼電器激活時顯示綠色,繼電器沒激活顯示紅色。
5、CPU電壓轉換單元。
(輸出接線端子排布見電路板絲印,按照圖79視角所示,下面一排從左向右分別是 NC/COM/NO.)
在硬件控制模式下,改電路板受DI電路板第11-20路輸入信號控制。
7、模擬量輸入電路板
圖80:AI電路板1、電壓表指示單元,指示0-25.00范圍,內應的輸入電壓為0-2.5V,對應的外部輸入電流為0-25mA。
2、電位計單元。
3、數碼管驅動單元。
(端子接線定義具體根據電路板絲印來確定,按照圖中視角,下方從左到右依次是:電流輸入+/電流輸入-/24V電源+/24V電源-, 該24V電源是電路板對外提供的,用來給外部傳感器供電的,可以分別接入2/3/4線制的4-20mA電流輸出傳感器)
在硬件控制模式下,該輸入信號控制模擬量輸出對應的通道輸出。
8、模擬量輸出電路板
圖81:AO電路板1、輸出電流顯示,對應顯示00.00-25.00,對應輸出0-25mA電流。
2、數碼管驅動電路。
(端子接線定義具體根據電路板絲印來確定,按照圖中視角,下方從左到右依次是:電流輸出+/電流輸出-/24V電源+/24V電源-, 該24V電源是電路板對外提供的,用來給外部執行部件供電,可以分別驅動2/3/4線制的4-20mA電流輸入執行器)
在硬件控制模式下,該輸出信號受AI電路板對應通道控制。
9、通信電路板
圖82:通信電路板
1、CPU及最小系統單元。
2、Can接口芯片單元。
3、RS485接口芯片單元。
4、USB供電處理單元。
5、指示單元。
6、掉電數據保存單元。
7、RS232單元。
8、調試單元。
9、USB接口芯片單元。
10、功能選擇開關。
11、電源保護單元。
12、USB接口。
13、Can總線接口。
14、RS232接口。
15、RS485接口。
10、總結
該系統主要針對Canbus通信原理及通信應用進行演示,系統所有控制數據及反饋數據全部經過Canbus總線進行交叉傳輸。每一塊電路板存儲著在網所有數據,對兩兩之間的Can總線通信狀態都有實時的記錄,并且該記錄也通過Canbus傳輸到網絡上,數據在DI/DO/RO/AO/AI之間實時的周期性的交換(交換周期大約0.7s),通信電路板的作用是將Canbus網絡上的數據通過USB-TTL路由到PC上,給PC軟件提供數據源,同時通過USB-TTL 接受PC軟件的指令,并同步到Canbus網絡上,實現軟件的控制,因此通信電路板不僅僅默默地監視著Canbus網絡上的數據,同時還要下發命令,與其他所有電路板產生交互,其在網狀態也要受到監控,于是這6塊電路板形成了兩兩交叉的Can數據交互模型。在軟件中可以監視每兩塊電路板之間的Canbus聯通情況。