基于京微雅格低功耗FPGA的8b/10b SERDES的接口设计
串行接口常用于芯片至芯片和电路板至电路板之间的数据传输。随着系统带宽不断增加至多吉比特范围,并行接口已经被高速串行链接,或SERDES (串化器/ 解串器)所取代。起初, SERDES 是独立的ASSP 或ASIC 器件。在过去几年中已经看到有内置SERDES 的FPGA 器件系列,但多见于高端FPGA芯片中,而且价格昂贵。
本方案是以CME最新的低功耗系列FPGA的HR03为平台,实现 8/10b的SerDes接口,包括SERDES收发单元,通过完全数字化的方法实现SERDES的CDR(Clock Data Recovery,时钟数据恢复),完成100~200Mhz的板间SERDES单通道通信,该SERDES接口方案具有成本低、灵活性高、研发周期短等 特点。
1硬件接口:
硬件的接口如上图所示,主要包括发送与接收模块。
发送模块包括8b/10b编码器,并串转换器,锁相环(PLL)频率合成器和发送器,接收模块包括 8b/10b解码器,Comma 检测器,串并转换器,时钟数据恢复器(CDR)和接收器。
8b/10b编码器用于将从上层协议芯片发送过来的字节信号映射成直流平衡的 10 位8b/10b 编码,并串转换用于将 10 位编码结果串行化,并串转换所需的高速、低抖动时钟由锁相环提供,发送器用于将 CMOS 电平的高速串行码流转换成抗噪声能力较强的差分信号,经背板连接或光纤信道发送到接收机。
在接收端,接收器将接收到的低摆幅差分信号还 原为 CMOS 电平的串行信号,CDR 从串行信号中抽取时钟信息,完成对串行数据的最佳采样,串并转换利用 CDR 恢复的时钟,将串行信号转换成 10 位的并行数据,Comma 检测器检测特殊的 Comma 字符,调整字边界,字边界正确的并行数据经过 8b/10b 解码,还原为字节信号,传送到上层协议芯片,完成整个信息传输过程。
实际的设计中,CDR部分是由纯逻辑电路完成的,为设计的核心的部分,下面将介绍数字CDR在HR03的实现方案。
2数字CDR:
CDR模块作用是从数据中恢复嵌入的时钟,然后接收器按照恢复的时钟进行数据位对齐并通过comma进行字对齐。最后,将数据进行8b/10b解码,供系统使用。
本方案采用同频多相的时钟采样方法,具体实现过程利用PLL产生4个时钟频率相同,相位相差90度的时钟,分别为clk0、clk90、clk180、 clk270,这四个时钟输出完全同步,利用4个时钟对数据进行采样,以获得4倍过采样的效果,具体的实现过程如下图所示:
在数据时钟恢复时,将到来的数据分别输入到四个触发器,分别用4个不同的相位进行采样,要注意保证从输入引脚到四个触发器的延迟基本一致。
第一列触发器的触发分别由时钟CLK0、CLK90、CLK180、CLK270的上升沿触发,按照这样的方式来触发就可以得到四个数据采样点。这样就 将原始时钟周期分成了四个单独的90度的区域,如果系统时钟为200MHz,上图所示的电路就相当于产生了800MHz 的采样速率。
仅通过一阶的触发器,输出的采样数据存在亚稳态的问题,因此需对采样点作进一步的处理。这里可将四个采样点通过进一步的触发,除掉亚稳态的问题,从而使采 样点移到下一个相同的时钟域。通常,亚稳态的去除要经过两三级的处理,这就使得在有效数据输出前会有数位无效的数据,在数据采样的第一个阶段,电路检测数 据线上数据的传输。当检测到有数据传输时,对传输数据的有效性进行确认。确认数据有效后,输出高电平来指示采样点有数据传输。
因为最终有四个输出,所以需要一个复用器来选择数据。发送数据与采样时钟的对应关系如上图所示,其对应关系分为4种情况,每种情况下对应一个最佳的采样 时钟,系统通过对数据边沿位置信息的判断,来确定哪路时钟为最佳采样时钟,并利用复用器从选定的时钟域中选择数据位,例如检测电路确定从时钟域A中采样的 数据有效,那么将时钟域A中采样的数据通过输出端输出。
3结束语:
通过对纯数字电路的CDR电路,在没有硬核的支持下,完成了FPGA上SERDES的接口设计,并通过实验的传输测试,在HR03的FPGA上,可完成100~200Mbps的数据传输。
作者:京微雅格系统应用工程师 易晶晶
基于FPGA的智能小车设计方案
智能监控机器人是近年来机器人应用工程中一项前沿性的题目,智能化探测小车是智能行走机器人的一种。智能监控机器小车就是针对上述情况,在参考 了目前大多数智能机器人的基础上,以降低成本为原则设计的。小车具备温湿度和环境监测、无线通信、躲避障碍物以及无线遥控等功能。此智能监控机器小车与目 前已有的同类设计相比,有性价比高、操作方便、可靠性好、功耗小等优点。
1 系统结构及硬件设计
整个系统由发送端(智能小车部分)和接收端(控制台:控制和显示部分)组成,如图1所示。系统由传感器系统、动力及转向系统、CCD图像传感器模块、 LCD显示、温度和湿度测量电路和供电系统等组成,整个系统的控制核心以2片Altera公司的EP2C20F484为核心,在Altera公司的 QuartusⅡ和SoPC Builder开发环境中完成。根据系统硬件结构添加所需要的外围模块并生成NiosⅡCPU。
1.1 供电系统
小车安装了两块充电电池,分别为FPGA开发板(FPGA控制电路)和小车运动提供能量,电池置于车身底部。
1.2 传感器系统
系统采用了6个红外对射传感器,通过FPGA配置的NiosⅡCPU来检测传感器信号实现小车躲避障碍物的功能。漫反射型红外对射传感器也称光电开关, 是一种集发射器和接收器于一体的传感器,多用于检测障碍物。原理是由光电开关辐射出来的调制红外光束被检测物体反射回来,红外线经同步选通接收,由电子开 关线路驱动回路,从而来检测物体的有或无。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式。这种电路模块体积小,信号容易 转化为标准电平。
1.3 动力及转向系统
本小车有左右轮两个电机及龟机驱动。驱 动电路采用了CT Microelecttonics公司的大功率直流电机驱动芯片L298,最高支持50 V电压,最大电流为5 A,满足大功率电动机的要求,外围电路简单,同时,由于该芯片为双路结构,分别控制左右电动机,增加了电路的可靠性,减少了复杂性。电机控制采用PWM脉 冲宽度调制方式来控制汽车的前进速度。由NiosⅡCPU写入控制字,可得到不同占空比的PWM驱动信号,此PWM信号送入电机驱动芯片的控制端来调节速 度。
1.4 小车自动避障系统
小车自动避障系统采用Verilog HDL语言编写驱动电路。该模块(见图2中的MOTOR)和一个数据选择器(见图2中的select_2)相连来实现自动避障与人工遥控之间的切换。当小 车上NiosⅡCPU的SEL管脚输出低电平时,数据选择器将把该模块的输出作为电机的控制指令。这样设计的好处在于设计具有响应迅速,不需要NiosⅡ CPU参与,提高了CPU处理湿度、温度数据并控制无线模块收发数据的效率。该逻辑电路的工作原理是根据红外传感器发回来的数据,经过逻辑判断来控制电机 的工作状态。
1.5 小车的人工控制
小车的人工控制和自动避障之间的转换由一个数据选择器控制,当小车上NiosⅡCPU的SEL管脚输出高电平时,数据选择器将把无线模块所发送过来的指令作为电机的控制指令,实现了对小车的无线控制。
1.6 温度和湿度测量
在温度测量系统中,采用抗干扰能力强的新型数字温度传感器DS18B20,该系统设计中将DS18B20的1,3引脚分别接于FPGA板的GND 和+3.3 V管脚,2引脚接FPGA的I/O脚,传输控制及数据信号。DS18B20最高可用12位表示温度值,最高5位为符号位。
采用HS1101湿度传感器,具有响应速度快,工作温区宽(-40~+100℃),测量范围大(0%~100%RH),可靠性高,稳定性好,功耗低,外围电路简单等优点。
工作原理为:用HS1101传感器与TLC555构成多谐振荡器,HS1101传感器内部电容会随湿度的变化而变化,从而使输出频率发生变化。编写VHDL程序在FPGA设计一个频率计可精确的测出频率值,通过输出频率与湿度的关系便可得到湿度值。
1.7 无线收发系统
系统采用PTR4000无线嵌入式模块,工作频率为2.4 GHz,最高工作速率可达1 Mb/s,高效GMSK调制,且有CRC检错功能。具有低功耗,抗干扰能力强,体积小等优点。主要有三种工作模式,分别为:配置模式、 ShockBurst发送模式和ShockBurst接收模式。
2 软件设计和调试
采用NiosⅡ进行C语言编程。NiosⅡ集成开发环境(IDE)是NlosⅡ系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以在Nios ⅡIDE下完成,包括编辑、编译和调试程序。NiosⅡIDE是基于开放式的、可扩展Eclipse IDE project工程以及EclipseC/C++开发工具(CDT)工程,NiosⅡIDE为GCC编译器提供了一个图形化用户界面,可以支持标准C。 NiosⅡIDE编译环境自动地生成一个基于用户特定系统配置(SoPC Builder生成的SoPC文件)的makefile,有利于程序的开发。
NiosⅡIDE包含一个强大的、在GNU调试器基础之上的软件调试器——GDB。完成软件代码的编写后,可以对代码进行仿真和调试。Nios-Ⅱ IDE提供了一个方便的闪存编程方法。任何连接到FPGA的兼容通用闪存接口(CFI)的闪存器件都可以通过NiosⅡIDE闪存编程器来烧结。针对本设 计及应用,编写了系统控制程序和LCD显示程序。流程图如图3所示。
3 系统调试
小车系统需要测试能否准确接收控制台发送的指令并控制小车运动或停止,以及向前、后、左、右转向。还要测试主控机能否准确接收小车采集到的温度以及湿度 信息,能否正确显示。经过多次测试,发现由于系统程序是采用收发循环转换的模式,为了让两个系统能够收到对方发的信息,对小车的遥控与自动部分进行简单的 分化。自动情况下,控制台为主要接收端,小车为主要发送端,一般情况下小车发送数据到控制台,需要自动到遥控的转换时,通过在延时时间内进行中断来实行从 自动到遥控的转换;在遥控状态下,控制台为主要发射端,小车为接收端,一般情况下控制台发送小车行进指令到小车,需要采集数据时,通过温度、湿度采集按键 来对小车进行收发转换,同时小车发出采集数据指令,之后再次转为接收模式。这样做之后使小车与控制台的软件部分清晰明了,小车的行进以及采集显示数据能够 实时的进行。
湿度测量系统需要测试是否能够精准输出频率值。采用芯片LM555手册上推荐的电路,由于元件的误差,使输出的频率并不精 确,经过与标准的湿度仪进行比对,通过参数调整,用直线做近似,最后得到的频率值误差在几赫兹(频率范围是6 008~7 314Hz),经过预算得到很准确的湿度值。开始求湿度值时用的是解一元三次方程的方法,由于计算量大,对小车的行进会有很大影响,后来在小车端只是把小 车采集到的频率值通过红外天线传输到主控端,并将原先的小车自动避障由NiosⅡCPU控制改为由Verilog编写的硬件模块控制,最后在控制台做湿度 值的计算。这样的更改既减少了小车NiosⅡCPU的工作量,同时由于小车的自动避障改为由独立的Verilog模块控制,运行起来很流畅。
对于无线收发系统,要测试其可靠性以及发送或接收的信息的准确性。测试方法是单独设计了一个软核下载到SoPC中,并编写一段程序用于测试是否正确写入 配置控制字,是否能够进行ShockBurst模式的接收或发送。问题是对天线各模式时序的把握,一开始写的程序总是不能正确写入配置字,反复调试,并用 数字示波器观察写入配置字的瞬间过程以及各延时的时间,最后测试成功,并把发送或接收的状态用LED显示出来,每发送或接收到一个数据包就让LED闪一 下。
4 结语
本设计以FPGA嵌入NiosⅡ软核处理器为核心,辅以必要的外围 电路,构成了高度集成化的片上系统。另外,SoPC系统的柔性配置,使得可以基于此系统扩展片外存储器和多路输出。设计的小车具有较强的避障能力,且能通 过接收端对其进行方便的控制,温度和湿度采集均达了较高的精度,并且能实现动态显示,无线收发模块的有效范围最远可达300 m,可应用于较为恶劣的环境,可代替人进行温度和湿度的实地检测。
基于SoC FPGA进行工业设计及电机控制
工业市场的近期发展推动了对具有高集成度、高性能、低功耗FPGA器件的需求。设计人员更喜欢网络通信而不是点对点通信,这意味着可能需要额外的控制器用于通信,进而间接增加了BOM成本、电路板尺寸和相关NRE(一次性工程费用)成本。
总体拥有成本用于分析和估计购置的寿命周期成本,它是所有与设计相关的直接和间接成本的扩展集,包括工程技术成本、安装和维护成本、材料清单(BOM)成本和NRE(研发)成本等。通过考虑系统级因素有可能最大限度地减少总体拥有成本,从而带来可持续的长期盈利能力。
美高森美公司(Microsemi)提供具有硬核ARM Cortex-M3微控制器和IP集成的SmartFusion2 SoC FPGA器件,它采用成本优化的封装,具有减少BOM和电路板尺寸的特性。这些器件具有低功耗和宽温度范围,能够在没有冷却风扇的极端条件下可靠地运行。 SmartFusion2 SoC FPGA架构将一个硬核ARM Cortex-M3 IP与FPGA架构相集成,可以实现更大的设计灵活性和更快的上市时间。美高森美为电机控制算法开发提供了具有多个多轴电机控制参考设计和IP的生态系 统,使由多处理器解决方案转向单一器件解决方案(即SoC FPGA)更加容易。
影响TCO的因素
以下是影响系统TCO的一些因素。
(1)长寿命周期。FPGA可以在现场部署之后进行重新编程,这延长了产品的寿命周期,从而使设计人员能够专注于新产品开发,实现更快的上市时间。
(2)BOM.美高森美基于闪存技术的FPGA在上电时无需启动PROM或闪存MCU来加载FPGA,它们是零级非易失性/即时启动器件。与基于SRAM的FPGA器件不同,美高森美基于闪存的FPGA无需附加上电监控器,这是因为闪存开关不会随电压而改变。
(3)上市时间。OEM厂商之间的激烈竞争迫切需要更多的产品差异化和更快的上市时间。经过验证的IP模块可大幅缩短设计时间。目前已经可以提供多个构 建工业解决方案所需的IP模块,同时更多的模块正在开发中。SoC表现出的另一个独特优势是可以用于调试FPGA设计。为了调试FPGA设计,可以通过用 于调试的高速接口,利用微控制器子系统从FPGA中提取信息。
(4)工程工具成本。与FPGA开发工具昂贵的概念相反,美高森美提供用于FPGA开发的免费Libero SoC IDE,仅在开发高端器件时才需要付费。
工业驱动系统
工业驱动系统由一个电机控制器件和一个通信器件构成,电机控制器件包含了驱动逆变器的逻辑和保护逻辑,通信器件则使监控控制能够对运行时间参数进行初始化和修改。
图1:典型工业驱动系统。
在典型的驱动系统(图1)中,可能使用多个控制器器件来实现驱动逻辑。一个器件可能执行与电机控制算法相关的计算,第二个器件可能运行与通信相关的任务,第三个器件则可能运行与安全性相关的任务。 |