原创 高速数据采集系统中精确时标的CPLD实现方法

2013-11-28 16:53 1013 11 11 分类: FPGA/CPLD

  0  引言

  基于GPS的双端行波故障定位系统是利用行波的第一个波头到达线路两端的时间差来计算故障点的位置,由于行波的传播速度非常快(约为光速的98%),这就对线路两端行波波头到达时刻的时间精度要求非常高。但相对于高速数据采集系统而言,单片机系统对时间的分辨能力是很低的(设51系列CPU的时钟频率为12MHz,则计数器(T0或T1)对时间的最小分辨能力为2μs)。而且单片机系统还不能直接地得到故障发生时对应于静态RAM的确切地址,所以如果只利用单片机系统给采集数据贴上时间标签,则时间精度和时间标签的可靠性会大大降低,这样会直接影响到故障测距的精度。

  1 相关内容简介

  1.1 GPS简介

  全球定位系统(GPS)是美国于1993年全面建成并运行的新一代卫星导航、定位和授时系统。电力系统中主要是利用GPS的精确授时。GPS接收器在任意时刻能同时接收其视野范围内4~8颗卫星信号,其内部硬件电路和处理软件通过对接收到的信号进行解码和处理,能从中提取并输出两种时间信号:一是时间间隔为1s的脉冲信号1PPS;二是经串行口或RS-232输出的与1PPS脉冲前沿对应的国际标准时间和日期代码(年、月、日、时、分、秒)[1]。

  GPS接收器提供的1PPS信号实际上是以秒为计时单位、精度为1us的国际标准时间信号,这种信号在地球上任何地方都能比较可靠地接收到。因此,若以该信号作为标准时钟源去同步电网内运行的各时钟,则能保证各厂站时钟的高精确度同步运行[1]。

  1.2 ADuC812简介

  ADuC812芯片是由美国AD(Analog Device)公司推出的微转换器。它是一个完整的数据采集微系统,它的组成为:一个8通道、5μs转换时间、精度自校准、12位精度、逐次逼近的ADC转换器;两个12位的数模转换器(DAC);10.5KB的闪存E2PROM;具有16位计数/定时器和32条可编程I/O接口的8051/8052微控制器,256字节的SRAM[2]。由于ADuC812的特殊功能寄存器组中添加了一个DPP(地址为84H),它与特殊功能寄存器DPH、DPL配合,使得ADuC812能够访问16MB的外部数据地址空间。ADuC812的应用开发比较方便,它的内核是国内技术人员都很熟悉的Intel8051,用户现有软件都可以直接移植。

  1.3 MAX 7000系列CPLD器件及MAX PLUSⅡ开发平台简介

  本次设计选用ALTERA公司的MAX 7000系列器件。MAX 7000系列的高性能和高密度是基于它先进的多重阵列矩阵架构(Multiple Array Matrix),它采用E2CMOS工艺制作,传播延迟最小为3.5ns,可以实现速度高于200MHz的计数器,并且为高密度的器件提供了非常宽的选择余地,非常适合高速设计时应用。该公司推出的MAX PLUSⅡ软件是一款易于使用的开发工具,其界面友好,集成化程度高,兼容工业标准,支持FLEXMAXACEX1K等系列产品[3]。CPLD要实现的逻辑功能一般是在MAX PLUSⅡ环境下通过硬件描述语言(VHDL)开发出来的,并能脱离硬件(CPLD)对设计方案进行仿真,在确认逻辑功能正确无误的情况下,通过并行口下载“烧结”到CPLD器件中。“烧结”有不同设计人员“思想”的CPLD器件所实现的逻辑功能是千变万化的,正因为如此,对CPLD器件的开发是相当灵活的。

  2  实现方案

  针对前面提到的问题,本文提出一种利用CPLD器件巧妙解决此问题的方法。高速AD转换器件、地址发生器、地址计数器、计时器在时钟源CLK(5MHz)的同步下以统一的步调工作。ADuC812初始化时P3.5置“0”,P3.4发出清零脉冲同时对地址发生器和地址计数器清零。在故障信号出现时,ADuC812对P3.5置“1”,计时器和地址计数器同时停止计数,暂态信号记录完毕后,ADuC812分时读出计时器中的值并将该数值保存在双口RAM中,此值即为精度为0.2μs的时间信息,分时读出地址计数器中的值并将该数值保存在双口RAM中,此地址的精确时间即为计时器中的计数值。这样就为高速数据采集系统中的采集数据贴上精确的时间标签。本系统的硬件原理图如图1所示。

