您现在的位置是:首页 > 电源

运用LabView控制DS3900串口通信模块

2020-04-17 09:02:59

运用LabView控制DS3900串口通信模块

本篇应用笔记讨论了DS3900串口通信模块和LabView的使用问题,LabView是适用于嵌入式应用的图形化界面开发平台。本文可作为面向DS3900的LabView界面用户指南。

介绍

LabView作为嵌入式应用的图形化界面开发平台得到了广泛应用。DS3900串口通信模块是一款通用接口板,借助该接口板,用户可使用PC串口与具有I²C接口的器件通信。DS3900的指令集允许应用软件与I²C器件直接通信。

本应用笔记是面向DS3900的LabView界面的用户指南。首先,用户需要安装LabView。为用户提供了标准VI,以加载并运行程序。可以下载与本应用笔记相关的LabView代码(ZIP,321K)。

使用LabView软件

加载VI后,用户必须运行该程序并按照以下步骤操作。(见图1)

图1. LabView界面,用户通过该界面配置系统,以准备工作
图1. LabView界面,用户通过该界面配置系统,以准备工作

  1. 用户首先要选择DS3900所连接的串口。LabView自动搜索所有的可用串口资源,并在下拉列表中显示这些串口。选择DS3900所连接的串口。

    注意:与DS3900通信的缺省波特率为57600。本应用已在该波特率下进行了测试,可正常工作。建议用户在使用本应用时不要改变这个波特率。
  2. 正确设置串口后,即可正常使用LED开/关功能。如果终端应用将LED连接到DS3900的脉冲输出端口(P3引脚),则按下LED开/关按钮时LED会闪烁。
  3. 下一步,通过点击FIND I2C ADDRESS按钮,找到连接到I²C总线上的所有器件地址。在Set I2C Address输入框内键入将要与VI通信的从器件地址。
  4. 通过窗口顶端的标签选择用户要使用的功能。提供多种功能选项:
    1. 1BYTE:读或写一个寄存器,每次1个字节。
    2. 2BYTE:读或写两个连续存储器地址。我们假定以下情况:在每次读或写操作完成后,设备的内部地址计数器自动递增。
    3. Manual (手动):用户通过它可以控制I²C总线如何操作。下面的手动控制一节给出了一些例子。

单字节读/写操作

图2. 进行单字节读/写操作时,用户可选择四个地址以便和I2C器件进行通信。
图2. 进行单字节读/写操作时,用户可选择四个地址以便和I²C器件进行通信。

用户可以选择四个不同地址以进行通信(图2)。任何READ DATA结果都会被复制到相应的WRITE DATA输入框内,以便于处理各数据位。

双字节读/写操作

图3. 2BYTE标签允许用户读取两个寄存器的数据。
图3. 2BYTE标签允许用户读取两个寄存器的数据。

对于某些特定设备,一个寄存器可能包括存储器中的两个连续字节。如果设备的存储器地址指针可自动递增以指向下一个寄存器,则2BYTE标签(图3)允许用户读取两个连续寄存器。读出的数据会被自动复制到WRITE DATA TO输入框内。

手动控制

图4. MANUAL控制标签允许用户定义操作的字节数以及期望的读或写操作。
图4. MANUAL控制标签允许用户定义操作的字节数以及期望的读或写操作。

用户利用MANUAL控制选项(图4),来决定字节数和所需的操作。下面给出了标准单字节写操作和双字节读操作的例子。

单字节写操作

START
SEND WRITE (DEVICE
ADDRESS FOR WRITE)
SEND BYTE (MEMORY
ADDRESS)
SEND BYTE (DATA TO
BE WRITTEN)
STOP

双字节读操作
START
SEND WRITE
(DEVICE
ADDRESS
FOR WRITE)
SEND BYTE
(MEMORY
ADDRESS)
SEND
START
(REPEATED
START)
SEND READ
(DEVICE
ADDRESS
FOR READ)
READ WITH
ACK (READ
1ST BYTE)
READ WITH
NACK (READ
2ND BYTE)
STOP

重要提示:当读数据时,最后一个读取的字节应该采用“Read with NACK”。这允许用户根据需要读取多个字节。需要“Read with NACK”以告知设备不要再发送更多数据。

用户可以复位I²C总线。如果用户在手动控制的通信过程中不知怎样操作,并且总线处于未知状态,那么这个功能非常有用。SCLSDA High/Low (高/低)按钮允许用户将这些引脚强制为期望的状态。

总结

本应用笔记结合提供的LabView VI,阐述了与DS3900通信时LabView起到的巨大作用。一旦理解了这些基本概念,用户就可以修改VI或者复制特定模块,以满足特定的应用需求。