121
1 第 5 第 ARM 第第第第第第 本本本本本本 本本本本 LED 本本本本本 LCD 本本本本本 本本本本本 本本本本 本本本本 A/D 本 D/A 本本本本本 ARM 本 JTAG 本本

第5章 ARM 接口设计技术

  • Upload
    lethia

  • View
    66

  • Download
    4

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 接口设计技术

1

第 5 章 ARM 接口设计技术

本章主要内容: 键盘接口 LED 显示器接口 LCD 显示器接口 触摸屏接口 通讯接口 中断接口 A/D和 D/A 转换器接口 ARM的 JTAG 接口

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

2

芯片 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 3: 第5章  ARM 接口设计技术

3

芯片 S3C44B0XⅡ

每组端口都是多功能口,需要用软件对端口配置寄存器 PCONn 来设置满足不同系统和设计的需要,在运行程序之前必须先对每一个用到的引脚功能进行设置。如果某些引脚的复用功能没有使用,可以将该引脚设置成 I/O 口。

在一般的应用中, PA 作为地址线使用; PB 作为bank 选择线和 SDRAM 的接口信号线使用; PC 可以作为数据线、 IIS 接口或 LCD 数据线等使用;在系统具备 LCD 的情况下, PD 主要作为 LCD 的信号线使用; PE 可以作串口信号线和定时器输出使用; PF和PG 则是多功能 I/O 口。

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

4

键盘概述

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

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

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

5

用 ARM 芯片实现键盘接口Ⅰ 本应用实例中,要与 4X4 的矩阵键盘接口,采用节省口线的“行

扫描法”方法来检测键盘,这样只需要 8 根口线,在此选取 PF口作为检测键盘用端口,并设定 PF0 –PF3 为输出扫描码的端口,PF4--PF7 为键值读入口。

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

6

用 ARM 芯片实现键盘接口Ⅱ

矩阵键盘按键的识别方法,此方法分两步进行: ① 识别键盘哪一行的键被按下:让所有行线均为低电

平,检查各列线电平是否为低,如果有列线为低,则说明该列有键被按下,否则说明无键被按下。

② 如果某列有键被按下,识别键盘哪一行的键被按下:逐行置低电平,并置其余各行为高电平,检查各列线电平的变化,如果列电平变为低电平,则可确定此行此列交叉点处按键被按下。

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

7

行扫描法获取键值的程序设计Ⅰ 1. 寄存器设置 接口中利用了 PF 口的相关寄存器, PF 口的寄存器有 3 个:

PCONF ,PDATF和 PUPF。 (1)设置 PCONF寄存器需要设定 PF0-3为输出口, PF4 - 7为输入口,因此,在端口工作之前设置 : rPCONF= 000 000 000 00 01 01 01 01 B= 0x55; (2)设置 PDATF寄存器PF0-3作为输出口输出扫描码时,可采用语句 :rPDATF=Oxf0; // PF0-3全写入 0PF4-7作为输入口读入键值时,采用语句 :Keyval=( rPDATF&0xf0) >>4; (3)设置 PUPF寄存器设置内部上拉电阻的语句为 :rPUPF=0x00; //使能 PF0-7的内部上拉电阻

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

8

行扫描法获取键值的程序设计Ⅱ

2. 编写键盘扫描程序

Y

-1初始化键值为

开始

PF0-3 0输出全

PF4-7 1读入为全 ?

PF0-3输出扫描码

PF4-7 1读入为全 ? 扫描码指针移位

获得行号和列号,计算键值

返回键值

Y

N

N

3. 代码见课本 P153

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

9

LED 显示器接口概述Ⅰ LED(Light Emitting Diode) 常 称为 七 段发 光 二极 管 ,

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

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

10

LED 显示器接口概述Ⅱ

在多个 LED 显示电路中,通常把阴(阳)极控制端接至一输出端口,我们称它为位控端口;而把数据显示段接至一个输出端口,我们称这个端口为段控端口。段控端口处应输出十六进制数的 7 段代码。

为了将一个 4位二进制数 ( 可能为一个十六进制数 ,也可能是一个 BCD 码 ) 在一个 LED 上显示出来 , 就需要将 4位二进制数译为 LED 的 7位显示代码。要完成译码功能 , 可以采用两种方法:

一种方法是采用专用芯片 , 可以实现对 BCD 码的译码 ,但不能对大于 9 的二进制数译码。

另一种常用的办法是软件译码法。在软件设计时 , 将 0到 F共 16个数字 (也可以为 0 到 9) 对应的显示代码组成一个表。

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

11

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

1.接口电路+5V

位驱动

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

abcdefgDP

PF0

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

ULN2803A

段驱动

PF7

PG0

. . .

. . .

PG7

5第 位 6第 位 7第 位

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

12

用 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 13: 第5章  ARM 接口设计技术

13

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

3. 7 段数码 LED 编程

指向缓冲区首址

取显示位指针

取要显示的数

将数变为段码

段码送到段控制通道

位码送到位控制通道

延迟一定时间

是否是最后一位

退出

修改缓冲区指针和位码

4. 代码见课本 P158

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

14

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

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

LCD 有三种显示方式:反射型,透射型和透反射型。 市面上出售的 LCD 有两种类型: 一种是带有驱动电路的 LCD 显示模块,这种 LCD 可

以方便地与各种低档单片机进行接口; 另一种是 LCD 显示屏,没有驱动电路,需要与驱动电路配合使用

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