本系统的硬件原理图

  2.1 ADuC812的工作过程

  ADuC812初始化时P3.5置“0”,同时P3.4发出清零脉冲使地址发生器和地址计数器同步计数。ADuC812控制内部的ADC转换模块对经过调整的取自电流互感器二次侧的电流进行AD转换,采用半波比较,在每个工频内采集36个点,分别用第n个点和第n+18个点、第n+1个点和第n+19个点比较,依此类推,如果大于事先设定的门槛值即认为故障已经发生。ADuC812使P3.5置“1”,计时器和地址计数器同时停止计数,计时器中的数据即为地址计数器记录的对应于静态RAM相同地址采集数据的时间标签,由于高速AD转换器件的转换频率固定(本次设计为5MHz),所以,可以此为基准为整个静态RAM中的采集数据贴上时间标签。

  2.2 计时器和地址计数器的工作过程

  当STOP端口为低电平时(P3.5置“0”),计时器在5MHz的时钟源下以相同的频率计数,由于它是一个24位的计数器,从而确保了计时器能够记录一个整秒,并为一个整秒刻上了=0.2μs)的最小刻度。同时GPS发出的1PPS信号的上跳沿给计时器清零,从而为计时器提供精确的时间基准,以消除计时器的累计误差。

  当STOP端口为高电平时(P3.5置“1”),计时器停止计数,在此状态下GPS发出的1PPS信号的上跳沿不能对计时器清零。

  地址计数器的工作过程与计时器的工作过程类似,唯一的区别是地址计数器的清零信号(CLR)是在初始化时由ADuC812的P3.4口发出的,由于地址发生器和地址计数器共用同一个清零信号,从而确保地址发生器和地址计数器中的计数值完全相同。同理当STOP端口为高电平时,地址计数器也停止计数,在此状态下ADuC812发出的清零信号不能改变地址计数器中的计数值。

  2.3 将地址计数器和计时器中的数据送至双口RAM

  由于ADuC812是一种8位单片机,所以地址计数器和计时器中的数据只能“分批”地送至双口RAM中保存。所以要设计锁存器、译码电路和总线隔离电路,避免总线冲突以及保证总线上的数据能正确无误地传递。在本次设计中,当ADuC812的特殊功能寄存器DPP高3位的值为“00H”时将计时器的高8位数据通过ADuC812送至双口RAM中,依此类推,当特殊功能寄存器DPP高3位的值为“05H”时将地址计数器的低8位数据通过ADuC812送至双口RAM中保存。当特殊功能寄存器DPP为其他值时释放数据总线,便于ADuC812进行其他操作。

  2.4 系统的VHDL描述及其仿真结果

  系统的上述功能可由硬件描述语言(VHDL)来实现,源程序如下:

程序

程序

程序

程序

程序

程序

程序

  其仿真结果如图2所示。

仿真结果

  4 结论

  本文对高速数据采集系统中的采集数据贴上精确时间标签的方法进行了详细地叙述和仿真,得出如下结论:

  (a) 假设高速AD转换器件的转换频率为5MHz,则本系统能为存入静态RAM中的转换数据贴上精度为0.2μs的时间标签。

  (b) 通过复杂可编程逻辑器件(CPLD)间接地实现了“低速”的单片机系统对高速数据采集系统的实时监视。

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条