1、摘 要通用串行总线USB(Universal Serial Bus)是一种新型的微机总线接口规范。随着客户对系统数据采集速度要求的不断提高,USB以其使用方便、易于扩展、速度快等优点而越来越多的应用于数据采集系统中。本文介绍了一种基于USB总线的数据采集系统的设计方法,采用南京沁恒电子公司的USB接口芯片CH372与单片机AT89C52进行通信,并和PC机通信而编制出友善的设备应用程序。该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机AT89C52和USB接口芯片CH372为核心的数据采集系统进行了硬件设计,并在此设计的基础上给出相应的电路原理
2、图。本系统具有16路单端模拟输入、32路开关量(16路输入与16路输出)、16路8位DA、8路脉冲输入。硬件设计主要解决的是CH372、TLC549和TLC5620与单片机之间的接口电路问题;USB软件设计分为三部分:USB设备固件程序、设备驱动程序以及主机应用程序。通过该数据采集系统,我们可以对USB协议有很深刻的理解,对CH372接口芯片有很熟练的应用,能更好领悟USB接口的优势。本系统充分继承了USB总线安装方便、高带宽、易扩展等优点,并且功能全面,简单易用。关键词:USB总线;单片机;数据采集; AbstractUniversal Serial Bus USB (Universal S
3、erial Bus) is a new type of computer bus interface specification. Continuously improve with the requirements of customers on the system data acquisition speed, USB, with its easy to use, easy to expand and speed advantages of increasingly the more applied to the data acquisition system. This article
4、 describes the design of a USB bus-based data acquisition system, Qin Hang the USB interface chip CH372 SCM AT89C52 to communicate, and PC communication preparation friendly equipment and application of the system with a traditional USB bus instead of the RS232 serial bus, a full understanding of th
5、e USB protocol and device architecture, hardware data acquisition system as the core microcontroller AT89C52 and the USB interface chip CH372design, and the corresponding circuit diagram is given on the basis of this design. this system has 16 single-ended analog input, 32-way switch (16 inputs and
6、16 outputs), 16 channel 8 circuit DA 8 pulse input hardware design is the main solution is of CH372, the TLC549 and TLC5620 and microcontroller interface circuit between; USB software design is divided into three parts: a USB device firmware, device drivers and host applications.Through the data acq
7、uisition system, we can of the USB protocol has a very deep understanding , For the CH372 interface chip is very skilled, able to better comprehend the advantages of the USB interface. The system is fully inherited the USB bus, easy installation, high-bandwidth, easy to expand, and full-featured and
8、 easy to use, simple.KEYWORDS:USB bus;data collection;MCU; 目录摘 要IAbstractII目录1第1章 绪 论31.1 课题背景和研究意义31.2 USB的发展41.3 国内外现状5第2章 USB的技术和系统设计方案的选择62.1 USB的总线结构62.2 USB的通信协议62.2.1 信息包72.2.2 常用的几种包格式72.2.3 事务处理82.3 USB传输方式92.3.1 Bulk传输事务102.3.2 控制传输事务102.3.3 中断传输事务102.3.4 同步传输事务10第3章 硬件系统的设计113.1 硬件部分113.1
9、.1 总线的选择113.1.2 芯片的选择113.1.3 硬件系统设计方框图123.2 AT89C52单片机硬件结构133.2.2 AT89C52最小应用系统设计153.2.3 时钟电路153.2.4 复位电路163.3 A/D转换和D/A转换163.3.1 A/D转换:TLC549芯片介绍163.3.2 TLC549电路设计183.3.3 D/A转换:TLC5620芯片介绍183.3.4 TLC5620电路设计183.4 CH372芯片的介绍183.4.1 CH372和上位机连接电路设计203.4.2 CH372与下位机连接电路设计203.5 周边电路设计213.5.1 开关量输入电路设计2
10、13.5.2 开关量输出电路设计213.5.3 脉冲输入电路设计223.5.4 多路开关电路设计233.6 本章小结23第四章 软件系统的设计244.1 USB固件程序设计244.2 驱动程序的设计264.3 用户应用程序设计26第五章 系统测试285.1 数据采集过程285.1.1 模拟信号285.1.2 开关信号295.1.3 脉冲信号295.2 测试结果305.2.1 输入模拟量测试305.2.2 输出模拟量测试305.2.3 脉冲量测试315.3 本章小结31结 论31参考文献32致谢33第1章 绪 论1.1 课题背景和研究意义在工业生产和科学研究等行业中,常常需要利用PC 或工控机对
11、各种数据进行采集处理,如液位、温度和压力等。数据采集系统主要完成数据信息的采集、A/D 转换,然后通过PC 接口总线将处理后的数据送入计算机作进一步处理。目前,以这样的系统为核心的设备在国内外得到了广泛的应用,比如工业控制中现场数据的采集设备;生物医学方面的电生理信号的采集系统;机场、商场等人流量大或比较重要的场所安装的监控设备;家庭影院、视频会议、可视电话等多媒体设备。数据采集卡同计算机外设一样,与主机的通讯接口一般是基于PC上的RS-232 总线、ISA总线、PCI总线或EPP/ECP等1。PCI总线虽然具有较高的传输速度(132Mbps),并支持“即插即用”功能,但其缺点是插拔麻烦,而且
12、由于PC机扩展槽一般为56个,因此最多也只能有56个PCI数据采集卡同时用在一台微机上;并且PCI插槽占用主板相当大的空间,这也不利于微机系统的小型化。对于ISA总线也存在同样的问题。RS232C串行总线虽然连结简单,但其传输速度慢(只有 56Kbps),并且主机的串口数目也十分有限。总之,采用这些传统接口的数据采集设备存在以下缺陷:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源的限制,可扩展性差;在一些电磁干扰性强的测试现场,可能无法专门对其作电磁屏蔽,从而导致采集的数据失真。随着通用串行总线USB的出现,很好的解决了以上这些问题。采用USB总线接口的采集系统具备了如下优点:1. 设备
13、安装和配置容易。USB 设备支持即插即用,安装USB 设备不必再打开机箱,加减已安装过的设备,完全不用关闭计算机。2. 接口数目多,每个 USB 主机通过USB 集线器,可以同时挂接最多127个外围设备,有效地解决了多点数据采集系统I/O 口不够用的问题。3. 数据传输速度比一般的串行总线(如RS232,RS485 等)快,USB1.1 标准的接口最快可以达到12Mbps,可以满足绝大多数多点数据采集系统的要求。在PC 主机和采集系统都具备支持USB2.0 标准的接口芯片时,最快可以达到480Mbps,可以满足高速数据采集系统的要求。4. 设备能够直接由 USB 总线进行供电。因此研究设计一种
14、基于USB2.0 接口技术的数据采集系统具有十分重要的实用价值1.2 USB的发展USB(Universal Serial Bus,通用串行总线)作为一种新的外设连接技术,最初是由 Compaq,DEC,IBM,Intel,Microsoft,NEC和Northern Telecom等七大业内巨头共同开发的。该技术着眼于简化计算机与外设的连接过程,顾及低速和高速的兼容;从而解决串行设备和并行设备与计算机相连的争论,为用户提供一种可共享的、可扩充的、使用方便的串行总线。随着PC机向各层次的发展与渗透,外围设备与PC的连接与扩充变得越来越重要。1994 年,Microsoft公司提出PnP(Plu
15、s and Play,即插即用)方案,旨在把PC外设和扩充电路板连接起来,实现系统对中断和端口等资源的自动分配,而无需用户的干预。1996 年Compaq,Intel和Microsoft三家厂商提出Device Bay(设备插架)概念,其目的是实现热插拨和高度的扩充性。USB 最初推出的是1.X 版本,其总线传输速度较低,有12Mbps(全速)和1.5Mbps(低速)两种。目前,它主要应用于传统PC 外设,如鼠标、键盘、显示器等,移动存储设备如移动硬盘、U 盘等,以及新兴的消费类电子,如MP3 播放器、数码相机、移动电话等。USB2.0于2000年4月发表,是一种高速模式的版本,它把数据传输速
16、度提高到了480Mbps,在保持了USB1.1优点的前提下,保证了向下的兼容性,可以完全支持各种 USB1.1的产品。不过,如果要使用高速传输,则必须使用与USB2.0兼容的主机软件与主机控制器,也就是说在主机的操作系统Windows2000/XP中安装USB2.0补丁程序,另外还要安装支持USB2.0的主机控制器或者PCI接口USB2.0的扩展卡。 USB设备的迅速增加,设备与设备之间的直接数据传输变得越来越迫切,USBOTG (On-The-Go)技术应运而生,它于2001年12月底制定,赋予了设备双重身份。也就是说它既可以作为主机,又可以作为设备,其实质是在设备中增加了一个嵌入式计算机来
17、执行主机任务。这一技术使USB设备摆脱了对PC的依赖,大大扩展了USB的应用范围。1.3 国内外现状国外企业己经推出了很多能适应不同条件,不同精度要求等情况的USB数据采集系列产品。典型的是美国国家仪器有限公司(National Instruments,NI)研制的一系列USB 数据采集卡,NI公司于2006年6 月份推出了两款最新USB2.0 总线的M 系列数据采集设备,实现了高达1.25Mb/s的采样率。这些新设备不但为现有USB兼容的数据采集设备提供最高速率的数据采集功能,同时也以功能强大的测量服务软件简化了系统设置和程序设计的工作。新推出的USB2.0高速设备包含免费的交互式数据记录软
18、件,以供分析之用。但是NI 公司的USB 数据采集卡系列产品的价格都很昂贵。 近年来国内有很多公司像北京中泰研创科技有限公司,成都中科动态仪器有限公司等都相继推出了USB数据采集卡,而这些产品多是基于USBI.1 协议规范,其数据传输速度远低于基于USB2.0协议规范的数据采集卡,因此也制约了这些产品的采集速度。目前国内对USB 接口开发应用的广度和深度还远远不如传统的串行口、并行口以及各种总线插卡,其应用主要是局限于开发一些标准的微机外围设备,如U盘、鼠标、键盘等。这主要是由于作为一个新技术和新标准,USB规范较为复杂,应用开发人员还不是很了解,相应的技术支持和参考设计资源比较少,要把USB
19、接口作为微机的一个通用I/O接口使用具有一定的软硬件开发难度。USB2.0接口凭借低成本、高性能、可靠稳定、方便灵活的特点,将逐步成为微型计算机的主要输入输出方式。总的来说,目前国内对USB数据采集设备的研制已经取得了可喜的发展,但是与国外的情况相比,在开发和应用的深度和广度而言,还有一段距离现场数据采集要求比较高的场合多是采用的国外产品。因此,随着计算机对USB接口的普及和实际应用中对数据采集卡要求的提高,利用USB2.0协议规范开发出符合多种场合要求的数据采集系统,以及此领域内先进产品的国产化等都成了急待解决的现实问题。第2章 USB的技术和系统设计方案的选择2.1 USB的总线结构一个U
20、SB体系由USB主机、USB集线器和USB功能设备组成。在一个USB系统中只可能有一个USB主机,相对计算机主机系统而言,USB主机也被称为USB主机控制器。USB主机控制器是硬件、软件的综合体。USB主机控制器同时包含一个根集线器,根集线器是一个USB系统的最初连接点,用以提供向下的更多的连接点。USB集线器和USB功能设备统称USB设备。USB集线器为连接其他设备提供了一个或多个端口。USB功能设备则是一个连接在USB总线上完成特定功能的设备,如打印机、扫描仪等。还有一类设备称为复合设备,这类设备既是一个集线器又是一个功能设备,在USB系统中这样的设备将被看成是两个独立的设备。USB总线结
21、构由USB主机控制器(连同根集线器)、USB集线器和USB功能设备组成一个分层的星形结构。每一个星形结构的核心是USB集线器。在USB主机与USB集线器或USB功能设备之间以及USB集线器与USB设各之间是点对点的连接。在这个分层的星形结构的最上层是USB主机控制器。 2.2 USB的通信协议USB的协议层描述了USB主机与USB外设交互的语法和协议,从中定义了字段、包、事务和传送的结构。协议同时还规范了数据链路的建立、正常或异常传送处理的动态过程。2.2.1 信息包包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。USB包由五部分组成,即同步字段(SY
22、NC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),基本格式如下表:表2.1包的基本格式同步字段PID字段数据字段CRC字段包结尾字段1.YNC字段(同步字段)由8位组成,作为每个数据封包的前导,用来产生同步作用,使USB设备与总线的包传输率同步,它的数值固定为00000001。2.ID字段(包标识符字段)表示数据封包的类型。PID字段如下表表2.2 PID字段PID0PID1PID2PID33.包标志符(PID)由4位的包类型字段和后4位的校验字段构成。包标志表明了包的类型,并隐含地指出了包的格式和该包所用错误检测的类型。相应的校验字段是包类型字段的二
23、进制反码,用作校验,以保证包标识符传输可靠性。包标识符分为令牌(Token)、数据(Data)、握手(Handshake)、特殊(Special)四种类型。字段是用来携带主机与设备之间要传递的信息,其内容和长度根据包标识符、传输类型的不同而各不相同。并非所有的USB包都必须有数据字段,例如握手包、专用包和SOF令牌包就没有数据字段。在USB包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。C字段(循环冗余校验字段)由不同数目的位所组成。其中重要的数据封包采用CRCl6的数据域,而其余的封包类型则采用CRC5的数据域。尾
24、字段即发送方在包的结尾发出包结尾信号。它表现为差分线路的两根数据线保持2比特低位时间和1比特空闲位时间。USB主机根据EOP判断数据包的结束。2.2.2 常用的几种包格式(1)起始(SOF)封包起始封包属于令牌封包的一种,但具有独自的PID类型名:SOF。这个封包常用于等时传输,并不应用于低速设备。格式如下表:表 2.3起始(SOF)封包8位8位11位5位SYNCPIDPID帧序列号(FRANME)CRC5(2)令牌(Token)封包令牌封包由于USB的数据交换是由PC主机端所激活的,所以在每一个数据交换中必须以SYNC、PD、ADDR、ENDP与CKC5这5个数据域组合而成的令牌封包为起始。
25、格式如下表: 表2.4 令牌(Token)封包8位8位7位4位5位YSNCPIDPIDADDRENDPCRC5(3)数据(Data)封包数据封包含有4个域:SYNC、PID、DATA与CRCl6。DATA数据域的位值是根据USB设备的传输速度及传输类型而定,且须以8字节为基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的也不足8字节,仍须传输8字节的数据域。格式如下表:表 2.5 数据(Data)封包8位8位数据字段(高速)16位SYNCPIDPID最大1024字节CRC16(4)握手(Handshake)封包仅包含SYNC和一个PID数据域,格式如下表表 2.6 握手(Hands
26、hake)封包8位8位SYNCPIDPID 2.2.3 事务处理事务处理是USB总线上数据传输的基本单位,主机和USB设备间的一次通信可能需要使用多个事务处理。事务处理由三个阶段组成:令牌阶段、数据阶段和握手阶段,其中,数据阶段和握手阶段是可选的。根据所含令牌包的种类,USB中的事务处理可分为七种类型:IN事务、OUT事务、SETUP事务、PING事务、SOF事务、SPLIT事务和PRE事务。现就对主要用到的事务处理做一简单的介绍:(1)IN事务处理IN事务处理主要完成USB设备到主机的数据传输。其实现过程如下:令牌阶段:主机准备好接收数据,并向指定的USB设备发出IN令牌包;数据阶段:USB
27、设备接收到该令牌包后,向主机发送的含专用数据的数据包;握手阶段:主机接收到这些数据后,向USB设备返回ACK握手包。在IN事务处理中,USB设备并不是每次都能成功地响应主机发出的IN令牌包和数据包。(2)OUT事务处理OUT事务处理主要完成主机到USB设备的数据传输。如果传输成功,它将包括令牌、数据和握手三个阶段,其实现过程如下:令牌阶段:主机向指定的USB设备发出OUT令牌包;数据阶段:主机发送的含有专用数据的数据包;握手阶段:USB设备接收到这些数据后,向主机返回ACK握手包。在OUT事务处理中,USB设备并不是每次都能成功地响应主机发出的OUT令牌包和数据包。(3)SOF事务处理SOF事
28、务处理表示USB帧/小帧的开始,它仅包含主机或集线器事务翻译器浙江工业大学硕士学位论文发出的SOF令牌包,而不需USB设备返回任何握手,对于低速/全速传输,USB定义了长度为1ms的帧,SOF令牌包每1ms产生一次。对于高速传输而言,USB定义了长度为125的小帧,SOF令牌包每隔7个小帧产生一次。2.3 USB传输方式当USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是Bulk Transaction
29、、Control Transaction、Interrupt Transaction和Isochronous Transaction。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三个部分,第一部分是USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,其方向主要看第一部分的命令是读还是写,第二部分有时候可以没有。第三部分是握手信号。以下针对这四种传输,分别进行讲解。2.3.1 Bulk传输事务顾名思义,该种事务传输主要是大块的、批量的数据,传送这种事务的端点叫做Bulk端点。这种事务传输的时候分为三部分,第一部分是Host端发出一个B
30、ulk的令牌请求,如果令牌是IN请求则是从Device到Host的请求,如果是OUT令牌,则是从Host到Device端的请求。第二部分是传送数据的阶段,根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。传输数据的时候用DATA0和DATA l令牌携带着数据交替传送。第三部分是握手信号。如果数据是IN方向,握手信号应该是Host端发出,如果是OUT方向,握手信号应该是Device端发出。握手信号可ACK,表示正常响应,也可以是NAK表示没有正确传送。STALL表示出现主不可预知的错误。2.3.2 控制传输事务控制传输是负责向USB设置一些控制信息,传送这种事务的端点是控
31、制端点。在每个USB设备中都会有控制端点,也就是说控制端点在USB设备中是必须的。控制传输也分为三个阶段,即令牌阶段、数据传送阶段、握手阶段。2.3.3 中断传输事务在USB设备中,有一种处理机制类似于PCI中断的机制,这就是中断事务。中断事务的数据量很小,一般用于通知Host某个事件的来临,例如USB鼠标、鼠标移动或者鼠标单击等操作都会通过中断端点来向Host传送事件。在断事务中,也分为三个阶段,即令牌阶段、数据传输阶段、握手阶段。2.3.4 同步传输事务USB设备中还有一种事务叫同步传输事务,这种事务能保证传输的同步性。例如,在USB摄像头中传输视频数据的时候会采用这种事务,这种事务能保证
32、每秒有固定的传输量,但与Bulk传输不同,它允许有一定的误码率,这样符合视频会议等传输的需求,因为视频会议首先要保证实时性,在一定条件下,允许有一定的误码率。同步传输事务有只有两个阶段,即令牌阶段、数据阶段,因为不关心,数据的正确性,故没有握手阶段。第3章 硬件系统的设计3.1 硬件部分硬件系统设计包括总线及芯片选择以及总体设计方案图。系统所用微处理器及 USB 接口芯片选择了 AT89C51 和 CH372。3.1.1 总线的选择本课题要求设计一个数据采集系统。传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。PCI总线虽然具有较高的传输速度(132Mb
33、ps),支持“即插即用”功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5-6个),ISA总线显然存在同样的问题。RS-232C串行总线虽然连结简单,但其缺点是传输速度慢(56kbps),且主机的串行数目有限。而通用串行总线具有安装方便、高带宽、易扩展等优点,所以采用USB总线与计算机进行通讯。3.1.2 芯片的选择系统所用微处理器及USB接口芯片选择了AT89C52和CH372。 本设计采用51单片机中的AT89C52为主控制器件。AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取
34、数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央 处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,8K字节Flash闪速存储器,256字节内部RAM,32个外部双向输入/输出(I/O)端口,3个16位可编程定时计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0HZ的静态逻辑操作,并支持两种软件可选的节电模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,
35、掉电方式保存RAM中的内容。 AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。CH372是一个通用设备接口芯片。它挂接到MCU/DSP/MPU/单片机等控制器的系统总线上十分方便。具有8位数据总线和中断输出以及读、写、片选控制线;该芯片在PC系统中的配套软件提供的操作接口简洁易用,这使得与本地端的单片机通讯如同读写文件般非常方便。CH372具有灵活省事的外置和内置两种双重固件模式,内置了USB通讯中的底层协议。在外置固件模式下,所有USB请求由外部单片机根据需要自行处理,从而实现符合各种USB类规范的设备。在内置固件模式下,本地端单片机只要负责数据交
36、换,端点0的所有事务由CH372自动处理默认,单片机程序非常简洁。3.1.3 硬件系统设计方框图16路模A/D转换器(TLC549)拟信号AT89C52微处理器电源D/A转换器(TLC5620)16路开关信号16路开开关输入(74LS244)关信号8路脉脉冲输入(8253)冲信号开关输出(74LS273)16路开关信号USB接口芯片(74LS273)计算机图2.1 总体设计方案模块关系方框图3.2 AT89C52单片机硬件结构AT89C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并
37、行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。(1)微处理器:该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。(2)数据存储器:片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。(3)程序存储器:由于受集成度限制,片内只读存储器一般容
38、量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。(4)中断系统:具有5个中断源,2级中断优先权。(5)定时器/计数器:片内有2个16位的定时器/计数器, 具有四种工作方式。(6)串行口:1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。(7)P0口、P1口、P2口、P3口为4个并行8位I/O口。P0口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可
39、作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入
40、(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1 接收低8 位地址。其P1.0和P1.1的第二功能如下表表3.1 P1.0和P1.1的第二功能引脚号功能特性P1.0T2,时钟输出P1.1T2EX(定时/计数器2)P2 口是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX
41、 DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能,P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。(8)特殊
42、功能寄存器:共有21个,用于对片内的功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。 由上可见,AT89C52单片机的硬件结构具有功能部件种类全,功能强等特点。5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。3.2.2 AT89C52最小应用系统设计AT89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用AT89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,由于集成度的限制,最小应用系统只能用作一些
43、小型的控制单元。其应用特点:(1)有可供用户使用的大量I/O口线;(2)内部存储器容量有限;(3)应用系统开发具有特殊性。3.2.3 时钟电路AT89C52虽然有内部振荡电路,但要形成时钟,必须外部附加电路。AT89C52单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在X1、X2引脚上外接定时元件,内部的振荡电路便产生自激振荡,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1、C2可在20pF到100pF之间取值
44、,如下图所示,我们选择晶振为12MHz,电容33pF。图 3.1 时钟电路3.2.4 复位电路 复位信号用于启动或者重新启动MPU/MCU,令其进入或者返回到预知的循环程序并顺序执行。一旦MPU/MCU处于未知状态,比如程序“跑飞”或进入死循环,就需要强行将系统复位。810就用于监视系统的电源电压,并在偏离正常范围时,即低于复位门限时,发出一个复位信号。对于IMP810,在电源上电、掉电或跌落期间,只要Vcc还大于1.1V,就能保证RESET输出电压不高于0.4V的低电平,确保复位信号有效。在Vcc上升期间RESET维持低电平,直到电源电压升至复位门限以上。在超过此门限后,内部定时器大约再维持
45、240ms后释放RESET,使其返回高电平。无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET引脚会立刻变低。IMP810提供的复位信号为高电平RESET,本系统采用AT89C51单片机,需要高电平有效的复位信号,这时应选用IMP810。单片机的复位需要由IMP810芯片来控制。复位电路如下图所示:图 3.2 复位电路3.3 A/D转换和D/A转换3.3.1 A/D转换:TLC549芯片介绍TLC549是8位A/D转换器,仅用芯片选择和输入/输出时钟的输入作数据,其中,I/O时钟的输入频率上限可达1.1MHz。它们设计成能通过3态数据输出和模拟输入与微处理器或外围设备串行接口。T
46、LC549提供了通常工作在4MHz且不需要外部元件的片内系统时钟,不但允许TLC549像许多软件和硬件所要求的那样工作,而且使得内部器件的操作独立于串行输入/输出的时序。内部系统时钟和I/O CLOCK一起可以实现对于TLC549为每秒40,000次转换的转换速度以及高速数据传送。TLC549的其他特点包括可在微处理器控制下工作的片内采样-保持电路或自动工作,通用控制逻辑,定标(scaling)以及与逻辑和电源噪声隔离的电路,具有差分高阻抗基准电压输入端、易于实现比率转换的高速转换器。整个开关电容逐次逼近转换器电路的设计允许以不大于0.5的误差在0-17s的时间范围内最低有效位(LSB)的精度
47、实现转换。TLC549C的工作温度范围为0至70,TLC549I的工作温度范围为-40至85。其特点如下表所:表3.2 TLC549C特点(1)8位分辨率A/D转换器(2)微处理器外设或独立工作差分基准输入电压(3)转换时间17s Max(4)每次 总存取与转换周期数,高达40000(5)片内软件可控采样 (6)总部可调整误差(Total Unadjusted Error) 0.5LSB Max(7)4MHz典型内部系统时钟(8)宽电源范围3V至6V(9)低功耗15mWMax(10)能理想地用于包括电池供电便携式仪表的低成本、高性能应用(11)引脚和控制信号与TLC540、TLC454 8位A/D转换器以及TLC154010位转换器兼容(12)CMOS工艺3.3.2 TLC549电路设计图 3.3 A/D 转换电路TLC549内