15

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 16: 第5章  ARM 接口设计技术

16

LCD 应用实例Ⅰ

1.LCD 接口电路 S3C44BOX

VD0VD1VD2VD3VD4VD5VD6VD7

VCLKVLI NE

VFRAMEFB4

A0A1A2A3A4A5A6A7

B0B1B2B3B4B5B6B7

A1A2

A0

A4A3

A5

A7A6

B1B0

B2

B4B3

B6B5

B7

VD0

VD2VD1

VD3

VD5VD4

VD6VD7

VLI NEVCLK

VFRAMEDI SPLY

74HC245

74HC245 LCD模块

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

17

LCD 应用实例Ⅱ

2.I/O口 LCD 功能设置 通常采用 S3C44BOX的 PC 口和 PD 口作为 LCD驱动接口,因此需要设置 PC 口工作在第 3 功能状态和PD 口工作在第 2 功能状态,设置对应 I/O 口控制寄存器的语句 :

rPCONC = 00 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00B = OxO00Off00;

rPUPC = 0x 00; // 上拉使能 rPCOND= Oxaaaa; rPUPD= 0x 00;

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

18

LCD 应用实例Ⅲ

3. LCD初始化程序 开始

结束

C D初始化端口 和 ,将其LCD定义为 驱动控制端口

LCDCON1,设置寄存器LCDCON2, LCDSADDR1,LCDSADDR2, LCDSADDR3

代码见课本 P169

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

19

触摸屏的工作原理 触摸屏按其工作原理的不同可分为电阻式触摸

屏、表面声波触摸屏、红外式触摸屏和电容式触摸屏几种。

最常见的是电阻式触摸屏,其屏体部分是一块与显示器表面非常配合的多层复合薄膜。触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可测得接触点处的电压,从而知道接触点处的坐标。

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

20

触摸屏的驱动芯片ADS7843Ⅰ

S3C44BOX 通过端口 G 模拟串行的 SIO 接口与触摸屏专门的控制芯片 ADS7843 进行数据传输,来完成对触摸屏触摸位置坐标的读取。 ADS7843 要完成两件事:

( 1)是完成电极电压的切换; ( 2)是采集接触点处的电压值,并进行 A/D 转换。

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

21

触摸屏的驱动芯片 ADS7843Ⅱ

1. ADS7843 引脚配置及功能

12345678 9

10111213141516

ADS7843

+Vcc DCLKX+Y+X-Y-

GNDI N3I N4 Vv3g

+VccPENI RQDOUTBUSYDI NCS

引脚号 名称 描述

1, 10 +Vcc 供电电源输入 2.7-5V

2, 3 X+ , Y+触摸屏 X+、 Y+ 输入,接内部 ADC输入通

道4, 5 X- , Y- 触摸屏 X-、 Y- 输入

6 GND 接地

7, 8 IN3, IN4 附属 ADC输入通道

9 VREF ADC参考电压

11 PENIRQ 接触中断输出,必须外接 10-100 KΩ电阻12, 1

416

DOUT,DIN,DCLK

控制字输入、 A/D转换结果输出端;在时钟下降沿时输出,上升沿时输入

13 BUSY 忙指示输出

15 CS 片选

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

22

触摸屏的驱动芯片 ADS7843Ⅲ

2. ADS7843 的控制字

第 7位(MSB)

第 6位 第 5位 第 4位 第 3位 第 2位 第 1位 第 0位

(LSB)

S A2 A1 A0MOD

ESER/DFR

PD1 PD0

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

23

触摸屏的接口设计Ⅰ

1 . 触摸屏的驱动芯片 ADS7843典型接口

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

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

24

触摸屏的接口设计Ⅱ 2 编程实现 利用连接好的电路设置 PCONG 寄存器如下: rPCONG = Ox015f; 其中, PENIRQ最好加上内部上拉,设置为 : rPUPG&=Ox80。 ( 1)读取触摸点坐标程序 :

编程采用固定参考电压模式,因此 SER/DFR=1 。首先检测 PENIRQ是否为低电平,如果为低电平,则认为有接触;否则认为触摸屏没有接触。利用软件模拟 DIN, DOUT和 DCLK 上的 3 线串行传输时序,将读取的 x 或 Y 坐标数值的控制字串行送入 ADS7843,然后再串行读出坐标值。最后将 X 和 Y 轴坐标值送串口显示即可。

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

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

25

串行通信概述

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

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

26

RS-232C 串行接口Ⅰ 1.RS-232C 接口规格

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

27

RS-232C 串行接口Ⅱ

2. RS-232C

接口信号。 实际应用 中,并不是 每只管脚 信号都用到

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

28

S3C44BOX 内部集成的 UART

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

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

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

29

UART 操作

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

nCTS) 调制解调器接口

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

30

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

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

31

与 FIFO 有关的中断

类型 FIFO类型 非 FIFO模式

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

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

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

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

错 误 中断

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

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

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

32

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

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

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

33

回送模式与红外通信模式 回送模式 :S3C44BOX的 UART提供的一个测试模式。

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

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

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

34

UART 的寄存器Ⅰ

1.UART 线控制寄存器 ULCONn 位 描述 初始值

保留 [7]   0

红外线模式 [6] 该位确定是否使用红外通信模式0:正常模式 1 :红外收发模式 0

奇偶校验模式 [5 :3]

