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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于RS485的組態(tài)王與單片機(jī)多機(jī)串口通信設(shè)計

          基于RS485的組態(tài)王與單片機(jī)多機(jī)串口通信設(shè)計

          作者: 時間:2014-06-09 來源:網(wǎng)絡(luò) 收藏

          1 引言

          本文引用地址:http://www.ex-cimer.com/article/248005.htm

          隨著工業(yè)化要求提高,分布式系統(tǒng)發(fā)展以及控制設(shè)備與監(jiān)控設(shè)備之間通訊需要,組態(tài)軟件設(shè)計的監(jiān)控系統(tǒng)逐步普及?,F(xiàn)在組態(tài)軟件繁多,比如KingVieW()、 MCGS、WinCC等。KingView軟件基于Microsoft Windows XP,NT/2000操作系統(tǒng).具有友好的人機(jī)操作界面、強(qiáng)大的IO設(shè)備端口驅(qū)動能力,可與各種PLC、智能儀表、智能模塊、板卡、變頻器等實(shí)時通訊。由 于在檢測大量模擬量的工業(yè)現(xiàn)場使用PLC與組態(tài)軟件通訊勢必增加產(chǎn)品成本。而單片機(jī)接口豐富,與A/D轉(zhuǎn)換模塊組合可以完成相同的工作,并且系統(tǒng)可靠、成本低。

          2 與單片機(jī)的串口通訊方法

          目前,與單片機(jī)的通信多是通過動態(tài)數(shù)據(jù)交換(DDE)或通過自己開發(fā)通訊驅(qū)動程序完成。DDE是Windows平臺上的一個完整的通信協(xié) 議,組態(tài)王通過該協(xié)議與其他應(yīng)用程序交換數(shù)據(jù)。但不可靠和非實(shí)時。而自己開發(fā)通訊驅(qū)動程序會帶來設(shè)計困難,增加系統(tǒng)開發(fā)周期,可行性不高。組態(tài)王專門提供 一種與單片機(jī)多機(jī)串口通信方法,可滿足大多數(shù)系統(tǒng)需求。

          3 PC機(jī)與單片機(jī)的硬件接口電路

          圖1為上位PC機(jī)與下位單片機(jī)80C51的連接電路。PC機(jī)與單片機(jī)本身都自帶串行通訊接口,但由于在分布式系統(tǒng)中PC機(jī)與各單片機(jī)的分布不集 中,不能利用RS-232通訊傳輸,只能改用RS-485。RS-485采用差分式傳輸信號,最大傳輸距離為1 219 m.最大傳輸速率為10 Mb/s.對同時出現(xiàn)的兩條信號線A、B的干擾有較強(qiáng)的抑制能力。當(dāng)兩條線絞在一起時,被通信各種分布參數(shù)耦合過來的干擾信號可平均地分配到這兩條線上, 因此對RS-485的差分式傳輸線路而言,用雙絞線可獲得較強(qiáng)的抗干擾能力。RS-485采用二線與四線平衡傳輸方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信,但需要在傳輸線上接電阻(約120 Ω)。

           

           

          由于80C51系列單片機(jī)STC89C52串行接口的,TTL電氣特性與RS-485電氣特性不相符,STC89C52不能與RS-485直接連接,需要電氣轉(zhuǎn)換。這里采用Maxim公司的MAX485,圖2為其接口電路。

           

           

          圖2中,MAX485的RE和DE南STC89C52單片機(jī)的P1.7控制。由于MAX485以半雙工的方式工作,因此由P1.7控制其發(fā)送與 接收。當(dāng) P1.7為高電平時,驅(qū)動器使能而接收器為高阻態(tài),此時可發(fā)送數(shù)據(jù);而當(dāng)P1.7為低電平時.接收器使能而驅(qū)動器為高阻態(tài),此時接收數(shù)據(jù)。另外由于PC機(jī) 的COM口是基于RS-232的串行通訊口.其電氣特性與RS-485不一致,因此也需電平轉(zhuǎn)換。

          圖3為單片機(jī)地址設(shè)置電路,單片機(jī)STC89C52的P1口的低4位用于設(shè)定本機(jī)地址,通過4位DIP開關(guān)的組合最多可設(shè)定16種地址。如當(dāng)4 位開關(guān)全部斷開時,對應(yīng)的本機(jī)地址是11 11。下位單片機(jī)在開始工作前需先設(shè)定自己的地址,這樣,在開機(jī)自檢時下位單機(jī)片就能獲取本機(jī)地址。

           

           

          4 系統(tǒng)通訊協(xié)議設(shè)計

          組態(tài)王提供了通過PC機(jī)與單片機(jī)串口進(jìn)行十六進(jìn)制數(shù)據(jù)通訊的驅(qū)動,而驅(qū)動中已經(jīng)規(guī)定好其通訊協(xié)議。

          4.1 通訊參數(shù)

          通訊參數(shù)包括數(shù)據(jù)位、停止位、波特率、校驗(yàn)方式。其中,數(shù)據(jù)位、停止位、波特率由單片機(jī)決定。組態(tài)王中的設(shè)定和單片機(jī)一致即可。校驗(yàn)方式參照“數(shù)據(jù)傳輸格式”部分。

          4.2 數(shù)據(jù)傳輸格式與協(xié)議說明

          格式1 組態(tài)王發(fā)送地址請求格式(檢驗(yàn)位為1):

           

          格式

           

          格式2單片機(jī)應(yīng)答地址格式(檢驗(yàn)位為0):

           

          格式

           

          格式3組態(tài)王讀數(shù)據(jù)請求格式(檢驗(yàn)位為0):

           

          格式

           

          格式4單片機(jī)應(yīng)答讀數(shù)據(jù)格式(正確)(檢驗(yàn)位為O):

           

          格式

           

          格式5單片機(jī)應(yīng)答讀數(shù)據(jù)格式(錯誤)(檢驗(yàn)位為0):

           

          格式

           

          格式6組態(tài)王寫數(shù)據(jù)請求格式(檢驗(yàn)位為O):

           

          格式

           

          格式7單片機(jī)應(yīng)答寫數(shù)據(jù)格式(正確)(檢驗(yàn)位為0):

           

          格式

           

          協(xié)議具體說明如下:

          ENQ(頭):H05,詢問,請求幀的開始代碼;

          ACK(頭):H06,確認(rèn),ACK應(yīng)答幀的開始代碼;

          NAK(頭):H15,否認(rèn),NAK應(yīng)答幀的開始代碼;

          EOT(尾):H04,正文的結(jié)束,請求幀的結(jié)束ASCII代碼;

          ETX(尾):H03,結(jié)束正文,應(yīng)答幀的結(jié)束ASCII代碼;

          數(shù)據(jù)傳輸:所有數(shù)據(jù)均為16進(jìn)制數(shù);

          Sta:設(shè)備地址,1個字節(jié),組態(tài)王設(shè)備地址范圍為0~255,此地址為單片機(jī)的地址,由單片機(jī)中的程序決定;

          R:讀標(biāo)志,1個字節(jié)(0x52);

          W:寫標(biāo)志,1個字節(jié)(0x57);

          DataType:需要交換的數(shù)據(jù)類型,1字節(jié)。其中“1”代表字節(jié),“2”代表字,“3”代表浮點(diǎn)型;

          DataNum:讀取數(shù)據(jù)的個數(shù),1字節(jié);

          DataAddr:數(shù)據(jù)偏移地址,2字節(jié),低字節(jié)在前,高字節(jié)在后;

          Data:實(shí)際傳輸?shù)臄?shù)據(jù),低字節(jié)在前,高字節(jié)在后;

          DataLong:單片機(jī)返回Data的字節(jié)數(shù),2字節(jié),低字節(jié)在前,高字節(jié)在后:

          CRC:為從第1個字節(jié)至CRC前的所有字節(jié)的異或值,1字節(jié);

          ErrorCode:錯誤代碼,“0”代表正確應(yīng)答,“1”代表數(shù)據(jù)類型錯誤,“2”代表數(shù)據(jù)范圍超限,“3”代表指令無法識別。

          5 單片機(jī)通訊程序流程設(shè)計

          圖4為組態(tài)王程序流程,圖5為單片機(jī)通訊程序流程。80C51系列單片機(jī)多機(jī)通訊可歸納如下:

           

           

           

           

          上位機(jī)的SM2=0,所有下位機(jī)的SM2=1,以便只接收上位機(jī)發(fā)來的地址;

          上位機(jī)給下位機(jī)發(fā)送地址時,第9數(shù)據(jù)位應(yīng)該為1,以指示下位機(jī)接收這個地址;

          所有下位機(jī)在SM2=1,RB8=1和RI=0時,接收上位機(jī)發(fā)來的地址,進(jìn)入相應(yīng)中斷服務(wù)程序,并與本機(jī)地址相比較,以確認(rèn)是否為被尋址的下位機(jī);

          被尋址下位機(jī)通過指令清除SM2,以便正常接收上位機(jī)發(fā)送來的數(shù)據(jù),并向上位機(jī)發(fā)回接收到的地址以便核實(shí)。未被尋址的下位機(jī)保持SM2=1,并退出各自的中斷服務(wù)程序;

          完成上位機(jī)和被尋址下位機(jī)之間的數(shù)據(jù)通信后,被尋址從機(jī)使SM2=1,并退出中斷服務(wù)程序,等待下次通信。

          6 結(jié)束語

          該系統(tǒng)實(shí)現(xiàn)組態(tài)王軟件與單片機(jī)多機(jī)的實(shí)時通信,已經(jīng)在實(shí)際項目中得到應(yīng)用。應(yīng)用的結(jié)果表明該設(shè)計方法簡單有效,實(shí)時性好,成本低廉,可以在控制與監(jiān)控系統(tǒng)中推廣應(yīng)用。

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          通信相關(guān)文章:通信原理


          雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理


          關(guān)鍵詞: RS485 組態(tài)王

          評論


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