67
第5第 ARM 第第第第第第 第第第第 第第第

第5章  ARM 接口设计技术

  • Upload
    lundy

  • View
    67

  • Download
    6

Embed Size (px)

DESCRIPTION

第5章  ARM 接口设计技术. 主讲教师:罗白云. 本章主要内容 键盘接口 LED 显示器接口 LCD 显示器接口 触摸屏接口 通讯接口 中断接口 A/D 和 D/A 转换器接口 ARM 的 JTAG 接口. 芯片 S3C44B0X. 本章主要基于芯片 S3C44B0X , 介绍其多个接口。 S3C44B0X 是基于 ARM7TDMI 的体系结构,是 ARM 公司最早为业界普遍认可并且赢得最广泛应用的处理核。芯片 S3C44B0X 具有71个通用多功能输入输出引脚,这些 I/O 口的应用是 S3C44BOX 处理器的基础应用,分别包含在如下7组端口中: - PowerPoint PPT Presentation

Citation preview

Page 1: 第5章  ARM 接口设计技术

第 5 章  ARM 接口设计技术

主讲教师:罗白云

Page 2: 第5章  ARM 接口设计技术

2

本章主要内容

键盘接口 LED 显示器接口 LCD 显示器接口 触摸屏接口 通讯接口 中断接口 A/D和 D/A 转换器接口 ARM的 JTAG 接口

Page 3: 第5章  ARM 接口设计技术

芯片 S3C44B0X芯片 S3C44B0X

本章主要基于芯片 S3C44B0X ,介绍其多个接口。 S3C44B0X 是基于 ARM7TDMI 的体系结构 ,是 ARM公司最早为业界普遍认可并且赢得最广泛应用的处理核。芯片 S3C44B0X 具有 71 个通用多功能输入输出引脚,这些I/O 口的应用是 S3C44BOX 处理器的基础应用,分别包含在如下 7 组端口中:

1 个 10 位输出端口〔端口 A〕; 1 个 11 位输出端口(端口 B); 1 个 16 位输入/输出端口(端口 C); 2 个 8 位输入/输出端口(端口 D和 G); 2 个 9 位输入/输出端口(端口 E和 F)。

Page 4: 第5章  ARM 接口设计技术

键盘概述 键盘概述

计算机的键实际上就是开关,制造这种键的方法是多种多样的,以下是几种常用的按键:

机械式按键 电容式按键 薄膜式按键 霍耳效应按键

Page 5: 第5章  ARM 接口设计技术

用 ARM 芯片实现键盘接口用 ARM 芯片实现键盘接口

本应用实例中,要与 4X4 的矩阵键盘接口,采用节省口线的“行扫描法”方法来检测键盘,这样只需要 8 根口线,在此选取 PF 口作为检测键盘用端口,并设定 PF0 –PF3 为输出扫描码的端口, PF4--PF7 为键值读入口。

Page 6: 第5章  ARM 接口设计技术

LED 显示器接口概述 LED 显示器接口概述

LED(Light Emitting Diode) 常称为七段发光二极管 , 在专用的微型计算机系统中 , 特别是在嵌入式控制系统中 , 应用非常普遍。它价格低廉、体积小、功耗低,而可靠性又很好,因此,从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用 LED 作为输出显示。

Page 7: 第5章  ARM 接口设计技术

用 ARM 芯片实现 LED 显示接口Ⅰ 用 ARM 芯片实现 LED 显示接口Ⅰ

1 .接口电路+5V

位驱动

0第 位 1第 位 2第 位 3第 位 4第 位阳极

abcdefgDP

PF0

5-4 LED图 显示扫描和驱动电路

ULN2803A

段驱动

PF7

PG0

. . .

. . .

PG7

5第 位 6第 位 7第 位

Page 8: 第5章  ARM 接口设计技术

用 ARM 芯片实现 LED 显示接口Ⅱ用 ARM 芯片实现 LED 显示接口Ⅱ

2 .初始化程序如下。 ( 1 )设置 PCONF、 PCONG 寄存器 , 由于需要设定端口 F、 G 为输出口,因此,在端口工作之前设置:

rPCONF = 001 001 001 01 01 01 01 01 B= 0x12555; rPCONG = 01 01 01 01 01 01 01 01 B= 0x5555; ( 2 )设置 PUPF、 PUPG 寄存器 , 设置内部上拉电阻的

语句为: rPUPF=0x00; // 使能 PF0-7 的内部上拉电阻 rPUPG=0x00; // 使能 PG0-7 的内部上拉电阻

Page 9: 第5章  ARM 接口设计技术

LCD 显示器接口概述LCD 显示器接口概述

液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。

基本原理是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。

LCD 有三种显示方式:反射型,透射型和透反射型。 市面上出售的 LCD 有两种类型: 一种是带有驱动电路的 LCD 显示模块,这种 LCD 可以方便地与各种低档单片机进行接口;

另一种是 LCD 显示屏,没有驱动电路,需要与驱动电路配合使用

Page 10: 第5章  ARM 接口设计技术

LCD 控制器 LCD 控制器

LCD 控制器用来把定位在系统存储器中的视频缓冲区的 LCD图象数据传输到 LCD 驱动器,并产生必须的 LCD 控制信号 。

DMA传送控制

数据控制

信号产生电路

寄存器控制

3232 32

VCLKVLI NEVFRAMEVM

VD[3:0]

VD[7:4]

