微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于LabVIEW的单片机脉冲发生器

基于LabVIEW的单片机脉冲发生器

时间:02-20 来源:3721RD 点击:

满足VISA Configure Serial Port所设定的Timeout。在对数据的连续性要求不高的时候,VISA Read也支持分批读取接收缓冲区里的数据字节或者只是读取其中的一部分字节。

  在某些特殊的情况下,可以利用VISA SET I/O Buffer Size设置串口接受/发送缓冲区的大小,使用VISAFlash I/O Buffer清空接收与发送缓冲区。  在串口使用结束后,使用VISA Close结束与VISAresource name所指定串口间的会话。

  该LabVIEW程序框图中调用了一个叫做change的子VI程序,该子VI程序的功能是将高低电平的脉冲宽度值,转换成定时器的初始值,并且拼凑成一个4个字节的16进制数,通过VISA Write模块送入下位机。该子VI的程序框图如图5所示。


  在接收到数据后,单片机有一条反馈的指令,他将其缓冲区内的值再次送回上位机,LabVIEW对该值进行显示,并可以和原来实际输出的16进制数进行比较。用户可以很方便地知道,是否在上下位机通信中出现误码。

  图6左侧的倒三角表示从图4(a)的VISA Read中接收到的值,他与LabVIEW上一次显示的值拼装成一个完整的字符串,成为新的显示值,在字符串显示区显示出来。


  4程序运行结果与验证

  程序的前面板界面如图7所示。


  图8是另一个程序的前面板,该程序可以将采样率设定为50kHz的采集卡采集到的数据显示在屏幕上。该屏幕显示的是,上位机程序发送欲产生高低电平均为0.6ms脉冲波的定时器初始值给下位机后,下位机产生的脉冲序列。


  上位机发送的16进制数为FDA8FDA8,下位机准确接收后,反馈的值也为FDA8FDA8。

  根据采样率为50kHz,即0.02ms采样一次,则在显示波形图中任选一次完整脉冲(如图8所示)进行计算,可以得到该次的低电平的持续时间为0.66ms,高电平的持续时间为0.68ms。

  这两个数据的误差可能是采集卡的采样率误差引起的,或是单片机的定时器中断服务程序的执行周期产生的延时所造成的。

  另外,在上下位机的通信中,也可能会产生误码,导致产生的波形不符合要求。如果要一次性完成数据传输的任务,则应该在上下位机间增加可纠错的编码和译码电路,否则,可以选择再次发送数据,当返回值与发送值一致时,才可认为发送成功,产生的波形基本可以符合要求。

  5结语

  本文用RS 232串行通信接口将计算机与单片机相连,组成一个可控脉冲发生器用于皮肤阻抗检测。上位机用LabVIEW编程,产生的界面友好,操作方便。这种可控脉冲发生器编程灵活,不仅可以产生方波,还可以产生三角波,正弦波等,基本可以满足实验的要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top