序列通訊可以分為兩種型別:同步通訊、非同步通訊。
1.非同步通訊的特點及資訊幀格式:
以起止式非同步協議為例,下圖顯示的是起止式一幀資料的格式:
圖1 起止式非同步通訊的特點是:乙個字元乙個字元地傳輸,每個字元一位一位地傳輸,並且傳輸乙個字元時,總是以「起始位」開始,以「停止位」結束,字元之間沒有固定的時間間隔要求。每乙個字元的前面都有一位起始位(低電平,邏輯值),字元本身由5-7位資料位組成,接著字元後面是一位校驗位(也可以沒有校驗位),最後是一位或一位半或二位停止位,停止位後面是不定長的空閒位。停止位和空閒位都規定為高電平(邏輯值1),這樣就保證起始位開始處一定有乙個下跳沿。
從圖中可看出,這種格式是靠起始位和停止位來實現字元的界定或同步的,故稱為起止式協議。
非同步通訊可以採用正邏輯或負邏輯,正負邏輯的表示如下表所示:
邏輯0邏輯1
正邏輯低電平
高電平負邏輯
高電平低電平
非同步通訊的資訊格式如下邊的表所示
起始位邏輯0
1位資料位
邏輯0或1
5位、6位、7位、8位
校驗位邏輯0或1
1位或無
停止位邏輯1
1位,1.5位或2位
空閒位邏輯1
任意數量
注:表中位數的本質含義是訊號出現的時間,故可有分數字,如1.5。
例:傳送8位資料45h(0100,0101b),奇校驗,1個停止位,則訊號線上的波形象圖2所示那樣:非同步通訊的速率:若9600bps,每字元8位,1起始,1停止,無奇偶,則實際每字元傳送10位,則960字元/秒。
圖22.非同步通訊的接收過程
接收端以「接收時鐘」和「波特率因子」決定一位的時間長度。下面以波特率因子等於16(接收時鐘每16個時鐘週期,使接收移位暫存器移位一次)、正邏輯為例說明,如圖3所示。
圖3(1)開始通訊時,訊號線為空閒(邏輯1),當檢測到由1到0的跳變時,開始對「接收時鐘」計數。
(2)當計到8個時鐘時,對輸入訊號進行檢測,若仍為低電平,則確認這是「起始位」b,而不是干擾訊號。
(3)接收端檢測到起始位後,隔16個接收時鐘,對輸入訊號檢測一次,把對應的值作為d0位資料。若為邏輯1, 作為資料位1;若為邏輯0,作為資料位0。
(4)再隔16個接收時鐘,對輸入訊號檢測一次,把對應的值作為d1位資料。….,直到全部資料位都輸入。
(5)檢測校驗位p(如果有的話)。
(6)接收到規定的資料位個數和校驗位後,通訊介面電路希望收到停止位s(邏輯1),若此時未收到邏輯1,說明出現了錯誤,在狀態暫存器中置「幀錯誤」標誌。若沒有錯誤,對全部資料位進行奇偶校驗,無校驗錯時,把資料位從移位暫存器中送資料輸入暫存器。若校驗錯,在狀態暫存器中置奇偶錯標誌。
(7)本幀資訊全部接收完,把線路上出現的高電平作為空閒位。
(8)當訊號再次變為低時,開始進入下一幀的檢測。
3、非同步通訊的傳送過程
傳送端以「傳送時鐘」和「波特率因子」決定一位的時間長度。
(1)當初始化後,或者沒有資訊需要傳送時,傳送端輸出邏輯1,即空閒位,空閒位可以有任意數量。
(2)當需要傳送時,傳送端首先輸出邏輯0,作為起始位。
(3)接著,傳送端首先傳送d0位,直到各資料位傳送完。
(4)如果需要的話,傳送端輸出校驗位。
(5)最後,傳送端輸出停止位(邏輯1)。
(6)如果沒有資訊需要傳送時,傳送端輸出邏輯1,即空閒位,空閒位可以有任意數量。如果還有資訊需要傳送,轉入第(2)步。
對於以上傳送、接收過程應注意以下幾點:
(1)接收端總是在每個字元的頭部(即起始位)進行一次重新定位,因此傳送端可以在字元之間插入不等長的空閒位,不影響接收端的接收。
(2)傳送端的傳送時鐘和接收端的接收時鐘,其頻率允許有一定差異,當頻率差異在一定範圍內,不會引起接收端檢測錯位,能夠正確接收。並且這種頻率差異不會因多個字元的連續接收而造成誤差累計(因為每個字元的開始(起始位處)接收方均重新定位)。只有當傳送時鐘和接收時鐘頻率差異太大,引起接收端取樣錯位,才造成接收錯誤。
(3)起始位、校驗位、停止位、空閒位的訊號,由「傳送移位暫存器」自動插入。在接收方,「接收移位暫存器」接收到一幀完整資訊(起始、資料、校驗、停止)後,僅把資料的各位送至「資料輸入暫存器」,即cpu從「資料輸入暫存器」中讀得的資訊,只是有效數字,不包含起始位、校驗位、停止位資訊。
串列埠同步通訊和串列埠非同步通訊
串列埠掃盲貼 現實中不存在絕對精確的時鐘,標稱值同樣是1mhz,發端和接收端的時鐘總會存在差異,如果接收端不進行時鐘同步,而是使用自己本地的時鐘,則足夠長的時間後接收到的資料總會出現不可預知的重複或丟失,導致接收錯誤。因此發端必須將與資料速率相關的時鐘訊號傳輸給接收端,時鐘訊號可以走單獨的訊號線,也...
串列埠通訊 同步通訊方式
1 同步通訊方式的特點 採用同步通訊時,將許多字元組成乙個資訊組,這樣,字元可以乙個接乙個地傳輸,但是,在每組資訊 通常稱為幀 的開始要加上同步字元,在沒有資訊要傳輸時,要填上空字元,因為同步傳輸不允許有間隙。在同步傳輸過程中,乙個字元可以對應5 8位。當然,對同乙個傳輸過程,所有字元對應同樣的數字...
非同步串列埠通訊 VC
mycomm.h 多機控制 非同步串列埠通訊 class cmycomm void cmycomm preopensetupqueue dword dwinqueue,dword dwoutqueue int byteusedtime 14400 nbaud 1 commtimeouts timeo...