Android系統(tǒng)下CAN總線驅(qū)動程序的設(shè)計與實(shí)現(xiàn)
摘要 嵌入式操作系統(tǒng)Android下CAN驅(qū)動程序的實(shí)現(xiàn),不但需要在Linux內(nèi)核中添加CAN驅(qū)動設(shè)備,還要實(shí)現(xiàn)Android HAL層的調(diào)用。以S5PV 210微處理器與CAN總線控制器MCP2515為例,分析了Android設(shè)備驅(qū)動原理,以及Android下CAN設(shè)備驅(qū)動程序的開發(fā)流程和方法,設(shè)計了相關(guān)的重要數(shù)據(jù)結(jié)構(gòu)和代碼,實(shí)現(xiàn)了CAN總線的驅(qū)動程序開發(fā)。
關(guān)鍵詞 CAN總線;Android;Android HAL
Android是指“機(jī)器人”,由Google公司于2007年11月5日發(fā)布的基于Linux平臺的開源手機(jī)操作系統(tǒng),是首個為移動終端打造的真正開放和完整的移動軟件。Android是一個開放平臺,在嵌入式移動設(shè)備領(lǐng)域里具有良好的應(yīng)用前景,但在不同的設(shè)備上往往有不同的硬件支持,要在Android中添加這些硬件應(yīng)用,不是單純地在Linux內(nèi)核中添加驅(qū)動模塊,還必須在用戶空間和應(yīng)用框架中添加對應(yīng)的支持。
控制器局域網(wǎng)絡(luò)(Control Area Network,CAN),屬于現(xiàn)場總線的范疇,是德國Bosch公司在20世紀(jì)80年代初,為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線。由于CAN總線的數(shù)據(jù)通信具有良好的可靠性、實(shí)時性和靈活性,CAN已經(jīng)在汽車工業(yè)、航空工業(yè)、工業(yè)控制等領(lǐng)域中得到了廣泛應(yīng)用。文中以S5PV210微處理器為硬件平臺,通過擴(kuò)展其SPI接口,實(shí)現(xiàn)了CAN控制器MCP 2515在Android操作系統(tǒng)下的驅(qū)動程序開發(fā)。
1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)數(shù)據(jù)的收發(fā)都要通過CAN總線模塊,CAN總線模塊設(shè)計框圖如圖1所示,S5PV210通過SPI接口實(shí)現(xiàn)與MCP2515的連接,MCP2515的CAN輸入輸出引腳和CAN總線收發(fā)器MCP2551接在一起,構(gòu)成一個完整的CAN總線收發(fā)模塊。
1.1 S5PV210的SPI接口
接口協(xié)議(Setial Peripheral Interface,SPI)是Motorola公司推出的一種使用時鐘線和2根數(shù)據(jù)線傳輸數(shù)據(jù)的同步串行協(xié)議,即串行外設(shè)接口。S5PV210提供的SPI接口主要用于S5PV210與外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,可以實(shí)現(xiàn)全雙工通信,傳輸速度最高可達(dá)5 Mbit·s-1。SPI總線接口主要用于主從分布式的通信網(wǎng)絡(luò),由4根線即可完成主從之間的數(shù)據(jù)通信,這4根線分別為:時鐘線(SCLK)、數(shù)據(jù)輸入線(SI)、數(shù)據(jù)輸出線(SO)和片選線(CS),其中CS的有效與否完全由主控制器決定,時鐘信號也由主控制器發(fā)出。
1.2 CAN控制器MCP2515
MCP2515是Microchip生產(chǎn)的一款獨(dú)立CAN協(xié)議控制器。MCP2515支持CAN1.2、CAN2.0A、主動和被動CAN2.0B等版本的協(xié)議,能夠發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展報文,它還同時具備驗(yàn)收過濾以及報文管理功能。圖2為MCP2515的結(jié)構(gòu)框圖。該器件主要由3個部分組成:(1)CAN協(xié)議引擎。(2)為器件及其運(yùn)行進(jìn)行配置的控制邏輯和SRAM寄存器。(3)SPI協(xié)議模塊。
1.3 CAN收發(fā)器MCP2551
MCP2551是一個可容錯的高速CAN器件,可作為CAN協(xié)議控制器和物理總線接口。MCP2551可為CAN協(xié)議控制器提供差分收發(fā)能力,它完全符合ISO—11898標(biāo)準(zhǔn),且滿足24 V電壓要求。它的工作速率達(dá)1 Mbit·s-1。
評論