找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20701|回復: 3
打印 上一主題 下一主題
收起左側

單片機UART串口通訊波形實測

[復制鏈接]
跳轉到指定樓層
樓主
ID:91442 發(fā)表于 2015-10-29 12:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為了對串口通訊的過程有所了解,采用Saleae 的邏輯分析儀對STC15F204EA采用定時中斷模擬的串口信號進行了實時抓取,以確認這種通訊方法的穩(wěn)定性。

STC15F204EA上沒有硬件UART口,只能通過定時中斷來仿真,在通用IO口上模擬串行通信。
試驗時STC15F204的參數設置如下:

采用定時器0工作于1T模式0(16位自動裝載),系統(tǒng)主時鐘頻率設置在11.0592MHz。串行通信參數設置:BAUD
115200,8位數據,1個停止位,無奇偶校驗,發(fā)送順序為低位先發(fā)送。
信號抓取的設置如下:

按照起止式異步通訊協(xié)議,數據包括一個起始位,n個數據位,一個奇偶校驗位,m個停止位。格式如下圖所示。當不選擇奇偶校驗時,該位不存在。


以下為實際測試的結果:
                              字符0x0,0xFF循環(huán)的波形,有點標識的是有效數據采樣點,在起始位和停止位均不標識。
定時信息:從起始位低電平起,連續(xù)8個高電平,然后一個停止位高電平。完成后開始下一個循環(huán)。

連續(xù)的數據波形:0xFF,0x00,....,0x80的波形。可以看出,如果要發(fā)送0b0000 0001, 按時間順序則是,低(起始位),高(1),低(0),低(0),低(0),低(0),低(0),低(0),低(0)。但是后面的7個連續(xù)的低電平連接在一起,就形成了一個較長低電平。
0xFF0x00 ~ 0x04的波形,可以看出,先發(fā)送低位,然后是高位。
0x04-0x80的波形
每個字符的發(fā)送時間為87.9us。
  
停止位長度9.042us,起始位長度也是9.042us。
   
全部抓取0x55時的波形如下:
單個高電平寬度8.75us。
中間插入延時1.029ms的延時循環(huán)。
以下是對波特率的理解:
波特率是指數據信號對載波的調制速率,它用單位時間內載波調制狀態(tài)改變的次數來表示,其單位是波特(Baud)。
當波特率變化時,單個位的周期發(fā)生變化測試如下:
2400:t=1/2400(s)=0.4167ms

9600:t=1/9600=0.1041ms

38400:

57600:


通過以上的波形可以看出,只要準確的設置定時中斷的時間,就可以準確的模擬UART數據的通訊過程。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:106320 發(fā)表于 2017-10-31 11:45 | 只看該作者
傳送的是八位數據為什么是七位呢?
回復

使用道具 舉報

板凳
ID:252672 發(fā)表于 2017-11-24 16:58 | 只看該作者
有沒有相應的程序,可以參考下嗎?
回復

使用道具 舉報

地板
ID:252672 發(fā)表于 2017-11-24 17:00 | 只看該作者
你好樓主有沒有上邊的列子的程序?能發(fā)跟我參考下嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表