该位确定奇偶如何产生和校验0xx: 无校验位 100:奇校验 101 :偶校验

110:校验位强制 /检测置 1 111 :校验位强制 /检测置0

000

停止位的数量 [2] 该位确定停止位的个数, 0: 1位停止位 1 : 2位停止位 0

数据位长度 [1 :0]

该位确定数据位的个数00: 5位 01 : 6位 10: 7位 11 : 8位 00

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

35

UART 的寄存器Ⅱ2.UART 控制寄存器

UCONn 位 描述 初始值

发送中断类型 [9] 发送中断请求类型0:脉冲(在发送缓冲区变空时立即引发中断)

1 :电平(在发送缓冲区为空时引发中断)0

接收中断类型 [8] 接收中断请求类型0:脉冲(接收缓冲区接收到数据时立即引发中断)

1 :电平(接收缓冲区正在接收数据时引发中断)0

接收超时中断使能 [7] 在 UART的 FIFO 使能的情况下,使能/禁止接收超时中断 0:禁止 1 :使能

0

接收错误状态中断使能 [6] 使能 UART 在接收操作中发生错误时的错误中断响应0:不产生错误状态中断 1 :产生错误状态中断

0

回送模式 [5] 该位使 UART自动进入回送模式0:正常操作 1 :回送模式

0

发送中止信号 [4] 该位将引发 UART 在一帧时间内发送中止信号, 该信号发送 完后,该位自动被清除

0:正常操作 1 :发送中止信号 

0

发送模式 [3 : 2]这 2位决定当前哪个功能项能够向 UART 发送保持寄存器写入发送数据

00: 禁止 01:中断请求或轮流检测模式10: BDMAO请求(仅对 UARTO)11: BDMAI请求(仅对 UART1)

00

接收模式 [1 : 0] 这 2位决定当前哪个功能项能够从 UART 接收保持寄存器中读出接收数据 00: 禁止01 :中断请求或轮流检测模式 IO:BDMAO请求(仅对 UARTO ) 11:BDMAl请

求(仅对 UART1)

00

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

36

UART 的寄存器Ⅲ

3.FIFO 控制寄存器 UFCONn 位 描述 初始值

发送 FIFO 的触发电平

[7 : 6] 这两位确定发送 FIFO 的触发条件 00:空 01 : 4 字节 10 : 8 字节 11 : 12 字节 00

接收 FIFO 的触发电平

[5 : 4] 这两位确定接收 FIFO 的触发条件 00 : 4 字节01 : 8 字节 10: 12 字节 11 : 16 字节

00

保留 3   0

发送 FIFO 复位 2 该位在 FIFO 复位后自动清除

0 :正常 1 :发送 FIFO 复位0

接收 FIFO 复位 1 该位在 FIFO 复位后自动清除

0 :正常 1 :接收 FIFO 复位0

FIFO 使能 0 0 :禁止 FIFO 1 : FIFO 使能 0

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

37

UART 的寄存器Ⅳ

4.Modem 控制寄存器UMCONn 位 描述 初始值

保留 [7 :5] 这 3位必须为 0 000

自动流控制 4 AFC 是否允许0 :禁止 1 :使能 0

保留 [3 :1] 这 3位必须为 0 000

请求发送 0如果 AFC允许 ,该位忽略;如果 AFC禁止,

必须由软件来控制 nRTS。0 : 高电平(不激活 nRTS ) 1 : 低

电平(激活 nRTS)

0

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

38

UART 的寄存器Ⅴ

5. 发送 /接收状态寄存器 UTRSTAT

n位 描述 初始状态

发送移位寄存器为空

[2]当发送移位寄存器中不包含有效数据或移位寄存器为

空,该位自动被置位。 0:非空1 :发送保持和移位寄存器为空

1

发送缓冲器为空 [1]

当发送缓冲区寄存器中不包含有效数据,这一位将自动被置位 0:缓冲区寄存器非空 1 :空

如果使用了 FIFO, 则用户不用检测这个位,而应当检测 UFSTAT 中发送 FIFO 计数器位和 FIFO 满位

1

接收缓冲器数据准

备好[0]

当接收缓冲器寄存器中包含了有效数据,这一位将自动被置位

0:完全为空 1 :缓冲区寄存器中包含有效数据如果使用了 FIFO 则用户不用检测这个位,而应当检测

UFSTAT 中接收 FIFO 计数器位

0

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

39

UART 的寄存器Ⅵ 6.UART错误状态寄存器

UERSTATn 位 描述 初始值

间隔中断 [3] 如果接收到某个中止信号,该位将自动置 10:未接收到中止信号 1 :接收到中止信号 0

数据帧错误 [2] 如果在接收操作中发生了帧错误,该位将自动置 1 0:接收中没有发生帧错误 1 :帧错误 0

奇偶错误 [1]如果在接收操作中发生了奇偶校验错误,该位将自

动置 1 1 :奇偶校验错误 0:接收中没有发生奇偶校验

错误0

Overrun错误 [0] 如果在接收操作中发生了溢出错误,该位将自动置1 0:接收中没有发生溢出错误 1 :溢出错误 0

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

40

UART 的寄存器Ⅶ

7.UART的 FIFO状态寄存器UFSTATn 位 描述 初始值

保留 [15 : 10]   000000

发送 FIFO 满 9 当发送 FIFO 满时该位为 10 : 0字节≤发送 FIFO 的数据个数 ≤ 15字节 1 :满 