REGBANK 具有 18 个可编程寄存器,用于配置 LCD 控制器LCDCDMA 为专用 DMAVIDPRCS 从 LCDCDMA 接收数据,将相应格式的数据通TIMEGEN 包含可编程的逻辑 TIMEGEN 部分产生 VFRAME, VLINE, VCLK, VM等信号。

Page 11: 第5章  ARM 接口设计技术

触摸屏的接口设计Ⅰ触摸屏的接口设计Ⅰ

1 .触摸屏的驱动芯片 ADS7843典型接口  触摸屏的控制采用专用芯片,专门处理是否有笔或手指

按下触摸屏,并在按下时分别给两组电极通电,然后将其对应 位 置 的 模拟电压信号经过 A/D 转 换送回处 理器。 S3C44B0 选取 PG 口与 ADS7843 接口,共使用 PG2 - PG7 的 6条口线 ,也可以选择其他的 I/O 口,但注意不要与I/O 口 上 已 经 设 定 的 功 能 相 冲 突 . 其中, X+、 Y+、 X-、 Y- 引脚直接与触摸屏的相应管脚相连。

Page 12: 第5章  ARM 接口设计技术

触摸屏的接口设计Ⅱ触摸屏的接口设计Ⅱ 2 .编程实现 利用连接好的电路设置 PCONG 寄存器如下: rPCONG = Ox015f; 其中, PENIRQ 最好加上内部上拉,设置为: rPUPG&=Ox80。 ( 1 )读取触摸点坐标程序: 编程采用固定参考电压模式,因此 SER/DFR=1 。首先检测

PENIRQ 是否为低电平,如果为低电平,则认为有接触;否则认为触摸屏没有接触。利用软件模拟 DIN, DOUT和 DCLK 上的 3 线串行传输时序,将读取的 x或 Y坐标数值的控制字串行送入 ADS7843,然后再串行读出坐标值。最后将 X和 Y轴坐标值送串口显示即可。

( 2 )送控制字并读取结果子程序。

Page 13: 第5章  ARM 接口设计技术

串行通信概述 串行通信概述

串行数据传送模式: 单工 半双工 全双工 串行通信方式: 同步通信 异步通信

Page 14: 第5章  ARM 接口设计技术

S3C44BOX 内部集成的 UART S3C44BOX 内部集成的 UART

S3C44B0X UART 单元提供了两个异步串口( SIO),每个 SIO 可以操作在中断模式或 DMA 模式,支持波特率最大为 115.2kbps, 每个 SIO 通道包含都有一个 16 字节的接收与发送 FIFO缓冲区。

每个 UART 模块包含以下几个部件:波特率发生器,发送器,接收器和控制单元。

Page 15: 第5章  ARM 接口设计技术

UART操作UART操作

数据发送数据接收 动流控制( AFC )非自动流控制(通过软件控制 nRTS和 nCTS )调制解调器接口

Page 16: 第5章  ARM 接口设计技术

中断/ DMA请求产生器 中断/ DMA请求产生器

S3C44BOX 的每个 UART 都有 7 个状态信号:接收 FIFO/缓冲区数据准备好、发送 FIFO /缓冲区空、发送移位寄存器空、溢出错误、奇偶校验错误、帧错误和中止,所有这些状态都由对应的 UART状态寄存器 (UTRSTATn/UERSTATn)中的相应位来表现。当接收器要将接收移位寄存器的数据送到接收 FIFO, 它会激活接收 FIFO满状态信号,如果控制寄存器中的接收模式选为中断模式,就会引发接收中断。当发送器从发送 FIFO 中取出数据送到发送移位寄存器,那么 FIFO空状态信号将会被激活。如果控制寄存器中的发送模式选为中断模式,就会引发发送中断。

Page 17: 第5章  ARM 接口设计技术

与 FIFO 有关的中断 与 FIFO 有关的中断

类型 FIFO类型 非 FIFO模式

Rx中断 每当接收数据达到接收 FIFO触发的水平,就产生接收中断;如果 FIFO非空且连续 3个字时间没有接收到任何数据,就产生超时中断;

每当接收数据满,接收移位寄存器将产生一个中断;

Tx中断 每当发送数据达到发送 FIFO触发的水平,就产生发送中断;

每当发送数据空,发送保持寄存器将产生一个中断;

错 误 中断

帧错误、奇偶校验错误和被检测到并按字节接收的中止信号,都将产生错误中断;当达到接收 FIFO的顶部,就会产生溢出错误中断;

所有错误都会立即产生一个错误中断。但两个错误同时发生,只有一个中断会产生;

Page 18: 第5章  ARM 接口设计技术

波特率发生器 波特率发生器

波特率发生器以 MCLK 作为时钟源 每个 UART 的波特率发生器为传输提供了串行移位时钟。波特率时钟由通过时钟源的 16 分频及一个由 UART波特率除数寄存器 (UBRDIVn)指定的 16 位除数决定。

UBRDIVn=(取整)( MCLK/(波特率 ×16 )) -1

Page 19: 第5章  ARM 接口设计技术

回送模式与红外通信模式回送模式与红外通信模式

回送模式: S3C44BOX的 UART提供的一个测试模式。在这种模式下,发送出的数据会立即被接收。这一特性用于校验运行处理器内部发送和接收通道的功能,这种模式可以通过设置 UART 控制寄存器 (UCONn) 中的回送位来实现。

红外通信模 式 : S3C44BOX 的 UART 模块支持红外线( IR) 发送和 接收。 可 以 通 过 设 置 UART 控 制 寄 存 器(UCONn) 中的红外模式位来选择这一模式。

Page 20: 第5章  ARM 接口设计技术

S3C44BOX的 UART 的应用ⅠS3C44BOX的 UART 的应用Ⅰ

1 .电路接口和 I/O 口设置 S3C44BOX 的串行应用接口电路中的 PC12,PC13,PE1,PE2是多功能 I/O 口,因此,在编写串口数据收发程序之前,首先需要对 PC 口和 PE 口的工作模式进行设置。 Rpconc = Ox0f000000|rPCONC;

rPUPC = 0x3000; // 设置内部上拉 rPCONE = (rPCONE & Oxfc3)|Oxeb;

rPUPE = 0x6;

Page 21: 第5章  ARM 接口设计技术

S3C44BOX的 UART 的应用ⅡS3C44BOX的 UART 的应用Ⅱ

2. UART 初始化 对 UART 口的可配置参数进行初始化,使其能够按照所要求的通讯方式进行通讯。对 UART 口进行初始化的设置程序见课本 P*。

3 .字符发送程序 Uart_SendByte()见课本 P* 。 4 .字符接收程序 Uart_GetByte()见课本 P* 。

Page 22: 第5章  ARM 接口设计技术

USB 接口概述 USB 接口概述

USB( 通用串行总线 ) 接口正在被用于多种嵌入式系统设备的数据通信中,如移动硬盘、数码相机、 PDA 、高速数据采集设备等。它是由 Compaq、 HP、 Intel、 Lucent、Microsoft、 NEC和Philips 七家公司联合推出的新一代标准接口总线。是一种连接外围设备的机外总线。 其主要性能特点如下:

提供机箱外的热即插即用功能 ; 每个 USB 系统中有个主机,采用“级联”方式 USB总线可连接

多个外部设备; 适用于带宽范围在几千位/秒( Kb/s) 一几百兆位 l秒 (Mb/s )

的设备; 低成本的电缆和连接器; 具有错误检测和处理机制; 较低的协议开销带来了高的总线性能; 支持主机与设备之间的多数据流和多消息流传输 。

Page 23: 第5章  ARM 接口设计技术

USB 系统组成USB 系统组成

一个 USB 系统由三部分来描述: USB 主机:在任一 USB 系统中只有一个主机,到主计算机

系统的 USB 接口被称作主控制器。 USB 设备:分为 Hub (集线器)和 Function (功能)两大类。 Hub提供到 USB 的附加连接点,功能为主机系统提供附加的性能。

USB互连: USB互连指的是 USB 设备与主机的连接和通信方式,它包括总线拓扑结构、内层关系、数据流模型和USB调度表。

USB总线用来连接各 USB 设备和 USB 主机 。

Page 24: 第5章  ARM 接口设计技术

USB 的物理接口USB 的物理接口

USB总线的电缆有 4 根导线:一对标准尺寸的双绞信号线和一对标准尺寸的电源线。

USB总线支持的数据传输率有三种:高速信令位传输率为480Mbs;全速信令位传输率为 12Mbs; 低速信令位传输率为 1.5Mb/s。

USB2.0支持在主控制器与 Hub 之间用高速传输全速和低速数据,而 Hub 与设备之间以全速或低速传输数据,这种支持能力可以将全速设备和低速设备对高速设备可用带宽的影响减到最小。

Page 25: 第5章  ARM 接口设计技术

USB 的总线协议 USB 的总线协议 USB 是一种查询 (Polling )总线,由主控制器启动所有的数据传输 。 USB 上所挂连的外设 通 过 由 主 机调度的 ( Host-Scheduled)、基于令牌的( Token-Based )协议来共享 USB带宽。大部分总线事务涉及 3 个包的传输 :令牌包 (Token Packet) 数据包( Data Packet )握手包( Handshake Packet)

主控制器和 Hub 之间的某些总线事务涉及 4 个包的传输,这些类型的事务用来管理主机与全 / 低速设备之间的数据传输。

主机与设备端点之间的 USB 数据传输模型被称作管道,管道有两种类型:流和消息。

Page 26: 第5章  ARM 接口设计技术

USB 接口工作原理 USB 接口工作原理 USB 设备最大的特点就是即插即用,之所以能够这样,

是因为 USB协议规定在主机启动或 USB 设备插入系统时都要对设备进行配置。就是按照 USB协议,在USB 主机与 USB 设备之间进行的一系列“问答”过程 。从而主机知道了设备的情况以及该如何与设备通讯,并为设备设置一个唯一的地址 。

在配置阶段主机也了解了设备端点的使用情况,便可以通过这些端点来进行特定传输方式的通讯。对于标准 USB 设备,操作系统带有它的驱动,而不需要编写专门的主机驱动程序。但这样就必须为它选择一种标准命令集;但对于非标准设备,则可以自定义一套请求指令集,,并需要编写专门的主机驱动程序来实现对 USB 设备的操作。

Page 27: 第5章  ARM 接口设计技术

以太网接口概述以太网接口概述

以太网以其高度灵活、相对简单、易于实现的特点,成为当今最重要的一种局域网建网技术。通常所说的以太网主要是指以下 3 种不同的局域网技术 :

以太网 /IEEE 802.3 采用同轴电缆作为网络介质,传输速率达到 10 Mbps。

100 Mbps 以太网 又称为快速以太网,采用双纹线作为网络介质,传输速率达到 100 Mbps。

1000 Mbps 以太网 又称为千兆以太网,采用光缆或双纹线作为网络介质,传输速率达到 1000 Mbps(1 Gbps) 。

Page 28: 第5章  ARM 接口设计技术

以太网工作原理 以太网工作原理

