运用LabView控制DS3900串口通信模块
2011-05-29
本篇应用笔记讨论了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界面,用户通过该界面配置系统,以准备工作
- 用户首先要选择DS3900所连接的串口。LabView自动搜索所有的可用串口资源,并在下拉列表中显示这些串口。选择DS3900所连接的串口。
注意:与DS3900通信的缺省波特率为57600。本应用已在该波特率下进行了测试,可正常工作。建议用户在使用本应用时不要改变这个波特率。 - 正确设置串口后,即可正常使用LED开/关功能。如果终端应用将LED连接到DS3900的脉冲输出端口(P3引脚),则按下LED开/关按钮时LED会闪烁。
- 下一步,通过点击FIND I2C ADDRESS按钮,找到连接到I²C总线上的所有器件地址。在Set I2C Address输入框内键入将要与VI通信的从器件地址。
- 通过窗口顶端的标签选择用户要使用的功能。提供多种功能选项:
- 1BYTE:读或写一个寄存器,每次1个字节。
- 2BYTE:读或写两个连续存储器地址。我们假定以下情况:在每次读或写操作完成后,设备的内部地址计数器自动递增。
- Manual (手动):用户通过它可以控制I²C总线如何操作。下面的手动控制一节给出了一些例子。
单字节读/写操作
图2. 进行单字节读/写操作时,用户可选择四个地址以便和I²C器件进行通信。
用户可以选择四个不同地址以进行通信(图2)。任何READ DATA结果都会被复制到相应的WRITE DATA输入框内,以便于处理各数据位。
双字节读/写操作
图3. 2BYTE标签允许用户读取两个寄存器的数据。
对于某些特定设备,一个寄存器可能包括存储器中的两个连续字节。如果设备的存储器地址指针可自动递增以指向下一个寄存器,则2BYTE标签(图3)允许用户读取两个连续寄存器。读出的数据会被自动复制到WRITE DATA TO输入框内。
手动控制
图4. MANUAL控制标签允许用户定义操作的字节数以及期望的读或写操作。
用户利用MANUAL控制选项(图4),来决定字节数和所需的操作。下面给出了标准单字节写操作和双字节读操作的例子。
单字节写操作
START |
SEND WRITE (DEVICE |
SEND BYTE (MEMORY |
SEND BYTE (DATA TO |
STOP |
双字节读操作
START |
SEND WRITE |
SEND BYTE |
SEND |
SEND READ |
READ WITH |
READ WITH |
STOP |
重要提示:当读数据时,最后一个读取的字节应该采用“Read with NACK”。这允许用户根据需要读取多个字节。需要“Read with NACK”以告知设备不要再发送更多数据。
用户可以复位I²C总线。如果用户在手动控制的通信过程中不知怎样操作,并且总线处于未知状态,那么这个功能非常有用。SCL和SDA High/Low (高/低)按钮允许用户将这些引脚强制为期望的状态。
总结
本应用笔记结合提供的LabView VI,阐述了与DS3900通信时LabView起到的巨大作用。一旦理解了这些基本概念,用户就可以修改VI或者复制特定模块,以满足特定的应用需求。