0

接收 FIFO 满 8 当 FIFO 将要满时,该位为 10 : 0字节≤接收 FIFO 数据个数 ≤ 15 字节 1 :满

0

发送 FIFO 计数器

[7 : 4] 发送 FIFO里的数据数量 0000

接收 FIFO 计数器

[3 : 0] 接收 FIFO里的数据数量 0000

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

41

UART 的寄存器Ⅷ 8.Modem状态寄存器 : Modem状态寄存器 0( UMSTAT0)、寄存器 1(UMSTAT1) 的地

址 分 别 为 0x01D0001C 、 0x01D0401C , 可 读 , 初始值 为0x06。

9.UART 发送 /接收保持(缓冲区)寄存器 : 发送 /接收保持寄存器 0( UTXH0)、寄存器 1(UTXH1) 的地址

在小模式下分别为 0x01D00020、 0x01D04020 ,在大模式下分别为 0x01D00023、 0x01D04023 ,可写, 初始值可编程。

10.UART波特率除数寄存器 UART波特率除数寄存器 0( UBRDIV0)、寄存器 1(UBRDIV1)

的地址分别为 0x01D00028、 0x01D04028 ,可读写, 初始值可编程。

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

42

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 43: 第5章  ARM 接口设计技术

43

S3C44BOX的UART 的应用Ⅱ

2.UART初始化 对 UART 口的可配置参数进行初始化,使其能够按照所

要求的通讯方式进行通讯。对 UART 口进行初始化的设置程序见课本 P186。

3. 字符发送程序 Uart_SendByte() 见 课 本P187。

4. 字符接收程 序 Uart_GetByte() 见 课 本P187 。

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

44

USB 接口概述 USB( 通用串行总线 )接口正在被用于多种嵌入式系统设备的数据通

信中,如移动硬盘、数码相机、 PDA 、高速数据采集设备等。它是由 Compaq、 HP、 Intel、 Lucent、Microsoft、 NEC和Philips 七家公司联合推出的新一代标准接口总线。是一种连接外围设备的机外总线。 其主要性能特点如下:

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

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

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

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

45

USB 系统组成

一个 USB 系统由三部分来描述: USB 主机:在任一 USB系统中只有一个主机,到主计算机系统的 USB接口被称作主控制器。

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

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

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

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

46

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

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

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

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

47

USB 的电源 USB 的电源规范包括两个方面:电源分配用来处理 USB 设备如何使用主机通过 USB总线提供的电源。电源管理用来处理 USB 系统软件和设备如何适应主机上的电源管理系统。

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

48

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

些类型的事务用来管理主机与全 /低速设备之间的数据传输。主机与设备端点之间的 USB数据传输模型被称作管道,管道有两种类型:流和消息。

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

49

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

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

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

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

50

USB 设备应用Ⅰ

对 USB 设备的开发需要考虑的因素:选择 USB 接口控制器芯片。编写 USB 设备要执行的 USB 通信代码(也称为固件程序)。USB 设备需要执行的其他功能,例如处理接收数据和即将发送数据所需要的硬件和程序代码。一台支持 USB 接口的主机。主机上装有与 USB 设备通信的驱动软件。如果 USB 设备不是操作系统支持的标准设备,则主机上必须具有专用的应用软件来访问 USB 设备。

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

51

USB 设备应用Ⅱ

USB 设备开发的一般步骤 : ① 根据所要开发的设备的功能需要,确定设备在 USB总线上的位置、传输数据的速度以及传输数据的量等,从而确定选择哪一类的 USB 控制器芯片,并进一步具体决定采用芯片的厂家和型号 , 然后根据该器件和其他所需芯片进行电路设计。

② 编写固件程序,其作用是让主机能够识别该设备,并响应主机的各种请求。

③根据所用设备是否为标准 USB 设备,来决定是另外编写驱动,还是使用操作系统自带的驱动程序来访问 USB 设备。

④把编写好的固件程序载入 USB 设备,并将 USB 设备插入主机总线打开应用程序可以对该设备进行指定的操作。

⑤按需要调试和重复以上步骤。

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

52

以太网接口概述 以太网以其高度灵活、相对简单、易于实现的

特点,成为当今最重要的一种局域网建网技术。通常所说的以太网主要是指以下 3 种不同的局域网技术 :

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

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

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

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

53

以太网工作原理 以太网最早是由 Xeros公司开发的一种基带局域网技术;

使用同轴电缆作为网络介质; 以太网采用广播机制; 采用载波多路访问和碰撞检测 (CSMA/CD) 机制; 数据传输速率达到 10 Mbps; 以太网/ IEEE 802. 3 通常使用专门的网络接口卡或通过系统主电路板上的电路实现。

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

54

以太网的传输编码 曼彻斯特编码 差分曼彻斯特编码

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

差分曼彻斯特编码

曼彻斯特编码

时钟

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

55

以太网帧格式 字段 同步位 分隔位 目的地址 源地址 类型/长度 数据段 填充位 FC

S

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

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

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

56

以太网控制器 RTL8019

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

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

57

