控制器局域網 局域網控制軟件


控制器局域網 局域網控制軟件

文章插圖
控制器局域網的概念
控制器局域網是國際上應用最廣泛的現場總線之一 。CAN被設計作為汽車環境中的微控制器通訊 , 在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡 。比如:發動機管理系統、變速箱控制器、儀表裝備、電子主干系統中,均嵌入CAN控制裝置 。一個由CAN 總線構成的單一網絡中 , 理論上可以掛接無數個節點 。實際應用中,節點數目受網絡硬件的電氣特性所限制 。例如,當使用Philips P82C250作為CAN收發器時,同一網絡中允許掛接110個節點 。CAN 可提供高達1Mbit/s的數據傳輸速率 , 這使實時控制變得非常容易 。另外,硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力 。
控制器局域網(CAN)標準不斷發展 , 正用于車載和工業網絡之外的許多新應用 。支持它的微處理器變得普遍且價格低廉,并且開源協議棧讓其非常容易訪問 , 同時也容易添加至新系統 。有許多CAN板可用于BeagleBone (Capes)、Stellaris? (BoosterPacks)、Arduino (Shields)和其他微處理器開發平臺 。當設計人員的系統上電卻不能工作時,應該怎么辦呢?本文為您介紹一種對CAN物理層進行調試的較好工程方法 。我們將介紹基礎調試步驟,并說明一個CAN物理層應有的性能,以及找出問題的一些小技巧 。
調試基礎知識
ISO11898-2和ISO11898-5規范詳細說明了高速CAN物理層即收發器 。掌握CAN物理層的基礎知識以后,利用簡單的調試工具便可迅速地找出常見問題 。所需的基本實驗室工具為示波鏡、數字萬用表(DMM)和一個電源 。如果想要深入了解問題 , 則需要更高精度和更復雜的工具 。這種問題已非本文討論的范疇,但是這里介紹的基礎知識可幫助確定問題所屬類別,以及進一步調試所需的其他工具 。一個由 TI 組裝的CAN演示系統以及TI的SN65NVD255D評估模塊(EVM)1,用于演示硬件 。另外,我們還使用了其他一些東西,例如:CAN連接器外接頭電纜和芯片鉤(抓住收發器引腳,讓其連接至電纜,以更加容易地連接示波器指針,如圖1所示) 。
圖1 CAN物理層調試基本工具
連接檢查
開始調試對話時 , 使用DMM確認印刷電路板(PCB)上連接如我們所預計的那樣—系統未上電 。這看似很基礎 , 但令人吃驚的是,這個簡單的方法卻解決了許多簡單問題 。所有人都會認為原理圖、布局和制造工藝沒有問題 , 但不幸的是 , 它們有時卻并不如人愿 。子插件板位置錯誤、虛焊和錯誤端接或者連接的電纜,都是一些常見問題 。利用DMM電阻設置來確認所有線路和連接均正確 。圖2所示CAN應用的簡易原理圖用作參考 。
圖2 CAN應用簡易原理圖
表1列舉了需要檢查的PCB和網絡連接 。收發器引腳和PCB上其他相關連接之間的電阻應為0Ω,除非設計使用表注里介紹的一些選項 。例如,限流串聯電阻器、總線端接電阻器或者數字I/O的上拉或下拉電阻器 。
表1 PCB和CAN收發器連接總結
總線端接檢查
大多數CAN標準均規定使用一條單雙絞線(有或者無屏蔽層),其特性阻抗(Z0)為120Ω 。應使用與線路特性阻抗相同的電阻器來端接電纜兩端,以防止信號反射 。端接可以為電纜上總線端的單120Ω電阻器 , 如圖3中CAN總線左側所示;或者,它也可以位于某個端接節點內,如圖3右側所示 。不得將端接電阻從總線移除 。如果CAN端接電阻負載不存在,則信號完整性會受到影響,并且無法滿足比特計時要求 。如果總線共模電壓濾波和穩壓理想,則使用分裂端接,如圖2所示 。在該圖中,每個電阻器均為60Ω , 而分裂電容器范圍為1 nF到100 nF,具體取決于共模濾波器所需的頻率 。2CANH到CANL的測得電阻應介于45Ω到65Ω之間,以達到CAN標準、兩個端接電阻器的并聯阻抗以及并聯節點輸入電阻的容差 。應根據可能碰到的極端故障狀態(通常為系統接地的電源電壓)來確定端接電阻器的額定功率 。
圖3 典型CAN總線
電源檢查
在系統上電以前,應首先檢查CAN收發器的一個或者多個電源 。根據所使用的收發器類型,VCC應為3.3V或者5V 。不管您相不相信,在一些情況下 , 丟失VCC確實為問題的根本原因 。因此,我們應確保VCC存在于收發器的VCC引腳上 。只需檢查DMM,便可確認有電源存在 。必須注意電源短路接地(不幸的是,該引腳就在VCC引腳的旁邊) 。
顯性狀態(60Ω總線負載時約為60mA)和隱性狀態(10mA)之間所需電流(ICC)差約為50mA 。顯性總線狀態期間端接電阻差分電壓的產生需要這50mA的電流差,并且其隨總線負載變化而變化 。DMM還可用在電流模式下,以驗證預計ICC電源電流 。由于CAN的開關性質,DMM測得的電流偽平均讀取值 。
建議本地旁路電容器至少應為4.7μF,以確??偩€狀態轉換期間有足夠的電源緩沖 。否則,收發器的突入電流可能會引起明顯的電壓電源紋波 。我們可以使用一個示波器來驗證電源電壓是穩定,還是隨著總線狀態變化而變化 。轉換期間,最好不要讓收發器“饑餓” 。收發器受到其限流的保護,但是 , 當收發器試圖驅動總線至顯性狀態時,如果其中一條總線短路至電源或者接地,則電源電流極高 。如果電壓調節器無法提供這么多的電流,則電壓電平降至收發器規格范圍以下,甚至可能會低至觸發收發器的欠壓鎖定狀態 。
CAN物理層基礎知識
一旦完成所有基礎檢查,就可以檢查CAN物理層的核心CAN總線了 。收發器的兩個關鍵組件便是接收器和發射器 。發射器被稱作CAN的驅動器 。通過VCC/2共模點(約2.5V)對CAN物理層偏置,見圖4 。
圖4 簡易CAN總線收發器
發收器將單端數字邏輯信號、TXD(或者D)和RXD(或者R)轉換為差分CAN總線所要求的電平 。當總線為顯性時 , 在接收節點,其CAN標準定義的差分電壓(Vdiff(D))大于1.2V , 并且處于邏輯低狀態 。當總線為隱性時,在接收節點,其CAN標準定義的差分電壓(Vdiff(R))為-120mV≤(Vdiff(R))≤ 12 mV,并且處于邏輯高狀態 。兩種總線狀態均通過收發器內共模網絡偏置 。圖5顯示了典型的總線層級 。
圖5 CAN總線狀態
對總線進行調試時,最為有用的工具之一便是示波器 。盡管單通道示波器便可看到信號,但最好還是用雙或者四通道 。理想情況下,可同時看到TXD、RXD、CANH和CANL,以確保收發器和總線性能如預期 。進行初次調試時,只需一個低帶寬示波器 , 因為標準CAN被限定在1Mbps 。(在不遠的將來,在引入擁有靈活數據速率的CAN以后 , 這種情況將有所改變 。)如果該節點正發送數據比特流,則可在TXD輸入端看到輸入數據 。差分CAN總線引腳(CANH/CANL)存在傳輸延遲,同時還存在RXD輸出傳輸延遲 。在CAN中,這些延遲均為循環時間 , 或者說循環延遲 。如果該節點正在接收,則TXD閑置;但是總線和RXD輸出會顯示CAN幀 。
為了演示基礎CAN總線工作情況,圖6顯示了一個示波器,它擁有兩個模擬通道和兩個數字通道,以及一個函數生成器 。CAN總線由兩個SN65HVD255D EVM組成,每個在總線上的端接電阻均為120Ω 。示波器函數生成器連接至頂部EVM的TXD輸入引腳 。圖7中,數字通道1顯示了CANH信號(藍色);模擬通道2顯示了CANL信號(黃色);數字通道2顯示了RXD信號(綠色) 。盡管該示波器的精確度很低,但這個簡單的測試表明,該CAN物理層的表現在總體上符合我們的預期 。
圖6 兩個EVM的CAN總線調試
圖7 TI CAN EVM信號
圖8顯示了該示波器和用于調試TI CAN演示系統的探針裝置 。該節點使用菊形鏈,并使用CANopen? D-SUB 9針連接器 。一個總線外接頭連接器位于圖8左上方 。利用它 , 我們可以輕松地連接模擬示波器探針至CAN總線的CANH和CANL引腳以及GND 。由于探針過大 , 無法抓住中間CAN節點的TXD和RXD IC引腳,因此可通過連接至探針的芯片鉤和一小段電纜,將這些引腳連接至示波器的數字通道 。另一種方法是 , 給每個收發器焊接一小段線,這樣示波器探針便可更容易地連接 。
圖8 TI CAN演示系統調試
圖9顯示了示波器獲得的CAN信號詳細情況 。盡管這些信號的分辨率和精度均不高 , 但它們可以幫助確定需要了解CAN節點工作的那些信息 。中間節點的TXD觸發了示波器;CANH和CANL信號差異符合預期;在CAN構架端可清楚地看到高差分電壓的收到確認(ACK)位 。該高壓為同時并行產生ACK位的多個CAN節點的結果 。輕松找出ACK位的另一個方法是其存在于RXD信號中而非TXD信號中,這意味著它由另一些節點產生 。
圖9 TI CAN演示系統的信號
CAN調試例子
圖10顯示了一個CAN演示系統 , 在PCB右邊,連接至菊形鏈輸出的CANH線路被損壞 。出現這種情況的原因是,系統后面的一個固定螺栓摩擦PCB , 而在幾年的時間里該系統被運輸至世界各地 。當系統通過菊形鏈總線接口連接至其他CAN節點時,便故障無法工作 。
圖10 帶有損壞CANH線路的CAN演示系統
圖11所示CANH信號表明了該損壞PCB線路的效果 。另外 , DMM連續性檢查也可證實該開路 。
圖11 PCB上CANH線路遭損壞的TI CAN信號
圖11還突出詳細顯示了CAN幀的另一個重要部分,即ACK位 。示波器使用單一模式,在某個單比特發現觸發器時,其在右手節點的TXD引腳上被觸發 。該單比特為這一節點產生的ACK位,目的是確認接收到一個有效的CAN幀 。所有接收節點確認收到發送節點的CAN幀 。相比在TXD上看到的發送ACK位 , 總線上所看到的ACK位的位時間稍長 。這是同時發送ACK位的多個節點的假象 。影響這種長位時間的一些因素包括:通過線纜的5ns/m延遲、三個CAN節點之間的時鐘計時漂移以及同時發送一個ACK位的兩個節點所產生的高差分電壓 。如果這些因素使ACK位(空檔)變得更長 , 并在ACK分隔符內保持顯性,則其可能引起CAN誤差幀 。
CAN總線調試的另一個例子是,在某個系統中 , 只有非常慢的CAN數據速率(比特計時)才會起作用 。把一個示波器連接至TXD引腳 , 在TXD輸入端顯示出非常慢的上升時間,如圖12所示 。1Mbps的CAN數據速率下,9.6μs計時延遲相當于10比特 。它的根本原因是:我們正使用一個具有開路漏極的微處理器來驅動收發器的TXD引腳 。在這種情況下,沒有真正的邏輯高電平驅動 。僅有CAN收發器的弱內部上拉正驅動TXD引腳高,因此它的RC時間常量非常長 。通過在TXD引腳上添加一個上拉電阻器,便可輕松解決這個問題 。
圖12 TXD引腳上慢上升時間例子
【控制器局域網 局域網控制軟件】以上就是本文介紹的用實際例子分析CAN物理層基礎和調試的全過程,有圖文解說應該很容易理解了哦,設計人員應該可以馬上讓其CAN系統正常運行了 。謝謝閱讀 。希望能幫到大家 。

    推薦閱讀