示波器分析UART串口數據

 從泰克示波器裏面看UART數據的時候  截下來一段傳輸幾個字節的數據信號數據

改天把圖和數據傳上來了  再對着圖分析 各個UART中的各個概念

文件弄回來了  原始的是CSV格式的  原文件  放在Dbank  數據銀行上



  這個是示波器一段的圖   上面的數據(原文件)就是這段的


Y的座標單位是 電壓值 V   

X的單位是 時間 S   都是幾十uS的    從這個可以分析出來 是多大波特率

UART的格式 可以通過程序設置   有些會在停止位之前有一個奇偶校驗之類的  停止位也不一定只是一個單位大小  可以設置爲1、1.5、2等

中間的數據位長度也可以設置位 6 7 8 位等

還有數據的傳輸順序   我這個是LSB先出的  所以可以看出

第一個數據 01010101  反過來就是10101010 =0xAA 

 第二個10101010 反過來01010101  0x55

第三個11001011  反過來  11010011  0xD3

第三個 11010000  反過來 00001011  0x0B

對着示波器  分析一遍之後  沒錯就是這樣的  就是傳的這些   也就是  數據和實際傳輸的信號  很好的對應上了

這個信號 是TXD 與 GND 之間的電壓信號     此時  RXD與GND之間  一直爲高電平電壓值

這就是  UART : Universal Asynchronous Receiver/Transmitter,通用異步接收/發送   異步  沒有時鐘   接受端得有相應的採樣時鐘  否則會亂的  

對於波特率的問題  這份數據有記錄時間(具體精確的時間要看數據表)  好像記得在通信裏面有碼元這個概念  這裏就是1bit   波特率=1/(1bit的時長)   這份數據1bit的時長≈8.6*10^(-6)s  也就是8.6us  1/8.6us =116279.06976744Hz   也就是115200的波特率了  因爲那個8.6us的時間是估計的    而常用的波特率有這麼些:看圖片吧

也就是1200 1800 2400 4800 7200 9600 14400 19200 38400 57600 115200 128000 還有一些

115200 原來以爲速度還挺快的   用示波器看了之後  我再運行了一段代碼  輸出兩個引腳信號 來看時間 發現當運行一段不短的代碼之後串口才發完3、4個碼元(不是byte哦)  天哪   算一算  如果發16byte的數據   總共16*10(1bit起始位+8bit數據位+1bit的結束位)=160個碼元的時間  160*1/115200=0.0013888888888889  也就是1.38ms  有時候中斷都不知道發生多少次了  肯定 這也是相對的


   UART裏面還有一個經常提到的 RS232    這是一種標準(協議 )  就像說市電一樣的  就知道是220V   RS-232  就是把TTL(0~5V) 轉換到10+V的電壓   提要電壓  可以增強抗干擾的能力    增加傳輸距離   

  一般用芯片來實現 MAX232  很典型  工作電壓5V  輸出有12V左右  和輸出的負載有關吧   例如TTL的邏輯1  232對應的就是 負10幾V  0對應的就是10+V   就是一個變換  變換後一般用9針的接口線  工程應用上就是這樣的   用到3根線  2、3、5  收發地

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章