微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于PSoC3 UDB的曼彻斯特编码及应用

基于PSoC3 UDB的曼彻斯特编码及应用

时间:09-01 来源:电子产品世界 点击:

   数据的每一个位需要两个时钟来产生曼彻斯特编码输出,即Shift/NOP或者Load&Shift/NOP过程。当没有数据时,verilog语言描述为状态机进入IDLE阶段并输出0。

        由于从F0 下载数据到A0时一次只能下载1byte 数据,为了保证曼彻斯特编码频率的一致性,在每个数据字节移位到最后1bit的同时从F0下载数据到A0,即Load&Shift阶段。

3),动态配置区设置
        Datapath的动态配置区功能如表一所示:


        在Datapath Configuration Tool中的设置如表二所示:
        表二,Datapath动态区配置


4),静态配置区设置
        静态配置区设置比较简单,将SHIFT SEL设置为SL从最高为开始左移;将F0 INSEL设置为BUS以表示F0作为输入FIFO;将F0 ASYNC设置为ASYNC。其在Datapath Configuration Tool中的实现如图5所示:
 


                                                        图5,Datapath静态区配置

3,基于曼彻斯特编码的LED控制
        这是一个基于PSoC3 UDB的应用,采用前面介绍的曼彻斯特编码模块与三通道LED 恒流驱动芯片TLS3001通信以控制LED系列。系统应用框图如图6所示,其中TLS3001_2与TLS3001_3和TLS3001_1一样都接有LED灯的。


 
                                                           图6,LED控制应用框图

        TLS3001 是单线传输、三通道LED 恒流驱动芯片,内置12 位灰阶控制的PWM调制功能。3 个恒流输出通道所输出的电流值不受输出端负载电压影响,并提供恒定一致的输出电流,用户可以选择不同的外接电阻来调整输出电流,调整范围从0 到30mA。内置电压调节器,使芯片正常工作在5~17V 的较宽电压范围内,输出端口最大耐压达到17V。

        根据TLS3001芯片要求,在芯片上电后必须先发一次同步帧,以便芯片检测通讯的波特率。同步帧的格式为:15’b111111111111111+4’b0001+11’b00000000000,在发送同步帧后必须延时一段时间再发送数据帧。在发送若干帧数据后,重新发送一次复位帧,等待1ms 之后,再发送一次同步帧, 以便芯片消除积累误差, 复位帧格式为:15’b111111111111111+4’b0100d. 数据帧格式为:15’b111111111111111+4’b0010(数据头)+ 第一个芯片39bit 数据 + 第二个芯片39bit 数据 + …… + 第n 个芯片39bit 数据。其数据时序如图7所示:
 


                                                                 图7,LED控制时序

这样,就使用前面定义的曼彻斯特模块发送编码流,以对LED灯的控制,控制软件流程如图8所示:
 


         图8,LED软件控制流程

用示波器观测编码输出管脚的波形,其时序完全能满足TLS3001芯片的要求,如下图9所示,其中通道2为时钟输出,通道1为Manchester编码输出。


                                                             图9,Manchester编码波形

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top