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

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的智能小區(qū)監(jiān)控系統(tǒng)的設(shè)計(jì)

          基于單片機(jī)的智能小區(qū)監(jiān)控系統(tǒng)的設(shè)計(jì)

          作者: 時(shí)間:2012-11-15 來(lái)源:網(wǎng)絡(luò) 收藏
          TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; PADDING-TOP: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  通信的發(fā)起方總是主機(jī)開(kāi)始,由PC機(jī)控制通訊的主動(dòng)性,在通訊過(guò)程中處于被動(dòng)地位。由于各分機(jī)共享同一頻率,為避免沖突,PC機(jī)通過(guò)巡查分機(jī)的工作方式查詢各是否有信息要上報(bào)給PC機(jī)。

            為了保證PC機(jī)與多臺(tái)之間能夠準(zhǔn)確、可靠的通信,確定一個(gè)明確而合理的通訊協(xié)議是關(guān)鍵。包括對(duì)數(shù)據(jù)格式、通訊方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問(wèn)題做出統(tǒng)一規(guī)定。

            為區(qū)分不同的分機(jī),必須為每一個(gè)分機(jī)分配一個(gè)唯一的地址,此地址唯一區(qū)別各單片機(jī)。數(shù)據(jù)格式采用數(shù)據(jù)包的形式,一次傳輸一組數(shù)據(jù),數(shù)據(jù)包格式如下所示:

            基于單片機(jī)的智能小區(qū)監(jiān)控系統(tǒng)的設(shè)計(jì)

            起始標(biāo)志位:1個(gè)字節(jié) 數(shù)據(jù)長(zhǎng)度:1個(gè)字節(jié)

            分機(jī)地址:1個(gè)字節(jié) 數(shù)據(jù)內(nèi)容:n個(gè)字節(jié)

            和檢驗(yàn):2個(gè)字節(jié) 命令/數(shù)據(jù):1個(gè)字節(jié)

            結(jié)束標(biāo)志位:1個(gè)字節(jié)

            主機(jī)向單個(gè)單片機(jī)傳數(shù)據(jù)時(shí),首先,上位機(jī)順次發(fā)送起始標(biāo)志位,目的地址位,數(shù)據(jù),生成檢驗(yàn)位,結(jié)束標(biāo)志位,上位機(jī)發(fā)送后每個(gè)下位機(jī)都產(chǎn)生中斷把上位機(jī)數(shù)據(jù)包都接收下來(lái),當(dāng)接收到結(jié)束標(biāo)志字符時(shí),表示接受到一幀完整的數(shù)據(jù)包,然后對(duì)數(shù)據(jù)解包,把接收到的目的地和本機(jī)地址進(jìn)行比較,如果不是則馬上跳出中斷服務(wù)程序,相同的話則表示要和本下位機(jī)進(jìn)行通訊。主機(jī)發(fā)完信息后便等待該分機(jī)的接收應(yīng)答。當(dāng)接收數(shù)據(jù)包完成后,接受方也生成相應(yīng)的檢驗(yàn)和,如果接受方生成的檢驗(yàn)和與接收到的檢驗(yàn)和一致,則表明這次通訊成功,下位機(jī)根據(jù)接收到的內(nèi)容給上位機(jī)發(fā)送相應(yīng)的反饋信息。如果不一致,則表明此次通訊失敗,下位機(jī)給上位機(jī)發(fā)送失敗信息,要求上位機(jī)重新發(fā)送。

            由于系統(tǒng)采用上位機(jī)巡查下位機(jī)的工作方式,單片機(jī)在通信過(guò)程中處于被動(dòng)地位,只能其被輪詢到的時(shí)候才能給上位機(jī)發(fā)送數(shù)據(jù),否則即使信息要上報(bào)主機(jī)時(shí),也必須處于等待。上位機(jī)從第一分機(jī)依次查詢下位機(jī),給巡查到的下位機(jī)發(fā)送查詢命令,詢問(wèn)該單片機(jī)是否有信息要上報(bào)給上位機(jī)。被輪詢的單片機(jī)如果沒(méi)有信息要上報(bào)給上位機(jī)的話就給上位機(jī)發(fā)送無(wú)上報(bào)要求的指令,上位機(jī)接受到此指令后便輪詢下一地址的分機(jī);若分機(jī)有數(shù)據(jù)需上報(bào)便回發(fā)一個(gè)有上報(bào)要求給主機(jī),主機(jī)收到后便等待分機(jī)上報(bào)數(shù)據(jù),有上報(bào)數(shù)據(jù)的分機(jī)組織好數(shù)據(jù)后上報(bào)給主機(jī),然后等待主機(jī)的接收應(yīng)答。主機(jī)收到分機(jī)上報(bào)的數(shù)據(jù)后進(jìn)行檢查,若正確接收發(fā)正確接收應(yīng)答,否則發(fā)錯(cuò)誤接收應(yīng)答。當(dāng)接收錯(cuò)誤后,主機(jī)等待分機(jī)再次上報(bào)數(shù)據(jù),分機(jī)收到接收錯(cuò)誤應(yīng)答后再次發(fā)送數(shù)據(jù)。

            信號(hào)傳輸中接受與發(fā)送都采用中斷方式,多機(jī)通信從機(jī)中斷服務(wù)程序如圖3所示。

            基于單片機(jī)的智能小區(qū)監(jiān)控系統(tǒng)的設(shè)計(jì)

            5.PC機(jī)通信程序設(shè)計(jì)

            上位機(jī)的軟件是基于VC++6.0實(shí)現(xiàn)的,其中的重點(diǎn)和難點(diǎn)是進(jìn)行實(shí)時(shí)的串行通訊。應(yīng)用VC++編寫串行通信程序,通??蓺w納為如下四種方法:一是利用Windows API通信函數(shù);二是使用Microsoft提供的Microsoft Communications Control控件(簡(jiǎn)稱MSComm);三是利用第三方編寫的通信類(如MuMega Technologies公司提供的Cserial類);四是在VC++中用端口操作指令直接對(duì)串行端口編程,實(shí)現(xiàn)串行通信。本系統(tǒng)中采用的是MSComm控件,它是通過(guò)串行端口發(fā)送和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能,使用非常方便。

           



          評(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); })();