周正貴
(安徽商貿(mào)職業(yè)技術(shù)學(xué)院電子信息工程系,安徽蕪湖 241002)
基于RS485總線遠(yuǎn)程多點(diǎn)環(huán)境信息監(jiān)測系統(tǒng)設(shè)計
周正貴
(安徽商貿(mào)職業(yè)技術(shù)學(xué)院電子信息工程系,安徽蕪湖 241002)
本文應(yīng)用RS485通信協(xié)議設(shè)計一種遠(yuǎn)程多點(diǎn)環(huán)境信息監(jiān)測系統(tǒng),系統(tǒng)分為數(shù)據(jù)采集層、RS485總線通信協(xié)議、上位機(jī)。采用STC89C52單片機(jī)作為處理器,設(shè)計了單片機(jī)與傳感器、通信模塊硬件電路,并設(shè)計一種RS485多點(diǎn)數(shù)據(jù)傳輸通信協(xié)議。在實(shí)際應(yīng)用中,傳感器數(shù)據(jù)傳輸至RS485總線,最終數(shù)據(jù)傳輸?shù)缴衔粰C(jī)服務(wù)器,管理者可實(shí)時遠(yuǎn)程查詢服務(wù)器數(shù)據(jù),實(shí)現(xiàn)智慧管理,該系統(tǒng)具有一定的應(yīng)用價值。
傳感器;RS485;監(jiān)測;單片機(jī)
實(shí)時獲取礦井、工業(yè)生產(chǎn)、車間管理等場景環(huán)境數(shù)據(jù),有助于及時發(fā)布預(yù)警信息,避免意外事故的發(fā)生。例如,瓦斯爆炸事件頻頻發(fā)生,給國家和家庭帶來了巨大損失,在有些特殊工作區(qū)域內(nèi)氧氣稀少,有毒害氣體彌漫,給作業(yè)人員帶來嚴(yán)重的安全隱患。如何利用信息技術(shù)實(shí)時監(jiān)測環(huán)境信息并及時通知作業(yè)人員,是亟需解決的問題。目前,市場上環(huán)境信息監(jiān)測設(shè)備較多,但有的設(shè)備功能較單一、未能網(wǎng)絡(luò)化。本文設(shè)計了基于RS485總線的多點(diǎn)環(huán)境信息監(jiān)測系統(tǒng),可監(jiān)測多個地方的可燃?xì)怏w、溫濕度等環(huán)境參數(shù),遠(yuǎn)程終端設(shè)備可實(shí)時訪問數(shù)據(jù)。
RS485通信結(jié)構(gòu)是一種半雙工網(wǎng)絡(luò),在同一時刻RS485只能發(fā)送或者接收數(shù)據(jù),其數(shù)據(jù)的發(fā)送和接收是通過/RE和DE引腳控制,通信距離最長可達(dá)1219 m,最大傳輸速率為10Mbps,采用主從機(jī)通信模式,即總線可接多個終端節(jié)點(diǎn)??墒褂肕AX485芯片進(jìn)行電平轉(zhuǎn)換,實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的通信,使用MAX232把單片機(jī)的TTL電平轉(zhuǎn)換成RS232電平。
系統(tǒng)總體設(shè)計框圖如圖1所示。系統(tǒng)采用MQ系列傳感器采集瓦斯?jié)舛?,根?jù)瓦斯?jié)舛戎档牟煌到y(tǒng)會輸出不同的電壓值,并使用TLC549把電壓值轉(zhuǎn)換成數(shù)字量輸出給單片機(jī);應(yīng)用pH值傳感器、溫濕度傳感器等采集環(huán)境信息。系統(tǒng)數(shù)據(jù)傳輸使用RS485進(jìn)行通信,每個從機(jī)采集點(diǎn)將采集到的環(huán)境信息發(fā)送至上位處理中心,并存儲信息到對應(yīng)數(shù)據(jù)庫字段內(nèi),上位機(jī)遠(yuǎn)程移動手機(jī)可鏈接數(shù)據(jù)庫實(shí)時查詢環(huán)境信息參數(shù)。
傳感數(shù)據(jù)采集電路設(shè)計如圖2所示。處理器選用STC89C52系列8位單片機(jī),溫度實(shí)時監(jiān)測采用一線制DS18B20傳感器、MQ瓦斯?jié)舛葌鞲衅鲾?shù)據(jù)轉(zhuǎn)換芯片選用8位TLC549A/D轉(zhuǎn)換器。
圖1 系統(tǒng)總體設(shè)計框圖
圖2 傳感數(shù)據(jù)采集電路設(shè)計
單片機(jī)與RS485芯片接口電路設(shè)計如圖3所示。RS485既可作為發(fā)送器使用,也可作為接收器使用,取決于單片機(jī)的P27端口。當(dāng)P27端口為高電平時,DE有效,即作為發(fā)送器使用;當(dāng)P27為低電平時,/RE有效,即作為接收器使用;RS485芯片的RO、DI引腳分別連接單片機(jī)RXD、TXD端口。
當(dāng)兩個以上RS485通信節(jié)點(diǎn)收發(fā)信息時,會產(chǎn)生數(shù)據(jù)紊亂,則數(shù)據(jù)會失真。為了使通信穩(wěn)定、數(shù)據(jù)收發(fā)正確,本文設(shè)計了一種RS485通信協(xié)議。
協(xié)議原理分析。通信節(jié)點(diǎn)發(fā)送數(shù)據(jù)以幀為單位傳輸,包含幀開始位、數(shù)據(jù)位、校驗(yàn)位、驗(yàn)收濾波等。(1)幀開始位,即起始位,在數(shù)據(jù)開頭定義一字節(jié)用于區(qū)分?jǐn)?shù)據(jù)類別,根據(jù)幀的類別來判斷節(jié)點(diǎn)是否需要接收該幀的數(shù)據(jù);(2)數(shù)據(jù)位,開始設(shè)計一個字節(jié),用于告知接收節(jié)點(diǎn)需要接收多少位數(shù)據(jù),幀的數(shù)據(jù)最多8個字節(jié),可根據(jù)實(shí)際進(jìn)行修改;(3)校驗(yàn)位,采用和校驗(yàn),校驗(yàn)的計算規(guī)則是數(shù)據(jù)的所有最低一位和最高一位的累加求和,校驗(yàn)用來檢測接收到的數(shù)據(jù)是否和發(fā)送的數(shù)據(jù)一樣,接收節(jié)點(diǎn)會把接收到數(shù)據(jù)根據(jù)校驗(yàn)計算規(guī)則進(jìn)行計算,并和接收到的校驗(yàn)值對比判斷,相同則將接收到的數(shù)據(jù)保存到二級緩沖區(qū),否則舍棄。(4)驗(yàn)收濾波,采用一個二維數(shù)據(jù)ID,每一行的第一個元素用來控制是否啟用對應(yīng)的的濾波ID,第二個元素便是濾波ID。如果沒有啟用任何一行的ID,則該節(jié)點(diǎn)可以接收任意幀,如果啟用一行以上的濾波ID,則只接收啟用ID的幀消息,其它丟棄。
3.1.1 多節(jié)點(diǎn)通信原理分析
在該通信系統(tǒng),某一個節(jié)點(diǎn)發(fā)送一幀數(shù)據(jù),其他節(jié)點(diǎn)都會接收到相同數(shù)據(jù)。當(dāng)節(jié)點(diǎn)接收到約定的開始字節(jié)數(shù)據(jù)后,將開始接收處理,否則會把接收到的數(shù)據(jù)舍棄,接著接收ID,根據(jù)濾波規(guī)則進(jìn)行判斷,判斷通過后則接收數(shù)據(jù),數(shù)據(jù)接收最后一個步驟為校驗(yàn),將判斷發(fā)送前和接收到的校驗(yàn)是否一樣,若相同則把接收到的數(shù)據(jù)保存到二級緩沖并把標(biāo)志位轉(zhuǎn)變?yōu)榻邮胀瓿蓸?biāo)志。
3.1.2 數(shù)據(jù)收發(fā)串口數(shù)據(jù)設(shè)置
數(shù)據(jù)發(fā)送時通過串口發(fā)送,且接收也是通過串口接收。串口配置為9600的波特率,9位數(shù)據(jù)位,無校驗(yàn)位,接收中斷。RS485的數(shù)據(jù)接收都是在中斷處理,而主函數(shù)則一直判斷標(biāo)志位是否接收完成,接收完成則進(jìn)行相應(yīng)的處理。在串口配置時,配置為9位數(shù)據(jù)位,其有效的數(shù)據(jù)是8位,發(fā)送時第9位會一直為1,接收的時候會判斷第9位是否為1,如果不是則表示這一個字節(jié)為無效數(shù)據(jù),會把接收到的數(shù)據(jù)全部丟棄。
3.2.1 從機(jī)軟件設(shè)計流程
從機(jī)的軟件設(shè)計流程如圖4所示。從機(jī)節(jié)點(diǎn)上電并初始化RS485,從機(jī)根據(jù)硬件地址的電平計算出ID,根據(jù)此ID配置濾波ID,0~3號機(jī)的濾波ID分別是0xt1、0xt2、0xt3、0xt4,然后從機(jī)按一定頻率采集傳感器數(shù)據(jù)。當(dāng)從機(jī)接收到主機(jī)發(fā)送過的數(shù)據(jù)為0x01、0x01時,從機(jī)會把采集到的傳感器數(shù)據(jù)發(fā)送給主機(jī),發(fā)送幀的ID會根據(jù)從機(jī)的序號而不同,0~3號從發(fā)送的幀的ID分別是0xa0、0xa1、0xa2、0xa3,主機(jī)發(fā)送的幀ID會等于該從機(jī)的濾波ID。
圖4 從機(jī)軟件設(shè)計流程圖
圖5 主機(jī)軟件設(shè)計流程圖
3.2.2 主機(jī)軟件設(shè)計流程
主機(jī)軟件設(shè)計流程如圖5所示。主機(jī)節(jié)點(diǎn)上電并初始化RS485,配置濾波ID為0xa0、0xa1、0xa2、0xa3,根據(jù)從機(jī)發(fā)送的幀ID,主機(jī)會收到從機(jī)發(fā)送的幀消息,但其他的從機(jī)不會接收此幀,然后把解析后的數(shù)據(jù)發(fā)送到PC機(jī)數(shù)據(jù)庫。
主機(jī)要向從機(jī)發(fā)送幀消息時,幀的ID會根據(jù)要發(fā)送給哪臺從機(jī)而確定,比如要向1號從機(jī)發(fā)送幀消息時,ID為0xt2,則只有1號從機(jī)能接收到此幀消息,其他從機(jī)接收不到。主機(jī)按一定頻率循環(huán)發(fā)送0x01、0x01,請求從機(jī)發(fā)送對應(yīng)傳感器值給主機(jī),0xt1、0xt2、0xt3、0xt4依次循環(huán)。當(dāng)主機(jī)接收到從機(jī)發(fā)送幀消息時,會和濾波ID相對比,等于第幾個便是第幾號從機(jī),0~3號從機(jī)發(fā)送的幀ID分別是0xa0、0xa1、0xa2、0xa3,主機(jī)的配置濾波ID為0xa0、0xa1、0xa2、0xa3。此算法能夠準(zhǔn)確獲取從機(jī)發(fā)送的數(shù)據(jù),進(jìn)而保存至數(shù)據(jù)庫。
本文應(yīng)用RS485通信技術(shù)采集多點(diǎn)環(huán)境信息,所設(shè)計的協(xié)議具有簡單、傳輸數(shù)據(jù)可靠性高、穩(wěn)定性強(qiáng)等優(yōu)點(diǎn)?;赗S485總線遠(yuǎn)程多點(diǎn)環(huán)境信息監(jiān)測系統(tǒng)可以廣泛應(yīng)用在礦井、工業(yè)車間等應(yīng)用場景中,具有一定的實(shí)際應(yīng)用價值。
[1]韓耀振.基于CAN_485總線的可燃?xì)怏w報警系統(tǒng)設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(1):62-65.
[2]趙意鵬,趙河明,張毅,等.基于MODBUS和RS_485布網(wǎng)方式的氣體監(jiān)測系統(tǒng)設(shè)計[J].計算機(jī)測量與控制,2015(9):2986-2987.
[3]王樹梅.基于現(xiàn)場總線的溫室多點(diǎn)監(jiān)測系統(tǒng)的設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2016(10):151-152.
[4]張新良.基于RS485總線網(wǎng)絡(luò)的溫室無線監(jiān)控系統(tǒng)設(shè)計[J].測控技術(shù),2017(1):88-91.
[5]徐滸.流量計RS485接口通訊程序的設(shè)計與實(shí)現(xiàn)[J].信息通信,2017(3):68-70.
[6]熊文.一種RS485串口通信電路的高可靠性設(shè)計[J].自動化與儀器儀表,2017(3):43-45.
DesignofRemoteMultipointEnvironmentInformationMonitoringSystemBasedonRS485Trunk
ZHOU Zheng-gui
(Department of Electronic Information Engineering,Anhui Business College of Vocational Technology,Wuhu Anhui 241002,China)
By using RS485 communication protocol, a remote multipoint environment information monitoring system was designed which consisted of data acquisition layer, RS485 trunk communication protocol and upper computer.The processor adopted STC89C52 singlechip microcomputer, the hardware circuit of the single chip microcomputer and the sensor and the communication module were designed, as well as a RS485 multipoint data transmission communication protocol was designed. In the practical application, the sensor data was transmitted to the RS485 trunk and finally to the upper computer. The administrator can have a remote query of the server data in real time, achieving intelligent management. Thus, the system has a certain application value.
sensor; RS485; monitor; singlechip microcomputer
TN99
A
2095-7602(2017)12-0043-04
2017-05-15
安徽省教育廳自然科學(xué)研究重點(diǎn)項(xiàng)目“基于物聯(lián)網(wǎng)技術(shù)的智慧農(nóng)業(yè)系統(tǒng)研究”(KJ2016A254);安徽省教育廳質(zhì)量工程項(xiàng)目“物聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)綜合改革試點(diǎn)”(2015zy118);安徽商貿(mào)職業(yè)技術(shù)學(xué)院自然科學(xué)研究項(xiàng)目“基于RFID技術(shù)的食品追溯系統(tǒng)研究”(2014KYZ04)。
周正貴(1984- ),男,講師,碩士,從事物聯(lián)網(wǎng)應(yīng)用技術(shù)、電子信息技術(shù)研究。