RS 485 自動收接資料

2021-07-03 20:38:04 字數 1498 閱讀 8794

內容主題:嵌入式公社

檢視次數:7775

rs-485是一種基於差分訊號傳送的序列通訊鏈路層協議。它解決了rs-232協議傳輸距離太近(15m)的缺陷,是工業上廣泛採用的較長距離資料通訊鏈路層協議。   

由於它使用一對雙絞線傳送差分訊號,屬半雙工通訊,所以需要進行接收和傳送狀態的轉換。一般的8腳ttl電平到rs-485電平轉換晶元的引腳定義如圖1所示。

其中,引腳意義如下:

ro——接收資料的 ttl電平輸出;

——低電平有效的接收允許;

de——高電平有效的傳送允許;

di——傳送資料的ttl電平輸入;

a——485差分訊號的正向端;

b——485差分訊號的反向端。

在rs-485電路設計中,通常將和de短接,用1根訊號線來控制,這樣可以做到收發的切換。

rs-485晶元通常處於接收狀態。當要傳送資料時,由程式控制/de 變為高電平,然後uart單元傳送資料,程式要等待傳送完畢後,再將rs-485晶元轉換到接收狀態。傳送完畢的標誌一般由uart的特定暫存器提供狀態指示,程式需要去查詢。

在微控制器電路中,一般用1根i/o線來控制rs-485晶元的接收和傳送狀態的轉換。這樣需要由軟體來控制 i/o引腳的電平,以達到控制rs-485收發轉換的目的。

這樣的控制方法造成rs-485通訊存在以下問題:

在想要傳送資料和真正的能傳送資料之間,存在一定的轉換延時;

如果傳送到接收的轉換時機不當,則會造成資料丟失;

在接收和傳送資料轉換期間,容易引入干擾,使uart單元收到多餘的雜亂資料。

鑑於以上情況,筆者經過探索和參照其它相關電路,設計了一種可以實現rs-485接收和傳送零延時轉換的電路,如圖2所示。

當不傳送資料時,ttl電平的tx訊號為高電平,經v1反向為低電平,rs-485晶元處於接收狀態。

當傳送資料時,① 若tx為低電平,經v1反向後,de/為高電平,傳送允許。此時由於di 接地,所以rs-485晶元的輸出端a、b產生表示低電平的差分訊號,低電平的tx被送出。② 若tx為高電平,經v1反向後,de/為低電平,rs-485晶元的a、b端處於高阻態。此時靠電阻r1和r2的下拉和上拉作用,使匯流排上產生正的差分訊號,從而將tx的高電平訊號送出。 

由以上分析看出,在使用這個電路時,只要程式能保證不同時進行接收和傳送的操作,即保證是半雙工傳送資料,程式不必用指令控制de/進行接收和傳送的轉換。轉換由硬體本身完成。

傳送高電平的過程中,由於rs-485晶元處於接收狀態,此時的傳送訊號必須是在匯流排上其它節點傳送資料時,才能將高電平訊號送出。所以,仍需要軟體設計中做好匯流排仲裁。

經過在沒有嚴重干擾的實驗室中的實驗,在使用0.5mm2遮蔽平行線時,此電路的傳送距離可達1200m。

常用介面 RS485

rs485電路設計 差分傳輸 半雙工 rs 485是針對uart串列埠的一種介面標準,它定義了序列通訊系統中傳送器和接收器的一系列電氣特性。相比於rs 232,rs 485標準的通訊系統抗干擾能力較強,可實現長距離資料傳輸 同時支援多個收發器連線到同乙個通訊網路中。因此,rs 485在工業控制領域以...

rs485除錯軟體 RS485 三種硬體電路設計

rs485介面具有抗干擾性強,適合長距離傳輸和多站點通訊等特點,因此在工業控制中被普遍使用。微控制器只有uart介面,如果需要使用rs485通訊,需要外面加乙個transceiver。由於rs485工作在半雙工模式,因此傳送和接收的方向切換是設計過程中的乙個重要問題。通常的介面電路有以下三種 1 第...

rs485除錯助手 RS485通訊連線方式是怎樣的

電工之家 www.dgzj.com qq群 2179090 rs485是串列埠的一種,常見的還有rs232,rs422,都屬於串列埠,它們都只是定義了電氣特性的通訊結構,並沒有定義資料傳輸的協議。有的人很容易混淆它們之間的概念,比如人家問你是什麼通訊協議,你回答是rs485,那麼別人就悶了。所謂的通...