单片机以太网控制芯片W7100A用户手册(二)

Home / 博客 / 单片机以太网控制芯片W7100A用户手册(二)

昨天给大家介绍了W7100A结构以及存储器的部分,今天继续介绍有关中断、I/O端口及定时器的部分。

3.   中断

中断引脚的功能在下表中介绍,所有引脚都是单向的。没有三态信号。

表3.1 外部中断引脚描述

W7100A内核由两级中断优先级控制,通过设置或清除对应的IP(0xB8)和EIP(0xF8)寄存器的中断优先级位,每一个外部中断可以设置为高优先级或低优先级。外部中断引脚可以是下降沿触发或低电平触发。中断请求在系统时钟的上升沿采样。

表3.2 W7100A中断总结

通过改变IE(0xA8)和EIE(0xE8)对应位的值,每个中断向量都可以独立打开或关闭。IE寄存器包括一个中断总开关EA位,可以禁止(设置为0)和开启中断(设置为1)所有中断。

IE(0xA8)

图3.1 中断使能寄存器

注意:

EA  – 总中断使能

EX0 – INT0中断使能

ET0 – Timer0中断使能

EX1 – INT1中断使能

ET1 – Timer1中断使能

ES  – UART中断使能

ET2 – Timer2中断使能

所有这些可以产生中断的位可以通过软件设置或清除,其结果与硬件中断相同。因此中断可以由软件产生或消除。唯一例外的是IE0和IE1的中断请求标志位。如果外部中断0和中断1编程设置为电平触发,IE0和IE1分别由外部引脚nINT0/FA6和nINT1/FA7控制。

IP(0xB8)

图3.2 中断优先级寄存器

注意:

PX0 – INT0中断优先级控制 (1是最高级)

PT0 – Timer0中断优先级控制 (1是最高级)

PX1 – INT1中断优先级控制 (1是最高级)

PT1 – Timer1中断优先级控制(1是最高级)

PS  – UART中断优先级控制(1是最高级)

PT2 – Timer2中断优先级控制(1是最高级)

没有定义的位读出的值为”0”或”1”

TCON(0x88)

图3.3 Timer0,1配置寄存器

注意:

IT0 – INT0电平(0)/边沿(1)触发控制

IT1 – INT1电平(0)/边沿(1)触发控制

IE0 –当处理器跳转到中断服务程序时,INT0中断标志由硬件清除

IE1 –当处理器跳转到中断服务程序时,INT1中断标志由硬件清除

TF0 – Timer0中断溢出标志,当处理器跳转到中断服务程序时由硬件清除。

TF1 –Timer1中断溢出标志,当处理器跳转到中断服务程序时由硬件清除。

SCON(0x98)

图3.4 配置寄存器

注意:

RI – UART接收中断标志

TI – UART发送中断标志

EIE(0xE8)

 

图3.5 扩展的中断允许寄存器

注意:

EINT2 – INT2中断允许位

EINT3 – INT3中断允许位

EINT4 – 如果用EIE,该位为”0”

EINT5 – TCP/IP内核中断启动位

EWDI – 看门狗定时器中断允许位

EIP(0xF8)

图3.6 扩展的中断优先级寄存器

注意:

PINT2 – INT2中断优先级控制(1是最高级)

PINT3 – INT3中断优先级控制(1是最高级)

PINT4 – 如果用EIP寄存器,该位为”0”

PINT5 – TCPIP核中断优先级控制(1是最高级)

PWDI – 看门狗定时器中断优先级控制(1是最高级)

EIF(0x91)

图3.7 扩展的中断标志寄存器

注意:

INT2F – INT2中断标志.必须软件清零

INT3F – INT3中断标志.必须软件清零

INT4F – 如果用ELF寄存器的话,必须设置成”0”

INT5F – TCPIP内核中断标志.必须软件清零

WDCON(0xD8)

图3.8 看门狗控制寄存器

注意:

WDIF – 看门狗中断标志. WDIF与看门狗中断允许位(EIE.4)关联,而EWT提供看门狗定时器事件已经产生、或应该采取什么行动等信息。在退出中断服务程序前应该由软件清除这个标志位,否则将产生另外一次中断。通过软件设置WDIF使能,将产生看门狗中断。因此使能WDIF可以产生看门狗中断。定时访问寄存器可以修复该位。

