盧陽
(中國人民解放軍四八〇五工廠軍械修理廠 上海市 200439)
CAN 總線是Controller Area Network 的縮寫,是一種總線串行通信網(wǎng)絡,其解決了傳統(tǒng)通信機制與信息化發(fā)展的適應性問題,大量的數(shù)據(jù)通信線纜因CAN 總線技術(shù)的發(fā)展而取消,安全性高、舒適性好、功耗及成本低的CAN 總線在各個領域得到了推廣應用,并逐漸構(gòu)建起與之相適應的標準體系。目前,CAN 總線技術(shù)的應用主要集中在汽車、飛機、高鐵等大數(shù)據(jù)體量的行業(yè)中[1],但在理論研究和工程實踐中,通過定量評價CAN 總線的實時性和可靠性的方法進行驗證,關(guān)于CAN 總線技術(shù)的安全性、穩(wěn)定性、可靠性均滿足了不同行業(yè)領域的相關(guān)要求,因此,CAN 總線技術(shù)在諸多通信解決方案中廣泛存在。
作為一種較為常見的現(xiàn)象,CAN 總線消息響應時間存在著一定的規(guī)律性,而該規(guī)律的獲取則是一個較為復雜的過程中,且存在技術(shù)上的難點,而這就需要開發(fā)能夠測量CAN 總線響應時間的系統(tǒng)。原則上,CAN 總線消息響應時間的測量比較明確。只要節(jié)點之間采用相同的時間標準,在進行通信的過程中,相關(guān)報文就會被標記上時間戳,通過對時間戳的計算,則可以獲得最終消息相應的時間[2]。但是,目前CAN 總線消息響應時間的測試設備(例如IXXAT 的USB to CAN 測試盒、Tektronix 的TDS5000 系列)無法直接實時測量響應時間。對于測試人員來說,則可以通過對總線通信報文中的時間戳進行解碼獲取對應實踐的消息,同時顯示相關(guān)的數(shù)據(jù)信息,并保存在名為trace 的文件中。在進行時間間隔的計算過程中,可采用離線分析法對所獲取報文的時間戳進行解碼。在使用示波器的過程中,也可以借助示波器的參數(shù)設定,實時獲取相關(guān)消息,根據(jù)選定的時間標準,在示波器屏幕上顯示為波形,并存儲在示波器內(nèi)置的內(nèi)存中。與指定ID 相鄰的兩個幀的時間間隔可以通過相應的離線分析軟件計算。測試人員和示波器只能從獲得的數(shù)據(jù)中觀察時間間隔的隨機現(xiàn)象,但預計會觀察到總線響應時間的隨機現(xiàn)象,但到目前為止還沒有發(fā)現(xiàn)能夠直接測量CAN 總線響應時間的系統(tǒng)[3]。考慮到這一目的,筆者開發(fā)了一個新的CAN 總線消息響應時間評測系統(tǒng),并對系統(tǒng)進行了仿真實驗,可以準確地獲得消息的發(fā)送和接收時間。
基于CAN 總線的技術(shù)特點,以及參考信息響應時間測評機制的具體實施方案,其系統(tǒng)構(gòu)成如圖1、圖2 所示。
通信節(jié)點由EQ512 微控制器組成,該微控制器的在線編程功能允許下載不同的消息系統(tǒng)模型,實現(xiàn)不同的CAN 總線通信系統(tǒng),而無需更改硬件電路。圖1 和圖2 是用于船舶綜合導航的CAN 總線通信系統(tǒng)。
在對CAN 總線消息進行檢測的過程中,需要參考數(shù)據(jù)通信的實際速率,通過圖1 所示系統(tǒng)配置的具體情況來看,在速率為1Mb/s 的情況下,上位機所接收到響應時間數(shù)據(jù)中包括對應的ID,通過對ID 中的時間數(shù)據(jù)進行解析,則可以獲得測量節(jié)點與上位機處理數(shù)據(jù)的具體時間間隔,從而為后續(xù)數(shù)據(jù)的處理提供參考。
圖1:CAN 總線消息響應時間評測系統(tǒng)配置
圖2:總線消息響應時間評測系統(tǒng)的單個CAN 節(jié)點配置
為降低信息傳輸?shù)恼`碼率,則需要對不同節(jié)點的時鐘信號進行管理,在該系統(tǒng)仿真設計中,則使用了多種同步策略,即內(nèi)部時鐘同步與外部時鐘同步,其核心方案均使用了GPS 時鐘。
作為一種較為常見的時鐘同步方式,內(nèi)部時鐘同步是基于網(wǎng)絡通信協(xié)議來實現(xiàn)的,其中主要包括NTP[4]、IEEE1588 等協(xié)議類型,由于內(nèi)部時鐘同步會占用一定的總線資源,因此,內(nèi)部時鐘同步方式對總線通信質(zhì)量有著不同程度的影響,所以,在非必要的情況下,內(nèi)部時鐘同步方式的使用并不常見。
圖3:125kb/s 下的數(shù)據(jù)對比
圖4:250kb/s 下的數(shù)據(jù)對比
相比較內(nèi)部時鐘同步來說,外部時鐘同步并未占用原本有限的總線資源,因此,外部時鐘同步策略對總線通信質(zhì)量沒有影響。外部時鐘通信是直接接收GPS 的時鐘信號,而GPS 之所以能夠作為時間同步的基準,其原因在于钚原子鐘和钚原子鐘的炒高精度。
通過對內(nèi)部時鐘同步策略與外部時鐘同步測量的分析,以及結(jié)合CAN 總線的實際情況,在該測評系統(tǒng)中選擇外部時鐘同步策略是基于龐大數(shù)據(jù)的通信需求。并且,為能夠滿足CAN 總線消息響應時間測評系統(tǒng)仿真的相關(guān)技術(shù)要求,在方案設計中以UTC 為時鐘標準,對應GPS 的接收模塊選擇型號為JupiterTU30,其特點是能夠輸出1Hz、10kHz 的方波信號,同時,其串口數(shù)據(jù)通信格式為較為常見的NMEA0183。在試驗過程中,由于串口接收相應信息的時間并不固定,所以,關(guān)于1Hz 的GPRMC 格式信息則無法作為節(jié)點的時鐘源,為實現(xiàn)UTC 的時鐘同步,則可以利用方波信號的上升沿作為觸發(fā)信號,觸法時間與同步時鐘之間時鐘存在1s 的差值。
CAN 總線消息響應時間評測系統(tǒng)應成為時間測量的儀器,因此應從范圍、準確性、精度等方面進行測試,以反映性能。根據(jù)CANCia102 標準,該評測系統(tǒng)選擇10MHz 的時鐘源作為基準,對應通信速率分別為125kb/s、250kb/s、500kb/s、800kb/s 和1Mb/s。根據(jù)節(jié)點上升沿觸發(fā)的原則,EQ512 的技術(shù)將隨著上升沿的出現(xiàn)而自動計數(shù),由于該過程卻少人的介入,以至于其精度值僅為0.1s。由于在此過程中忽略了總線自身所承接的負載設備,所以,從而提高了節(jié)點傳輸數(shù)據(jù)的可靠性。
從單個節(jié)點的信息分發(fā)機制來看,該總線消息響應時間評測系統(tǒng)在優(yōu)先級的設定方面存在明顯問題,以至于相鄰ID 的時間間隔缺少規(guī)律,圖3(a)顯示了以125kb/s 的傳輸速率進行的測試結(jié)果,而圖4(a)則為傳輸速率為250kb/s 的測試成績。由此可以看出,在節(jié)點數(shù)據(jù)收發(fā)幀率變化的情況下,其同類型節(jié)點間隔的時間周期也存在著一定的差異,通過對數(shù)的了解,圖3(b)、圖4(b)中所示的相應傳輸時間理論值。從圖中可以直觀地看出,從而保證評測系統(tǒng)的結(jié)果更符合理論值。
其中,以125kb/s、250kb/s、500kb/s、800kb/s 和1Mb/s 的傳輸速率測量的單節(jié)點單幀的相對誤差值分別為3.01%、4.28%、4.95%、6.07%、9.85。當比特率為1Mb/s 時,相對誤差超過10%,但本文后續(xù)研究的消息模型的比特率為125kb/s 和250kb/s,這兩個比特率下的相對誤差不超過5%,可以滿足精度要求。
單節(jié)點單幀測量誤差的主要原因如下:
(1)硬件中斷處理切換時間。根據(jù)EQ512 芯片手冊的相關(guān)技術(shù)參數(shù),在接收到硬件終端請求的同時,則需要一定的時間去處理整個程序,而這就導致了節(jié)點ID 的時間間隔,并且,這一間隔需要至少15 個總線時鐘周期,50MHz 條件下會出現(xiàn)0.3s 錯誤,中斷重疊時會進一步延長時間。
(2)停止服務子程序保護站點所需的時間。根據(jù)Code Warrio用戶指南,如果在中斷服務子程序設計中的關(guān)鍵字類型較為豐富,其中以interrupt 為代表,依托編譯器的作用,則能夠通過代碼的優(yōu)化對服務現(xiàn)場進行還原,但是,由于相關(guān)代碼的開發(fā)需要較長的周期,在具體執(zhí)行過程中應考慮到時間安排。
(3)識別和轉(zhuǎn)換硬件信號量所需的時間。綜合考慮信號量的作用,可參考關(guān)閉信號量的做法,由此對信號量仲裁規(guī)則產(chǎn)生一定的影響,雙核心的架構(gòu)設計依然需要根據(jù)優(yōu)先級的設計定執(zhí)行相關(guān)進程,如S12X 的優(yōu)先級要明顯高于XGATE 的優(yōu)先級,并且,在識別和轉(zhuǎn)換硬件信號量的過程中,額外時間開銷也較為明顯。
本文所述CAN 總線消息響應時間評測系統(tǒng)是能夠?qū)崟r準確測量消息響應時間的新設備,彌補了傳統(tǒng)測試設備無法準確測量ID間的時間間隔。所以,GPS 所提供的時鐘源,可以作為節(jié)點之間響應時間測評的重要參考,其節(jié)點之間的時鐘誤差將穩(wěn)定在210ns 以內(nèi)。并且,鎖相環(huán)技術(shù)可以有效提高時鐘基準的穩(wěn)定性,從而保證時鐘源的精度。同時,依托雙核心的架構(gòu)設計,則能夠提高進程并發(fā)處理效率,優(yōu)化軟件運算時間,使基于優(yōu)先級的共享時鐘源在時鐘沖突方面的問題得到了解決。