盧陽(yáng)
(中國(guó)人民解放軍四八〇五工廠軍械修理廠 上海市 200439)
CAN 總線是Controller Area Network 的縮寫,是一種總線串行通信網(wǎng)絡(luò),其解決了傳統(tǒng)通信機(jī)制與信息化發(fā)展的適應(yīng)性問(wèn)題,大量的數(shù)據(jù)通信線纜因CAN 總線技術(shù)的發(fā)展而取消,安全性高、舒適性好、功耗及成本低的CAN 總線在各個(gè)領(lǐng)域得到了推廣應(yīng)用,并逐漸構(gòu)建起與之相適應(yīng)的標(biāo)準(zhǔn)體系。目前,CAN 總線技術(shù)的應(yīng)用主要集中在汽車、飛機(jī)、高鐵等大數(shù)據(jù)體量的行業(yè)中[1],但在理論研究和工程實(shí)踐中,通過(guò)定量評(píng)價(jià)CAN 總線的實(shí)時(shí)性和可靠性的方法進(jìn)行驗(yàn)證,關(guān)于CAN 總線技術(shù)的安全性、穩(wěn)定性、可靠性均滿足了不同行業(yè)領(lǐng)域的相關(guān)要求,因此,CAN 總線技術(shù)在諸多通信解決方案中廣泛存在。
作為一種較為常見(jiàn)的現(xiàn)象,CAN 總線消息響應(yīng)時(shí)間存在著一定的規(guī)律性,而該規(guī)律的獲取則是一個(gè)較為復(fù)雜的過(guò)程中,且存在技術(shù)上的難點(diǎn),而這就需要開(kāi)發(fā)能夠測(cè)量CAN 總線響應(yīng)時(shí)間的系統(tǒng)。原則上,CAN 總線消息響應(yīng)時(shí)間的測(cè)量比較明確。只要節(jié)點(diǎn)之間采用相同的時(shí)間標(biāo)準(zhǔn),在進(jìn)行通信的過(guò)程中,相關(guān)報(bào)文就會(huì)被標(biāo)記上時(shí)間戳,通過(guò)對(duì)時(shí)間戳的計(jì)算,則可以獲得最終消息相應(yīng)的時(shí)間[2]。但是,目前CAN 總線消息響應(yīng)時(shí)間的測(cè)試設(shè)備(例如IXXAT 的USB to CAN 測(cè)試盒、Tektronix 的TDS5000 系列)無(wú)法直接實(shí)時(shí)測(cè)量響應(yīng)時(shí)間。對(duì)于測(cè)試人員來(lái)說(shuō),則可以通過(guò)對(duì)總線通信報(bào)文中的時(shí)間戳進(jìn)行解碼獲取對(duì)應(yīng)實(shí)踐的消息,同時(shí)顯示相關(guān)的數(shù)據(jù)信息,并保存在名為trace 的文件中。在進(jìn)行時(shí)間間隔的計(jì)算過(guò)程中,可采用離線分析法對(duì)所獲取報(bào)文的時(shí)間戳進(jìn)行解碼。在使用示波器的過(guò)程中,也可以借助示波器的參數(shù)設(shè)定,實(shí)時(shí)獲取相關(guān)消息,根據(jù)選定的時(shí)間標(biāo)準(zhǔn),在示波器屏幕上顯示為波形,并存儲(chǔ)在示波器內(nèi)置的內(nèi)存中。與指定ID 相鄰的兩個(gè)幀的時(shí)間間隔可以通過(guò)相應(yīng)的離線分析軟件計(jì)算。測(cè)試人員和示波器只能從獲得的數(shù)據(jù)中觀察時(shí)間間隔的隨機(jī)現(xiàn)象,但預(yù)計(jì)會(huì)觀察到總線響應(yīng)時(shí)間的隨機(jī)現(xiàn)象,但到目前為止還沒(méi)有發(fā)現(xiàn)能夠直接測(cè)量CAN 總線響應(yīng)時(shí)間的系統(tǒng)[3]。考慮到這一目的,筆者開(kāi)發(fā)了一個(gè)新的CAN 總線消息響應(yīng)時(shí)間評(píng)測(cè)系統(tǒng),并對(duì)系統(tǒng)進(jìn)行了仿真實(shí)驗(yàn),可以準(zhǔn)確地獲得消息的發(fā)送和接收時(shí)間。
基于CAN 總線的技術(shù)特點(diǎn),以及參考信息響應(yīng)時(shí)間測(cè)評(píng)機(jī)制的具體實(shí)施方案,其系統(tǒng)構(gòu)成如圖1、圖2 所示。
通信節(jié)點(diǎn)由EQ512 微控制器組成,該微控制器的在線編程功能允許下載不同的消息系統(tǒng)模型,實(shí)現(xiàn)不同的CAN 總線通信系統(tǒng),而無(wú)需更改硬件電路。圖1 和圖2 是用于船舶綜合導(dǎo)航的CAN 總線通信系統(tǒng)。
在對(duì)CAN 總線消息進(jìn)行檢測(cè)的過(guò)程中,需要參考數(shù)據(jù)通信的實(shí)際速率,通過(guò)圖1 所示系統(tǒng)配置的具體情況來(lái)看,在速率為1Mb/s 的情況下,上位機(jī)所接收到響應(yīng)時(shí)間數(shù)據(jù)中包括對(duì)應(yīng)的ID,通過(guò)對(duì)ID 中的時(shí)間數(shù)據(jù)進(jìn)行解析,則可以獲得測(cè)量節(jié)點(diǎn)與上位機(jī)處理數(shù)據(jù)的具體時(shí)間間隔,從而為后續(xù)數(shù)據(jù)的處理提供參考。