RTL8019 的复位RTL8019 的复位引脚 RSTDRV 是高电平有效的复位信号,高电平时间长度需大于 800 ns ,通常在 RSTDRV 从高电平回到低电平之后的 100ms 时,再对 RTL8019 进行读写操作,以确保完全复位。当处理器复位时,以太网控制器也复位。热复位:为了保证能够完全复位,可以使用热复位方法。18h一 1Fh 的 8 个地址,为复位端口,对该端口的偶数地址读或写入任何数,都会引起以太网控制器的复位,这种方式称为热复位。中断状态寄存器中的第 7位 RST跟复位有关,它的地址为 07h ,位于第 0页,可直接读写。在以太网控制器执行了正确复位之后该位为 1 。一般在复位之后检查该标志位,以确认是否复位成功。

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

58

RTL8019 寄存器Ⅰ 1.命令寄存器 CR: 地址偏移量是 00h ,长度为一个字

节。 位 符号 描述

7 , 6 PS1,PS0

选择寄存器页 00: 0页 01 : 1页 10: 2页 11 : 3页(为 RTL8019AS 配置)

5—3 RD2—0表示要执行的功能 000:不允许001 :远程读取以太网控制器内存010:远程写入以太网控制器内存

011 :发送包 1XX: 中止 /完成远程 DMA

2 TXP要发送数据包时,要将该位置 1 ,该位可能在发送完成后或

者发送中止时内部清 0,对该位写 0 操作无效

1 STA 写 STP 组合使用

0 STP该位是停止命令。该位被置 1 ,就停止接收或发送任何数据包,上电时该位为 1。 STA 与 STP 组合使用, 10:启动命

令 01 :停止命令

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

59

RTL8019 寄存器Ⅱ (1)

2. 与发送/接收相关的寄存器 :①PSTART :接收缓冲区的起始页地址 ( 位于 01h ,在第 0页可写,在第 2页可读 )。②PSTOP :接收缓冲区的结束页地址 ( 该页不用于接收,位于02h,在第 0页可写,在第 2页可读 )。③BNRY :边界寄存器 (作为读指针使用,位于 03h ,在第 0页可读写 )。这个寄存器用来避免对环形接收缓冲区中数据的错误覆盖,通常用作指针,指向接收缓冲区中已经被读取的最后一个页。④CURR :当前页寄存器 (作为写指针使用,位于 07h ,在第 1页可读写 )。这个寄存器的内容指向接收缓冲区中第一个可用于接收新数据的页面。⑤DCR :数据配置寄存器。将它设置为使用 FIFO缓存,普通模式,8位数据传输模式。字节顺序为高位字节在前,低位字节在后。

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

60

RTL8019 寄存器Ⅱ (2)

⑥TPSR :为发送页的起始页地址。初始化为指向第一个发送缓冲区的页。⑦RCR :接收配置寄存器,设置为使用接收缓冲区,仅接收与自己地址相匹配的数据包 (以及广播地址数据包 )和多点播送地址包;小于 64 字节的包和校验错的数据包将被丢弃。⑧TCR :发送配置寄存器,启用 CRC(循环冗余校验 )自动生成和校验功能,工作在正常模式。⑨RSAR0,1 :对存储器进行操作的起始地址寄存器 ,RSAR0 存放低 8位, RSARl 存放高 8位。⑩RBCR0,1 :对存储器操作的字节计数寄存器 ,RBCR0 存放低 8位, RBCRl 存放高 8位。⑩TBCR0,1:发送字节计数器 ,这两个寄存器设置了要发送数据包中的字节个数。 TBCR0存放低 8位, TBCRl存放高 8位。

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

61

RTL8019 寄存器Ⅲ

3. 其他寄存器 : ①IMR :中断屏蔽寄存器 ,设置成 0x00 时,屏蔽所有

的中断,设置成 0xFF 将允许中断。 ②MAR0 一 MAR8 : 多 点播送地 址 , 可 以全写

0xFF。 ③PAGE2 的寄存器是只读的,不用设置。 PAGE3 的

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

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

62

RAM 空间结构 以太网控制器含有 16KB的 RAM ,地址为 0x4000—

0x7FFF ,每 256 个字节称为一页,共有 64页。 使用 0x40—0x45作为以太网控制器的发送缓冲区,共 6页。使用 0x46~ 0x5F作为以太网控制器的接收缓冲区,共 32页。

CURR和 BNRY 寄存器是以太网数据收发中用到的两个最主要的寄存器, CURR和 BNRY 主要用来控制缓冲区的存取过程,保证能顺次写入和读出。

CURR 是以太网控制器写接收缓冲区的指针。 BNRY指向接收缓冲区中已经被读取的最后一个页。

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

63

网卡的物理地址 在完成对寄存器的初始化后,还要对以太网控制器的物理地址 ( 即 48位的以太网控制器地址 )进行设置。

RAM 地址中的 0x0000~ 0x000B 的 12 字节是网卡的物理地址。网卡的物理地址本应该是 6 个字节的,这 12 字节是单双地址重复存储的。 0x000B后面的地址存储的是生产厂商的代码和产品标识代码,也是单双地址重复存储的。

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

64

以太网模块的接口设计Ⅰ

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

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

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

65

以太网模块的接口设计Ⅱ1. 寄存器地址映射 :采用 nGCS5 作为以太网模块的地址使能位 ,将以太网卡映射在了系统的 Bank5 上,地址从 0xa000000 开始 , 由此,要在程序中定义 RTL8019的寄存器地址。2.书写 RTL8019 中的页面切换函数,热复位函数(硬件复位之后的一次热复位)和初始化函数(设置接收缓冲区的位置和以太网物理地址,初始化寄存器,设置中断的模式)。通过 RTL8019传输数据:数据的发送校验,总线数据包的碰撞检测与避免都由芯片自己完成的,我们只需要配置发送数据的物理层地址的源地址、目的地址、数据包类型以及发送的数据就可以进行数据发送了。

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

