新聞中心

        對UART的FIFO的理解

        作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
        FIFO的必要性。在進(jìn)行UART通信時,中斷方式比輪詢方式要簡便且效率高。但是,如果沒有收發(fā)FIFO,則每傳輸一個數(shù)據(jù)(5~8位)都要中斷處理一次,效率仍然不高。如果有了收發(fā)FIFO,則可以在連續(xù)收發(fā)若干個數(shù)據(jù)(可多至14個)后才產(chǎn)生一次中斷,然后一起處理。這就大大提高了收發(fā)效率。
          接收超時問題。如果沒有接收超時功能,則在對方已經(jīng)發(fā)送完畢而接收FIFO未填滿時并不會觸發(fā)中斷(FIFO滿才會觸發(fā)中斷),結(jié)果造成最后接收的有效數(shù)據(jù)得不到處理的問題。有了接收超時功能后,如果接收FIFO未填滿而對方發(fā)送已經(jīng)停,則在不超過3個數(shù)據(jù)的接收時間內(nèi)就會觸發(fā)超時中斷,因此數(shù)據(jù)會照常得到處理。
          發(fā)送時,只要發(fā)送FIFO不滿,數(shù)據(jù)只管往里連續(xù)放,放完后就直接退出發(fā)送子程序。隨后,F(xiàn)IFO真正發(fā)送完成后會自動產(chǎn)生中斷,通知主程序說:我已經(jīng)完成真正的發(fā)送。
          接收時,如果對方是連續(xù)不間斷發(fā)送,則填滿FIFO后會以中斷的方式通知主程序說:現(xiàn)在有一批數(shù)據(jù)來了,請?zhí)幚怼?/div>
          如果對方是間斷性發(fā)送,也不要緊,當(dāng)間隔時間過長時(2~3個字符傳輸時間),也會產(chǎn)生中斷,這次是超時中斷,通知主程序說:對方可能已經(jīng)發(fā)送完畢,但FIFO未滿,也請?zhí)幚怼?/div>

        關(guān)鍵詞: UARTFIF

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 枣阳市| 溧水县| 福州市| 万州区| 双鸭山市| 奇台县| 乐平市| 班玛县| 呼伦贝尔市| 鹤庆县| 保德县| 霍林郭勒市| 齐河县| 隆子县| 马龙县| 惠来县| 张家港市| 盘锦市| 康保县| 大足县| 洪泽县| 舟曲县| 会泽县| 乌拉特中旗| 板桥市| 从江县| 霍州市| 日照市| 商都县| 陆河县| 河东区| 武穴市| 彭山县| 南木林县| 杭锦后旗| 太仓市| 绥滨县| 东阳市| 通化县| 通化市| 依安县|