100MHz 数字存储示波表样机的研究与试制----显示数据传输电路
5.2显示数据传输电路显示数据在整个系统的流向如图4-6.模拟信号经AD采样进来后通过FIFO进入DSP处理,处理完的数据随后存入SRAM3.SRAM3中的数据经FIFO2送入SRAM1和SRAM2.当要显示波形时,SRAM1、SRAM2分时复用,将显示数据再经过FIFO2送至液晶显示。系统中,SRAM1、SRAM2、SRAM3都为单口RAM,所以主要存在以下两个问题:1.合理分配SRAM3的地址总线、数据总线分时被DSP和FPGA2占用的问题;2.正确协调SRAM1和SRAM2分时复用送显示数据的问题。
5.2.1 SRAM3的总线占用
解决SRAM3总线占用问题的关键是由DSP发出的XF信号(如图4-7)。当XF为低电平时,SRAM3的读写、片选信号ram3_rws由DSP发出的读写和片选信号DSP_RWS控制,同时DSP的数据、地址线通过74244和SRAM3的数据、地址线连接起来,并利用XF作为选通信号。当XF为高电平时,SRAM3固定为读信号和片选信号有效,此时SRAM3中的数据通过FIFO2进入SRAM1和SRAM2.DMA_A是FPGA里地址计数器产生的往SRAM1和SRAM2中写数据时的地址。这样,我们就可以通过控制XF的高低来选择是谁占用SRAM3的总线。
5.2.2 SRAM1和SRAM2的分时复用
所谓分时复用就是指两片显示存储器SRAM1和SRAM2依次向液晶提供显示数据。它的工作原理如图4-8所示。其中,View_S由XF反相后二分频得到。
图中各部分的工作状态如下:
1. RAM3经FPGA2向RAM2里写数据。同时,RAM1的数据送LCD显示。
2. DSP向RAM3里写数据。同时,RAM2的数据送LCD显示。
3. RAM3经FPGA2向RAM1里写数据。同时,RAM2的数据送LCD显示。
4. DSP向RAM3里写数据。同时,RAM1的数据送LCD显示。
它的具体工作电路如图4-9.
图中,DMA_RWS为固定的读信号和片选信号有效。VIEW_A为显示时读显示RAM的地址。DMA_A为写显示RAM时的地址。这两个地址都由FPGA中的地址计数器产生。
数字存储示波器的显示基本包括两部分,一部分是界面显示部分,包括菜单的显示,光标的显示等,另一部分是波形显示部分,波形显示部分是随时在更新的,而菜单显示部分更新的次数是很少,一般在不按键操作的情况下是很少改变的。所以我们采用分页显示,即将显示存储空间分成两个区间,每个区间都是一屏显示所需的空间即为240×320×2÷8=19200Bytes.一个区间用来显示菜单,光标等不常刷新的界面,一个区间用来显示波形,LCD显示时将两个存储区间里的对应地址的数据通过硬件电路相或以后再送LCD显示。这样在软件处理是节省了重复刷屏的时间,也简化了软件的编写。图4-10为由显示RAM中两个的数据区间相或后送到LCD显示的电路。其中SHIFT和SHIT1分别两个区间的地址计数器的计数时钟,它们的时钟脉冲要求在一个CP周期内完成,即两个区间的数据读取必须在一个CP时钟周期内才能保证正确的数据显示。
第六章串行接口通讯
在很多现场测试场合,工程技术人员都需要获得某种形式的测量结果的硬拷贝,以便以后作为参考资料使用,或者设备报告发生错误动作时需要查看以往的资料。另外,在很多情况下我们需要把示波表中的信号传往PC机,同时在某些情况下,我们也可能希望用PC机来对示波表进行控制,以上这些情况都要求示波表具有通讯能力。也就是说,示波表必须装有通讯硬件以及其支持的软件。我们称此通讯用软硬件为“接口”。常用的接口有两种,RS-232接口和通用接口总线(GPIB),后者又称为IEEE-488总线。与并行接口相比,串行接口的最大特点是减少了器件引脚数目,降低了接口设计复杂性。
串行通信是指数据按位依次传输,串行通信中要求发送和接受双方必须遵守统一的规定,这样才能保证正常进行,这些对数据传送方式的规定就是通信协议,通信协议包括数据格式和时间限制等方面的定义和要求等,通信协议可由用户自己制定,也可采用标准通信协议。
串行数据传输可分为同步和异步两种模式。通用PC机的RS-232接口为通用异步接口UART(Universal Asynchronous Receiver and Transmitter),而MOTOROLA公司的串行外围设备接口SPI、队列SPI(QSPI)、PHILIPS公司的内部IC总线(I2C),National公司的微总线(MICROWIRE)均为同步串行协议。目前几乎所有的数字信号处理器都提供了一个或多个串行接口,然而,多数DSP芯片提供的是同步串口。在实际的应用中,也需要DSP能够与外设进行异步串行通信,如与PC机进行串行数据传输就要求DSP系统具UART串行接口。针对这种情况,本文研究并实现了一种简单、可靠的异步串口扩展方法。
实际设计中,我们采用美国MAXIM公司的MAX3111串行异步收发器,与DSP的McBSP口直接连接,将同步数据变换为UART异步数据格式进行传输。硬件上无需任何其它外围器件,同时由于异步数据的发送和接收由MAX3111以硬件方案实现,所以软件编程需要考虑的也只是DSP与MAX3111之间的同步数据通信。这样,用最简单的硬件连接和软件编程就能实现同步到异步的串行数据格式转换。
6.1 McBSP的功能与特点
TMS320VC5416具有3个高速、全双工、多通道缓冲串行接口(McBSP),其方便的数据流控制可使其与大多数同步串行外围设备接口。McBSP是在标准串行接口的基础上对功能进行扩展的,除具有标准串口的功能特点外,其灵活性体现在如下几个方面:
◆双缓冲区发送,三缓冲区接收,允许连续数据流传输;
◆可与SPI、IOM-2、AC97等兼容设备直接接口;
◆可编程帧同步、数据时钟极性,支持外部移位时钟或内部频率可编程移位时钟;
◆拥有相互独立的数据发送和接收帧同步脉冲和时钟信号;
◆多通道发送和接收,最多可达128个通道,速度可为100Mbit/s.
6.2 MAX3111通用异步收发器
MAX3111通用异步收发器是MAXIM公司专门为小型微处理系统进行最优化设计的UART,它包括一个振荡器和一个可编程波特率发生器;具有一个可屏蔽的中断源;另具有一个8字节的接收FIFO(先入先出)缓冲器。它应用SPI/MICROWIRE接口技术直接与主控制器进行通信,线路简单、体积小,通信速率可达30kbit/s.另外其内部除具有UART之外,还包括两个RS-232电平转换器,这样无需再接入普通的MAX232进行电平转换,即可应用一个芯片实现微控器(具有PI/MICROWIRE接口)与PC机或其它设备之间的异步数据传输。
MAX3111通过SPI接口与主设备进行16位数据的全双工同步通信,即主设备传送16位数据给MAX3111的同时,也可接收到MAX3111发送的16位数据。主设备在MOSI线上向MAX3111发送的16位串行数据序列中包括传输格式控制字,如波特率设备、中断屏蔽、奇偶校验位等,同时还有发送的数据字。MAX3111在MISO线上向主设备发送的16位数据序列中除了接收到的数据外,还包括中断标志等状态位。所以通过16位的实时数据传输,主设备可获得MAX3111工作状态信息,同时对其具有完全控制权利。这样,两个设备的控制、状态、数据信息的实时通信就保证了数据传输的可靠性和稳定性。
6.3 TMS320VC5416与MAX3111的接口设计
TMS320VC5416的McBSP串行接口工作于时钟停止模式时与SPI协议兼容,可直接与MAX3111进行连接,从而实现与RS-232设备进行异步数据传输。此时DSP作为SPI协议中的主设备,其接口电路如图6-1所示。
TMS320VC5416发送时钟信号(BCLKX)作为MAX3111的串行输入时钟,发送帧同步脉冲信号(BFSX)作为MAX3111的片选信号(CS)。在这种方式下对接收时钟信号(BCLKR)和接收帧同步信号(BFSR)将不进行连接,因为它们在内部与BCLKX和BFSX相连接。BDX与DIN连接作为发送数据线,BDR与DOUT连接作为接收数据线。MAX3111的TX与T1IN连接,RX与R1OUT连接,以便利用其片内的转换器实现UART到RS-232电平的转换。MAX3111的中断信号(IRQ)与DSP的外部中断相连。
在SPI串行协议中,主设备提供时钟信号并控制数据传输过程。由MAX3111接口电路时序图6-2可知,必须设置DSP的McBSP于适当的方式才能保证与MAX3111的时序相配合。
MAX3111要求在数据传输过程中CS信号必须为低电平,在传输完毕后必须为高电平。此信号由McBSP的BFSX引脚提供,因此必须正确设置DSP的帧脉冲发生器,使之在每个数据包传输期间产生帧同步脉冲,即在数据包传输的第一位变为有效状态,然后保持此状态直到数据包传输结束。
McBSP的采样率发生器产生适当频率的时钟信号,由BCLKX引脚输出,保证主从设备间的同步数据传输。因此必须正确设置DSP的采样率发生器时钟源(CLKSM)和时钟降频因子(CLKGDV)。根据SPI传输协议,必须正确设置数据发送延迟时间(XDATDLY)。由图6-2可知MAX3111要求在SCLK变高之间的半个周期开始传输数据。
所以必须为McBSP选择合适的时钟方案,即设置McBSP的时钟停止模式。在本应用中采用McBSP的时钟停止模式2(CLKSTP=11b,CLKXP=0),这样即可保证与MAX3111的时序相配合。
结论
经过一年多的项目分析、论证、设计、制作及调试,现已完成本课题的设计任务,完成了样机的制作。本课题是“100MHz数字存储示波表”项目中数字系统部分。它是该项目的重要设计部分,通过本课题的研究,本文主要完成了以下几点:
1.数据采集系统的研究与设计。数据采集系统是数字存储示波器与模拟示波器的主要不同之处,它完成模拟信号数字化,通过实时取样和随机取样两种取样技术将模拟信号数字化。这里主要难点在于AD在高速采样率下怎样避免采样时钟的干扰和AD数据与FIFO的时序配合问题。
2.显示控制电路实现。主要设计精髓在于在没有专用控制芯片下,采用FPGA设计LCD显示时序电路,完全由硬件电路实现LCD数据显示流程以及多页面数据显示控制技术。
3.DSP与外部接口电路的设计。主要是通过MAX3111完成同步到异步的串行数据格式的转换。
同时在设计和调试过程中遇到了以下几点问题:
1.在调试LCD显示时,显示屏上某些点出现闪烁现象。经研究发现是LCD的显示控制时序配合不好的缘故。重新调整时序后,闪烁现象消失。
2.在随机取样时,设计的展宽脉冲电路时,发现随着MAXPLUSⅡ每次编译的不同,波形恢复出现效果不一样,有时能正常恢复,有时出现飞点,后来在选用FPGA时采用了工业级,效果非常好。
通过以上工作,示波表的硬件软件调试工作已初步完成,考虑到项目设计和调试过程中碰到的问题以及与国外同类产品的比较,特提出了以下优化建议:由于本课题采用了随机取样技术,它只能测出单一频率的周期信号。对于非周期信号不能再现完整波形。故建议在经后工作中提高实时取样时钟。全部采用实时取样技术。这样也简化了软件的设计。
页:
[1]