久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇單片機專區(qū)單片機初中級 → 關(guān)于單片機串口通信的“詳細(xì)”工作原理的討論


  共有9213人關(guān)注過本帖樹形打印

主題:關(guān)于單片機串口通信的“詳細(xì)”工作原理的討論

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
關(guān)于單片機串口通信的“詳細(xì)”工作原理的討論  發(fā)帖心情 Post By:2010-12-7 13:58:03

案例:
文本框中有4個字節(jié)數(shù)據(jù),點command后mscomm控件將這4個字節(jié)發(fā)送給了AT89S52,MCU接到數(shù)據(jù),我的下位機程序利用中斷處理了這4個字節(jié)數(shù)據(jù)(我一直在說字節(jié)哦)。
疑問:
單片機每次只能接收一個字節(jié)數(shù)據(jù)(SBUF只能裝一個,否則會被后來的數(shù)覆蓋),雖然MSCOMM是一次發(fā)了4個,但單片機收到一個字節(jié)后就應(yīng)該中斷(是收一個而不是4個都收到后才中斷置位RI吧?),等我的程序把數(shù)據(jù)從SBUF后取走并清0RI后,它再接收下一個字節(jié)(是因為收到SBUF中數(shù)被移走的信號還是收到RI為0的信號?)直到4個都收到。但在MCU端中斷時MSCOMM仍在發(fā)數(shù)據(jù),這部分?jǐn)?shù)豈不是會漏掉?另外我說的通信流程對嗎?
這種情況通常不會出現(xiàn),因為:

    1、單片機每“次”的確只能接收1個字節(jié),但由于串口的速度實在太低,通常都在115200bps以下(即使用了同步方式也“只能”達(dá)到1Mbps)。注意,是bps,位/秒,而不是“字節(jié)/秒”,這就是“串”行通信,要至少8個“bps時間”才能接收一個完整的字符,事實上,加上起始位等,8個位往往傳送不了一個字節(jié)(不知道我的理解是不是有偏差),這就是說,速度至少還要再慢上8倍。

    2、帶有USART的單片機里USART一般都是做為“外部設(shè)備”,獨立于MCU進(jìn)行收發(fā)工作,即其收發(fā)過程中的串-并和并-串轉(zhuǎn)換以及數(shù)據(jù)IO過程都是“自主”和“自動”的,不需要CPU逐位進(jìn)行收發(fā)處理,因此,在CPU將數(shù)據(jù)送到SBUF后,便可以放手不管了,USART收發(fā)器會自動將SBUF的內(nèi)容轉(zhuǎn)換成串行數(shù)據(jù)發(fā)送出去。接收時也是由USART將串行數(shù)據(jù)轉(zhuǎn)成并行數(shù)據(jù)并存放到SBUF后才會通知MCU(產(chǎn)生接收中斷)。MCU所需要做的只是往SBUF送數(shù)或從SBUF中取數(shù)(都只要1個指令周期)。

    3、設(shè)置串口參數(shù)的時候應(yīng)該能看出,為了適應(yīng)串口的慢,不得不動用定時器進(jìn)行延時,以“產(chǎn)生”所需要的波特率,而這個“延時”通常都要給8位甚至16位定時器設(shè)置初值,定時器每一次計數(shù)都需要一個指令周期,即CPU可以執(zhí)行一條指令的時間,而定時器兩次串口溢出才僅僅接收或發(fā)送一個“位”,接收一個字節(jié)需要數(shù)倍于此的時間,那么這么長的時間對CPU來說,足以從容地從SBUF里取出數(shù)據(jù)并對其進(jìn)行處理了。

    4、即使CPU的任務(wù)相當(dāng)繁重,或?qū)邮盏降拿總字節(jié)都需要進(jìn)行相當(dāng)復(fù)雜的處理,我們也完全可以通過建立接收緩沖區(qū)的方式將暫時來不及處理的數(shù)據(jù)暫存起來,等CPU空閑時再做處理。而從SBUF取出數(shù)據(jù)并保存到緩沖區(qū)只需要很少的幾條指令就能完成,不會影響到串口繼續(xù)接收。

    5、標(biāo)準(zhǔn)的RS-232協(xié)議并非只有TX、RX和GND三個引腳,即便是最簡單的9針插口,也專門設(shè)計了檢測傳輸狀態(tài)和收發(fā)請求的針腳。如果單片機真的實在無法及時完成收發(fā)動作,也完全可以利用一個口線作為狀態(tài)標(biāo)識,使PC能夠知道單片機什么時候可以接收數(shù)據(jù),而不會任由數(shù)據(jù)丟失。

    6、為了增加數(shù)據(jù)傳輸?shù)目煽啃,大量?shù)據(jù)傳輸時通常都會采用CRC校驗方式,并以“包”或“幀”的方式發(fā)送有格式約定的字節(jié)流,而非單個字符,這樣一來,完全可以通過約定一些“通信協(xié)議”的方式,使收發(fā)雙方都能夠及時知道接收的數(shù)據(jù)是否完整,并及時重發(fā)新發(fā)送出錯的數(shù)據(jù)。

   現(xiàn)在所能想到的暫時就這么多,思路較亂,文字表述也挺羅索,謹(jǐn)供參考,歡迎交流。

支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

關(guān)于單片機串口通信的“詳細(xì)”工作原理的討論








簽名
主站蜘蛛池模板: 国产免费久久精品 | 亚洲视频免费看 | 日本国产最新一区二区三区 | 成人a在线 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 国产一区自拍视频 | 精品视频在线视频 | 欧美曰韩一区二区三区 | 亚洲美女影院 | 成人免费一区二区三区在线观看 | 国产日韩欧美三级 | 久久亚洲国产伦理 | 一级一级毛片免费播放 | 男女性高爱潮免费的国产 | 美国三级网站 | 欧美性色生活片免费播放 | 手机看片久久青草福利盒子 | 欧美区一区二区三 | 亚洲天堂网在线观看视频 | 亚洲欧洲日产v特级毛片 | 高清国产一级精品毛片基地 | 在线视频 日韩 | 91精品国产91热久久久久福利 | baoyu121永久免费网站 | 欧美一级毛片片免费孕妇 | 国产成人精品微拍视频 | 国产片久久| 亚洲欧美日韩在线精品一区二区 | 国内精品久久久久久影院8f | 2021精品国产品免费观看 | 久久久不卡国产精品一区二区 | 怡红院日本一道日本久久 | 精品国产一区二区三区2021 | 国产日韩欧美在线观看不卡 | 一级毛片免费看 | 国产亚洲精品久久久久久午夜 | 成年人免费黄色 | 久久国产精品免费看 | 日本人一级毛片视频 | 久艹精品 | 国产成人综合欧美精品久久 |