现在位置 >首页 > 所有 CPLD介绍及应用 分类文章

基于CPLD服务机器人的视觉系统设计

2013年05月23日

随着计算机科学和自动控制技术的发展,越来越多的不同种类的智能机器人出现在工厂、生活当中,机器人视觉系统作为智能机器人系统中一个重要的子系统,也越来越受到人们的重视。它涉及了图像处理、模式识别和视觉跟踪等领域。不同种类的机器人由于工作的重点不一样,它的视觉系统在软件或硬件上都有着细微的差别。本文研究基于服务机器人的单目视觉系统。它处理的是二维图像,是基于对无遮挡物体颜色和形状的识别以及3D目标物体的平动跟踪cpld解密。
视觉系统是一个非常复杂的系统,它既要做到图像的准确采集还要做到对外界变化反应的实时性,同时还需要对外界运动的目标实时跟踪。因此,视觉系统对硬件和软件系统都提出了较高的要求。目前比较流行的足球机器人技术,它的视觉系统属于比较典型的快速识别和反应类型。一般情况下,它是通过彩色标志定标的方法来达到对队员和目标的识别,以及通过扩展卡尔曼滤波器的预测功能来实现对目标的跟踪功能。在硬件上,采用一个现成的摄像机来实现一个机器人的图像采集系统。
本系统在设计上采用CMOS图像传感器代替CCD类型传感器进行采集图像,DSP解密处理芯片TMS320VC5509A进行图像处理以及作为CPU控制,在设计过程中,为了直观显现机器人视觉系统识别和跟踪的效果,专门采用了一个TFT格式的液晶来直观显示。软件上,采用了一部分足球机器人的视觉技术来达到对目标的快速识别,cpld破解通过全局的特征矩构建的雅可比矩阵达到对目标的自适应跟踪。
1 硬件部分设计 
 1.1 图像采集
视觉镜头把外部的图像信息成像在图像传感器的面阵单元上。目前流行的图像传感器有面阵CCD(Charged Coupled Device,电荷耦合器件)型和面阵CMOS两种。相比较CCD型的图像传感器,CMOS图像传感器的有源像素单元为每一个像素提供了放大器,只需一个单供电低逻辑电平电压,功耗只相当于CCD的十分之一。CMOS图像传感器内部集成了A/D转换部分,直接输出数字信号。基于这些因素,本系统采用了Omnivision公司推出的CMOS彩色图像传感器OV7635。
OV7635的分辨力为640X480,能输出3种格式的8位数据:YCbCr4:2:2模式、RGB4:2:2模式和RGB原始数据模式。输出VGA格式最大可达到30fps(fps:每秒帧数)。能工作在逐行扫描下和隔行扫描下。OV7635有主模式和从模式两种工作模式。在主模式下,同步信号和时钟不由外围设备控制。在从模式下,OV7635的场同步信号VSYNC,行同步信号HREF以及系统的晶振频率XCLK均由外部设备控制。本系统采用的是主模式。OV7635通过I2C总线配置片内寄存器,使其输出原始数据。系统上电复位后,由DSP芯片的I2C总线信号对CMOS寄存器初始化。然后OV7635就按要求输出图像信号。包括行同步信号HREF,场同步信号VSYNC,像素时钟信号PCLK,数字图像信号。
1.2 液晶显示
为了很直观的看到视觉系统对人的识别和跟踪效果,采用了一片INNOLUX公司的PT035TN01液晶显示屏。为了不增加对DSP的负担,同时也为了实时看到对外界目标物体的跟踪效果,液晶显示的数据不经由DSP,直接通过传感器OV7635输出的图像数据信号和CPLD控制时序来进行显示。PT035TN01是3.5英寸TFT格式的液晶,分辨力为320×3(RGB)×240,液晶IF1、IF2两输入控制脚对输入的数据格式进行选择:串行RGB格式、CCIR601格式、CCIR656格式。液晶的扫描模式有4种。本视觉系统采用的输入数据格式是CCIR601格式,扫描模式为由上到下和左到右的扫描模式。
在CCIR601格式下,图像传感器输出的像素时钟PCLK通过CPLD二分频作为液晶的工作时钟,图像传感器输出的行同步信号HREF经过CPLD的处理后作为液晶的行同步信号HIS,这样,在CPLD控制下,图像传感器OV7635输出的数据信号送入液晶中进行显示。
1.3 时序控制
OV7635输出的场同步信号VSYNC,行同步信号HREF以及像素时钟信号PCLK接至CPLD芯片,产生控制信号把OV7635输出的数据信号存入FIFO帧存储器AL422B中,以及产生液晶的时钟和行同步信号控制液晶的显示。CPLD采用了ALTERA公司的EPM7064芯片。在CPLD中完成了对FIFO的写控制、通知DSP读信号、液晶的时钟信号的产生等功能。
CPLD接收场同步信号VSYNC,此信号的下降沿表示图像传感器输出一帧的开始,此时CPLD产生WRST负脉冲复位FIFO的写指针。场同步信号VSYNC下降沿后,判断行同步信号HREF的上升沿到来,接着利用像素时钟信号PCLK作为写时钟WCK将图像数据直接存储到FIFO中,当存到一定的数后,就及时发信号给DSP,以便DSP读取数据,本系统采用的是一个中断INT0来通知DSP。此时DSP可以读数据也可以不读,视处理的速度来定。读数据时,可利用RD和片选,产生RCK信号。DSP读取的速度不能太快,以读取速度小于写速度为原则。
在对液晶的逻辑时序控制上,由于图像输出的信号是640×480的像素,而液晶的显示为320×240的格式。所以利用CPLD把图像传感器输入的像素时钟信号PCLK进行二分频产生液晶的时钟信号控制液晶的显示,同时对行同步信号进行隔行有效从而达到液晶对图像的显示。CPLD中的程序编写用的采用了硬件描述语言VHDL,在QUARTUSⅡ软件平台上进行编写的。由于在选用芯片时采用的是EPM7064S系列的44脚PLCC封装的,只能工作在5V电压情况下,其输出的高电平信号是5V,必须通过处理才能接入系统中工作在3。3V状态下的芯片器件。
1.4 帧存储器选择
帧存储器有需要外部提供地址线的RAM和不需要外部提供地址线的FIFO,为了简化CPLD的设计。采用了FIFO的帧存储器。FIFO又可以分为基于动态存储的DRAM和基于静态的SRAM。基于静态SRAM的优点是不需要刷新电路,但容量小,需要多片才能存储一帧数据;基于DRAM的优点是容量大,只需一片就能存储一帧数据,缺点是必须有刷新电路。本设计中采用的是Averlogic公司的大容量FIFO动态存储芯片AL422B。其刷新电路比较简单,仅需WCK或RCK提供大于1M的不间断脉冲即可。AL422B的存储容量为3MB,由于系统一帧的信息通常包含640×480个彩色像素,每个像素占用2个字节,可存储1帧图像的完整信息,其工作频率可达50MHz。

