周正貴
(安徽商貿職業技術學院電子信息工程系,安徽蕪湖 241002)
基于RS485總線遠程多點環境信息監測系統設計
周正貴
(安徽商貿職業技術學院電子信息工程系,安徽蕪湖 241002)
本文應用RS485通信協議設計一種遠程多點環境信息監測系統,系統分為數據采集層、RS485總線通信協議、上位機。采用STC89C52單片機作為處理器,設計了單片機與傳感器、通信模塊硬件電路,并設計一種RS485多點數據傳輸通信協議。在實際應用中,傳感器數據傳輸至RS485總線,最終數據傳輸到上位機服務器,管理者可實時遠程查詢服務器數據,實現智慧管理,該系統具有一定的應用價值。
傳感器;RS485;監測;單片機
實時獲取礦井、工業生產、車間管理等場景環境數據,有助于及時發布預警信息,避免意外事故的發生。例如,瓦斯爆炸事件頻頻發生,給國家和家庭帶來了巨大損失,在有些特殊工作區域內氧氣稀少,有毒害氣體彌漫,給作業人員帶來嚴重的安全隱患。如何利用信息技術實時監測環境信息并及時通知作業人員,是亟需解決的問題。目前,市場上環境信息監測設備較多,但有的設備功能較單一、未能網絡化。本文設計了基于RS485總線的多點環境信息監測系統,可監測多個地方的可燃氣體、溫濕度等環境參數,遠程終端設備可實時訪問數據。
RS485通信結構是一種半雙工網絡,在同一時刻RS485只能發送或者接收數據,其數據的發送和接收是通過/RE和DE引腳控制,通信距離最長可達1219 m,最大傳輸速率為10Mbps,采用主從機通信模式,即總線可接多個終端節點。可使用MAX485芯片進行電平轉換,實現單片機與PC機之間的通信,使用MAX232把單片機的TTL電平轉換成RS232電平。
系統總體設計框圖如圖1所示。系統采用MQ系列傳感器采集瓦斯濃度,根據瓦斯濃度值的不同,系統會輸出不同的電壓值,并使用TLC549把電壓值轉換成數字量輸出給單片機;應用pH值傳感器、溫濕度傳感器等采集環境信息。系統數據傳輸使用RS485進行通信,每個從機采集點將采集到的環境信息發送至上位處理中心,并存儲信息到對應數據庫字段內,上位機遠程移動手機可鏈接數據庫實時查詢環境信息參數。
傳感數據采集電路設計如圖2所示。處理器選用STC89C52系列8位單片機,溫度實時監測采用一線制DS18B20傳感器、MQ瓦斯濃度傳感器數據轉換芯片選用8位TLC549A/D轉換器。

圖1 系統總體設計框圖

