新聞中心

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

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

作者: 時(shí)間:2009-08-31 來源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://butianyuan.cn/article/173621.htm

2 組態(tài)通訊方法
目前,組態(tài)多是通過動(dòng)態(tài)數(shù)據(jù)交換(DDE)或通過自己開發(fā)通訊驅(qū)動(dòng)程序完成。DDE是Windows平臺(tái)上的一個(gè)完整的協(xié)議,組態(tài)王通過該協(xié)議與其他應(yīng)用程序交換數(shù)據(jù)。但不可靠和非實(shí)時(shí)。而自己開發(fā)通訊驅(qū)動(dòng)程序會(huì)帶來困難,增加系統(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采用差分式傳輸信號(hào),最大傳輸距離為1 219 m.最大傳輸速率為10 Mb/s.對(duì)同時(shí)出現(xiàn)的兩條信號(hào)線A、B的干擾有較強(qiáng)的抑制能力。當(dāng)兩條線絞在一起時(shí),被通信各種分布參數(shù)耦合過來的干擾信號(hào)可平均地分配到這兩條線上,因此對(duì)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為高電平時(shí),驅(qū)動(dòng)器使能而接收器為高阻態(tài),此時(shí)可發(fā)送數(shù)據(jù);而當(dāng)P1.7為低電平時(shí).接收器使能而驅(qū)動(dòng)器為高阻態(tài),此時(shí)接收數(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)全部斷開時(shí),對(duì)應(yīng)的本機(jī)地址是11 11。下位單片機(jī)在開始工作前需先設(shè)定自己的地址,這樣,在開機(jī)自檢時(shí)下位單機(jī)片就能獲取本機(jī)地址。


上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

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

關(guān)閉