<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇單片機專區單片機初中級 → 關于單片機串口通信的“詳細”工作原理的討論


      共有7817人關注過本帖樹形打印

    主題:關于單片機串口通信的“詳細”工作原理的討論

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


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

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

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

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

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

        4、即使CPU的任務相當繁重,或對接收到的每個字節都需要進行相當復雜的處理,我們也完全可以通過建立接收緩沖區的方式將暫時來不及處理的數據暫存起來,等CPU空閑時再做處理。而從SBUF取出數據并保存到緩沖區只需要很少的幾條指令就能完成,不會影響到串口繼續接收。

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

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

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

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

    返回版面帖子列表

    關于單片機串口通信的“詳細”工作原理的討論








    簽名
    主站蜘蛛池模板: 久久不见久久见免费影院www日本 久久不见久久见免费影院www日本 | 女人18毛片免费观看| 亚洲国产日韩欧美一区二区三区| 看看黄色一级片| 国产强伦姧在线观看| 99RE6这里有精品热视频| 好男人影视在线WWW官网| 久久男人资源站| 棉袜足j吐奶视频| 什么网站可以看毛片| 精品国产免费人成网站| 国产成人av一区二区三区在线观看| 99久久免费精品高清特色大片| 好大好湿好硬顶到了好爽视频 | 中文字幕乱码一区二区免费| 日韩v亚洲v欧美v精品综合| 亚洲第一区二区快射影院| 男人日女人动态视频| 国产一级视频免费| 香蕉网在线播放| 国产精品无码永久免费888| 《溢出》by沈糯在线阅读| 成全高清视频免费观看| 久久综合久久久| 樱桃视频高清免费观看在线播放 | 免费无码AV一区二区三区| 美女图片在线视频精品播放| 国产成人精品福利色多多| 92午夜少妇极品福利无码电影| 天堂网www最新版资源在线| 中文字幕无码免费久久9一区9| 日本久久久久久中文字幕| 亚洲乱码一区av春药高潮| 欧美日本视频在线观看| 做受视频60秒试看 | 久久精品国产亚洲AV高清热| 最新国产成人ab网站| 亚洲成a人片在线观看播放| 欧美激情观看一区二区久久| 免费大黄网站在线看| 篠田优在线播放|