提高rs485匯流排通訊速度的一種設計
引言
工業現場經常要採集多點資料,模擬訊號或開關訊號,一般用到rs485
匯流排,使用一主帶多從的通訊方式,該種方式接線方便只需要兩根遮蔽電纜線,通訊距離遠最大可支援1500m,加深圳市天地華傑公司的中繼器(td-109)還可延長通訊距離,採用差分訊號方式抗電磁干擾好。但該方式通訊速度不能太快,一般採用主從召喚的方式採集各子單元的資料,即主單元依次召喚各子單元(見圖1),召喚到哪個單元哪個單元上傳資料,匯流排的使用權完全由主單元分配,各子單元不能擅自占領匯流排。如果系統的單元多,主單元迴圈採集一周的時間就很長,子單元資訊變化時不能及時傳送給主單元,導致系統對突變事件的反應處理速度慢。本文通過匯流排狀態檢測、從機主動上發的方式解決。
圖1 常規rs485匯流排主從方式介面圖
硬體設計
整個系統由主單元和多個子單元組成(圖2),主單元包括:arm7微控制器、程式儲存器、資料儲存器、與子單元通訊rs485、與主單元通訊rs485、系統電源和通訊隔離電源;子單元包括:msp430微控制器、與子單元通訊rs485、系統電源和通訊隔離電源。
圖2 系統框圖
主單元
arm微控制器是主單元的核心,採用三星32位arm7tdmi核心晶元s3c44b0
,該晶元最高處理速度可達76mhz,匯流排開放,可外擴程式儲存器flash和資料儲存器sdram,該系統外擴了sst公司生產的39vf1601和現代生產的hy57v641620hg,2個uart
序列介面,使用adi的隔離rs485晶元adm2483進行介面電平轉換,匯流排狀態檢測使用74hc125三態門晶元。
子單元
子單元的微控制器使用ti的msp430f133微控制器,該微控制器處理速度可達8mhz,8k位元組片內flash儲存,256k位元組片內sram。
電源電路
電源電路採用開關電源供電,開關電源輸入電壓範圍比較寬,輸出直流電壓5v,通過sp1117-3.3和sp1117-2.5晶元輸出3.3v電源。rs485需要的隔離5v電源通過dc-dc模組得到。
匯流排檢測電路
匯流排狀態檢測使用74hc125三態門晶元和微控制器的兩個i/o(圖3),當系統都不使用匯流排時,每個單元的74hc125都輸出高阻狀態,此時匯流排為低電平,當有單元要使用匯流排時,他首先檢測匯流排狀態,如果匯流排為低電平,該單元迅速把74hc125改為輸出狀態,此時匯流排變為高電平,該單元占領匯流排,往匯流排上傳送資料,傳送資料完成再把74hc125改為高阻狀態。如果檢測到匯流排是高電平,等待檢測,直到匯流排變低後再占領匯流排。
圖3 匯流排檢測電路
隔離485電路
使用adi的adm2483晶元進行介面電平轉換(圖4),該晶元屬於隔離485,雙電源供電輸入輸出隔離。
圖4 隔離485電路
軟體設計
主機程式部分需要實現各從機上傳資料的接收、處理和上傳。主機接收子單元資訊通過乙個rs485串列埠實現,資料格式為16進製制,資料位8位,1 個起始位,1個結束位,無寄偶校驗位,波特率9600bps。採用序列口中斷的方式接收,主機程式初始化完成後等待各從機傳送資訊,當主機接收到第乙個位元組後,判斷該位元組是否為裝置號,如果不是裝置號,接收個數清零,如果是裝置號繼續接收第二個位元組;判定第二個位元組是否為正確的功能碼,如果功能碼錯誤,接收個數清零重新接收,功能碼正確;接收第三個位元組,該位元組為從單元傳送資訊的位元組個數x,計算從單元傳送總位元組個數為m=x+3+2,3個開頭位元組和2個crc校驗碼,主機接收到m個位元組後,首先判斷crc校驗碼是否正確,錯誤捨棄所有資訊,正確則把從單元的資訊儲存到資料區,該次接收結束,主機繼續等待接收。
資訊的上傳通過乙個rs232串列埠實現。當主機接收到從機資訊後,進行資料的處理,發現從單元資訊發生變化,主機準備把從機資訊傳送到上位機,首先重新初始化傳送緩衝區,然後通過中斷的方式依次傳送資訊到上位機,傳送資訊包括裝置號、功能碼、傳送位元組個數、資訊位元組和crc校驗碼。
主機單元接收資料流程圖標於圖5。
圖5 程式流程圖
結語
徐龍輝所設計的系統實現了開關訊號的多點監測,乙個主機單元,32個從機單元,每個從機單元監測32個開關,該系統共可監測1024個開關,使用9600bps的波特率。採用主從召換的方式,開關訊號監測的反應時間一般要用20-30s,使用該種匯流排檢測的方式,開關訊號的反應速度最慢也不超過1s,快時只有幾百ms,大大提高反應時間,並且由於不用時時召喚,匯流排資料流少,提高了匯流排的穩定性。
提高485通訊速率的設計方法
提高rs485匯流排通訊速度的一種設計 引言工業現場經常要採集多點資料,模擬訊號或開關訊號,一般用到rs485匯流排,使用一主帶多從的通訊方式,該種方式接線方便只需要兩根遮蔽電纜線,通訊距離遠最大可支援1500m,加深圳市天地華傑公司的中繼器 td 109 還可延長通訊距離,採用差分訊號方式抗電磁干...
通訊速率 RS485通訊基礎及通訊應用詳解
要搞清楚rs485通訊我們要先搞明白什麼是通訊,通訊就是兩個裝置之間0 1 的傳遞,0 低電平,1 高電平。舉例 plc向變頻器從機1和變頻器從機2傳遞資料,首先變頻器從機1和變頻器從機2裝置之間必須通過電纜連線 硬體連線 如果變頻器從機1和變頻器從機裝置傳送101010這樣一串 那麼變頻器從機1就...
RS485通訊介紹
rs485通訊介紹 rs 485 半雙工 邏輯1 2v 6v 邏輯0 6v 2v 這裡的電平指ab 兩線間的電壓差。一 基本電路實現 1 基礎的rs485電路 需要控制re de cn 來控制485狀態的切換,一般連在一起用io口控制。當cn為低時485處於接收狀態 當r d為高時485處於傳送狀態...