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