4. I/O端口

根据SFR寄存器的设置,W7100A的GPIO有三种模式:’上拉’,’下拉’和’保持’。

‘Keep’模式通过同时设置上拉和下拉寄存器来实现。

GPIO在’Keep’工作模式下保持之前的值。

I/O口的功能描述如下表。

表4.1 I/O口引脚功能

对I/O端口的读写操作都是通过对应的特殊功能寄存器(SFR的P0(0x80),P1(0x90),P2(0xA0),P3(0xB0))来实现的。有些读端口指令从寄存器读取数据,而有些从端口引脚读取数据。”读-修改-写”指令是直接操作寄存器,如下表所示。

表4.2 读-修改-写指令

所有其它读端口的指令都是读端口引脚。所有端口引脚都可以作为GPIO(通用输入/输出)。W7100A的GPIO如下图所示。GPIO的输出驱动根据Px的上拉或下拉SFR的值应该是0V或3.3V

P0_PD(0xE3):GPIO0下拉电阻寄存器, 相应引脚为1表示下拉。

P0_PD(0xE3)

5.   定时器

W7100A包含两个16位的定时器/计数器,Timer0和Timer1。在定时器模式,定时器寄存器以每12个时钟周期的周期递增。在计数器模式下,定时器寄存器在相对应引脚(T0或T1)的下降沿递增。输入引脚在每一个CLK周期都采样。

5.1         Timers0,1

5.1.1   概述

Timer0,1的引脚功能描述如下,所有的引脚都是单向的。这些引脚没有三态输出和内部信号。

表5.1 Timers0,1引脚描述

Timer0和Timer1与标准8051的定时器完全兼容。每一个定时器包括2个8位的寄存器:TH0(0x8C)和TL0(0x8A),TH1(0x8D)和TL1(0x8B)。定时器有四种工作模式,描述如下。

注意:

GATE – 选通控制

1: 当GATEx引脚为高电平且TRx控制位为”1”时,Timer x 允许工作。

0: 当TRx置”1”时,Timer x允许工作

CT – 定时器/计数器选择位

1: 计数器模式,Timer x的时钟源来自Tx引脚

0: 定时器模式,使用内部时钟

M1, M0 – 模式选择位

TCON(0x88)

图5.2 Timer0,1配置寄存器

注意:

TR0 – Timer0运行控制位

1: 使能

0: 禁止

TR1 – Timer 1运行控制位

1: 使能

0: 禁止

外部输入引脚GATE0和GATE1可通过编程设置,实现脉冲宽度测量的功能。

5.1.1   中断

与Timer0,1中断相关的位如下。通过IE寄存器可以产生一个中断,中断优先级可以通过IP寄存器进行配置。

IE(0xA8)

图5.2 Timer0,1配置寄存器

注意:

TR0 – Timer0运行控制位

1: 使能

0: 禁止

TR1 – Timer 1运行控制位

1: 使能

0: 禁止

外部输入引脚GATE0和GATE1可通过编程设置,实现脉冲宽度测量的功能。

5.1.2   中断

与Timer0,1中断相关的位如下。通过IE寄存器可以产生一个中断,中断优先级可以通过IP寄存器进行配置。

IE(0xA8)

图5.3 中断允许寄存器

注意:

EA – 总中断启动位

ET0 –Timer0中断启动位

ET1- Timer1中断启动位

IP(0xB8)

图5.4 中断优先级寄存器

注意:

PT0 – 允许Timer0中断优先

PT1 – 允许Timer1中断优先

未使用的位读出为”0”或”1” 

TCON(0x88)

5.1.3   Timer0 – 模式0

Timer0寄存器为13位的寄存器(8位:计时器,5位:预分频器)。当计数器的值(所有有效位)从1翻转位0时,Timer0的中断标志位TF0置”1”。当TCON.4=1且TMOD.3=0或GATE0=1时,定时器开始计数。通过设置TMOD.3=1,外部计数输入GATE0可以控制定时器0,进行脉冲宽度的计量。13位寄存器由8位TH0和5位TL0组成。TL0的高3位忽略。如下图所示:

