原文來自:24c01硬件電子
有時候沒有邏輯分析儀,恰恰示波器也沒買串口解析的功能,那么如何扒串口數據呢?(以下文章也適用于RS485,因為基本差不多)
首先介紹一下串口數據幀的組成:起始位1bit(低電平),數據位8bit,奇偶校驗位(一般不加),停止位1bit(高電平)。
所以我選擇的數據幀格式為: 1bit起始位+8bit數據位+1bit停止位(大多數都是這樣) 首先看一個示波器抓取的串口波形,如下圖:
首先看第一位低電平,是起始位,通過讀格子,大概可以看出是100us一個bit位,那么反推回去1s/100us≈9600波特率(實際上我設置的也就是9600波特率),9600波特率下的1bit時間為1/9600≈104us。 所以按照串口數據幀的格式,可以將數據大概扒出來,如下圖:
然后串口數據格式一般是LSB,即低位在前高位在后,所以去掉起始位和停止位后,這兩幀數據分別為: 0011 0101和 0111 0100 然后再根據8421BCD碼的編碼方式,反推回去就是: 2+14+1和 4+2+14 即數據是3574 那么這也正和我用串口發送給示波器的一樣:
那么奇校驗和偶校驗是什么意思呢?1、奇校驗數據幀格式為:1bit起始位+8bit數據位+1bit奇偶校驗位+1bit停止位數據位和奇偶校驗位內的1的總數為奇數比如數據位為0011 0101 (35)總共有4個1,那么奇偶校驗位就應該為1,這樣才可以保證總共1的個數為奇數。 比如數據位為0111 0101(75)總共有5個1,那么奇偶校驗位就應該為0,這樣才可以保證總共1的個數為奇數。2、偶校驗數據幀格式為:1bit起始位+8bit數據位+1bit奇偶校驗位+1bit停止位數據位和奇偶校驗位內的總共1的總數為偶數那么,這次不發送3574了,我使用串口發送3575,然后調到奇校驗:
然后抓取示波器波形,可以看到和之前舉的例子一樣,第一幀8bit的數據位里有4個1,為了保證有奇數個1,所以校驗位為1,這樣8bit數據位+1bit校驗位的1的總數就為5,是奇數了;第二幀數據里8bit數據里有5個1,所以校驗位為0,也是保證最后有奇數個1:(偶校驗類似,不在舉例)
感謝您的耐心觀看,希望對您的學習有所幫助。 原文來自:24c01硬件電子
如果看到這里,請點贊、收藏、分享三連!
限時免費掃碼進群,交流更多行業技術
審核編輯 黃宇
-
示波器
+關注
關注
113文章
6282瀏覽量
185849 -
串口
+關注
關注
14文章
1558瀏覽量
77052
發布評論請先 登錄
相關推薦
ADC124S021用硬件SPI時,串口發送數據一直是0000,為什么?
示波器自動計量系統如何記錄數據?
超級干貨!Air780E的串口通信分享
![超級<b class='flag-5'>干貨</b>!Air780E的<b class='flag-5'>串口</b>通信分享](https://file1.elecfans.com/web2/M00/09/6E/wKgaomb4rx2AdnIgAAM3FpU3ILg045.png)
hc32f460串口接收不到數據是怎么回事?
虛擬示波器還是數字示波器好用
干貨 | 示波器如何利用好?
![<b class='flag-5'>干貨</b> | <b class='flag-5'>示波器</b>如何利用好?](https://file1.elecfans.com//web2/M00/EB/07/wKgZomZchSCACc09AACPHBdf7so978.png)
示波器如何保存波形數據?
示波器怎么存儲數據
如何使用示波器測量串口波特率
混合示波器與數字示波器的區別
什么是串口 串口無法傳輸數據的原因
![什么是<b class='flag-5'>串口</b> <b class='flag-5'>串口</b>無法傳輸<b class='flag-5'>數據</b>的原因](https://file1.elecfans.com/web2/M00/C3/3C/wKgaomXhkZ6AKt4hAAF6AFM3gQc894.png)
評論