首页 > 代码库 > 【嵌入式Linux+ARM】硬件相关基础知识(门电路_UART_I2C_SPI)
【嵌入式Linux+ARM】硬件相关基础知识(门电路_UART_I2C_SPI)
比较基本的一些知识,就算再怎么水,一些基本的电路常识还是需要懂的,需要自己慢慢的积累,实际工作中需要好好积累硬件相关的知识;
正文开始:
1.门电路
与门、或门、非门的几个标志需要记住,特别是后面两个不要混淆,自己画了一遍:
实际电路中可以组合使用:如与非门、或非门等复杂电路。
这些是比较简单的,做个简单的复习:
与门:1 1——>1 1 0——>0 0 1——>0 0 0——>0
或门:1 1——>1 1 0——>1 0 1——>1 0 0——>0
非门:1——>0 0——>1
还有其他的组合,如与非门,或非门等等;
2.上拉电阻与下拉电阻
主要都是用来确定某点电压,特别是该点的状态不确定时。
上拉电阻一般一端接电源正极,通过一个电阻串联接到相关引脚,可以提高驱动能力;
下拉电阻有信号保护的作用。
3. 输入引脚、输出引脚的区别
其实就是GPIO,一个老掉牙的东西了;
输入引脚:从寄存器读值
输出引脚:向寄存器写值
中断引脚:1.有输入引脚的功能,2.可以中断CPU。
其实很多GPIO引脚的功能可以有多个,比如一个引脚可以作为普通的IO管脚来使用,也可以复用为中断引脚、串口引脚、Ad采集等等;
4. 嵌入式硬件环境构建:
目标机与主机
主机用来编辑,编译程序;目标机用来测试与运行程序;
通常有三种连接方式;
JTAG连接(烧写程序)
串口连接(操作bootloader与Linux)
网络(传输文件 NFS);
5. UART协议
所有的协议类,正常使用需要满足两个条件:
你说的别人能听懂: ——即双方约定信号的协议
你的语速别人要能跟上:——即双方满足时序要求
串口波特率(与比特率的区别):
单片机或计算机在串口通信时的速率。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。每秒钟传送的二进制位数,简称比特率。比特率表示有效数据的传输速率,用b/s 、bit/s、比特/秒,读作:比特每秒。
波特率与比特率的关系:
比特率=波特率*单个调制状态对应的二进制位数
例如假设数据传送速率为120符号/秒(symbol/s)(也就是波特率为120Baud),又假设每一个符号为8位(bit),则其传送的比特率为(120symbol/s) * (8bit/symbol)=960bps.
UART(用的是SCI协议),与SPI不同的是SPI是同步的,而SCI是异步的,SPI比SCI多出一条时钟线;
Universal Async Receive/Transmit 通用 异步 接受/发送器 ——即串口;
开发板如何通过UART与主机传输数据?
由于电脑的串口用的是RS232电平(-3V-15V->1 3-15V->0),而一般的单片机用的都是TTL电平(+5V->1 0V->0)所以需要有一个电平转换芯片,如max2326.
6. I2C协议
其实就是两条线(一条数据线SDA,一条时钟线SCL),但要配置的东西还是不少的;
2440(2440中有I2C控制器)——————可以多个I2C设备。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
2440停止操作SDA,此时I2C设备会把SDA拉低(发出ACK响应信号)
Master每发送完8bit数据后等待Slave的ACK。
即在第9个clock,若从IC发ACK,SDA会被拉低。
若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程
7.SPI串行外设接口(Serial Peripheral Interface)
SPI设备一般有输出数据引脚(SDO)、输入数据引脚(SDI)、时钟信号(SCLK)、片选信号(CS)
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
1)SDO – 主设备数据输出,从设备数据输入;
2)SDI – 主设备数据输入,从设备数据输出;
3)SCLK – 时钟信号,由主设备产生;
4)CS – 从设备使能信号,由主设备控制。
注:原创文章,转载请注明出处:
【嵌入式Linux+ARM】硬件相关基础知识(门电路_UART_I2C_SPI)