網(wǎng)站用戶注冊怎么建新手做電商怎么起步
串口基礎(chǔ)知識詳細介紹:
該鏈接詳細介紹了串并行、單雙工、同異步、連接方式
https://blog.csdn.net/weixin_43386810/article/details/127156063
該文章將介紹串口數(shù)據(jù)的電平變化、波特率計算、脈寬計算以及數(shù)據(jù)傳輸量的計算。
捕獲工具:邏輯分析儀(LA1010)
波特率:115200
數(shù)據(jù)位:8bit
校驗位:無
停止位:1bit
1.空閑態(tài): UART總線不在傳輸數(shù)據(jù)的時候,總線處于空閑狀態(tài),為高電平
2.起始信號 開始信號,串口通信的開始標(biāo)志位
3.數(shù)據(jù)位 串口發(fā)送數(shù)據(jù),先發(fā)低位,再發(fā)高位
4.奇/偶校驗位:校驗數(shù)據(jù)是否正確
????????奇校驗:數(shù)據(jù)位和校驗位1的個數(shù)為奇數(shù) 假設(shè)數(shù)據(jù)位0x55(0101 0101),校驗位1 假設(shè)數(shù)據(jù)位0x51(0101 0001),校驗位0
????????偶校驗:數(shù)據(jù)位和校驗位1的個數(shù)為偶數(shù) 假設(shè)數(shù)據(jù)位0x55(0101 0101),校驗位0 假設(shè)數(shù)據(jù)位0x51(0101 0001),校驗位1
5.停止信號:發(fā)送數(shù)據(jù)結(jié)束,回到高電平狀態(tài),校準(zhǔn)時鐘信號 一幀數(shù)據(jù)發(fā)送結(jié)束后,需要校準(zhǔn)時鐘信號,為什么需要校準(zhǔn)時鐘信號呢? 因為串口采用的是異步通信方式,雙方都有自己獨立的時鐘源,雖然設(shè)置了雙方的時鐘源保持一致, 但是在發(fā)送數(shù)據(jù)時,每發(fā)送一幀數(shù)據(jù)時,都會產(chǎn)生誤差,越往后,發(fā)送的數(shù)據(jù),累計誤差越大, 所以每發(fā)送一幀數(shù)據(jù)之后,需要校準(zhǔn)時鐘信
使用邏輯分析儀(LA1010)進行捕獲和分析串口數(shù)據(jù)。
截取其中一幀數(shù)據(jù)進行分析,無數(shù)據(jù)傳輸時為高電平:
起始位 1bit(綠色)、高電平 --> 低電平。
數(shù)據(jù)位 8bit(白色)、高 / 低電平。
停止位 1bit(紅色)、高 / 低電平位 --> 高電平。
下圖為起始位、數(shù)據(jù)位、停止位的具體時間:
C2-C1:起始位 8.64us。
A2-A1:數(shù)據(jù)位中的某一位?8.61us。
B2-B1:停止位?8.62us。
可以看出起始位和停止位都是1bit。
?
根據(jù)數(shù)據(jù)位時間8.61us可以計算出大概波特率為:
1000 000 us / 8.61us ≈ 116144 bit/s
計算得出1s時間可傳輸約116144 bit 數(shù)據(jù),和設(shè)定的115200波特率基本符合,偏差為約0.99%。
通信設(shè)備(主機和從機)之間的波特率偏差可以影響通信的穩(wěn)定性和可靠性。一般來說,在串口通信中,波特率的偏差在正負5%以內(nèi)是可以正常通信的。
波特率的偏差指的是實際通信速率與預(yù)期通信速率之間的差異。例如,如果主機和從機之間的波特率設(shè)定為115200 bps,那么在實際通信中,波特率可以偏差在115200 bps的正負5%范圍內(nèi),即109440 bps到120960 bps之間。
超出正負5%的波特率偏差可能導(dǎo)致接收到的數(shù)據(jù)出現(xiàn)誤碼,通信錯誤率增加,甚至無法正常通信。因此,為了確保通信的穩(wěn)定性,通常在主機和從機之間的波特率設(shè)置時應(yīng)盡量控制在正負5%以內(nèi)的偏差范圍內(nèi)。
一幀數(shù)據(jù)包含起始位、停止位、數(shù)據(jù)位,一共10 bit 數(shù)據(jù),即傳輸一字節(jié)數(shù)據(jù)需要:
8.61us * 10bit? = 86.1us
當(dāng)我們傳輸一組33字節(jié)的數(shù)據(jù),則需要:
33Byte?* 86.1us? =? 2841.3us? =? 2.8413ms
通過標(biāo)尺驗證該計算方法準(zhǔn)確性:
和計算的2.8413ms差別不大,計算正確。