以太网最早是由 Xeros 公司开发的一种基带局域网技术; 使用同轴电缆作为网络介质; 以太网采用广播机制; 采用载波多路访问和碰撞检测 (CSMA/CD) 机制; 数据传输速率达到 10 Mbps; 以太网/ IEEE 802. 3 通常使用专门的网络接口卡或通过

系统主电路板上的电路实现。

Page 29: 第5章  ARM 接口设计技术

以太网的传输编码 以太网的传输编码

曼彻斯特编码差分曼彻斯特编码

0 1 0 0 1 1 0 0 0 1 1 0 0

差分曼彻斯特编码

曼彻斯特编码

时钟

Page 30: 第5章  ARM 接口设计技术

以太网帧格式 以太网帧格式

字段 同步位 分隔位 目的地址 源地址 类型/长度 数据段 填充位 FCS

长度 56 8 48 48 16 46~ 1 500 X 32

在以太网帧中,同步位、分隔位、填充位和校验位这几个字段都是由以太网控制器自动产生的;人们所关心的只是目的地址、源地址、类型和数据这 4个字段的内容;所有数据位的传输由低位开始 (传输的位流使用曼彻斯特编码 );以太网的冲突退避算法是由硬件自动执行的 ;

Page 31: 第5章  ARM 接口设计技术

以太网控制器 RTL8019 以太网控制器 RTL8019

RTL8019 是高度集成的以太网控制器,为即插即用式NE2000兼容网络适配器提供了简易的解决方案。 RTL8019共有 32 个输入输出地址,对应地址偏移量为 00h—lFh。 RTL8019 的内部寄存器是分页的,每个寄存器都是 8 位。

Page 32: 第5章  ARM 接口设计技术

RTL8019 寄存器RTL8019 寄存器

1 .命令寄存器 CR 2 .与发送/接收相关的寄存器 3 .其他寄存器 : ①IMR :中断屏蔽寄存器 , 设置成 0x00时,屏蔽所有的中

断,设置成 0xFF将允许中断。 ②MAR0一MAR8 :多点播送地址 , 可以全写 0xFF。 ③PAGE2 的寄存器是只读的,不用设置。 PAGE3 的寄存

器不是 NE2000兼容的,所以也不用设置。

Page 33: 第5章  ARM 接口设计技术

以太网模块的接口设计Ⅰ以太网模块的接口设计Ⅰ

配置 RTL8019 :为了系统的精简,配置 RTL8019 为非即插即用模式。有着固定的中断,有着固定的端口地址。

以太网模块与处理器的接口电路:

Page 34: 第5章  ARM 接口设计技术

IIC 接口概述IIC 接口概述

IIC 是一种双向两线制的串行总线,由于它支持任何一种IC 制造工艺,且能够提升硬件的效率和简化电路的设计,因此众多厂商都提供了 IIC兼容芯片。

S3C44BOX 内部也具有 IIC总线接口模块,支持一个多主IIC-BUS串形接口,主 S3C44B0X 能发送或接收串形数据到从设备,并遵守标准的 IIC协议。

IIC总线操作模式为:主发送模式、主接收模式、从发送模式、从接收模式。

Page 35: 第5章  ARM 接口设计技术

S3C44B0X的 IIC总线 S3C44B0X的 IIC总线

S3C44B0X 处 理 器 多 主 模 式 的 IIC 总 线 串 行 接口。 S3C44B0X 采用专门的串行数据线( SDA )和串行时钟线 (SCL) 与总线上的其他外设传输信息。IIC总线操作读写操作配置 IIC总线IIC总线接口专用寄存器

Page 36: 第5章  ARM 接口设计技术

CAN总线概述CAN总线概述 CAN全称为 Controller Area Network ,即控制器局域网,是国际

上应用最广泛的现场总线之一。 CAN 的主要特点包括: 低成本; 极高的总线利用率; 很远的数据传输距离 (长达 10 公里 ); 高速的数据传输速率(高达 1Mbit/s); 可根据报文的 ID决定接收或屏蔽该报文; 可靠的错误处理和检错机制; 发送的信息遭到破坏后可自动重发; 节点在错误严重的情况下具有自动退出总线的功能; 报文不包含源地址或目标地址,仅用标志符来指示功能信息优先级;

Page 37: 第5章  ARM 接口设计技术

CAN总线与同步串行接口 SIOCAN总线与同步串行接口 SIO

S3C44B0X 的 SIO 能与各种类型的串行外设接口,这个SIO 模块能以一定的频率(由寄存器设定)发送或接收 8 位串行数据。时钟源可以选择内部时钟或外部时钟。SIO 模块功能:8 位数据缓冲( SIODAT);12 位的预定标器( SBRDR);8 位间隔计数器( ITVCNT);时钟源选择逻辑;串行数据 I/O 脚( SIORXD 和 SIOTXD);外部时钟输入输出脚( SIOCK);DMA运行模式。

Page 38: 第5章  ARM 接口设计技术

SIO正常操作模式SIO正常操作模式操作模式:发送与接收同时进行 , 一个发送数据脚 , 一个接收数据脚 ,当一个字节写入 SIODAT 数据寄存器 , 如果 SIO运行位设置和发送模式允许 ,则 SIO 开始发送数据。对 SIO 模块编程的步骤 :①配置 I/O 脚 (SIOTXD, SIOCLK, SIORXD);②设置 SIOCON 为适当的配置;③设置串行 I/O 中断允许位;④如果想发送数据 ,写数据到 SIODAT;⑤设置 SIOCON[3] 为 1, 开始数据移位操作;⑥当数据移位操作完成时 ,SIO 中断被请求和 SIODAT 接收到数据;⑦返回第 4步。

