LabVIEW-串口通信

串行接口 (Serial Interface) 是指数据按位顺序地进行传输,发送设备和接收设备只需要一对传输线路即可实现双向互连通信,其特点是通信线路简单、成本低,距离远,速度较慢。
根据串行信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
串口通信的两种最基本的方式,同步串行通信方式SPI(Serial Peripheral interface)和异步串行通信方式UART(Universal Asynchronous Receiver/Transmitter),UART包含TTL电平的串口和RS232电平的串口。其中, TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。
串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
LabVIEW与串行设备通信前,需要安装National Instrument公司的VISA驱动,并提供了串口通信范例。

实现过程

  • 01

    VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总称。 VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器。它还支持多平台工作、多接口控制,是一个多类型的函数库。

  • 02

    在LabVIEW中编写的VISA接口程序(需要提前安装对应labVIEW版本的VISA驱动),当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。

  • 03

    在LabVIEW 中利用VISA节点进行串行通信编程。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含8个节点(程序框图-查看-函数选板-仪器I/O-串口),分别实现VISA串口配置、VISA写入、VISA读取、VISA关闭,VISA串口字节数,VISA串口中断,VISA设置I/O缓冲区大小,VISA清空I/O缓冲区域;

  • 04

    VISA串口配置:该节点主要用于串口的初始化,如图所示。 启用终止符(接线端):使串行设备做好识别终止符的准备。 如值为TRUE(默认),VI_ATTR_ASRL_END_IN属性设置为识别终止符。如值为FALSE,VI_ATTR_ASRL_END_IN属性设置为0(无)且串行设备不识别终止符。 终止符(接线端):通过调用终止读取操作。从串行设备读取终止符后读取操作终止。 0xA是换行符(\n)的十六进制表示。消息字符串的终止符由回车(\r)改为0xD。 超时(接线端):指定读/写操作的时间,以毫秒为单位。 默认值为10000。 VISA资源名称(接线端):指定要打开的资源,如PC的COM1,COM2等。VISA资源名称控件也可指定会话句柄和类。 波特率(接线端):是传输速率。 默认值为9600。 数据位(接线端):是输入数据的位数。 数据位的值介于5和8之间。默认值为8。 奇偶(接线端):指定要传输或接收的每一帧使用的奇偶校验。 该输入支持下列值。 错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。 停止位(接线端):指定用于表示帧结束的停止位的数量。 该输入支持下列值。流控制设置传输机制使用的控制类型。 该输入支持下列值。 VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。 错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

  • 05

    VISA写入:使写入缓冲区的数据写入VISA资源名称指定的设备或接口。 VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。 写入缓冲区(接线端):包含要写入设备的数据。 错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。 VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。 返回数(接线端):包含实际写入的字节数。 错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

  • 06

    VISA串口字节数:返回指定串口的输入缓冲区的字节数。 Number of Bytes at Serial Port属性(接线端):可指定该会话句柄使用的串口的当前可用字节数。

  • 07

    VISA读取:从VISA资源名称指定的设备或接口中读取指定数量的字节,并使数据返回至读取缓冲区。 VISA资源名(接线端):称指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。 字节总数(接线端):是要读取的字节数量。 错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。 VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。 读取缓冲区(接线端):包含从设备读取的数据。 返回数(接线端):包含实际读取的字节数。 错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

  • 08

    VISA关闭:该节点主要用于关闭已打开的串口,释放串口资源,以便串口被其他程序所调用,如图所示。 VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。 错误输入(接线端):是节点运行前发生的错误。在下列情况下,该输入可作为标准错误输入。 即使在节点运行前发生错误,节点仍正常运行。 错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

  • 09

    VISA设置I/O缓冲区大小 :设置I/O缓冲区大小。如需设置串口缓冲区大小,须先运行VISA配置串口VI。 VISA资源名(接线端):称指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。 屏蔽(接线端):指明要设置大小的缓冲区。 (I/O接收缓冲区,I/O传输缓冲区,I/O接收和传输缓冲区) 大小(接线端):指明I/O缓冲区的大小,以字节为单位。大小应略大于要传输或接收的数据数量。如在未指定缓冲区大小的情况下调用该函数,函数可设置缓冲区大小为4096字节。如未调用该函数,缓冲区大小取决于VISA和操作系统的设置。 错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。 错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能

  • 10

    VISA清空I/O缓冲区:清空由屏蔽指定的I/O缓冲区。 VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。 屏蔽(接线端):指明要刷新的缓冲区。 该输入支持下列值【1,清空接收缓存区域;2,向设备写入传输缓存区域;3,清空接收缓冲区并放弃内容(设备不执行任何I/O);4,清空传输缓冲区域】。 错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。 VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。 错误输出包含错误信息。该输出将提供标准错误输出功能。

  • 11

    VISA串口中断 VI:发送指定端口上的中断。通过连线数据至VISA资源名称输入端可确定要使用的多态实例,也可手动选择实例。 VISA资源名称(接线端):指定要打开的资源。VISA资源名称控件也可指定会话句柄和类。 持续时间(接线端):指定中断的长度,以毫秒为单位。 VI运行时,该值暂时重写VISA Serial Setting:Break Length属性的当前设置。此后,VI将把当前设置返回到初始值。 错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。 VISA资源名称输出(接线端):是由VISA函数返回的VISA资源名称的副本。 错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。

    范例

    • 01

      在LabVIEW 中,进行串口通信的基本步骤分为3步: 第一:串口初始化,利用Visa Configure Serial Port.vi节点设定串口的端口号、波特率、停止位、校验位、数据位。 第二:读写串口,根据需要利用Visa Write节点和Visa  Read节点对串口进行读写(写入指令和读取指令之间加入适当的延迟)。 第三:关闭串口,停止所有读写操作。

    (0)

    相关推荐

    • 如何使用RS232串口通信

      RS232即异步传输标准接口. 个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口.通常 RS-232 ...

    • 串口调试工具怎么使用

      BOAST串口调试工具可以作为通用的串口调试工具。 串口调试工具 可以用来调试 串口通信程序。这时:串口调试工具 作为一端,串口通信程序 作为另外一端。调试时,一端发送,另外一端接收。多机情况下,用串 ...

    • 用Qt编写一个串口通讯程序

      Qt软件编程,windows下的Qt编程,实现功能串口通信,数据发送和接收. 根据协议编写打印机串口通信程序. 操作方法 01 新建一个Qt项目: 文件->新建文件或项目(ctrl+n) 02 ...

    • 串口怎么用printf函数发送数据?

      串口和串口之间的通信是串口通信(Serial Communication), 它是指外设和计算机间,通过数据信号线 .地线.控制线等,按位进行传输数据的一种通讯方式.在51程序中我们常常使用print ...

    • 如何用stc-isp软件打开串口助手?

      通过图文教程来学会如何用stc-isp软件串口助手. 操作方法 01 打开stc-isp软件. 02 在软件界面右边选项找到" 串口助手"并点击. 03 查看当前串口号(COM1) ...

    • 新手如何学习Linux

      新手如何学习Linux

    • Windows更新驱动将硬件黑客的USB串口设备变砖

      硬件黑客们发现他们基于Arduino微控制器的设备在微软最近推送的Windows驱动更新后变得无法工作。更新的驱动与苏格兰公司 FTDI的USB转串口芯片有关, FTDI的芯片非常流行,几乎每一个能通 ...

    • 如何改造 Linux 虚拟终端显示文字

      简介: 本文就 CJKTTY 补丁如何让 linux 虚拟终端显示汉字的原理进行了讨论,为此介绍了 Linux 虚拟终端和其依赖的硬件的工作原理。过程中我们分析了 Linux 字符终端的不足之处,并向 ...

    • VC6.0开发手册中文版

      给出部分书的名称: 精通Visual C++图像编程 MFC中文帮助 MFC程序员的WTL指南 VC6从入门到精通-开发者眼中的VC VC6从入门到精通-附录 MS VC++6.0程序员指南 VC6从 ...