开发板笔记--硬件知识和常见的通信协议知识

时间:2024-03-06 16:48:42

 

一.开发板的存储系统

参考:http://blog.csdn.net/PipiAvenger/article/details/79563996

二.开发板上的arm处理器

注:

     CPU(累加器)的要处理的数据是从cache中读取,而cache中的数据是从内存中读取。影响cpu处理速度的另一个因素是cache。cache速度(100MHz)接近CPU(400MHz)的速度。

    AHB BUS:专门处理读/取高速的外部设备(LCD、USB Host、Nandflash、中断控制器、电源管理、摄像头接口,SDRAM/SRAM等)。

三.总线

 

    一些芯片的三根总线不一定严格区分(例如地址线和数据线重用),这种叫做总线复用。

 

    地址总线

    (1)CPU是通过地址总线来指定存储单元的。

    (2)地址线决定了cpu所能访问的最大内存空间的大小。例如:10根地址线能访问的最大的内存为1024位进制数据。如诺32位(最大4G)系统安装8G内存则会造成内存使用丢失。

    (3)地址总线是地址线数量之和。

    

    数据总线

    (1)是CPU与内存或其他器件之间的数据传输的通道。

    (2)数据总线的宽度决定了CPU和外界的数据的传送速度。

    (3)每条传输线一次只能传输1位二进制数据。例如:8根数据线一次可传送一个8位二进制数据(即一个字节)。

    (4)数据总线是数据线数量之和。

 

    控制总线

    (1)CPU通过控制总线对外部器件进行控制。

    (2)控制总线的宽度决定了CPU对外部器件的控制能力。

    (3)控制总线是控制数量之和。

四.总线通信方式

    1.串行通信和并行通信

    (1)并行通讯(内存)常可以一次传送8bit、16bit、32bit甚至更高的位数,相应地就需要8根、16根、32根信号线,同时需要加入更多的信号地线,传输速度快,距离近;

    (2)串行通讯的数据线比较少,这样一条信息的各位数据被逐位按顺序传送,串行通讯的特点是:数据为传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但传送速度慢;

    

    2.串行通讯根据信息的传送方向可分为单工、半双工和全双工三种

    (1)信息只能单向传递为单工。

    (2)信息能双向传送但不能同时双向传送称为半双工;

    (3)信息能够同时双向传送则称为全双工;

 

    3.串行通信根据是否有时钟线进行同步又分为同步通信、异步通信

    (1)同步通信(靠时钟线来控制)是一种bit同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,时发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。

    (2)异步通信(靠速率来控制)在发送字符时,所发送的字符之间的时隙可以是任意的,但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便接收端能正确地将每一个字符接收下来。

五.串口总线通信

 

    根据之前的定义:可以推出串口是串行全双工异步通信。

 

    串口最少需要2-3根通信线(RXD\GND\TXD(可以没有))

六.TTL、RS232、RS485

      TTL电平:(单片机)输出低电平要小于0.8V.高电平要大于2.4V;输入低于1.2V就认为是0,高于2.0V就认为是1;

      RS232电平:逻辑1的电平为-3V~-15V,逻辑0的电平+3V+15V,介于-3V~+3V之间的电压无意义;

    RS485电平:差分信号(两个信号之差)-2500mv~-200mv为逻辑0,差分信号+2500mv~+200mv为逻辑1;-200mv~+200mv为高阻状态。(抗干扰能力强)例如:网线接口、USB接口;

七.I2C总线

 

    1.空闲状态:

    I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态,此时各个器件的输出经场效应管均处于截至状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

 

    2. 起始位与停止位的定义:

    起始信号:当SCL为高期间,SDA由高变低的跳变;启动信号是一种电平跳变的时序信号,而不是一个电平信号。

    停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

 

    根据之前的定义:可以推出I2C总线是串行全半工同步通信。

 

