单片机以太网控制芯片W7100A数据手册(二)
0赞昨天给大家介绍了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寄存器的对应位配置其优先级。
所有产生中断的位可以由软件设置或清除。与硬件产生的结果相同,也就是说中断可以由软件产生或清除。
感谢关注!