S5PV210串行通信接口详解1

(1)整个串口控制器包含transmitter和receive两部分组成,彼此独立。transmitter负责210向外发送信息,receiver负责从外部接收信息给210。

(2)总线角度讲串口控制器是接在APB总线上,对编程有影响的是:将来计算串口控制器的源时钟是以APB总线计算的。

(3)transmitter由发送缓冲区和发送移位器构成。我们发送信息时,首先将信息进行编码(一般用ASCII码)成二进制流,然后将一帧数据(一般8位)写入发送缓冲区(后面硬件自动做好,不需要软件管理)

(4)receiver由接收缓冲区和接收移位器构成。当有人通过串口线向210发送信息时,信息通过Rx通信线进入我的接收移位器,然后接收移位器自动移位将二进制位保存入我的接收缓冲区,接收到一帧数据(一般8位)后receiver会产生CPU,CPU收到中断后即可知道receiver接收满一帧数据,就会来读取这帧数据。

总结:发送缓冲区和接收缓冲区是关键。发送移位寄存器和接收移位寄存器的工作都是自动的,不需要编程控制,我们要实写的代码是:首先初始化好串口控制器(发送控制器和接收控制器),然后要发送信息时直接写入发送缓冲区,要接收时,直接接收缓冲区即可。

(5)串口控制器中有一个波特率发生器,作用是产生串口发送/接收的节拍时钟。波特率发生器其实是个时钟分频器,它的工作需要时钟源(APB总线来),然后内部源时钟进行分频(软件设置寄存器来配置)得到目标时钟,然后再用这个目标时钟产生波特率(硬件自动)。

自动流控:(AFC:Auto flow contcontrol)

        为什么需要流控?流控的目的是让串口通信非常可靠,在发送方速率比接受方速率快的时候流控可以保证发送和接收不漏东西

        现在为啥不用流控?现在计算机之间有更高级的(USB、internet)的通讯方式,串口已经基本被放弃了,现在串口只是用来输出调试信息的

猜你喜欢

转载自blog.csdn.net/weixin_40405692/article/details/81324015