【计算机三级嵌入式】考试自学笔记(四)——I/O接口与设备、典型嵌入式处理芯片:S3C2410以及嵌入式系统的外部通信接口

2023-05-16

目录

  • I/O接口及常用的I/O设备
    • 通用I/O接口GPIO
    • 集成电路互联总线接口I2C
    • 串行外设接口SPI
    • 串行异步通信接口UART
    • 通用串行总线USB
    • 简单的输入设备
  • ARM内核典型嵌入式处理芯片S3C2410
    • S3C2410的时钟及电源管理组件
    • 中断控制器以及中断控制
    • S3C2410串行异步通信接口UART
    • S3C2410的I2C总线接口
    • 看门狗定时器
  • 嵌入式系统外部通信接口
    • 基于UART的RS-232/485接口
    • CAN总线接口
    • 以太网通信接口

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大小的指令Cache16KB大小的数据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)通信,支持点对点点对多点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机三级嵌入式】考试自学笔记(四)——I/O接口与设备、典型嵌入式处理芯片:S3C2410以及嵌入式系统的外部通信接口 的相关文章

  • Http权威指南笔记(十二)——实体与编码

    本章会对HTTP实体和编码进行学习 这里的实体是指HTTP中真正需要传输的实体内容 xff08 比如一张图片 xff0c 一份文档 xff09 这里的编码主要是指内容编码和传输编码 1 报文与实体 如果将HTTP对内容的传输比喻成实际生活中
  • Http权威指南笔记(十三)-国际化

    HTTP报文可以承载任何语言表示的内容的 因为对HTTP来说 xff0c 实体主体真实二进制信息的容器而已 在HTTP中为了支持国际性 xff0c 服务器返回内容的同时需要告知客户端文档是用的什么字母表和语言等信息 xff0c 这样客户端才
  • Http权威指南笔记(十四)-内容协商与转码

    现在很多国际化的一些Web服务都会根据不同地区使用的语言不同 xff0c 返回不同语言的页面内容展示给用户 而这里面就涉及到本篇介绍的内容 内容协商与转码 1 内容协商的技术 目前的内容协商技术主要有3种 客户端驱动协商 服务器驱动协商和透
  • php curl 分离header和body信息

    php curl 分离header和body信息 php中可以通过curl来模拟http请求 xff0c 同时可以获取http response header和body xff0c 当然也设置参数可以只获取其中的某一个 当设置同时获取res
  • 文件缓冲区

    系统自动在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区从内存向磁盘输出数据 xff0c 必须先送到内存中的缓冲区 xff0c 装满缓冲区后才一起送到磁盘 如果从磁盘向计算机读入数据 xff0c 则一次从磁盘文件将一批数据输入到内存缓
  • 【UE4学习】5.相机和蓝图进阶

    文章目录 相机基础Project Setting控制输入按键事件控制相机设置追踪目标CameraManager实现相机切换API接口与多态蓝图之间的通信方式GameMode 43 Manager显示当前相机信息事件调度器Sequencer入
  • 动态绑定实现的原理

    当用virtual关键字来声明一个成员函数 xff0c 编译器机会根据动态绑定机制在幕后完成一些工作 当编译器发现类中有虚函数的时候 xff0c 编译器会创建一张虚函数表 xff0c 把虚函数的函数入口地址放到虚函数表中 xff0c 并且在
  • 模板函数实现数组排序

    template lt class T gt void sortfun T arr int len int i j T tmp for i 61 0 i lt len 1 i 43 43 for j 61 i j lt len 1 j 43
  • 静态转换和动态转换

    1 静态转换 静态转换用于 xff0c 普通数据类型间的转换 xff0c 具有继承关系的父子类指针或引用的转换 class Dad class Son public Dad class MyClass 基础类型转换 void test1 i
  • 文件的原子操作

    文件的原子操作是指一个操作一旦启动 xff0c 则无法能被破坏它的其它操作打断 1 写文件原子操作 无论是两个打开 xff0c 还是dup xff0c 同时操作一个文件都可能引起混乱 xff0c 解决这个问题的方法是 xff0c 可以通过O
  • 目录操作

    创建目录 xff1a int mkdir const char pathname mode t mode xff1b pathname xff0c 路径 xff1b mode xff0c 目录访问权限 xff1b 返回值 xff1a 成功
  • 【UE4学习】6.粒子系统

    文章目录 粒子系统常用参数Simple Sprite Burst EmitterEmitter SettingsEmitter SpawnEmitter UpdateParticle SpawnParticle UpdateAdd Even
  • java中Array/List/Map/Object与Json互相转换详解

    JSON JavaScript Object Notation xff1a 是一种轻量级的数据交换格式 一 JSON建构有两种结构 xff1a 对象和数组 1 对象 xff1a 对象在js中表示为 扩起来的内容 xff0c 数据结构为 ke
  • ZipInputStream解压远程文件报错,java.lang.IllegalArgumentException: MALFORMED[1]

    我遇到的问题是报的这个错java lang IllegalArgumentException MALFORMED 1 at java util zip ZipCoder toString ZipCoder java 65 不是 java l
  • OAuth2.0接百度平台进行授权

    百度开发文档 xff1a https openauth baidu com doc regdevelopers html 1 注册开发者账号并创建一个应用 2 创建应用后 xff0c 获取API Key和Secret Key 3 创建一个S
  • Spring 中最常用的 11 个扩展点

    1 自定义拦截器 spring mvc拦截器根spring拦截器相比 xff0c 它里面能够获取HttpServletRequest和HttpServletResponse等web对象实例 spring mvc拦截器的顶层接口是 xff1a
  • 经典排序算法

    https juejin cn post 7198840786766102589
  • SpringBoot项目启动加载时排除某一个类

    在Application启动类上 xff0c 用这个注解就可以指定某个类不加载进容器 64 ComponentScan
  • 手写一个生产者/消费者模式(三种方式实现)

    这种设计模式需要满足以下三点要求 xff1a xff08 1 xff09 生产者生产数据到缓冲区中 xff0c 消费者从缓冲区中取数据 xff08 2 xff09 如果缓冲区已经满了 xff0c 则生产者线程阻塞 xff1b xff08 3
  • Android中Okhttp,Volley,Retrofit网络框架优缺点及对比

    Okhttp xff1a Square 公司开源的 OkHttp 是一个专注于连接效率的 HTTP 客户端 OkHttp 提供了对 HTTP 2 和 SPDY 的支持 xff0c 并提供了连接池 xff0c GZIP 压缩和 HTTP 响应

随机推荐