探秘CP2200/1单芯片以太网控制器:功能特性与应用指南

电子说

1.4w人已加入

描述

探秘CP2200/1单芯片以太网控制器:功能特性与应用指南

在当今数字化时代,以太网连接在各种嵌入式系统中扮演着至关重要的角色。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。超出这些额定值可能会导致器件永久性损坏,因此在设计时必须严格遵守。

四、电气特性

4.1 全局直流电气特性

CP2200/1的电源电压范围为3.1至3.6 V,不同工作模式下的电源电流有所不同。例如,正常模式(传输时)的电源电流为75至155 mA,正常模式(无网络流量)为60 mA,发射机和接收机禁用(内存模式)为47 mA,复位状态下为15 mA,关机模式下为6.5 mA。这些数据为电源设计提供了重要依据,工程师可以根据系统的实际需求选择合适的电源方案。

4.2 数字I/O直流电气特性

数字I/O的电气特性包括输出高电压、输出低电压、输入高电压、输入低电压和输入泄漏电流等。例如,输出高电压在不同负载电流下有不同的值,输出低电压也会随着负载电流的变化而变化。这些特性对于与其他数字电路的接口设计非常重要,确保信号的正确传输和逻辑电平的匹配。

五、引脚和封装定义

CP2200/1的引脚定义详细说明了每个引脚的功能和用途。包括电源引脚、接地引脚、复位引脚、LED控制引脚、晶体输入输出引脚、收发引脚以及并行接口相关引脚等。不同封装的引脚分布有所不同,但功能基本一致。同时,文档还给出了48引脚TQFP和QFN - 28封装的尺寸和引脚图,为PCB设计提供了准确的参考。

六、功能描述

6.1 概述

CP2200/1主要用于以太网数据包的收发、非易失性数据存储以及控制链路和活动LED。通过并行主机接口访问直接和间接内部寄存器来控制设备,所有数字引脚均为5 V耐受。

6.2 复位初始化

复位后,为确保设备正常运行,建议按照以下步骤进行初始化:

  1. 等待复位引脚上升,这在电源复位时耗时最长。
  2. 等待振荡器初始化完成,主机处理器可通过中断请求信号得知振荡器稳定。
  3. 等待自初始化完成,可检查INT0中断状态寄存器来确定。
  4. 禁用主机处理器不监控或处理的事件的中断,默认情况下,每次复位后所有中断均启用。
  5. 初始化物理层,具体步骤可参考“15.7. 初始化物理层”。
  6. 使用IOPWR寄存器启用所需的活动、链路或活动/链路LED。
  7. 初始化媒体访问控制器(MAC),具体步骤可参考“14.1. 初始化MAC”。
  8. 配置接收过滤器,具体步骤可参考“12.4. 初始化接收缓冲区、过滤器和哈希表”。
  9. 此时CP2200/1即可开始收发数据包。

    6.3 中断请求信号

    CP2200/1有一个中断请求信号(INT),可用于通知主机处理器有未处理的中断。检测到任何启用的中断事件时,INT信号将被置位。主机处理器若无法专门为INT信号分配端口引脚,可定期轮询中断状态寄存器。CP2200/1有14个中断源,包括数据包接收、接收FIFO满、链路状态改变等,中断在复位时启用,可通过软件禁用。

    6.4 时钟选项

    CP2200/1可由外部并行模式晶体振荡器或CMOS时钟提供时钟。若选择晶体振荡器,设备从复位释放后晶体开始工作,直到设备重新进入复位状态或失去电源。需要注意的是,晶体振荡器电路对PCB布局非常敏感,晶体应尽量靠近设备的XTAL引脚,走线应尽量短,并使用接地平面屏蔽,以避免引入噪声或干扰。

    6.5 LED控制

    CP2200(48引脚TQFP)有两个推挽式LED驱动器,每个可提供高达10 mA的电流;CP2201(28引脚QFN)有一个推挽式LED驱动器,可根据链路状态打开或关闭LED,并在检测到活动时闪烁。通过IOPWR寄存器可启用和禁用LED驱动器。

    6.6 数据包收发

    复位初始化完成后,CP2200/1即可收发数据包。发送数据包时,通过AutoWrite寄存器将数据加载到发送缓冲区,并将TXGO置为1。发送完成后会生成数据包发送中断。接收数据包时,当MAC中启用接收且接收缓冲区未满时,数据包会自动接收。接收到数据包后,主机处理器会收到数据包接收中断,可使用AutoRead接口读取数据包。

七、内部存储器和寄存器

7.1 随机访问RAM收发缓冲区

访问收发缓冲区最常用和高效的方法是AutoWrite和AutoRead接口,但在某些情况下可能需要随机访问。随机访问时,先将目标字节的地址写入RAMADDRH:RAMADDRL,然后根据是发送缓冲区还是接收缓冲区,分别对RAMTXDATA或RAMRXDATA进行读写操作。

7.2 内部寄存器

