色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式WinCE中CAN總線(xiàn)控制器的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

          嵌入式WinCE中CAN總線(xiàn)控制器的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

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


            3.2CAN_Read函數(shù)的設(shè)計(jì)實(shí)現(xiàn)

            根據(jù)CAN協(xié)議規(guī)范,報(bào)文的接收由CAN控制器SJAl000獨(dú)立完成,收到的報(bào)文放在接收緩沖器??梢园l(fā)送給主控制器的報(bào)文由狀態(tài)寄存器的接收緩沖器狀態(tài)標(biāo)志“RBS’’和接收中斷標(biāo)志“RI”標(biāo)出(如果使能)。主控制器會(huì)將這條信息發(fā)送到本地的報(bào)文存儲(chǔ)器,然后釋放接收緩沖器并對(duì)報(bào)文操作。發(fā)送過(guò)程能被SJAl000的中斷請(qǐng)求或查詢(xún)SJAl000的控制段狀態(tài)標(biāo)志來(lái)控制。cAN_Read函數(shù)操作成功則返回實(shí)際讀取的字節(jié)數(shù),否則返回值為-1。CAN_Read函數(shù)程序的流程圖如圖3所示。

            3.3CAN_IntrThread函數(shù)的設(shè)計(jì)實(shí)現(xiàn)

            在SJAl000控制器中,報(bào)文的發(fā)送和接收是采用中斷方式來(lái)完成的。內(nèi)核函數(shù)InterruptInitialize()外部中斷事件和將邏輯中斷號(hào)綁定,這一步就會(huì)使能該中斷。當(dāng)該中斷發(fā)生時(shí),ISR就觸發(fā)該事件生效。完成以上工作后,驅(qū)動(dòng)程序中的IST就可以使用WaitForsin-gleObject()函數(shù)等待中斷的發(fā)生。中斷處理結(jié)束后,IST需要調(diào)用InterruptDone()告訴操作系統(tǒng)中斷處理結(jié)束。中斷服務(wù)線(xiàn)程CAN_IntrThread函數(shù)程序流程圖如圖4所示。

            其他的流接口函數(shù)根據(jù)wincE流接口驅(qū)動(dòng)程序模型進(jìn)行編寫(xiě)。

            4驅(qū)動(dòng)程序的封裝及加載

           通過(guò)上面的工作,能夠編譯得到一個(gè)DLL函數(shù),但它的接口函數(shù)還沒(méi)有導(dǎo)出,還需要告訴鏈接程序需要輸出什么樣的函數(shù)。為此,必須建立一個(gè)def文件,使用WindoWS下自帶的記事本程序編輯一個(gè)文件名為“Can.def”的文件:

            最后需要編寫(xiě)自己的CEC文件。主要是添加一個(gè)BuildMethod,任務(wù)是復(fù)制注冊(cè)表到的系統(tǒng)目錄下面。加一個(gè)bibFile,其主要功能是把編譯的can.dll文件添加到系統(tǒng)內(nèi)核中去。保存寫(xiě)好的CEC文件,在.PlatformBuildm中添加CEC特征到系統(tǒng)選項(xiàng)中去。生成系統(tǒng)時(shí),添加自己的CEC特性,可以包含剛編寫(xiě)的can驅(qū)動(dòng)程序。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