目前,我们一般都从核心出发,向外了解功能,而并没有对开发板整体进行介绍。这一块板功能比较全面,核心板即是最小系统。长条的叫做内存,与之前片内的内存sram不同,此为片外的内存SDRAM,小方块是SPI-Flash,统称存储器。这两片芯片引脚数不同,则通信的方式也有区别。SDRAM使用并行接口,SPI-Flash使用串行接口。
串行与并行:
在正常通信过程中,硬件要进行交互,以高低电平构成数据,除数据线以外,还要有时钟对数据进行同步,一个时钟周期由一个上升沿,一个下降沿,一个高电平,一个低电平构成。
串行:每个时钟周期采样一位有效数据,对单一信号进行处理,这种采样方式叫做串行。优点:占用资源少、缺点:速度慢。
并行:每个时钟周期同时对多个信号进行读取,这种采样方式叫做并行。优点:速度快、缺点:资源占用多。
事实上,在生产生活中,室内的通信场景中,使用的并行通信少之又少,除了资源占用多以外,这种通信方式的抗干扰能力也比较差。
串行接口:
通用异步收发器(UART),应用频率最高的硬件通信设备;
SPI、I2C、
差分类:USB、ETH(网卡)、CAN(汽车用)、LIN(汽车用)
如何定义一个串行通信?
引入概念:
同步/异步:在整个通信中,有时钟线即是同步通信,没有时钟线即是异步通信,在异步通信中,以固定的传输速率进行通信,单位时间传输固定量数据位。所以同步通信准确,但需要一个时钟线,异步有一定误差,但是不需要时钟线,占用资源有差别;
单通/双通:在串行通信中,有一个通信方向的问题,单通只有一个方向,双通是两个方向可以传输数据。双通又分全双通和半双通,全双通是同时可以收发的,需要两根线,分别负责两个方向,半双通使用一根线,管脚在同一时刻只能处于发送或接受状态。
今天我们要讲的UART即是异步全双通通信外设,即只有数据线,没有时钟线,并且有两根数据线。
UART的协议:RS232/RS485/RS422现在我们主要了解RS232,这是目前工业生产中最常用的协议;
RS232的电气特性和帧格式:
电气特性:
235引脚分别用于发送、接收和接地。
平时利用TTL或者CMOS调制电平,其中TTL是0~5V,CMOS是0~3.3V,但事实上,我们平时把0~0.8v作为0,2.4~3.3v作为1。工业中,在需要抗干扰能力强的场景中,所以RS232使用更加宽的电平差即-15v~-3v为0;3v~15v为1。这就需要一个电平转换芯片。
帧格式:
通信过程中,是只靠传输速率就可以形成通信的稳定结构么?事实上不足以稳定,而应当把数据处理成包,所以需要帧格式对数据包进行处理。
一个数据包(帧)包含:
1. 起始
2. 有效数据
3. 校验
4. 结束
起始位:通常以一位低电平起始,称为s位,接下来是有效数据;
有效数据:通常使用的是8位或者9位,通常不会把有效数据位数设置太长,以免抗干扰能力下降。
校验:分为奇校验和偶校验,对有效数据所有为,1的个数是奇数还是偶数,如果使用奇校验,那么奇校验置1,使用偶校验则清0。若校验得到有跳变,则可以申请该帧数据重发。
结束:以高电平结束,根据帧格式,可能是0.5/1/1.5/2位高电平,有时可以用于同步传输速率,消除传输过程中的时间差。
常见数据保存格式:8N1即八位有效数据,无校验,1位结束位,也就是说一帧有效数据为10位。
传输速率(比特率):单位:比特每秒(bit/s)
波特率:与比特率没有完全的映射关系,以码元为单位的传输速率,单位为B/s(码元每秒)
外设名UART在代码中也体现为一组连续的地址,通过数据的读取和存储实现通信。因为数据都是以帧为单位传输,所以每个管脚对应一个缓冲区。
发送和接收:
1. 发送
2. 接收
事实上,接收数据一般是突发事件,用中断方式实现。
CTS和RTS:硬件流控制器,在硬件通信过程中,要通过高低电平实现握手,表示准备好进行通信