基于串行通信的压电陶瓷驱动器的设计

上传人:第*** 文档编号:42633635 上传时间:2018-06-02 格式:DOC 页数:2 大小:23KB
返回 下载 相关 举报
基于串行通信的压电陶瓷驱动器的设计_第1页
第1页 / 共2页
基于串行通信的压电陶瓷驱动器的设计_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于串行通信的压电陶瓷驱动器的设计》由会员分享,可在线阅读,更多相关《基于串行通信的压电陶瓷驱动器的设计(2页珍藏版)》请在金锄头文库上搜索。

1、 电源招聘专家 基于串行通信的压电陶瓷驱动器的设计 压电陶瓷由于其奇妙的压电效应被科学家们应用在与人们生活密切相关的领域,以实 现能量转换、传感、驱动等功能。压电陶瓷在电场作用下产生的形变量很小,最多不超过 本身尺寸的千万分之一。利用这微小的变化可以制作精确控制机构压电驱动器,对于 精密仪器和机械的控制等领域作用巨大。压电驱动器具有很高的位移分辨率以及抗干扰能 力,并且控制方法简单,非常适用于微位移驱动,目前已被广泛应用于国防、生物医学、 光电子等诸多领域1-2。调节压电陶瓷上的电压可以采用手动和计算机控制的方式,随着 高性能 D/A 芯片的应用,使得计算机控制更加精确。计算机和外部电路(含单

2、片机)的通信 可以通过串口来实现。由于串行通信3具有高效可靠、价格便宜、遵循统一的标准等特点, 使得串口通信在系统控制4-5的范畴中一直占据着极其重要的地位。Visual Basic 6.0 提供 了串行通信控件,可以轻松实现串口数据的交换。本文介绍通过 PC 和单片机之间的串行 通信来实现压电陶瓷驱动器的设计,其中计算机作为上位机,单片机作为下位机。1 硬件基础图 1 所示为系统的结构框图。由于上下位机串行口工作电平不一致,它们之间通过 MAX232 芯片将 TTL 电平转换为 RS232 电平。单片机选择了 ATMEL 公司的精简指令集 单片机 ATmega16,该款单片机功耗低,在正常模

3、式下只有 1.1 mA,最高工作频率可达 16 MHz,具有可擦写的 16 KB 的可编程 Flash,其内部的 USART 是一个高度灵活的串行通信 设备,使用起来非常方便。D/A 芯片采用 ANALOG 公司的 12 bit 分辨率的 AD5344,AD5344 具有并行输入接口,需要的控制线也不多,并且具有双缓冲输入逻辑, 一片 AD5344 有 4 路输出。计算机通过串行口将数据发送给单片机,单片机将接收到的数 据放在内部的 SRAM 中,接收完毕后,再将数据取出,通过数据端口输出到 D/A,D/A 的 模拟输出信号(电压)用来控制压电陶瓷。2 上位机程序设计上位机程序的编写采用 Vi

4、sual Basic 6.0 的编程环境,使用 Visual Basic6.0 的 MSComm 通信控件,非常容易就能实现串口通信,使用时要对串行通信的信息格式和协议进行设置。 每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。 2.1 程序流程及界面设计计算机和单片机之间的通信采用查询的工作方法,计算机为上位机(主机),单片机为下 位机(从机)。上位机主要负责发送控制命令,以及数据的发送接收、处理、计算、数据的 显示等功能。上位机程序分为四个部分:界面设计、程序初始化、数据通信、数据处理。 程序流程如图 2 所示。主程序界面主要分为数据的输入框和命令控件按钮,输入框用于

5、输入提供给压电陶瓷电 压的数值,命令控件按钮用于实现命令和数据的发送和接收,界面还放置一个显示通信状 态的文本框。程序界面如图 3 所示。图 3 中的“设置”按钮用于将文本框中的电压值(CH1CH4)通过串口发送到单片机,单 片机再把数据传给模数转换器。 “清零”按钮用于将输出数据都设置为零。电源招聘专家2.2 程序代码具体的程序代码包括串口的初始化及数据的发送与接收。串口的初始化代码如下: MSComm1.CommPort=1;使用 COM1 串口 MSComm1.Settings=“9600,n,8,1“;数据格式:波特率 9 600 b/s,无奇偶校验,8 位数 据,1 位停止位 MSC

6、omm1.OutBufferCount=0;清空发送缓冲区 MSComm1.InBufferCount=0;清空接收缓冲区 MSComm1.PortOpen=Tr ue;打开串口 MSComm1.InputMode=1;以二进制形式取回数据 MSComm1.InputLen=0;一次读取缓冲区内全部数据由于篇幅的限制,关于数据的发送和接收部分的代码不再给出了。 3 下位机的通信程序设计下位机程序包括初始化部分、数据接收部分和数据输出部分等。 Atmega16 内部的 USART 是一个高度灵活的串行通信设备,使用起来非常方便,单片机串 行通信的波特率发生器可由其片内时钟产生,波特率寄存器 UB

7、RR 用于设置所需要的波特 率, 对于异步正常模式波特率的计算公式为 BAUD=fosc/16(UBRR+1),对于 9 600 b/s 的 波特率(和上位机一致),在 fosc=8 MHz 的情况下,UBRR 的值为 51。数据的传送格式为: 1 个起始位,8 位数据位,1 位停止位。程序流程如图 4 所示。初始化部分程序代码如下: ldi r16,0x20 out UCSRA,r16;设置串口通信模式 ldi r17,0x00 out UBRRH,r17 ldi r16,0x33 out UBRRL,r16;设置串口通信的波特率 ldi r16,0x86 out UCSRC,r16;设置串

8、口通信的数据格式 ldi r16,0x18 out UCSRB,r16;使能串口通信其他部分的代码由于比较长,在这里就不列出了。 基于串行通信设计了压电陶瓷驱动器,使用 Visual Basic 6.0 提供的串行通信控件可以轻松 实现串口数据的交换。系统的开发周期短、效率高,并且串行通信程序的调试可以借助很 多的工具软件(如串口调试助手),因此使用串行通信好处很多。虽然现在有的计算机的主 板并不带串行接口(如笔记本电脑),而由 USB 接口替代,但同样可以使用串行通信。方法 是采用 USB 转串口的方法,硬件上需要一根转接线,使用的时候要安装驱动,其串口号由 Windows 自动分配,即系统虚拟了一个串行端口,这个端口和真实的串行端口使用方法完 全一样。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号