Page 39: 第5章  ARM 接口设计技术

中断接口概述中断接口概述 S3C44BOX 具有 30 个中断源,包括 1 个看门狗定时器 ,6 个

定时器 ,6个 UART,8 个外部 ,4个 DMA,2个 RTC,1个ADC,1个 IIC 和 1个 SIO共 30 个中断。

S3C44BOX 内置的中断控制器可以接收来自 30 个中断源的请求。 S3C44B0X支持新的中断处理模式称为矢量中断模式。中断控制器的角色,就是响应来自 FIQ(快速中断请求 )或 IRQ( 普通中断请求 ) 的中断,并请求内核对中断进行处理。

多个中断请求发生时,由硬件优先级逻辑确定应该有哪个中断得到服务,同时硬件逻辑使中断向量表的跳转指令加载到( 0X18或 0X1C )位置,在该位置执行跳转指令使程序跳到相应的中断服务线程,因此相对于传统的 ARM 的软件方法能够大大减少中断进入延时。

Page 40: 第5章  ARM 接口设计技术

中断控制器Ⅰ 中断控制器Ⅰ

1 .中断模式 ARM7TDMI 有 2 种类型的中断模式 :FIQ和 IRQ。 IRQ和 FIQ 之间的区别是:对于 FIQ必须尽快处理事件并离开这个模式; IRQ 可以被 FIQ 中断,但 IRQ 不能中断 FIQ;为了使 FIQ更快 ,FIQ 模式具有更多的私有寄存器。2. PSR的 F 位和 I 位 PSR指 ARM7TDMI 处理器的程序状态寄存器。如果 PSR的 F位被设置为 1, 处理器将不接受来自中断控制器的 FIQ; 如果 PSR的 I 位被设置为 1, 处理器将不接受来自中断控制器的 IRQ。 因此,为了使能相应中断机制 ,PSR的 F 位或 I 位必须被清 0,同时中断屏蔽寄存器 INTMSK 的相应位也必须被清 0 。

Page 41: 第5章  ARM 接口设计技术

中断控制器Ⅱ中断控制器Ⅱ

3 .中断请求寄存器 INTPND INTPND 的各位指示了某个中断请求是否还未被处理。在 INTPND 中将要或已被置位的中断位称为 pending 位。 INTPND 是一个只读寄存器,在中断服务程序中要想清除 pending 位时,需要采用在中断服务寄存器 I_ISPC或F_ISPC 的相应位写入 1 的方式实现。 INTPND 寄 存 器 中 的 26 个 位对应着每一 个 中 断源。当某个 中 断产生时, INTPND 中的相应位就会置 1,说明该中断还未被处理。在中断服务程序中,当处理结束后必须及时清除该 pending 位,从而使系统能够及时再次响应该类型的中断。

4 .中断屏蔽寄存器 INTMSK 如果该寄存器的某位被置 1 ,则与该位对应的中断响应被禁止。如果对应位为 0 ,则这个中断发生时将会被正常响应。 如果某个中断在 INTMSK 寄存器中的对应位为 1,但是又有这个中断发生,则它的 pending 位还是会置位,只是不会自动转入中断服务程序。如果全局屏蔽位被置 1 ,那么,当任一中断发生时,中断 pending 位还是会置位,但是所有的中断都不会得到服务。

Page 42: 第5章  ARM 接口设计技术

中断源Ⅰ中断源Ⅰ

在 30 个中断源中有 26 个中断源提供给中断控制器, 4 个外部中断 (EINT4/5/6/7)请求是通过“或”的形式合成为 1个中断源送至中断控制器 ,2个 UART错误中断(UERRORO/1)也是如此。

下页续

Page 43: 第5章  ARM 接口设计技术

中断源Ⅱ中断源Ⅱ

注意: EINT4, EINT5, EINT6和 EINT7分享同一个中断请求源 ,中断服务程序 ISR要通过读取 EXTINTPND3-0寄存器来区别这 4个中断源,并在处理结束时通过将 EXTINTPND3-0中对应位写 1来清除该位。

Page 44: 第5章  ARM 接口设计技术

中断优先级产生模块 中断优先级产生模块

S3C44BOX 中断优先级的决定有两种方式: 通过软件查询决定中断优先级,该方式在跳到相应服务程

序之前需要一个较长的延迟时间; 通过硬件决定中断优先级:矢量中断模式。

如果中断向量模式使用和一个中断源被配置为 ISQ 中断,中断将被中断优先级产生模块处理。中断优先级产生模块处理包括五个单元: 1 个主单元, 4个从单元,每个从单元管理 6 个中断源,包括 4 个优先级次序可编程的优先级源 (sGn) 和 2 个固定优先级源。一个主单元管理 4 个从单元 mGn 和 2 个中断源mGKn ,用来确定 4 个从单元和 2 个中断源的优先级mGKn。

Page 45: 第5章  ARM 接口设计技术

中断优先级中断优先级 如果中断源 A 被设置为 FIQ 中断,而中断源 B 设置为 IRQ 中断,那么中断源 A 比中断源 B 具有更高的中断优先级,因为在任何情况下 ,FIQ 中断都比 IRQ 中断具有更高的优先级。

如果中断源 A 和中断源 B 在不同的主单元中,并且 A所在的主单元的优先级比 B所在的主单元优先级高,则中断源 A 的优先级肯定比中断源 B 的优先级高。

