基于RS485總線的自動(dòng)化檢測(cè)系統(tǒng)的研制
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í),用于生產(chǎn)檢測(cè)和實(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所示。
數(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)品的自動(dòng)化檢測(cè)提供了很好的借鑒作用。并且通過對(duì)該系統(tǒng)的部分修改,可以移植到諸如智能傳感器、工業(yè)控制終端等多種產(chǎn)品的生產(chǎn)檢測(cè)中。
評(píng)論