<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于WinCE環(huán)境的CAN適配卡驅動(dòng)程序的設計與實(shí)現

基于WinCE環(huán)境的CAN適配卡驅動(dòng)程序的設計與實(shí)現

作者: 時(shí)間:2009-10-22 來(lái)源:網(wǎng)絡(luò ) 收藏

3

從引言部分可知,流接口可以為各種設備提供統一的訪(fǎng)問(wèn)接口,可以是字符設備、塊設備、虛擬設備和網(wǎng)絡(luò )設備等。的主要流程為[5]:應用程序調用函數CreateFile獲取設備句柄,文件系統將會(huì )調用CAN驅動(dòng)例程中的CAN_Open來(lái)響應應用程序的請求。當應用程序調用ReadFile函數讀取CAN設備上的字符時(shí),文件系統將會(huì )調用CAN驅動(dòng)例程中的CAN_Read函數來(lái)讀取CAN設備上的字符。

對于本文流接口的而言,是通過(guò)如下幾個(gè)模塊來(lái)驅動(dòng)的:CAN_Open、CAN _Close、CAN _Read、CAN _Write、CAN _IoControl和CAN _Init等模塊。其中CAN _Init模塊是系統啟動(dòng)時(shí)由文件系統自動(dòng)調用的,主要完成設備的初始化工作。另外,對于流接口驅動(dòng)程序可選函數CAN _PowerUp和CAN _PowerDown,主要實(shí)現電源管理的功能。

限于篇幅,本文僅對主要的CAN_Write模塊、CAN_Read模塊和中斷服務(wù)線(xiàn)程模塊的實(shí)現作如下詳細詳細討論。

3.1 CAN_Write模塊的實(shí)現

當CAN卡控制器在發(fā)送報文時(shí),發(fā)送緩沖區對寫(xiě)操作是鎖定的,這樣CPU必須檢查狀態(tài)寄存器的發(fā)送緩沖區狀態(tài)標志TBS,以確定可以將一個(gè)新報文寫(xiě)入發(fā)送緩沖區中,當發(fā)送緩沖區被鎖定(即標志TBS=0)時(shí),CPU周期性地查詢(xún)狀態(tài)寄存器,等待發(fā)送緩沖區被釋放;當發(fā)送緩沖區被釋放(即標志TBS=1)時(shí),CPU將新報文寫(xiě)入發(fā)送緩沖區中,并置命令寄存器的發(fā)送請求標志TR,該標志導致發(fā)送的啟動(dòng)。一旦發(fā)送成功中斷產(chǎn)生,表明CAN報文已經(jīng)發(fā)送成功。重復上面的工作就可以完成發(fā)送多個(gè)CAN報文的工作。CAN_Write模塊的流程圖如圖3所示。

3 CAN_Write函數的流程圖



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>