??給你講清楚串?通訊的起始、數據、停?位都是怎么分配的!
來源:來源互聯?,侵刪
|
作者:降魔神兵
|
發布時間: 2019-12-31
|
842 次瀏覽
|
分享到:
??給你講清楚串?通訊的起始、數據、停?位都是怎么分配的!
串?是串?接?(serial port)的簡稱,也稱為串?通信接?或COM接?。
串?通信是指采?串?通信協議(serialcommunication)在?條信號線上將數據?個?特?個?特地逐位進?傳輸的通信模式。
串?按電?標準及協議來劃分,包括RS-232-C、RS-422、RS485等。
1.串?通信
在串?通信中,數據在1位寬的單條線路上進?傳輸,?個字節的數據要分為8次,由低位到?位按順序?位?位的進?傳送。
串?通信的數據是逐位傳輸的,發送?發送的每?位都具有固定的時間間隔,這就要求接收?也要按照發送?同樣的時間間隔來接收每?位。不僅如此,接收?還必須能夠確定?個信息組的開始和結束。
常?的兩種基本串?通信?式包括同步通信和
異步通信。
1.1串?同步通信
同 步 通 信 ( SYNC:synchronous datacommunication ) 是 指 在 約 定 的 通 信 速 率下,發送端和接收端的時鐘信號頻率和相位始終保持?致(同步),這樣就保證了通信雙?在 發 送 和 接 收 數 據 時 具 有 完 全 ? 致 的 定 時 關系。
同 步 通 信 把 許 多 字 符 組 成 ? 個 信 息 組 ( 信 息幀),每幀的開始?同步字符來指?,?次通信只傳送?幀信息。在傳輸數據的同時還需要傳輸時鐘信號,以便接收?可以?時針信號來確定每個信息位。
同步通信的優點是傳送信息的位數?乎不受限制 , ? 次 通 信 傳 輸 的 數 據 有 ? ? 到 ? 千 個 字節,通信效率較?。同步通信的缺點是要求在通信中始終保持精確的同步時鐘,即發送時鐘和接收時鐘要嚴格的同步(常?的做法是兩個設備使?同?個時鐘源)。
在后續的串?通信與編程中將只討論異步通信?式,所以在這?就不對同步通信做過多的贅述了。
1.2串?異步通信
異 步 通 信 ( ASYNC:asynchronous datacommunication ) , ? 稱 為 起 ? 式 異 步 通信,是以字符為單位進?傳輸的,字符之間沒有固定的時間間隔要求,?每個字符中的各位則以固定的時間傳送。
在異步通信中,收發雙?取得同步是通過在字符 格 式 中 設 置 起 始 位 和 停 ? 位 的 ? 法 來 實 現的。具體來說就是,在?個有效字符正式發送之前,發送器先發送?個起始位,然后發送有效字符位,在字符結束時再發送?個停?位,起始位?停?位構成?幀。停?位?下?個起始位之間是不定?的空閑位,并且規定起始位為低電平(邏輯值為0),停?位和空閑位都是?電平(邏輯值為1),這樣就保證了起始位開始處?定會有?個下跳沿,由此就可以標志?個字符傳輸的起始。?根據起始位和停?位也就很容易的實現了字符的界定和同步。
顯然,采?異步通信時,發送端和接收端可以由各?的時鐘來控制數據的發送和接收,這兩個時鐘源彼此獨?,可以互不同步。
下?簡單的說說異步通信的數據發送和接收過程。
1.2.1異步通信的數據格式
在介紹異步通信的數據發送和接收過程之前,有必要先弄清楚異步通信的數據格式。異步通信規定傳輸的數據格式由起始位(startbit ) 、 數 據 位 ( data bit ) 、 奇 偶 校 驗 位(parity bit)和停?位(stop bit)組成,
如圖1所?(該圖中未畫出奇偶校驗位,因為奇偶檢驗位不是必須有的,如果有奇偶檢驗位,則 奇 偶 檢 驗 位 應 該 在 數 據 位 之 后 , 停 ? 位 之前)。
(1)起始位:起始位必須是持續?個?特時間的邏輯0電平,標志傳輸?個字符的開始,接收?可?起始位使??的接收時鐘與發送?的數據同步。
(2)數據位:數據位緊跟在起始位之后,是通信中的真正有效信息。數據位的位數可以由通信 雙 ? 共 同 約 定 , ? 般 可 以 是 5 位 、 7 位 或 8位,標準的ASCII碼是0~127(7位),擴展的ASCII碼是0~255(8位)。傳輸數據時先傳送字符的低位,后傳送字符的?位。
(3)奇偶校驗位:奇偶校驗位僅占?位,?于進?奇校驗或偶校驗,奇偶檢驗位不是必須有的。如果是奇校驗,需要保證傳輸的數據總共有奇數個邏輯?位;如果是偶校驗,需要保證傳輸的數據總共有偶數個邏輯?位。
舉例來說,假設傳輸的數據位為01001100,如果是奇校驗,則奇校驗位為0(要確保總共有奇 數 個 1 ) , 如 果 是 偶 校 驗 , 則 偶 校 驗 位 為1(要確保總共有偶數個1)。
由此可?,奇偶校驗位僅是對數據進?簡單的置邏輯?位或邏輯低位,不會對數據進?實質的判斷,這樣做的好處是接收設備能夠知道?個位的狀態,有可能判斷是否有噪聲?擾了通信以及傳輸的數據是否同步。
(4)停?位:停?位可以是是1位、1.5位或2位,可以由軟件設定。它?定是邏輯1電平,標志著傳輸?個字符的結束。
(5)空閑位:空閑位是指從?個字符的停?位結束到下?個字符的起始位開始,表?線路處于空閑狀態,必須由?電平來填充。
1.2.2異步通信的數據發送過程
清楚了異步通信的數據格式之后,就可以按照指定的數據格式發送數據了,發送數據的具體步驟如下:
(1)初始化后或者沒有數據需要發送時,發送端輸出邏輯1,可以有任意數量的空閑位。
(2)當需要發送數據時,發送端?先輸出邏輯0,作為起始位。
(3)接著就可以開始輸出數據位了,發送端?先輸出數據的最低位D0,然后是D1,最后是數據的最?位。
( 4 ) 如 果 設 有 奇 偶 檢 驗 位 , 發 送 端 輸 出 檢 驗位。
(5)最后,發送端輸出停?位(邏輯1)。
(6)如果沒有信息需要發送,發送端輸出邏輯1(空閑位),如果有信息需要發送,則轉?步驟(2)。
1.2.3異步通信的數據接收過程
在異步通信中,接收端以接收時鐘和波特率因?決定每?位的時間?度。下?以波特率因?等于16(接收時鐘每16個時鐘周期使接收移位寄存器移位?次)為例來說明。
(1)開始通信,信號線為空閑(邏輯1),當檢 測 到 由 1 到 0 的 跳 變 時 , 開 始 對 接 收 時 鐘 計數。
(2)當計到8個時鐘的時候,對輸?信號進?檢測,若仍然為低電平,則確認這是起始位,而不是?擾信號。
(3)接收端檢測到起始位后,隔16個接收時鐘對輸?信號檢測?次,把對應的值作為D0位數據。
(4)再隔16個接收時鐘,對輸?信號檢測?次,把對應的值作為D1位數據,直到全部數據位都輸?。
(5)檢驗奇偶檢驗位。
(6)接收到規定的數據位個數和校驗位之后,通信接?電路希望收到停?位(邏輯1),若此時未收到邏輯1,說明出現了錯誤,在狀態寄存器中置“幀錯誤”標志;若沒有錯誤,對全部數據位進?奇偶校驗,?校驗錯時,把數據位從移位寄存器中取出送?數據輸?寄存器,若校驗錯,在狀態寄存器中置“奇偶錯”標志。
(7)本幀信息全部接收完,把線路上出現的?電平作為空閑位。
(8)當信號再次變為低時,開始進?下?幀的檢測。
以上就是異步通信中數據發送和接收的全過程了。
1.3?個概念
為了更好的理解串?通信,我們還需要了解?個串?通信當中的基本概念。
(1)發送時鐘:發送數據時,?先將要發送的數據送?移位寄存器,然后在發送時鐘的控制下,將該并?數據逐位移位輸出。
(2)接收時鐘:在接收串?數據時,接收時鐘的上升沿對接收數據采樣,進?數據位檢測,并將其移?接收器的移位寄存器中,最后組成并?數據輸出。
(3)波特率因?:波特率因?是指發送或接收1個數據位所需要的時鐘脈沖個數。
2.串?接頭
常?的串?接頭有兩種,?種是9針串?(簡稱DB-9),?種是25針串?(簡稱DB-25)。每種接頭都有公頭和?頭之分,其中帶針狀的接頭是公頭,?帶孔狀的接頭是?頭。
3.RS-232C標準
常 ? 的 串 ? 通 信 接 ? 標 準 有 RS-232C 、 RS-422 、 RS-423 和 RS-485 。 其 中 , RS-232C作為串?通信接?的電?標準定義了數據終端設 備 ( DTE:data terminal equipment )和數據通信設備(DCE:datacommunication equipment ) 間 按 位 串 ?傳輸的接?信息,合理安排了接?的電?信號和 機 械 要 求 , 在 世 界 范 圍 內 得 到 了 ? 泛 的 應?。
3.1電?特性
RS-232C對電器特性、邏輯電平和各種信號功能都做了規定,如下:
在TXD和RXD數據線上:
(1)邏輯1為-3~-15V的電壓
(2)邏輯0為3~15V的電壓
在 RTS 、 CTS 、 DSR 、 DTR 和 DCD 等 控 制 線上:
(1)信號有效(ON狀態)為3~15V的電壓
(2)信號?效(OFF狀態)為-3~-15V的電壓
由此可?,RS-232C是?正負電壓來表?邏輯狀態,與晶體管-晶體管邏輯集成電路(TTL)以?低電平表?邏輯狀態的規定正好相反。
3.2信號線分配
RS-232C標準接?有25條線,其中,4條數據線、11條控制線、3條定時線以及7條備?和未定義線。那么,這些信號線在9針串?和25針串?的管腳上是如何分配的呢?
下?對這些信號線做個簡單的介紹。
(1) 數 據 裝 置 準 備 好 ( DSR ) , 有 效 狀 態(ON)表?數據通信設備處于可以使?狀態。
(2) 數 據 終 端 準 備 好 ( DTR ) , 有 效 狀 態(ON)表?數據終端設備處于可以使?狀態。
這兩個設備狀態信號有效,只表?設備本?可?,并不說明通信鏈路可以開始進?通信了,能否開始進?通信要由下?的?些控制信號決定。
(3)請求發送(RTS),?來表?數據終端設備(DTE)請求數據通信設備(DCE)發送數據。
(4)允許發送(CTS),?來表?數據通信設備(DCE)已經準備好了數據,可以向數據終端設備(DTE)發送數據,是對請求發送信號RTS 的 響 應 。 請 求 發 送 ( RTS ) 和 允 許 發 送(CTS)?于半雙?的通信系統中,在全雙?的系統中,不需要使?請求發送(RTS)和允許發送(CTS)信號,直接將其置為ON即可。
(5)數據載波檢出(DCD),?于表?數據通信設備(DCE)已接通通信鏈路,告知數據終端設備(DTE)準備接收數據。
(6)振鈴指?(RI),當數據通信設備收到交換 臺 送 來 的 振 鈴 呼 叫 信 號 時 , 使 該 信 號 有 效(ON),通知終端,已被呼叫。
(7) 發 送 數 據 ( TXD ) , 數 據 終 端 設 備(DTE)通過該信號線將串?數據發送到數據通信設備(DCE)。
(8) 接 收 信 號 ( RXD ) , 數 據 終 端 設 備( DTE ) 通 過 該 信 號 線 接 收 從 數 據 通 信 設 備(DCE)發來的串?數據。
(9)地線(SG、PG),分別表?信號地和保護地信號線。