午夜伦理在线-午夜伦理在线观看-午夜毛片免费看-午夜美女久久久久爽久久-午夜免费


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


  共有8747人關(guān)注過(guò)本帖樹(shù)形打印

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

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


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

案例:
文本框中有4個(gè)字節(jié)數(shù)據(jù),點(diǎn)command后mscomm控件將這4個(gè)字節(jié)發(fā)送給了AT89S52,MCU接到數(shù)據(jù),我的下位機(jī)程序利用中斷處理了這4個(gè)字節(jié)數(shù)據(jù)(我一直在說(shuō)字節(jié)哦)。
疑問(wèn):
單片機(jī)每次只能接收一個(gè)字節(jié)數(shù)據(jù)(SBUF只能裝一個(gè),否則會(huì)被后來(lái)的數(shù)覆蓋),雖然MSCOMM是一次發(fā)了4個(gè),但單片機(jī)收到一個(gè)字節(jié)后就應(yīng)該中斷(是收一個(gè)而不是4個(gè)都收到后才中斷置位RI吧?),等我的程序把數(shù)據(jù)從SBUF后取走并清0RI后,它再接收下一個(gè)字節(jié)(是因?yàn)槭盏絊BUF中數(shù)被移走的信號(hào)還是收到RI為0的信號(hào)?)直到4個(gè)都收到。但在MCU端中斷時(shí)MSCOMM仍在發(fā)數(shù)據(jù),這部分?jǐn)?shù)豈不是會(huì)漏掉?另外我說(shuō)的通信流程對(duì)嗎?
這種情況通常不會(huì)出現(xiàn),因?yàn)椋?br/>
    1、單片機(jī)每“次”的確只能接收1個(gè)字節(jié),但由于串口的速度實(shí)在太低,通常都在115200bps以下(即使用了同步方式也“只能”達(dá)到1Mbps)。注意,是bps,位/秒,而不是“字節(jié)/秒”,這就是“串”行通信,要至少8個(gè)“bps時(shí)間”才能接收一個(gè)完整的字符,事實(shí)上,加上起始位等,8個(gè)位往往傳送不了一個(gè)字節(jié)(不知道我的理解是不是有偏差),這就是說(shuō),速度至少還要再慢上8倍。

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

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

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

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

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

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

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

返回版面帖子列表

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








簽名
主站蜘蛛池模板: 久久这里有精品 | 99久久婷婷国产综合精品hsex | 玖玖爱在线观看 在线播放 玖玖草在线观看 | 俄罗斯午夜影院 | 亚洲精品播放 | 色综合色综合色综合 | 欧美三级a做爰在线观看 | 三级黄色毛片 | 九九久久精品 | 精品视频一区二区三区四区 | 亚洲精品国产精品一区二区 | 黄色一级片免费看 | 亚洲精品中文字幕午夜 | 国产精品第三页在线看 | 久久91精品国产99久久yfo | 在线免费观看国产视频 | 亚洲欧洲网站 | 九九热精品视频在线观看 | 欧美亚洲综合另类 | 色综合a | 日本三级网站 | 亚洲第一页国产 | 亚洲欧美成人永久第一网站 | 成人国产视频在线观看 | 亚洲色图欧美在线 | 欧美精品一区二区久久 | 国产精品玩偶在线观看 | 精品极品三级久久久久 | 欧美特级毛片a够爽天狼影院 | 99国产精品高清一区二区二区 | 韩国主播19福利视频在线观看 | 亚洲码在线中文在线观看 | 一男一女的一级毛片 | 成人窝窝午夜看片 | 外国一级黄色毛片 | 免费一看一级毛片人 | 美国特黄特色的免费大片 | 成在线人免费视频一区二区三区 | 国内精品久久久久影院6 | 久久影院一区二区三区 | 在线播放国产一区 |