微机原理与接口技术 第五章 ARM 接口设计技术

35
微微微微微微微微微 第第第 ARM 第第第第第第 第第第 第第第第 第第第第第第第第第第

description

主讲人:鞠 雷 山东大学 计算机科学与技术学院. 微机原理与接口技术 第五章 ARM 接口设计技术.  内容提要. 通用并行接口 GPIO. 键盘接口. LED 显示器. 通讯与中断接口. A/D 和 D/A 转换器接口. 2. 芯片 S3C44B0X. S3C44B0X 是基于 ARM7TDMI 的体系结构,是 ARM 公司最早为业界普遍认可并且赢得最广泛应用的处理核。. 3. 芯片 S3C44B0X Ⅰ/ 芯片体系结构. 7 个多功能并行接口 A--G. 2 个异步串行接口 通用异步收发器 0/1. - PowerPoint PPT Presentation

Transcript of 微机原理与接口技术 第五章 ARM 接口设计技术

Page 1: 微机原理与接口技术 第五章   ARM 接口设计技术

微机原理与接口技术第五章 ARM接口设计技术

主讲人:鞠 雷

山东大学 计算机科学与技术学院

Page 2: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

22

 内容提要

A/D 和 D/A 转换器接口

通讯与中断接口

LED 显示器

键盘接口

通用并行接口 GPIO

Page 3: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

33

芯片 S3C44B0X

S3C44B0X是基于 ARM7TDMI的体系结构 , 是ARM公司最早为业界普遍认可并且赢得最广泛应用的处理核。

Page 4: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

4

芯片 S3C44B0X /Ⅰ 芯片体系结构7 个多功能并行接口 A--G

2 个异步串行接口 通用异步收发器 0/1

中断控制接口,管理 30个中断源( 26 个中断向量)。

LCD 液晶显示器接口,连接LCD 显示器。

8 路 A/D 转换接口

Page 5: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

5

ARM系统硬件体系结构 P260

5

基于 ARM 架构的 32 位微处理器 Sam sung

S3C44B0X

LCD 显示

USB 接口 USBN9603

两个 RS-232 串行通信接口

JTAG 调试端口

TCP/IP 协议

CAN BUS

键盘输入

16MB 非线性Flash( 硬盘 )

8MBSDRM( 系统内存 )

1MB 线性Flash(BIOS)

存储器 : 1 1M flash 存储器 , 保存基本输入输出系统 . 2 8M 静态随机存储器 . 3 16M 非线性 (NAND) Flash 硬盘

外设 : LCD 显示器,连接 LCD 接口。点阵: 640X480 , 320X240 , 160X160 。

扩充键盘接口 :硬件实现: 采用 zlg7289 实现键盘扫描。软件实现:以内部接口和软件实现。

扩充网络接口 :RT8019 以太网控制器, IEEE802.3 协议, 10M 同轴电缆。

扩充网络接口 :CAN BUS , Area Network controller ,现场总线,用于工业控制, 1M/1KM 。

UART 串口电平转换 :0v ------ +3v~12v5v ------ -3v~-12v

Page 6: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

6

S3C44B0X具有 71个通用多功能输入输出引脚,构成了 7 个 I/O接口: 一个 10位的输出接口( A ) 一个 11位的输出接口( B ) 一个 16位的输入 / 输出接口( C ) 两个 8 位的输入 / 输出接口( D 和 G ) 两个 9 位的输入 / 输出接口( E 和 F ) 特点:1 、每个接口含有 1 或两个控制端口和一个数据端口。其

中 A 、 B 口含有一个控制口和一个数据口, C 、 D 、 E、 F 和 G 口又增加一个上拉电阻配置口(控制口)。

2 、 ARM系统完成 I/O功能的方法是使用使用特定的存储器地址映射 I/O地址。

6

Page 7: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

7

44B.H中 gpio寄存器定义 ( 一般了解 )#define rPCONA (*(volatile unsigned *)0x1d20000);#define rPDATA (*(volatile unsigned *)0x1d20004);

#define rPCONB (*(volatile unsigned *)0x1d20008)#define rPDATB (*(volatile unsigned *)0x1d2000c)

#define rPCONC (*(volatile unsigned *)0x1d20010)#define rPDATC (*(volatile unsigned *)0x1d20014)#define rPUPC (*(volatile unsigned *)0x1d20018)