5.1.4   Timer0 – 模式1

模式1和模式0相同,只是定时器是16位,模式1如下图所示:

5.1.5   Timer0 – 模式2

模式2的定时寄存器是8位的TL0,带自动重装功能,如下图所示,当TL0溢出时,它将TF0置”1”,并将TH0的值装载到TL0。TH0在装载完成后保持不变。

5.1.6   Timer0 – 模式3

在这种模式下,TL0和TH0被分为两个独立的计数器。Timer0运行在模式3下的逻辑关系如下图所示。TL0使用定时器0的控制位:C/T、GATE、TR0、GATE0和TF0。TH0锁定为定时器功能,使用定时器1的TR1和TF1,并控制Timer1的中断。模式3用于需要特别的8位定时器/计数器的应用中。如果Timer0工作在模式3,通过切换位模式3,Timer1可开启或关闭,或作为串口通道的波特率发生器,或在某些应用中,不需要Timer1的中断。

5.1.7   Timer1 – 模式0

在这种模式下,Timer1寄存器为13位寄存器(8位:计时器,5位:计数器)。当所有的有效位从”1”翻转为”0”时,Timer1中断标志TF1置”1”。当TCON.6=1且TMOD.6=0或GATE1=1(设置TMOD.7=1,允许Timer1受外部输入信号GATE1的控制,该功能可用于脉冲宽度测量)时,开始对外部输入计数。13位寄存器由8位TH1和TL1的低5位组成。TL1的高3位未定义,可以忽略。详细过程如下图所示。

5.1.8   Timer1 – 模式1

模式1与模式0相同,只是定时器是全部16位。模式1如下图所示

图5.11 Timer/Counter1,模式1:16位定时器/计数器

5.1.9   Timer1 – 模式2

模式2配置为8位TL1定时器,带自动装载功能,如下图所示。只有TL1的溢出将置TF1标志位,但TH1的值将自动装载到TL1,装载后TH1的值保持不变。

5.1.10   Timer1 – 模式3

Timer1的模式3保持计数功能。其影响将与TR1=0的设置相同,因为它用于Timer0的模式3。详细内容请参考5.1.6’Timer0模式3’。

5.2         Timer2

5.2.1   综述

引脚的功能描述如下表所示。所有的引脚都是单向的,这些引脚没有三态输出和内部信号。

表5.4 Timer2引脚描述

W7100A的Timer2与标准8051的Timer2是完全兼容的。有5个特殊功能寄存器用于Timer2的操作控制,TH2/TL2(0xCD/0xCC)计数寄存器,RLDH/RLDL(0xCB/oxCA)捕获寄存器和T2CON(0xC8)控制寄存器。Timer2有3种工作模式,由T2CON的位进行选择,如下表所示。

注意:

EXF2 – 当EXEN2=1时,表示T2EX输入有下降沿的信号。必须由软件清零。

RCLK – 接收时钟使能位

0: Timer1的溢出脉冲作为UART的接收器时钟

1: Timer2的溢出脉冲作为UART的接收器时钟

TCLK – 发送时钟使能位

0: Timer1的溢出脉冲作为UART的发送器时钟

1: Timer2的溢出脉冲作为UART的发送器时钟

EXEN2 – T2EX引脚功能允许位

0: 忽略T2EX事件

1: T2EX引脚的下降沿允许捕获或重装载

TR2 –启动/停止Timer2

0:停止

1:启动

CT2 – 定时器/计数器选择

0:内部时钟定时器

1:外部事件计数器,时钟源由T2引脚输入

CPRL2 – 捕获/重载选择

0:当Timer2溢出,或在EXEX2=1且T2EX引脚出现下降沿输入时,产生自动重载。当RCLK或TCLK置位,忽略该位,并在Timer2溢出时自动重载。

1: 当EXEN2=1时,T2EX引脚出现下降沿输入时激活捕获功能。

 

5.2.2   中断

 

Timer2的中断如下。中断可以由IE寄存器的对应位触发,由IP寄存器的对应位配置其优先级。

所有产生中断的位可以由软件设置或清除。与硬件产生的结果相同,也就是说中断可以由软件产生或清除。

感谢关注!

相关内容:  单片机以太网控制芯片W7100A用户手册(一)