Linux下RS232和RS485程式設計有什麼區別?

2021-07-12 06:36:14 字數 632 閱讀 6996

linux下串列埠程式設計沿襲了unix的posix標準,程式設計時只要包含,然後呼叫tcgetattr tcsetattr等函式,就可以完成對串列埠波特率,啟停位,校驗方式等的設定。

有人會問,這些設定裡,看不到對rs232或者rs485的區分啊,對於這兩種協議沒有程式設計的區別嗎?

通過uart才能被cpu訪問,所以,只要控制了uart,就可以控制串列埠的傳輸方式,而所謂的程式設計其實就是對uart程式設計,所以rs232個rs485從程式設計師視角是不可見的。

「那你就直接說rs485和rs232程式設計上沒有區別不就完了?」

問題是,實際總比理論複雜,這裡有一種例外:

rs232用兩根線實現全雙工,兩根線各做各的,互不影響,可以同時進行;rs485雖然可以用四根線實現全雙工,但是實際應用中比較少見,更常見的是只用兩根線實現半雙

工,這樣一來,就涉及到「收狀態」和「發狀態」的切換,這一切換又涉及兩種情況:

1、驅動程式中已經含有對半雙工情況下的接受切換,驅動程式會根據你讀或寫的動作,自動進行切換。這種情況下,rs485的程式設計就與rs232完全沒有區別。

2、驅動程式不帶自動切換,此時,為了完成切換,必須使用額外的gpio連線rs485收發模組的接受使能端,在接受、傳送資料之前,首先對使能端置位,使之處於正確的「接

收」或「傳送」狀態。

rs232串列埠防雷電路 RS232與RS485

rs232介面是1970年由美國電子工業協會 eia 聯合貝爾系統 數據機廠家及計算機終端生產廠家共同制定的用於序列通訊的標準。它的全名是 資料終端裝置 dte 和資料通訊裝置 dce 之間序列二進位制資料交換接 術標準 該標準規定採用乙個25個腳的db25聯結器,對聯結器的每個引腳的訊號內容加以規...

rs232串列埠防雷電路 RS232與RS485

rs232介面是1970年由美國電子工業協會 eia 聯合貝爾系統 數據機廠家及計算機終端生產廠家共同制定的用於序列通訊的標準。它的全名是 資料終端裝置 dte 和資料通訊裝置 dce 之間序列二進位制資料交換接 術標準 該標準規定採用乙個25個腳的db25聯結器,對聯結器的每個引腳的訊號內容加以規...

RS232協議分析

基礎知識可參考 串列埠通訊 rs 232 c詳解 測試例項是通過 procomm 軟體的指令碼 transmit ls m 在串列埠上輸入 ls 空格 回車 換行,因為這些資訊會被回顯,所以也會出現在 smc1 txd rs232 時鐘週期 1000000 112500 8.68us 下minila...