肖彬
(航空工業北京長城計量測試技術研究所,北京 100095)
CAN數據總線是國際上應用最廣泛的現場總線之一,得益于其高可靠性、高容錯性以及強實時性等優勢,在要求嚴苛的航空、航天、汽車與工業現場等領域已得到大量應用[1-3]。該總線具備空閑偵聽、沖突檢測與逐位仲裁等核心功能,可以實現多主節點組網,并大幅度提升傳輸效率及容錯性,同時也使高優先級消息無延時占用總線傳輸[4-7]。
目前,CAN總線的上述核心功能均以“載波偵聽”技術為基礎,該技術的可靠性會直接影響各節點對總線信號的判斷與處理,從而關系到整個網絡系統的可靠性。載波偵聽采樣點(以下簡稱“采樣點”)的位置由不同供應商根據不同的應用場景進行設定[8],在高可靠性要求的應用領域中,采樣點的位置設置不當可能導致節點對總線信號誤判,造成通訊實時性降低或節點失效,甚至使整個網絡系統癱瘓[9-10]。各領域規范中,對采樣點位提出了要求或建議,并指出網絡中各節點的采樣點位容差越小,網絡的最大可能長度越長,網絡傳輸越穩定。
汽車及飛機機載系統中電磁環境非常惡劣,網絡系統會受到高強輻射場(HIRF)、單粒子效應以及逆變器、電動機、充電機等大功率設備的電磁輻射[9-10],網絡信號質量會受到不同程度的影響。
如圖1所示,由逆變器干擾測試數據可以看出,失真或畸變的差分信號在電平跳變時刻的信號干擾最為嚴重,隨著電平的狀態保持而趨于穩定。在干擾信號傳輸中,如果采樣點位靠近跳變邊沿,則很可能采集到失真波形,造成對傳輸信號的錯誤判斷,導致數據傳輸失敗。

圖1 逆變器對CAN數據總線信號的干擾Fig.1 Interference of inverter to CAN bus signal
因此,在節點接入總線網絡前,有必要對其采樣點位進行測試,利用測試數據對其采樣點位進行修正,修正后的節點接入總線網絡可大幅度提高網絡系統可靠性與安全性。
CAN節點控制器在發送數據過程中為每比特時間設立一個載波偵聽采樣點,如圖2所示,對傳輸網絡物理層信號進行采樣確認,如果采集幀聽狀態與自身輸出狀態不一致,表示該節點與總線上其他節點的傳輸發生沖突,該節點將執行相應處理措施[11]。

圖2 比特時間組成及采樣點定義Fig.2 Bit time composition and sampling point definition
CAN協議定義一個“比特時間”分為同步段、傳播段、相位緩沖段1和相位緩沖段2,采樣點位于相位緩沖段1末端,各段以不同數量的Tq構成[11]。由于各段位包含的Tq數量可按協議規定范圍調整,因此載波偵聽采樣點位置也會隨之變化。
在CAN總線協議中,數據幀傳輸過程伴有五種錯誤檢測機制,包括:位錯誤、ACK錯誤、填充錯誤、CRC錯誤與格式錯誤[11],如表1所示。

表1 CAN協議數據幀錯誤檢測機制及作用范圍Tab.1 Error detection mechanism and scope of CAN protocol data frame
在節點發送端或接收端檢測到錯誤后,各節點會以發送“錯誤幀(連續6比特相同信號狀態)”的方式通知總線上其他節點,并且發送端在錯誤界定結束后將重新發送數據幀。
采樣點位的測試方法將以錯誤注入的形式進行,在CAN總線錯誤注入類型選取時,對錯誤處理判斷的復雜程度以及被測設備配置的難易度進行綜合考慮[11-14],最終選擇利用CRC校驗錯誤及相關處理機制對采樣點位進行測試試驗。
在CAN總線物理層協議特性中,邏輯狀態“0”優先級高于邏輯“1”,因此在總線網絡中,如果有任何節點將總線電平轉變為邏輯“0”時,其他節點將無法改變總線狀態[11]。
圖3(a)是一個正確數據的傳輸過程,節點1和節點2在同一個網絡中,節點1發送一幀正確數據,并且在ACK槽位保留邏輯“1”電平(如藍色發送信號),節點2監測到總線網絡中到來的數據信號,判斷數據幀正確后,在該數據的ACK槽位向總線網絡中發送一個邏輯“0”的反饋信號(如綠色發送信號與紅色總線網絡信號),同時節點1從總線網絡中幀聽到ACK槽位的反饋信號(如藍色接收信號),則節點1認為數據發送成功。如圖3(b)所示,如果節點1發送含有CRC錯誤的數據幀,節點2在ACK槽位將不會做出反饋。