66

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

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

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

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

67

IIC 总线通用传输格式 1.起始条件和停止条件 :起始条件发生在 SCL 信号为高时, SDA产生一个由高变低的电平变化处。停止条件发生在 SCL 信号为高时, SDA产生一个由低变高的电平变化处。 2. 数据传输格式 : 每个字节长度都是 8位,每次传输中字节的数量没有限制。在起始条件后面的第一个字节是地址域,之后,每个传输的字节后面都有一个应答( ACK )位。传输中串行数据的MSB(字节的高位)首先发送。应答信号 : ACK脉冲信号在 SCL 线上第 9 个时钟处发出。

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

68

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

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

69

CAN 总线概述 CAN全称为 Controller Area Network ,即控制器局域网,是国际上应用最广泛的现场总线之一。

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

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

70

CAN 总线与同步串行接口 SIO

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

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

71

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

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

72

SIO DMA 操作Ⅰ

在自动运行模式 ( 非握手模式 ) 下, SIO 等待直到发送的数据被外部目标设备读走,在每次 8位数据发送后, SIO插入一个可编程的间隔周期。

1.DMA 发送数据步骤 : ①清 DCNTZ 为 0,使 SIO 能请求 DMA服务。除了 SIOCON[1:0]

必须为 00外 , 适当的配置 SIO; ②适当的配置 DMA; ③SIO 被配置为 DMA 发送模式; ④SIO自动请求 DMA服务; ⑤SIO 发送数据;⑥返回步骤 4直到 DMA 计数为 0 ;⑦设置 DCNTZ 为 1,停止 SIO请求进一步的 DMA服务。

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

73

SIO DMA 操作Ⅱ

2.DMA 接收数据步骤 :①清 DCNTZ 为 0,使 SIO 能请求 DMA服务 .除了

SIOCON[1:0] 必须为 00外 , 适当的配置 SIO;②适当的配置 DMA;③SIO 被配置为 DMA 只接模式;④设置 SIOCON[3] (SIO 开始位 ) 来开始接收操作;⑤SIO 在接收到 8位数据后请求 DMA服务;⑥返回步骤 5直到 DMA 计数为 0 ;⑦设置 DCNTZ 为 1, 停止 SIO请求进一步的 DMA服务。

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

74

SIO 接口寄存器 1) SIO 控制寄存器( SIOCON) :其地址为 0x01D14000 ,可读写,初始值为 0x00。

2) SIO 数据寄存器 (SIODAT) :是一个 8位的 SIO 数据寄存器,它用于存放要发送数据或已接收的数据,地址为 0x01D14004 ,可读写, 初始值为 0x00。

3) SIO 波特率预定标器寄存器 (SBRDR) :用来确定 SIO 的波特率。是 12位寄存器,地址为 0x01D14008 ,可读写,初始值为 0x00。

SIO 的 波特率 = MCLK / 2 /( SBRDR 寄存器的值 + 1) 4) SIO 间隔计数寄存器 (IVTCNT) : IVTCNT 是一个 8位计数器,

地址为 0x01D1400C ,可读写,初始值为 0x00 。在自动运行模式下,每传送 8位数据插入一个时间间隔:

时间间隔 = MCLK / 4/ ( IVTCNT +1) 5) SIO 间隔计数寄存器 (IVTCNT) :当 SIO工作在 DMA模式时,

对应的 DCNTZ 必须为 0 ,当 DMA完成时,对应的 DCNTZ 设置为 1。DCNTZ 地址为 0x01D14010 ,可读写,初始值为 0x00。

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

75

中断接口概述 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 76: 第5章  ARM 接口设计技术

76

中断控制器Ⅰ 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 77: 第5章  ARM 接口设计技术

77

中断控制器Ⅱ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 78: 第5章  ARM 接口设计技术

78

中断源Ⅰ 在 30个中断源中有 26 个中断源提供给中断控制器,

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

下页续

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

79

中断源Ⅱ

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

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

80

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

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

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

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

81

中断优先级 如果中断源 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 82: 第5章  ARM 接口设计技术

82

中断矢量地址表Ⅰ

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

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

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

83

中断矢量地址表Ⅱ

每个中断源对应的矢量地址 中断源 矢量地址 中断源 矢量地址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 84: 第5章  ARM 接口设计技术

84

控制中断的寄存器Ⅰ1. 中断控制寄存器 : 在实际编程中,对中断控制寄存器进行读取和设置来实现对中断的响应和控制。中断控制寄存器 INTCON 的地址为 0x01E00000 ,可读写,初始值为 0x07。

INTCON

位 描述 初始状态

保留 3 0 0

V 2禁止 / 使能 IRQ 中断的“矢量中断模式”0 :矢量中断模式 1 :非矢量中断模式 1

I 1禁止 / 使能 CPU响应 IRQ 中断请求

0: IRQ 中断使能 1: IRQ 中断禁止 1

F 0禁止 / 使能 CPU响应 FIQ 中断请求

0: FIQ 中断使能 1: FIQ 中断禁止 1

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

85

控制中断的寄存器Ⅱ (1)2. 中断请求寄存器 INTPND: INTPND 寄存器的地址为 0x01E00004 ,用来指示中断请求状态。

