W7100A iMCU是一个单片机以太网嵌入式控制芯片,它的的结构是:内嵌8051单片机 + TCP/IP协议栈 + 10/100 高速以太网络MAC/PHY
W7100A 是 W7100 的升级版。它增加了一些新功能,如记忆锁定功能(Memory Lock)、休眠模式、最高支持16M字节外部存储空间、特别功能寄存器(SFR)和GPIO上拉/下拉的控制(Pull-Up/Down Control)。另有64QFN封装可供小型嵌入式装置使用.
今天给大家介绍一下W7100A的结构以及存储器的部分。
概述
1.1
iMCU W7100A是一个集合了8051兼容微处理器内核,64K的SRAM以及高性能的硬件的TCP/IP协议栈内核的单片式以太网解决方案, 具有很高的表现能力、执行能力,以及易移植、易开发等特点。
W7100A网络单片机的TCP/IP内核是一个久经市场考验的全硬件TCP/IP协议栈,其集成了以太网的MAC和PHY。硬件的TCP/IP协议栈支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE,并且已经在多年的众多应用中得以证明,成为了一项非常成熟的技术。
1.2 W7100A的特点
• 与标准8051微处理器完全兼容
• 运行速度比标准8051快4~5倍
• 内嵌10/100Mbps以太网物理层
• 设休眠模式以减低功耗
• 全硬件TCP/IP协议栈: TCP、UDP、IPv4、ICMP、ARP、IGMP、PPPoE和Ethernet
• 支持自动握手(全双工/半双工模式)及自动极性变换(MDI/MDIX)
• 支持ADSL连接 (支持与PAP/CHAP验证模式下的PPPOE协议)
• 支持8个独立SOCKET同时通讯
• 32K字节高速内部TCP/IP数据处理缓存
• 多功能LED信号输出(TX、RX、全双工/半双工,IP冲突、连接及速度等指示)
• 不支持IP分段
• 双数据指针(DPTR),可用于快速存储器块访问
○先进的INC和DEC模式
○ 自动切换当前DPTR
• 64K字节内部RAM
• 255字节内部数据Flash、64K字节内部程序Flash、2K字节内部Boot ROM
• 最高支持16M字节外部存储空间
• 中断控制器
○ 2个优先级別
○ 4个外部中断
○ 1个看门狗中断
• 4个8位I/O口
• 3个定时/计数器s
• 1个全双工UART
• 可编程看门狗定时器
• 提供DoCD™调试单元
• 高耐产品
○ 至少100,000次程序读写周期
○ 至少10年的数据储存能力
1.3
图1.1显示W7100A的内部结构图,如下说明了详细的结构功能:
ALU
SFR
1.3.1
W7100A是与标准的8051单片机兼容的,并维持所有指令助记符和二进制的兼容性。W7100A结合了许多良好的设计,从而增强功能,使得W7100A的单片机能够高速地执行指令。
在W7100A单片机里的ALU负责执行大量的数据操作。它是由一个8位的算术逻辑单元(ALU)、一个ACC(0XE0)寄存器、一个B(0xF0)寄存器和PSW(0xD0)寄存器所组合而成。
ACC(0xE0)
图1.2 累加器ACC寄存器
B(0xF0)
图1.3 B寄存器
ALU主要负责算术运算,如加法、减法、乘和法除法运算,还进行其它操作,如递增、递减、BCD十进制加调整和比较。逻辑单元利用"AND"、"OR"、"Exclusive OR"、"Complement"或"Rotation"来进行不同的操作。布尔处理器主要负责"位"的操作,如"set"、"clear"、"complement"、"jump-if-not-set"、"jump-if-set-and-clear"和 "move to/from carry"。
PSW(0xD0)
图1.4 程序状态字寄存器
图1.5 PSW寄存器
PSW寄存器包含的位,可以反映出MCU的当前运行状态。
1.3.2
图1.6 TCPIP内核结构图
以太网物理层(PHY)
W7100A包含了一个10BaseT/100BaseTX的以太网物理层。它支持全双工/半双工模式、自动握手和动极性变换(MDI/MDIX)。它还支持6个网络指示信号灯,如传送、接收、全双工/半双工模式、网络沖突、网络连接和网络速度。
TCPIP引擎
TCPIP引擎是基于WIZnet技术的硬件逻辑网络协议。
- 802.3 Ethernet MAC (以太网介质访问控制)
它控制以太网CSMA/CD(载波监听、多点接入、冲突检测)的访问。这协议是以48位源/目的MAC地址为基础。
- PPPoE (以太网上的点对点协议)
这实现在以太网上的点对点服务的协议技术。在传输时,它把有效载荷(点对点数据帧)封装在以太网帧内,然後在接收时把点对点帧解开。 PPPoE支持与PPPoE服务器以及PAP//CHAP认证进行点对点通信。
- ARP (地址解析协议)
ARP是一种以通过使用IP地址来解析MAC地址的协议。它与对端交换ARP应答和ARP请求,来确定互相的MAC地址。
- IP (互联网协议)
该协议应用于IP层以提供数据通信。因它并不支持IP分段,所以是不可能接收分段的数据包。除TCP或UDP外,支持其他所有的协议名。而在TCP或UDP的模式下,会使用硬件TCPIP协议栈。
- ICMP (互联网控制信息协议)
ICMP提供互联网控制信息,如无法到达目的地等。当接收到一个PING请求的ICMP数据包时,一个PING答复的ICMP数据包就被发送。
- IGMPv1/v2 (互联网分组管理协议 - 版本1/2)
该协议处理IGMP的信息,如加入/离开分组等。IGMP只在UDP多播模式下生效。它只支持IGMP版本1和2的逻辑,当使用较新版本的IGMP时,需要以手动方式在IP层实现。
- UDP(用户报文协议)
该协议支持在UDP层的数据通信,还支持如单播、多播和广播等的用户报文。
- TCP(传输控制协议)
该协议应用于TCP层以提供数据通信。它能支持TCP服务器和TCP客户端模式。
1.4.1
封装类型: LQFP 100
图1.7 W7100A - LQFP100引脚分布
封装类型: QFN 64
图1.8 W7100A - QFN64引脚分配
1.4.2
下表描述了引脚的功能。所有引脚都是單向的,没有三态输出引脚和内部信号。
1.4.1 配置
1.4.2 定时器
1.4.3
1.4.4
1.4.5
1.4.6
注:用户可以通过PxPU/PxPD SFR控制GPIO I/O的驱动电压。
注:在这种情况下,GPIO 0~3可用于传输外部存储地址和数据。有关详情请参考2.3"外部数据存储器访问"。[page]
1.4.7
注:当用户利用标准的8051接口使用外部存储器时,用户可以利用ALE引脚控制,在P0[7:0]传输数据[7:0]或地址[7:0]。
1.4.8
为了获得最佳性能,
1.尽可能使RXIP/RXIN信号对的长度(RX)相等。
2.尽可能使TXOP/TXON信号对(TX)的长度相等。
3.尽可能使RXIP和RXIN的信号靠近。
4.尽可能使TXOP和TXON的信号靠近。
5.尽可能使RX和TX的信号对远离一些如偏置电阻或晶振的噪声信号。
6.使TX/RX的信号对保持正常。
欲了解更多详情,请参阅”W5100 Layout Guide.pdf.”
1.4.9
1.4.10
1.5 64引脚封装说明
1.5.1
注:在64引脚封装的情况下,PHY模式必须由PHYCONF SFR设置。因此,用户必须设置MODE_EN位以启动MODE2~0位的配置。然后设置MODE2~0的值和控制PHY_RSTn位以至PHY复位。复位后,64引脚封装的芯片将被初始化和正常运作。当用户使用64引脚封装芯片时,下面的代码必须在芯片初始化程序中执行。
如需了解更多详细PHYCONF SFR的资讯,请参阅第2.5.10"新的和扩展的SFR"。
W7100A的存储器分为两种类型:“代码存储器”和“数据存储器”。每个存储器可以使用内存锁定功能。如果存储器被锁定,从外部访问内部存储器将会被拒绝,也不能使用W7100A的调试器。如需详细地了解更多有关内存锁定功能的资讯,请参阅"WizISP程序指南"。
图2.1展示了W7100A存储器的大致结构。
图2.1 代码/数据存储器连接
注意:
我们推荐使用一个外部低压电源探测器以预防电源电压供给不足时的系统故障。
這將有效避免数据flash和代码flash数据丢失,SPAM数据丢失和CPU寄存器数据丢失。
请参考WIZnet网站上的iMCU W7100A的电路图
(集成电路例如:MAX811,MIC811,DS1811)
2.1 程序存储器
“程序存储器”包括从0x0000到0x07FF的启动ROM和从0x0000到0xFFFF的用户代码flash。系统重启之后,W7100A通常执行”程序存储器”中的启动代码。根据BOOTEN引脚(高低电平的不同),所执行的启动代码也不同。图2.2显示了启动代码的流程。启动之后,根据BOOTEN的电平,系统执行ISP进程或APP入口程序。当选择了ISP进程后(BOOTEN=1),启动ROM中的ISP代码将会运行,否则(BOOTEN=0),系统跳到APP入口处而不执行ISP程序。
ISP程序用于WizISP编程(当用户往代码FLASH中写代码时)。APP入口用于运行用户的应用程序代码。APP入口包括”存储映射转换代码”和跳转代码(能跳到用户应用程序代码FLASH存储器的起始地址0x0000)。存储映射转换图如下所示:
图2.2 启动顺序流程图
W7100A有两种初始状态 - “BOOT ROM/APP入口”和”FLASH存储器”,如图2.3所示。但是因为启动ROM/APP入口和FLASH存储器的地址是重叠的,它们都使用相同的地址(0x0000 ~ 0x07FF / 0xFFF7 ~ 0xFFFF),因此W7100A分别将”启动ROM/APP入口”和FLASH(64K)映射到代码和数据存储器。
用户应用程序代码可以写到FLASH中(映射为数据存储器)。但在这种状态下,FLASH不能作为程序存储器,因为这种状态是应用于写入应用程序代码。要将FLASH作程序存储器使用,需要进行存储器映射的切换。为了达到这个要求,用户需要设置BOOTEN为’0’,以选择用户应用程序模式,启动代码立即跳到应用程序入口,然后应用程序入口将禁止BOOT ROM,且将
FLASH存储器映射为程序代码存储器,如图2.3所示。改变程序代码存储器映射后,应用程序入口跳转到程序代码的起始地址(0x0000),工作过程如下:
图2.3 应用程序入口(APP ENTRY)处理
如果选择APP模式,整个64K的FLASH都将作为程序存储器,但两个FLASH和APP入口的地址都是重叠的。因此,为了完整使用64K的FLASH,”APP入口”必须从代码存储器中解除映射,为了达到这个目的,用户应该在启动代码中将WCONF(0xFF)中的RB位置为0。这一过程如下所示:
图2.4 RB=0时改变程序存储器状态
WCONF(0xFF)
当FLASH区域超过0xFFF7时,下面的代码必须加入到启动代码中。如果使用这种方法,W7100A在系统复位后将立即禁止APP入口地址。
在启动代码中设置引脚BOOTEN为0,且清WCONF的RB位,那么W7100A内部的64K FLASH将全部作为程序存储器使用。
2.1.1
程序存储器的等待状态是由内部WTST(0x92)进行管理的,等待状态的周期是由WTST寄存器确定的。详细内容请参考2.5.10节’新的 & 扩展的SFR’。
W7100A内部有64K字节的RAM、64K字节的TCPIP内核和255字节的数据FLASH。数据FLASH用于存储用户IP地址、MAC地址、子网掩码、端口号等。另外W7100A有16M的数据存储外扩能力,下图是数据存储映射图。这个存储器只能通过MOVX指令访问,外部存储器可以由用户自己扩展。
图2.5 数据存储映射
2.2.1
数据存储器的等待状态由CKCON(0x8E)进行管理。等待状态的周期是由是由CKCON中的值确定的。请参考2.5.10节’新的&扩展的SFR’的内容。
2.3 外部数据存储器访问
外部地址引脚和数据引脚有两种访问模式。第一种模式是用标准8051的地址锁存方式,第二种是直接将所有引脚作为地址线。用户也可以用地址引脚和数据引脚作为GPIO。请参考第10节’电气特性’中关于外部存储器访问速度的内容。
表2.1 外部存储器访问模式
2.3.1
这种方法的外部接口与通用8051一样。但是地址范围可以通过设置EM[2:0](外部存储器模式,在WCONF(0xFF)中)来设置可访问的地址范围。当用户设置EM[2:0]到”001”,P0用于地址/数据总线,P2用于高位地址(A[15:8])。P1和P3用于GPIO。如下图所示:
图2.6 标准8051外部引脚访问模式(EM[2:0]=“001”)
当用户设置EM[2:0]为”011”,就像上面的情形一样,P0用于地址/数据总线,P2用于较高位的地址线(A[15:8])。但是P3用于最高位的地址总线(A[23:16]),地址总线被扩展了。剩下的P1用作GPIO,如下图所示:
图2.7 标准8051外部引脚访问模式(EM[2:0]=“011”)
在标准8051外部引脚的访问模式下,MCU控制着ALE(地址锁存使能)信号来区分地址和数据信号。用户可以通过ALECON(0x9F)来设置ALE信号的持续长度,对于ALECON的详细信息,参考2.5.10节’新的&扩展的SFR’。
这种方法直接将端口与地址线相连,当用户设置EM[2:0]为”101”,P0用于数据线(D[7:0],P1作为低地址线(A[7:0]),P2用于较高地址线(A[15:8])。剩下的P3用于GPIO。用这种方法,用户能将端口连向地址线而不用地址锁存,如下图所示。
图2.8 直接8051外部引脚访问模式(EM[2:0]=“101”)
当用户设置EM[2:0]为”111”,P0,P1,P2与上一种情况的功能一样,P3用于高端地址(A[23:16])。在这种模式下,没有端口可用于GPIO,如下图所示。
图2.9 直接8051外部引脚访问模式(EM[2:0]=“111”)
2.4 内部数据存储器和特殊功能寄存器
内部存储器和特殊功能寄存器的地址映射如下图表示:
图2.10 内部存储器映射
内部RAM的最低地址有4组分区,每个分区包含8个寄存器;还有一个可以位寻址的字节段,地址范围在0x20~0x2F,共128位,一个208字节的缓存区(0x30~0xFF),非直接地址模式范围是:0x80~0xFF,最高128字节可以作为内部存储器访问。但直接地址总线模式下的0x80~0xFF,这个区域作为SFR来访问的。
图2.11 SFR存储器映射图
新的SFR
扩展的SFR –在标准8051基础上扩展的寄存器,在本节将详细描述这些寄存器。
标准 – 标准8051特殊功能寄存器,也将在本节描述。
最左边那些地址的尾数为0或8的特殊功能寄存器都算可以位寻址的。
2.1 特殊功能寄存器(SFR)定义
下面将描述W7100A内核的特殊功能寄存器及其他们的功能。请参考2.5.11”外设特殊功能寄存器”章节,了解标准的特殊功能寄存器和外设特殊功能寄存器。
2.5.1
在PCON寄存器内有一个程序存储器”写”允许位(PWE),它禁止或允许使用MOVX指令对程序存储器进行写操作。
当PWE设置”1”时,”MOVX @DPTR,A”指令将数据从累加器A写到程序存储器中,地址由DPTR寄存器(DPH:DPL)确定。
“MOVX @Rx, A”指令将数据从累加器A写入到程序存储器中,地址由P2寄存器(bits 15:8)和Rx寄存器决定(bits 7:0)。
PCON(0x87)
图2.12 PCON寄存器的PWE位
注意:
1.
2.5.2
等待状态寄存器提供程序存储器访问时间信息。
WTST(0x92)
图2.13 程序存储器等待状态寄存器
注意:
1.
2.
表2.2 WTST寄存器的值
取指令时,程序存储器只能由MOVC指令访问,程序存储器可以最小4个时钟等待状态进行读操作,时序图如下。
图2.14 最少等待状态(WTST=‘4’)时,对程序存储器同步读的波形图
说明:
1.Clk
2.ADDRESS
3.CODE_RD
4.CODE
程序存储器可以用MOVX指令以最小4个时钟周期写入,它可以使W7100A内核对高速和低速程序存储器操作,时序图如下:
图2.15 最小等待状态(WTST=‘4’)程序存储器写时序图
注意:
1. Clk
2. ADDRESS
3. CODE
4. CODE_WR
5. PRG
上一篇:单片机以太网控制芯片W7100A数据手册(二)
下一篇:单片机以太网控制芯片W7100A数据手册(三)
推荐阅读最新更新时间:2024-03-16 14:33