圖1:CAN 總線消息響應(yīng)時(shí)間評(píng)測(cè)系統(tǒng)配置

圖2:總線消息響應(yīng)時(shí)間評(píng)測(cè)系統(tǒng)的單個(gè)CAN 節(jié)點(diǎn)配置
為降低信息傳輸?shù)恼`碼率,則需要對(duì)不同節(jié)點(diǎn)的時(shí)鐘信號(hào)進(jìn)行管理,在該系統(tǒng)仿真設(shè)計(jì)中,則使用了多種同步策略,即內(nèi)部時(shí)鐘同步與外部時(shí)鐘同步,其核心方案均使用了GPS 時(shí)鐘。
作為一種較為常見(jiàn)的時(shí)鐘同步方式,內(nèi)部時(shí)鐘同步是基于網(wǎng)絡(luò)通信協(xié)議來(lái)實(shí)現(xiàn)的,其中主要包括NTP[4]、IEEE1588 等協(xié)議類型,由于內(nèi)部時(shí)鐘同步會(huì)占用一定的總線資源,因此,內(nèi)部時(shí)鐘同步方式對(duì)總線通信質(zhì)量有著不同程度的影響,所以,在非必要的情況下,內(nèi)部時(shí)鐘同步方式的使用并不常見(jiàn)。

圖3:125kb/s 下的數(shù)據(jù)對(duì)比

圖4:250kb/s 下的數(shù)據(jù)對(duì)比
相比較內(nèi)部時(shí)鐘同步來(lái)說(shuō),外部時(shí)鐘同步并未占用原本有限的總線資源,因此,外部時(shí)鐘同步策略對(duì)總線通信質(zhì)量沒(méi)有影響。外部時(shí)鐘通信是直接接收GPS 的時(shí)鐘信號(hào),而GPS 之所以能夠作為時(shí)間同步的基準(zhǔn),其原因在于钚原子鐘和钚原子鐘的炒高精度。
通過(guò)對(duì)內(nèi)部時(shí)鐘同步策略與外部時(shí)鐘同步測(cè)量的分析,以及結(jié)合CAN 總線的實(shí)際情況,在該測(cè)評(píng)系統(tǒng)中選擇外部時(shí)鐘同步策略是基于龐大數(shù)據(jù)的通信需求。并且,為能夠滿足CAN 總線消息響應(yīng)時(shí)間測(cè)評(píng)系統(tǒng)仿真的相關(guān)技術(shù)要求,在方案設(shè)計(jì)中以UTC 為時(shí)鐘標(biāo)準(zhǔn),對(duì)應(yīng)GPS 的接收模塊選擇型號(hào)為JupiterTU30,其特點(diǎn)是能夠輸出1Hz、10kHz 的方波信號(hào),同時(shí),其串口數(shù)據(jù)通信格式為較為常見(jiàn)的NMEA0183。在試驗(yàn)過(guò)程中,由于串口接收相應(yīng)信息的時(shí)間并不固定,所以,關(guān)于1Hz 的GPRMC 格式信息則無(wú)法作為節(jié)點(diǎn)的時(shí)鐘源,為實(shí)現(xiàn)UTC 的時(shí)鐘同步,則可以利用方波信號(hào)的上升沿作為觸發(fā)信號(hào),觸法時(shí)間與同步時(shí)鐘之間時(shí)鐘存在1s 的差值。
CAN 總線消息響應(yīng)時(shí)間評(píng)測(cè)系統(tǒng)應(yīng)成為時(shí)間測(cè)量的儀器,因此應(yīng)從范圍、準(zhǔn)確性、精度等方面進(jìn)行測(cè)試,以反映性能。根據(jù)CANCia102 標(biāo)準(zhǔn),該評(píng)測(cè)系統(tǒng)選擇10MHz 的時(shí)鐘源作為基準(zhǔn),對(duì)應(yīng)通信速率分別為125kb/s、250kb/s、500kb/s、800kb/s 和1Mb/s。根據(jù)節(jié)點(diǎn)上升沿觸發(fā)的原則,EQ512 的技術(shù)將隨著上升沿的出現(xiàn)而自動(dòng)計(jì)數(shù),由于該過(guò)程卻少人的介入,以至于其精度值僅為0.1s。由于在此過(guò)程中忽略了總線自身所承接的負(fù)載設(shè)備,所以,從而提高了節(jié)點(diǎn)傳輸數(shù)據(jù)的可靠性。
從單個(gè)節(jié)點(diǎn)的信息分發(fā)機(jī)制來(lái)看,該總線消息響應(yīng)時(shí)間評(píng)測(cè)系統(tǒng)在優(yōu)先級(jí)的設(shè)定方面存在明顯問(wèn)題,以至于相鄰ID 的時(shí)間間隔缺少規(guī)律,圖3(a)顯示了以125kb/s 的傳輸速率進(jìn)行的測(cè)試結(jié)果,而圖4(a)則為傳輸速率為250kb/s 的測(cè)試成績(jī)。由此可以看出,在節(jié)點(diǎn)數(shù)據(jù)收發(fā)幀率變化的情況下,其同類型節(jié)點(diǎn)間隔的時(shí)間周期也存在著一定的差異,通過(guò)對(duì)數(shù)的了解,圖3(b)、圖4(b)中所示的相應(yīng)傳輸時(shí)間理論值。從圖中可以直觀地看出,從而保證評(píng)測(cè)系統(tǒng)的結(jié)果更符合理論值。
其中,以125kb/s、250kb/s、500kb/s、800kb/s 和1Mb/s 的傳輸速率測(cè)量的單節(jié)點(diǎn)單幀的相對(duì)誤差值分別為3.01%、4.28%、4.95%、6.07%、9.85。當(dāng)比特率為1Mb/s 時(shí),相對(duì)誤差超過(guò)10%,但本文后續(xù)研究的消息模型的比特率為125kb/s 和250kb/s,這兩個(gè)比特率下的相對(duì)誤差不超過(guò)5%,可以滿足精度要求。
單節(jié)點(diǎn)單幀測(cè)量誤差的主要原因如下:
(1)硬件中斷處理切換時(shí)間。根據(jù)EQ512 芯片手冊(cè)的相關(guān)技術(shù)參數(shù),在接收到硬件終端請(qǐng)求的同時(shí),則需要一定的時(shí)間去處理整個(gè)程序,而這就導(dǎo)致了節(jié)點(diǎn)ID 的時(shí)間間隔,并且,這一間隔需要至少15 個(gè)總線時(shí)鐘周期,50MHz 條件下會(huì)出現(xiàn)0.3s 錯(cuò)誤,中斷重疊時(shí)會(huì)進(jìn)一步延長(zhǎng)時(shí)間。
(2)停止服務(wù)子程序保護(hù)站點(diǎn)所需的時(shí)間。根據(jù)Code Warrio用戶指南,如果在中斷服務(wù)子程序設(shè)計(jì)中的關(guān)鍵字類型較為豐富,其中以interrupt 為代表,依托編譯器的作用,則能夠通過(guò)代碼的優(yōu)化對(duì)服務(wù)現(xiàn)場(chǎng)進(jìn)行還原,但是,由于相關(guān)代碼的開(kāi)發(fā)需要較長(zhǎng)的周期,在具體執(zhí)行過(guò)程中應(yīng)考慮到時(shí)間安排。
(3)識(shí)別和轉(zhuǎn)換硬件信號(hào)量所需的時(shí)間。綜合考慮信號(hào)量的作用,可參考關(guān)閉信號(hào)量的做法,由此對(duì)信號(hào)量仲裁規(guī)則產(chǎn)生一定的影響,雙核心的架構(gòu)設(shè)計(jì)依然需要根據(jù)優(yōu)先級(jí)的設(shè)計(jì)定執(zhí)行相關(guān)進(jìn)程,如S12X 的優(yōu)先級(jí)要明顯高于XGATE 的優(yōu)先級(jí),并且,在識(shí)別和轉(zhuǎn)換硬件信號(hào)量的過(guò)程中,額外時(shí)間開(kāi)銷也較為明顯。
本文所述CAN 總線消息響應(yīng)時(shí)間評(píng)測(cè)系統(tǒng)是能夠?qū)崟r(shí)準(zhǔn)確測(cè)量消息響應(yīng)時(shí)間的新設(shè)備,彌補(bǔ)了傳統(tǒng)測(cè)試設(shè)備無(wú)法準(zhǔn)確測(cè)量ID間的時(shí)間間隔。所以,GPS 所提供的時(shí)鐘源,可以作為節(jié)點(diǎn)之間響應(yīng)時(shí)間測(cè)評(píng)的重要參考,其節(jié)點(diǎn)之間的時(shí)鐘誤差將穩(wěn)定在210ns 以內(nèi)。并且,鎖相環(huán)技術(shù)可以有效提高時(shí)鐘基準(zhǔn)的穩(wěn)定性,從而保證時(shí)鐘源的精度。同時(shí),依托雙核心的架構(gòu)設(shè)計(jì),則能夠提高進(jìn)程并發(fā)處理效率,優(yōu)化軟件運(yùn)算時(shí)間,使基于優(yōu)先級(jí)的共享時(shí)鐘源在時(shí)鐘沖突方面的問(wèn)題得到了解決。