1
本 应用 笔记 讨论 了 DS3900 串行 通信 模 块 和 LabView(用于 开发 嵌入式 应用 的 图形 化 编 程 平台)。本文 可 作为 基于 LabView 的 DS3900 接口 用户 指南。
介绍
LabView 作为 用于 开发 嵌入式 应用 程序 的 图形 化 编 程 平台 很 广受欢迎。DS3900串行通信模块是一块通用接口板,使用PC的串行端口与配备I²C接口的设备进行通信。DS3900的指令集允许应用软件直接与I²C器件通信。
本 应用 笔记 是 基于 LabView 的 DS3900 接口 用户 指南。要使用此应用程序,用户需要安装LabView。提供标准VI供用户加载和运行程序。本 应用 说明 的 LabView 代码 可 下载 (ZIP, 321K)。
使用 LabView 软件
加载VI后,用户必须运行程序并执行以下步骤。(请参阅图 1。
图1.LabView屏幕,用户从中配置系统进行操作。
用户首先选择用于DS3900编程的串行端口。LabView自动搜索可用的串行端口资源,并将其显示在下拉列表中。选择DS3900连接的串口。
注意:DS3900通信的默认波特率为57600。此应用程序已经过测试,在此波特率下正常运行。建议用户在使用应用程序时不要更改此速率。
如果串口设置正确,LED 开/关功能应该可以工作。如果终端应用有一个LED连接到DS3900的脉冲输出(引脚P3),则当按下LED开/关按钮时,该LED应打开和关闭。
接下来,通过单击“查找I2C地址”按钮,找到I²C总线上所有器件的从地址。使用设置I2C地址字段输入VI将与之通信的从地址。
顶部的选项卡确定用户要使用的特定功能。有多种选项可供选择:
1BYTE:写入或读取寄存器,一次 1 个字节。
2BYTE:写入或读取两个连续的内存地址。这假设每次完成读取或写入时,设备的内部地址计数器都会自动递增。
手动:用户决定I²C应如何操作的控制。下面的“手动控制”部分给出了一些示例。
单字节读写
图2.执行单字节操作时,用户可以在四个地址中选择与I²C器件通信。
用户可以选择四个不同的地址进行通信(图 2)。任何读取数据都将复制到相应的写入数据部分,以便于操作单个位。
双字节读取和写入
图3.2BYTE 选项卡允许用户从两个寄存器读取数据。
对于某些设备,一个寄存器可能包含内存中的两个连续字节。此2BYTE选项卡(图3)允许用户读取两个连续寄存器的值,前提是器件中的存储器地址指针自动递增到下一个寄存器。读取的值会自动复制到“将数据写入”条目部分。
手动控制
图4.手动控制选项卡允许用户定义字节数和预期的读取或写入操作。
通过手动控制(图4),用户决定字节数和所需的特定操作。下面提供了执行标准 1 字节写入和 2 字节读取的示例。
1 字节写入
START |
SEND WRITE (DEVICE ADDRESS FOR WRITE) |
SEND BYTE (MEMORY ADDRESS) |
SEND BYTE (DATA TO BE WRITTEN) |
STOP |
2 字节读取
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 |
重要提示
:读取数据时,最后一个读取的字节应该是“使用 NACK 读取”。这允许用户根据需要读取任意数量的字节。需要“使用 NACK 读取”来通知设备不再发送数据。
用户还可以复位I²C总线。如果用户在手动通信期间迷路并使总线处于未知状态,这将非常有用。SCL 和 SDA 高/低按钮允许用户强制这些引脚达到所需状态。
结论
本 应用 笔记 所 包含 的 LabView VI 显示 了 LabView 在 与 DS3900 通信 方面 的 用 用 大 用。一旦理解了这些初始概念,用户就可以修改VI或复制某些模块以适应特定的应用需求。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !