新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于WINCE的CAN驅動的研究與實現

        基于WINCE的CAN驅動的研究與實現

        作者: 時間:2012-03-24 來源:網絡 收藏

        5 運行設計

        5.1 運行控制

        1 整個父設備連同子設備在同一個線程下工作。注意不要阻塞了線程。

        2 通過_DATA data可以得到接口指針,方法如下(_DATA是組態軟件中封裝了重要的用戶數據的結構體):

        MCGS_DATA* pData;

        pData = (MCGS_DATA*)data.m_pParentData;

        if (pData)

        {

        g_pDevCanProxy = (CDevCanProxy*)pData->m_pParentData;

        if (g_pDevCanProxy)

        { //下面就可以對Can卡進行讀寫操作了

        g_pDevCanProxy->SvrWriteAndRead(dwAimCanId, SendBuf);

        }

        }

        5.2 運行時間

        由于父設備連同子設備在同一個線程下工作,根據WINCE的消息響應機制,每個子設備論詢采集消息,CPU執行消息隊列如下所示:

        在運行環境中,WINCE的消息響應的最小時隙為2毫秒,每個子設備的采集又有一個采集周期,設備命令是沒有時間周期概念的,按照Windows消息隊列來處理。

        第一種,如果按照主從模式來開發子設備就先假設了子設備(設備)不會主動發送數據,并且不會收到上個設備的干擾數據,在一般情況中這是不可能的。但可以這樣處理,在向設備發送數據時,先等待一個周期,保證沒有上個設備的干擾數據,再把它清空,最后才進行正常的設備采集工作。

        第二種,如果按照分布式實時控制模式進行開發,主要流程包括按照協議組合數據包,發送幀信息,接收幀信息和解析數據包。

        5.3 系統出錯處理設計

        設計原則:能從硬件上屏蔽數據的盡量從硬件上屏蔽(初始化設置控制器,驗收寄存器和屏蔽寄存器),再從軟件上屏蔽數據。如果不能達到設備地址解析一致性,就認為設計上是有缺陷的。當驅動不能通訊時,重啟運行環境或進行復位操作就可以了。

        6 結論

        在本文中,首先介紹了的基本原理以及在工業中的應用。然后以的使用為例,提出了解決了CAN在實際中的系統設計,優化方案以及代碼實現,并給出了在基于WINDOWS CE下的工控機上的具體實現。

        在北京中聯克龍科技發展有限公司,天地科技股份有限公司常州自動化分公司等公司,該系統解決方案都達到了令人滿意的效果,滿足了用戶遠程高速通訊的要求,能長期穩定的運行。這些項目的經濟效益到達了五百萬元。

        本文作者創新點:提出了CAN在實際中的系統設計,優化方案以及代碼實現,設計并實現了基于WINCE的滿足工業現場要求的CAN驅動。

        參 考 文 獻

        [1]WINDOWS CE 內核定制及應用開發 作者:周毓林。

        [2]吳振綱,陳虎.PLC的人機接口與編程[J].微計算機信息,2005,8-1:21-23。

        [3]WINDOWS CE 權威指南 作者:(美)Chris Muench。

        [4]Windows VxD與設備驅動程序權威指南(第二版) 作者:孫喜明譯。


        上一頁 1 2 3 下一頁

        關鍵詞: WINDOWSCE 嵌入式系統 CAN MCGS

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 故城县| 麻江县| 东山县| 涿鹿县| 汝阳县| 汝城县| 平邑县| 格尔木市| 洞头县| 彭山县| 乌兰察布市| 页游| 牙克石市| 永吉县| 东阿县| 自治县| 白水县| 贵德县| 玉龙| 深水埗区| 平陆县| 台南县| 马龙县| 成安县| 浦江县| 高清| 秭归县| 于都县| 光泽县| 富源县| 乌兰浩特市| 绥化市| 唐山市| 嘉鱼县| 酉阳| 唐海县| 交口县| 抚州市| 宣恩县| 南丹县| 云安县|