ARM中基于DMA的高效UART通訊及其應用
5、試驗及結論
為了驗證基于DMA的通訊的有效性,筆者做了對比試驗。把負責軌跡插補的定時(shí)中斷優(yōu)先級設計成最高(中斷時(shí)間間隔50毫秒,中斷服務(wù)程序執行時(shí)間約需要30毫秒),然后一個(gè)機器人采用中斷方式接收上位機連續發(fā)送的100組命令,另一個(gè)采用基于DMA的方式接收上位機連續發(fā)送的100組命令。然后在機器人主程序中通過(guò)讀取UART的狀態(tài)寄存器判斷出現錯誤(主要是數據溢出錯誤,即緩沖區有接收數據而沒(méi)有及時(shí)讀取,被新的數據覆蓋)的次數。軟件采用C語(yǔ)言,用ADS1.2編譯調試。試驗結果如表2。實(shí)驗證明了第二種方式的有效性。
表2:對比試驗結果
本文作者的創(chuàng )新點(diǎn)在于:在UART通訊中,通過(guò)采取DMA方式,直接將UART接收的數據轉移到設定好的RAM區,然后設置相應的全局標志,通知主程序數據可用就可以了。開(kāi)發(fā)人員不需要到UART的緩沖區中讀取數據,直接讀RAM就可以了。與采用中斷方式或者查詢(xún)方式的串行口通訊方式相比較,不僅僅可以節省CPU通訊時(shí)用于接收數據的時(shí)間,同時(shí)可以防止UART接收的數據由于沒(méi)有及時(shí)被讀取而丟失,提高了通訊的可靠性。
參考文獻:
(1)嵌入式系統開(kāi)發(fā)與應用,田澤編著(zhù),北京航空航天大學(xué)出版社,2005年5月第一版;
(2)S3C44B0X RISC MICROPROCESSOR ,SAMSUNG ElECTRONICS
(3)ARM微控制器基礎與實(shí)戰,周立功等編著(zhù),北京航空航天大學(xué)出版社,2003年11月第1版.
(4) 魏永清 萬(wàn)寶年,具有軟件模擬FIFO緩沖區的串口通信模塊設計,微計算機信息 2006年第7-2期:64-66
評論