圖3 CAN數據幀ACK槽位信號交互示意圖Fig.3 CAN frame ACK slot signal interaction diagram
利用以上特性及處理機制,如圖4所示,向被測節點連續發送同一數據幀,并在此數據幀中注入錯誤信號,該錯誤信號物理波形在該比特時間的占空比每幀遞增0.1%,直至完全填充該位,并且在數據幀CRC校驗段保持不變的正確數據幀CRC校驗值。

圖4 比特時間占空比錯誤注入示意圖Fig.4 Schematic of bit time duty cycle error injection
連續發送比特時間占空比逐幀遞增的錯誤信號,在注入的錯誤信號未觸及被測端采樣點位置時,被測端依然采集到正確的信號電平并給予反饋信號,當錯誤信號波形觸及采樣點位置時,被測端采樣點采集到錯誤電平并記錄錯誤的邏輯數據。錯誤數據處于CRC作用域中,計算得到的CRC校驗值將與數據幀內正確的CRC校驗值不符,造成CRC校驗錯誤,從而導致ACK槽位無反饋消息發出。利用對ACK槽位電平狀態的判斷,可以確定被測端是否接收到正確數據,并通過正確發送的數據幀數量得到采樣點在比特時間中的位置占比。
由于CAN協議中每一數據幀起始(SOF)時,都將進行信號的“硬同步”,即所有CAN節點都將在此時統一各自的信號起始時基[15],在數據幀的隨后位中,每當數據波形由邏輯“1”向邏輯“0”跳變,并且該跳變落在同步段之外,就會引起一次“重同步”[16]。如圖2所示,CAN節點會通過延長“TSEG1”或縮短“TESG2”使后續的位數據獲得同步[17-18],而相位緩沖段的改變,會使采樣點位也隨之改變。如果測試時選擇的數據位經過“重同步”處理,測試結果將不是采樣點的實際設置值。因此通過向起始位(SOF)后一位注入錯誤幀的方式進行測試,可以有效避免CAN協議中“重同步”帶來的影響。
CAN總線在航空領域遵循[12],其中明確指出采樣點位不應小于比特時間的75%。汽車工業[13-14]也對采樣點位提出建議(建議其盡量接近比特時間的87.5%且不超過90%),并且相關標準注明“網絡中各節點的采樣點位容差越小,網絡的最大可能長度越長,網絡傳輸越穩定”[11-14]。相關規范中采樣點位范圍及建議值如表2所示。

表2 采樣點位范圍及建議值Tab.2 Sampling point range and recommended value
研制的CAN總線載波偵聽采樣點位專用測試裝置(以下簡稱“裝置”)如圖5所示,其通過上位機進行CAN總線數據幀的設定,隨后發送至裝置,裝置內FPGA生成正確的CAN協議信號波形,并在該正確波形的基礎上進行錯誤注入。而后通過CAN協議電平轉換模塊將TTL電平信號轉換為CAN協議差分信號輸出,并監測發出信號ACK槽位的反饋信號,在測試結束后將結果返回至上位機顯示并記錄。

圖5 測試系統組成示意圖Fig.5 Schematic diagram of test system composition
CAN協議中規定,在總線網絡中,除發送節點外,任何節點在接收到正確數據幀時,都將向總線網絡發出反饋信號。利用這一特性,被測節點無需發送任何數據,只需啟動后配置相應的傳輸速率即可完成測試試驗。該方法可大幅度減少測試人員的工作量,提高測試的效率。
如圖6所示,專用測試裝置基于FPGA硬件進行設計研制,采用模塊化設計,由信號生成、信號采集、同步觸發、數據處理以及通訊接口等模塊組成。專用測試裝置的工作流程為:通過上位機設置CAN數據幀,并通過串行接口下發至FPGA;利用數據處理模塊將數據幀轉換為高速輸出端口數據隊列,并向隊列中的每個數據幀注入錯誤信號,信號生成模塊根據數據隊列內容發送信號;同時由同步信號觸發采集模塊進行采集,根據數據幀ACK槽位采集到的反饋信號判斷是否發送成功,若成功則繼續提高注入錯誤的占空比并再次發送,若失敗則證明已測試到被測CAN設備采樣點;完成測試后上傳測試數據至上位機并結束測試。

