眾所周知嵌入式系統之間採用通訊方式交換資料,由於各類cpu均整合了uart部件。所以序列通訊是一種最基本的通訊手段。因此,我們也對它進行深入的了解
1. 通訊協議設計
在進行通訊時,每次需要傳送的資訊一般超過1位元組。為此,通訊雙方必須約定通訊資料的排列格式,即通訊協議。通常把一次通訊過程的全部內容稱為乙個「通訊幀」。通訊協議設計就是幀結構設計。
在一幀內容中,通常包括以下部分。
1> 起始碼:由乙個或若干個包含特定內容的位元組,表示乙個通訊幀的開始。起始碼的內容必須與通訊資料內容有明顯區別(不能在通訊資料裡出現與起始碼相同的內容) 注:
當通訊幀的總長度比較短,通道質量比較高時,為了提高效率,可以不設定起始碼。
2> 位址碼:在主從結構的多機組網通訊系統中,用來指明分機號。
l 當分機總數在255臺之內時,位址碼為1位元組。可以定義乙個特殊的位址碼作為廣播位址,代表所有的分機。
l 在多主多從(無主從)結構的多機組網通訊系統中,位址碼包含收發雙方的位址。
注:如果是兩台裝置之間進行點對點的通訊,幀結構中就步需要包含位址碼。
3> 長度碼:在資料長度不固定的通訊場合(變長幀),表示本幀資料內容的位元組數。當長度肯定不超過255位元組時,長度碼用1位元組表示。
注:如果每次通訊資料內容的長度為雙方約定的固定值(定長幀),幀結構中就不需要包含長度碼。
4> 資料段:通訊的實質內容。
5> 校驗碼:由於通訊通道存在干擾,為了判斷接收的內容是否受到干擾,需要加入效驗碼。
效驗碼演算法可以採用
l 簡單的異或校驗碼。
l 也可以像hex檔案那樣採用算術加法校驗。
l 採用功能極強的crc校驗。
注:當通訊環境非常好時(如室內裝置之間的通訊),幀結構中就不需要包含校驗碼。
2. rs232標準
1> 簡介:
l rs232介面是2023年由美國
電子工業協會(eia)聯合貝爾系統
、數據機廠家及計算機終端生產廠家共同制定的用於序列通訊的標準。它的全名是「資料終端裝置(dte)和資料通訊裝置(dce)之間序列二進位制資料交換接**術標準」。
l 該標準規定採用乙個25個腳的db25聯結器,對聯結器的每個引腳的訊號內容加以規定,還對各種訊號的電平加以規定。隨著裝置的不斷改進,出現了代替db25的db9介面,現在都把rs232介面叫做db9
注:我們後面所用的都是
rs232
的db9介面
2> 介面定義
先看圖:
引腳1:dcd 載波檢測
引腳2:rxd 接收資料
引腳3:txd 傳送資料
引腳4:dtr 資料終端準備好
引腳5:sg 訊號地
引腳6:dsr 資料準備好
引腳7:rts 請求傳送
引腳8: cts 清除傳送
引腳9: ri 振鈴提示
tiger-john說明:
1在uart0串列埠程式設計中我們只用到了引腳
2,引腳
3,和引腳5.
2.目前的串列埠線有兩中連線方法:
l 平行線:2接2,3接3(即發對發,接對接)
l 交叉線:2接3,3接2(即發對接,接對發)
各個外設所用的連線方法都不一樣。因此,除錯程式時,一定要注意你所用的是那中串列埠線。如果串列埠線選錯的話,它們之間是不通訊的
UART0串列埠程式設計系列之前奏篇
串列埠程式設計之前奏篇 author tiger john website blog.csdn.net tigerjb email jibo.tiger gmail.com update time 2011年1月30日星期日 眾所周知嵌入式系統之間採用通訊方式交換資料,由於各類cpu均整合了uart...
arm 裸機程式設計 串列埠篇
uart 通用非同步收發器,是一種全雙工序列非同步通訊 波特率與bps 實際上波特率並不等於bps。波特率 一秒鐘傳輸碼元的個數 bps 一秒鐘傳送的位元位位數 而碼元是承載資訊量的基本訊號單位,乙個二進位制碼元佔乙個位元位 所以僅傳輸二進位制碼元時,bps等於波特率 同步和非同步方式 非同步 非同...
開始的iOS程式設計之前的準備
註冊開發賬號,任何人 都可以免費註冊成為蘋果的開發人員。你可以去 進行註冊。註冊過程非常簡單。xcode是開發iphone和ipad應用程式的工具。xcode是蘋果公司提供的整合開發環境 ide xcode為你的應用程式開發提供你需要的一切,最重要的一點,xcode內建iphone 或ipad 模擬...