硬件电路设计规范范文

时间:2023-10-10 17:26:22

导语:如何才能写好一篇硬件电路设计规范,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

硬件电路设计规范

篇1

[关键词]数字电子电路;EDA技术;应用;探究

在微电子技术飞速发展的背景下,数字电子电路的设计的难度也在不断加大,电子产品翻新的速度也在不断加快,这给数字电子电路设计带来了较大的压力。EDA技术是数字电子电路的设计中较为先进的技术,具有其他技术不具备的优势,使数字电子电路的设计得到了革命性的发展[1]。EDA技术的优势在于当程序修改错误时,不需要使用额外的硬件电路,且在使用EDA技术进行电子产品设计时能够使电子产品的成本降低和设计周期缩短。因而,EDA技术在数字电子电路设计中得到了越来越广泛的运用,也推动了数字电子电路的设计领域的变革,促进电子产品的发展。对此,我们需要EDA技术在数字电子电路的设计中应用有所了解。

1EDA技术概述

EDA(ElectronicDesignAutomation,电子设计自动化)技术是逐渐从计算机辅助测试、计算机辅助制造、计算机辅助设计以及计算机辅助工程中发展而来的[2]。该技术主要是将计算机作为载体,在EDA软件平台上,设计者主要采用硬件描述语言VHDL进行设计,进而由计算机自动完成各项工作。EDA技术是一种融合了当前多种新型技术的新技术,它以计算机为载体,将计算机技术、信息技术、电子技术以及智能技术相互融合起来,进而完成电子产品的自动化设计工作,这样有效促进了电路设计的可操作性以及效率性,不仅保障了电路设计的质量和效率,同时也极大地减轻了设计者的工作强度,同时也降低了电子产品的生产成本。具体来说,EDA技术的特点以及EDA技术设计流程如下。

1.1EDA技术的特点

相比于传统的CAD(ComputerAidedDesign,计算机辅助设计)技术而言,EDA技术具有显著的特点。首先一点,EDA技术在硬件电路选择软件设计方式方面上,它可以选择多种设计输入,如VHDL语言、波形等等,它在完成下载配置前能够在没有硬件设备的情况下能够自行完成。与此同时,它在修改硬件设备也是非常简单、易于操作,这种修改硬件设备的方式和软件程序修改方式非常接近,采用软件测试的方法对其进行测试,这样就能科学有效地设计特定功能的硬件电路[3]。第二点,EDA技术能够仪自动化的形式进行产品直面设计。它可以通过HDL语言和电路原理图等自动化的逻辑编译的相关程序输入其中,并生成相应的目标系统。简单说来,这种技术能够以计算机为依托,从电路功能模拟、电路性能分析、电路的设计以及优化、电路功能的测试和完善等全部流程都可以以自动化的形式实现。第三点,EDA技术具有较高的集成化特点,并可以自身构成片上系统。EDA技术在数字电子电路设计中是以芯片为载体进行设计的一种设计方式。因而,当前大规模集成线路的不断发展能够有效促进繁杂的芯片设计工作的完成,同时也能够完成专业化的集成电路设计[4]。第四点,EDA技术可以大大提高系统升级的工作效率,它能够当场进行目标系统的编程,实现有效的系统升级。第五点,EDA技术具有自动化的特点,且进行技术开发的时间并不长,且能够有效节约设计的费用,避免了资源的浪费,同时EDA技术也具有极大的灵活性和实用性,可操作性较强。

1.2EDA技术设计流程简介

EDA技术对于数字电子电路设计的意义可以认为是它将推动了数字电子电路设计的一个发展变革,使其进入了一个发展的新时期。传统的电路设计的模式多是以硬件搭试调试焊接的方式,而E-DA技术以计算机自动化的设计模式对传统的电路设计模式进行了创新。EDA技术设计流程主要包含8个流程依次为[5]:设计指标设计输入(将电路系统采用一定的表达式输入计算机,其中包括图形输入以及文本输入)逻辑编译(将设计者在EDA中输入的图形或文本进行有效的编排转化)逻辑综合(将电路中高级的语言转化为低级的,并与基本结构相应射)器件适配(将由综合器产生的网表文件配置到指定文件中,使之能够下载文件)功能仿真(跟进吧算法和仿真库对涉及进行模拟,以验证其涉及是否和要求一致)下载编程(将适配后生成的配置文件和下载文件以编程器下载)目标系统。

2可编程逻辑器件

数字逻辑编辑器具有自身的发展历程,一般可以将其分为分立元件、中小型标准芯片以及可编程逻辑器件等三个阶段。对逻辑器分类方面可以将其分为固定逻辑器和可编程逻辑器。其中固定逻辑器的电路是固定的、不可变的,而可编程逻辑器则可以为使用者提供多种逻辑能力,也可以在不同的时间内进行改变,进而完成不同的功能[6]。可编程逻辑器件(programmablelogicdevice,PLD)产生于通用集成电路,根据使用者对器件编程来确定其逻辑功能。可编程逻辑器件具有较高的集成度,一般能够满足大多数数字系统设计的需求。在科学技术快速发展的情况下,可编程逻辑器件也随之不断发展。当前,可编程逻辑器件已经成为解决逻辑方案的首选,这主要是因为它能够根据用户的需求进行相应的产品功能增加以及产品升级,且操作较为简便,具有低成本、低消耗、多功能、高集成性等优势。与此同时,当前一些公司也在不断对其进行研究,不断完善可编程逻辑器件的功能,并获得了较为显著的效果,如Altra公司的FLEX10K的系列产品、Xilinx公司的XC4000的系列产品[7]。

3VHSIC硬件描述语言

VHSIC硬件描述语言(Very-High-SpeedInte-gratedCircuitHardwareDescriptionLanguage,VHDL)是电路设计中使用的一种高级语言,主要在20世纪80年代由美国国防部认定的标准硬件描述语言,之后其他公司纷纷推出了VHSIC硬件描述语言设计环境。对此,我们需要对VHSIC硬件描述语言具有一个较为清晰的了解。数字电子电路设计的第一步就是使用EDA技术以及相应的软件开发工具进行设计输入。简单地说就是简要描述电路设计、硬件设计以及测试方法。在设计一些规模不大的数字电子电路时,一般硬件描述的方式为原先的时序波在设计一些大规模的数字电子电路时,其描述方式就需要采用具有较强针对性的硬件描述语言。VHSIC硬件描述语言不仅能够详细描述硬件电路的功能、定时与信号连接的关系,而且还能采用简洁的模式准确描述硬件电路中逻辑较为抽象的部分[8]。由于VHSIC硬件描述语言具有详细准确描述硬件电路功能的特征,因而,VHSIC硬件描述语言成为EDA技术在数字电子电路设计中最为常用的设计输入方式和描述语言。在数字电子电路设计中,VHSIC硬件描述语言已经成为使用最为广泛的硬件电路应用描述语言。这主要是因为VHSIC硬件描述语言具有硬件特点的语句,其结构和语法具有高级计算机具有高度相似性。除此之外,VHSIC硬件描述语言在程序结构上也有着十分明显的优势,它进行实体设计时能够将其设为可视部分和不可视部分。从中可以发现,VHSIC硬件描述语言与综上所述,可以看出VHDL硬件描述语言比传统的其他硬件描述语言相比,如AHDL、VBLE,具有强大的描述功能,能够有效规避器件的复杂结构,进而对数字电子电路设计进行有效的描述[9]。具体说来,与其他硬件描述语言相比,VHSIC硬件描述语言的特点主要有以下几个方面:其一,具有强大的功能以及灵活的设计。这主要是VHSIC硬件描述语言有着功能强大的语言结构,能够采用简短的语言进行复杂逻辑的描述;同时,它也具备多层次的设计功能,支持多种设计方法。其二,具有广泛的支持性,且易于修改。由于VHSIC硬件描述语言已经成为使用最为广泛应用描述语言,因而具有广泛的支持性;由于其结构化和易读化的特征,因而易于修改。其三,系统硬件描述能力强大,VHSIC硬件描述语言可以进行结构描述、寄存器传输描述、行为描述,也可以进行三者混合描述。其四,与器件设计相对独立,在进行VHSIC硬件描述语言可以不用考虑器件设计情况,专心用于VHSIC硬件描述语言设计的优化。其五,移植能力强,能够共享。VHSIC硬件描述语言设计完成后可以将成果进行分享,避免电路的重复设计。除此之外,VHSIC硬件描述语言还具有其他的特征:其一,VHSIC硬件描述语言属于设计输入语言,它能够通过计算机详细描述硬件电路的运行状态,并将其与数字电路的设计系统自动综合。其二,VHSIC硬件描述语言是常用的测试语言,它能够以测试基准对数字电子电路进行可以仿真与模拟,进而判断其功能情况。其三,VHSIC硬件描述语言是标准化语言,它是当前设计语言中使用最为广泛的语言之一,也是当前电子领域普遍认可的标准化语言。其四,VHSIC硬件描述语言是可读性语言,它不仅可以被计算机识读,同时也可以被设计者识读。其五,VHSIC硬件描述语言一种网表语言,它独特的语言结构让其在计算机设计中工作较好,同时它在设计工具间联系的格式中属于低级设计工具,即它在门级网表文件形成中具有相互转化的功能和高度兼容性。

4EDA技术在数字电子电路设计中的应用

我们可以通过设计一个数字钟电路来展现E-DA技术在数字电子电路设计中的应用,该数字电路钟能够显示秒、分、时。

4.1准备的设备

本次实验主要是选用FPGA芯片EDA技术实验工具以及电子计算机。

4.2实验设计方法

依照EDA技术的设计规范进行分层设计,其内容包括数字钟;时计数、分计数、秒计数以及译码显示;24进位制计数器、60进位制计数器以及译码显示电路。在VHDL语言描述上,要使用VHDL语言对60进位制计数器、24进位制计数器进行描述编程,并将两者进位标准进行调整,使其一致。关于译码显示电路的设计。在设计中可以使用动态译码扫描处理电路进行处理,这能够某个时间点点亮单个数字码而达到6个同时显示的视觉效果,这样不仅将电路能耗降到最低,同时也节约了器件资源,并延长了器件的使用寿命[11]。关于顶层设计,在这一设计中需要建立在底层设计模块的基础上,通过原理图方法将两者进行有机的融合,进而获得一个完整电路。

4.3编译下载

篇2

关键词:边界扫描;MERGE;数字电路;故障诊断;自动测试系统;

引言

雷达,作为一种重要的军事武器装备,在军事上将其形象的比喻成作战指挥员的“眼睛”,在维护国家安全及中发挥着举足轻重的作用。但随着数字电路设计及制造技术的发展,特别是CAD设计软件的进步及完善,单一的测试方法如ICT(In-Circuit Test)测试、功能测试等已无法满足新型雷达数字电路测试及故障诊断的要求,边界扫描测试将成为今后雷达装备数字电路故障诊断发展的主流技术。

基于对ICT测试、功能测试局限性的深入探讨,以及对边界扫描测试技术的研究与实践,本文提出了“MERGE(组合)”边界扫描测试模型的建立方法,并基于此方法,构建了数字电路便携式自动测试系统,实现了对新型雷达数字电路的高速、准确的测试。系统具有硬件设备小巧、便携,性能稳定、可靠,故障隔离率高等优点,适合于战地级实时维修保障,是大型在线测试、功能测试平台的有效补充,较好的解决了测试设备受制于人及战时应急抢修等问题。

自动测试系统实现

“MERGE(组合)”测试模型的建立

IEEE 1149.1标准明确的规范了边界扫描构建原理及相应的测试方法。在故障诊断过程中,可利用VLSI芯片自带的边界扫描结构及相关测试指令,有效的实现对VLSI芯片引脚固定型、开路、桥接等故障类型的检测。但待测试的数字电路模块通常包括边界扫描器件和非边界扫描器件,本文提出的MERGE测试模型可通过已有的边界扫描结构实现对非边界扫描芯片的测试,能够拓展边界扫描的测试范围,提高TPS的故障覆盖率。