如果中断源 A和 B 在同一个主单元中,且中断源 A 的优先级比 B高,则 A 具有更高的优先级。

位于 sGA, sGB, sGC 和 sGD 的中断优先级总是高于位于 sGKA 和sGKB 的中断优先级。在 sGA, sGB, sGC和 sGD 之间的优先级的高低是可编程的,或者通过 Round一 Robin (轮转)方式来决定。在sGKA 和 sGKB 之间 ,sGKA 总是拥有更高的优先级。 mGA, mGB, mGC 和 mGD 组 中 的 中 断优先级总是高于 mGKA 和 mGKB 。 因此 ,MGKA和mGKB 在所有中断源之中优先级是最低的。

Page 46: 第5章  ARM 接口设计技术

中断矢量地址表Ⅰ中断矢量地址表Ⅰ

分支指令机器代码 = 0xea000000 +((<destination address> - <vector address> - 0x8)>>2)

其中 destination address 为中断服务线程 ISR 的开始地址,vector address 为中断源在中断相量表中的地址,即分支指令所在地址,分支指令机器代码有硬件自动产生。

Page 47: 第5章  ARM 接口设计技术

中断矢量地址表Ⅱ中断矢量地址表Ⅱ

每个中断源对应的矢量地址 中断源 矢量地址 中断源 矢量地址EINT0 0x00000020 INT_TIMER1 0x00000064

EINT1 0x00000024 INT_TIMER2 0x00000068

EINT2 0x00000028 INT_TIMER3 0x0000006c

EINT3 0x0000002c INT_TIMER4 0x00000070

EINT4/5/6/7 0x00000030 INT_TIMER5 0x00000074

TICK 0x00000034 INT_URXD0 0x00000080

INT_ZDMA0 0x00000040 INT_URXD1 0x00000084

INT_ZDMA1 0x00000044 INT_IIC 0x00000088

INT_BDMA0 0x00000048 INT_SIO 0x0000008c

INT_BDMA1 0x0000004c INT_UTXD0 0x00000090

INT_WDT 0x00000050 INT_UTXD1 0x00000094

INT_UERR0/1 0x00000054 NT_RTC 0x000000a0

INT_TIMER0 0x00000060 INT_ADC 0x000000c0

Page 48: 第5章  ARM 接口设计技术

控制中断的寄存器控制中断的寄存器

1 .中断控制寄存器2 .中断请求寄存器3 .中断模式寄存器4 .中断屏蔽寄存器5. IRQ矢量模式寄存器6. IRQ/FIQ 中断服务寄存器7 .外部中断控制寄存器8 .外部中断请求寄存器

Page 49: 第5章  ARM 接口设计技术

外部中断的应用Ⅰ外部中断的应用Ⅰ

1. I/O 口设置 首先对 PG 口的工作模式进行设置,要让 PG4-7 工作在外部

中断输入状态。因此,要将 PG 口设置在功能 3 模式下,采用语句 :

rPCONG = 11 11 11 11 xx xx xx xxB; 如果希望采用内部上拉,则语句为 :

rPUPG = 0000xxxxB。

Page 50: 第5章  ARM 接口设计技术

外部中断的应用Ⅱ外部中断的应用Ⅱ

2 .外部中断触发模式设置 利用外部中断控制寄存器来设置外部中断的触发模式.由于采用电平触发容易引起重复触发,因此建议采用下降沿或上升沿触发,不同触发方式的语句如下: ①采用下降沿触发时: rEXTINT=01x 01x 01x 01x xxx xxx xxx xxxB;②采用上升沿触发时 : rEXTINT=10x 10x 10x 10x xxx xxx xxx xxxB;③采用边沿触发时 : rEXTINT=11x 11x 11x 11x xxx xxx xxx xxxB;④采用低电平触发时 : rEXTINT=000 000 000 000 xxx xxx xxx xxxB;

Page 51: 第5章  ARM 接口设计技术

外部中断的应用Ⅲ外部中断的应用Ⅲ

3 .中断寄存器设置 将 EINT4-7 设置为 IRQ 中断模式的语句为 : rINTCON=0x5 ; // 非矢量中断模式,禁止 FIQ 中断,使能 IRQ 中断 设置好了,采用以下语句开启中断 : rINTMSK= ~(BIT_GLOBAL|BIT_EINT4567)。4 主程序编写 ,代码见课本 P*.5 中断处理程序 void irq_Eint4567lsr(void){ which_int = rEXTINTPND; rEXTINTPND = Ox0f; //清除 EXTINTPND 寄存器 rl_lSPC= BIT_EINT4567; //清除 pending_bit Delay(1000) ; //延时消抖 }

Page 52: 第5章  ARM 接口设计技术

模 / 数转换概述模 / 数转换概述

所谓模/数转换器就是把电模拟量转换成为数字量的电路 . 微机与控制系统的接口框图

´« ¸ÐÆ÷ n

¶à·¿ª¹Ø

²É Ñù±£ ³Ö

Ä£ Äâ¿Ø ÖÆ

D/A

A/D΢ÐÍ»ú

µÍ ͨÂË ²¨

放大

µÍ ͨÂË ²¨

µÍ ͨÂË ²¨

´« ¸ÐÆ÷ 2

´« ¸ÐÆ÷ 1

放大

放大1现场信号

2现场信号

n现场信号

::

::

Page 53: 第5章  ARM 接口设计技术

模 / 数转换的方法和原理Ⅰ模 / 数转换的方法和原理Ⅰ

1 .计数式 A/D 转换法

8 位D/ A 转 换 器

