一種基于CAN總線和MiniGUI的虛擬儀表的實現

4 CAN總線驅動程序的方案設計與實現
設備驅動程序是介于硬件和Linux內核之間的軟件接口,是一種低級的、專用于某一硬件的軟件組件。設備驅動也可以理解為操作系統的一部分,對于一個特定的硬件設備來說,其對應的設備驅動程序是不同的,比如網卡、鍵盤、鼠標、顯卡、電位器、電機等。操作系統本身沒有對各種硬件設備提供持久不變的驅動設備,沒有驅動,操作系統就控制不了底層的設備,對于操作系統來說,掛接的設備越多,需要的設備驅動程序也越多。
在Linux操作系統中,把所有外設都當成文件看待,使用操作文件的方法來操作設備,通過驅動程序,Linux操作系統才能以文件夾的方式來管理設備。因此驅動程序的編寫開發具有十分重要的地位。Linux設備驅動程序運行在Linux內核空間,是Linux內核中聯系硬件設備和應用程序的橋梁。Linux系統硬件、設備驅動和應用程序的關系如圖4所示[7].
MagicARM270實驗箱采用SJA1000 CAN控制器擴展了1路CAN接口,SJA1000是PHILIPS公司經典的CAN控制器,支持CAN 2.0 A、B協議。結合應用程序、驅動程序、內核程序,CAN驅動流程圖如圖5所示。

5 測試結果與驗證
選取廣州致遠電子有限公司生產的Magic ARM270實驗箱進行仿真[2].通過CAN總線實現汽車上各種信息的采集和測量,并將采集的結果送到ARM進行處理,最后通過TFT顯示出來,設置 CAN總線傳輸速度波特率為125 KB/s,圖6所示為捕捉的一個界面。
隨著信息技術的快速發展,現場總線技術在汽車上得到了越來越多的應用。本文在測試系統下采用CAN總線接口提取車速、發動機轉速、機油壓力、油量、水溫、傳動箱壓力及其他車況等信息。實驗表明采用虛擬儀表技術完全能夠滿足車輛運行參數和狀態顯示的要求,可擴充性好,配置方便。












評論