ARM·串行接口电路
*串口的数据传输是以串行方式进行的。串口在数据通信中,一次只传输一个比特的数据。
*串行数据的传输速度用bps或波特率来描述
发送数据时,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,准备好接受数据
*在UART模块中有三个UART波特率除数因子寄存器UBRdiv0,UBRdiv1,UBRdiv2,存储在波特率除数寄存器UBRdivn中的值用于决定波特率
UBRdivn = (int)(UART Clock / (buad rate*16))- 1
(选择UART时钟源、设置UART中断方式)
(该寄存器用于设置是否使用FIFO,设置各个FIFO的触发深度)
(用来表明数据是否已经被发送完毕,是否已经接收数据)
UTXHn寄存器:SOC将数据写入这个寄存器,UART会将它保存到发送位移寄存器中,并自动发送出去
URXHn寄存器:当UART收到数据时,SOC读取这个寄存器,即可获得数据
ARM串行接 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)