MicrochipCLC允许用户从八路输入中选择最多四个信号。这些输入可以是两个IO引脚、内部时钟、外设或寄存器位的组合。这四个信号随后路由到可编程逻辑模块中。该逻辑模块可编程为AND-OR、OR-XOR、4输入AND、S-R锁存器的8种组合之一,也可配置为4种其它触发器组合之一。Microchip在其《可配置逻辑单元提示与技巧》应用手册中给出了部分实例。其中的实例之一演示了如何配置这些模块以解码正交信号。在不使用这些额外的逻辑模块情况下,CPU需要以高得多的速率采样信号,才能避免正处于转换阶段的信号发生伪旋转,让CPU只被有效转换中断。MicrochipPIC10(L)F320/322器件每个都包含一个CLC模块,而每个CLC模块都包含四个图3所示的模块。
图3Microchip的可配置逻辑单元(4个中的一个)
NXP模式匹配引擎NXP提供的用户可配置逻辑被称为模式匹配引擎。该逻辑模块的输入可选择最大八个GPIO输入。这八个输入可为复杂的布尔表达生成乘积项。这些输出可用于触发中断,驱动特殊IO引脚,或是路由到下一个逻辑模块或slice。其它特性则支持上升或下降信号以及反相信号的边缘检测。该附加硬件经配置后,只有发生复杂(或简单)事件组合时才中断CPU。NXPLPC81x器件内置一个模式匹配引擎。
图4NXP引脚中断/模式匹配引擎
赛普拉斯PSoC通用数字模块(UDB)赛普拉斯通过使用通用数字模块或UDB,采用更先进的方法在上文介绍的其他三个厂商的方法和FPGA之间独树一帜。一个UDB由两个12C4PLD和一个数据通路构成。PLD可用于控制数据通路的操作和数据流,也可用作通用逻辑和状态机。数据通路是一种能提供8位功能(AND、OR、ADD、SUB、INC、DEC、XOR)、移位功能(左和右)以及供数据排队的两个4字节FIFO的定制模块。这些模块也可以结合在一起提供16位、24位或32位功能。
UDB的输入和输出可路由到任何GPIO、外设/组件IO、中断等。UDB、固定功能模拟和数字模块以及GPIO之间的互联都使用数字信号接口(DSI)处理。UDB经编程可实现为任何功能,包括从简单的逻辑门到计数器和PWM以及UART和I2C外设等通用串行接口。
就利用UDB实现设计而言,用户可以选择多种选项。既可把简单的逻辑门布局在原理图中,也可在Verilog中实现设计。还可提供定制图形界面,无需使用Verilog即可实现设计。PSoC3、PSoC4和PSoC5系列微控制器可包含4个到24个此类逻辑模块(UDB)。
图5赛普拉斯PSoC通用数字模块(UDB)
[pagebreak] 定制接口实例最近我注意到Worldsemi生产的一些RGBLED很有意思。部件编号分别为WS2811、WS2812和WS2812B,但它们工作方式一致。只需要一个GPIO引脚,您就可以驱动1,000个或者更多的此类部件。这相当令人感兴趣,因为我能够用一个GPIO引脚控制如此大数量的RGBLED。连接这些LED的接口不是SPI、UART或I2C,而是定制接口。通信信号采用异步信号,每一位开始于上升沿。数据为1或0由下图所示的高脉冲长度决定。
图6WS2811/12数据0/1时序