UART學習之路(二)基本時序介紹

來源:互聯網
上載者:User

標籤:order   uart   瞭解   art   基本   ali   時序   border   頻率   

這次我們來介紹一下UART的基本時序,瞭解一下底層訊號怎麼傳送的。方便以後使用Verilog HDL實現收發邏輯。

9600bit/s 的意思是每秒發送9600bit,因此可以理解為將1s分解為9600等分,對於發送端來說,每bit電平的維持時間是1/9600s,對於接收端來說,在1/9600s內要完成資料的採樣。因此對於不同時間源的裝置,如何?這個發送“節拍”以及設定接收採樣頻率非常重要,即主從裝置對各自主時鐘(SCLK)的分頻非常重要。

UART的基本時序:

發送端

接收端

UART的每一幀資料一般有10位分別為初始位,8位元據和結束位。對於發送端,將待發送的資料存入發送寄存器,產生起始位即將電平拉低,隨後每1/9600s將寄存器中的資料一位一位的發送出去。當資料發送完畢後,將電平拉高等待下一次的發送。對於接收端來說首先要檢測是否有資料來,採用下降沿檢測的方式來檢測起始位。對於資料位元的採樣,選取資料位元的中點位置的電平作為採樣資料,中點位置的電平較為穩定。設採樣間隔為N,當採樣8N後,就可以停止採樣了。

採樣時鐘的如何擷取,其實是通過裝置的主時鐘分頻得到的。取16x或者64x倍的傳輸速率時鐘作為採用時鐘是實踐總結出來的,主要是為了無失真的擷取資料,同時也為了方便編程。下面舉個例子:

主時鐘為SCLK = 40Mhz,傳輸速率為9600,則採用頻率fs = 16*9600 = 153600。Tsclk = 25ns,Ts = 1/fs = 6510.4167ns,N = Ts / Tsclk = 260.4167。也就是說在每個Ts下有260個Tsclk,以上升沿作為計數標準的話,數130下就為一個Ts,即每數130個Ts的上升沿,採樣時鐘的電平就翻轉一次。採用這種方式就可以得到採樣時鐘了。對於採樣間隔N的計算,每個bit電平的維持時間是Tbit = 16 * Ts = 104166.667ns = 16Ts。bit0採樣的是下降沿檢測,等待16Ts後,進入bit1的電平時間,在中點採樣。因此第一個採樣點的時間是(16+8)Ts  = 24Ts,以此類推後面的採樣點分別為:40,56,72,88,104,120,136,152。

對於發送端,只需要根據傳輸速率對SCLK進行不同的分頻就好了。現總結分頻如下:

傳輸速率 T 計數上限 FPGA50Mhz頻率下的計數值;Tsclk =1 / 50Mhz = 20ns
9600 104166.667 T/Tsclk 5208-1
19200 52083.333 T/Tsclk 2604-1
38400 26041.667 T/Tsclk 1302-1

57600

17361.111 T/Tsclk 868-1

115200

8680.556 T/Tsclk 434-1

UART學習之路(二)基本時序介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.