#define rPCOND (*(volatile unsigned *)0x1d2001c)#define rPDATD (*(volatile unsigned *)0x1d20020)#define rPUPD (*(volatile unsigned *)0x1d20024)

Page 8: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

8

( 一般了解 )#define rPCONE (*(volatile unsigned *)0x1d20028)#define rPDATE (*(volatile unsigned *)0x1d2002c)#define rPUPE (*(volatile unsigned *)0x1d20030)

#define rPCONF (*(volatile unsigned *)0x1d20034)#define rPDATF (*(volatile unsigned *)0x1d20038)#define rPUPF (*(volatile unsigned *)0x1d2003c)

#define rPCONG(*(volatile unsigned *)0x1d20040)#define rPDATG (*(volatile unsigned *)0x1d20044)#define rPUPG (*(volatile unsigned *)0x1d20048)

Page 9: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

99

 内容提要

A/D 和 D/A 转换器接口

通讯与中断接口

LCD 显示器与触摸屏接口(了解)

LED 显示器

键盘接口

ARM 的 JTAG 接口

Page 10: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

10

键盘接口键盘有两种方案: 1 、采用芯片实现键盘扫描; zlg7289 2 、用软件实现键盘扫描。嵌入式控制器的功能很强,可允分利用这一资源。

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

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

10

内含两个金属片和一个复位弹簧,按下时,两个金属片便被压在一起。结构简单成本低,缺点是容易产生抖动。

压键时,可活动的金属片向两块固定的金属片靠近,从而改变了两块固定的金属片之间的电容。此时,检测电容变化的电路就会产生一个逻辑电

平信号以表示该键已被按下。

这是一种特殊的机械式按键开关,由三层塑料或橡胶夹层结构构成。 上面一层在每一行键下面有一条印制银导线,中间层在每个键下面有一个小园孔,下面一层在每一列键下面也有一条印制银导线。压键时将上面一层的印制银导线压过中层的小孔与下面一层的印制银导线接触。

霍耳效应按键利用活动电荷在磁场中的偏转效果。 压键时,晶体便在磁力线垂直于参考电流方向的磁场中移动。晶体在磁场中移动会在晶体另外两个相对的表面之间产生一个小电压,该电压经过放大之后用来表示键已被压下。 晶体切割磁力线感生电压。

Page 11: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

11

用 ARM芯片实现键盘接口 与 4X4 的矩阵键盘接口,采用 “行扫描法”方法来检测

键盘,只需要 8 根口线 . 选取 PF 口作为检测键盘用端口,设定 PF0 –PF3 为输出

扫描码的端口, PF4--PF7 为键值读入口。

11

PF0

PF1

PF2

PF3

S3C44B0X

PF4

PF5

PF6

PF7

+5V

输出扫描码端口

键值读入口

外接上拉电阻

Page 12: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

12

矩阵键盘按键的识别方法① 识别键盘是否有键按下: 让所有行线均为低电平,检查各列线电平是否为低,如果有列线为低,则说明该列有键被按下,否则说明无键被按下。

rPDATF=0xf0; 输出全 0 值②若有键按下,则识别哪行的键被按下:逐行置低电平,并置其余各行为高电平,检查各列线电平的变化,如果列电平变为低电平,则可确定此行此列交叉点处按键被按下。

行扫描码 0xfe 0xfd 0xfb 0xf7

12

Page 13: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

13

键值与行扫描码、列输入值间的关系

由行扫描码、列输入值求行号、列号: 行扫描码右移直到最低位是零,次低位是 1 ,移位次数就是行号。 列输入值先右移 4 次再按行扫描码处理。

1列

2列

3列

PF7

PF3

Page 14: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

14

行扫描法识别矩阵键盘按键

14

PF0

PF1

PF2

PF3

S3C44B0X

PF4

PF5

PF6

PF7

+5V

某一按键按下

所有的行线为低电

平逐行为低电平

Page 15: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

15

编写键盘扫描程序

15

开始开始

初始化键值为 -1初始化键值为 -1

PF0-3 输出全 0PF0-3 输出全 0

PF4-7 读入为全 1 ?PF4-7 读入为全 1 ?

PF0-3 输出扫描码PF0-3 输出扫描码

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

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

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

返回键值返回键值

NY

Y

N

Page 16: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

16

寄存器设置设置 PCONF寄存器 PF 口的有 3 个端口: 控制口 PCONF ,用于设置接口的功能。 数据口 PDATF ,用于输入、输出数据。 上拉电阻配置口 PUPF ,用于使能上拉电阻。