8位计数器

D7 D6 D5 D4 D3 D2 D1 D0

CLK

开始转换

转换结束

CLR

比较器

V0

Vi

C

其中, Vi是模拟输入电压, V0是 D/A转换器的输出电压, C

是控制计数端,当 C=1时,计数器开始计数, C=0时,则停止计数。 D7~ D0是数字量输出,数字输出量又同时驱动一个 D/A转换器。

Page 54: 第5章  ARM 接口设计技术

模 / 数转换的方法和原理Ⅱ模 / 数转换的方法和原理Ⅱ

2 .双积分式 A/D 转换法 双积分式 A/D 转换的基本原理是对输入模拟电压和参考电压进行

两次积分,变换成与输入电压均值成正比的时间间隔,利用时钟脉冲和计数器测出其时间间隔,因此,此类 A/D 转换器具有很强的抗工频干扰能力,转换精度高,但速度较慢 .

标准电压

逻辑控制时钟

计数器

Vi模拟输入

积分器

比较器A

B固定频率

T2

T1

积分输出

固定积分时间

T1和T2正比于输入电压

( a )电路工作原理图 ( b )双积分图示

Page 55: 第5章  ARM 接口设计技术

模 / 数转换的方法和原理Ⅲ模 / 数转换的方法和原理Ⅲ

3 .逐次逼近式 A/D 转换法

输出寄存器

移位寄存器

D/ A转换器 VREF

控制逻辑和CP脉冲

vi模拟输入

数字串行输出

数字并行输出

vi , vo'

10VREF/ 16

12VREF/ 16

8VREF/ 16

4VREF/ 16

Ot0

t

t

t

tO

O

O

O

模拟输入信号viD/ A转换的输出电压Vo'

1

11 1

1

1

1

0 0 0

0

0

0

000

B3

B4

B2

B1

t1

tt2 t3

逐次逼近式 A/D 转换原理框图 逐次逼近式 A/D 转换过程

Page 56: 第5章  ARM 接口设计技术

A/D 转换的重要指标 A/D 转换的重要指标

1 .分辨率 (Resolution) :反映 A/D 转换器对输入微小变化响应的能力,通常用数字输出最低位 (LSB)所对应的摸拟输入的电平值表示。 2 .精度 (Accuracy) :绝对精度 (Absolute Accuracy) ;相对精度 (Relative Accuracy)。3 .转换时间 (Conversion Time) :指完成一次 A/D 转换所需的时间,即由发出启动转换命令信号到转换结束信号开始有效的时间间隔。转换时间的倒数称为转换速率。4 .量程:量程是指所能转换的摸拟输入电压范围,分单极性、双极性两种类型。例如,单极性 量程为 0~ +5V, 0~ +10V;双极性 量程为 -5~ +5V, -10~ +10V 。

Page 57: 第5章  ARM 接口设计技术

S3C440BX自带的 A/D 转换器S3C440BX自带的 A/D 转换器 ARM S3C440BX 芯片自带一个8路 10位 A/D 转换器,该

转换器可以通过软件设置为 Sleep 摸式,可以节电减少功率损失,最大转换率为 100K ,非线性度为正负1。

ARM 芯片与 A/D 功能有关的引脚: AIN[7:0] 为 8 路摸拟采集通道 ,ADC 的模拟输入; AREFT 为参考正电压, AREFB 为参考负电压, AVCOM 为摸拟公共参考电压。

数据总线

ADCI NT中断逻辑

逐次逼近寄存器

AD结果寄存器

控制逻辑

PSR预分频器

D/A转换器 COMP

+

-

比较器

MCLK

AI N7-08

Vcom

10

模拟转换开关

AMUX

Page 58: 第5章  ARM 接口设计技术

ADC 的相关寄存器ADC 的相关寄存器

1. A/D 转换控制寄存器( ADCCON ): 地址为 0x01D40000( 在小模式下,以字、半字、字符单位存取 ) 、 0x01D40002( 在大模式下,以半字单位存取 ) 、 0x01D40003( 在大模式下,以字符单位存取 ) ,可读写,初始值为 0x20。

2. A/D 转换预分频寄存器

3. A/D 转换数据寄存器

Page 59: 第5章  ARM 接口设计技术

数 / 模转换器原理 数 / 模转换器原理

D/A 转换器的主要功能是将数字量转换为模拟量。数字量是由若干数位构成的,每个数位都有一定的权。我们说把一个数字量变为模拟量,就是把每一位上的代码按照权转换为对应的模拟量,再把各位所对应的模拟量相加,所得到各位模拟量的和便是数字量所对应的模拟量。

基于上述思路,在集成电路中,通常采用T型网络实现将数字量转换为模拟电流,然后再用运算放大器完成模拟电流到模拟电压的转换。所以,要把一个数字量转换为模拟电压,实际上需要两个环节:即先由 D/A 转换器把数字量转换为模拟电流,再由运算放大器将模拟电流转换为模拟电压。

Page 60: 第5章  ARM 接口设计技术

T 型电阻解码网络 T 型电阻解码网络

R0

2R 2R2R

2R R R R

S0 S1 S2 S3

21 232220

A CB DVREF

V0

2R

Page 61: 第5章  ARM 接口设计技术

数 / 模转换器的分类 数 / 模转换器的分类

