FPGA 笔记五
一、串口通信
1、并行通信
- 并行通信是指数据的各个位用多条数据线同时进行传输 。
- 优点:传输速度快
- 缺点:占用引脚资源多
2、串行通信
- 串行通信是将数据分成一位一位的形式在一条传输线上逐个传输。
- 优点:通信线路简单、占用引脚资源少
- 缺点:传输速度慢
3、串行通信的通信方式:
- 同步通信
带时钟同步信号的数据传输;发送方和接收方在同一时钟的控制下,同步传输数据。
- 异步通信
不带时钟同步信号的数据传输。发送方与接收方使用各自的时钟控制数据的发送和接收过程。
4、串行通信的传输方向
- 单工 :数据只能沿一个方向传输
- 半双工:数据传输可以沿两个方向,但需要分时进行
- 全双工:数据可以同时进行双向传输
5、常见的串行通信接口
6、UART基础知识
- 它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。
- 协议层:数据格式,UART串口通信需要两根信号线来实现,一根用于串口发送,另外一根负责串口接收。
- 协议层:传输速率,串口通信的速率用波特率表示,它表示每秒传输二进制数据的位数,单位是bps(位/秒)
常用的波特率有9600、19200、38400、57600以及115200等。 - 物理层:接口标准,针对异步串行通信的接口标准有RS232、RS422、RS485等。
- DB9接口定义(RS232)
二、单总线
1.1 红外遥控
- 红外遥控器的编码目前广泛使用的是:NEC协议和Philips RC-5协议,下面仅介绍MEC协议。
- NEC协议逻辑电平编码格式如下图:
- NEC协议采用PPM调制(Pulse Position Modulation,脉冲位置调制)的形式进行编码,数据的每一位(Bit)脉冲长度为560us,由38KHz的载波脉冲(carrier burst)进行调制,推荐的载波占空比为1/3至1/4。
- 由上图可知,有载波脉冲的地方,其宽度都为560us,而载波脉冲的间隔时间是不同的。逻辑“1”的载波脉冲+载波脉冲间隔时间为2.25ms;逻辑“0”的载波脉冲+载波脉冲间隔时间为逻辑“1”的一半,也就是1.125ms。
- NEC协议数据传输格式如下图:
- 由图可知,传输数据时低位在前,图中的地址码(Address)为 0x59,控制码(Command)为 0x16。一个信息的发送由9ms的AGC(自动增益控制) 载波脉冲开始,用于在早期的IR红外接收器中设置增益;紧接着是4.5ms的空闲信号;随后是地址码和控制码。地址码和控制码分别传输了两次,第二次传输的地址码和控制码都是反码, 用于对地址码和控制码做校验,当然,也可以直接忽略地址码反码和控制码反码。
- 当红外遥控器上的按键被一直按下时,红外遥控器只会发送一次完整的信息,其后会每隔 110ms发送一次重复码(也叫连发码)。重复码的数据格式比较简单,同样是由9ms的AGC(自动增益控制)载波脉冲开始,紧接着是2.25ms的空闲信号,随后是560us的载波脉冲。如下图:
1.2 红外接收头(HS0038B)
- 内部结构图:(将扁平的一面向着自己,引脚依次从左往右为DATA/GND/VCC)
- 内部集成了红外监测 二极管、自动增益放大器(AGC)、带通滤波器(Band Pass)、解调器(Demodulator)等电路。
- 这里要注意的一点是,红外接收头内部的三极管电路具有信号反向的功能,也就是将1变为0, 0变为1,那么上面的整个协议则电平反过来接收。如下图所示: