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

发布者:Shuangfei最新更新时间:2012-03-24 来源: eefocus关键字:LabVIEW  单片机  下位机 手机看文章 扫描二维码
随时随地手机看文章

  1引言

  由于各种人群的皮肤阻抗的动态范围不一样,甚至同个人在不同的时间、不同的环境下皮肤阻抗的动态范围也不一样。因此,在皮肤阻抗检测系统中,刺激器需要根据不同的人群以及不同的环境,产生不同频率、不同脉宽的刺激信号,才能保证检测系统可以测量到人体皮肤的真实阻抗。

  MCS-51单片机系统有3个定时器可以产生方波,而且方波的脉冲频率及宽度可以由软件设定,这种产生脉冲的方式具有很大的灵活性。上位机软件LabVIEW同下位机通信时,将下位机所要产生的脉冲的参数通过串口传给下位机,以便实现利用LabVIEW控制单片机产生所需脉冲的目的。

  2下位机系统的设计

  2.1硬件部分

  MCS-51单片机内部有一个功能很强的全双工串行口,该串行口有4种工作方式。片内的定时器/计数器可以产生波特率,大小可用软件设置。有2个物理上独立的接收、发送缓冲器SBUF,接收、发送均可触发中断系统,使用十分方便。对外也有两条独立的收、发信号线RXD(P3.0)和TXD(P3.1)。

  本文采用RS 232串行接口标准,在电气特性上,RS232采用负逻辑,要求高低两信号间有较大的幅度,标准为:逻辑"1"在-5~-15V之间,逻辑"0"在+5~+15V之间。

  2.2软件部分

  MCS-51的定时器0进行两次计数。设P1.0为脉冲发生端,当定时器0的第一次计数结束后,将P1.0取反,赋新的初值,再进行第二次计数。当第二次计数结束后,再一次将P1.0取反,又赋原来的初值,进行新一轮的计数,如此反复即可产生方波。这样通过两次计数值的不同就可以实现产生不同脉宽及频率的方波了。


  图1,图2和图3给出了单片机程序的详细流程图。其中定时器1工作在方式2,这是一种自动重装方式,禁止中断,用于产生波特率(该波特率设置为9 600)。串口工作在方式1,发送或接受一帧信息为10位,1位起始位(0),8位数据位和1位停止位(1),无奇偶校验位。程序还设定串口中断优先级高于定时器0的中断优先级。

  在通信前,上下位机一般会约定一个协议,例如在发送的数据前加一个标识段,一般为一个字节。当该字节传输正确后,下位机才可以认为上位机准备发送数据段。这样可以避免串口偶尔产生的误发信号。

  程序设定4个字节为一个数据段,是因为上位机一次性要发完包括高低电平在内的两次定时器的初始值,而每一个初始值都有两个字节。因此下位机判断一次完整的数据段是否发送完毕,就是判断其是否收到了4个字节的数据。

  3上位机系统的设计

  LabVIEW语言是美国国家仪器(NI)公司开发的一种基于图形化语言(G语言)的编程语言,利用该语言编写的模块化程序,具有良好的界面,简单、直观,且易于理解、调试和维护。做成的虚拟仪表可以当作许多仪器设备来使用,其功能完全由用户编程定义。另外,LabVIEW内还包含丰富的数据采集、数据信号分析以及控制等子程序,特别适用于数据采集、通信处理系统。

  LabVIEW提供了很多现成的可供调用的函数库,从底层的GPIB,VXI,PXI,串口数据采集板的控制子程序到大量的仪器驱动程序;从基本的功能函数到高级分析库,几乎涵盖了仪器设计中需要的所有函数。同时,LabVIEW还支持用于网络通讯的TCP/IP协议、动态数据交换(DDE)和网络化多媒体对象技术(ActiveX)等应用软件标准。

  3.1VISA LabVIEW提供了功能强大的VISA库