下页续

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

86

控制中断的寄存器Ⅱ (2)

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

87

控制中断的寄存器Ⅲ (1)

3. 中断模式寄存器 INTMOD: INTMOD 中的 26位分别对应着每个中断源 ,当 INTMOD 中的某个位设置为 1 ,则 ARM7TDM1 内核将以 FIQ(快速中断 ) 模式操作那个中断;否则,将以 IRQ( 普通中断 ) 模式操作。中断模式寄存器INTMOD 的地址为 0x01E00008 ,可读写。

下页续

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

88

控制中断的寄存器Ⅲ (2)

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

89

控制中断的寄存器Ⅳ (1)4. 中断屏蔽寄存器 INTMSK: 中断屏蔽寄存器 INTMSK 的地址为 0x01E0000C ,可读写,用以确定哪个中断源被屏蔽,屏蔽的中断源将不被服务。

下页续

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

90

控制中断的寄存器Ⅳ (2)

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

91

控制中断的寄存器Ⅴ5.IRQ矢量模式寄存器 : 主优先级产生单元通过 I_PMST 寄存器决定 4 个辅单元和 2 个中断源之间的优先级。 2 个中断源 INT_RTC和INT_ADC 在 26 个中断源中优先级是最低的。如果几个中断请求同时发生,在 I_ISPR 寄存器中将其中具有最高优先级的中断源对应位置 1 。

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

92

控制中断的寄存器Ⅵ (1)6.IRQ/FIQ 中断服务寄存器 (I_ISPC/F_ISPC):

对应着 IRQ的 I_ISPR和 I_ISPC 寄存器,在 FIQ 中断模式下,也与中断服务相关的寄存器。

寄存器 地址 R/

W描述 复位值

F_ISPR

0x01E00038

R未经中断处理的 FIQ 中断寄存器

(只有 1位置位)0x00000000

F_ISPC

0x01E0003C

WFIQ 中断服务清除寄存器(一旦被置位, INTPND 中的相应位被清

0)未定义

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

93

控制中断的寄存器Ⅵ (2) I_ISPC/F_ISPC 寄存器的位定义如下表所示:

下页续

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

94

控制中断的寄存器Ⅵ (3)

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

95

控制中断的寄存器Ⅶ7.外部中断控制寄存器 EXTINT: 外部中断控制寄存器 EXTINT 用来设置外部中断的触发模式。

EXTINT 位 描述

EINT7 [30:28] 设置 EINT7 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT6 [26:24] 设置 EINT6 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT5 [22:20] 设置 EINT5 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT4 [18:16] 设置 EINT4 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT3 [14:12] 设置 EINT3 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT2 [10:8] 设置 EINT2 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT1 [6:4] 设置 EINT1 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

EINT0 [2:0] 设置 EINT0 触发模式 000:低电平中断 001:高电平中断01X: 下降沿触发 10X: 上升沿触发 11X 边沿触发

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

96

控制中断的寄存器Ⅷ8.外部中断请求寄存器 EXTINTPND: EINT4,EINT5,EINT6和 EINT7 分享同一个中断请求源,因此,中断服务程序要通过读取 EXTINTPND 寄存器来区别这 4 个中断源。它们的中断处理程序 (ISR) 必须在处理结束时,通过将 EXTINTPND中对应位写 1 来清除该位。

EXTINTPND

位 描述

EXTINTPNDO

0 如果中断发生在 EINT4 上,该位置 1 ,同时INTPND21也置 1

EXTINTPND1

1 如果中断发生在 EINT5 上,该位置 1 ,同时INTPND21也置 1

EXTINTPND2

2 如果中断发生在 EINT6 上,该位置 1 ,同时INTPND21也置 1

EXTINTPND3

3 如果中断发生在 EINT7 上,该位置 1 ,同时INTPND21也置 1

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

97

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

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

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

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

98

外部中断的应用Ⅱ

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 99: 第5章  ARM 接口设计技术

99

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

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

100

模 / 数转换概述 所谓模/数转换器就是把电模拟量转换成为数字量的

电路 . 微机与控制系统的接口框图

´« ¸ÐÆ÷ n

¶à·¿ª¹Ø

²É Ñù±£ ³Ö

Ä£ Äâ¿Ø ÖÆ

D/A

A/D΢ÐÍ»ú

µÍ ͨÂË ²¨

放大

µÍ ͨÂË ²¨

µÍ ͨÂË ²¨

´« ¸ÐÆ÷ 2

´« ¸ÐÆ÷ 1

放大

放大1现场信号

2现场信号

n现场信号

::

::

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

101

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

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 102: 第5章  ARM 接口设计技术

102

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

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

标准电压

逻辑控制时钟

计数器

Vi模拟输入

积分器

比较器A

B固定频率

T2

T1

积分输出

固定积分时间

T1和T2正比于输入电压

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

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

103

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

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 104: 第5章  ARM 接口设计技术

104

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 105: 第5章  ARM 接口设计技术

105

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 106: 第5章  ARM 接口设计技术

106

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

ADCCON 位 描述 初始状态

标志 6 ADC状态标志(只读)0:正在进行 A/D 转换 1: A/D 转换结束 0

睡眠 5 系统省电模式0:正常模式, 1 :睡眠模式 1

输入选择 [4 :2]

时钟源选择OOO:AINO 001: AIN1 Ol0:AIN2

011:AIN3100:AIN4 101: AIN5 110:AIN6

