基于PSoC3 UDB的曼彻斯特编码及应用
摘要:本文介绍使用Cypress的PSoC3 UDB实现曼彻斯特编码,并基于该编码与LED 恒流驱动芯片TLS3001通信实现对LED系列的控制。
关键字:PSoC3, UDB, 曼彻斯特编码
1, 概述
在曼彻斯特(Manchester)编码中,每个二进制位(码元)的中间都有电压跳变。用电压的正跳变表示“0”,电压的负跳变表示“1”。由于跳变都发生在每一个码元的中间位置(半个周期),接收端就可以方便地利用它作为同步时钟,因此这种曼彻斯特编码又称为自同步曼彻斯特编码。如图1所示。
图1,曼彻斯特编码与逻辑电平对应关系
从图1可以看出曼彻斯特编码本身并不复杂,在有些应用中可以采用单片机软件编程实现编码。但若应用系统要求较高的数据传输速率,比如本文后面介绍的LED控制中要求数据传送速率范围在100KHz~2MHz时,用软件实现曼彻斯特编码可能达不到速率要求。本文将采用PSoC3 UDB实现曼彻斯特编码,即用Datapath实际基本控制逻辑,用PLD实现状态机,由于其采用硬件实现故能达到速率要求。
Cypress PSoC3使用基于单循环流水线的高性能8051内核 (67MHz/33MIPS),提供业界广泛采用的5.5V至0.5V电压范围和低至200nA的休眠电流,可以满足极低功耗的应用场合。PSoC3的高性能模拟子系统和数字系统都拥有可编程通路,允许将任何模拟或数字信号(包括可编程时钟)分配到任何通用I/O引脚,这为使用者提供了真正的“系统级”可编程能力。
UDB(Universal Digital Blocks)是PSoC3可编程数字系统的核心功能,由PLD和Data path组成,可以创建各种通用外设和定制化功能。PSoC3的数字逻辑部分由多个UDB通过矩阵和可编程互联组成,PSoC3、UDB和Datapath的关系如下图2所示。
图2,PSoC3、UDB和Datapath关系示意图
2,曼彻斯特模块设计
采用PSoC3的UDB 实现曼彻斯特编码,就是用Datapath实现简单的控制逻辑,在PLD中用Verilog语言描述曼彻斯特模块功能的过程。在PSoC Creator中设计的曼彻斯特模块如下所示:
该模块只有一个时钟输入和一个曼彻斯特编码输出,要编码的数据是通过Datapath的FIFO输入的。Datapath的配置可采用Cypress提供的“Datapaht Configuation Tool”工具实现,如图3所示:
图3,Datapath Configuration Tool
基于Datapath设计曼彻斯特模块的步骤如下:
1),寄存器规划
A0,用做移位寄存器
F0,用做暂存下一个数据的FIFO,当A0为空时从F0中load 数据到A0
2),状态机
状态机是曼彻斯特模块功能的具体实现,通过Verilog语言描述在PLD中运行,如图4所示:
图4,曼彻斯特模块状态机
- 基于PSoC?4 的PMSM无传感器矢量控制(09-23)
- 基于CY8C3866的无线脑电信号采集检测系统设计(06-24)
- 解读USB控制器芯片及其在图像采集中的应用(06-06)
- 基于PSoC?4的矢量控制方案 :电流采样(06-04)
- 基于CYUSB3014高速实时数据采集系统的设(04-23)
- 一款基于CYPRESS的USB3.0总线设计(03-19)