【工控研究】嵌入式系統(tǒng)中高實時性CAN通信方案對比研究
在嵌入式系統(tǒng)領(lǐng)域,控制器局域網(wǎng)絡(luò)(CAN)協(xié)議廣泛應(yīng)用于工業(yè)自動化、汽車電子及其他需要高實時性的環(huán)境。傳統(tǒng)CAN通信方案通常依賴于Linux用戶態(tài)下的通用Socket CAN編程。這種方式的優(yōu)點在于其使用了標(biāo)準(zhǔn)的Socket API,易于理解和使用。然而,其缺點也是顯而易見的,尤其在需要嚴格實時性的應(yīng)用場合。
本文將分析傳統(tǒng)Socket CAN方案存在的局限性,并探討基于用戶態(tài)直接讀寫硬件寄存器的解決方案,以應(yīng)對嚴格實時性需求。
傳統(tǒng)Socket CAN方案
使用Socket CAN的主要問題在于其實時性。Socket API調(diào)用依賴操作系統(tǒng)調(diào)度,頻繁的系統(tǒng)調(diào)用會增加內(nèi)核態(tài)與用戶態(tài)切換的資源開銷,從而導(dǎo)致消息延遲。在高頻率數(shù)據(jù)交互場景中(如1ms周期通信),這種延遲可能影響系統(tǒng)穩(wěn)定性。例如,當(dāng)系統(tǒng)負載較高時,消息傳遞的延遲與抖動現(xiàn)象會更加顯著。因此,在對實時性要求嚴格的場景中,傳統(tǒng)Socket CAN方案可能無法滿足應(yīng)用需求。
望獲實時Linux系統(tǒng)方案:用戶態(tài)下直接讀寫硬件寄存器
為了提升Socket CAN方案的實時性,望獲實時Linux提出了一種優(yōu)化方法,允許用戶態(tài)程序直接與硬件交互。該方案通過繞過操作系統(tǒng)的中間層,使應(yīng)用程序能夠直接訪問硬件寄存器,從而消除了系統(tǒng)調(diào)用帶來的延遲和資源開銷。
在該方案下,開發(fā)者可以在應(yīng)用程序中直接控制CAN接口,通過硬件寄存器完成數(shù)據(jù)傳輸。這種方式減少了數(shù)據(jù)傳輸?shù)难舆t,提升了交互的穩(wěn)定性,確保信息的快速與準(zhǔn)確傳遞。此外,該方案支持多種硬件平臺的適配,能夠靈活應(yīng)對不同應(yīng)用場景的需求變化。
測試環(huán)境
本次測試采用創(chuàng)龍3576板卡,通過連接CAN0和CAN1接口,驗證兩種方案下的CAN通信性能。
傳統(tǒng)方案
測試工具:使用cansend和candump命令。
發(fā)送周期:設(shè)定為1毫秒,同時在施加hackbench壓力的條件下進行測試,測試持續(xù)時間為1小時。
數(shù)據(jù)交互測試:記錄從發(fā)送到接收的最短時間、最長時間以及最大抖動值。
測試結(jié)果:
在hackbench壓力測試下,Socket CAN的測試結(jié)果如下:
最短時間:374微秒
最長時間:1900000微秒
最大抖動:144059微秒
在無壓力測試條件下,結(jié)果如下:
最短時間:281微秒
最長時間:993微秒
最大抖動:127微秒
望獲實時Linux優(yōu)化方案
測試方案:采用望獲實時Linux專用CAN程序,運行在綁定的隔離核心上,并將中斷綁定至指定的CPU。
發(fā)送周期:設(shè)定為1毫秒,在hackbench壓力下進行為期1小時的測試。
數(shù)據(jù)交互測試:記錄從發(fā)送到接收的最短時間、最長時間以及最大抖動值。
測試結(jié)果:
最短時間:128微秒
最長時間:147微秒
最大抖動:12微秒
從測試結(jié)果來看,基于用戶態(tài)直接與硬件交互的CAN通信方案在實時性上顯著優(yōu)于傳統(tǒng)的Socket CAN方案。該方案通過繞過操作系統(tǒng)直接訪問硬件寄存器,減少了上下文切換和資源開銷,從而降低數(shù)據(jù)傳輸延遲。這種性能的提升對工業(yè)自動化、汽車電子和機器人系統(tǒng)等需要快速響應(yīng)的應(yīng)用至關(guān)重要。這些領(lǐng)域要求系統(tǒng)在極短時間內(nèi)處理事件,以確保正常運行和安全性。
該方案將數(shù)據(jù)交互控制權(quán)置于用戶態(tài)程序,減少了系統(tǒng)調(diào)用開銷,提升了效率和系統(tǒng)可靠性。測試數(shù)據(jù)顯示,該方案在最短消息傳遞時間和最大抖動等關(guān)鍵指標(biāo)上優(yōu)于傳統(tǒng)方案,適用于高性能需求場景。
該研究為更高效的CAN通信系統(tǒng)提供了新的視角與解決方案,推動了嵌入式系統(tǒng)中CAN通信技術(shù)的發(fā)展,并為未來在其他領(lǐng)域的應(yīng)用創(chuàng)造了新的可能性。隨著行業(yè)對實時性能需求的提升,該方案有望在更多領(lǐng)域得到驗證。
為了讓更多企業(yè)用戶親身體驗望獲實時Linux帶來的卓越性能和實時性優(yōu)勢,望獲實時Linux官網(wǎng)特別推出了限時免費下載鏡像試用活動。立即點擊下方鏈接https://www.onewos.com/,只需簡單幾步操作,即可獲得望獲實時Linux V2正式版的軟件功能體驗。

提交
【工控資訊】實時操作系統(tǒng)中功能安全的必要性與意義
【工業(yè)資訊】工業(yè)實時操作系統(tǒng)的特性與發(fā)展趨勢
【工控福利】限時免費獲取望獲實時Linux正式版授權(quán)
【工控資訊】微秒級實時在無人機控制中的重要性
【工控咨詢】望獲實時linux系統(tǒng)在低空視頻傳輸上的應(yīng)用