111:AIN7

000

读启动 1通过读操作启动 A/D 转换0:禁止通过读操作启动转换1 :使能通过读操作启动转换

0

使能启动 0通过使能操作启动 A/D 转换 ,如果读启动位置

1 ,则该位无效 0:无操作1:A/D 转换启动,启动后该位被清零

0

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

107

ADC 的相关寄存器Ⅱ2.A/D 转换预分频寄存器 地址为 0x01D40004( 在小模式下,以字、半字、字符单位存取 ) 、0x01D40006( 在大模式下,以半字单位存取 ) 、 0x01D40007( 在大模式下,以字符单位存取 ) ,可读写,初始值为 0x00。

ADCPSR

位 描述 初始状态

预分频值 [7 :0]

预分频值( 0-255),除数 =2×(预分频值+1)

A/D 转换时,时钟频率 =2×(预分频值+ 1)×16

0x00

3.A/D 转换数据寄存器 地址为 0x01D40008( 在小模式下,以字、半字、字符单位存取 )、0x01D4000A( 在大模式下,以半字单位存取 )、 0x01D4000B(在大模式下,以字符单位存取 ),可读写,初始值为 0x00。

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

108

数 / 模转换器原理

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

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

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

109

T 型电阻解码网络

R0

2R 2R2R

2R R R R

S0 S1 S2 S3

21 232220

A CB DVREF

V0

2R

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

110

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

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

111

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

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

112

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 113: 第5章  ARM 接口设计技术

113

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

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

114

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 115: 第5章  ARM 接口设计技术

115

ARM的 JTAG 调试结构

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

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

116

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执行指令的断点、观察点的控制。

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

117

EmbeddedlCE

EmbeddedlCE 是集成在 ARM 内核中的嵌入式 ICE仿真器,通过对 EmbeddedlCE 的控制,对 EmbeddedlCE 中寄存器的读取,可以获得 ARM 内核的状态,为程序设置断点以及读取Debug 通信通道。 EmbeddedICE 的长度是 38位,包括: 32位数据, 5位的访问 EmbeddedICE 中寄存器的地址, 1 个读写控制位。

EmbeddedICE 的一个主要作用就是可以在 ARM 的程序中设置软件或者硬件的断点。在 ARM7TDMI 处理器的内核中,有两种断点的设置方式:硬件断点和软件断点。

在有两个 Watchpoint资源的 ARM7TDMI 的内核中,断点可以有如下情况:

2 个硬件断点,没有软件断点; 1 个硬件断点,任意多个软件断点; 任意多个软件断点。

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

118

ARM7TDMI 通过 JTAG 对外设的访问

JTAG 可以对 ARM 的内核进行控制,从而实现对外围设备的读写。通常,在 ARM7TDMI 处理器中, JTAG对 ARM外围设备的访问是通过对 JTAG 扫描链 1 的控制实现的。

ARM7TDMI中 JTAG 扫描链 1 有 33 个移位寄存器。其中前 32位和ARM总线上的数据相连,第 33位是 ARM 内核的—个控制信号。当第 33位是 0时,表示 ARM 内核在执行下一条指令的时候,是在Debug模式下运行;当第 33位是 1 时,表示 ARM 内核在执行下一条指令的时候,是在 System模式下运行。

因为系统外设的工作频率和系统的主时钟 (MCLK) 一致。所以,在Debug模式下,只能执行和处理器内核相关的指令。要对外部设备(比如,系统的 RAM空间 )进行访问和操作,必须要让 ARM 的内核工作在系统模式下。而在系统模式下, ARM 的内核的时钟是不受JTAG 控 制 的 , 要想让 ARM 的 内核重新受控 , 必 须 要 配合EtubeddedICE 中的 WatchpoInt 寄存器,让 ARM 的内核执行完一条访问外设相关的指令,从系统模式重新回到 Debug模式下。

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

119

思考题Ⅰ

1.S3C44B0X 具有多少通用 I/O 口?它们具有哪些功能?2.简述矩阵式键盘线扫描检测法的工作原理。3. 电阻型触摸屏检测坐标值的原理。4. 如果 LCD坐标原点在右下角,分辨率为 240X180 ,

触摸屏坐标原点在右上角,请给出触摸屏输出坐标的转换公式,对触摸屏的分辨率有什么影响。

5.S3C44B0X 内部 LCD 控制器支持 RGB像数点字节的数据格式?

6.S3C44B0X的 UART 接口具有哪些功能特性? 232 串行通讯的数据格式是什么?

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

120

思考题Ⅱ

7.假设要将 S3C44B0X的 UART1 设置为:波特率 9600b/s, 7 位数据位, 2 个停止位, 1位奇偶校验位,并采用流控制工作,该如何设置?给出完成该设置功能的代码段。

8.CAN总线通讯最少需要几根线?如果多个节点应该如何连接?

9. 用中断方式实现MCP2510 的驱动。10.3C44B0X的 A/D 转换器的类型是什么?共具有几路 ?与 ADC 相关的寄存器由哪些?他们的作用分别是什么?

11.DS7843 的控制字是什么?各位代表的意义?

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

121

思考题Ⅲ

12.D/A 转换器的分类。13.D/A 转换器的主要技术指标。14.MAX504 的特点及使用方法。15.A/ D 转换器分为哪儿类 ?各有什么优缺点 ?16.什么是 JTAG? 它有哪些特点 ?