*在通讯领域内,有两种数据通讯方法:并行通讯和串行通讯
*串口的数据传输是以串行方法进行的。串口在数据通讯中,一次只传输一个比特的数据。
*串行数据的传输速度用bps或波特率来描绘
【UART】
发送数据时,CPU将数据写入UART,UART依照必定的格局从一个管脚TxD上串口宣布;
承受数据时,UART检测另一个管脚RxD上的信号,将串行数据放在缓冲区中,CPU即可读。
(UART之间是以全双工方法传输数据)
UART运用规范TTL/CMOS逻辑电平标明数据
*0-5v,0-3.3v,0-2.5v或0-1.8v
*高电平标明1,低电平标明0
但是在外围电平中,为了增强数据的抗干扰才能、进步传输长度,通常将TTL/CMOS逻辑电平转化为RS-232逻辑电平。例如可运用电平转化芯片:MAX3232
RS-232逻辑电平(反逻辑)
3-12V:标明0
-3~-12V:标明1
传输数据前的预备(约定好波特率和传输格局)
*有多少个数据位
*是否运用校验位
*是奇校验仍是偶校验
*有多少个中止位
【奇校验/偶校验】
奇校验:便是让原有数据数列中,(包含你要加上的一位)1的个数为奇数 ;
1000110(0)你有必要添0这样本来的3个1现已是奇数了所以添上0仍是奇数 ;
偶校验:便是让原有数据序列中,(包含你要加上的一位)1的个数为偶数 ;
1000110(1)你有必要加1了这样本来的3个1现已是奇数了所以添上1仍是奇数 ;
【中止位】
有用帧之间的闲暇位 ;
【异步数据传输方法】
发送数据时,SOC先讲数据写入发送FIFO中,然后UART会主动将FIFO的数据复制到发送移位器中,发送移位器将数据一位一位的发送到TxDn数据线上
承受数据时,接纳移位器将RxDn数据线上的数据一位一位的接纳进来,然后复制到承受FIFO中,SOC即可从中读取数据
【硬件流操控】
*假如翻开串口硬件流程操控后,串口A只要在nCTS被(串口B的nRTS)激活后才能把数据发送出去 ;
*当串口A能够承受数据时,激活nRTS,预备好承受数据
【UBRDIVn】
*在UART模块中有三个UART波特率除数因子寄存器UBRDIV0,UBRDIV1,UBRDIV2,存储在波特率除数寄存器UBRDIVn中的值用于决议波特率
UBRDIVn = (int)(UART Clock / (buad rate*16))- 1
【ULCON】
【UCONn】(挑选UART时钟源、设置UART中止方法)
【UFCONn】(该寄存器用于设置是否运用FIFO,设置各个FIFO的触发深度)
【UTRSTATn寄存器】
(用来标明数据是否现已被发送结束,是否现已接纳数据)
【UTXHn/URXHn】
UTXHn寄存器:SOC将数据写入这个寄存器,UART会将它保存到发送位移寄存器中,并主动发送出去
URXHn寄存器:当UART收到数据时,SOC读取这个寄存器,即可取得数据