男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

當前位置:機電之家首頁 >> PLC技術>> PLC基礎 >> 現場總線 >> 串行通訊的一些認識
串行通訊的一些認識

1、串行通訊只有一個傳輸通道,每個時刻只能表達一種狀態。不管什么介質,不管是什么信號,我們用1表示一種狀態,用0表示另一種狀態。

2、只用1和0兩種狀態,是不能表達更多信息的。好在有一個物理量,對每個系統來講是統一的,那就是時間。我們現在很容易做到不同系統之間的定時誤差控制在ppm數量級。1和0在時間上進行有序的組合,就可表達近乎無限的信息。

3、任何一個信號,如果不賦給它一些特點的意義,實際上沒什么用。兩個系統要通過信號交換信息,必須對信號有一個共同的約定,這就是我們通常所說的協議。

4、最基本的協議是物理層面的(那個osi的七層協議模型,第一層就是物理層協議)。rs232、rs485、rs422,這些是物理層面的一些協議。

5、我們現在要談的是異步串行通訊。異步,發達方和接收方之間,沒有額外的通道來傳送信息何時傳送與接收。每個信息單元的起止時間,發送方編在信息中,由接收方自已解碼并同步。

6、好。現在來講一下傳送一個字節的過程。在沒有傳送信息時,傳輸線處于空閑狀態。規定:空閑狀態為1。發送方(tx)準備發送,驅動傳輸線讓它由1變為0,并持一位的時間長度,我們把這一位叫做起始位。接收方(rx),檢測到傳輸線由1變0,意味著可能有信息要傳了,rx就持續檢測,以驗證這個0是不是持續了規定的一位時間長度,若是個合法的起始位,就按約定的定時方式,把后續的傳輸線狀態,接收為1個字節。tx在發完起始位后,就發字節中的第一個位(bit),并依次把字節中的所有位發完,每bit均持續相同的一位時長。然后再發校驗位(如果約定發/收方都采用的話)、停止位。

7、停止位,這個要說一下。我們知道起始位是0,而這個停止位,規定是1,和傳輸線的空閑狀態1是相同的。停止位規定的時長比較亂,有1位停止位(也就持續時間占1個位長)、1.5位、和2位停止位,其它時長的停止位好象沒見過。停止位的作用,其一是作為一字節單元的成員,給接收方定時用的,也就是下一個字節,在停止位之后才開始。另一個作用,可供檢查字節傳送的完整性。因為停止位是規定為1狀態的,若在停止位的時間里測到了非1狀態,表示這個字節傳送有問題,有可能被接收方丟棄,傳送失敗。

8、若收發雙方的停止位不相同,怎么辦?這個在論壇上經常有人問。好,我們來分析一下。若tx是2個停止位,rx要求是1個停止位,很好,tx多發的一個停止位,會被rx看作是空閑狀態(也可認為是字符間隔),沒有任何問題。若反過來,tx是1個停止位,rx要求是2個停止位,有問題嗎?一般問題是很大的,但也有可能可以正常通訊。這要看tx是怎么發字節的。有些系統,硬件上,發送電路比較簡單,沒有緩沖機構,一個字節必須完整發送后,才準備下一個字節的數據,而這個準備需要花一些時間的,這就給傳送的時序上,停止位之后,有了空閑時間,相當于停止位得到了延長。所以我曾經發過一個貼子說,s7200的發送改為單字節發送,每個字節之間有意插入一些延時,人為造成空閑時間,以充當停止位,但這個方法說歸說,我并沒有試過。可惜的是,現在的系統,硬件都做得很完美了,包括s7200,tx是有緩沖的,在一個字節還未發完前就可以接受下一個要發送的字節,硬件上保證一個字節發完后可以立即啟動下一個字節發送,前后兩字節間除了停止位,沒有額外的間隙,這種情況下,接收方就要命了,rx認為還在收停止位時,下一個字節的起始位就來了,沒辦法完整接收,通訊就失敗了。

9、波特率。兩邊設為一致就可以了。波特率不一致,鐵定不能通訊。但允許有少量的誤差。停止位實際上還用來調節這個誤差的。比如1個停止位,rx并不死板要求停止位是完整的1個位時長,實際只要停止位超過0.5個位長就算是合格了。波特率,就是每秒最快能傳送的位數,包括了起始位、停止位這些輔助位。實際每秒能傳送的最快字節數,要看這些輔助位的多少。比如一個11位結構的字節單元:1起始位+8字節位+1校驗位+1停止位,字節最快傳送速率為band/11。好象還有一個概念,叫比特率,也就是有效的位傳送速率,比特率=8*(band/11),也就是比特率比波特率要小的。

10、rs232的tx和rx是兩根獨立的線,收/發可以同時進行,所以叫作全雙工異步串行通訊。按我們日常兩人交談的經驗,總是a說b聽,當b要說時,a就停下來聽b說。如果a、b同時說,這是吵架,要達到相互交流就難了。同樣,通訊若同時收發,一般人會白白死掉很多腦細胞而寫出的程序通訊效果還是很差。所以,即使rs232能雙向同時, 一般使用時也是收、發不同時的。

11、rs485。rs232不錯了,但局限性大大的。rs485收發同線,允許多少rs485并聯使用,采用差分傳送信號,可以抗干擾。s7200就屬于rs485。rs485設備同一時間只能發或再改,收發是分時的,所以叫做準雙向。盡管s7200中可以同時緩沖8個netr和netw,實際在rs485層面,還是一個一個分時完成的(由系統程序根據ppi協議協調)。rcv和xmt完全由用戶程序控制,你就不能同時讓兩個都執行,否則就是哄搶資源而被s7200當成錯誤處理。

12、rs422,介于rs232和rs485。rs422和rs232一樣收、發線獨立,但電氣上采用和rs485一樣的差分信號。所以rs422能多機通訊,比rs232傳得遠,但比rs485浪費硬件資源。rs422只要軟件上采用準雙向的規則,通過發收線合并,可以簡化為rs485,和rs485設備通訊。但rs485卻不能復雜化成rs422使用。

作者:未知 點擊:340次 [打印] [關閉] [返回頂部]
本文標簽:串行通訊的一些認識
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《串行通訊的一些認識》相關權利人與機電之家網取得聯系。
電子樣本

SN系列樣冊
:鞏經理
:13915946763
:南京塞姆泵業有限公司
個人求購

王經理 【求購】  西湖輪胎  2026-3-20
蘇紅慶 【求購】  工業除濕機  2026-3-20
金喜 【求購】  線纜  2026-3-20
林杰 【求購】  自粘結鐵芯  2026-3-20
任建波 【求購】  鋰電鉆  2026-3-20
劉經理 【求購】  吊具電纜總...  2026-3-20
潘梟 【求購】  高強鋼焊絲  2026-3-19
李經理 【求購】  丹弗斯液壓...  2026-3-18
VIP公司推薦

主站蜘蛛池模板: 昆山市| 嵊泗县| 肃宁县| 黑水县| 赫章县| 翁源县| 中超| 安多县| 霍邱县| 蓬莱市| 灌南县| 宜都市| 阿荣旗| 瑞丽市| 邹平县| 文昌市| 精河县| 禹城市| 北川| 新沂市| 枣阳市| 民县| 锦州市| 边坝县| 莎车县| 青铜峡市| 合作市| 内黄县| 义马市| 葫芦岛市| 清涧县| 绍兴市| 神农架林区| 正阳县| 靖边县| 长武县| 长岛县| 镇赉县| 黔东| 郎溪县| 中卫市|