版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科生毕业设计本科生毕业设计基于 usb 的串行通信软硬件设计 based on usb serial communication software and hardware design 学学 生生 姓姓 名名 专专 业业电子信息工程学学 号号 指指 导导 教教 师师 学学 院院电子信息工程学院摘摘 要要现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集,而 usb 总线具有高速传输、热拔插、即插即用等特点,已经在高速数据采集系统之中得到了越来越广泛的应用。文中以 pic 单片机为核心,采用 pic 单片机内部的 a/d
2、转换器,设计了基于 usb100 模块设计了一个数据采集系统。文中详细阐述了基于 usb100 模块设计了一个数据采集系统的方案选择和总体设计、硬件电路以及系统软件编程等。介绍了设计的具体的电路实现以及相应的实验结果,并在文中给出了系统的硬件原理图及软件程序流程图。关键词:关键词:通用串行总线通用串行总线 数据采集数据采集 单片机单片机abstractmodern industrial production data collection and scientific research on the require-ments of increasing the transient signa
3、l measurement, image processing and other high -speed, high-precision measurement, the need for high-speed data acquisition, and the usb bus with high-speed transmission, hot plug, plug-and-play features, has been in high-speed data acquisition systems have been more widely used. in a pic microcontr
4、oller as the core, a pic microcontroller internal a / d convert-r, designed usb100 modular design based on a data collection system.described in detail based on the usb100 module designed a data collection syste-m and the overall design of the options, hardware and system software programming, and s
5、o on. on the specific design of the circuit and the corresponding results, and are given in the text of the principle of the hardware and software flow chart.keywords:universal serial bus data acquisition signal chip目目 录录第一章第一章 绪论绪论.1第二章第二章 方案选择和总体设计方案选择和总体设计.32.1 方案选择.32.2 总体设计.5第三章第三章 系统硬件电路设计系统硬件
6、电路设计.73.1 单片机最小系统.73.1.1 pic 单片机的特点.73.1.2 pic16f73 单片机的引脚功能.83.1.3 pic16f73 单片机最小系统.93.2 显示器接口电路设计.103.3 usb 接口电路设计.123.3.1 usb100 模块的特点 .123.3.2 usb100 的引脚图及功能 .133.3.3 usb100 控制时序 .133.3.4 usb100 与单片机接口 .143.4 数据采集电路.15第四章第四章 系统软件设计系统软件设计.174.1 下位机软件设计.174.1.1 led 显示程序模块 .174.1.2 数据发送模块.174.1.3 数
7、据接收模块.184.1.4 压力数据采集模块.194.1.5 数据处理模块.204.2 上位机软件设计.214.2.1 串行通信控件的应用.214.2.2 数据处理.234.2.3 数据库.24结结 论论.27参考文献参考文献.28致致 谢谢.29第一章第一章 绪论绪论在工业控制和数据采集系统中,单片机以其低成本,编程灵活、方便,实时性强和具有一定的智能而得到了广泛的应用。然而,许多复杂任务的实现,如人机对话、任务的切换、算法的实现、大数据的运算等,单片机就显得有些力不从心,而 pc 机在这方面却有强大的优势。这就需要将它们组合成系统,让单片机只管控制执行机构和进行数据采集与传输;pc 机将数
8、据进行处理,实现功能。这就涉及到单片机与 pc 机之间的通讯问题,在需要实时传递和处理声音和图象等大批数据的时候,普通的通信方式难以满足要求。这就为数据采集系统的设计提出了两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理,并在单片机和 pc 机之间进行高速和可靠的通讯。传统的外设与主机的通信接口难以满足上述第一个方面的要求,这些接口一般采用 pci 布部线或 rs-232 串行总线。pci 总线虽然有很高的传输率(可达 132mbps) ,还能“即插即用”,但是它们的扩充槽相当有限,且插拔并不
9、方便;rs-232 串行总线虽然连接方便,可是它的带宽非常有限,传输速度太慢,而且 1 条 rs-232 串口通信电缆只能连接 1 个物理设备。usb 技术正是顺应这一要求提出的,它集 pci 和 rs-232 的优点于一身:具有较高的传输速率(usb 协议 1.1 支持最高传输速度达 12mbps,usb 协议2.0 支持最高传输速度可达 480mbps) ,实现了真正意义上的“即插即用”(plug & play) ,同时 usb 上最多可以连接 127 个外设,解决了如资源冲突、中断请求(irqs)和直接数据通道(dmas)等问题。因此,usb 技术非常适合实时数据采集的场合,是目
10、前较为流行的通讯方式。从应用方面来看,国外通用串行总线 usb 因其具备高速传输,即插即用等诸多优点,在各个领域得到了广泛应用;国内 usb 总线已经得到了控制工程师的普遍关注,由于其通信协议比较复杂,相关的研究成果还比较少,特别是usb 与目前最具竞争力的工业微控制器(pic 单片机)通信的应用范例还很匮乏。本设计基于 usb 设计出了一套既简单又实用的串行通信程序,并制作了一个压力数据采集及实时显示的硬件电路对其进行了实例验证。设计选用美国微芯公司(microchip)的主要产品 pic16f73 单片机为主控制器,pc 机的程序设计采用可视化的、面向对象和采用事件驱动方式的结构化高级程序
11、设计语言visual basic。本设计能实现如下几项功能:1. 压力信号经精密放大电路后输入单片机进行 a/d 转换;2. 单片机对采集到的信号进行抗干扰处理和显示;3. 单片机将采集到的数据实时送入 pc 机;4. pc 机对所得数据运算后列表显示并录入数据库;5. 单片机查询来自 pc 机的实时指令,并执行相应动作。图 1.1 基于 usb 的高速数据采集系统示意图图 1.1 为基于 usb 的高速数据采集系统示意图,就本设计而言,传感器接收压力信号,pic 单片机的 i/o 控制口包括与 usb100 模块通信的标志位端口及led 显示输出口。第二章第二章 方案选择和总体设计方案选择和
12、总体设计2.1 方案选择方案选择1、通信接口选择当今的计算机外部设备,都在追求高速度和高通用性。为了满足用户的需求,以 intel 为首的七家公司于 1994 年推出了 usb(universal serial bus 通用串行总线)总线协议,专用于低、中速的计算机外设。目前,usb 端口已成为了微机主板的标准端口;而在不久的将来,所有的微机外设,包括键盘、鼠标、显示器、打印机、数字相机、扫描仪和游戏柄等等,都将通过 usb 与主机相连。这种连接较以往普通并口和串口的连接而言,usb 接口的优势主要表现在以下几个方面: 使用方便,连接外设不必再打开机箱;允许外设热插拔,而不必关闭主机电源。速度
13、快,usb 支持三种设备传输速率:1.5 mb/s(低速设备)、12 mb/s(中速设备)480 mb/s(高速设备)。独立供电,usb 接口提供了内置电源。连接灵活,一个 usb 口理论上可以连接 127 个 usb 设备。连接的方式也十分灵活,既可以使用串行连接,也可以使用集线器 hub,把多个设备连接在一起,再同 pc 机的 usb 口相接。成本低,为了把外设连接到 pc 上,usb 提供了一种低成本的解决方案。综合上述系统中采用 usb 接口,具体选用了 usb100 模块。2、微控制器选择 方案一:凌阳 16 位单片机随着单片机功能集成化的发展,其应用领域也逐渐地由传统控制扩展为控制
14、处理、数据处理以及数字信号处理(dsp,digital signal processing)等领域。凌阳的 16 位单片机就是为适应这种发展而设计的。它的 cpu 内核采用凌阳最新推出的 nsp(microcontroller and signal processor)16 位微处理器芯片(以下简称 nsp)。围绕 nsp所形成的 16 位 nsp系列单片机(以下简称 nsp家族)采用的是模块式集成结构,nsp内核是一个通用的核结构,以 nsp内核为中心集成不同规模的 rom、ram 和功能丰富的各种外设接口部件,这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成
15、各种不同系列派生产品,以适合不同的应用场合,这样做使每一种派生产品具有更强的功能和更低的成本。从目前的应用来看,凌阳 16 位单片机的优势在于它具有强大的语音处理功能。然而,它在工业控制现场的应用案例较少,在控制领域并不具备突出的竞争力。最重要的是,凌阳公司在国内的技术推广才刚开始,本科四年对凌阳单片机的了解还十分有限,在毕业设计期间化大量时间学习单片机的基础知识显然很不合适。方案二:mcs-51 系列单片机传统的 51 系列微控制器,在国内使用时间比较长,开发所需的资料也比较多,但其片内资源较少,在外围电路中需加入多种模块,如:a/d 转换器、pwm、ram 和 rom 存储器等。它的优点是
16、外围电路易于扩展,尤其是存储器的容量可以按需求增大,缺点是在线调试程序不方便。如果应用到本设计中,外围扩展电路比较复杂,电路板空间和制造成本较大,而且在硬件电路的制做和调试方面也有一定的困难。方案三:pic 系列单片机pic 系列单片机是美国微芯公司(microchip)的主要产品,有 pic16 系列、pic17 系列、pic18 系列等。pic 系列单片机 cpu 采用 risc 结构,它具有运行速度快、工作电压低、功耗低、较大的输入输出直接驱动能力强、价格低和体积小等优点。pic16f73 单片机是 pic 系列的中档产品,其内部资源非常丰富,含有 4k的 flash 程序存储器、192
17、b 的 ram 数据存储器、5 通道 8 位 a/d 转换器、3个定时器、2 个捕捉/比较/脉宽调制、1 个同步串行端口 spi 和通用同步/异步收发器 usart 等。另外,它具有外围接口电路简单、工作性能稳定等特点。基于以上比较,本设计选择 pic 单片机作为下位机控制的核心,利用上述丰富的资源来完成 a/d 转换、收发数据、输出显示信号等处理和指定的控制任务。3、压力传感器选型传感器是将各种非电量(包括物理量、化学量和生物量等)按一定规律转换成易于处理和传输的另一种物理量(一般为电量)的装置。在本设计中使用了压力传感器,它是力的测试中最关键的装置。它的种类繁多,有电容式、压阻式、差动变压
18、器式、压电式、电阻应变式等。本系统选用的应变片式差压测力传感器,它具有灵敏度高、线性度和稳定性好、结构简单、动态性能优良等优点,广泛应用于力的测试中,其常见外观如图 2.1 所示: (a)柱形 (b) 悬臂梁形图 2.1 电阻应变式测力传感器压力传感器参数压力传感器是把压力转换成电信号的传感器,用半导体材料制成的压力传感器称为半导体压力传感器,由于其体积小、重量轻、灵敏度高、功耗小、便于集成等优点,发展十分迅速,应用也很广泛。在本设计的过程中选用了 s 形双弯曲梁应变片式测力传感器,其的结构示意图如图 2.2 所示。s 形双弯曲梁应变片式测力传感器主要参数如下:额定载荷:3kg额定输出:1.3
19、mv/v输入电阻:350输出电阻:350非线性:0.01%f.s滞后:0.015%f.s重复性:0.01%f.s安全过载能力:150%图 2.2 s 形双弯曲梁压力传感器结构示意图由于 s 形双弯曲梁应变片式测力传感器的结构是双连孔型的,粘贴应变片处比较薄,应变大,灵敏度高,而其他部位较厚,故强度、刚度好的特点,所以系统中选择它作为压力传感器。s 形双弯曲梁应变测力传感器和 pic16f73 单片机相结合组成的测力系统,它具有实时数据采集和 led 显示功能。传感器弹性体为双弯曲悬臂梁,四片应变片分别贴于梁的上下两表面组成全桥电路,当受到载荷 w 作用时,r1、r2受拉伸,阻值增加;r3,r4
20、 受压缩,阻值减小,电桥失去平衡,并产生电压u 输出,且u 与 w 成正比。2.2 总体设计总体设计数据采集是现代控制系统必不可少的控制任务,通用串行总线(usb)因具有传输速率快、接口简单、支持即插即用(plug & play)和使用维护方便等特点在控制领域具有广泛的应用前景。本设计以压力数据采集任务为载体,深入的学习和探讨了基于 usb 的串行通信的实现问题。本系统包括硬件接口设计和软件编程两个方面,软硬件结合能实现如图 2.3 所示的功能。图 2.3 系统总体框图第三章第三章 系统硬件电路设计系统硬件电路设计3.1 单片机最小系统单片机最小系统美国 microchip 技术公司的
21、 pic 系列单片机采用精简指令集计算机(riscreduced instruction set computer) 、哈佛(harvard)双总线和两级指令流水线结构的高性能价格比的 8 位嵌入式控制器(embedded controller) 。其高速度、低工作电压、低功耗、较大的输入输出直接驱动 led 能力、一次性编程芯片的低价位、小体积、指令简单易学易用等特点,都体现了单片机工业发展的新趋势。在全球都可以看到 pic 单片机在不同领域的广泛应用,它在世界单片机市场份额排名中逐年提前,以致已成为一种新的 8 位单片机的世界标准和最有影响力的主流嵌入式控制器,所以本设计选用 pic16f
22、73 作为主控制器。3.1.1 pic 单片机的特点单片机的特点pic 单片机的主要优点7表现在:1. pic16f73 系列单片机都具有 a/d 转换功能,a/d 转换器是采用逐次逼近法进行模数转换,转换的结果是 8 位数字量。另外 pic16f7x 系列单片机的a/d 转换具有一个独特的功能,就是在 cpu 休眠期间能照常工作。不过,此时的 a/d 转换时钟必须选择 a/d 内部的 rc 振荡器。2. 指令的“单字节化”。因为指令总线和数据总线是分离的,并且采用了不同的宽度,所以程序存储器 rom 和数据存储器 ram 的寻址空间是相对独立的,而且两种存储器宽度也不同。这样设计不仅可以确保
23、数据的安全性,还能提高运行速度和实现全部指令的“单字节化”。而 mcs51 系列单片机的 rom 和ram 宽度都是 8 位指令长度从 1 个字节(8 位)到 3 个字节长度不一。3. 精简指令集(risc)技术。pic 系列单片机的指令系统只有 35 条指令。这给指令的学习,记忆,理解带来很大的好处,也给程序的编写,阅读,调试,修改,交流带来极大的便利,真可谓易学好用。 。它不仅全部指令均为单字节指令,而且绝大多数指令为单周期指令以利于提高执行速度。4. 寻址方式简单。寻址方式就是寻找操作数的方法,pic 系列单片机只有4 种寻址方式(即寄存器间接寻址,立即数寻址,直接寻址和位寻址) ,容易
24、掌握。5. 运行速度高。由于采用了哈佛结构,又由于指令的读取和执行采用了流水作业方式,pic 系列单片机的运行速度大大提高。可知 pic 系列单片机的运行速度远高于其它相同档次的单片机。在所有 8 位机中,pic17f 是目前世界上速度最快的品种之一。6. 功耗低。pic 系列单片机的功率消耗极底,有些型号的单片机在 4mhz时钟下工作时耗电不超过 2ma,在睡眠模式下低到 1ua 以下。7. 驱动能力强。i/o 端口驱动负载的能力较强,每个 i/o 引脚输入和输出电流的最大值可分别达到 25ma 和 20ma,能够直接驱动发光二极管、光电耦合器或者微型继电器等。8. 具备 ic 和 spi
25、串行总线端口:pic 系列单片机的一些型号具备 ic 和spi 串行总线端口。ic 和 spi 分别是由 philips 和 motorola 公司发明的芯片之间同步串行数据传输的两种串行总线技术,利用单片机串行总线端口可以方便灵活的扩展一些必要的外围器件。串行接口和串行总线的设置,不仅大大的简化了单片机应用系统的结构,而且还极易形成产品的模块化结构。9. 寻址空间设计简洁。pic 系列单片机的程序、堆栈和数据三者各自采用互相独立的寻址空间,而且前两者的地址安排不需要用户操心,这会受到初学者的喜欢。10. 外围电路简洁。pic 系列单片机内部集成了上电复位电路、i/o 引脚上拉电路、看门狗定时
26、器等,可以最大程度的减少或免用外围器件。 11. 开发方便。芯片公司及其国内多家代理商,为应用开发提供了丰富多彩的硬件和软件支持。3.1.2 pic16f73 单片机的引脚功能单片机的引脚功能1. 电源和地线引脚pic 系列单片机一般采用 5v 电压,为了减少外界噪声的影响,将电源引脚和地线引脚放置芯片的中间。2. 主复位信号引脚复位信号引脚用于外部电路产生复位信号使 pic 单片机产生复位,低电平有效。在对单片机编程时,此引脚作为编程电压的输入端。3. 输入/输出端口功能引脚 在 pic16f73 微控制器中,有三个端口,每个端口引脚大部分都具有两种或三种功能复用;作为输入输出端口时,端口
27、a、端口 b、端口 c、都是双向 i/o口。作为第二或第三功能端口,每个引脚功能都可能不同,主要包含有以下的几种功能:a). 用于 a/d 转换的模拟电压输入端和参考电压输入端;b). 用于定时器的时钟输入端和振荡器输出端;c). 用于串行通信的输入/输出端和时钟端;4. 振荡器输入输出线。其引脚布置如图 3.1 所示,在 pic 单片机中有一根振荡器输入引脚osc1/clkin 和一根振荡器输出引脚 osc2/clkout,由于 pic 单片机图 3.1 pic16f73 引脚图可以采用不同的振荡器,这使得两根引脚可以有不同的功能。采用晶体振荡器或陶瓷谐振器,将晶体振荡器的两脚直接接人 os
28、c1/clkin 和 osc2/clkout;采用外部 rc 振荡器时,osc1/clkin 作为输入,osc2/clkout 开路。3.1.3 pic16f73 单片机最小系统单片机最小系统图 3.2 pic16f73 最小系统pic16f73 最小系统如图 3.2 所示。在本系统设计中,pic16f73 微控制器的引脚功能配置如下:端口 b 作为数据总线;pa0 口为压力模拟信号输入端;pa2 和 pa3 为数码管段码和位码的片选端;pc0 和 pc1 为 usb100 模块的存入(wr)和读出(rd)标志位;pc2 和 pc3 为 usb100 模块的标志位 rxf 和 txepc4 和
29、 pc5 起到工作状态监视作用,其中 pc4 为单片机接收数据状态指示端,pc5 为单片机发送数据状态指示端。3.2 显示器接口电路设计显示器接口电路设计为了验证通信结果的正确性,必须增加有效的手段测试 pic 单片机接收到的数据正确与否,而最简单且可行的方法就是增加 led 显示部分。led 器件是一种发光二极管显示器。其特点如下:(1)led 显示器具备稳定、高速、简单的系统;(2)led 显示结构简单、性能稳定;(3)led 显示应用在成熟的生产技术上。发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。八段发光二极管结构如图 3.3 所示。图 3.3 八段发光二极管外型发光二
30、极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。1 位显示器有 8 个发光二极管组成,其中 7 个发光二极管 ag 控制 7 个笔段的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的八段显示器能显示的字符少。字符的形象有些失真,但控制方便,使用简单。图 3.4 共阴极数码管图 3.5 共阳极数码管 考虑到压力显示精度和显示范围等因素,本设计选用 4 位共阴极 led 数码管。显示器的显示方法有静态和动态两种方法。显示器位数较少时,采用静态显示的方法是合适的。当位数较多时,用静态显示所需的 i/o 太多,一般采用动态显示方法,所以在系统中我们采用动态显示。此类数码管的工作
31、特点是:数码管片选端清 0 时,对应位的数码管才有可能亮;每次只能有一个片选端清 0,即只能动态移位显示相应的数据;单片机控制数码管显示相应数字要用查表子程序来实现。此电路的程序设计要求是:不能在保持原输出数据的情况下,常时间持续执行其它控制任务。在本设计中,用显示程序来替换其它任务中必要的延时子程序,从而实现了数据显示的连续性,而且不会影响其它控制任务的正确执行。显示器接口电路如图 3.6 所示。led 显示器采用两片 74ls273 动态扫描方式驱动,其中 u2 作为段码接口,u3 作为位码接口,单片机通过 b 口与74ls273 的输入端相连,pa2 和 pa3 分别作为 u2 和 u3
32、 的片选信号,缺省时显示 0。d1、d2 作为单片机发送/接收数据状态指示,当单片机发送数据时 d1 点亮;当单片机接收数据时 d2 点亮。图 3.6 显示器接口电路3.3 usb 接口电路设计接口电路设计3.3.1 usb100 模块的特点模块的特点usb100 是目前开发最为方便的 usb 接口产品,用户无需编写驱动程序,对 usb 的操作就变成了类似于对外部存储器的操作,由 usb100 模块完成全部协议的转换和封装,只要有单片机和 pc 应用程序的基本知识,就可以很快地开发好 usb 接口和数据采集等产品,开发过程十分简单。usb100 模块是完全集成化的 usb 接口模块,完全满足
33、usb1.1 标准,具有 8 位单片机总线接口,内部多达 384 字节的发送缓冲区和 128 字节的接收缓冲区,数据通讯速率最高可达 8mbit/s。性能可靠,特别适合工业控制场合。在单片机系统中,usb100 通讯模块作为单片机的并行接口芯片,两者有机结合,构成了下位机的 usb 通讯接口。usb100 模块提供两种 pc 机应用程序编程4:虚拟串口方式和动态连结库方式。 虚拟串口方式下,用户在 pc 机上安装 usb100 模块专用虚拟串口驱动程序之后,usb100 即可作为 pc 机上的一个标准设备,可以按照与操作串口完全一样的方法来编程。 在动态连结库方式下,用户要在 pc 机上安装
34、usb100 模块专用动态连结库,安装之后,usb100 即成为 pc 机的一个标准外设,编程时调用 api 函数发送和接收数据。3.3.2 usb100 的引脚图及功能的引脚图及功能usb100 的管脚排列图如图 3.7 所示。图 3.7 usb100 的管脚排列图数据口(d0d7)是 8 位双向 i/o 口,它以并行方式与微控制器交换数据。 rd:允许内部接收缓冲区数据通过 8 位并行总线读出。wr:将 8 位并行总线上的数据锁存入内部缓冲区。txe:高表示模块发送缓冲区已满;低表示发送缓冲区为空,可以发送数据。rxf:高表示模块没有数据输出;低表示模块有数据输出,可以读数据。usbvcc
35、:usb 接口的电源脚。d+:usb 数据脚。d-:usb 数据脚。gnd:电源脚。vcc:+5v 输出,可提供给外部 mcu 使用,最大 400manc:空管脚。3.3.3 usb100 控制时序控制时序发送时序5如图 3.8 所示,当单片机检测到 usb100 模块 txe 为低时,表示内部发送缓冲区允许发送数据,可以将数据通过八位数据总线 d0d7 发给usb100 模块,发送数据锁存由 wr 控制;usb100 模块 txe 为高时,禁止发送数据。图 3.8 单片机发送数据时序图接收时序5如图 3.9 所示,当单片机检测到 usb100 模块 rxe 为低时,表示内部接收缓冲区有数据,
36、可以通过八位数据总线 d0d7 将数据从 usb100模块读入,接收数据锁存由 rd 控制。图 3.9 单片机接收数据时序图3.3.4 usb100 与单片机接口与单片机接口 usb100 与单片机的接口电路如图 3.10 所示,usb100 通过总线隔离器与单片机接口,使得对 usb100 的操作有一个固定的地址。其中 pb0pb7 与单片机的 b 口相连接,pa4、pa5 分别与单片机的 ra4 和 ra5 相连接,pc0pc3 分别与 rc0rc3 相连接。图 3.10 usb100 与单片机的接口电路3.4 数据采集电路数据采集电路通信程序的正确与否只有检验之后才能定论,考虑到实用性,
37、本设计选择压力传感器检测的压力数据作为通信的数据源。这样既增强了设计的实用性,又便于对通信成功与否的评估。由于压力传感器精度很高,但其输出的电压信号差值很微弱,需经过放大电路放大之后,才能送到微控制器里进行处理。:由于本设计选用的压力传感器输出的比较电压信号变化范围小,必须增大放大倍数,传统的一级放大和两级放大电路很难调试出满意的结果。本设计改用由三个运算放大器组成的精密放大电路3,其原理如图 3.11 所示。输出电压:)(21 ()(216702010iiffuurrrruurru本设计中,r6 为 1k 的滑动变阻器,试验调整后正常工作是阻值为210,r、 r7、rf 的阻值分别为 820
38、、12k 和 3.3k。此电路可以放大差模信号,抑制共模信号。差模放大倍数值愈大,共模抑制比愈高。当输入信号中含有共模信号时,也将被抑制。由上式可知,放大倍数约为 460。其中 u0与到单片机的 pa0 相连接。图 3.11 精密放大电路原理图第四章第四章 系统软件设计系统软件设计本系统选用 pic 单片机作为下位机,它的程序设计是本设计的重点,也是难点。这不仅要求熟悉 pic 单片机编程的有关知识,还要求根据 usb100 的数据手册试验出一套实用的通信协议程序模块。在设计的过程中,考虑到实际需求增加了压力采集模块和 led 显示部分,使本设计的实用性得到了增强。4.1 下位机软件设计下位机
39、软件设计4.1.1 led 显示程序模块显示程序模块分析 led 引脚图不难发现,各数码管段码控制线采用共享的方式,所以数码管显示功能的实现必须采用动态扫描的方式,其显示子程序流程如图 4.1 所示。图 4.1 显示程序流程图4.1.2 数据发送模块数据发送模块发送数据程序流程如图 4.2 所示,该程序模块能将字符型数据正确的发送到 pc 机,由 vb 程序接收、处理后显示。图 4.2 发送数据程序流程图4.1.3 数据接收模块数据接收模块接收数据程序流程图如图 4.3 所示,该程序模块能正确的接收 vb 发送的二进制数据,并将接收的数据分解、送显。图 4.3 接收数据程序流程图4.1.4 压
40、力数据采集模块压力数据采集模块压力数据采集主要包括两个方面:a/d 转换和数据处理。1、a/d 转换流程a/d 转换的种类繁多,工作原理各异,但逐次比较型 a/d 转换是应用较多的类型之一,其主要原因是该类型的 a/d 转换速度快、精度高。逐次比较型a/d 转换由采样保持电路、电压比较器、逐次比较寄存器、数/模转换器和锁存器等部分组成。pic16f73 单片机具有 5 个 a/d 模拟输入通道,器件内所有模拟输入通道均有采样保持转换器,采用逐次逼近法产生模拟电平的数字结果,模拟输入信号的 a/d 转换结果为对应的 8 位数字,参考电压为 5v。a/d 转换程序流程图如图 4.4 所示。图 4.
41、4 a/d 转换程序流程图由图 4.4 可见,a/d 转换的工作过程分如下几个步骤:选择 ra0 为 a/d 转换通道,使能 a/d 转换,adcon0=0x41;转换结果右对齐,ra0 为模拟输入方式,adcon1=0x8e;清 a/d 转换标志位,adif=0;启动 a/d 转换,adgo=1; 判断是否进行了 a/d 转换,即 adif 是否为 1;若 adif=1,则将 a/d 转换的结果存入寄存器之中。4.1.5 数据处理模块数据处理模块单片机对采集数据的处理包括以下几个方面:将十次 a/d 转换的结果累加存入寄存器 sum;将 sum 经运算处理后送显示子程序显示。数据处理程序如下
42、: for(i=1;i11) while(!adif); d=adresh; e=adresl; sum+=d256+e; i+; adif=0; adgo=1; if(sum2000)语句可以起到超过 2n 发出警示的作用。4.2 上位机软件设计上位机软件设计vb 全称 visual basic,是微软公司推出的基于 basic 语言的可视化编程环境,以其简单易学功能强大而倍受广大电脑爱好者的青睐。随着 windows 在国内的普及,特别是 windows95 的推出,越来越多的微机用户转向了 windows 操作系统。要开发一个功能强、界面美观的应用软件,其编程和调试的工作量是非常大的,许
43、多并非搞软件出身的工程技术人员对 windows 编程望而生畏。然而使用微软的 visual basic 来开发这些方面的 windows 应用软件就十分方便,一般工程技术人员易于掌握,设计软件界面非常方便。编程工作量相对较小,只需进行主要应用功能的编程和少量界面控制的编程。visual basic 更加简化了 windows 程序接口的设计工作,只需要极少量的代码,就能实现标准windows 应用程序的接口。基于以上优点,pc 机采用 vb 编程设计界面。4.2.1 串行通信控件的应用串行通信控件的应用1、串行通信控件在 pc 机上安装 usb100 模块专用驱动程序后,usb100 即作为
44、 pc 机上的一个标准设备,可以按照与操作串口完全一样的方法来编程,这也是 usb100开发与其他 usb 方案相比最大的优点。在 vb 中可以将其按标准的串口来使用,用 mscomm 控件将 usb100 当作一个真实的串口来连接,并进行控制,此串口通信速率为 8mbps,pc 上设定该串口的速率不会对传输速率有影响,这是与实际串口的区别。2、串行通信程序实现通信初始化设置程序如下:with mscomm1 通讯初始化inputmode = cominputmodebinary 设置接收数据模式为二进制形式 .inputlen = 10 设置 input 一次从接收缓冲读取字节数为 10 .
45、sthreshold = 5 少于 5 字节时生成 oncomm 事件 .rthreshold =4 当接收缓冲区达到 20 个字节时引发接收事件 .inbuffercount = 0 清收发缓冲区 .outbuffercount = 0 end with3、pc 机接收数据程序流程图pc 机接收数据程序流程图如图 4.5 所示。图 4.5 pc 机接收数据程序流程图4.2.2 数据处理数据处理如果有随机干扰作用于信号传输过程中,vb 接收到的数据就会偏离真实值。这样一来,仅采样一次,是无法确定该结果是否可信的,必须多次采样,得到一个 a/d 转换的数据系列,通过某种算法处理后,才能得到一个可
46、信度较高的结果。pc 机的优势在于它具有高速和大批量数据处理能力,本设计充分利用 pc机的这个优点,在程序中加入了求平均值算法。标定处理主要完成采集到的数据与实测数据的映射关系处理,它需要不断的根据实测数据校正。4.2.3 数据库数据库数据采集的目的是对其进行分析处理或备案,将所得的数据存入数据库后可以方便的执行各种处理,又具有备案作用,所以,在程序中加入数据库操作部分是非常必要的。所谓数据库(database,db)10就是长期存放在计算机内,以一定组织方式动态存储的、相互关联的、可共享的数据集合,它不仅包括数据本身,还包括相关数据之间的联系。数据库最大特点是通过联系减少了不必要的数据冗余。
47、同时,不同用户可以使用同一数据库中自己所需的子集,从而实现数据共享。利用“可视化数据管理器”可以进行的数据库基本操作包括添加记录、编辑记录、删除记录等。数据(data)控件是 vb 提供的一个标准控件,通过该控件无需编写代码就可以方便地访问 vb 所支持的各种类型数据库中的数据。数据控件本身并不能显示和直接修改记录,只能在与数据控件相关联的数据约束控件中显示各个记录。数据录入数据库的程序如下:sub ru_ku() me.data1.recordset.addnew 数据库记录开始 text6.text = j text7.text = time text5.text = trim(date)
48、 me.data1.recordset.update end sub其中,text5、text6 和 text7 分别与数据库列表中的日期、压力和时间对应。考虑到写入数据库操作和 vb 界面不能同时进行,本设计采用两个文本对应同一录入项的处理方法,即将处理后的数据同时送入两个 text 文本框,其中一个用于界面中的实时显示,另一个则设为隐藏方式,它与数据库列表中的对应项关联,由它完成数据库的录入工作。部分数据库的记录如图 4.6 所示:图 4.6 数据库中的记录图由于采集到的数据用 text 文本显示不能留住历史记录,用列表框(listbox)显示虽然可以查找历史数据,但效果很差。本设计选择
49、msflexgrid 控件进行列表显示采集到的数据,msflexgrid 控件的一个主要特性是它能显示层次结构记录集,以层次结构方式显示关系表,另外,它可以显示网格数据,也可以对其进行操作。它提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。使用该控件后,vb 人机界面如图 4.7 所示。与 msflexgrid 控件有关的程序说明如下:数据表格属性设置:me.msflexgrid1.textmatrix(0, 0) = 编号me.msflexgrid1.textmatrix(0, 1) = 压力值me.msflexgrid1.textmatrix(0, 2) = 日期me.msflexgrid1.textmatrix(0, 3) = 时间me.msflexgrid1.textmatrix(0, 4) = 检测次数如何通过代码调节列宽度msflexgrid1.colwidth(i) = 1000msflexgrid1.colwidth(i + 1) = 1300msflexgrid1.colwidth(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年影视作品摄制合同协议书(含分成模式)
- 专业律师转租合同
- 2024年度智能物流系统设计与实施合同
- 2024施工合同司法解释
- 2024办公楼零星维修项目建设项目施工合同
- 农村合作信用社贷款合同
- 2024没有借条、合同的借贷关系案例
- 工程承包合同模板简化版
- 校园学生安全保障协议书样本
- 超值供货合同模板汇编
- 二年级排球教案
- 小数乘除法竖式计算专项练习题大全(每日一练共15份)
- 天津市和平区2024-2025学年九年级上学期期中考试英语试题
- 2024版抗菌药物DDD值速查表
- 2024二十届三中全会知识竞赛题库及答案
- 预防接种工作规范(2023年版)解读课件
- 医院检验外包服务项目招标文件
- 档案整理及数字化服务方案
- 正高级会计师答辩面试资料
- 道路桥涵工程施工方案(完整版)
- 60万吨MTO装置中交发言稿
评论
0/150
提交评论