AMAT 486 60-0149-03 P/N 0190-00318
CAM表的匹配位取决于全局屏蔽寄存器的定义。屏蔽寄存器为0的位要求数据项的对应位作匹配操作;为1,则对应位无需匹配。典型的应用中用户总是把数据项的高位序位定义为“待匹配字节”,低位序位定义为“结果输出字节”。64位中的任何位都可以定义为“匹配操作”,但实际上输出到匹配口MQ0~MQ31总线上的总是***低32位数据,并非可任意编程输出的。如果设置的输出结果字节超过32位,则是无意义的。
通常情况下,MCM69C232通过写控制口数据和指令来准备匹配操作。一般步骤是把数据项装入4个I/O寄存器,然后往操作代码寄存器写入操作代码,即可完成一种指令的操作。指令完成后,CAM表的内容可能会被修改,标志寄存器的相应位会被置位,错误代码寄存器会返回错误码,当使能时,还会触发中断。芯片的操作指令如表1所列。
MCM69C232操作指令
复位。复位同步于主时钟的上升沿,一个时钟周期的复位就能清空CAM表和输入数据项队列,置标志寄存器为1C,错误代码寄存器为FFFF,几乎满寄存器为FFF,并清除中断屏蔽。控制口时序。访问控制口如同处理器访问RAM一样,时序较为简单。
匹配口时序。访问匹配口分两种情况:一种是匹配字节小于等于32位,只用LH/***信号装载匹配数据,LL信号无用;另一种是匹配字节大于32位,先用LL信号装载匹配数据低位部分,再由LH/***信号装载高位部分。匹配结果由MC信号和MS信号指示,使能G信号读取匹配结果数据。匹配口时序见参考文献。
两口同时匹配。控制口模拟匹配和匹配口匹配同时进行时,匹配口优先权较高。另外控制口模拟匹配操作之前要求输入队列为空,以便接收结果。深度扩展。芯片简单级联即可扩展深度,具体的扩展连线方法请参见参考文献。
3MCM69C232芯片的应用
3.1MCM69C232在交换机中的应用
在以太网上.交换机维护一张用于二层交换的地址表(通常称为“CAM表”),该表维护MAC地址与出接口的对应关系。样每当接收到一个以太网数据帧,交换机就会进行判断。如果该数据帧不是发送给自己的,则根据数据帧的目的MAC地址查询CAM表;如果能命中(所谓命中,就是在CAM表中找到与该MAC地址对应的转发项),则根据查询的结果(通常是一个出接口列表)进行转发;如果不能命中,则向所有端口广播该数据帧。
交换机的这张CAM表可以通过多种方式获得,比如静态配置、动态学习。针对多播,还可以通过各种多播协议(如IGMP窥探、GMRP协议等方式)获得(多播转发表不能通过学习获得,而且多播转发项跟普通转发项不同,与其对应的出口可能不只一个,而是一个出口集合);但对于单播,***重要的一种建立方式是动态学习。
当交换机接收到一个数据帧时,提取出该数据帧的目的MAC地址,并以此为根据进行CAM表查询。如果能查找到结果,则根据结果进行数据帧的转发;如果不能命中,则对除接收端口外的所有端口进行***。在进行数据转发的同时,交换机还进行一个学习的过程。它把数据帧的源MAC地址提取出来,查询CAM表,看CAM表中是否有针对该MAC地址的转发项。如果没有,则把该MAC地址和接收到该MAC地址的端口绑定起来,插入CAM表项。这样当接收到一个发送到该MAC地址的数据帧时,就不需要向所有端口广播,而仅向这个端口发送即可。需要注意的是,数据帧的转发是依据目的MAC地址查询CAM表,而CAM表的学习则是以源MAC地址为依据的。
之所以在交换机中使用CAM,是因为交换机对性能要求特别高。交换机中的嵌入式实时控制系统的性能主要取决于两方面:硬件平台的运算性能和算法的优越性。其中,硬件平台的运算性能***为关键,这一点在交换机中表现得尤为突出。按照设计要求,以太网帧的MAC地址的检索时间一般都是μs级,因此首先要保证数据检索任务的响应速度;除了十分繁重的数据检索任务外,交换机还必须完成SNMP(SimpleNetworkManagementPmtocol)协议处理、命令行处理等任务,所以还必须解决数据检索对系统资源的占用问题。利用软件实现对以太网帧的MAC地址检索并不复杂,但由于检索次数频繁,大量的系统资源被占用,致使系统的响应速度大大降低,满足不了大流量数据通信的要求。因此纯软件算法解决不了数据检索部分占用大量资源的问题,为提高系统的响应速度,
必须将这数据检索的任务分离出来由硬件实现,而协议处理部分仍由CPU完成。数据检索模块和协议处理模块并行工作,利用硬件实现数据检索还可以提高检索速度,降低系统资源的占用率。在这里CAM的优势就体现出来了。
3.2检索操作
当进行MAC地址检索时,CPU首先以MAC地址为关键字通过MAC-CAM表的检索得到对应的索引值,然后再根据索引值找到RAM表中该MAC地址对应的相关信息的存储位置,并由此地址获得相关配置信息。在RAM中的相关配置信息中可以存放诸如MAC地址、用户端口、有效标志域等其他信息。CAM表与RAM的映射关系如图3所示。
1769-SDN DeviceNet扫描器模块
1769-PB4 电源 24VDC输入 4A
1769-PB2 电源 24VDC输入 2A
1769-PA4 电源 220VAC输入 4A
1769-PA2 电源 220VAC输入 2A
1769-OW8I 8路单独隔离继电器输出
1769-OW8 8路继电器输出
1769-OW16 16路继电器输出
1769-OV16 16路24VDC,晶体管输出,汇流
1769-OF8V 8路电压型模拟量输出
1769-OF8C 8路电流型模拟量输出
1769-OF2 2路模拟量输出
1769-OB8 8路24VDC,晶体管输出,源流
1769-OB32 32路24VDC,晶体管输出,源流
1769-OB16P 16路24VDC,晶体管输出,源流(带电子保护)
1769-OB16 16路24VDC,晶体管输出,源流
1769-OA8 8路120/240VAC SSR输出
1769-OA16 16路120/240VAC SSR输出
1769-L35E 处理器 1.5M内存 带EtherNet接口
1769-L35CR 处理器 1.5M内存 带冗余ControlNet接口
1769-L32E 处理器 750K内存 带EtherNet接口
1769-L32C 处理器 750K内存 带ControlNet接口
1769-L31 处理器 512K内存 带RS232接口
1769-IT6 模拟量输入模块(6路热电偶)
1769-IR6 模拟量输入模块(6路RTD)
1769-IQ6XOW4 6路24VDC输入,4路继电器输出
1769-IQ32 32路24VDC输入模块
1769-IQ16F 16路高速灌入/拉出电流型输入模块
1769-IQ16 16路24VDC输入模块
1769-IM12 12路240VAC输入模块
1769-IF8 8路差分模拟量输入
1769-IF4XOF2 4入2出模拟量
1769-IF4 4路差分模拟量输入
1769-IA8I 8路120VAC输入模块
1769-IA16 16路120VAC输入模块
1769-HSC 高速计数器模块
1769-ECR 右端盖
1769-ECL 左端盖
1769-CRR3 右接右扩展电缆,1m
1769-CRR1 右接右扩展电缆,305mm
1769-CRL3 右接左扩展电缆,1m
1769-CRL1 右接左扩展电缆,305mm
1769-CLL3 左接左扩展电缆,1m
1769-CLL1 左接左扩展电缆,305mm
1769-ADN DeviceNet适配器模块
型号/订货号 描述
1769-OW8 8路继电器输出
1769-OW16 16路继电器输出
1769-OV16 16路24VDC,晶体管输出,汇流
1769-OF2 2路模拟量输出
1769-OB16 16路24VDC,晶体管输出,源流
1769-OA8 8路120/240VAC SSR输出
1769-IQ6XOW4 6路24VDC输入,4路继电器输出
1769-IQ32 32路24VDC输入模块
1769-IQ16 16路24VDC输入模块
1769-IM12 12路240VAC输入模块
1769-IF8 8路差分模拟量输入
1769-IF4XOF2 4入2出模拟量
1769-IF4 4路差分模拟量输入
1769-IA16 16路120VAC输入模块
1769-ECR 端盖