圖2 傳感數據采集電路設計
單片機與RS485芯片接口電路設計如圖3所示。RS485既可作為發送器使用,也可作為接收器使用,取決于單片機的P27端口。當P27端口為高電平時,DE有效,即作為發送器使用;當P27為低電平時,/RE有效,即作為接收器使用;RS485芯片的RO、DI引腳分別連接單片機RXD、TXD端口。
當兩個以上RS485通信節點收發信息時,會產生數據紊亂,則數據會失真。為了使通信穩定、數據收發正確,本文設計了一種RS485通信協議。
協議原理分析。通信節點發送數據以幀為單位傳輸,包含幀開始位、數據位、校驗位、驗收濾波等。(1)幀開始位,即起始位,在數據開頭定義一字節用于區分數據類別,根據幀的類別來判斷節點是否需要接收該幀的數據;(2)數據位,開始設計一個字節,用于告知接收節點需要接收多少位數據,幀的數據最多8個字節,可根據實際進行修改;(3)校驗位,采用和校驗,校驗的計算規則是數據的所有最低一位和最高一位的累加求和,校驗用來檢測接收到的數據是否和發送的數據一樣,接收節點會把接收到數據根據校驗計算規則進行計算,并和接收到的校驗值對比判斷,相同則將接收到的數據保存到二級緩沖區,否則舍棄。(4)驗收濾波,采用一個二維數據ID,每一行的第一個元素用來控制是否啟用對應的的濾波ID,第二個元素便是濾波ID。如果沒有啟用任何一行的ID,則該節點可以接收任意幀,如果啟用一行以上的濾波ID,則只接收啟用ID的幀消息,其它丟棄。
3.1.1 多節點通信原理分析
在該通信系統,某一個節點發送一幀數據,其他節點都會接收到相同數據。當節點接收到約定的開始字節數據后,將開始接收處理,否則會把接收到的數據舍棄,接著接收ID,根據濾波規則進行判斷,判斷通過后則接收數據,數據接收最后一個步驟為校驗,將判斷發送前和接收到的校驗是否一樣,若相同則把接收到的數據保存到二級緩沖并把標志位轉變為接收完成標志。
3.1.2 數據收發串口數據設置
數據發送時通過串口發送,且接收也是通過串口接收。串口配置為9600的波特率,9位數據位,無校驗位,接收中斷。RS485的數據接收都是在中斷處理,而主函數則一直判斷標志位是否接收完成,接收完成則進行相應的處理。在串口配置時,配置為9位數據位,其有效的數據是8位,發送時第9位會一直為1,接收的時候會判斷第9位是否為1,如果不是則表示這一個字節為無效數據,會把接收到的數據全部丟棄。
3.2.1 從機軟件設計流程
從機的軟件設計流程如圖4所示。從機節點上電并初始化RS485,從機根據硬件地址的電平計算出ID,根據此ID配置濾波ID,0~3號機的濾波ID分別是0xt1、0xt2、0xt3、0xt4,然后從機按一定頻率采集傳感器數據。當從機接收到主機發送過的數據為0x01、0x01時,從機會把采集到的傳感器數據發送給主機,發送幀的ID會根據從機的序號而不同,0~3號從發送的幀的ID分別是0xa0、0xa1、0xa2、0xa3,主機發送的幀ID會等于該從機的濾波ID。

圖4 從機軟件設計流程圖

圖5 主機軟件設計流程圖
3.2.2 主機軟件設計流程
主機軟件設計流程如圖5所示。主機節點上電并初始化RS485,配置濾波ID為0xa0、0xa1、0xa2、0xa3,根據從機發送的幀ID,主機會收到從機發送的幀消息,但其他的從機不會接收此幀,然后把解析后的數據發送到PC機數據庫。
主機要向從機發送幀消息時,幀的ID會根據要發送給哪臺從機而確定,比如要向1號從機發送幀消息時,ID為0xt2,則只有1號從機能接收到此幀消息,其他從機接收不到。主機按一定頻率循環發送0x01、0x01,請求從機發送對應傳感器值給主機,0xt1、0xt2、0xt3、0xt4依次循環。當主機接收到從機發送幀消息時,會和濾波ID相對比,等于第幾個便是第幾號從機,0~3號從機發送的幀ID分別是0xa0、0xa1、0xa2、0xa3,主機的配置濾波ID為0xa0、0xa1、0xa2、0xa3。此算法能夠準確獲取從機發送的數據,進而保存至數據庫。
本文應用RS485通信技術采集多點環境信息,所設計的協議具有簡單、傳輸數據可靠性高、穩定性強等優點。基于RS485總線遠程多點環境信息監測系統可以廣泛應用在礦井、工業車間等應用場景中,具有一定的實際應用價值。
[1]韓耀振.基于CAN_485總線的可燃氣體報警系統設計[J].單片機與嵌入式系統應用,2008(1):62-65.
[2]趙意鵬,趙河明,張毅,等.基于MODBUS和RS_485布網方式的氣體監測系統設計[J].計算機測量與控制,2015(9):2986-2987.
[3]王樹梅.基于現場總線的溫室多點監測系統的設計[J].數字技術與應用,2016(10):151-152.
[4]張新良.基于RS485總線網絡的溫室無線監控系統設計[J].測控技術,2017(1):88-91.
[5]徐滸.流量計RS485接口通訊程序的設計與實現[J].信息通信,2017(3):68-70.
[6]熊文.一種RS485串口通信電路的高可靠性設計[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
安徽省教育廳自然科學研究重點項目“基于物聯網技術的智慧農業系統研究”(KJ2016A254);安徽省教育廳質量工程項目“物聯網應用技術專業綜合改革試點”(2015zy118);安徽商貿職業技術學院自然科學研究項目“基于RFID技術的食品追溯系統研究”(2014KYZ04)。
周正貴(1984- ),男,講師,碩士,從事物聯網應用技術、電子信息技術研究。