设定 PF0-3为输出口, PF4 - 7为输入口,在端口工作之前设置

1 、 rPCONF = 000 000 000 00 01 01 01 01 B

PF4-7为输入 PF0-3为输出16

Page 17: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

17

Page 18: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

18

寄存器设置2 、设置 PDATF寄存器

PF0-3 作为输出口输出扫描码时,采用语句 : rPDATF=Oxf0 //PF0-3 全写入 0

PF4-7 作为输入口读入键值时,采用语句 : Keyval= ( rPDATF&0xf0 ) >>4;

3 、设置 PUPF寄存器 设置内部上拉电阻的语句为 : rPUPF=0x00; // 使能 PF0-7 的内部上拉电

18

Page 19: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

19

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

3 个—— PCONF ,PDATF(PF 口数据寄存器 ) 和PUPF( 口上拉电阻寄存器 )

19

PDATF 位 描述

PF[8:0] [8: 0]

当端口设定为输入口时,这个寄存器的相应位就对应着引脚的状态 ;当端口设定为输出口时,输出引脚的状态与该寄存器的相应位相同 ;当端口设定为多功能口时, PDATF中的内容无效

PUPF 位 描述

PF[8:0] [8:0]0 :相应位的上拉电阻使能1 :相应位的上拉电阻禁止

Page 20: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

20

键盘扫描子程序代码如下:返回的是各键的键值: 0 – F。#include <string.h>#include <stdio.h>char ReadKeyVal(void){ unsigned char i,j,H_val,L_val; char keyval= -1; rPCONF = 0x55; rPUPF=0xff;上拉电阻禁止 rPDATF=0xf0;输出全 0值,判是否有键按下

Page 21: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

21

if((L_val=(rPDATF&0xf0))!=0xf0) {

H_val=0xfe; // 0xfe , 0xfd 0xfb 0xf7对应于第0 、 1 、 2 、 3 行键for(i=0;i<4;i++){

rPDATF=H_val;输出扫描码 for(j=0;j<100;j++);延时 if((L_val=(rPDATF&0xf0))!=0xf0)//输入列数据不全为 1

{ L_val=( (L_val>>4))|0xf0;循环右移 4 次

Keyval =get_val(H_val)× 4 + get_val(L_val); return keyval;

} else

H_val = H_val <<1; // H_val 行无键按下,此行输出 0 不影响 H_val+1 行。

} } return keyval;}

Page 22: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

22

//get_val子函数是由行扫描值、读取的列值分别得到行号、列号。

char get_val(unsigned char val){

unsigned char i,x;x=0;for(i=0;i<4;i++){

if((~val)==1) return x;//取反val = (val>>1)|0x80 ;//负数算数右移x = x+1 ;

}}

Page 23: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

2323

 内容提要

A/D 和 D/A 转换器接口

通讯与中断接口

LCD 显示器与触摸屏接口(了解)

LED 显示器

键盘接口

ARM 的 JTAG 接口

Page 24: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

24

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

管 , 在专用的微型计算机系统中 ,特别是在嵌入式控制系统中 , 应用非常普遍 .

价格低廉、体积小、功耗低,而可靠性又很好从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用 LED 作为输出显示

24

Page 25: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组LED优缺点(百度百科)优点

体积小,轻 耗电量低(相同照明效果比传统光源节能近 80% ) 使用寿命长(比传统光源寿命长 10 倍以上) 高亮度、低热量(冷光灯) 环保(不含水银,光谱中不含紫外线和红外线,安

全触摸等) 坚固耐用 多变幻 技术先进(融合了计算机技术、网络通信技术、图

像处理技术、嵌入式控制技术等,具有在线编程、无限升级、灵活多变的特点。)

25

Page 26: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组LED优缺点(百度百科)缺点

近日由美国加州大学艾尔文分校进行的一项调查却显示, LED 灯中包含有锑、砷、铬、铅以及其他多种金属元素。其中,部分 LED 灯的有毒元素含量已经超过了监管部门制定的标准。比如在低亮度红色LED 灯中,研究人员发现其铅含量超标达到 8 倍,镍含量也超标 2.5 倍。

实际上在美国加州法律中,绝大多数 LED 灯都已经被明确定义为有毒垃圾,如果使用普通填埋的办法处理将会污染土壤和地下水。而如果 LED 灯破碎,还可能会对直接接触的人体健康造成损害。但至今,无论各国政府还是民众都对 LED 灯的环境和健康危险知之甚少。

