目錄
- 前言
- 通信格式
- 串行異步傳送字符格式
- 波特率
- 資料格式
前言
通信格式和資料格式這兩個東西以前沒有注意過,在使用單片機串口的時候也沒有思考過這個方面,認為配置好了就行了,在這里區分一下通信格式和資料格式,
這篇文章在學習程序中作為總結,如有錯誤,請多指教,
通信格式
通信格式就是通信的方式,在串行異步通信中,具體通信格式就是怎么發送一個字符的程序和約定,保證了正確接收一個字符,
在串行異步通信中,發送方可以在任意時刻發送字符,而且兩個字符之間可以停頓,這就需要正確的區分每個字符從什么時候開始,什么時候結束,發送速率,以及發送的和接受的內容是不是一樣的等問題,
通信格式,就規范了這些問題,實作統一標準,
串行異步傳送字符格式

| 位信號 | 說明 |
|---|---|
| 起始位 | 一個字符傳送的開始信號由邏輯0表示 |
| 資料位 | 字符資訊每位的內容,可以位7位或8位,其中每位資料按照低位先發送 |
| 校驗位 | 檢驗資料是否正確,分為奇校驗,偶校驗,可以沒有校驗, |
| 停止位 | 一個字符傳送結束的信號,用邏輯1表示, |
| 空閑位 | 兩個字符發送之間的間隔,位數不確定,以邏輯1表示, |
有了這樣的字符格式之后,信號線發送一個字符從低電平起始,高電平停止,再到高電平等待,就能分辨出每一個字符,
波特率
通過上面字符傳遞格式,可以看出傳輸程序中是以為位最小單位的,除了空閑位的數量不定,其它的都是一位,但是一位的時間持續多長呢,如果我發送的資料是11111111,接收方要怎么知道這是第幾個1,這個時候就如果知道發送的速率(頻率),就可以知道每一位持續的時間,也就能知道這是第幾位了,比如發送方沒一秒發送1位資料,接收方也按照這個速度接收,那么到第5秒的時候,這就是收到的第五個1,即使電平沒有變化,
這個速率,就是波特率,每秒鐘傳送的二進制位數,接收方也根據這個速度來接收,就能實作收發統一,如果速度不匹配,那么接收的資料就是錯誤資料,
字符資料格式和波特率就構成了異步通信的通信格式,通信雙方要按照同一個通信格式才能正確通信,否則會發生錯誤,
資料格式
通信格式保證了一個字符的正確傳輸,但是在很多時候一個字符并不能表示完整的資訊,如果按照一定的通信格式發送我愛學習,那么接收方會依次收到我 愛 學 習 ,但接收方并不知道這句話說完沒有,如果接收方直接拿這段資料去處理,可能會產生錯誤的結果,所以需要規定多個字符的格式,找到開始和結尾,就像電視里面使用對講機經常聽到呼叫總部呼叫總部,我愛學習,完畢!,這樣的話就保證了這段話的完整性,和語文中寫完一句話最后要打,一個道理,都是保證資料完整,減少歧義,
在通信的程序中,一個完整的資訊才是有效資訊,就像對話,要說一句完整的話才能正確表達意思,而一句完整的話,就叫做一幀,也叫資訊幀,但怎么確定是一幀資訊呢,這個時候就需要確定一下一句話的結構,比如 呼叫總部呼叫總部,我愛學習,完畢! 這種結構,當聽到 呼叫總部呼叫總部 就知道你要說有效資訊了,聽到 完畢! 之后,就知道你說完了,而中間的 我愛學習 就是你要表達的意思,所以 呼叫總部呼叫總部,*********,完畢! 就是一個完整的資訊,這種格式就通信雙方約定好的資料格式,
資料格式就是雙方按照一定字符規則,規范多個字符之間的關系,能夠保證資料完整,正確接收一幀資訊,資料格式在其他地方也被稱為報文,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250287.html
標籤:其他