VISA(Virtual InSTrument Software Architecture,虚拟仪器软件规范)是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA库驻留于计算机系统中,完成计算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API(ApplicatiON Programmer Inter-face,应用程序接口)。正因为如此,VISA可以连接不同标准的I/O设备。

  VISA本身并不具备编程能力,惟他通过调用底层的驱动程序来实现对仪器的编程。VISA的I/O软件库的源程序是惟一的,其与操作系统及编程语言无关,只是提供了标准形式的API文件作为系统的输出。

[page]

  3.2LabVIEW中利用VISA实现串口通信

  在LabVIEW中使用串口的基本流程为:先调用VISA Configure Serial Port来完成串口参数的初始化设置,包括了串口的资源分配,波特率的设定,数据位、停止位、校验位和流控制等。

  当某一个串口初始化成功后,就可以使用该串口进行数据的收发。使用VISA Write进行数据的发送,使用VISA Read进行数据的接收。在接收数据前,有时需要VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至缓冲区中的数据字节数达到要求或是等待时间满足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。

[page]

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

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

  5结语

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

关键字:LabVIEW  单片机  下位机 引用地址:基于LabVIEW的单片机脉冲发生器

上一篇:基于USB总线的虚拟仪器技术
下一篇:基于虚拟仪器的电机故障声测系统

推荐阅读最新更新时间:2024-03-30 22:25

PIC单片机中断执行的步骤及过程
1)系统初始化的时候会打开总中断控制位(GIE),打开某个中断控制位,如果是外围中断还要打开外围中断控制位(PEIE); 2)CPU正在执行某个用户程序时,突然收到一个随机产生的中断信号,使某个中断标志位置为1; 3)CPU立刻停止当前的程序,并将下一条要执行的程序的地址保存起来; 4)CPU自动关闭总中断控制位(GIE),控制指令指针跳到中断入口处; 5)从中断入口跳转至中断服务子程序(ISR)。在ISR中程序员应该首先保护中断现场(保存相应重要寄存器的值), 然后根据中断标志位来响应何种中断并作出处理; 6)中断程序执行完毕,首先清空中断标志位并恢复中断现场,执行特殊的指令返回原先用户程序终止处。
[单片机]
PIC<font color='red'>单片机</font>中断执行的步骤及过程
基于DSP+MCU的列车滚动轴承故障诊断系统设计
   O 引言   滚动轴承是列车转动机件的支撑,也是铁路车辆上最容易危及行车安全的易损件。由于工作面接触应力的长期反复作用,极易引起轴承疲劳、裂纹、压痕等故障,导致轴承断裂,造成重大事故。轴承工作状态是否正常,对于列车的安全有着重大的影响。因此,开展列车滚动轴承故障诊断的研究对避免重大事故、促进经济发展具有相当大的意义。    1 系统总体设计   1.1 硬件系统   振动控制系统是一个典型的实时信号处理系统,需要对较复杂的信号进行处理。考虑到单片机的控制功能强,其总线位数少,运行速度相对较慢;而DSP(Digital Signal Processor)的运算能力强,总线宽度宽,控制功能相对较弱。为了提高系统的信号处
