一:串口基本知识
1.传输模式
单工/半双工/全双工:
单工:任何时候数据只能朝一个方向传输
半双工:数据可以向两个方向传输,任何同一时刻只能朝同一方向传输
全双工:数据可以同时向两个方向传输
2.CPU感知外接硬件变化通常有3种方式:
1> 轮询;
// 定时对各种设备轮流询问一遍有无处理要求,有要求就处理,处理完回归CPU日常工作。- 适合硬件变化频繁的状况
2> 中断;
// 当有硬件设备处理要求是,CPU启动输入输出设备存档准备数据,I/O完成发出中断信号,接收中断处理数据,随后某个时刻继续工作。 - 适合硬件变化不是特别频繁的状况
3>DMA;
// 直接内存存取,direct memory access,数据在内存与I/O设备间直接进行成块传输。
再来就是串口协议:通信协议
UART是通用异步收发传输器,使用RxD和TxD两根线实现异步全双工通信;为确保通信可靠,可以在通信两边接共地;因此,完整的UART通信只需最少3根线即可。
RxD是发送数据线,TxD是接收数据线,通信双方使用交叉互联,RxD接对方TxD,TxD接对方RxD。UART使用标准的TTL/CMOS电平(0~5V,0~3.3V,0~2.5V,0~1.8V)来表示数据,高电平表示1,低电平表示0.为了增强抗干扰能力,提高传输长度,可将TTL/CMOS 电平转换为RS232电平逻辑电平,3~12V表示0,-3~-12V表示1(RS232为负逻辑)
1)UART平时处于空闲状态,逻辑1状态。
2)当有数据发送时,先发送起始位,即将TxD拉低并维持1位时间,接收方在检测到起始位下降沿,等待1.5位后开始一位一位检测数据。
3)发送数据,UART数据一帧可以是5,6,7,8位等,一般是8bit,一个字节。数据发送是先发送低位,依次发送,直到最高位。
4)可以使用0或者1bit的校验位,校验位可以是奇校验或者偶检验。奇校验:数据加校验位中1的个数为奇数;偶校验:数据加校验位中1的个数为偶数。
5)最后是停止位,数据线恢复到空闲状态,停止位可以是1,1.5,2位。
2.串口定义
引脚1:DCD 载波检测
引脚2:RXD 接收数据
引脚3:TXD 发送数据
引脚4:DTR 数据终端准备好
引脚5:SG 信号地
引脚6:DSR 数据准备好
引脚7:RTS 请求发送
引脚8: CTS 清除发送
引脚9: RI 振铃提示