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