圖6 FPGA模塊設計及流程圖Fig.6 FPGA module design and flow chart
由于在CAN數據總線傳輸速率為1 Mb/s時,比 特時間占空比分辨力達到0.1%,需要控制準確度優于1 ns,因此需要選用IO控制頻率優于1 GHz的主控器件。如圖7所示,裝置核心部件采用XILINX Spartan-6系列核心板及擴展板進行設計研制,使用高達1050 Mb/s輸出頻率的高速差分端口,可滿足控制準確度設計需求。使用擴展板進行外圍電路的設計研制,包括RS232電平轉換模塊、CAN協議電平轉換模塊以及電源模塊等。

圖7 裝置核心板及擴展板實物圖Fig.7 Core board and expansion board of the device
裝置的驗證試驗原理如圖8所示,其利用經過校準的標準數字存儲示波器,通過標準表法對裝置進行驗證測試。

圖8 測試裝置驗證原理圖Fig.8 Test device validation schematic
驗證裝置的指標包括輸出控制分辨力及輸出脈寬準確度。對裝置分辨力的要求參考了規范中提出的建議值(即比特時間的87.5%)。因為建議值達到千分位,所以裝置控制分辨力應達到0.1%。CAN總線最高傳輸速率為1 Mb/s時,比特時間為1μs,協議中規定每比特時間的最大Tq數量為25個,因此Tq時間最小為40 ns。因為采樣點位于某兩個Tq之間,要測量采樣點的位置,需要裝置輸出準確度相對于最小Tq時間滿足1/4量傳關系,所以要求裝置輸出準確度優于±5 ns。
驗證環境及測試波形如圖9所示,測試裝置以最高傳輸速率(1 Mb/s)輸出特定數據幀,測試起始位(SOF)與錯誤注入波形間的脈沖寬度,通過計算得出錯誤注入波形在該位的占空比。

圖9 驗證環境與實測波形Fig.9 Verification environment and measured waveform
將裝置與被測設備設置為相同傳輸速率,將被測設備設置為接收狀態(不發送數據),并開始采樣點位測試,通過示波器測量裝置輸出信號脈寬,按式(1)進行占空比換算,得到測試結果如表3所示。

表3 驗證測試數據結果Tab.3 Verification test data results

式中:Di為設置值i%時的占空比測量值;Ti(μs)為設置值i%時的脈寬測量值;T0(μs)為設置值0%時的脈寬測量值;T100(μs)為設置值100%時的脈寬測量值。
裝置輸出準確度要求優于±5 ns,在傳輸速率為1 Mb/s時,可按占空比換算為±0.5%,測試結果表明,實際測試值的最大誤差為±0.02%,滿足輸出準確度要求。并且從前兩項數據可以看出,裝置滿足0.1%的控制分辨力要求,證明專用測試裝置的指標均滿足測試要求。
利用裝置對被測CAN節點設備在特征負載條件下進行采樣點位測試,網絡負載條件選取為典型狀態條件下的負載取值,開展包括網絡開路狀態、單節點負載(120Ω)與實際組網應用中多節點網絡負載(60Ω)條件下的測試試驗[4]。將裝置與被測設備設置為相同的傳輸速率,并開始采樣點位測試,測試原理如圖5所示,測試環境及錯誤注入信號如圖10所示,測試結果如表4所示。

表4 采樣點位測試結果Tab.4 Sampling point test results

圖10 實測環境及信號波形生成Fig.10 Measurement environment and signal waveform generation
測試結果顯示,被測設備采樣點位僅在傳輸速率為1000 kbps與800 kbps時滿足要求,其他測試結果不符合建議范圍要求。
如圖11所示,利用示波器對不同網絡負載條件的數據波形進行分析,匹配負載較小時,數據波形傳輸抖動較大,會導致被測CAN設備在“硬同步”時出現隨機偏差,裝置與被測設備出現較大的時鐘同步誤差,因此在實際測試試驗中應當匹配的網絡負載為60Ω,這樣測試數據的可靠性較高。

圖11 信號波形邊沿余暉對比Fig.11 Comparision of signal waveform edge afterglow
通過分析測試試驗的結果得出,并非所有CAN總線設備都是按照規范建議值設計研制的,當應用于可靠性需求較高的復雜系統組網時,較大差別的采樣點位必然會縮短網絡最大理論長度,從而降低整個系統的傳輸可靠性。隨著電子通訊技術的發展,通訊系統網絡的復雜程度日益提高,傳輸可靠性應從各層面不斷完善,而首先應在底層建立良好的基礎。通過在系統組網前進行采樣點位測試,利用測試值調整和統一系統各節點的采樣點位,可以使總線物理鏈路層一致性得到充分保障,也可以使整個系統傳輸的可靠性更上一個臺階。