26

Page 27: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组LED优缺点(百度百科)缺点

LED需要由于单个发光面比较窄,通常大规模集成在线路板上,形成一个比较大的发光源,由此会造成大量热量积累,有时会击穿电路板。所以 LED 灯的散热一定要好。

人眼最不能接受的是蓝光和 UV 光 ( 即紫外线光 ) ,蓝光杀伤人眼活性细胞的能力是绿光的 10 倍,而 UV光杀伤人眼活性细胞的能力又是蓝光的 10 倍,长期接触大量低波长的蓝光能大量杀伤人眼活性细胞,最终癌化形成斑块。而 LED白光形成主要是靠 450-455NM波长蓝光激发荧光粉,属于伤害最强的区段

易出现「黄圈」问题

27

Page 28: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

28

LED 的工作原理

28

7 个字段分别称为a 、 b 、 c 、 d 、 e 、 f 、 g 段,有时还有一个小数点段 DP。

通过 7 个发光段的不同组合,可以显示 0 到 9和 A 到 F 共 16个字母数字 ,�从而实现十六进制的显示

阴极控制端

Page 29: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

29

7 段字型码

Page 30: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

30

电路原理动态显示:1 、译码,待显示数字转换成7 段代码。2 、位控端口输出位码,每次控制显示一位,从而实现数

据的动态显示。 位码:

0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01

3 、段控端口输出欲显示数字的 7段代码。译码: 将一个 4位二进制数 (可能为十六进制数或 BCD 码 )译为 LED 的 7段字形码。

采用两种方法:1 、 采用专用芯片 ,实现对 BCD 码的译码( 7447 )2 、软件译码法:在软件设计时 ,将 0 到 F 共 16个数字 (或者 0 到 9) 对应的显示代码组成一个表 , 查表译码。

30

Page 31: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

31

用 ARM芯片实现 LED显示接口

31

接口电路 +5V

位驱动

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

abcdefgDP

PF0

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

ULN2803A

段驱动

PF7

PG0

.

.

.

.

.

.

PG7

第5位 第6位 第7位

结构特点:

8位 LED 的各段并联,任一时刻只能显示一位。 PG 口输出只能一位为 1 。

PF 口输出共阳极 LED 的字型码。

Page 32: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

32

7 段数码 LED编程(初始化)

设置 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;

设置 PUPF、 PUPG寄存器 rPUPF=0x00; // 使能 PF0-7 的内部上拉电

阻 rPUPG=0x00; // 使能 PG0-7 的内部上拉电

阻32

在端口工作之前设置为输出端口。

设置内部上拉电阻。

Page 33: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

33

流程图

33

指向缓冲区首址指向缓冲区首址

取显示位指针取显示位指针

取要显示的数取要显示的数

将数变为段码将数变为段码

段码送到段控制通道段码送到段控制通道

位码送到位控制通道位码送到位控制通道

延迟一段时间延迟一段时间

是否最后一位是否最后一位

退出退出

修改缓冲区指针和位码修改缓冲区指

针和位码

Y

N

指向第 7位

Page 34: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

34

void DisplayLedl(unsigned char dis_8_num[]){ unsigned char led_dis[]

={0xC0 , 0xF9 , 0xA4 , 0xB0,0x99 , 0x92 ,0x82 , 0xF8, 0x80,0x90 , 0x88 , 0x83,0xC6 , 0xA1 , 0x86 , 0x8E , 0x8C};

unsigned char i, j, D_val (段码) , B_val (位码) ; rPCONF = 0x12555 ; rPCONG = 0x5555; rPUPF=0x00; B_val = 0x80;

34

0 ~ F及小数位段码表

将端口设置为输出端口

使能 PG 和 PF内部上拉电阻

保存待显示数字的数组。

先显示最右侧的位

Page 35: 微机原理与接口技术 第五章   ARM 接口设计技术

嵌入式系统学科组

35

B_val = 0x80; //首先显示第七位 for(i=0;i<8;i++)

{ D_val = dis_8_num[i]; rPDATF = led_dis[D_val]; rPDATG = B_val; for(j=0;j<100;j++); B_val = B_VAL >> 1; 显示下一位 }

}

35

取出待显示字符。

延迟一段时间

转换成七段字型码送 F 口。

函数调用: unsigned char num[] ={1,2,3,a,f,7,8,0}; DisplayLedl(num[])

位控信号送 G口。