基于边界扫描测试技术的基本原理,构建测试系统过程中创造性的提出了“MERGE”结构测试模型,基本思想如图1所不。其中,B部分为待测数字电路BUT(Board Under Test),A部分为独立于BUT外的边界扫描扩展卡,该扩展卡可看作是一块符合IEEE 1149.1边界扫描设计规范的数字电路。首先,集中将一个完整的数字电路BUT分为如下几个部分:非边界扫描芯片簇(U1),边界扫描芯片簇(U2),混合芯片簇(U3)。在这里“簇”的概念即将多个器件统称为一个“簇”,簇的范围可以根据具体电路规模来进行划分,可以小到单独的一个IC或UUT(Unit UnderTest),也可大到一个完整的BUT。

(1)MERGE非边界扫描芯片簇(U1):非边界扫描芯片是整个BUT网络中一个有序的子集,是具有特定功能的电路。在MERGE理念中,通过对非边界扫描芯片簇建立单独的功能模型,将其作为边界扫描芯片间的一个中间级信号传输模型,MERGE到边界扫描链路,结合EXTEST边界扫描指令,通过Capture IR―Shift IRUpdate IRCapture DRshiftDRUpdate DR等相应操作,达到通过边界扫描链路实现对非边界扫描簇测试的目的。

(2)MERGE混合芯片簇(U3):混合芯片簇指既含有非边界扫描芯片,又含有边界扫描芯片的混合电路(还可以含有一些中间级的模拟电路)。MERGE的思路与(1)类似,模型的验证可通过将一组确定的测试矢量集APPLY至MI(Model Input),经过确定的时间延迟,通过在MO(Model Output)将采集到的响应信号与寄存器中存贮的期望值相比较的方法实现测试。

(3)MERGE BSEC(边界扫描扩展卡),通过BSEC实现对BUT边缘电路中非边界扫描芯片簇或不含边界扫描芯片的BUT进行边界扫描测试。测试时,将待测BUT作为非边界扫描簇或混合边界扫描簇,而将BSEC当作边界扫描芯片簇,通过MERGE方法,将BUT、接口电路、边界扫描扩展卡电路虚拟成为一个含边界扫描芯片的BUT,具体实现与(1)、(2)类似。

测试系统硬件设计

为了减轻系统整机的重量,便于运输及携带,本测试系统前端设备采用笔记本计算机作为主体来完成系统功能的实现和人机界面的交互,同时内配GPIB-USB模块、JTAG-Control-PCI-USB控制器,分别控制可编程电源(Agilent 6600)及BS InterfacePod模块。整个硬件设计的核心为BSEC、JTAG-Control-PCI-USB控制器及BSInterface Pod模块。其系统硬件框图如图2所示。

边界扫描扩展卡

MERGE边界扫描扩展卡采用符合IEEE1149.1边界扫描标准的可测试性设计方案,应用5片XILINX公司的XC95144芯片构建完整的从TDI至TDO的边界扫描链路,其中扫描链路的上游电路及下游电路采用74ACQ244对信号进行缓冲及整形,以增强上游电路的扇出能力,同时整板的边缘连接器采用了牢固可靠、抗腐蚀的欧式Eurocard结构形式的连接器,保证测试信号稳定、可靠。原理图如图3所示。

JTAG-Control-PCI-USB控制器

JTAG-Control-PCI-USB控制器是测试系统笔记本记算机与被测试单元(BUT)进行信号控制的主要部件,实现工控机并行控制指令和数据向符合边界扫描测试协议的串行指令和数据的转换。电路采用DSP+CPLD的电路设计模式,DSP芯片采用TI公司的TMS320LF2407A,运行速度可高达40MIPS、具有至少544字的在片双访问存储器DARAM、2K大小的在片单访问存储器SARAM,32K的片内程序存储器FLASH,CPLD选用ALTERA公司的MAX7000S系列的EPM71285,其集成度为600~5000可用门、有32~256个宏单元和36~155个用户自定义I/O引脚、其3.3V的I/O电平与DSP芯片端口电平兼容、并可通过符合工业标准的I/O引脚JTAG接口实现在线编程及调试。JTAG-Control-PCI-USB控制器是PCI/IEEE 1149.1标准的主控单元,当与BSInterface Pod结合使用时,控制IEEE1149.1标准自适应测试总线及与之相适应的离散信号。同时,该控制器还可控制施加到测试总线上负责JTAG-Control-PCI-USB控

制器与BS Interface Pod进行通讯的低电压差分信号(基于TIA/EIA-644及IEEE1596.3标准)。

BS Interface Pod模块

BS Interface Pod模块,作为测试输入/输出信号传输的中间级模块,主要实现JTAG-Control-PCI-USB控制器与BUT之间测试通道的扩展和信号的同步与缓存。FPGA(Altera公司,EP20K160EBC365-1)是本电路设计的核心,其功能是将前级JTAG-Control-PCI-USB控制器发出的不同的控制信号转换成UUT测试终端能够识别的TAP控制信号,保证TDI、TCK、TMS、TRST准确施加到UUT的测试端,同时将采集到的TDO信号返回给测试前端控制模块。74LVC125(Buffer)则用来完成信号暂存,输出级的74LVC125还可增强信号的扇出能力。整个BS Interface Pod模块采用抗EMI(电磁干扰)屏蔽封装,前面板预留4个20Pin的JTAG控制端口,另外设计了一个电源指示灯,用于上电确认。

测试系统软件设计

系统软件在Windows XP环境下采用Visual C++6.0及National Instruments公司的LabWindows 6.0集成开发环境完成。Visual C++6.0能够提供丰富的Windows程序开发功能,灵活性强、编程效率高;LabWindows 6.0提供了多种接口协议、丰富的控件及仪器驱动程序,其支持虚拟仪器技术的特性是其它开发环境无法比拟的,同时它提供了丰富的软件包接口,为软件开发提供了极大的方便。

软件设计采取了软件模块化及自顶向下的设计原则,首先根据MERGE原则划分电路模块,将测试程序分割成不同的测试模块,其次采用宏的方式构建标准的测试模块并优化模块接口,然后将其它待测模块与该模块接口进行有效链接,再分别进行编译及调试,最后一起进行合并构建完整的测试体。在开发过程中,将该软件分为若干模块不但减少了软件的工作量,而且对于函数的公共部分进行了类的封装,提高了模块的复用性,同时提高了软件本身的可测试性。系统软件流程如图4所示。

测试优化

为减少ATE在故障诊断中误判的概率,系统采用加权伪随机向量关系生成、插入间隔刷新测试矢量优化测试矢量和测试过程。

(1)加权伪随机测试矢量生成:加权伪随机测试矢量生成能够利用较短的测试码长度(即较短的测试时间)达到较高的测试故障覆盖率。为了缩短测试码并改进故障覆盖率,这种测试矢量生成方式可以调节在输入端产生0或1的概率,有效检测到难检测的故障。在伪随机测试码中,每个输入端产生0或1的概率为50%。

(2)插入式间隔刷新:由于数据线具有一定的电平保持特性,因此对于一组数据总线I/O而言,在BS-Cell处于读状态时(如处于Update状态),Cell单元的Output Enable Control Cell处于有效状态,测试矢量通过BS-Cell施加至I/O数据总线,如果下一个时钟节拍,BS-Cell处于写状态(如处于Capture状态),由于数据线的电平保持特性,则有可能在此时间,BS-Cell所Capture回读的数据为上一个时钟节拍的Update数据,造成测试不稳定。解决的办法是在每一次读状态结束后,系统根据读状态的间隔时间,随机产生一组与上一组测试矢量不同的数据,命名为*data,对I/O总线进行间隔刷新。

实验结果及分析

现以某新型雷达点迹处理数字电路为例进行系统功能验证。整个电路采用DSP+FPGA的设计架构,其主要芯片包括:5片DSP(ADSP21060)、2片FPGA(AtleraFlex EPF10K系列)、8片双口RAM(QFP封装),其他E2PROM、HC244(SOP封装)、HC245(SOP封装)等。电路设计复杂,芯片多,PCB布局布线密度大,采用ICT、功能测试TPS开发难度大。

利用本边界扫描自动测试系统,结合MERGE方法,对上述电路板进行TPS开发实验及故障诊断,测试结果如图5所示。

插入模拟故障(U8-6 stuck to O),重新仿真:扫描链测试PASSB-Scan器件簇测试PASSNB-Scan器件簇测试Failed(Report:Pin(s):U3-25,R26-2,U8-6,R26-1 possible stuck at low,the BSnodes is U31-21(R/W))。

上述仿真结果表明,融合MERGE方法所构建的基于边界扫描的板级自动测试系统,自动化程度高,故障隔离准确有效。

篇3

关键词:VB6.0; USB口; FT232BL; 虚拟串口

中图分类号:TN91934文献标识码:A文章编号:1004373X(2012)06004504

Implementation of communication through virtual serial port based on USB

NING Hui, SUN Xueyan, LIU Jian, ZHANG Jianguo

(Beijing Aeronautical Technology Research Center, Beijing 100076, China)

Abstract: The communication between SCM and USB port based computer through virtual serial port is designed and implemented by taking FT232BL of FTDI Incorperated as a kernel. The data storage is completed by Philips P89 series MCU. The data tranmission between host computer and lower computers is achieved by means of MSComm communication control in the Windows environment. The method that PC automatically identifies the virtual serial port is presented. The source code of the program is provided. The experimental result shows that the USB communication between SCM and PC implemented by virtual serial port is speedy and easy to implement by software.

Keywords: VB6.0; USB port; FT232BL; virtual serial port

收稿日期:201109230引言

数据传输是现代通讯过程中的一个重要环节,在数据传输过程中,不仅要求数据传输的准确率要高,而且要求速度快、连接方便。传统的RS 232串口通讯和并口通讯都存在传输速度低、扩展性差、安装麻烦等缺点,而基于USB接口的数据传输系统能够较好地解决这些问题。目前,USB接口以其传输速率高、即插即用、支持热插拔等优点,逐步成为PC机的标准接口。

本文中的数据传输系统采用了USB接口进行上位机与下位机之间的数据通讯。下位机采用Philips 公司P89系列单片机,完成数据的存储。上位机通过VB6.0编程,实现上位机与下位机之间的数据传输。

1数据传输系统的总体设计

系统的硬件部分主要包括2部分:上位机端和下位机端。上位机采用PC机或笔记本电脑,操作系统为Windows XP,实现上位机和下位机之间的数据传输、显示、处理、存储及查询功能。系统的下位机采用philips公司P89系列单片机,完成数据的存储。下位机为一个手持的数据存储仪,由USB转串口数据转换模块、TTL转RS 422总线模块、中央处理模块、显示模块、存储模块、电源模块等组成。上位机与下位机的连接利用PC机自带的USB接口,原理框图如图1所示。

图1数据传输系统原理框图把数据记录卡插入数据存储仪内,可把卡内数据转存到存储模块。数据存储仪通过USB口与PC机连接,把所存数据传输到上位机,上位机对数据进行显示、处理及存储。

系统采用FTDI公司的FT232BL芯片作为USB转串口模块,可以和单片机的内置串口直接连接,使单片机通过USB口和PC机通讯。芯片一方面可以接收从PC机发来的USB数据,并将其转换为串行I/O数据格式发送给单片机串口;另一方面可把单片机从串口发出的数据转换为USB的数据格式传回PC机。与其他USB接口芯片相比,用FT232BL芯片进行USB外设开发,只需熟悉单片机编程及简单的VC或VB 编程,而无需考虑固件设计以及驱动程序的编写,从而能大大缩短USB外设产品的开发周期。

2硬件电路设计

2.1FT232BL芯片简介

FT232BL内部结构如图2所示,主要由USB收发器、串行接口引擎(SIE)、USB协议引擎、通用异步收发(UART)先进先出(FIFO)控制器和通用异步收发(UART)转换器等构成。USB收发器提供USB1.1/2.0全速物理接口到USB总线;串行接口引擎主要用于完成USB数据的串/并双向转换,并按照USB2.0规范来完成USB数据流的位填充/位反填充,以及循环冗余校验码(CRC5/CRC16)的产生和检错;USB协议引擎管理来自USB设备控制端口的数据流;通用异步收发(UART)先进先出(FIFO)控制器处理收发通道缓冲与通用异步收发(UART)寄存器之间的数据传递。

图2FT232BL内部结构框图 通用异步收发器(UART)实现与单片机(如P89V51RD2)的串行接口,通过TXD,RXD,GND3根数据线分别与单片机的RXD,TXD,GND相连,完成与单片机的数据交换。FT232BL内含2个数据缓冲区,一个是128 B的发送缓冲区,另一个是384 B的接收缓冲区。它们均用于USB数据与串行I/O数据的交换缓冲区。

另外,FT232BL还包括1 个内置的3.3 V稳压器,1个6 MHz的振荡器、8倍频的时钟倍频器、USB锁相环和电擦除只读存储器接口。

2.2FT232BL电路设计

根据USB设计规范,USB设备有总线供电和自供电2种方式。考虑到USB通讯功能仅在连接PC机时使用,所以,FT232BL芯片由USB总线供电,电路其他部分通过双触点开关的一个常开触点连到USB总线电源正极上。典型硬件电路如图3所示。采用上电复位方式,通过输出可使单片机复位。时钟电路采用1个6 MHz无源晶振及2个27 pF的陶瓷电容组成。PWREN脚与单片机的P1.7相连,用于判断USB总线是处于挂起状态还是正常状态。在USB接口的电源端接一个磁珠,用以减少主机与设备的干扰;电源端增加了去耦电容和旁路电容,以提高电路的抗干扰性。在印刷电路板的设计中,2根串行数据线的走线应可能短,并且长度相等。图3中的93C46(93C56或93C66)是一片电擦除只读存储器(E2PROM),用于存储产品的VID,PID,设备序列号及一些说明性文字等。这需要用户自己编写,编写的应用程序由FTDI公司提供。用户只需运行相应的VB程序,写入相应的信息即可。该电擦除只读存储器(E2PROM)是可选的。若没有电擦除只读存储器(E2PROM),FT232BL将使用默认的VID,PID(进程标识符),产品描述符和电源描述符,并且没有设备的序列号。

3上位机的软件设计与编程

3.1虚拟串口驱动程序安装

当下位机连接到上位机的USB接口时,上位机会检测到新硬件,这时需要安装一个从FTDI公司网站上免费下载的虚拟串口(VCP)驱动程序。该驱动程序适用于Windows 98/2000/ME/XP等不同操作系统。用户可以在这虚拟串口上进行应用程序的开发。该虚拟串口可以像一个标准的物理串口那样被访问,可本质上所有针对虚拟串口的数据通信都是通过USB总线完成的。

3.2上位机的软件编程

上位机软件采用VB 6.0提供的串口通讯MSComm控件进行应用程序的编写。MSComm控件提供了功能完善的串口数据的发送和接收功能,它有2种处理通信的方式:一种是事件驱动方式,当串口发生事件或错误时,MSComm控件会产生OnComm事件,程序可以捕获该事件进行响应处理;另一种是查询方式,在程序中查询MSComm控件的CommEvent属性的值是否发生变化,从而确定响应处理。

3.2.1虚拟串口的自动识别

一般来说,上位机操作系统为FT232BL芯片分配的虚拟COM端口是不确定的,下位机连接到同一上位机的不同USB口,其虚拟COM端口号不同,下位机连接到不同的上位机,虚拟COM端口号更是无法确定。为了让上位机能够自动识别下位机连接的虚拟COM口,程序中采用了循环访问各COM口的方式,如果该COM口是存在的则按照通讯协议向该端口发送“3CH”,如果该COM口不存在,则跳过,判断下一个COM口。如果收到下位机回送的“3CH”,则说明通讯检测成功。

4系统运行结果

上位机可以从下位机中读取最多31组数据(数据组数由下位机存储器容量决定),每组数据8 KB,用户可根据需要自行选择查看各组数据。图4是数据传输系统实际运行的结果。

图4运行结果5结语

该系统通过调试,已成功应用到项目中,运行稳定、可靠,满足了设计需求和功能,对开发类似的系统具有很好的参考价值。

参考文献

[1]李长林.Visual Basic 串口通信技术与典型实例[M].北京:清华大学出版社,2006.

[2]杨思俊.基于VB6.0的太阳能发电基站电源的上位机软件设计[J].科技广场,2011(1):133135.

[3]马兴,童卓,周丽娟.基于VB的PC机与单片机间串口通讯及程序设计[J].兵工自动化,2010(10):9496.

[4]程来星,胡明钦,张英波.基于VB的计算机串口通信的应用研究[J].无锡职业技术学院学报,2011(2):5861.

[5]夏中权.USB虚拟串口的通信[J].电脑编程技巧与维护,2008(10):7679.

[6]杨杨,潘洪跃.基于虚拟串口的数据采集系统的设计与实现[J].大众科技,2008(4):7375.

[7]徐锋.基于FT245BM的快速USB接口设计[J].电子工程师,2007(3):5961.

[8]林水明,章坚武,骆懿.基于FT245BM的简易USB接口开发[J].单片机与嵌入式系统应用,2003(1):3840.

篇4

关键词:SystemC;Turbo;系统级设计;寄存器传输级;FPGA;测试平台

中图分类号:TP274文献标识码:B

文章编号:1004-373X(2009)05-163-04

Application and Verification of Turbo Codec with SystemC

LI Yuan

(Shanghai Jiaotong University,Shanghai,200030,China)

Abstract:The paper introduces methods and flows of IC design using SystemC firstly.And then researches and implements a Turbo encoder with RTL design using SystemC according its functionality of SLD and RTL capability.To prove the RTL capability of SystemC especially,the paper analyzes the structure and signal flows of Turbo encoder,simulats the Turbo modeling until finally completes the hardware design and implements it on a FPGA platform using a simulation testbench for verification.It saves more design times because it merges the SLD and RTL design to one step.

Keywords:SystemC;Turbo;system level design;RTL;FPGA;testbench

收稿日期:2008-09-16

0 引 言

在传统硬件设计方法中,系统级设计(SLD)往往使用高级语言进行描述以实现各功能模块的算法,而在寄存器传输级(RTL)使用硬件描述语言如VHDL和Verilog HDL进行描述。但随着深亚微米时代的到来,集成电路规模越来越复杂,为了实现较高层次如系统级的软件和硬件描述,较好地实现软硬件的协同设计,业界推出了SystemC语言,但是SystemC的优点并不仅仅是针对于此,而且还表现在它使得系统级设计和RTL级设计均可能在同一平台下完成。

本文主要针对SystemC可以像使用VHDL或者Verilog语言一样进行RTL级和行为级的建模的特点,讨论了基于SystemC RTL级设计的Turbo编码器的实现和验证,并在FPGA平

台上进行其系统实现。

1 SystemC简介

SystemC[1,2]是由开放性、非盈利性的SystemC联盟组织(Open SystemC Initiative,OSCI)推出的一种系统级设计和验证语言,SystemC是基于C++的建模平台,其本质是在C++的基础上添加了硬件扩展库和仿真核,支持EDA设计中的各个抽象层次,如寄存器级、行为级、系统级的建模,能够表达并发性、实时性、交互性等硬件模型的概念。

SystemC是完全免费并且开放的,它的源代码可以使用任何标准C++编译环境进行编译,生成可执行文件。通过使用SystemC类库,设计者可以根据不同的需求编写目标系统的系统级(system level)、行为级(behavioral level)或RTL级的SystemC模型代码。

SystemC中的模块用关键字SC_MODULE来定义,其端口定义与Verilog类似。在SystemC中,进程是一个基本的执行单元,它被调用来仿真目标系统的行为。进程的行为是多样化的,可以实现某个函数的功能,也可以在运行过程中被挂起,并且进程是并行执行的,一个进程中不能包含或直接调用其他进程。SystemC的进程主要有两种,事件进程(SC_METHOD)和线程进程(SC_THREAD)。事件进程是惟一可以综合的RTL进程,它的特点是当敏感表上有事件发生时,它就被调用,调用后立即返回。只有该类进程返回后,仿真系统的时间才有可能前进,因此该类进程不能被挂起(类似于Verilog中的always)。线程进程不是RTL级进程,它可以被挂起和重新激活,所以它的一个重要用途是用来描述验证平台(testbench) [3]。

2 Turbo编码器的SystemC实现与仿真

2.1 Turbo编码器简述

Turbo码编码器[4-5]是由两个反馈的系统卷积码编码器通过一个随机交织器并行连接而成,编码后的校验位经过删余阵,从而产生不同码率的码字。由于Turbo码能得到较大的编码增益,因此许多低信噪比通信系统中都选择了Turbo作为信道编码。

本文中实现的Turbo码为3GPP中专用信道使用的编码格式,码率为1/3,其生成矩阵如下所示:

G(D)=1,1+D+D31+D2+D3

对于码率为1/3的Turbo码,不存在删余部分。其编码器结构图如图1所示。

图1 3GPP八状态Turbo码编码器结构

2.2 Turbo编码器的SystemC实现

首先对系统可以进行模块划分,整个编码器是一个大模块,其中包含一个交织子模块,两个结构完全相同的分量码编码子模块RSC,以及一个事件进程来完成最后编码的输出,它们之间采用同步时钟进行时序同步。为了简化起见,这里交织器就只采用随机交织方式完成。

为完成整个Turbo码编码系统的验证和仿真,还必须有激励模块和显示输出模块,以达到验证和观察系统实现的正确性。整个系统的SystemC实现及测试方法模块说明如图2所示。

图2 SystemC系统实现测试模块说明图

其中主模块内部系统信号流图如图3所示。通过图3可以清楚地看到各个子模块和事件进程的输入输出信号关系,以达到更加清晰的实现目的。

图3 TurboEncMain模块系统信号流图

为了完成对Turbo码实现的系统验证以及最接近硬件逻辑的RTL级验证,必须在使用SystemC时注意要编写完全可综合风格的代码,所以代码的实现必须严格按图1的编码结构来进行。其中核心的RSC模块类封装参考如下:

SC_MODULE(RSC)

{

sc_in<bool>clk;

sc_in<bool>Xin;

sc_out<bool> Yout;

sc_signal<bool>d1,d2,d3;

SC_CTOR(RSC)

{

SC_METHOD(entry);

dont_initialize();

sensitive_pos(clk);

d1 = 0;

d2 = 0;

d3 = 0;

}

void entry();

};

2.3 SystemC验证仿真

为了对设计进行验证,Stimulus模块完成Testbench的输入和仿真过程的控制功能,Display模块完成打印和输出Trace及log(VCD文件)的功能。为了简便起见,设计的输入帧长为100 b,其Testbench的设计及理论输出如下:

输入Input序列为:0xACBC,0xD211,0x4CAE,0x1577,0xC6DB, 0xF4C9,0x0;

交织后输入的Input_de序列为:0xBD85,0x078C,0x1D2A,0xBB80,0xEEEE,0xF973,0xA;

理论上此结构Turbo编码输出result(以3 b为一个码元输出共300 b)如下序列:

0x7,0x3,0x4,0x1,0x5,0x6,0x2,0x1,0x5,0x0,0x7,0x6,0x7,0x6,0x0,0x2,0x6,0x6,0x3,0x4,0x1,0x2,0x5,0x1,0x2,0x2,0x2,0x7,0x3,0x1,0x3,0x5,0x1,0x4,0x0,0x0,0x4,0x4,0x2,0x4,0x4,0x0,0x4,0x1,0x7,0x7,0x7,0x0,0x3,0x1,0x2,0x5,0x1,0x5,0x0,0x7,0x1,0x5,0x5,0x5,0x0,0x4,0x7,0x4,0x4,0x5,0x0,0x3,0x3,0x4,0x4,0x1,0x4,0x6,0x3,0x6,0x7,0x2,0x5,0x7,0x7,0x5,0x6,0x5,0x2,0x7,0x2,0x1,0x4,0x6,0x2,0x0,0x4,0x1,0x0,0x5,0x3,0x7,0x2,0x6。

本设计Testbench的输出VCD波形用Wave VCD Viewer显示,如图4所示。实际上使用了多组Testbench对设计进行验证,最终的输出均表明本设计符合理论要求。

图4 设计仿真输出波形

3 FPGA实现与验证

3.1 FPGA系统实现

经过上面的仿真设计,验证了RTL模型的结构,就可以进行后面的ASIC设计或FPGA硬件验证。在一般的IC设计流程中,为了提高ASIC流片的成功率,有必要使用FPGA硬件电路进行逻辑仿真。

在FPGA实现中,设计的Turbo编码器是整个物理信道数据编码上行链路的一个部分[6],支持3G标准中最高5 114 b的输入序列帧长,实现对3G专用信道的1/3冗余编码,它将与Turbo解码器和信道模拟模块组成一个测试环路,完成对整个Turbo Codec的IP验证。编码器由4个主要部分组成,其框图如图5所示。

图5 硬件逻辑实现Turbo编码器框图

各个部分的功能描述如下:

(1) 编码器输入缓存模块(enc_ibuf),实现两路输入存放缓存以及乒乓缓存机制,内部框图如图6所示。

图6 输入缓存模块框图

(2) 编码器移位RSC模块(enc_shft),即上面SystemC实现的模块,完成移位输出编码后结果的功能。

(3) 编码器输出缓存模块(enc_obuf),存放输出数据和归零位比特,并完成3 b并串转换输出,内部框图如图7所示。

图7 输出缓存模块框图

(4) 编码器控制模块(enc_ctrl),完成整个编码器内部模块时序的控制,如输入/输出模块的寻址读写、移位、尾比特归零等等操作,其主要时序控制流程图如图8所示。

图8 编码器控制模块控制时序流程图

3.2 FPGA逻辑验证

选用Xilinx的Virtex-E系列[7,8]的FPGA XCV600E对本设计进行验证。软件平台主要使用的是Xilinx集成开发环境ISE Foundation。其中第三方工具使用了综合工具FPGA CompilerⅡ,布局布线工具选用的是ISE中的Webpack suite。

使用支持SystemC的综合工具SCC(SystemC Compiler)完成综合。SCC将SystemC描述的RTL级电路通过其综合生成相应的Verilog文件,实现后续流程与传统设计语言设计的FPGA流程的无缝衔接。

在ISE平台调用FCII对综合生成的Verilog文件与其他模块的Verilog代码约束时钟、引脚信息等,进行逻辑综合和优化,得到EDIF格式网表并经Webpack完成布局布线取得sdf文件和.bit二进制配置文件。最后将.bit文件下载至开发板上的XCV600E器件中,上电加载后板子跑起来可以得到逻辑输出。

从对XCV600E中消耗的逻辑资源分析可以看到,编码器所占的等效门为21 578个门。调试后将shft_s1_dat,shft_p1_dat,shft_p2_dat等信号从XCV600E的管脚引出,经逻辑分析仪采集这些管脚的输出数据与Testbench理论输出进行对比分析,最后得出结论,本设计编码器的输出完全符合设计要求。

4 结 语

在越来越复杂的大规模集成电路设计中,如何保证设计的成功性和时效性,引起了越来越多的设计人员的重视,SystemC的提出并引起广泛关注的原因也就显而易见。现以Turbo码的编码系统为例研究了SystemC在实际系统仿真和验证中的应用,以及基于RTL级实现并能完成综合的SystemC设计方法,这个系统只是整个编解码系统的一部分,其解码部分更加复杂,但其核心算法部分同样可以用相同的方法完成其仿真、验证和实现。在整个设计过程中,测试平台一直没有改变,从而保证了验证工作的连贯性和高效率。

可以看出,SystemC强大的系统级设计能力以及同时具有RTL级和行为级设计的能力为未来复杂的IC设计提供了更为广阔的空间。虽然如何采用SystemC进行设计,目前还没有一个完全的设计规范流程,但是相信随着进一步的深入研究,基于SystemC的设计方法必将成为IC设计领域的最佳主流标准之一。

参考文献

[1]Synopsys Inc.SystemC Version 2.0 User′s Guide[EB/OL]..

[2]Synopsys Inc.Functional Specification for SystemC 2.0..

[3]Leena Singh,Leonard Drucker,Neyaz Khan.Advanced Verification Techniques-A SystemC Based Approach for Successful Tapeout[M].Kluwer Academic Publishers,2004.

[4]王新梅,肖国镇.纠错码――原理与方法(修订版)[M].西安:西安电子科技大学出版社,2001.

[5]Berrou C,Glavieuxa.Near Optimum Error Correcting Coding and Decoding:Turbo Codes [J].IEEE Trans.on Communications,1998,48(2):24-31.

[6]John G,Proakis.Digital Communications.Third Edition.McGraw-Hill,1995.

[7]Xilinx Inc.Virtex-E FPGA User′s Guide[EB/OL]..

[8]田耘,徐文波,张延伟.无线通信FPGA设计[M].北京:电子工业出版社,2008.

[9]IEEE Computer Society.IEEE Standard SystemC Language Reference Manual[Z].2006.

篇5

关键词:电力系统;故障继电保护;微机保护

一、继电保护的工作原理

测量、逻辑、执行这三模块是继电保护的组成部分,可以发挥不同的作用,改进和完善继电保护的功能。在电力系统出现故障时,一方面要快速的阻止故障的危害进一步扩大,另一方面要监督预防障碍部分攻破薄弱环节。继电保护的过程兼具快速性与选择性,所以在配电保护时要注意协调技术,找准切入口,充分利用配电装置,发挥好继电保护的功用,努力带动电力系统的整体性性能的提升。其次,要利用升级后的继电保护装置与不正常的用电环境产生一定效应,保护好用电系统的安全,防患于未然。在电力传输系统下,保护用电对象时传输输入信号,然后进行下一步的测量工作,采集测量后的信息,与正确值进行输入的对比,将保护对象保护范围的异常状况与环境进行检测,完善继电保护装置的运行效率及可靠性。提升继电保护装置的灵敏系数,提升继电保护中的实施的准确度。最后在于采集测量模块与给定的整定值相对照,以测量模块输出的比较值的性质、大小、次序以及其他参数为根据,进行计算。以得到的逻辑运算值进行最后一步的判定,发出警报命令。

