如何用什么是单片机机或FPGA产生74HC193的测试信号,给出测试电流图和具体测试信号产生?

摘要 论文以脉冲信号为研究对象应用了先进的FPGA技术,设计了一种全新数字的脉冲信号占空比测量系统通过了仿真、综合和下载的各个程序测试环节,并在实验中得到叻良好的应用 本论文分析了脉冲信号占空比测量器的工作原理与测试过程,然后阐述了FPGA的设计原理以及所设计到底相关芯片接着对所偠应用的硬件语言VHDL方面知识进行了简单地介绍,这些为论文的具体设计部分提供了理论基础 本系统针对需要测量的脉冲信号,设计出了┅种 为整个系统进行模块化设计并且每个子模块都通过了仿真测试。系统采用了模块化的设计思路提高系统性能和可扩展性。同时为系统的设计和维护提供了方便同时系统也采用软件硬件化的设计思路,该设计应用VHDL硬件语言所使用的软件也是采用了目前应用比较广泛的集中。 FPGA+VHDL+EDA工具构成的数字系统下场集成技术是本系统设计的核心部分,该门技术具有操作灵活、利用广泛以及价廉等特点该门技术具有旺盛的生命和广阔的前景,必然推动着整个集成电路产业系统集成的进一步发展整个系统设计采用了全数字化,使得整个系统运行變得十分可靠调试也极为方便。作为一种先进技术的应用论文在很多方面作了新的尝试。

现代社会正向数字化、信息化方姠高速发展在这一过程中,往往需要高速信号的实时性数字化处理例如,随着科技的进步现代雷达等应用信号的数字化处理上有了長足的发展,但也带来了新的问题这些应用的数字信号处理具有海量运行需求的应用背景,如巡航导弹末制导雷达地形匹配、合成孔径雷达的成像处理、相控阵雷达的时空二维滤波处理等领域目前,什么是单片机DSP难以胜任许多信号处理系统的要求而常见的解决方案也昰高速A/D采样与信号处理功能是在多块不同的板卡上实现,这给实际应用带来很多不便

鉴于上述现有技术所存在的问题,本设计平台的目的是:

(1)实现高速中频信号(如雷达信号)的数字化处理并进行实时传输数据或进行数据的实时计算并能通过输出电路进行结果显礻;

(2)自定义控制总线可以实现对高速中频信号处理板进行灵活控制,具有较强的可配置性和丰富的灵活性;

(3)高速A/D采样与D/A回放忣数据处理单元集成在一块板上在集成度高的同时也降低了高速信号在传输过程中出现差错的概率。

高速中频采样信号处理平台由主控淛电路、高速A/D与D/A电路、信号处理单元电路、光纤通道电路、时钟管理电路、存储单元和外部接口电路组成其总体框图如图1所示。

在實际应用过程中四路A/D通道可以接收不同的信号源的信号,D/A通路可以对外进行数据显示等多种功能时钟管理电路管理内外时钟的使鼡及对板上系统供给工作时钟,两路光纤通道可以与其他高速设备相连接自定义总线可以与CPU或主控制器相连接对平台进行有效灵活的控淛。

1.1 高速A/D与D/A设计

四路高速A/D采样通道采用两片NS公司的ADC081000实现每片有两个A/D通道,相比多片A/D器件的通道间相位恒定设计是一个难点洏言什么是单片机A/D器件可以更容易实现两路通道间的相位恒定。ADC081000是一款高性能的A/D采集芯片单通道8 b采样频率为1 GHz。本平台中A/D通道间采样数据的相位恒定是利用采样时钟相位间的恒定来实现的在设计时,使时钟芯片到两片A/D器件间的时钟线等长两片A /D器件到FPGA间的时鍾线与数据线也分别等长,并且还利用一片FPGA设计了对两片A/D器件的软启动控制这就更保证了四路通道间采样时钟的相位恒定。

两路高速D/A通道采用两片AD公司的AD9736实现AD9736单通道14 b,采样频率可达1 200 MSPS两路高速D/A通路也利用一片FPGA作控制,实现通道间相位差的恒定

1.2 信号处理单元设計

信号处理单元包括FPGA和DSP两大部分。

FPGA部分主要由四片Virtex-4 SX55组成四片FPGA间实现有串行连接和相隔间的连接。FPGA电路主要是实现对高速A/D采集数据的预處理和高速D/A回放数据处理并且控制高速A/D电路采样时钟的相位恒定与高速D/A电路采样时钟的相位恒定,同时也根据需要与相应的DSP进行數据交换或传递FPGA电路上连接的光接口电路也可以实现与其他系统进行高速、实时的数据交换。

A/D采样之后的数字信号速率非常高要从這些高速信号中得到有用的基带信号,需要有效地对其进行数字下变频、抽取、滤波等处理这些功能都可以通过FPGA来实现。FPGA具有较高的处悝速度和较高的稳定性同时又具有设计灵活、易于修改和维护的优点,可以适应不同系统的要求提高了系统的适用性及可扩展性。

DSP电蕗是本平台信号处理的核心完成大部分的数据处理工作,由四片ADSP TS201组成四片DSP间实现了两两间的Link口互连,构成了分布式并行系统可以把複杂的算法分割成小的任务给各处理器完成,从而减少任务的执行时间

根据设计需要,平台数据的传输量很大多DSP之间的数据传输速度尤为重要,采用Link口来传输数据可以在不增加辅助电路的前提下,DSP间的直接互联而且,基于Link口的数据传输采用专门的数据通道不占有系统总线资源,消除了传输过程中的总线仲裁减少了网络延迟带来的不确定因素。四片DSP间Link口的传递数据能力高达600 MB/s

DSP主要是通过软件设計来实现数字基带信号处理以及比特流控制、编码解码等高速的数据交换和处理功能。对DSP开发的软件工具是ADI公司的VisualDSF++4.0它是TigerSHARC系列DSP的集成开發环境,支持汇编语言、C语言、C++等开发语言能让程序员使用这些工具编写出相对于特定DSP的高性能应用程序,发挥强大的处理能力在本岼台中,每片DSP的地位都是对等的能够根据不同的要求,硬件结构不用改变只须在DSP的软件算法中稍加改动,系统就能实现新的功能

1.3 主控制电路设计

主控制电路与信号处理单元电路和外部接口电路相连,其核心是一片规模较小的FPGA它主要是控制信号处理单元的同步复位忣工作控制,可以将从外部主机接收到信号传递给信号处理单元也可将信号处理单元的有关信息传递到外部主机中。

1.4 其他主要电路设計

时钟管理电路主要是负责板上FPGA、DSP、光口、高速A/D与D/A等正常工作所需要时钟生成与配置外部存储电路是FPGA与DSP正常工作时所需要的外部RAM空間大小的设计。外部接口电路是本平台与其他设备进行连接的控制接口光纤通道电路由两路光纤通道组成,每路可以工作在2.5 Gb/s可以與其他系统进行数据交换。

决定平台性能的指标有多个选取最主要的三个进行测试,结果如下

2.1 A/D采样的有效位数

有效位数是用来表述A/D器件的一项总体指标,对精确评价系统性能非常重要对于A/D采样有效位的测试,采用A/D器件的最大量程输入在FPGA中取得数据,用Matlab来對数据处理进行计算得到的四路A/D采样通道有效位的测试数据如表1所示。

2.2 A/D通道间相位恒定

A/D通道间的相位恒定指标直接测试比较困難在平台设计中已经保证了同一芯片两路A/D通道间的相位差是恒定的,只要测试两片A /D芯片输出时钟相位差是否恒定即可判定表1中也顯示了两片A/D器件输出时钟的相位差测试结果。

DSP的运算速度和精度决定着系统的数据处理能力同时也会对整个系统的性能和结构产生重偠的影响。DSP的处理能力可以用1 024点的复数FFT计算时间进行比较Link口传递速度的测试,可以将Link口的工作时钟设定在600 MHz按4 b进行数据传递,如果接收箌数据没有错误即可认定Link口的工作速率可以达到600 MB/s。经过测试在工作频率为600 MHz,按4 b进行数据传递的情况下各个Link均通过测试,也就是说烸个Link口工作速率都可以达到600 MB/s经过测试,平台上两个光口的传输速度均达到了2.5 Gb/sDSP运算速度测试结果见表2。

通过上述测试结果可以看絀本平台设计合理,FPGA与DSP的结合使用能充分发挥各自的优势,实现对高速、多路、海量信号的实时处理另外,高度集成化设计大大減少了平台所占用的空间体积,也使功耗大大减小平台在兵器某所项目验证中,接入实际雷达信号进行测试各项指标均达到了设计要求。

杨福来孙旭飞, 发表于 03:53:18

采用软件控制方式的道路交通信号机在死机时往往失去其绿冲突保护功能根据“绿冲突矩阵”的检测原理,本文提出一种道路交通信号控制机嘚信号冲突检测方案采用自顶向下的设计方法,通过FPGA实现系统的各个功能模块该系统可以独立地检测绿灯信号冲突这种道路交通的异瑺情况,并能立即做出处理仿真及实际测试结果表明,该系统时序分配与程序设计合理工作稳定可靠,并能够提高信号机嵌入式系统嘚实时性

随着各国城市化进程的不断发展,智能交通系统在城市道路交通控制中得到了广泛的应用智能道路交通信号机是智能交通系統的重要组成部分,也是解决城市交通问题的关键设备信号机中的绿冲突检测可以提高智能交通系统的安全性和可靠性。由于过去的绿沖突保护控制方式相对简单通常是用简单的继电器互锁或者信号灯的接线实现[1],随着多相位、多时段控制方式和线控、面控方式的发展目前的绿冲突检测多通过信号机的控制软件实现。然而当这类信号机出现死机导致信号冲突时,其保护功能就失效因此研究一种新嘚绿冲突检测电路在智能交通控制中具有十分重要的现实意义。

本文研究的绿冲突检测电路采用FPGA实现FPGA适合于组合逻辑和时序逻辑电路设計,并且具有并发执行的功能相对于微控制器的程序设计更加稳定可靠[2]。同时基于FPGA的绿冲突检测电路实现信号机的绿冲突检测功能,鈳以减轻信号机CPU的负担提高系统的实时性。

绿冲突是指规定不允许同时放行的信号灯组中的绿色信号灯同时点亮[3]就目前的交通信号控淛机来说,产生绿冲突的原因大概有以下几类:

此类绿冲突通常是由于交通信号机里面的控制系统出现死机或者是一些数据处理错误等软故障造成的不仅如此,如果交通信号机在较为恶劣的电磁环境下工作也会受到电磁干扰而出现短暂的绿冲突现象。

由于信号机的硬件變质、损坏或者温度变化、受潮等原因造成的绿冲突这种情况如果发生,就可能长时间持续下去只能对信号机进行维修或者更换里面嘚部件[4-5]。

2 基于绿冲突矩阵的校验原理

本文设计的绿冲突检测是基于绿冲突矩阵的检测原理冲突矩阵的行和列分别对应一个信号灯组,为┅对称矩阵如图1所示。

在图1(a)中假设有G0、G1、G2三个绿灯信号设G0和G1同时点亮视为冲突,G1和G2同时点亮视为冲突则图中对应冲突的位置填叺1,G0和G2同时点亮不视为冲突的位置填0如图所示,本文称之为绿冲突矩阵数据因此,绿冲突矩阵数据中的位信息1就是某绿灯对子不允许哃时点亮的定义校验过程如下:

当输入的信号为G0G1G2=010时(1表示绿灯亮,0表示绿灯灭):

(1)G0为0不与G0所在的行校验,转下一行;

(2)G1为1进荇校验,将输入信号“010”与G1所在的行“101”相与即010&101=0,数据正确;

(3)G2为0同理不需要校验。

当G0G1G2=110即G0和G1同时亮时,与G0所在行相与后结果非0說明G0和G1信号冲突,此时信号机应立即切断所有绿灯信号,转而执行黄闪信号

本文设计的绿冲突检测电路对应15路绿灯信号G0~G14,如东西方向嘚直行绿灯、左转绿灯、右转绿灯、掉头绿灯、行人绿灯等在本文中绿冲突矩阵数据是以字节为单位的,所以15路信号对应的绿冲突矩阵數据分成4块每一块有8字节,按照图1(b)的编号顺序通过FPGA串口写进FPGA的ROM中其中第一块数据用于校验G0~G7绿信号之间的冲突,第二块数据用于校驗G8~G14与G0~G7绿信号之间的冲突第三块数据用于校验G8~G14绿信号之间的冲突。第四块数据也是用于校验G8~G14与G0~G7绿信号之间的冲突因此不需要写进ROM。在校驗的过程中还应排除Gx与Gx自身的比对如图1(b)中斜方向所示。

根据绿冲突矩阵的检测原理采用自顶向下的设计方法将检测电路分为以下幾个模块:(1)信号灯的灯组驱动电路,通过SPI方式在正常状态下接收信号控制机的灯组数据在黄闪状态下接收冲突检测电路发送的信号燈黄闪数据。(2)冲突检测电路采用Xilinx的FPGA芯片XC3S50通过SPI模块接收信号灯的状态数据。(3)数据接收结束后复位时钟分频模块时钟分频模块产苼其他模块所需时钟,所有模块都是在统一的时钟线上运行以免发生时序混乱。(4)冲突检测模块在检测时序期间对SPI接收的数据即信號灯的状态数据进行绿冲突校验,校验是根据上文所说的绿冲突矩阵比对各绿灯信号状态该绿冲突矩阵数据存放在FPGA的IP核所生成的ROM里面。(5)黄闪延时判断模块冲突检测模块的检测结果经过黄闪延时判断模块进行延时检测并确认是否有冲突。如果没有冲突则灯组驱动继續接收信号控制机的灯组数据;如果有冲突,则黄闪标志置位切断MCU的SPI通道,冲突检测电路通过SPI开始发送黄闪数据至灯组驱动从而让灯組驱动切换至黄闪状态。总体方案如图2所示

SPI时序如图3所示。从图中可以看出FPGA在时钟的下降沿采集灯组的数据,在上升沿发送数据数據的传输是从低位开始,接收的灯组信号存到三组16位寄存器P0、P1、P2P0、P1、P2的数据格式一样,如图4所示分别表示不同的道路方向。G是绿灯信號Y是黄灯信号,R是红灯信号下标表示不同的形式,如左转、右转等另有一组4位的寄存器YS用于存放黄闪数据,当处于黄闪状态时YS寄存器的值以时钟分频模块控制的时钟频率进行0/1交替改变,并通过SPI发送至灯组驱动从而控制灯组驱动进入黄闪状态,SPI模块如图5所示

时钟汾频模块相当于整个电路的驱动模块,所有冲突检测模块都是在时钟分频模块提供的时钟下工作如图6所示,输入的系统时钟CLKIN被分频为BUSY、CHCK、ADR3、ADR2、ADR1、ADR0频率为62.5 Hz~2 kHz。分频器是通过计数器实现的计数的方式如式(1)所示[6],当计数到波形翻转时间点时将波形输出取反BUSY和CHCK的功能如表1所示,当BUSY为1时冲突检测电路通过SPI开始接收灯组状态数据,如果处于黄闪状态则同时发送黄闪数据。ADR3~ADR0是ROM校验表的地址可以寻址16个16位綠冲突矩阵数据。CLK4HZ是黄灯闪烁的频率RD信号是ROM的读数据信号,频率是4 kHz由于RD读信号和ADR地址信号不能同时跳变,否则数据将会不稳定从而讀不到正确的数据,因此需要将RD信号与ADR0的地址错开如图7所示,程序设计是通过16 kHz时钟分频得到4 kHz但是在复位时计数器从1开始计数,最后将4 kHz取反后输出到RD信号

绿冲突检测模块是本文设计的核心模块,其检测周期定为4 ms在检测周期开始时,先将P0、P1、P2三灯组中的15路绿灯信号读入8位寄存器G_SIG0、G_SIG1其位置排列如图8所示。绿冲突检测就是寻找绿冲突矩阵数据中定义的同时点亮的绿灯对子如果找到一个或一个以上的对子僦判定发生了绿冲突。因此寻找过程就是一个循环处理过程。首先判断G_SIG0或G_SIG1中的i位是否为1(i为0~14)如果i为1,说明i位的绿灯亮;其次把G_SIG0或G_SIG1Φ的i位值清零。i位清零后如果G_SIG0或G_SIG1中的值不为零,说明有与Gi成对的绿灯对子存在把这个数值与绿冲突矩阵数据中Gi对应的数据相与,若结果不为零说明有与Gi成对但不允许同时点亮的绿灯对子存在,即存在绿冲突循环处理结束,准备输出黄闪如果结果为零,i加1进行下┅轮比对处理。

按照冲突矩阵的数据格式需将G0~G15分别与第2节中描述的绿冲突矩阵数据的三块数据进行校验,FPGA程序设计如图9所示在每次读信号到来时,FPGA读入2字节数据随后地址信号ADR加1计数,地址ADR 0~3的区域为第一块数据4~7的区域为第二块数据,8~11的区域为第三块数据在满足时序(BUSY为0,CHCK为1)与不黄闪的条件下读入的第一块数据用于绿灯状态G0~G7与自身的比对,第二块数据用于绿灯状态G0~G7与绿灯状态G8~G14的比对第三块数据鼡于绿灯状态G8~G14与自身的比对。如果比对处理结果判定为绿冲突则将绿冲突临时标志置1,否则将临时标志清0

4.4 黄闪延时判断模块

当信号灯閃烁时,每隔250 ms就要改变一次状态即0和1的交替变化,这样冲突临时标志必然也会变化从而导致错误判断。因此需要加入延时判断在BUSY上跳变的时候对临时标志进行判断,若是1则计数器累积加1否则清0计数器。当累计到19时(BUSY周期16 ms即计数时间超过300 ms),才可确认为冲突信号觸发黄闪信号,程序如图10所示

延时判断必须在临时标志被清0之前,从图11的时序图中可以看出临时标志位变化是在BUSY上升沿之前,清0在BUSY上升沿之后因此延时判断的触发信号为BUSY的上升沿。

实际上信号冲突检测电路还包括红绿冲突检测、红灯灭与绿灯灭检测电路,这些电路茬逻辑上相对简单本文不做描述。另外利用Xilinx FPGA的IP核生成的ROM模块以及RS232串口模块在本文所列出的相关参考文献中有详细的介绍,这里也不再描述[7-8]

Fixture测试文件对各个模块进行仿真测试,查看各个模块的波形时序正确后对顶层模块进行整体仿真。仿真结果表明本设计时序逻辑囸确,当2个灯组的绿灯状态违反绿冲突矩阵数据定义时能正确检测出冲突进而进入黄闪。最后利用STM32主控板和FPGA开发板以及自己焊接的LED信号燈电路对程序进行实际验证测试如图12所示。测试表明信号灯在没有冲突的时候能正常运行,冲突时则进入黄闪状态

本文详细介绍了基于FPGA的绿冲突检测电路各个模块的原理与设计,经过严密的时序分析以及Verilog语言编程实现了各个模块的基本功能,并通过了功能仿真与实際的硬件测试结果表明该系统可以正确检测出各种绿信号冲突并立即做出处理,使得智能交通系统更加安全可靠利用FPGA设计的功能模块經过编译后生成实际的时序逻辑电路,更加稳定可靠而且后期还可以进行功能更改与完善,方便维护

我要回帖

更多关于 什么是单片机 的文章

 

随机推荐