<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于CAN總線的監(jiān)控系統(tǒng)設(shè)計(jì)及位定時(shí)分析

          一種基于CAN總線的監(jiān)控系統(tǒng)設(shè)計(jì)及位定時(shí)分析

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

            can應(yīng)用層協(xié)議

            在can 2.0規(guī)范中,只對(duì)物理層和數(shù)據(jù)鏈路層作了規(guī)定,用戶需要根據(jù)自己的需求制定應(yīng)用層協(xié)議。本設(shè)計(jì)以各個(gè)節(jié)點(diǎn)為控制對(duì)象,設(shè)計(jì)其應(yīng)用層通信協(xié)議。can總線上傳輸?shù)男畔⒁话憧煞譃?類:

            命令信息:包括上位機(jī)要數(shù)命令、上位機(jī)控制命令。每周期上位機(jī)經(jīng)can—rs232轉(zhuǎn)換模塊下發(fā)至各個(gè)節(jié)點(diǎn)要數(shù)命令。上位機(jī)接到狀態(tài)信息后,根據(jù)情況下發(fā)控制命令,經(jīng)由轉(zhuǎn)換模塊下發(fā)至各個(gè)節(jié)點(diǎn)模塊。

            狀態(tài)信息。節(jié)點(diǎn)接到命令信息后,由各個(gè)節(jié)點(diǎn)采集現(xiàn)場(chǎng)數(shù)據(jù)信息,發(fā)送到can—rs232轉(zhuǎn)換模塊,再由其上傳給上位機(jī)。信息包括:設(shè)備開(kāi)關(guān)狀態(tài),電壓電流量等。

            根據(jù)系統(tǒng)實(shí)際情況,本系統(tǒng)can2.0標(biāo)準(zhǔn)幀格式的基礎(chǔ)上(見(jiàn)表2),制定了一個(gè)多幀傳輸?shù)膽?yīng)用層協(xié)議。協(xié)議中,實(shí)用軟件濾波,即屏蔽了驗(yàn)收濾波器,將除了外,包括11位標(biāo)識(shí)符的第二、三字節(jié)都進(jìn)行了分配,如表3所示。

            其中,可以根據(jù)實(shí)際情況而定。

            標(biāo)識(shí)符id10~id3代表模塊地址,所以協(xié)議理論上可滿足256個(gè)控制節(jié)點(diǎn),標(biāo)識(shí)符id2、id0以及該字節(jié)后六位定義為幀類型:命令幀或狀態(tài)幀,數(shù)據(jù)信息這樣劃分簡(jiǎn)單明了。上位機(jī)根據(jù)模塊地址收集判斷節(jié)點(diǎn)信息,并下發(fā)相應(yīng)命令。協(xié)議還規(guī)定,按優(yōu)先權(quán)由高到低,從低向高為模塊分配地址,以保證總線競(jìng)爭(zhēng)中優(yōu)先權(quán)高的節(jié)點(diǎn)能更先占有總線。

          系統(tǒng)軟件設(shè)計(jì)

            基于總體設(shè)計(jì)要求和硬件組成,結(jié)合can總線協(xié)議的模型結(jié)構(gòu),整個(gè)系統(tǒng)的軟件設(shè)計(jì)可以分為兩部分:節(jié)點(diǎn)部分、上位機(jī)部分。

            節(jié)點(diǎn)部分包括:初始化模塊,can通信模塊,串行通信模塊,數(shù)據(jù)處理模塊。正確的can初始化,可以充分利用can總線的優(yōu)勢(shì),保證can通信正確可靠工作。對(duì)can節(jié)點(diǎn)初始化只有在復(fù)位模式下才可以進(jìn)行,初始化主要包括工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器(amr)的設(shè)置、接收代碼寄存器(acr)的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器(ier)的設(shè)置等。在完成can控制器的初始化設(shè)置以后,can控制器就可以回到工作狀態(tài),執(zhí)行正常的通信任務(wù)。其他模塊,不再詳述。

            上位機(jī)部分:上位機(jī)軟件由vc++6.0軟件編寫,應(yīng)用mfc類庫(kù)編寫并生成了具有windows風(fēng)格的人機(jī)交互界面。軟件應(yīng)用mscomm控件通過(guò)串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供了串行通訊功能。microsoft communications control(mscomm)是microsoft公司提供的簡(jiǎn)化windows下串行通信編程的activex控件,為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。具體來(lái)說(shuō),它提供了兩種處理通信問(wèn)題的方法:一是事件驅(qū)動(dòng)(event-driven)方法,一是查詢法。我們采用事件驅(qū)動(dòng)方式。使用者可以通過(guò)良好的人機(jī)界面對(duì)整個(gè)系統(tǒng)進(jìn)行實(shí)時(shí)監(jiān)控。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();