S5PV210串行通信接口详解2

《朱老师物联网大讲堂》学习笔记

学习地址:www.zhulaoshi.org


上一节课,我们讲了串口通信的原理,

谈到了,当发送数据速率大于接收速率情况下,产生的AFC技术,

这节要谈论的问题也是速率问题,但是对象有所变化,

这回是CPU。


由此而诞生的技术有FIFO,DMA.


FIFO

典型的串口发送/接收缓冲区只有8位,

每次发送/接收只能处理一帧数据,

这在单片机中没有问题,但是在复杂的SOC(一般是有操作系统)中就有问题,会导致效率低下,

因为CPU需要反复不断地切换上下文,

解决方法是想办法扩展我们串口控制器的发送/接收缓冲区,比如将发送/接收缓冲区设置位64字节,

CPU一次过来就直接给缓冲区64字节的数据,

然后transmitter慢慢发,

发完再找CPU要64字节。


想的和做的总是难免有区别,

扩展这个缓冲区,但是不能直接去扩展原来的那个缓冲区,

因为那个缓冲区是不能变得,这里面涉及到原来这个里面电路的设计以及向前兼容的考虑,

所以并不适合去改变原来那个缓冲区,我们做了个变相的扩展,

在原来缓冲区外,加了个更大的缓冲区,这个说法好像有点怪,不过没关系!

总之就是FIFO。


DMA

direct memeory access,直接内存访问。

DMA技术的核心是在交换数据时候不需要CPU参与。

FIFO是一种轻量级的解决方案,DMA模式适合大量数据迸发式的发送/接收。



IrDA

其实就是红外,

在某些开发板上,是通过串口来实现红外的,

但这并不是说,你没有红外硬件就可以实现红外,

还是得需要相关硬件,只不过在软件的层面,是用串口发送数据的方式来实现的。

S5PV210串行通信接口详解2_第1张图片

你可能感兴趣的:(ARM裸机)