采用ARM+Linux架構的基于CAN總線和MiniGUI的虛擬儀表設計
本文選用Microchip公司生產的MCP2515作為CAN總線控制器。MCP2515是一款獨立的CAN協(xié)議控制器,完全支持CAN 2.0B技術規(guī)范。MCP2515與主控制器的連接是通過標準串行外設接口SPI(Searial Peripheral Interface)實現(xiàn)的。主控制器選擇了Microchip公司的PIC16F913,該單片機為高性能的RISC CPU,內部具有4 KB的可編程可擦除的Flash存儲器、256 B的RAM、256 B的EEPROM,帶有標準的SPI接口,也能夠方便地和CAN總線控制器MCP2515進行連接。CAN總線驅動器選擇Microchip公司的MCP2551,是一個可容錯的高速CAN器件[4,10]。數據采集用的CAN總線接口電路如圖3所示。本文引用地址:http://m.ptau.cn/article/151884.htm
4 CAN總線驅動程序的方案設計與實現(xiàn)
設備驅動程序是介于硬件和Linux內核之間的軟件接口,是一種低級的、專用于某一硬件的軟件組件。設備驅動也可以理解為操作系統(tǒng)的一部分,對于一個特定的硬件設備來說,其對應的設備驅動程序是不同的,比如網卡、鍵盤、鼠標、顯卡、電位器、電機等。操作系統(tǒng)本身沒有對各種硬件設備提供持久不變的“驅動設備”,沒有驅動,操作系統(tǒng)就控制不了底層的設備,對于操作系統(tǒng)來說,掛接的設備越多,需要的設備驅動程序也越多。
在Linux操作系統(tǒng)中,把所有外設都當成文件看待,使用操作文件的方法來操作設備,通過驅動程序,Linux操作系統(tǒng)才能以文件夾的方式來管理設備。因此驅動程序的編寫開發(fā)具有十分重要的地位。Linux設備驅動程序運行在Linux內核空間,是Linux內核中聯(lián)系硬件設備和應用程序的橋梁。Linux系統(tǒng)硬件、設備驅動和應用程序的關系如圖4所示[7]。
MagicARM270實驗箱采用SJA1000 CAN控制器擴展了1路CAN接口,SJA1000是PHILIPS公司經典的CAN控制器,支持CAN 2.0 A、B協(xié)議。結合應用程序、驅動程序、內核程序,CAN驅動流程圖如圖5所示。
5 測試結果與驗證
選取廣州致遠電子有限公司生產的Magic ARM270實驗箱進行仿真[2]。通過
CAN總線實現(xiàn)汽車上各種信息的采集和測量,并將采集的結果送到ARM進行處理,最后通過TFT顯示出來,設置CAN總線傳輸速度波特率為125 KB/s,圖6所示為捕捉的一個界面。
隨著信息技術的快速發(fā)展,現(xiàn)場總線技術在汽車上得到了越來越多的應用。本文在測試系統(tǒng)下采用CAN總線接口提取車速、發(fā)動機轉速、機油壓力、油量、水溫、傳動箱壓力及其他車況等信息。實驗表明采用虛擬儀表技術完全能夠滿足車輛運行參數和狀態(tài)顯示的要求,可擴充性好,配置方便。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論