I/O接口及常用的I/O设备
通用I/O接口GPIO
GPIO接口提供的输入具备缓冲功能,而输出均具有锁存功能。有的嵌入式处理器芯片通过设置端口的方向来确定是输入功能还是输出功能。GPIO一般具有三态,即0态、1态和高阻状态。 GPIO的引脚有多种功能以供选择,有两功能的、三功能的、四功能的,可以通过设置相关控制寄存器的位来确定引脚功能
集成电路互联总线接口I2C
- I2C概述
- 串行半双工传输的总线标准,可以方便地用来将微控制器和外围器件连接起来构成一个系统
- 主动发起数据传输操作的I2C器件是主控器件,否则它就是从器件
- I2C总线具有接口线少,控制方法简单,器件封装紧凑,通信速率较高等优点
- I2C总线的操作时序
- 只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,SDA上的数据必须在时钟的高电平周期保持稳定,它的高/低电平状态只有在SCL时钟信号线是低电平时才能改变
- 时序如下图:
- 读/写操作在发送模式下,数据被发送出去后,I2C接口将处于等待状态(SCL线将保持低电平),直到有新的数据写入I2C数据发送寄存器之后,SCL线才被释放,继续发送数据
- 总线仲裁:I2C属于多主总线,允许总线上有一个或多个主控器件和若干从器件同时进行操作
- 异常中断条件:没有一个从器件对主控器件发出的地址进行确认,那么SDA线将保持高电平
串行外设接口SPI
同步全双工串行外设接口 基于SPI接口的外围设备主要包括Flash ROM、RAM 、A/D转换器、网络控制器、MCU等 SPI系统可直接与各个厂家生产的多种标准外围器件直接相连,一般使用4条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SSEL
SPI的操作过程
将数据写到SPI发送缓冲区后,在时钟信号SCK的作用下,一位一位按位传输。经过8个时钟周期完成1字节的发送。输入字节保留在以为寄存器中,然后从缓冲区读出1字节的数据
- SPI接口的链接
- 一主一从式系统:接收和发送数据是单向的。主机选择信号SSEL接收高电平,由于只有一个从机,从机的SSEL接低电平,始终被选中
- 互为主从系统:MISO和MOSI以及SCK都是双向的,视发送或接收而定,SSEL电平不能固定
- 一主多从式系统:所有的SPI信号都是单向的。**由于系统中有多个从机,因此使用主机的I/O引脚去选择要访问的从机,即GPIO的某些引脚连接从机的SSEL端
- 多主多从系统
串行异步通信接口UART
常用于全双工串行异步通信。所有嵌入式处理芯片内部均集成了兼容标准UART功能的组件,有的集成了多个UART。UART通常由发送器、接收器、控制单元和波特率发生器等 构成 字符总是总是以起始位为开始,以停止位为结束,并且数据以地位在前、高位在后按次序传输。数据位可为5、6、7、8位,由编程决定。数据位之后是校验位,可为奇校验或偶校验,也可以没有校验。起始位以逻辑0为标志,停止位以逻辑1为标志。通常情况下接受采用中断方式,发送采用查询方式。
直接用UART进行通讯仅限于板间通讯或者芯片间通讯没如果超过1m的距离或者环境比较恶劣,则需要外界逻辑电平转换接口,如RS-232、RS-422,RS-485等
通用串行总线USB
- USB的介绍
- 即插即用和热拔插功能
- 总线通信采用主从方式
- USB OTG的作用是可以摆脱主机,直接在具有OTG的USB总线上完成点对点通信
- 主要特点
- 使用方便,支持热插拔
- 速度快,**USB2.0速度为480Mb/s,USB3.0达到5Gb/s即640MB/s
- 连接灵活
- 独立供电
- 硬件软件构成
- 主控器包括一个根集线器,它提供一个或多个USB下行端口,每个端口可以连接一个USB集线器或一个USB设备
- USB总线的接口信号:有4根信号线,采用半双工差分方式,用来传送信号并提供电源。其中,D+和D-为差分信号线
简单的输入设备
- 键盘
- 分为线性键盘和矩阵键盘,线性键盘是一个按键占用一个引脚;矩阵键盘是采用昂列矩阵形式构成键盘,利用行扫描法或反转法读取按键的特征值来决定按键的结果
- 可以采用中断的方式读取按键特征值
- 触摸屏
- 电阻式触摸屏和电容式触摸屏
- 电阻式触摸屏是一种电阻传感器,它将矩形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压
- 电容式触摸屏感知耦合电容,与ARM处理芯片采用USB或者I2C总线方式连接
ARM内核典型嵌入式处理芯片S3C2410
- 采用ARM920T核,属于中高档32位嵌入式处理器
- 内部具有分离的16KB大小的指令Cache和16KB大小的数据Cache
- 采用哈佛体系结构
- 五级指令流水线,高速组件采用AHB总线,低速外设采用APB总线
- S3C2440在S3C2410的基础上增加了视频与音频接口,如增加了连接到AHB总线上的摄像机接口
- 存储器控制组件介绍
- 存储器控制器、总线控制器、外部控制器、NAND Flash控制器等
- 存储控制器地址空间共1GB
- 以ARM芯片为核心的嵌入式系统I/O与存储器采用统一编制方式
- BANK0只能是16位和32位总线宽度的访问,其他所有BANK可访问8位、16位、32位
S3C2410的时钟及电源管理组件
- 内部有时钟振荡电路,经过主锁相环电路得到更加固定的锁相后的时钟,在时钟控制器、电源控制器以及USB控制器的控制之下,产生不同需求的时钟信号,MPLL时钟(锁项环时钟)、UPLL时钟(USB时钟)、HCLK时钟、PCLK时钟(连接到APB总线上外围组件使用的时钟)、FCLK(内核所需快速时钟)
- MPLL输入时钟可由引脚OM[3:2]选择采用外部时钟EXTCLK还是外接晶体利用内部振荡电路输出的时钟
- 电源管理模块分类
- 正常模式
- 慢速模式
- 休眠模式
- 掉电模式
- 任何情况下复位操作均自动进入正常工作模式。在掉电和休眠模式下,只要有任何一个外部中断或RTC时钟中断发生,均将返回到正常模式
中断控制器以及中断控制
- 以ARM为内核的处理器其异常分为7种,每一种异常对应一个异常向量,每个异常向量占4个字节,之处中断服务程序的入口地址
- 异常向量表从0x0000 0000~0x0000 001F,其中普通中断IRQ和快速中断FIQ的向量地址位0x0000 0018 ~ 0x0000 001B 和 0x0000 001C ~ 0x0000 001F
- S3C2410中断处理过程
- 上述过程用到的中断控制器相关寄存器功能及地址分配表:
-
中断源可以是有子寄存器的中断源和没有子寄存器的中断源
- 重点说明两个中断挂起寄存器
- 源中断挂起寄存器SRCPND和中断挂起寄存器INTPND,它们指示某个中断请求是否处于挂起状态
- 当多个中断源请求服务时,SRCPND相应位写入1,通过优先级仲裁当前最高优先权的中断源对应的INPND位写入1,如果中断源没有被屏蔽,CPU将处理该中断
-
个人理解:可以将SRCPND理解为整个多中断源中断服务的总挂起线,INTPND更具有选择性,针对每个中断源而言,SRCPND挂起相当于给处理器一个仲裁时间,而INTPND则是最终仲裁结果的展示输出
- S3C2410中断控制器支持所有内置硬件各组件的硬件中断,包含24个外部可屏蔽中断以及ADC、RTC、SPI、I2C等。除屏蔽寄存器初始值(复位后的值)为全1外,其他寄存器初始值均为0
实时时钟RTC:RTC组件的寄存器只能以8位方式访问
S3C2410的GPIO端口有GPA,GPB,CDEFGH共8个,各个端口具有不完全相同的功能
S3C2410串行异步通信接口UART
- UART线路控制寄存器
- 三个UART接口UART0、UART1和UART2,对应线路控制器ULCONx,用于确定传输帧格式:
- UART 控制寄存器UCONx
- UART发送/接收状态寄存器UTRSTATx
- UART数据寄存器,分为发送缓冲寄存器UTXHn和接收缓冲寄存器URXHn
- UART波特率除数寄存器,UART的波特率由除数寄存器决定,也取决于外部时钟:UCLK可以使PCLK,还可以是UEXTCLK,由相应控制寄存器决定(INT表示取整)
S3C2410的I2C总线接口
内部有一个I2C总线接口,具有主发送模式、柱接受模式、从发送模式和从接收模式4种 I2C总线的从地址是指从器件的编码,不同从地址代表不同器件,不同器件从地址编码不同。同一类器件从地址编码相同。有7位和10位两种从地址形式
看门狗定时器
作用:强行使系统重新复位 WDT的计数脉冲周期为:t_watcherdog = 1/(PCLK / (预分频值 + 1) / 分频系数),由此可知,看门狗定时器最快的计数频率为PCLK/16,最慢的计数频率为PCLK/256/128 如果希望T时间内看门狗能计数到0复位,则技术初值为:WTCON = T/t_watcherdog
嵌入式系统外部通信接口
基于UART的RS-232/485接口
- RS-232接口介绍
- 嵌入式处理器至少有一个UART接口,仅仅通过这个接口不能进行稍远距离的通信。为此,可采用标准的RS-232电平转换接口电路,是UART的电平转换成RS-232电平,通信距离就可以达到15m左右
- RS-232采用负逻辑传输。逻辑0:+3~+15V,逻辑1:-15V ~-3V
- RS-485接口介绍
- 采用差分信号传输方式,因此具有很强的抗共模干扰能力
- 其逻辑电平为:A的电位比B高200mV以上时为逻辑1,而当B的电位比A高200mV以上时为逻辑0,传输距离可以达到1200m
- RS-485是同名端相连,即A与A相连,无须共地
- 通常用于主从式多机通信系统,采用轮询方式,由主机逐一向从机寻址,同一时刻不能有多个设备处于发送状态
CAN总线接口
- CAN总线可以适用于多主系统,也采用差分传输,同时控制器内置了CRC校验,可靠性强
- 数据帧由7个不同的域组成:帧起始、仲裁域、控制域、数据域。CRC域、应答域和帧结尾,数据域的长度可选为0~8B
以太网通信接口
- 基于内置以太网控制器的以太网接口
- 有些ARM芯片如基于ARM Cortex-M3的嵌入式处理芯片以及嵌入了以太网控制器
- 不带内置以太网控制器的以太网接口:对于没有以太网内置接口的处理器如S3C2440,可以通过外加典型的以太网控制器DM9000来构建。**实现了以外网物理层(PHY)和介质访问层(MAC)的功能
WiFi模块:使用IEEE 802.11系列的无线局域网 蓝牙是一种支持设备间短距离通信,一般在10m内的无线低速(1Mb/s)通信,支持点对点和点对多点
|