1 .电压输出型(如 TLC5620): 虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速 D/A 转换器使用。2 .电流输出型 (如 THS5661A): 很少直接利用电流输出,大多外接电流—电压转换电路得到电压输出。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压输出型相同,这时由于在 D/A 转换器的电流建立时间上加入了达算放入器的延迟,使响应变慢。3 .乘算型(如 AD7533): 在基准电压输入上加交流信号的,能得到数字输入和基准电压输入相乘的结果而输出,称为乘算型 D/A 转换器。乘算型 D/A 转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对输入信号进行调制的调制器使用。

Page 62: 第5章  ARM 接口设计技术

D/A 转换器的主要指标 D/A 转换器的主要指标

1 .分辩率 (Resolution) :指最小模拟输出量(对应数字量仅最低位为‘ 1’ )与最大量(对应数字量所有有效位为‘ 1’ )之比。2 .建立时间 (Setting Time) :是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。 DA 中常用建立时间来描述其速度,而不是 AD 中常用的转换速率。一般地,电流输出 DA建立时间较短,电压输出 DA则较长。3 .其他指标:线性度 (Linearity) ,转换精度,温度系数 /漂移。

Page 63: 第5章  ARM 接口设计技术

ARM的 JTAG 接口基本知识ⅠARM的 JTAG 接口基本知识Ⅰ

1. JTAG是 Joint Test Action Group 的缩写,是 IEEEll49.1标准。使用 JTAG 的优点: JTAG 的建立使得集成电路固定在PCB 上,只通过边界扫描便可以被测试。在 ARM7TDMI 处理器中,可以通过 JTAG直接控制 ARM 的内部总线、 I/O 口等信息,从而达到调试的目的。

2. JTAG 的典型信号: TMS :测试模式选择 (Test Mode Select) ,通过 TMS信号控制

JTAG状态机的状态; TCK: JTAG 的时钟信号; TDI :数据输入信号; TDO :数据输出信号; nTRST: JTAG复位信号,复位 JTAG 的状态机和内部的宏单

元 (Macrocell)。

Page 64: 第5章  ARM 接口设计技术

ARM的 JTAG 接口基本知识ⅡARM的 JTAG 接口基本知识Ⅱ3. JTAG状态机: JTAG状态机分成 15 个状态,每一个状态都有其相应的功能。不管 JTAG状态机处于哪个状态,当 TMS 信号等于逻辑 1 的时候,连续 5 个时钟信号以后, JTAG 状态机必然回到 Test-logic Reset 状态。这也是JTAG状态机的复位时的状态。4. JTAG链的组成:每一条 JTAG链是由若干个 JTAG的扫描单元串连组成的,每一个扫描单元都可以配置成捕获外部信号的输入单元或者对外的输出单元。依靠移位寄存器,通过 JTAG的 TDO和 TDI信号线,可以使数据串行输出到每一个 JTAG 扫描单元上,或者读出每一个扫描单元的数据。

Page 65: 第5章  ARM 接口设计技术

ARM的 JTAG 接口基本知识ⅢARM的 JTAG 接口基本知识Ⅲ5. JTAG链的工作过程:步骤一: JTAG 处于挂起状态, JTAG 的扫描单元并不影响设备信号的输入输出。步骤二:在 JTAG状态机的 Capture-DR状态,把 IO 口上的数据捕获到 JTAG 扫描单元的移位寄存器上。步骤三:在 JTAG状态机的 Shift-DR状态, TCK 的一次跳变,把数据从 TDI移位到 JTAG移位寄存器的高位上,并从 TDO 输出移位寄存器的低位 ( 就是 O3 的数据 ) 。步骤四:经过 6个 TCK 的时钟可以把整个捕获到的 JTAG链的移位寄存器上的数据移出,并且,把新的数据移入 JTAG链。步骤五:在 JTAG状态机的 Update—DR状态,可以把新的数据锁定到设备的输入或者输出 I/O 口上,从而完成了一次 JTAG 的数据更新。

Page 66: 第5章  ARM 接口设计技术

ARM的 JTAG调试结构 ARM的 JTAG调试结构

Debug负责转换 主控端发ARM出的高级 调试命令为

底层的河内核通信的

ARM7TDMI以 为处理器的开发系统

ARM运行有 公司或者第三PC方提供的调试软件的

调试目标机

协议转换器

Debug主控

ARM7TDMI的 JTAG宏单元 (Macrocell) 主要包括 3条 JTAG 扫描链(Scan Chain) 和一个 JTAG 的控制 TAP状态机。JTAG与 AngelJTAG调试:协议转换器解释上位机传送过来的命令,通过 JTAG 控制 ARM执行。Angel调试:协议转换器可以直接做为目标板的 Firmware 的一部分,直接执行从宿主机传送过来的调试命令;并回送相应的数据。

Page 67: 第5章  ARM 接口设计技术

ARM7TDMI 内核的 JTAG 扫描链结构ARM7TDMI 内核的 JTAG 扫描链结构

ARM7TDMI 内核的 JTAG 扫描链结构主要包括了 3条扫描链:Scan Chain 0 :有 113 个扫描单元,包括 ARM 核的所有的 I/ O 、地址数据总线和输入输出控制信号。这条链上的信号复杂,不易控制,但是,包含的信息丰富,可以通过这条链得到 ARM7TDMI 内核的所有信息。Scan Chain l :有 33 个扫描单元,包括 ARM 核的数据总线和一个断点控制信号。这是一条很有用的链,通过控制这条链,可以控制 ARM 核执行指定的指令,从而实现对 ARM 的内部寄存器、协处理器以及外部存储器的读写操作。Scan Chain 2 :有 38 个扫描单元,通过控制 EmbeddedICE宏单元,实现对 ARM执行指令的断点、观察点的控制。