[嵌入式]
赛普拉斯支持低功耗蓝牙连接的MCU,为智能手机构建Mesh网络
新的解决方案延长了电池续航,能够实现长距离连接,并且帮助可穿戴设备和遥控设备实现语音控制和音频传输功能 全球领先的嵌入式解决方案供应商赛普拉斯半导体公司近日宣布,推出两款低功耗双模蓝牙5.0和低功耗蓝牙(BLE)MCU样片,以支持构建物联网中的蓝牙Mesh网络。两款全新MCU的型号分别为CYW20819和CYW20820,能够同时提供蓝牙5.0音频和BLE连接,低功耗的无线解决方案能够帮助依靠电池供电的运动手环、健康监测设备和语音遥控设备实现音乐传输和语音指令控制。设计人员还可以利用该解决方案来开发低成本、低功耗的、并能相互通信的蓝牙Mesh网络设备,通过简单、全面、无需hub的蓝牙连接,也实现智能手机、平板电脑和家庭语音助手
[物联网]
强电磁脉冲对单片机系统的辐照效应实验研究
  目前,电磁环境日趋恶劣,电子系统工作的可靠性和安全性受到了严重威胁。研究在复杂的电磁环境下,特别是在核电磁脉冲(NEMP)、雷电电磁脉冲(LEMP)和高功率微波(HPM)等强电磁环境下,电子系统的电磁兼容性问题显得尤为重要。为此,石家庄军械工程学院静电与电磁防护研究所申请了国防科技重点实验室基金项目:强电磁脉冲对电子设备的效应和防护技术研究。单片机系统的效应实验是其重要组成部分。为有效地进行单片机系统的效应实验研究,专门设计了用于强电磁脉冲效应实验的具有故障自动检测及显示功能的单片机系统,并将其运用于效应实验,对单片机系统在强电磁环境下的效应问题进行了深入研究。 1 强电磁脉冲对单片机系统效应实验的方法及配置 1.1 实验
[单片机]
强电磁脉冲对<font color='red'>单片机</font>系统的辐照效应实验研究
SUKON触摸屏学习单片机modbus通讯程序
#include main.h /****************************** modbus RTU 的C51程序 单片机89S52 通信波特率 9600 8位数据 1位停止位 偶校验 485通位接口 单片机控制板地址 localAddr(变量) 通信可设置数据的地址: 字地址 0 - 255 (只取16位的低8位) 位地址 0 - 255 (只取16位的低8位) *******************************/ uint32 dwTickCount,dwIntTick; //时钟 uint8 idata sendBuf ,receBuf ; //发送接收缓冲区 uin
[单片机]
【51单片机】1602 CGRAM、CGROM及DDRAM的作用
CGRAM : 允许用户自建字模区的空间。从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16个,实际只有8个字节可用。它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零(表上的高位)。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000X111,X为无效位,最后三位为000-111共8个。 CGROM : 字模存储用空间。你要显示某个ASCII字符时,要显示字符的字模就存在这里。 DDRAM : 显示用RAM。直接和屏幕上的点相对应。屏幕上的一个点和DDRA
[单片机]
【51<font color='red'>单片机</font>】1602 CGRAM、CGROM及DDRAM的作用
构建全新的车载娱乐网络
随着小汽车、卡车和SUV中电子信息内容的不断增加,每辆新车中所用的微控制器的数量也在逐年上升。目前有大量8位、32位和16位MCU被用来执行关键任务,如刹车和灯光系统,然而,新型的MCU还用于创新性的信息显示和视频娱乐功能。随着单位成本的下降,汽车制造商以及他们的一级供货商寻求产品的差异化以及性能的不断改进,这一趋势将会继续保持。 基于已颁布标准(如CAN和LIN)的控制器在不断改进。如今新的MCU可以支持发动机和车身控制设备所需的三组CAN连接-最高端的32位控制器最多可提供6个CAN通道。它们还支持与用于座位调节、仪表盘以及其他乘客舒适度调节功能的LIN总线的互联。今年,随着制造商力图增加关键任务系统中服务的冗余度和质量,Fl
[嵌入式]
80C51单片机的引脚及其功能介绍
首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 ⒈ 电源: ⑴ VCC - 芯片电源,接+5V; ⑵ VSS - 接地端; ⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊ 控制线:控制线共有4根, ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ① ALE功能:用来锁存P0口送出的低8位地址 ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 ⑵ PSEN:外ROM读选通信号。 ⑶ RST/VPD:复位/备用电源。 ① RST(Reset)功能:复位信号输入端。 ② VP
[单片机]
80C51<font color='red'>单片机</font>的引脚及其功能介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved