基于WINCE的CAN驅(qū)動(dòng)的研究與實(shí)現(xiàn)
5 運(yùn)行設(shè)計(jì)
5.1 運(yùn)行控制
1 整個(gè)父設(shè)備連同子設(shè)備在同一個(gè)線程下工作。注意不要阻塞了線程。
2 通過(guò)MCGS_DATA data可以得到接口指針,方法如下(MCGS_DATA是MCGS組態(tài)軟件中封裝了重要的用戶數(shù)據(jù)的結(jié)構(gòu)體):
MCGS_DATA* pData;
pData = (MCGS_DATA*)data.m_pParentData;
if (pData)
{
g_pDevCanProxy = (CDevCanProxy*)pData->m_pParentData;
if (g_pDevCanProxy)
{ //下面就可以對(duì)Can卡進(jìn)行讀寫(xiě)操作了
g_pDevCanProxy->SvrWriteAndRead(dwAimCanId, SendBuf);
}
}
5.2 運(yùn)行時(shí)間
由于父設(shè)備連同子設(shè)備在同一個(gè)線程下工作,根據(jù)WINCE的消息響應(yīng)機(jī)制,每個(gè)子設(shè)備論詢采集消息,CPU執(zhí)行消息隊(duì)列如下所示:
在運(yùn)行環(huán)境中,WINCE的消息響應(yīng)的最小時(shí)隙為2毫秒,每個(gè)子設(shè)備的采集又有一個(gè)采集周期,設(shè)備命令是沒(méi)有時(shí)間周期概念的,按照Windows消息隊(duì)列來(lái)處理。
第一種,如果按照主從模式來(lái)開(kāi)發(fā)子設(shè)備就先假設(shè)了子設(shè)備(CAN設(shè)備)不會(huì)主動(dòng)發(fā)送數(shù)據(jù),并且不會(huì)收到上個(gè)設(shè)備的干擾數(shù)據(jù),在一般情況中這是不可能的。但可以這樣處理,在向設(shè)備發(fā)送數(shù)據(jù)時(shí),先等待一個(gè)周期,保證沒(méi)有上個(gè)設(shè)備的干擾數(shù)據(jù),再把它清空,最后才進(jìn)行正常的設(shè)備采集工作。
第二種,如果按照分布式實(shí)時(shí)控制模式進(jìn)行開(kāi)發(fā),主要流程包括按照協(xié)議組合數(shù)據(jù)包,發(fā)送幀信息,接收幀信息和解析數(shù)據(jù)包。
5.3 系統(tǒng)出錯(cuò)處理設(shè)計(jì)
設(shè)計(jì)原則:能從硬件上屏蔽數(shù)據(jù)的盡量從硬件上屏蔽(初始化設(shè)置控制器,驗(yàn)收寄存器和屏蔽寄存器),再?gòu)能浖掀帘螖?shù)據(jù)。如果不能達(dá)到設(shè)備地址解析一致性,就認(rèn)為設(shè)計(jì)上是有缺陷的。當(dāng)驅(qū)動(dòng)不能通訊時(shí),重啟運(yùn)行環(huán)境或進(jìn)行復(fù)位操作就可以了。
6 結(jié)論
在本文中,首先介紹了CAN的基本原理以及在工業(yè)中的應(yīng)用。然后以CAN在嵌入式系統(tǒng)的使用為例,提出了解決了CAN在實(shí)際中的系統(tǒng)設(shè)計(jì),優(yōu)化方案以及代碼實(shí)現(xiàn),并給出了在基于WINDOWS CE下的工控機(jī)上的具體實(shí)現(xiàn)。
在北京中聯(lián)克龍科技發(fā)展有限公司,天地科技股份有限公司常州自動(dòng)化分公司等公司,該系統(tǒng)解決方案都達(dá)到了令人滿意的效果,滿足了用戶遠(yuǎn)程高速通訊的要求,能長(zhǎng)期穩(wěn)定的運(yùn)行。這些項(xiàng)目的經(jīng)濟(jì)效益到達(dá)了五百萬(wàn)元。
本文作者創(chuàng)新點(diǎn):提出了CAN在實(shí)際中的系統(tǒng)設(shè)計(jì),優(yōu)化方案以及代碼實(shí)現(xiàn),設(shè)計(jì)并實(shí)現(xiàn)了基于WINCE的滿足工業(yè)現(xiàn)場(chǎng)要求的CAN驅(qū)動(dòng)。
參 考 文 獻(xiàn)
[1]WINDOWS CE 內(nèi)核定制及應(yīng)用開(kāi)發(fā) 作者:周毓林。
[2]吳振綱,陳虎.PLC的人機(jī)接口與編程[J].微計(jì)算機(jī)信息,2005,8-1:21-23。
[3]WINDOWS CE 權(quán)威指南 作者:(美)Chris Muench。
[4]Windows VxD與設(shè)備驅(qū)動(dòng)程序權(quán)威指南(第二版) 作者:孫喜明譯。
評(píng)論