Board logo

标题: ARM中基于DMA的高效UART通讯及其应用(3) [打印本页]

作者: yuyang911220    时间: 2014-7-6 13:34     标题: ARM中基于DMA的高效UART通讯及其应用(3)

5、试验及结论               
为了验证基于DMA的通讯的有效性,笔者做了对比试验。把负责轨迹插补的定时中断优先级设计成最高(中断时间间隔50毫秒,中断服务程序执行时间约需要30毫秒),然后一个机器人采用中断方式接收上位机连续发送的100组命令,另一个采用基于DMA的方式接收上位机连续发送的100组命令。然后在机器人主程序中通过读取UART的状态寄存器判断出现错误(主要是数据溢出错误,即缓冲区有接收数据而没有及时读取,被新的数据覆盖)的次数。软件采用C语言,用ADS1.2编译调试。试验结果如表2。实验证明了第二种方式的有效性。
表2:对比试验结果

本文作者的创新点在于:在UART通讯中,通过采取DMA方式,直接将UART接收的数据转移到设定好的RAM区,然后设置相应的全局标志,通知主程序数据可用就可以了。开发人员不需要到UART的缓冲区中读取数据,直接读RAM就可以了。与采用中断方式或者查询方式的串行口通讯方式相比较,不仅仅可以节省CPU通讯时用于接收数据的时间,同时可以防止UART接收的数据由于没有及时被读取而丢失,提高了通讯的可靠性。
参考文献:
(1)嵌入式系统开发与应用,田泽编著,北京航空航天大学出版社,2005年5月第一版;
(2)S3C44B0X RISC MICROPROCESSOR ,SAMSUNG ElECTRONICS
(3)ARM微控制器基础与实战,周立功等编著,北京航空航天大学出版社,2003年11月第1版.
(4) 魏永清 万宝年,具有软件模拟FIFO缓冲区的串口通信模块设计,微计算机信息 2006年第7-2期:64-66




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0