CP2200/1有114个直接内部寄存器和9个间接寄存器,按功能分为十类,包括RAM访问寄存器、中断状态和控制寄存器、复位源寄存器等。详细的寄存器描述可参考文档中的相关表格,这些寄存器为设备的配置和控制提供了丰富的手段。

八、中断源

CP2200/1的14个中断源可通过设置中断状态寄存器中的标志位并将INT引脚置低来提醒主机处理器。主机处理器可通过读取自清除中断状态寄存器INT0和INT1来清除中断标志,也可通过清除INT0EN和INT1EN中的相应位来禁用中断。若主机处理器不使用INT引脚,可通过读取只读寄存器INT0RD和INT1RD来检查是否有中断事件发生。

九、复位源

CP2200/1有五种复位源:电源复位、电源故障复位、振荡器故障复位、外部引脚复位和软件命令复位。复位时,所有直接和间接寄存器将初始化为定义的复位值,数字引脚(除/RST)进入高阻抗状态并弱上拉到VDD,模拟引脚进入高阻抗状态,外部振荡器停止,/RST引脚置低(软件复位除外),所有中断启用。退出复位状态后,设备会自动启动外部振荡器并等待其稳定,然后进行自初始化,自初始化完成后设备即可正常工作。

十、功率模式

10.1 正常模式

正常模式下,设备功能完全正常,适用于主机收发数据包的情况。需要注意的是,发送器在正常模式下有一个节能模式,复位时启用,若要满足IEEE 802.3的最小发送器损耗要求,应禁用该节能模式。

10.2 链路检测模式

在链路检测模式下,发送器和链路脉冲生成逻辑禁用,设备看起来像“离线”。该模式常用于启用“Wake - on - LAN”中断,将CP2200/01置于链路检测模式,然后将MCU置于低功耗模式,直到系统连接到网络。使用该模式时,应确保链路伙伴始终发送链路脉冲。

10.3 内存模式

内存模式下,物理层(接收器和发送器)处于低功耗状态,设备只能访问闪存和RAM缓冲区。可通过清除PHYCN寄存器的三个最高有效位将设备置于内存模式,恢复正常模式时,需设置PHYCN寄存器的三个最高有效位,并等待物理层开启时间。

10.4 关机模式

关机模式是CP2200/1的最低功耗模式,所有主要和次要功能均禁用,系统时钟与振荡器断开连接。只能通过电源复位或引脚复位从关机模式恢复。

10.5 禁用次要设备功能

可通过禁用LED驱动器、弱上拉和VDD监视器来降低功耗。但禁用弱上拉时,需确保所有数字引脚由外部驱动到逻辑高或逻辑低状态,否则可能导致设备行为不确定和功耗增加。

十一、发送接口

11.1 概述

CP2200/1提供了一个简单的以太网数据包发送接口,主机只需将源地址、目的地址、长度/类型和数据加载到发送缓冲区,其他IEEE 802.3要求(如前导码、起始帧分隔符、CRC和填充)将自动生成。

11.2 发送数据包

发送数据包的步骤如下:

  1. 等待上一个数据包发送完成(TXBUSY == 0x00)。
  2. 将TXSTARTH:TXSTARTL发送缓冲区指针设置为0x0000。
  3. 若上一个数据包发送中止,需使用随机内存访问方法将数据加载到发送缓冲区,并将小数据包填充到至少64字节,设置TXENDH:TXENDL为最后添加字节的地址。
  4. 若上一个数据包成功发送,可使用AutoWrite接口将数据加载到发送缓冲区,若MAC处于半双工模式,需将小数据包填充到至少64字节。
  5. 将TXSTARTH:TXSTARTL发送缓冲区指针重新设置为0x0000。
  6. 将TXGO位(TXCN.0)置为1开始发送。

    11.3 覆盖发送配置选项

    发送接口允许主机处理器在每个数据包的基础上自定义数据包发送,可覆盖的选项包括短帧填充、CRC生成、暂停数据包发送(全双工模式)、应用背压(半双工模式)和切换半/全双工模式等。

    11.4 发送缓冲区和AutoWrite接口

    发送缓冲区提供了AutoWrite接口,可高效地将整个数据包加载到缓冲区。该接口由TXSTART、TXEND和TXAUTOWR三个寄存器组成。每次写入TXAUTOWR时,TXEND会设置为写入字节的地址,TXSTART会递增。数据包加载完成后,将TXSTART重置为0x0000。需要注意的是,数据包发送中止后不能使用AutoWrite接口。

    11.5 发送状态和控制寄存器

    CP2200的发送接口通过一系列寄存器进行控制和管理,发送完成后,可通过TXSTA0 - TXSTA6寄存器获取发送状态向量,其中包含了关于最后发送数据包的信息,如碰撞计数、成功发送、总发送字节数等。

十二、接收接口

12.1 概述

CP2200/1有一个4k的循环接收FIFO缓冲区和一个8项的转换后备缓冲区(TLB),可同时存储多达8个数据包。每个TLB项包含一个接收到的数据包的起始地址、长度和其他信息。接收到数据包后,主机微控制器会通过中断请求引脚得到通知,可通过主机接口将数据包内容复制到本地内存,也可通过将RXSKIP(RXCN.1)置为1跳过数据包。接收接口还有一个高级接收过滤器和哈希表,可防止不需要的数据包进入接收缓冲区。

