欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

串口模塊

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-2-23 17:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
串口傳輸還有另一個重要參數就是“波特率”。很多朋友都誤解“波特率”是串口傳輸
的傳輸速度,這樣的理解在宏觀上是無誤。但是在微觀上“波特率”就是串口傳輸中“一
個位的周期”,換句話說亦是“一個位所逗留的時間”。
常用的波特率有9600 bps 和115200 bps ( bit per second )。“9600 bps”表示每秒可
以傳輸9600 位。但是經過公式計算“一個位的周期”就會暴露出來。
一個位的周期= 1 / bps
= 1/ 9600
= 0.000104166666666667
從上述的公式,我們明白一個事實9600 bps ,一位數據占用0.000104166666666667s時
間。如果是一幀11 位的數據,就需要
0.000104166666666667 x 11 = 0.00114583333333334
那么一秒鐘內可以傳輸
1 / 0.00114583333333334 = 872.727272727268
872.727272727268 個幀數據。
當然這只是在數字上計算出來而已,但是實際上還有許多看不見的延遲因數。
串口傳輸數據“從最低位開始,到最高位結束”。?




圖2?


如上圖所示,數據采集都是在“每位數據的中間”進行著。?
9600 bps 傳輸速度使一位數據的周期是0.000104166666666667s 。以20Mhz 時鐘頻率
要得到上述的定時需要:N = 0.000104166666666667 / ( 1 / 20Mhz ) =2083如果從零開始算起2083 - 1 亦即2082 個計數。?
assign BPS_CLK = ( Count_BPS == 12'd1041 ) ? 1'b1 :1'b0;這行代碼是在傳輸時鐘的中間采集數據。?
串口接收主要看控制芯片自己寫的時鐘如圖2。也就是說,RX_Pin_In數據的時鐘是由發送端控制,bps_module的時鐘由芯片控制。發送端按波特率(一定的時鐘頻率)發送過來的時候,我們自己寫出一個時鐘,這個時鐘恰好在發送端的時鐘的?中間,所以可以這樣來穩定接收數據!
串口發送主要看bps_module的時鐘圖4,發送周期依然是2082。
“怎么定時發送是發生在Count_BPS 計數的一半?”
圖3?


圖4?


圖3是產生3 個“定時發送”。每個“定時發送”是在計數12'd1041發生。讀者嘗試數數看,兩個“定時發送”的之間到底相差了多少個計數?沒錯,是12'd2082個計數。這下明白怎么一回事了吧!上一個定時的產生與下一個定時產生的之間才是重點,也就說“一位數據的周期"定義在兩個定時的之間。

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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