二、继电保护的一般要求

1、可靠性

不误动,不拒动,保护装置本身可靠。常规保护拒动多,误动少。变电站综合自动化系装置(微机保护)自诊断功能能够及时发现问题拒动很少。受到干扰后容易产生误动多,随着产品质量与抗千扰能力的不断提高,变电站综合自动化装置(微机保护)误动越来越少。

2、选择性

先切除故障设备,拒动时后备保护或上一级保护才动作。最大限度缩小故障范围,减少事故停电造成的损失。

3、灵敏性

灵敏系数为流过保护安装处最小短路电流与保护动作电流(均为一次侧电流)之比,为保证保护可靠动作,灵敏系数必须大于规定值,一般为1:2-2.0。灵敏系数达不到要求,就要减小保护动作电流。但减小保护动作电流又会影响保护的选择性。

4、速动性

速动性要求保护在最短与最合理的时间内将故障切除,保证电系统统的稳定运行,缩小故障范围,减小故障引起的电力设备破坏程度。以上四点又称为继电保护的四大要素。

三、保护配置与整定

1、变配电站综合自动化装置(微机保护)保护功能比较全,给变配电站二次电路设计带来很大方便。有些保护配置已超过电气设计规范与手册的规定与要求,在电气设计规范与手册没有修改之前,给保护配置与整定带来一些麻烦。

现在已经有厂家生产通用型变配电站综合自动化装置(微机保护),硬件统一为一到两种,软件设计包括各种保护,可根据需要进行组态(保护设置)。产品开发应作到硬件端子定义合理,软件组态(保护设置)方便,并符合电气设计规范与设计手册的要求。

2、变配电站综合自动化装置(微机保护)保护整定计算资料还不太全,目前只能根据工业与民用配电设计手册第七章第二至第六节中常规保护的整定与值计算来进行整定。变配电站综合自动化装置(微机保护)精度高,可靠系数与时限阶段可取下限,返回系数可取上限。手册中查不到保护整定计算资料时,可根据厂家提供的资料,或有关资料介绍的经验数据来整定。也可以将手册中查不到的保护通过软件设置来退出。保护功能多,如果整定不合理,反而容易引起保护误动作。

四、保护整定计算

1、过电流保护

1.1过电流保护按躲过可能出现的过负荷电流来整定。动作电流等于过负荷电流乘以可靠系数与接线系数,再除以继电器返回系数与电流互感器变比。变压器与高压电容器的过负荷电流等于变压器与高压电容器的额定电流乘以过负荷系数。有高压电动机的电源进线与母线分段断路器的过电流保护要考虑高压电动机的启动电流。

动作时限一般取0.5一0.7s

1.2除以继电器返回系数是为了保证选择性。继电器返回系数等于继电器返回电流除以继电器启动电流。返回系数恒小于1,返回系数越小,返回电流就越小于启动电流。当下一级保护使其过电流保护启动,下一级保护动作后,电流仍然大于继电器返回电流时,继电器不能返回,就会发生越级跳闸。继电器返回系数一般取0.85,变配电站综合自动化装置(微机保护)的返回系数由软件来决定,范围为0.7一1.0,保护整定时可根据要求进行设置,一般取0.9。有些变配电站综合自动化装置(微机保护)没有给出返回系数设置,软件已经按0.9设置,保护整定时返回系数可按0.9进行计算。

1.3设计手册中高压电动机保护配置中没有过电流保护是有一定道理的,因为高压电动机保护没有与下一级保护配合的问题,又不可能作为下一级保护的后备保护。电流速断保护与过负荷保护相结合,可以实现过电流保护。有些变配电站综合自动化装置(微机保护)高压电动机保护有过电流保护,就出现了如何整定的问题,需要进行讨论。

2、过负荷保护

2.1变压器、高压电动机与高压电容器的过负荷保护按变压器、高压电动机与高压电容器的额定电流来整定。动作电流等于其额定电流乘以可靠系数与接线系数,再除以继电器返回系数与电流互感器变比来整定。

动作时限一般取9一15s。

2.2设计手册中线路与母线分段断路器保护配置中没有过负荷保护,有些变配电站综合自动化装置(微机保护)线路与母线分段断路器保护有过电流保护,就出现了如何整定的问题,也需要进行讨论。

2.3配电设计手册规定低压侧断路器有过负荷保护时,可不装设专用的过负荷保护,变配电站综合自动化装置(微机保护)带有定时限与反时限过负荷保护,应加以利用,但要处理好选择性配合问题。

2.4变配电站综合自动化装置(微机保护)有定时限与反时限过负荷保护,保护选择性配合级数少时,保护整定时应优先选用反时限过负荷保护。

3、高压电容器不平衡电流保护

3.1 对于双星形接线的高压电容器,可以在两个星形的中性点连接线上安装电流互感器,当高压电容器内部发生故障,申性点电压发生漂移,安装在两个星形的中性点连接线上的电流互感器就会有不平衡电流输出,可用来作为高压电容器不平衡电流保护。

3.2 对于三角形接线的高压电容器,要实现不平衡电流保护,就要在三角形各边上安装电流互感器,再将三个电流互感器二次侧串联后,才能取得不平衡电流,所以三角形接线只适用于大容量高压电容器补偿。

结束语

随着电力系统的高速发展和计算机技术、通信技术的进步,继电保护技术面临着进一步发展的趋势。国内外继电保护技术发展的趋势是计算机化,网络化,保护、控制、测量、数据通信一体化和人工智能化,这对继电保护工作者提出了艰巨的任务,也开辟了广阔的活动天地。总之,继电保护必将随着各种技术的进步和发展呈现更新的特征,也将获得更广泛的应用。

参考文献

[1]张春岐,任君萍,张峰,任华军. 微机综合保护在变配电站的应用[J]. 电气应用. 2010(12).