![](http://img4.cpooo.com/files/201905/20/p/56/1207632_1558339772.jpg)
AMAT 0190-00318
AMAT48660-0149-03P/N0190-00318CAM表的匹配位取决于全局屏蔽寄存器的定义。屏蔽寄存器为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-SDNDeviceNet扫描器模块1769-PB4电源24VDC输入4A1769-PB2电源24VDC输入2A1769-PA4电源220VAC输入4A1769-PA2电源220VAC输入2A1769-OW8I8路单独隔离继电器输出1769-OW88路继电器输出1769-OW1616路继电器输出1769-OV1616路24VDC,晶体管输出,汇流1769-OF8V8路电压型模拟量输出1769-OF8C8路电流型模拟量输出1769-OF22路模拟量输出1769-OB88路24VDC,晶体管输出,源流1769-OB3232路24VDC,晶体管输出,源流1769-OB16P16路24VDC,晶体管输出,源流(带电子保护)1769-OB1616路24VDC,晶体管输出,源流1769-OA88路120/240VACSSR输出1769-OA1616路120/240VACSSR输出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-IQ6XOW46路24VDC输入,4路继电器输出1769-IQ3232路24VDC输入模块1769-IQ16F16路高速灌入/拉出电流型输入模块1769-IQ1616路24VDC输入模块1769-IM1212路240VAC输入模块1769-IF88路差分模拟量输入1769-IF4XOF24入2出模拟量1769-IF44路差分模拟量输入1769-IA8I8路120VAC输入模块1769-IA1616路120VAC输入模块1769-HSC高速计数器模块1769-ECR右端盖1769-ECL左端盖1769-CRR3右接右扩展电缆,1m1769-CRR1右接右扩展电缆,305mm1769-CRL3右接左扩展电缆,1m1769-CRL1右接左扩展电缆,305mm1769-CLL3左接左扩展电缆,1m1769-CLL1左接左扩展电缆,305mm1769-ADNDeviceNet适配器模块型号/订货号描述1769-OW88路继电器输出1769-OW1616路继电器输出1769-OV1616路24VDC,晶体管输出,汇流1769-OF22路模拟量输出1769-OB1616路24VDC,晶体管输出,源流1769-OA88路120/240VACSSR输出1769-IQ6XOW46路24VDC输入,4路继电器输出1769-IQ3232路24VDC输入模块1769-IQ1616路24VDC输入模块1769-IM1212路240VAC输入模块1769-IF88路差分模拟量输入1769-IF4XOF24入2出模拟量1769-IF44路差分模拟量输入1769-IA1616路120VAC输入模块1769-ECR端盖)