基于USB的串行通信软硬件设计.docx
《基于USB的串行通信软硬件设计.docx》由会员分享,可在线阅读,更多相关《基于USB的串行通信软硬件设计.docx(31页珍藏版)》请在冰豆网上搜索。
基于USB的串行通信软硬件设计
编号
本科生毕业设计
基于USB的串行通信软硬件设计
BasedonUSBserialcommunicationsoftwareandhardwaredesign
学生姓名
张权
专业
电子信息工程
学号
040411533
指导教师
杨光
学院
电子信息工程学院
2008年6月
摘要
现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集,而USB总线具有高速传输、热拔插、即插即用等特点,已经在高速数据采集系统之中得到了越来越广泛的应用。
文中以PIC单片机为核心,采用PIC单片机内部的A/D转换器,设计了基于USB100模块设计了一个数据采集系统。
文中详细阐述了基于USB100模块设计了一个数据采集系统的方案选择和总体设计、硬件电路以及系统软件编程等。
介绍了设计的具体的电路实现以及相应的实验结果,并在文中给出了系统的硬件原理图及软件程序流程图。
关键词:
通用串行总线数据采集单片机
Abstract
Modernindustrialproductiondatacollectionandscientificresearchontherequire-
mentsofincreasingthetransientsignalmeasurement,imageprocessingandotherhigh-speed,high-precisionmeasurement,theneedforhigh-speeddataacquisition,andtheUSBbuswithhigh-speedtransmission,hotplug,Plug-and-playfeatures,hasbeeninhigh-speeddataacquisitionsystemshavebeenmorewidelyused.
InaPICmicrocontrollerasthecore,aPICmicrocontrollerinternalA/Dconvert-
r,designedUSB100modulardesignbasedonadatacollectionsystem.
DescribedindetailbasedontheUSB100moduledesignedadatacollectionsyste-
mandtheoveralldesignoftheoptions,hardwareandsystemsoftwareprogramming,
andsoon.Onthespecificdesignofthecircuitandthecorrespondingresults,andare
giveninthetextoftheprincipleofthehardwareandsoftwareflowchart.
KeyWords:
Universal Serial BusData AcquisitionSignalChip
第一章绪论
在工业控制和数据采集系统中,单片机以其低成本,编程灵活、方便,实时性强和具有一定的智能而得到了广泛的应用。
然而,许多复杂任务的实现,如人机对话、任务的切换、算法的实现、大数据的运算等,单片机就显得有些力不从心,而PC机在这方面却有强大的优势。
这就需要将它们组合成系统,让单片机只管控制执行机构和进行数据采集与传输;PC机将数据进行处理,实现功能。
这就涉及到单片机与PC机之间的通讯问题,在需要实时传递和处理声音和图象等大批数据的时候,普通的通信方式难以满足要求。
这就为数据采集系统的设计提出了两个方面的要求:
一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理,并在单片机和PC机之间进行高速和可靠的通讯。
传统的外设与主机的通信接口难以满足上述第一个方面的要求,这些接口一般采用PCI布部线或RS-232串行总线。
PCI总线虽然有很高的传输率(可达132Mbps),还能“即插即用”,但是它们的扩充槽相当有限,且插拔并不方便;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技术非常适合实时数据采集的场合,是目前较为流行的通讯方式。
从应用方面来看,国外通用串行总线USB因其具备高速传输,即插即用等诸多优点,在各个领域得到了广泛应用;国内USB总线已经得到了控制工程师的普遍关注,由于其通信协议比较复杂,相关的研究成果还比较少,特别是USB与目前最具竞争力的工业微控制器(PIC单片机)通信的应用范例还很匮乏。
本设计基于USB设计出了一套既简单又实用的串行通信程序,并制作了一个压力数据采集及实时显示的硬件电路对其进行了实例验证。
设计选用美国微芯公司(Microchip)的主要产品PIC16F73单片机为主控制器,PC机的程序设计采用可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言——VisualBasic。
本设计能实现如下几项功能:
1.压力信号经精密放大电路后输入单片机进行A/D转换;
2.单片机对采集到的信号进行抗干扰处理和显示;
3.单片机将采集到的数据实时送入PC机;
4.PC机对所得数据运算后列表显示并录入数据库;
5.单片机查询来自PC机的实时指令,并执行相应动作。
图1.1基于USB的高速数据采集系统示意图
图1.1为基于USB的高速数据采集系统示意图,就本设计而言,传感器接收压力信号,PIC单片机的I/O控制口包括与USB100模块通信的标志位端口及LED显示输出口。
第二章方案选择和总体设计
2.1方案选择
1、通信接口选择
当今的计算机外部设备,都在追求高速度和高通用性。
为了满足用户的需求,以Intel为首的七家公司于1994年推出了USB(UniversalSerialBus通用串行总线)总线协议,专用于低、中速的计算机外设。
目前,USB端口已成为了微机主板的标准端口;而在不久的将来,所有的微机外设,包括键盘、鼠标、显示器、打印机、数字相机、扫描仪和游戏柄等等,都将通过USB与主机相连。
这种连接较以往普通并口和串口的连接而言,USB接口的优势主要表现在以下几个方面:
⑴使用方便,连接外设不必再打开机箱;允许外设热插拔,而不必关闭主机电源。
⑵速度快,USB支持三种设备传输速率:
1.5Mb/s(低速设备)、12Mb/s(中速设备)480Mb/s(高速设备)。
⑶独立供电,USB接口提供了内置电源。
⑷连接灵活,一个USB口理论上可以连接127个USB设备。
连接的方式也十分灵活,既可以使用串行连接,也可以使用集线器Hub,把多个设备连接在一起,再同PC机的USB口相接。
⑸成本低,为了把外设连接到PC上,USB提供了一种低成本的解决方案。
综合上述系统中采用USB接口,具体选用了USB100模块。
2、微控制器选择
方案一:
凌阳16位单片机
随着单片机功能集成化的发展,其应用领域也逐渐地由传统控制扩展为控制处理、数据处理以及数字信号处理(DSP,DigitalSignalProcessing)等领域。
凌阳的16位单片机就是为适应这种发展而设计的。
它的CPU内核采用凌阳最新推出的µ’nSP™(MicrocontrollerandSignalProcessor)16位微处理器芯片(以下简称µ’nSP™)。
围绕µ’nSP™所形成的16位µ’nSP™系列单片机(以下简称µ’nSP™家族)采用的是模块式集成结构,µ’nSP™内核是一个通用的核结构,以µ’nSP™内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件,这种结构可大可小或可有可无。
借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合,这样做使每一种派生产品具有更强的功能和更低的成本。
从目前的应用来看,凌阳16位单片机的优势在于它具有强大的语音处理功能。
然而,它在工业控制现场的应用案例较少,在控制领域并不具备突出的竞争力。
最重要的是,凌阳公司在国内的技术推广才刚开始,本科四年对凌阳单片机的了解还十分有限,在毕业设计期间化大量时间学习单片机的基础知识显然很不合适。
方案二:
MCS-51系列单片机
传统的51系列微控制器,在国内使用时间比较长,开发所需的资料也比较多,但其片内资源较少,在外围电路中需加入多种模块,如:
A/D转换器、PWM、RAM和ROM存储器等。
它的优点是外围电路易于扩展,尤其是存储器的容量可以按需求增大,缺点是在线调试程序不方便。
如果应用到本设计中,外围扩展电路比较复杂,电路板空间和制造成本较大,而且在硬件电路的制做和调试方面也有一定的困难。
方案三:
PIC系列单片机
PIC系列单片机是美国微芯公司(Microchip)的主要产品,有PIC16系列、PIC17系列、PIC18系列等。
PIC系列单片机CPU采用RISC结构,它具有运行速度快、工作电压低、功耗低、较大的输入输出直接驱动能力强、价格低和体积小等优点。
PIC16F73单片机是PIC系列的中档产品,其内部资源非常丰富,含有4K的FLASH程序存储器、192B的RAM数据存储器、5通道8位A/D转换器、3个定时器、2个捕捉/比较/脉宽调制、1个同步串行端口SPI和通用同步/异步收发器 USART等。
另外,它具有外围接口电路简单、工作性能稳定等特点。
基于以上比较,本设计选择PIC单片机作为下位机控制的核心,利用上述丰富的资源来完成A/D转换、收发数据、输出显示信号等处理和指定的控制任务。
3、压力传感器选型
⑴传感器是将各种非电量(包括物理量、化学量和生物量等)按一定规律转换成易于处理和传输的另一种物理量(一般为电量)的装置。
在本设计中使用了压力传感器,它是力的测试中最关键的装置。
它的种类繁多,有电容式、压阻式、差动变压器式、压电式、电阻应变式等。
本系统选用的应变片式差压测力传感器,它具有灵敏度高、线性度和稳定性好、结构简单、动态性能优良等优点,广泛应用于力的测试中,其常见外观如图2.1所示:
(a)柱形(b)悬臂梁形
图2.1电阻应变式测力传感器
⑵压力传感器参数
压力传感器是把压力转换成电信号的传感器,用半导体材料制成的压力传感器称为半导体压力传感器,由于其体积小、重量轻、灵敏度高、功耗小、便于集成等优点,发展十分迅速,应用也很广泛。
在本设计的过程中选用了S形双弯曲梁应变片式测力传感器,其的结构示意图如图2.2所示。
S形双弯曲梁应变片式测力传感器主要参数如下:
额定载荷:
3kg
额定输出:
1.3mV/V
输入电阻:
350Ω
输出电阻:
350Ω
非线性:
0.01%F.S
滞后:
0.015%F.S
重复性:
0.01%F.S
安全过载能力:
150%
图2.2S形双弯曲梁压力传感器结构示意图
由于S形双弯曲梁应变片式测力传感器的结构是双连孔型的,粘贴应变片处比较薄,应变大,灵敏度高,而其他部位较厚,故强度、刚度好的特点,所以系统中选择它作为压力传感器。
S形双弯曲梁应变测力传感器和PIC16F73单片机相结合组成的测力系统,它具有实时数据采集和LED显示功能。
传感器弹性体为双弯曲悬臂梁,四片应变片分别贴于梁的上下两表面组成全桥电路,当受到载荷W作用时,R1、R2受拉伸,阻值增加;R3,R4受压缩,阻值减小,电桥失去平衡,并产生电压△U输出,且△U与W成正比。
2.2总体设计
数据采集是现代控制系统必不可少的控制任务,通用串行总线(USB)因具有传输速率快、接口简单、支持即插即用(Plug&Play)和使用维护方便等特点在控制领域具有广泛的应用前景。
本设计以压力数据采集任务为载体,深入的学习和探讨了基于USB的串行通信的实现问题。
本系统包括硬件接口设计和软件编程两个方面,软硬件结合能实现如图2.3所示的功能。
图2.3系统总体框图
第三章系统硬件电路设计
3.1单片机最小系统
美国Microchip技术公司的PIC系列单片机采用精简指令集计算机(RISC——ReducedInstructionSetComputer)、哈佛(Harvard)双总线和两级指令流水线结构的高性能价格比的8位嵌入式控制器(Embeddedcontroller)。
其高速度、低工作电压、低功耗、较大的输入输出直接驱动LED能力、一次性编程芯片的低价位、小体积、指令简单易学易用等特点,都体现了单片机工业发展的新趋势。
在全球都可以看到PIC单片机在不同领域的广泛应用,它在世界单片机市场份额排名中逐年提前,以致已成为一种新的8位单片机的世界标准和最有影响力的主流嵌入式控制器,所以本设计选用PIC16F73作为主控制器。
3.1.1PIC单片机的特点
PIC单片机的主要优点[7]表现在:
1.PIC16F73系列单片机都具有A/D转换功能,A/D转换器是采用逐次逼近法进行模数转换,转换的结果是8位数字量。
另外PIC16F7X系列单片机的A/D转换具有一个独特的功能,就是在CPU休眠期间能照常工作。
不过,此时的A/D转换时钟必须选择A/D内部的RC振荡器。
2.指令的“单字节化”。
因为指令总线和数据总线是分离的,并且采用了不同的宽度,所以程序存储器ROM和数据存储器RAM的寻址空间是相对独立的,而且两种存储器宽度也不同。
这样设计不仅可以确保数据的安全性,还能提高运行速度和实现全部指令的“单字节化”。
而MCS-51系列单片机的ROM和RAM宽度都是8位指令长度从1个字节(8位)到3个字节长度不一。
3.精简指令集(RISC)技术。
PIC系列单片机的指令系统只有35条指令。
这给指令的学习,记忆,理解带来很大的好处,也给程序的编写,阅读,调试,修改,交流带来极大的便利,真可谓易学好用。
。
它不仅全部指令均为单字节指令,而且绝大多数指令为单周期指令以利于提高执行速度。
4.寻址方式简单。
寻址方式就是寻找操作数的方法,PIC系列单片机只有4种寻址方式(即寄存器间接寻址,立即数寻址,直接寻址和位寻址),容易掌握。
5.运行速度高。
由于采用了哈佛结构,又由于指令的读取和执行采用了流水作业方式,PIC系列单片机的运行速度大大提高。
可知PIC系列单片机的运行速度远高于其它相同档次的单片机。
在所有8位机中,PIC17F是目前世界上速度最快的品种之一。
6.功耗低。
PIC系列单片机的功率消耗极底,有些型号的单片机在4MHz时钟下工作时耗电不超过2mA,在睡眠模式下低到1uA以下。
7.驱动能力强。
I/O端口驱动负载的能力较强,每个I/O引脚输入和输出电流的最大值可分别达到25mA和20mA,能够直接驱动发光二极管、光电耦合器或者微型继电器等。
8.具备I²C和SPI串行总线端口:
PIC系列单片机的一些型号具备I²C和SPI串行总线端口。
I²C和SPI分别是由PHILIPS和MOTOROLA公司发明的芯片之间同步串行数据传输的两种串行总线技术,利用单片机串行总线端口可以方便灵活的扩展一些必要的外围器件。
串行接口和串行总线的设置,不仅大大的简化了单片机应用系统的结构,而且还极易形成产品的模块化结构。
9.寻址空间设计简洁。
PIC系列单片机的程序、堆栈和数据三者各自采用互相独立的寻址空间,而且前两者的地址安排不需要用户操心,这会受到初学者的喜欢。
10.外围电路简洁。
PIC系列单片机内部集成了上电复位电路、I/O引脚上拉电路、看门狗定时器等,可以最大程度的减少或免用外围器件。
11.开发方便。
芯片公司及其国内多家代理商,为应用开发提供了丰富多彩的硬件和软件支持。
3.1.2PIC16F73单片机的引脚功能
1.电源和地线引脚
PIC系列单片机一般采用5V电压,为了减少外界噪声的影响,将电源引脚和地线引脚放置芯片的中间。
2.主复位信号引脚
复位信号引脚用于外部电路产生复位信号使PIC单片机产生复位,低电平有效。
在对单片机编程时,此引脚作为编程电压的输入端。
3.输入/输出端口功能引脚
在PIC16F73微控制器中,有三个端口,每个端口引脚大部分都具有两种或三种功能复用;作为输入输出端口时,端口A、端口B、端口C、都是双向I/O口。
作为第二或第三功能端口,每个引脚功能都可能不同,主要包含有以下的几种功能:
a).用于A/D转换的模拟电压输入端和参考电压输入端;
b).用于定时器的时钟输入端和振荡器输出端;
c).用于串行通信的输入/输出端和时钟端;
4.振荡器输入输出线。
其引脚布置如图3.1所示,在PIC单片机中有一根振荡器输入引脚OSC1/CLKIN和一根振荡器输出引脚OSC2/CLKOUT,由于PIC单片机
图3.1PIC16F73引脚图
可以采用不同的振荡器,这使得两根引脚可以有不同的功能。
采用晶体振荡器或陶瓷谐振器,将晶体振荡器的两脚直接接人OSC1/CLKIN和OSC2/CLKOUT;采用外部RC振荡器时,OSC1/CLKIN作为输入,OSC2/CLKOUT开路。
3.1.3PIC16F73单片机最小系统
图3.2PIC16F73最小系统
PIC16F73最小系统如图3.2所示。
在本系统设计中,PIC16F73微控制器的引脚功能配置如下:
⑴端口B作为数据总线;
⑵PA0口为压力模拟信号输入端;
⑶PA2和PA3为数码管段码和位码的片选端;
⑷PC0和PC1为USB100模块的存入(WR)和读出(RD)标志位;
⑸PC2和PC3为USB100模块的标志位RXF和TXE
⑹PC4和PC5起到工作状态监视作用,其中PC4为单片机接收数据状态指示端,PC5为单片机发送数据状态指示端。
3.2显示器接口电路设计
为了验证通信结果的正确性,必须增加有效的手段测试PIC单片机接收到的数据正确与否,而最简单且可行的方法就是增加LED显示部分。
LED器件是一种发光二极管显示器。
其特点如下:
(1)LED显示器具备稳定、高速、简单的系统;
(2)LED显示结构简单、性能稳定;
(3)LED显示应用在成熟的生产技术上。
发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备。
八段发光二极管结构如图3.3所示。
图3.3八段发光二极管外型
发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。
1位显示器有8个发光二极管组成,其中7个发光二极管a~g控制7个笔段的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的八段显示器能显示的字符少。
字符的形象有些失真,但控制方便,使用简单。
图3.4共阴极数码管
图3.5共阳极数码管
考虑到压力显示精度和显示范围等因素,本设计选用4位共阴极LED数码管。
显示器的显示方法有静态和动态两种方法。
显示器位数较少时,采用静态显示的方法是合适的。
当位数较多时,用静态显示所需的I/O太多,一般采用动态显示方法,所以在系统中我们采用动态显示。
此类数码管的工作特点是:
⑴数码管片选端清0时,对应位的数码管才有可能亮;
⑵每次只能有一个片选端清0,即只能动态移位显示相应的数据;
⑶单片机控制数码管显示相应数字要用查表子程序来实现。
此电路的程序设计要求是:
不能在保持原输出数据的情况下,常时间持续执行其它控制任务。
在本设计中,用显示程序来替换其它任务中必要的延时子程序,从而实现了数据显示的连续性,而且不会影响其它控制任务的正确执行。
显示器接口电路如图3.6所示。
LED显示器采用两片74LS273动态扫描方式驱动,其中U2作为段码接口,U3作为位码接口,单片机通过B口与74LS273的输入端相连,PA2和PA3分别作为U2和U3的片选信号,缺省时显示0。
D1、D2作为单片机发送/接收数据状态指示,当单片机发送数据时D1点亮;当单片机接收数据时D2点亮。
图3.6显示器接口电路
3.3USB接口电路设计
3.3.1USB100模块的特点
USB100是目前开发最为方便的USB接口产品,用户无需编写驱动程序,对USB的操作就变成了类似于对外部存储器的操作,由USB100模块完成全部协议的转换和封装,只要有单片机和PC应用程序的基本知识,就可以很快地开发好USB接口和数据采集等产品,开发过程十分简单。
USB100模块是完全集成化的USB接口模块,完全满足USB1.1标准,具有8位单片机总线接口,内部多达384字节的发送缓冲区和128字节的接收缓冲区,数据通讯速率最高可达8Mbit/S。
性能可靠,特别适合工业控制场合。
在单片机系统中,USB100通讯模块作为单片机的并行接口芯片,两者有机结合,构成了下位机的USB通讯接口。
USB100模块提供两种PC机应用程序编程[4]:
虚拟串口方式和动态连结库方式。
⑴虚拟串口方式下,用户在PC机上安装USB100模块专用虚拟串口驱动程序之后,USB100即可作为PC机上的一个标准设备,可以按照与操作串口完全一样的方法来编程。
⑵在动态连结库方式下,用户要在PC机上安装USB100模块专用动态连结库,安装之后,USB100即成为PC机的一个标准外设,编程时调用API函数发送和接收数据。
3.3.2USB100的引脚图及功能
USB100的管脚排列图如图3.7所示。
图3.7USB100的管脚排列图
数据口(D0…D7)是8位双向I/O口,它以并行方式与微控制器交换数据。
RD:
允许内部接收缓冲区数据通过8位并行总线读出。
WR:
将8位并行总线上的数据锁存入内部缓冲区。
TXE:
高表示模块发送缓冲区已满;低表示发送缓冲区为空,可以发送数据。
RXF:
高表示模块没有数据输出;低表示模块有数据输出,可以读数据。
USBVCC:
USB接口的电源脚。
D+:
USB数据脚。
D-:
USB数据脚。
GND:
电源脚。
VCC:
+5V输出,可提供给外部MCU使用,最大400mA
NC:
空管脚。
3.3.3USB100控制时序
发送时序[5]如图3.8所示,当单片机检测到USB100模块TXE为低时,表示内部发送缓冲区允许发送数据,可以将数据通过八位数据总线D0…D7发给USB100模块,发送数据锁存由WR控制;USB100模块TXE为高时,禁止发送数据。
图3.8单片机发送数据时序图
接收时序[5]如图3.9所示,当单片机检测到USB100模块RXE为低时,表示内部接收缓冲区有数据,可以通过八位数据总线D0…D7将数据从USB100模块读入,接收数据锁存由RD控制。
图3.9单片机接收数据时序图
3.3.4USB100与单片机接口
USB100与单片机的接口电路如图3.10所示,USB100通过总线隔离器与单片机接口,使得对USB100的操作有一个