电子说
在当今数字化时代,以太网连接在各种嵌入式系统中扮演着至关重要的角色。CP2200/1单芯片以太网控制器以其集成度高、功能丰富等特点,成为众多工程师的首选。本文将深入剖析CP2200/1的各项特性、功能模块以及应用要点,为电子工程师们提供全面的设计参考。
文件下载:CP2201EK.pdf
CP2200/1集成了IEEE 802.3以太网媒体访问控制器(MAC)、10BASE - T物理层(PHY)和8 kB非易失性闪存,有5 x 5 mm QFN - 28和48引脚TQFP两种封装。它能为具有11个或更多端口I/O引脚的微控制器或主机处理器添加以太网连接功能。其8位并行接口总线支持Intel和Motorola总线格式,在非复用模式下数据传输速率可超30 Mbps。片上闪存可存储用户常量、Web服务器内容等,且出厂时预编程有唯一的48位MAC地址,这大大简化了大多数嵌入式系统的产品制造流程。此外,CP2200/1有四种功率模式,可让主机处理器管理系统功耗,还支持自动协商,能自动检测网络支持的最有效双工模式。
文档给出了48引脚CP2200和28引脚CP2201的典型连接图。需要注意的是,为获得最佳性能,CP220x应放置在距变压器1英寸以内的位置。这一要求有助于减少信号传输过程中的干扰和损耗,确保以太网连接的稳定性。
了解器件的绝对最大额定值对于保证其正常工作和可靠性至关重要。CP2200/1的绝对最大额定值包括环境温度、存储温度、引脚电压、电源电压和电流等参数。例如,环境偏置温度范围为 - 55°C至125°C,存储温度范围为 - 65°C至150°C。超出这些额定值可能会导致器件永久性损坏,因此在设计时必须严格遵守。
CP2200/1的电源电压范围为3.1至3.6 V,不同工作模式下的电源电流有所不同。例如,正常模式(传输时)的电源电流为75至155 mA,正常模式(无网络流量)为60 mA,发射机和接收机禁用(内存模式)为47 mA,复位状态下为15 mA,关机模式下为6.5 mA。这些数据为电源设计提供了重要依据,工程师可以根据系统的实际需求选择合适的电源方案。
数字I/O的电气特性包括输出高电压、输出低电压、输入高电压、输入低电压和输入泄漏电流等。例如,输出高电压在不同负载电流下有不同的值,输出低电压也会随着负载电流的变化而变化。这些特性对于与其他数字电路的接口设计非常重要,确保信号的正确传输和逻辑电平的匹配。
CP2200/1的引脚定义详细说明了每个引脚的功能和用途。包括电源引脚、接地引脚、复位引脚、LED控制引脚、晶体输入输出引脚、收发引脚以及并行接口相关引脚等。不同封装的引脚分布有所不同,但功能基本一致。同时,文档还给出了48引脚TQFP和QFN - 28封装的尺寸和引脚图,为PCB设计提供了准确的参考。
CP2200/1主要用于以太网数据包的收发、非易失性数据存储以及控制链路和活动LED。通过并行主机接口访问直接和间接内部寄存器来控制设备,所有数字引脚均为5 V耐受。
复位后,为确保设备正常运行,建议按照以下步骤进行初始化:
CP2200/1有一个中断请求信号(INT),可用于通知主机处理器有未处理的中断。检测到任何启用的中断事件时,INT信号将被置位。主机处理器若无法专门为INT信号分配端口引脚,可定期轮询中断状态寄存器。CP2200/1有14个中断源,包括数据包接收、接收FIFO满、链路状态改变等,中断在复位时启用,可通过软件禁用。
CP2200/1可由外部并行模式晶体振荡器或CMOS时钟提供时钟。若选择晶体振荡器,设备从复位释放后晶体开始工作,直到设备重新进入复位状态或失去电源。需要注意的是,晶体振荡器电路对PCB布局非常敏感,晶体应尽量靠近设备的XTAL引脚,走线应尽量短,并使用接地平面屏蔽,以避免引入噪声或干扰。
CP2200(48引脚TQFP)有两个推挽式LED驱动器,每个可提供高达10 mA的电流;CP2201(28引脚QFN)有一个推挽式LED驱动器,可根据链路状态打开或关闭LED,并在检测到活动时闪烁。通过IOPWR寄存器可启用和禁用LED驱动器。
复位初始化完成后,CP2200/1即可收发数据包。发送数据包时,通过AutoWrite寄存器将数据加载到发送缓冲区,并将TXGO置为1。发送完成后会生成数据包发送中断。接收数据包时,当MAC中启用接收且接收缓冲区未满时,数据包会自动接收。接收到数据包后,主机处理器会收到数据包接收中断,可使用AutoRead接口读取数据包。
访问收发缓冲区最常用和高效的方法是AutoWrite和AutoRead接口,但在某些情况下可能需要随机访问。随机访问时,先将目标字节的地址写入RAMADDRH:RAMADDRL,然后根据是发送缓冲区还是接收缓冲区,分别对RAMTXDATA或RAMRXDATA进行读写操作。
CP2200/1有114个直接内部寄存器和9个间接寄存器,按功能分为十类,包括RAM访问寄存器、中断状态和控制寄存器、复位源寄存器等。详细的寄存器描述可参考文档中的相关表格,这些寄存器为设备的配置和控制提供了丰富的手段。
CP2200/1的14个中断源可通过设置中断状态寄存器中的标志位并将INT引脚置低来提醒主机处理器。主机处理器可通过读取自清除中断状态寄存器INT0和INT1来清除中断标志,也可通过清除INT0EN和INT1EN中的相应位来禁用中断。若主机处理器不使用INT引脚,可通过读取只读寄存器INT0RD和INT1RD来检查是否有中断事件发生。
CP2200/1有五种复位源:电源复位、电源故障复位、振荡器故障复位、外部引脚复位和软件命令复位。复位时,所有直接和间接寄存器将初始化为定义的复位值,数字引脚(除/RST)进入高阻抗状态并弱上拉到VDD,模拟引脚进入高阻抗状态,外部振荡器停止,/RST引脚置低(软件复位除外),所有中断启用。退出复位状态后,设备会自动启动外部振荡器并等待其稳定,然后进行自初始化,自初始化完成后设备即可正常工作。
正常模式下,设备功能完全正常,适用于主机收发数据包的情况。需要注意的是,发送器在正常模式下有一个节能模式,复位时启用,若要满足IEEE 802.3的最小发送器损耗要求,应禁用该节能模式。
在链路检测模式下,发送器和链路脉冲生成逻辑禁用,设备看起来像“离线”。该模式常用于启用“Wake - on - LAN”中断,将CP2200/01置于链路检测模式,然后将MCU置于低功耗模式,直到系统连接到网络。使用该模式时,应确保链路伙伴始终发送链路脉冲。
内存模式下,物理层(接收器和发送器)处于低功耗状态,设备只能访问闪存和RAM缓冲区。可通过清除PHYCN寄存器的三个最高有效位将设备置于内存模式,恢复正常模式时,需设置PHYCN寄存器的三个最高有效位,并等待物理层开启时间。
关机模式是CP2200/1的最低功耗模式,所有主要和次要功能均禁用,系统时钟与振荡器断开连接。只能通过电源复位或引脚复位从关机模式恢复。
可通过禁用LED驱动器、弱上拉和VDD监视器来降低功耗。但禁用弱上拉时,需确保所有数字引脚由外部驱动到逻辑高或逻辑低状态,否则可能导致设备行为不确定和功耗增加。
CP2200/1提供了一个简单的以太网数据包发送接口,主机只需将源地址、目的地址、长度/类型和数据加载到发送缓冲区,其他IEEE 802.3要求(如前导码、起始帧分隔符、CRC和填充)将自动生成。
发送数据包的步骤如下:
发送接口允许主机处理器在每个数据包的基础上自定义数据包发送,可覆盖的选项包括短帧填充、CRC生成、暂停数据包发送(全双工模式)、应用背压(半双工模式)和切换半/全双工模式等。
发送缓冲区提供了AutoWrite接口,可高效地将整个数据包加载到缓冲区。该接口由TXSTART、TXEND和TXAUTOWR三个寄存器组成。每次写入TXAUTOWR时,TXEND会设置为写入字节的地址,TXSTART会递增。数据包加载完成后,将TXSTART重置为0x0000。需要注意的是,数据包发送中止后不能使用AutoWrite接口。
CP2200的发送接口通过一系列寄存器进行控制和管理,发送完成后,可通过TXSTA0 - TXSTA6寄存器获取发送状态向量,其中包含了关于最后发送数据包的信息,如碰撞计数、成功发送、总发送字节数等。
CP2200/1有一个4k的循环接收FIFO缓冲区和一个8项的转换后备缓冲区(TLB),可同时存储多达8个数据包。每个TLB项包含一个接收到的数据包的起始地址、长度和其他信息。接收到数据包后,主机微控制器会通过中断请求引脚得到通知,可通过主机接口将数据包内容复制到本地内存,也可通过将RXSKIP(RXCN.1)置为1跳过数据包。接收接口还有一个高级接收过滤器和哈希表,可防止不需要的数据包进入接收缓冲区。
读取数据包的步骤如下:
对于10 Base - T以太网,最小数据包(64字节)在51.2 us内接收,接收缓冲区最多可容纳8个数据包。为防止指针损坏,软件应在第7个数据包到达接收缓冲区后禁用数据包接收(RXINH = 1)。若处理数据包接收中断的时间超过51.2 us,应使用随机访问方法从接收缓冲区检索数据。
设备复位后,接收缓冲区为空,过滤器配置为接受广播数据包和匹配哈希值0x0400的多播数据包。接收缓冲区无需额外初始化,可通过RXFILT寄存器配置接收过滤器,以接受或忽略广播数据包、多播数据包、短数据包和有CRC错误的数据包。若要接受多播数据包,可对哈希表进行编程。
CP2200/1的接收接口通过一系列寄存器进行控制和管理,当前数据包寄存器提供了关于下一个要从接收缓冲区卸载的数据包(最早接收到的数据包)的信息。
接收缓冲区操作由硬件自动处理,主机处理器通常无需干预。数据包到达并通过接收过滤器后,会添加到循环接收缓冲区的尾部指针指向的地址,FIFO尾部指针在每个字节接收后递增。新数据包到达时,接收缓冲区控制器会寻找未使用的TLB槽来存储数据包信息。若所有8个槽都满,数据包将被丢弃,并生成接收FIFO满中断。
接收缓冲区通过一系列寄存器进行控制和管理,这些寄存器主要用于调试目的,主机处理器通常不常访问。
CP2200/1的8 kB片上非易失性闪存可通过并行主机接口逐字节编程。闪存位一旦清零为逻辑0,必须擦除才能重新设置为逻辑1。闪存擦除操作一次擦除整个512字节扇区,闪存写入和擦除操作由硬件自动计时,不影响并行主机接口。写入或擦除操作完成后,主机CPU会收到中断请求通知。编程和擦除闪存需使用FLASHADDRH:FLASHADDRL、FLASHDATA和FLASHERASE寄存器,并通过FLASHSTA寄存器监控操作状态。
闪存读取速度比写入或擦除操作快,可通过FLASHADDRH:FLASHADDRL、FLASHDATA和FLASHAUTORD寄存器进行读取。FLASHAUTORD寄存器可通过自动递增闪存地址指针,高效地访问闪存中的顺序数据。
CP2200的闪存通过一系列寄存器进行访问,包括FLASHSTA、FLASHKEY、FLASHADDRH、FLASHADDRL、FLASHDATA、FLASHAUTORD和FLASHERASE等,详细的寄存器描述可参考文档中的相关表格。
MAC初始化在物理层初始化之后进行,通常在每次复位或自动协商完成中断后进行一次。大多数MAC间接寄存器可保持复位值。初始化步骤如下:
间接MAC寄存器通过四个直接映射寄存器(MACADDR、MACDATAH、MACDATAL和MACRW)进行访问。访问步骤如下:
全部0条评论
快来发表一下你的评论吧 !