CLC外设是实现用户自定义逻辑的电路模块,可实现组合逻辑和时序逻辑。常用的逻辑操作都支持,包括与、或、非,SR锁存器,D触发器/锁存器,JK触发器等等。
使用CLC有哪些好处?
l CLC是独立外设,采用硬件来实现逻辑运算,实时性好,硬件运算不出错 l 可以减少外部逻辑组件,减小 PCB 尺寸并降低系统成本。 l 其他外设结合使用,实现复杂的定制,进而扩展这些外设的功能 l CLC 运算时不需要CPU,可把 CPU 带宽留给其他功能需求 l 由于不需要软件算法,因此 CLC 降低了闪存和 RAM 的需求。 l CLC在CPU休眠模式下继续运算,可用于 CPU 唤醒
一个系统往往需要多种功能,需要用到逻辑运算的地方肯定不少,其实很多。有很多涉及逻辑运算的功能又有很强的实时性要求。CLC外设是这类功能的很好的解决方法。一个MCU里如果只有3、4个CLC模块,往往需要省着用,把它们用到最需要的地方。到PIC18 Q10系列推出后,类似情况有很大改善。因为PIC18 Q10 系列单片机中一共有8个CLC模块。
这里对CLC实现的功能,做一个简单列举,其实不限于以下这些功能: l 布尔表达式 l 有限状态机 l 时序电路 l 编码器和解码器 l 计数器 l 多路开关 l 在不引起中断的情况下进行实时数据捕捉 l 复杂波形生成(例如用于红外传输的 NEC 代码) l 环形转换器 l 相位检测器 l 分频器 l 脉冲扩展器 l PWM 转向 l 信号阈值和保持电路
l 开关去抖 如果对某种功能感兴趣,可以回复留言,大家一起讨论。
下面介绍可借助CLC实现的两个原型应用: l 自动售货机原型
l 格雷码编解码实现
自动售货机原型 自动售货机的控制可使用一个有限状态机来实现。 首先通过分析机器工作过程,把投币的各种情况,抽象成逻辑状态,建立逻辑状态转移表,或画出状态转移图,并得出逻辑公式表达。
使用8个CLC实现自动售货机逻辑。
通过MCC界面对CLC1到CLC8以及其他外设进行配置,并生成工程代码。
具体参见应用笔记:
格雷码解码器 格雷码是一种常用的编码方法,两个相邻的代码字都只有一个符号不同。十进制、二进制以及对应的格雷码如下表所示。
可以根据格雷码表,得到4个比特位的解码逻辑。
使用4个CLC外设,可以对4位格雷码进行解码。
使用MCC,对CLC和其他使用的外设进行配置,并产生工程代码。
具体步骤请参考应用笔记:
|