基于DSP和CPLD的光纤陀螺信号采集系统设计

2012年07月17日

0 引言
  光纤陀螺作为一种新型的惯性器件,近年来得到越来越多的关注,因为它有许多其他陀螺无法比拟的优越性,比如结构简单,精度高,动态范围大,抗电磁干扰,无加速度引起的漂移且成本低,可靠性好等。陀螺可以为载体提供准确的角速度和角位移等信号,完成对运动体的姿态和运动轨迹控制。其优良的品质使自身能够满足军工和民用对惯性器件苛刻的要求,并得到广泛的应用。
  惯性器件的性能直接影响到控制系统本身的稳定性能,所以光纤陀螺被应用到空空导弹中时,需要对陀螺的特性有充分的了解,为此构建了一个陀螺采集系统,以实现对陀螺信号的采集及特性分析。
1 光纤陀螺的工作原理
  光纤陀螺是激光陀螺的一种,其基本原理基于Sagnac效应,即用光纤绕制成环柱形光路,光源发出的光经过分束器分为两束之后,送到光纤中,随着陀螺的转动,分别沿顺时针和逆时针方向传输,经过一周后,这两束相反方向传播的光回到分束器中形成干涉,当光纤形成的环状回路不转动时,顺、逆光程到达分束器的时间相等,两束光的相位差为零;当环状回路转动时,顺、逆光程就产生差异,在一段时间内分束器已从A点转到了A’点,对顺时针传播的光束,当它再次到分束器时多走了AA’的路程。可以根据两束光的相位差来获得回路转动的角速度。光纤的检测灵敏度和分辨率比激光陀螺提高了几个数量级。
2 系统构成及其工作原理
  本文设计的信号采集系统通过双口RAM实现上位机与DSP的通信,控制板采用DSP+CPLD解密的方式,控制AD芯片完成多路光纤陀螺数据的采集。系统工作流程为DSP接收到上位机通过双口RAM传来的采集指令,通过地址/数据总线与CPLD进行通信,控制AD芯片对外部的多路陀螺信号进行采集,之后通过双口RAM送到上位机,上位机实现各种图形界面操作和后端信号处理,对所采集的信号进行分析。
3 系统硬件结构
  系统主要由DSP芯片TMS320F2812、双口RAMCY7C131,CPLD芯片EPM7128T1100、ADC芯片ADS8364以及传感器信号调理电路组成。
  DSP主要负责与上位机通信,以及和CPLD共同控制AD实现对多路光纤陀螺数据的采集,这里选用TI公司生产的TMS320F2812。该芯片专门为控制系统应用而设计,它采用1.8 V的内核电压,具有3.3 V的外围接口电压,片内存储容量为18 KB SRAM,128 KB FLASH,最高主频150 MHz,片内集成有多种外设接口。
  双口RAM主要输出数据采集指令并接收DSP传送的陀螺值。选用的双端口RAM型号为CY7C131,采用5 V供电,容量为1K×8 b,实际使用数据交换区为256×8 b。在256 B的存储空间内分为两个数据区,一个数据区(A)存放上位机下发的指令信息,另一个数据区(B)存放采集的陀螺数据信息。由于控制DSP与上位机对双口RAM的读写速度不同,为防止由于速度不匹配造成的读写冲突,在软件中相应的存储区设置读写标志位,通过此标志位来确定双端口RAM的读写状态。
  在本系统中,CPLD是一个重要的组成部分,由CPLD组成的逻辑控制模块接收DSP传送过来的动作命令,控制AD某通道进行数据采集。这里选用Altera公司的EPM7128芯片。CPLD作为一个单独的控制执行结构,通过编写相应VHDL代码,即可生成相应的操作电路,实现对各种输入信号的锁存、判断和对控制信号的执行。
  A/D转换芯片选用TI公司的高速、低功耗、六通道同步采样的16 b转换器ADS8364,可保证采样精度达到12位以上。芯片内部包含六个采样保持器,可保证六路信号同时采样;信号输入范围为0~5 V,最大转换速度250K,可以满足电位计、旋变信号采集速度和精度的要求。并且数字逻辑电平为3.3 V。考虑到数据采集处理系统的采样频率一般较高,如果用DSP直接控制ADS8364的访问,将占用DSP较多的资源,同时对DSP的实时性要求也较高。因此在本系统设计中,用CPLD实现ADS8364的接口控制电路。
  陀螺模拟信号是-5~+5 V差分信号,通过信号调理,转化到0~5 V之间。当转速低的时候,因受系统影响信号上有毛刺,需要进行滤波,设计一个RC低通滤波电路去掉高频干扰即可。
4 系统软件流程
  系统中DSP软件代码主要由两部分组成:与上位机通信和对陀螺信号的采集。软件开发在CCS3.1(Code Composer Studio)中进行。
  系统上电后,首先完成DSP中各个寄存器的初始化,包括配置RAM模块,设置定时器、中断等,然后系统进入循环等待状态。进入中断,首先对双口RAM进行查询,监测是否有采集指令下发,如果有,则启动A/D,然后把数据通过双口RAM传给上位机,否则返回循环等待状态。
5 系统抗干扰设计
  为了保证控制系统工作时的稳定性和可靠性,在系统设计时应充分考虑到系统工作时的各种干扰情况,避免在设计完成后再去进行抗干扰的补救措施。电路板上每个IC的每个电源引脚要并接一个0.1μF高频电容,以减小IC对电源的影响;控制系统的驱动部分和控制部分应完全隔离,在控制信号加到驱动模块时应采用光耦隔离;对于大电流,频繁切换的元件,为了有效地减少由于发热引起的不稳定,在芯片上加上散热片;PCB布线时,电源线和地线要尽量粗,除减小压降外,更重要的是降低耦合噪声。数字地和模拟地的隔离,最后在一点接到一起等等。总之在设计中尽可能提高系统的抗干扰能力。
6 结论
  本光纤陀螺采集系统设计新颖,对信号采集设计有非常重要的意义。系统使用方便快捷,可以满足日常的研究需要,后续可以在软件中增加滤波对采集来的数据进行处理,使采集到的数据更有研究价值,使用更加便利。

基于单片机及CPLD的多间隔脉冲产生电路

2012年06月06日

  脉冲信号发生电路在电路实验和设备检测等工程中具有十分广泛的用途,例如某测试系统,需要给被测产品加入可调的多间隔脉冲激励信号,以使被测产品能按照要求工作在不同的状态。随着各种数字设备和工业标准持续、快速的发展以及市场对缩短产品开发周期的客观要求,脉冲信号发生电路已成为信号源市场的一大主流,其市场份额在迅速增长;同时,目前国内在测试中使用的脉冲发生电路几乎全部依赖进口。因此,研制出具有实用价值的脉冲发生电路,对满足国内、国际市场的需求具有重要意义。
1 系统总体结构
  1.1 系统设计思想
    系统采用模块化设计,单片机AT89S52和CPLD解密是整个系统的CPU,控制系统的协调。首先通过4×4按键模块设置系统脉冲信号的周期,选择脉冲输出方式,并给出状态指示;CPLD接收输入信号后与单片机进行数据通信,并将脉冲信号周期通过LCD1602显示,然后经过单片机和CPLD的数据处理,产生所需的脉冲信号,由CPLD输出。其中状态指示由3个不同颜色(红、绿、黄)的发光二极管给出,其电平由CPLD的I/0口输出;4×4按键模块键盘的前10个键位为数字0~9、第11个为小数点、第12到第14个为脉冲选择键A1,A2,A3用于选择输出方式(单头、双头、三头),另加一个确认键。
  1.2 AT89S52单片机简介
    AT89S52是一种低功耗、高性能的8位微控制器,具有8 k字节在系统可编程Flash存储器。AT89S52使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,AT89S52拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
    AT89S52具有以下标准功能:8 k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0 Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
  1.3 EPM7128SLC84的特点
    EPM7128SLC84是Altera公司开发的CPLD器件,属于MAX 7000S系列。在高集成度PLD器件中,MAX7000S系列是速度最快的类型之一,它内部为第二代MAX(MultipleArray Matrix)结构。除了集成度高的优点外,器件内部单元(cell)之间的连接采用连续的金属线,这种互连结构为单元之间提供了固定的、短时延的信号通道,从而消除了内部延时的难以预测性,并有效地提高了芯片资源的利用效率。
    EPM7128SLC84是基于EEPROM的可编程CMOS器件,其主要性能指标为:外部引脚数目为84,内部等效门数为2 500左右;内部有128个逻辑宏单元(Maerocell),每16个宏单元组成一个逻辑阵列块(LAB),每个逻辑阵列块对应8个I/O引脚;除通用I/O引脚外,EPM7128SLC84有两个全局时钟、一个全局使能和一个全局清零输入;器件最高计数频率为151.5 MHz,内部互连延时为1ns。
    EPM7128SLC84的主要特点为:支持通过JTAG口进行5 V电压的在片编程;宏单元的工作速率和功耗可编程选择,用户可决定每一个宏单元的工作模式——选择一般模式或是节能模式(功耗降低50%或更多,但延时加大);宏单元的触发器有独立的清零、预置、时钟和时钟使能控制,可通过编程进行设置;器件的引脚输出可设置,有以下3种选项:1)多电平I/O接口,通过硬件设置可使引脚输出支持5 V或3.3 V两种电平;2)输出回转速率(Slew-Rate)控制,用户可决定每一I/O引脚的输出回转速率,大回转速率缩小了信号通道的延时,但有可能加大瞬态躁声;3)集电极开路选择。具有一个完善、友好的软件环境支持器件开发,Ahera公司的EDA软件MAX+PlusⅡ集成了设计文件编辑、编译、仿真、时序分析和器件编程等各项功能,并能直接控制器件内部宏单元或输出引脚的设置;Altera的硬件描述语言AHDL与CPLD硬件结合紧密,并且提供优化的Megafunetion函数库,支持灵活地描述各类常用复杂电路,如计数器、锁相环等。
2 硬件电路设计
  2.1 单片机电路设计
    单片机应用系统工作时,除了进入系统正常的初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。所以系统的复位电路必须准确、可靠地工作。单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(即2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,系统采用按键电平复位方式。
    单片机AT89S52的P1口与液晶显示模块LCD1602的数据端口相连,P3.2控制液晶模块的读写;对比度调整端连接一个10 kΩ的可调电阻,用来调整液晶显示亮度。另外,单片机的P2口与CPLD的8个I/O口相连,以进行数据传输。
  2.2 CPLD电路设计
    晶振是为处理器提供频率基准的元器件,属于系统不可或缺的一部分。通常分为有源晶振和无源晶振两个大类,无源晶振要求芯片内部有震荡器,并且其信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确的匹配外围电路,如需更换晶振要同时更换外围电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。
    EPM7128SLC84需要提供外部时钟信号,由于CPLD对时钟精度要求甚高,通过前面的分析可知有源晶振的通信质量和精度较无源晶振高,所以采用1.000 MHz的有源晶体振荡器,电路的输出端口与处理器EPM7128SLC84的GCKL1连接。
3 系统软件设计
  单片机采用AT89S52芯片,通过软件编程产生所要求的控制信号。主要的控制参数包括:信号周期、脉宽、分频电路的开始信号、地址发生器的复位信号。在MAX+PLUSⅡ开发环境中完成分频电路设计,可以省去大部分的中小规模集成电路和分离元件;使得电路具有集成度高、工作速度快、编程方便、价格低廉的显著优点。通过CPLD和数据预生成的信号实现方法,无需改变硬件电路,即可实现信号参数的任意调整;同时外围电路十分简单,为工程调试和应用带来了方便。
4 结论
  所设计的脉冲信号发生器,充分利用了单片机及CPLD二者的优点,通过软件和硬件的结合,能够产生脉宽固定1μs,周期可调的单头、双头、三头脉冲,达到了设计要求,既可以作为普通脉冲信号源使用,也可以在一些特殊信号的条件下使用。

I2C器件接口IP核的CPLD设计

2012年05月14日

1 IP核简介
  IP核是指:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器、SDRAM控制器、PCI接口等等设计成可修改参数的模块,让其它用户可以直接调用这些模块,以避免重复劳动。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。许多公司推荐使用现成的或经过测试的宏功能模块、IP核,用来增强已有的HDL的设计方法。当在进行复杂系统设计的时侯,这些宏功能模块、IP核无疑将大大地减少设计风险及缩短开发周期。使用这些宏功能模块、IP核,就会将更多的时间和精力放在改善及提高系统级的产品方面,而不需要重新开发现成的宏功能模块、IP核。我国IP核库的建设已相当迫切,它是集成电路产业发展的一个重要目标。
2 I2C串行通信特点简介
  Philips公司推出的I2C软、硬件协议十分巧妙,在单主方式的I2C总线系统中,总线上只有一个单片机,其余都是带I2C总线的外围器件。由于总线上只有一个单片机成为主节点,单片系统永远占据了总线,不会出现竞争,主节点不必有自己的节点地址。只要每个外围器件有自己的器件地址,两根I/O口线SCL(时钟线)和SDA(数据线)就可以虚拟I2C总线接口。总线上传送的每一帧数据均为1个字节。启动总线后,要求每传送1个字节后,对方回应一个应答位。在发送时,首先发送最高位。每次传送开始有起始信号,结束时有停止信号。在总线传送完1个字节后,可以通过对时钟线的控制,使传送暂停,这时可在应答信号后使SCL变低电平,控制总线暂停。当主节点要求总线暂停时亦可采用同样的方法。
3 在MaxplusII环境下I2C串行扩展IP核的建立
  MaxplusII是美国Altera公司用于CPLD解密的EDA软件,内部有许多常用的宏单元,如计数器、四则运算、各类逻辑门乃至ROM、RAM等。这些宏单元内具体的参数都可以由用户来自行设定,这就是上面提到的IP核形式。它避免了重复劳动,提高了效率。以下将要设计的是下位机的IP核。
  MaxplusII的AHDL(Altera Hard ware Description Language)是Altera公司开发的完全集成于MaxplusII中的一种模块化高级语言,特别适合于描述复杂的组合逻辑、组运算、状态机和真值表。本文利用AHDL,直接生成IP核。
  设计思路是利用状态机实现时序。主要包括输入数据锁存、起始、数据传输、停止等状态机。通过状态机,在每一状态下确定下一状态SDA和SCL是高电平或者低电平,通过这种方式实现了I2C所需要的每一种时序。由于使用的是AHDL,这种状态机实现起来非常方便,程序简洁明了。由于篇幅限制,仅介绍数据传输的状态机。

简易通用型PCI接口的VHDL-CPLD设计

2012年05月10日

  用CPLD设计所构成的CPI接口系统具有简洁、可靠等优点,是一种行之有效的设计途径。很多技术杂志和网站上,都有不少用CPLD设计PCI常规传输系统的文章。但用这些方法在MzxPlusII、Fundition等环境下进行模拟仿真时,其产生的时序往往与PCI规范有很大出入。虽然 Altera 等公司推出PCI核可以直接使用,但这样的内核占用CPLD解密资源较多,且能适配的器件种类少,同时价格也高,在实际设计应用中有很大的局限性。因此,使用通用型CPLD器件设计简易型PCI接口有很大的现实意义。在Compact接口的CPLD设计中,笔者根据PCI总线传输时序来进行状态机构造,并使用VHDL语言进行功能模拟和定时分析,从而达到了预期目的。用该方法设计的CPLD-PCI接口既可支持PCI常规传输,也可支持PCI猝发传输,而且在系统编程和下载器件方面,效果也都很好。
1 典型的CPLD-PCI接口模型简介
  这里,CPLD/FPGA用于完成PCI主/从传输时序的逻辑构成与变换,并对双口RAM进行适当操作。在整个系统的设计中,CPLD常常使用PCI总线的33MHz时钟,双口RAM常常选用高速器件来简化PCI传输的逻辑设计。
2 PCI总线传输时序分析
  PCI总线传输至少需要40多条信号线,包括数据/地址线、接口控制线、仲裁、总线命令及系统线等。每次数据传输均由一个地址脉冲和一个或几个数据脉冲组成。一次传输一个地址和一个数据的称为常规传输;一次传输一个地址和一批数据的称为猝发传输。常用的控制信号有:帧同步信号FRAME、主设备准备好信号IRDY、从设备准备好信号TRDY、从设备选通信号DEVSEL、命令/字节信号C/BE等。
  分析PCI总线的传输时序,可以看出,PCI总线传输有以下几个显著特点:
  (1)每次数据传输时首先传出地址和命令字,从设备一般可从地址中确定是不是对本机的访问,并确定访问的首地址;而从设备则从命令字中识别该访问是读操作还是写操作;
  (2)读写访问只有在信号IRDY、TRDY、DEVSEL都为低状态时才能进行;
  (3)猝发传输通常需要通过逻辑来实现地址的自动递加;
  (4)主从设备中任一方没有准备好,操作中都需要能够引起等待状态插入的活动;
  (5)系统通常在帧同步信号FRAME的下降沿诱发数据传输,而在上升沿指明只有一个数据或只剩下一个数据;
  (6)读操作比写操作多一个中间准备过程。
3 基于CPLD的状态机设计
  3.1 状态机的构造
    完成一个简易PCI总线传输需要设计六个状态:S0~S5,其中状态S0标识PCI总线空闲时期;状态S1标识地址与总线命令识别阶段;状态S2标识读操作入口的准备阶段;状态S3标识读/写访问周期;状态S4标识最后一个数据传输阶段;状态S5标识操作中的等待时期。
  3.2 状态功能的确定
    各状态所应执行的功能如下:
      状态S0~S2用于对PCI总线置高信号TRDY和DEVSEL;对双口RAM则置高片选信号CS,以使读/写信号处于读状态,此时地址呈现三态。此外,在S1态还应依据地址信号来确定是不是对本机的选择,并识别是不是读或写操作。
      状态S3~S4用于对PCI总线置低信号TRDY和DEVSEL;对双口RAM则产生片选信号CS、读或写信号,同时确定适当的读写访问地址。
      状态S5用于对PCI总线置低信号TRDY和DEVSEL;并且对双口RAM置高片选信号CS,以使读/写信号处于读状态,此时地址呈现三态。
  3.3 状态变化的确定
    根据对PCI总线传输时序的分析,影响各个状态相互转化的因素是:帧同步信号FRAME、主设备准备好信号IRDY、从设备选择信号CS-MAP、读识别信号READ以及写识别信号WRITE。这里,可用CS-MAP、READ、WRITE来标识状态S1产生的中间识别信号。
    需要注意,在状态S1时要寄存收到的首地址,而在状态S3变化时要适时进行地址递增。
    还要注意状态机设计时产生的容错问题,以便在非设计状态下能够无条件回到空闲态S0。
    由于采用的是高速双口RAM,并且规划分开了RAM两侧的写操作区域,因此可以认为:RAM是可以任意访问的。
4 VHDL语言的描述
  设计时,使用三个进程和几个并行语句可实现整个CPLD的功能:一个进程用于完成从设备及其读写操作的识别;一个进程用于完成操作地址的获取与地址的递增;第三个进程完成状态机的变化。用几个并行语句完成操作信号的产生时,需要注意,各状态所完成的功能要用并行语句实现,不能再用进程,否则就会引起逻辑综合的麻烦,有时甚至根本不能综合。
5 MaxPlusII的验证
  设计CPLD时,可使用MaxPlusII软件来进行逻辑综合、功能模拟与定时分析。本例选用 Altera 的Max7000系列在系统可编程器件EPM7064SLC84-5。

基于电阻触摸屏和CPLD来实现多点触摸系统

2012年05月04日

  触摸屏是成熟的技术,最基本、也是最常用的是4/5线电阻触摸屏。很多标准屏支持多种尺寸,可以选择多种解码模拟解决方案。电阻触摸屏支持多种输入方法,比如手指、触摸笔、手套和指甲等等。电容触摸屏是一种新的解决方案,也有4/5线选择,标准屏比较少,复杂的模拟解码器解决方案也比较少。电容触摸屏比较适合手指的输入,不太适合指甲、触摸笔和手套的输入。电容屏幕最主要的优势是表面耐用性,成熟的电阻和电容触摸屏限于单点触摸。iTouch CPLD解密等产品则采用了多点触摸技术,多点触摸增加了人机接口,并增加了两路以上的同时输入或者触摸点。静态输入触摸的例子有键盘或者游戏手柄上的Shift键和Control、Alt、Delete功能键等,它们都有多路独立的控制;动态输入的例子有手势、命令、旋转动作或者收缩、扩大等等。使用过多点触摸技术以后,传统的触摸技术就显得太简单了。
  目前,可以使用到多点触摸技术的应用包括医疗影像(超声、X射线和MRI在进行图像处理时需要用到)、信息查询终端 (相片打印、零售信息查询终端、地图/导航等)、音乐/视频播放器(iTouch)、家电等。
多点触摸解码
  任何多点触摸解决方案都从触摸屏开始。文中的例子使用NKKSwitch的数字SmartTouch,型号为FTAS225-5.7A-N。还有别的供应商提供的尺寸不同的其他数字电阻屏。处理接口是I2C,但也可以使用其他接口。
  FTAS225-5.7A-N采用了5.7”叠层屏幕,15行×15列,触点分辨率为5mm×7mm。屏幕叠层实际上是15×15的开关矩阵。数字电阻屏叠层使用水平和垂直的铱锡氧化物(ITO)走线。走线之间是分开的,触摸时会使两层短路。
  在此次演示中,设计简化为8×8数字电阻触摸屏。本例子使用了处理器I2C接口,但是也可以为任何处理器提供任意串行或者并行接口。该设计只需要MAX II将数字电阻触摸屏与处理器连接起来,利用MAX II内部上拉电阻和内部振荡器减少外部元件。
  垂直寄存器在每一列为每一行进行采样,水平寄存器组成了移位寄存器,阵列每次都被驱动为低电平。当屏幕上没有点被触摸时,行探测信号保持高电平。当屏幕上第2行第2列被触摸时,导致第二行在C2采样期间被拉低。每次扫描显示屏时,I2C模块向处理器发送8字节数据。
  多点触摸解码是怎样工作的呢?三个触点导致扫描期间出现3个低电平脉冲。在某些3手指触摸条件下,简单解码器会错误地报告出现混叠信号,而后者是不正确的触点解码。3个触点必须呈三角形,其中两个点共享一行,两个点共享一列。
  改进后的解码器电路可以减小甚至消除混叠信号。首先,我们要做的是时钟速率提高,通常将时钟速率提高10-100倍。I2C时钟从100kHz提高到4MHz。增加了同步移位和采样使能信号(绿色)。 SFT是移位使能信号,SEN是采样时能信号。加入了时序控制模块,支持SFT至SEN延时调整(红色),支持移位使能信号对使能延时调整进行采样。时序控制模块能够减小移位使能采样,使能延时可以增大移位使能。采样使能延时独立地控制每一列、每一行延时。

Atmel电视机直接背光LED驱动器特性及应用电路

2012年04月28日

Atmel公司MSL4163/MSL4164是电视机直接背光LED驱动器。MSL4164具有20MHz SPI总线,每串LED的电流为100mA,电流精度和匹配度优于3%,可驱动16×10个白光LED,16个器件级联可驱动高达2560个白光LED。MSL4163提供1MHz I2C串口,器件包括先进的PWM引擎以及片上EEPROM等。主要用在电视和台式电脑监视器、医疗、工业仪表和汽车音/视频显示器。
  MSL4163则提供1MHz I2C串行接口,这种接口都能够为16个级联器件实现视频逐帧LED串强度控制,从而实现了有效区域调光。该器件采用了先进的PWM引擎,可以轻松地与视频信号保持同步,每串LED都具有相位调整功能,从而减少了不必要的CPLD解密现象,如运动模糊。此外,片上EEPROM让我们能够通过串行接口定制加电默认值。
  利用Atmel自适应SourcePower™技术,MSL4163/4能够适当控制为LED串供电的DC-DC转换器。这些效率优化器能够将功耗降至最低水平,同时还能保持较高的LED电流精度。
  独特的值电流控制和脉冲宽度管理组合提供了简单的全屏亮度控制、各种区域调光和稳定白点。利用1个外部电阻为所有LED串设定全局峰值参考电流,通过8位寄存器实现了全局峰值电流精调。利用8位全局强度寄存器调整全局灯串驱动脉冲宽度,利用12位寄存器调整个别灯串的脉冲宽度。
  MSL4163/4能够监测开路、短路、视频同步丢失和过热等故障条件,提供故障输出以便通知系统控制器。通过串行接口提供详细故障状态与控制。
  MSL4163/4采用6 x 6 x 0.75mm、40引脚TQFN封装,工作温度范围为-40℃~85℃。

Atmel推出低功耗AES-128安全应答器

2012年04月27日

微控制器及触摸技术解决方案的领导厂商爱特梅尔公司(Atmel®Corporation)宣布提供基于爱特梅尔AVR®微控制器(MCU)的新型超低功耗安全微模块(micromodule)应答器产品。用于汽车遥控无匙门禁系统的ATA5580应答器包含开放式防盗器(immobilizer)协议堆栈,内置有高性能AES-128硬件加密单元、一个用于电源和双向通信的低频(LF)防盗器接口cpld解密,以及一根低频天线。ATA5580单独式防盗器应答器可通过包覆成型工艺集成到简单的机械钥匙中,以提供齐全的遥控无匙门禁密匙功能。为此,ATA5580防盗器应答器和ATA5795遥控无匙门禁AVR微控制器具有相同的LF、协议与AES实施方案,允许在单一系统中无缝部署这两种类型钥匙。
  ATA5580应答器以触点阵列(LGA)类型封装为基础,无需使用引线框架结构,提供了业界最佳的静电放电保护(ESD),这对于严苛的环境,如包覆成型工艺来说尤为重要。
  ATA5580应答器具有超低功耗设计和高调制指数,在运行完整的AES认证时提供范围为1%的典型耦合因数。由于典型AES防盗器应答器具有更高的耦合因数要求,因而ATA5580具备独特的条件,可让汽车制造商从过时的加密系统转向AES加密方案,并且无需重新设计锁芯机械,免除昂贵的成本。
  AVR微控制器嵌入8kB闪存和2kB EEPROM存储器,存储有在制造期间编程的爱特梅尔开放式防盗器软件栈。该协议堆栈采用开源授权许可发布,实现真正的同等评议(peer-reviewing)过程和安全审查。
  现在市面上所有的传统竞争产品都采用均一的通用模式,相比之下,ATA5580应答器协议能够通过EEPROM进行大量配置,可让设计人员针对耦合因数/位安全性轻易优化如认证时间等系统参数,最大限度地提高特定环境的通信连接稳健性。
  爱特梅尔公司汽车门禁产品营销经理Jedidi Kamouaa博士表示:“防盗器系统是汽车门禁系统的最关键部分,它们完全不允许出现故障。ATA5580应答器提供了别具吸引力的高安全性AES加密和采用非安全防盗器算法的基础应答器状态机通常具有的耦合因数要求组合。这款器件证明AES并不意味着高功耗。”

基于CPLD的RS-232串口通信实现

2012年04月25日

  CPLD(Complex Programable Logic Device)是一种复杂的用户可编程逻辑器件。采用连续连接结构,延时可预测,从而使电路仿真更加准确。CPLD解密是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。开发工具Quartus II、ISE等功能强大,编程语言灵活多样,使设计开发缩短了周期。
  随着嵌入式的发展,对数据的传输和人机交互通信的要求越来越高。而串口通信因其资源消耗少、技术成熟而被广泛应用。系统中上位机与嵌入式芯片之间的交互通信可以通过专用集成芯片作为外设RS-232异步串行接口,如TI、EXAR、EPIC公司的550、452等系列UAWT集成电路,或在拥有Nios系统的FPGA上可以方便地嵌入UART模块。但是在设计中用户会提出自己的要求,如:数据加密或只使用UART部分功能等,即要求更灵活的UART.而且有时CPLD资源剩余,出于成本考虑也会要求设计一种模拟的UART.对于上述的两种情况,就可以在CPLD其丰富的资源上制作一款UART,实现PC机与嵌入式系统之间的数据交换。
1 串口通信协议
  1.1 UART简介
    通用异步收发器(Universal AsynchrONous Receiver Transmitter,UART)。异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小。具有相关工业标准提供的标准的接口电平规范等优点,在工业控制领域被广泛采用。
    异步通信一帧字符信息由4部分组成:起始位、数据位、奇偶校验位和停止位。
  1.2 自定义数据包格式
    多个上文所描述的帧就可以组成一个数据包。串口通信是在RS-232数据帧结构的基础上定义的,传输以数据包为单位进行。
    本文采用和校验的结构,一个数据包包含15 Byte.其中第1个字节是数据包头即握手字符。第2字节为控制字符,EE代表写命令,DD代表读命令。第3至第14为可利用数据。第15字节作为校验字符,理论上应等于这个数据包中数据字符串之和的后8bit.
2 设计方案
  2.1 UART的设计结构
    笔者设计采用模块化设计,方案的UART主要由逻辑控制模块、波特率发生模块、发送模块和接收模块等组成。波特率发生模块可以建立精确的时钟,确保数据采样准确、工作时序顺畅。逻辑控制模块、波特率发生模块、发送模块和接收模块完成工作有:确定数据起始位、数据收发,串并转换、建立握手连接、判断命令、数据校验等功能。
  2.2 状态图
    利用串口通信在数据交互过程中涉及到了多种工作状态,情况比较多样,而利用程序设计中的有限状态机(FSM)理论进行编程设计,这个问题可以迎刃而解。
    有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,有限状态机的状态(即由寄存器组各位的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态。
    本设计的有限个状态编码使用独热码形式,即寄存器组每一个bit位代表一种状态(如“0100”,“1000”为四态机中的两种状态),这种状态码的好处是避免了状态混乱。状态机采用Mealy型有限状态机,这种状态机的下一个状态不但取决于各个输入值,还取决于当前所在状态,符合UART的工作原理。
    逻辑控制模块、数据接收模块和发送模块的设计都使用到了状态机,其中以逻辑状态机为主状态机,其余两个为从状态机。确定各种工作状态和工作流程后便可构建出状态图,方便直观地进行后续设计。
3 各模块设计
  3.1 波特率发生器
    串口通信必须要设定波特率,本设计采用的波特率为9 600 bit/s.产生波特率的时钟频率是越高越好,这样才可产生较高且精确的波特率。设计选用50M主频率要产生9600bit/s波特率,每传送一位数据需要5 208.33个时钟周期。取一个最接近的数是5 208,则波特率为9 600.61,其误差约为0.006%,误码率很低可以确保通信正常。
    波特率发生器要解决的另一个关键性问题是确保准确地捕获起始位“0”。即时准确地捕获起始位不仅决定通信是否顺畅开始,而且还影响后续的数据采样过程可靠地进行。方案采取了16分频的波特率发生器,即通过对50 M总时钟源分频,得到一个9 600×16 Hz的时钟进行数据传输,这样每16个时钟信号采样1 bit数据。在Rxd数据接收端口接收到从空闲高电平“1”跳变为起始位低电平“0”信号后,连续8个分频周期确认是否是起始位。若是连续的低电平则捕获起始位,自此之后每16个时钟周期读取1 bit数据。这种方法不仅确保了起始位的准确捕获,而且使数据采样点处于了数据的正中央保证了数据的准确。
  3.2 接收器
    在波特率发生器捕获起始位并启动后,接收器将开始工作。其主要工作是接收每一位数据,将串行数据移位存入缓冲寄存器,并在接收完一字节数据后将数据存入锁存器完成串并转换,同时发出char_ok信号通知逻辑控制模块一个字节的数据已经接收完毕。
  3.3 逻辑处理模块
    逻辑处理模块是模拟UART的决策模块。它主要完成PC机与CPLD的握手、数据处理和数据校验、状态分析与给收发模块提供决策。
    PC机要向CPLD发数据时,先向串口发送FF,FF表示PC机要与CPLD建立联系。CPLD收到这个信息后,由逻辑模块的talk信号通知发射模块握手情况,发送器通过串口给PC机反馈信息,DD表示CPLD收到了PC机的要求并同意建立联系,CC表示握手不成功PC机可以再次发出请求。握手成功后,PC机要向CPLD发出命令字符,E1表示写,E2表示读。
    随后进入数据接收或发送状态,每个数据包接收完毕后逻辑处理模块进入下一状态–数据校验状态。根据上文提到的本设计的数据校验采用和校验,数据校验完后逻辑处理模块会根据校验结果给出信号check,通知发送模块Txd发送反馈信息给PC机。
  3.4 发送器
    [...]

Altera发布了基于FPGA的视频分析解决方案

2012年04月20日

进一步延续其在基于FPGA的视频监控解决方案上的领先优势,Altera公司 (NASDAQ: ALTR)日前发布了面向监控系统数字视频录像机(DVR)和网络视频录像机(NVR)的四通道标准清晰度(SD)视频分析解决方案。与Eutecus公司联合开发,Altera最新的视频分析解决方案支持用户使用一片FPGA同时分析四路D1 480p/30fps (每秒帧数)视频通道。用户可以在现有SD监控投入上迅速高效的增加功能,不需要购买集成了分析功能的新摄像机。
  Altera的视频分析解决方案包括低成本、低功耗Cyclone  IV FPGA,以及Eutecus的多核视频分析引擎(MVE™)知识产权(IP)内核,它在FPGA中完成分析功能。与DSP或者传统的基于服务器的方法相比,这一解决方案支持设计人员采用单片FPGA来替代多个DSP处理器,从而降低了成本,而功耗不到3W。Altera基于FPGA的视频监控解决方案非常适合用户设计实现多种应用,包括,银行、教育、城市、工业、政府和车流量监控等系统。
  这一基于FPGA的视频分析解决方案非常灵活,支持设计人员定制他们自己的视频监控系统。Eutecus的MVE™ IP结合了大量的并行算法以及特殊的多核协处理器,多个Altera® オンライン カジノ Nios® II内核集成在Cyclone IV FPGA中。这一解决方案还提供软件GUI,支持设计人员针对他们的特殊应用来定制事件探测参数和规则。Eutecus的IP包括可靠的应用程序接口(API),支持用户链接自己的视频管理系统,或者用于开发自己的定制GUI解决方案。
  Altera军事、工业和计算部资深副总裁Jeff Waters评论说:“Altera和Eutecus的高性能、低成本、低功耗基于FPGA的视频分析解决方案专门设计用于为视频监控系统开发人员提供灵活的平台,突出最终系统的优势。帮助设计人员快速方便的获得硬件和IP,支持用户在现有监控设备上高效的扩展他们的分析功能,迅速将产品推向市场。”
  Eutecus CEO兼总裁Csaba Rekeczky评论说:“Altera的Cyclone IV FPGA及其Quartus II软件环境是Eutecus新一代MVE解决方案理想的模块化设计环境。视频分析用户可以在单通道IP摄像机和多通道DVR/NVR上采用Eutecus高度模块化、灵活的可更新IP产品以及Altera的低成本、低功耗、可定制FPGA,从而充分发挥我们公司之间密切的合作优势。”
  Altera全面的低成本、低功耗视频监控解决方案面向高清晰度(HD)和标准清晰度(SD)分辨率系统。2011年,Altera和Eutecus推出了业界的第一款基于FPGA的视频分析解决方案,实现了全HD 1080p/30fps实时视频处理能力。使用相同的处理引擎,两家公司能够为四通道D1分辨率系统迅速定制HD引擎,在低分辨率多通道解决方案基础上满足用户更高的要求。


在线咨询