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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于RS485總線的自動(dòng)化檢測(cè)系統(tǒng)的研制

          基于RS485總線的自動(dòng)化檢測(cè)系統(tǒng)的研制

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

            2.3終端裝置編碼設(shè)計(jì)

            由于RS 485總線是采用半雙工通信方式,每次只能有一對(duì)節(jié)點(diǎn)進(jìn)行通信,故要求每臺(tái)裝置有自己的地址編號(hào)以便測(cè)試辨認(rèn)檢測(cè)。這里設(shè)計(jì)將終端裝置的生產(chǎn)編號(hào)為檢測(cè)時(shí)的地址編號(hào),由于終端裝置的生產(chǎn)編號(hào)具有惟一性,故能夠滿足RS 485通訊的要求。

            生產(chǎn)編號(hào)是終端裝置的惟一標(biāo)識(shí),為了能更好地反映終端裝置的生產(chǎn)信息,同時(shí)考慮編號(hào)生成的自動(dòng)化,我們確定的編號(hào)方法如下:

            YYMMDDHHmmss ID1 ID2 ID3

            其中,YY為年后兩位的BCD碼,MM為月的BCD碼,DD為日的BCD碼,mm為分的BCD碼,ss為秒的BCD碼。該時(shí)間為進(jìn)行測(cè)試時(shí)的時(shí)間,可以由進(jìn)行測(cè)試的計(jì)算機(jī)自動(dòng)生成。ID1和ID2為單字節(jié)的編碼,分別為生產(chǎn)廠家代碼、操作人員代碼;ID3為雙字節(jié)編碼,代表軟硬件版本號(hào)。

            這樣生產(chǎn)編號(hào)的設(shè)計(jì)具有以下優(yōu)點(diǎn):

           ?。?)可以通過測(cè)試軟件,根據(jù)當(dāng)時(shí)時(shí)間等信息自動(dòng)生成,避免人工失誤,并且提高效率;

           ?。?)編號(hào)存人各臺(tái)測(cè)試機(jī)的參數(shù)存儲(chǔ)器中,作為終端的身份標(biāo)識(shí),用于和實(shí)際使用;

           ?。?)根據(jù)該編號(hào),極容易查出終端的生產(chǎn)廠家、時(shí)間以及檢驗(yàn)人員,符合質(zhì)量管理體系的要求;

           ?。?)編號(hào)附帶軟硬件版本號(hào),方便后期的技術(shù)維護(hù)。

            3通訊協(xié)議的設(shè)計(jì)

            RS 485總線只制定了物理層電氣標(biāo)準(zhǔn),對(duì)上層通信協(xié)議沒有規(guī)定,這給設(shè)計(jì)者提供了很大的靈活性。一套完整的通信協(xié)議應(yīng)從多個(gè)方面加以考慮,即要求結(jié)構(gòu)簡(jiǎn)單、功能完備,又要求具有可擴(kuò)充性與兼容性,并且盡量標(biāo)準(zhǔn)化。本系統(tǒng)采用的通信協(xié)議是在充分考慮到系統(tǒng)本身的功能特點(diǎn),再參考國(guó)際標(biāo)準(zhǔn)通信規(guī)約的基礎(chǔ)上制定的,適用于檢測(cè)的計(jì)算機(jī)與檢測(cè)終端進(jìn)行點(diǎn)對(duì)點(diǎn)的或一主多從的數(shù)據(jù)交換方式,具體如下:

            3.1 幀格式

            幀格式

            起始符:數(shù)據(jù)幀起始標(biāo)志,用于觸發(fā)通信,本系統(tǒng)約定為8AH。

            地址碼:地址域由10個(gè)字節(jié)構(gòu)成,每字節(jié)2位BCD碼。地址長(zhǎng)度為20位十進(jìn)制數(shù)。低地址位在先,高地址位在后。當(dāng)?shù)刂窞?99999999999999999999H時(shí),為廣播地址(即向所有終端發(fā)送消息)。地址為11111111111111111111H時(shí),為上位機(jī)。

            控制碼C:一個(gè)字節(jié)長(zhǎng)度,用于指明具體的命令內(nèi)容。每一位代表不同的內(nèi)容對(duì)應(yīng)不同的命令代碼,具體內(nèi)容如表1所示。

            控制碼C

            數(shù)據(jù)字段:本字段分兩部分。第一部分為一個(gè)字節(jié),表示整個(gè)數(shù)據(jù)字段的字節(jié)數(shù)(長(zhǎng)度),L=0表示無(wú)數(shù)據(jù)域。第二部分則為通信中需要傳輸?shù)臄?shù)據(jù)內(nèi)容,包括數(shù)據(jù)標(biāo)識(shí)和數(shù)據(jù)等,其結(jié)構(gòu)隨控制碼的功能而改變。

            校驗(yàn)碼CS:從幀起始符開始到校驗(yàn)碼之前的所有各字節(jié)的模256的和。

            結(jié)束符:數(shù)據(jù)幀結(jié)束標(biāo)志,本系統(tǒng)約定16H。

            3.2數(shù)據(jù)傳輸

            上位機(jī)(PC機(jī))與下位機(jī)(單片機(jī))構(gòu)成的多機(jī)通信系統(tǒng)采用主從式結(jié)構(gòu),數(shù)據(jù)通信總是由主機(jī)發(fā)起。主機(jī)處于發(fā)送狀態(tài)時(shí),從機(jī)總是出于接收狀態(tài)。若上位機(jī)發(fā)送的地址信息與本地從機(jī)相符,則接收該數(shù)據(jù),否則繼續(xù)接收總線上的數(shù)據(jù)。若下位機(jī)需要發(fā)送數(shù)據(jù),則必須等到主機(jī)輪詢過該下位機(jī)時(shí),才可提出請(qǐng)求。這種網(wǎng)絡(luò)模式下,下位機(jī)不會(huì)“偵聽”其他下位機(jī)對(duì)主機(jī)的響應(yīng),這樣就不會(huì)對(duì)其他下位機(jī)產(chǎn)生錯(cuò)誤的響應(yīng)。

            3.3差錯(cuò)控制

            當(dāng)主機(jī)發(fā)出呼叫幀后,如果在規(guī)定的時(shí)間內(nèi)沒有收到從機(jī)的應(yīng)答幀,則主機(jī)認(rèn)為幀丟失并重發(fā)呼叫幀;如果發(fā)送3次仍沒有收到應(yīng)答幀,則系統(tǒng)認(rèn)為該次通信失敗,報(bào)錯(cuò)。在數(shù)據(jù)幀發(fā)送時(shí),本系統(tǒng)采用應(yīng)答方式進(jìn)行差錯(cuò)控制,即接收方向發(fā)送方回發(fā)特殊的控制命令碼,作為傳輸正確以否的的確認(rèn)。如果傳輸中幀完全丟失,則發(fā)送方進(jìn)行超時(shí)處理。

            4結(jié)語(yǔ)

            本文提出了一種基于RS 485總線的安防型GPS定位裝置自動(dòng)測(cè)試系統(tǒng)的設(shè)計(jì),并分別就系統(tǒng)總體結(jié)構(gòu)及檢測(cè)思想的設(shè)計(jì)和主從式多機(jī)通信協(xié)議的設(shè)計(jì)等兩個(gè)方面進(jìn)行了闡述。設(shè)備的實(shí)際使用結(jié)果表明:整個(gè)系統(tǒng)設(shè)計(jì)合理,工作可靠,基于RS 485的總線測(cè)試系統(tǒng)通信可靠性高,可擴(kuò)展性強(qiáng),操作維護(hù)方便,大大提高了安防型GPS定位裝置的故障檢測(cè)與診斷效率。

            該系統(tǒng)的設(shè)計(jì)思路,尤其是自動(dòng)化編碼方式對(duì)其他智能電子產(chǎn)品的提供了很好的借鑒作用。并且通過對(duì)該系統(tǒng)的部分修改,可以移植到諸如智能傳感器、工業(yè)控制終端等多種產(chǎn)品的中。


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

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