12.2 读取数据包

读取数据包的步骤如下:

  1. 读取RXVALID(CPINFOH.7)和RXOK(CPINFOL.7)检查当前数据包是否正确接收,主机处理器可使用数据包起始地址CPADDR读取特定字节,以决定是否复制或跳过当前数据包。
  2. 若RXVALID或RXOK为0,或要跳过数据包,将RXSKIP(RXCN.1)置为1;若RXVALID和RXOK均为1,从CPLENH:CPLENL读取当前数据包的长度。
  3. 通过读取RXAUTORD逐字节读取整个数据包。
  4. 若整个数据包读取完成,将RXCLRV(RXCN.2)置为1;若当前缓冲区有未读取的字节,将RXSKIP(RXCN.1)置为1。

    12.3 时序和缓冲区溢出考虑

    对于10 Base - T以太网,最小数据包(64字节)在51.2 us内接收,接收缓冲区最多可容纳8个数据包。为防止指针损坏,软件应在第7个数据包到达接收缓冲区后禁用数据包接收(RXINH = 1)。若处理数据包接收中断的时间超过51.2 us,应使用随机访问方法从接收缓冲区检索数据。

    12.4 初始化接收缓冲区、过滤器和哈希表

    设备复位后,接收缓冲区为空,过滤器配置为接受广播数据包和匹配哈希值0x0400的多播数据包。接收缓冲区无需额外初始化,可通过RXFILT寄存器配置接收过滤器,以接受或忽略广播数据包、多播数据包、短数据包和有CRC错误的数据包。若要接受多播数据包,可对哈希表进行编程。

    12.5 接收状态和控制寄存器

    CP2200/1的接收接口通过一系列寄存器进行控制和管理,当前数据包寄存器提供了关于下一个要从接收缓冲区卸载的数据包(最早接收到的数据包)的信息。

    12.6 高级接收缓冲区操作

    接收缓冲区操作由硬件自动处理,主机处理器通常无需干预。数据包到达并通过接收过滤器后,会添加到循环接收缓冲区的尾部指针指向的地址,FIFO尾部指针在每个字节接收后递增。新数据包到达时,接收缓冲区控制器会寻找未使用的TLB槽来存储数据包信息。若所有8个槽都满,数据包将被丢弃,并生成接收FIFO满中断。

    12.7 接收缓冲区高级状态和控制寄存器

    接收缓冲区通过一系列寄存器进行控制和管理,这些寄存器主要用于调试目的,主机处理器通常不常访问。

十三、闪存

13.1 编程闪存

CP2200/1的8 kB片上非易失性闪存可通过并行主机接口逐字节编程。闪存位一旦清零为逻辑0,必须擦除才能重新设置为逻辑1。闪存擦除操作一次擦除整个512字节扇区,闪存写入和擦除操作由硬件自动计时,不影响并行主机接口。写入或擦除操作完成后,主机CPU会收到中断请求通知。编程和擦除闪存需使用FLASHADDRH:FLASHADDRL、FLASHDATA和FLASHERASE寄存器,并通过FLASHSTA寄存器监控操作状态。

13.2 读取闪存

闪存读取速度比写入或擦除操作快,可通过FLASHADDRH:FLASHADDRL、FLASHDATA和FLASHAUTORD寄存器进行读取。FLASHAUTORD寄存器可通过自动递增闪存地址指针,高效地访问闪存中的顺序数据。

13.3 闪存访问寄存器

CP2200的闪存通过一系列寄存器进行访问,包括FLASHSTA、FLASHKEY、FLASHADDRH、FLASHADDRL、FLASHDATA、FLASHAUTORD和FLASHERASE等,详细的寄存器描述可参考文档中的相关表格。

十四、媒体访问控制器(MAC)

14.1 初始化MAC

MAC初始化在物理层初始化之后进行,通常在每次复位或自动协商完成中断后进行一次。大多数MAC间接寄存器可保持复位值。初始化步骤如下:

  1. 确定物理层是全双工还是半双工模式,MAC必须与物理层设置为相同的双工模式。
  2. 将0x40B3(全双工)或0x4012(半双工)写入MACCF。
  3. 将0x0015(全双工)或0x0012(半双工)写入IPGT。
  4. 将0x0C12写入IPGR。
  5. 将0x05EE写入MAXLEN。
  6. 通过写入MACAD0:MACAD1:MACAD2编程48位以太网MAC地址。
  7. 将0x0001写入MACCN以启用接收,若需要回环模式或流量控制,设置相应的位以启用这些功能。

    14.2 访问间接MAC寄存器

    间接MAC寄存器通过四个直接映射寄存器(MACADDR、MACDATAH、MACDATAL和MACRW)进行访问。访问步骤如下:

  8. 将间接寄存器的地址写入MACADDR。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分