八.SPI总线

    SPI全称是串行外设接口,是由Motorola提出的一种全双工同步串行通信接口,通信波特率可以高达5Mbps,但具体速度大小取决于SPI硬件。SPI接口具有全双工操作,操作简单,数据传输速率较高的优点,但也存在没有指定的流控制,没有应答机制确认是否接收数据的缺点。SPI总线只需四条线姐可以完成MCU与各种外围器件的通讯:

    (1)MOSI-Master数据输出,Slave数据输入

    (2)MISO-Master数据输入,Slave数据输出

    (3)SCK-时钟信号,由Master产生

    (4)SS(CS)-Slave使能信号,由Master控制。

    SPI通信采用主从模式架构,一般为一个Master和多个Slave的应用模式。SPI主要特点有:可以同时发出和接收串行数据;可以当做主机和从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。

    SPI总线通信

    (1)如果CPOL=0,串行同步时钟的空闲状态为低电平;

    (2)如果CPOL=1,串行同步时钟的空闲状态为高电平;

    时钟相位(CPHA)能够配置选择两种不同的传输协议之一进行数据传输。

    (1)如果CPHA=0,在串行同步时中的第一个跳变沿(上升或下降)数据被采样;

    (2)如果CPHA=1,在串行同步时中的第二个跳变沿(上升或下降)数据被采样;

九.内存

根据内存的工作原理划分出的两种内存:SRAM与DRAM

    (1)DRAM是一种以电荷形式进行存储的半导体存储器,每个存储单元由一个晶体管和一个电容器组成,数据存储在电容中。电容器会由于漏电而导致点和丢失,因而DRAM期间是不稳定的。为了将数据保存在存储器之中,DRAM期间必须有规律地进行刷新。

    (2)SRAM每个存储单元需要四到六个晶体管和其他零件,接通代表1,断开表示0,并且状态会保持到接受了一个改变信号为止。这些晶体管不需要刷新,但停机或断电时,它们同DRAM一样,会丢掉信息。SRAM速度非常快,通常能以20ns或更快的速度工作。所以,除了价格较贵外,SRAM芯片在外形上也比较大,与DRAM相比要占更多的空间。SRAM的高速和静态特性使它们通常被用来作为Cache存储器。

    SDRAM(Synchronous Dynamic Random Access Memory)在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;

    DDR(Double Data Rate SDRAM)内存则是一个时钟周期内传输两次数据,它能够在时钟的上升期和下降期各传输一次数据;在嵌入式MCU中,cache一般是SRAM,外接内存一般都支持SDRAM,现在的ARM处理器普遍都可以支持DDR内存。SDRAM单片大小一般最大到64MB左右,而DDRAM可以到GB。

    SDRAM的内部是一个存储阵列,阵列就类似于表格一样,有行有列之分,这样我们要访问(读/写)一个单元,就要先制定一个行地址,一个列地址,这样就找到了该单元,这就是SDRAM的寻址的基本原理。这里的单元我们一般称为存储单元,而整个表格成为逻辑BANK,一般每个SDRAM都会有4个L-BANK。SDRAM的逻辑结构如下图所示:

说明:

 

     1.地址线从addr2~addr14(为什么从addr2开始不从addr0开始?保证地址是4(根据数据总线得出最小字节数为4)的整数倍(左移2位))、数据结构data0~data31

    2.BA0、BA1(用来编码哪一个BANK)

    3.数据掩码信号DQM10、DQM1、DQM2、DQM3;

    4.SDRAM的时钟有效信号SCKE;

    5.SDRAM的时钟信号SCLK0,SCLK1;

    6.SDRAM的片选信号nSCS0(它与nGVS6是同一引脚的两个功能);

    7.SDRAM行地址选通脉冲信号nSRAS;

    8.SDRAM列地址选通脉冲信号nSCAS;

    64MB=2^26需要26根地址线

    行地址:13    列地址:10

    BA0/1:2    一次读2字节:1

十.Flash存储器

     Flash Memory中文名字叫闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器。按功能特性分为两种:一种是NOR型闪存,以编码应用为主,其功能多与运算相关;另一种为NAND型闪存,主要功能是存储资料,如数码相机中所用的记忆卡。

     NorFlash 有自己的数据和地址总线,因此可采用类似RAM的随机访问。
     Nand Flash器件使用复杂的I/O口来串行的存取数据,8个引脚用来传送控制,地址和数据信息。

 

转载自:https://blog.csdn.net/pipiavenger/article/details/79652033