机车冲动检测仪USB DEVICE接口模块设计_第1页
机车冲动检测仪USB DEVICE接口模块设计_第2页
机车冲动检测仪USB DEVICE接口模块设计_第3页
机车冲动检测仪USB DEVICE接口模块设计_第4页
机车冲动检测仪USB DEVICE接口模块设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要密级: 题 目 机车冲动检测仪USB DEVICE接口模块设计学 院: 系 专业班级: 学生姓名: 学号: 指导教师: 职称: 起讫日期: 机车冲动检测仪USB DEVICE接口模块设计 摘要大家都知道我们国家是一个泱泱大国,国土面积是970万平方公里,两地之间的距离很大,因此当我们外出时,火车成为了我们出行的重要交通工具,是国家运输体系的骨干。无论是从铁路自身的发展还是从保持国民经济持续快速发展的需要看,加快铁路建设迫在眉睫。大家都知道列车运行过程中, 司机操纵是否平稳直接影响着 旅客乘车的舒适感, 因此, 测试其操纵水平对提高铁 路服务质量起着至关重要的作用。铁路上传统的方法 是采用/

2、冲动棒0的评测方法,根据一组木棒的倒伏 情况来判定冲动状况。该方法随机性较大、精度低, 没有可重现性, 不符合铁路高速化、现代化的发展趋势。本文介绍的智能列车冲动检测仪, 采用高性能的 加速度传感器采集数据,用PC机上的配套软件对其分析处理, 实时 显示列车运行时的加速度变化曲线,并给出冲动值,同时可以将数据通过 USB 发送到 PC机, 能够单机工作或与 PC 机联机工作,进行在线或离线冲动分析、 司机考核、报表打印等工作。本文第一步介绍了课题研究背景,列车冲动的危害、形成工况等,接下来介绍列车冲动检测仪的系统结构及其原理,紧接着介绍了USB固件芯片PDIUSBD12、加速度传感器ADXL3

3、45 以及MCU主芯片STC89C52RC,数据采集模块,数据传输模块和数据分析处理模块的电路连接以及软件程序。USB是一种新型的接口技术,由一些PC大厂商,像Intel、 Microsoft等为了解决日益增加的PC外部设备和有限的主板插以及端口之间的矛盾而制定的一种串行通信的标准。本文重点介绍了USB的产生、发展情况,USB拓扑结构,以及几大厂商的USB芯片种类,本系统所使用的是PHILIP公司生产的PDIUSBD12芯片,着重介绍了机车冲动检测仪的数据传输模块USB DEVICE接口模块的硬件电路以及它的工作原理,主要说明了PDIUSBD12芯片与单片机的硬件连接方式、软件的设计以及配套的

4、上位机软件的的设计。关键词:USB;PDIUSBD12;机车冲动IIIAbstractThe design of locomotive impulse detector usb device interface moduleAbstractIt is well known in our country is a large country, the train is the most important means of transportation, is the backbone of the national transportation system.Whether from the

5、development of the railway itself or from maintain sustained and rapid development of national economy needs to see, to speed up the railway construction is imminent.We all know the train operation process, whether the driver's operation directly influences the passengers ride comfort, therefore

6、, to test its control level to improve the quality of iron road service plays an important role.Railway in the traditional way is to use/impulse bar 0 evaluation method, according to a set of sticks of lodging situation to determine impulse.Randomness, low precision, this method can not reproducibil

7、ity, is not in conformity with the high speed railway, the development trend of modernization.Intelligent train impulse detector introduced in this paper, using the high performance of acceleration sensors to collect data, using PC suite for the analysis and processing, real-time display the acceler

8、ation curve of train running, and impulse value is given, at the same time, the data can be sent via USB to the PC, able to work standalone or online to work with a PC, online or offline impulse analysis, driver examination, report printing, etc.This paper first introduces the research background, t

9、rain impulse harm, formation conditions and so on, then introduces the system structure and the principle of train impulse detector, and then introduces the USB firmware chip PDIUSBD12, acceleration sensor ADXL345 main chip and MCU STC89C52RC, data acquisition module, data transmission module, the d

10、ata processing module and the circuit connection and software program.We know that the USB is a new interface technology in the field of application in the PC, it is some PC manufacturers, like Intel, Microsoft and so on in order to solve the increasing PC peripheral equipment and limited the mainbo

11、ard and the contradiction between the ports of a kind of serial communication standard.This paper mainly introduces the generation and development of USB, USB topology structure, the types of USB chip and several large manufacturers, this system is used by PHILIP company produces the PDIUSBD12 chip,

12、 emphatically introduced the locomotive impulse detector data transmission module, USB DEVICE interface module of hardware circuit and its working principle, mainly illustrates the PDIUSBD12 chip and MCU, the design of the software and hardware connection mode of PC software design.Keyword:usb;pdius

13、bd12;locomotive impulseV目录目录摘要IAbstractII第一章 研究背景- 1 -1.1 背景- 1 -1.2 冲动产生及检测- 1 -1.3 发展- 1 -第二章 系统简介- 2 -2.1 系统功能- 2 -2.2系统开发平台- 2 -第三章 系统整体设计- 4 -3.1 系统组成模块- 4 -3.2 系统实现原理及框图- 5 -第四章 系统硬件设计- 6 -4.1 数据采集模块加速度传感器ADXL345- 6 -4.2中央处理器-STC89C52RC- 7 -4.2.1 STC89C52RC概述- 7 -4.2.2 STC89C52RC工作的最小系统电路- 10

14、-4.3数据传输模块接口电路设计- 11 -4.3.1 USB概述- 11 -4.3.2 USB主芯片选择- 13 -4.3.3 PDIUSBD12芯片- 13 -第五章 系统软件设计- 20 -5.1软件设计开发工具- 20 -5.2软件设计- 21 -5.2.1下位机的软件设计- 21 -5.2.2 上位机软件设计- 24 -第六章 系统调试- 25 -6.1 硬件调试- 25 -6.2 软件调试- 25 -6.2.1 下位机软件调试- 25 -6.2.2 上位机软件调试- 26 -第七章 结论- 28 -参考文献- 29 -致谢- 31 -VII第一章 研究背景第一章 研究背景1.1 背

15、景随着国家的日益壮大,社会的飞速发展,我们自身经济水平的提高,外出旅行成了人们生活中比较常见的一种现象。人们现在外出旅行首先得选择出行的交通方式,像飞机,火车,轮船等。现在,人们在长途旅行交通工具上也有了越来越多的选择。国家建设了许多的高速公路,我们现在乘坐长途客车外出旅行也越来越方便了,再加上现在的飞机票的的价钱也不再让人望而生畏,到达了大家所能接受的范围。以上种种都对铁路运输的地位构成了巨大的威胁。铁路部门面对铁路建设所面临的挑战,需要开始反思,继续发展完善,以谋取能够在现在竞争激烈的市场中保证自己的优势地位。现在的人们不但对外出旅行的交通工具提出更加便利、更加快捷等要求,而且旅客朋友们对

16、交通工具的乘坐环境及舒适度也提出了要求,所以如何提高速度与舒适性成为铁路建设方面所要解决的问题。判断列车在运行的时候的平稳性的一个重要指标是舒适度,列车冲动不仅仅影响了旅客朋友们乘车的舒适性,更加糟糕的情况是巨大的冲击会给我们自身带来巨大的伤害。1.2 机车冲动的产生以及检测我们都知道机车冲动发生的具体因素有很多,其中就有车辆本身结构设计问题、制动方式以及司机操纵等。将硬件上的原因排除在外的话,机车冲产生的最主要的原因是司机对列车不正当的操作。 列车在加速、减速、制动、启动和停止的这些时候产生的纵向冲击,大大的影响了旅客乘车的舒适程度。因而冲动指标就成为了认定司驾驶水平的重要的根据。目前的现状

17、是,我们针对纵向冲击采取的检验的手段是“冲动棒”,它具有的优点是操作简单,方便,而且它是从定性的角度给出了机车冲动大概的等级。但是这种方法只能给出大概的等级,却没有办法给出具体的数据,没有指出量化标准,而且有很大的偶然性和随机性。在真正的测试过程中,经常会发生小棒没有倒,然而大棒却倒了的结果。那么我们怎么才能获得准确的纵向冲击,进而给出衡量司机水平的量化标准,从而建立一个旅客乘坐的舒适度和冲击的数学模型并且能够获得一些评价,成为了目前的一个重要课题。1.3 发展社会在不断地进步,人也在不断地进步,我们在不断地创新,创造,从而使得电子,计算机得到了巨大的发展,各种智能仪器在许多方面都得到了充分的

18、运用,并且目前的仪器仪表趋向于虚拟化和数据采集系统PC化也成为了计算机技术发展的一种趋势。我们现在所要研究的新型的机车冲动检测仪就是在这样的背景下应运而生的。- 2 -第二章 系统简介第二章 系统简介2.1 系统功能首先从机车冲动检测仪获得数据,接下来由USB DEVICE接口,将机车相关的数据,如运行时间,冲动加速度等信号,实时发送给上位机并显示数据列表以及趋势曲线。2.2系统开发平台本设计需要用到的软件有:keil C软件、 Visual C+软件、Altium Designer软件、STC-ISP串烧软件、PC机。Keil C51是由美国Keil Software公司

19、推出的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Microsoft VisualC+是Win32环境程序 ,它是由Microsoft公司推出的开发,面向对象的可视化集成编程系统

20、。它具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,能够通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。Visual C+是计算机高级语言C+比较好用的编程工具,它是属于一种可视化的计算机语言。Altium Designer这款软件它是Altium公司开发出来的,这是一款针对电路设计的软件,它的优势是能进行概念设计,顶层设计,对输出的生产数据包括在这个过程中的分析验证和设计数据能够进行很好的管理。新版本的Altium Designer 不单单只是具有绘制PCB图的功能,现在的新版本具有SCH设计、SC

21、H仿真、PCB设计、Auto Router和FPGA设计、嵌入式软件开发等强大的功能,它现在是把PCB当作是整个设计的核心部分。它把项目管理方式、原理图和PCB的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起。上位机的软件是我们通过编程实现的,操作简单方便,具有很高的可靠性,具有非常好的人机交互界面等特点底下页码2,和前一页一样。- 3 -第三章 系统整体设计第三章 系统整体设计3.1 系统组成模块机车冲动检测仪的整个系统由数据采集模块、数据传输模块及数据分析处理模块三部分组成。数据采集模块: ADXL345是数字式3轴加速度计,具有很高的分辨率,很广的测量的范围。它输出的

22、数字量数据是一十六位的二进制数的补码的形式,它的访问形式有两种分别是SPI和IIC。这款芯片它十分的贴合我们的移动设备。不但可以测量晶体加速度:我们所熟知的重力加速度;也可以测量动态的加速度像运动或冲击 产生的加速度;它也能够测量很小范围的倾角的变化。它还具有一个优点那就是另外ADXL345采集的数据不需要经过AD转换后才能到单片机。数据传输模块这个模块主要是下位机单片机通过USB将数据传输给上位机PC机。我们在这一部分所要用到的器件是PDIUSBD12,我将其简称为D-12,D-12这款USB器件具有性能优化的特点,它经常被运用在微型的控制器的并行接口通信的场合,具有良好的DMA传输。我们通

23、常将其进行模块化处理,能够使我们的USB接口选择最适合的微型控制器,能够大大的降低我们的固件成本降低,也大大的减少了我们的开发时间、降低了风险,减少了我们的开发的成本。从而为我们开发效率,高速度的USB外围设备提出了宝贵的意见。D-12百分之百的符合USB2.0规范,能够满足大部分的设备的设计,像打印,通信,存储这方面的设备。所以, D-12可以很好地运用在外设上,像我们日常用的相机,打印机等。数据分析处理模块该模块由上位机完成,PC机上配套的软件实现运行时间,冲动加速度等信号的显示,走势曲线的显示。PC机软件设计通过Visual C+编写,包括USB识别,数据处理,显示,画图,具有良好的人机

24、交互界面,便于使用,可靠性高等优点。3.2 系统实现原理及框图由于本文是针对已有的机车冲动检测仪,设计USB设备接口,实现机车相关数据,如运行时间,冲动加速度等信号,实时通过上位机USB接口读取并显示数据列表和趋势曲线。因此本文重点介绍的是机车冲动检测仪的数据传输模块,因采集模块要用到的加速度传感器采集的是数字信号,所以不需要用AD转换后进行传输,所以在这里我们使用ADXL345来产生加速度信号,其产生的信号通过单片机的初步处理,由USB驱动芯片PDIUSBD12传输给PC机上的上位机软件实现显示,处理等。系统整体结构框图如下所示传感器ADXL345ADX345MCU主芯片AT89C52USB

25、驱动芯片PDIUSBD12上位机PC 图3-1本设计的框图如上通过系统结构框图我们知道了,整个系统的工作原理是:首先上位机发出数据采集命令,紧接着由USB传送给下位机单片机启动采集程序,开始采集,下面的工作是我么用下位机将我们获得的数据通过usb传送上位机软件,从而由它来进行处理和显示。- 5 -第四章 系统硬件设计第四章 系统硬件设计4.1 数据采集模块加速度传感器ADXL345ADXL345是数字式3轴加速度计,具有很高的分辨率,很广的测量的范围。它输出的数字量数据是一十六位的二进制数的补码的形式,它的访问形式有两种分别是SPI和IIC。这款芯片它十分的贴合我们的移动设备。不但可以测量晶体

26、加速度:我们所熟知的重力加速度;也可以测量动态的加速度像运动或冲击 产生的加速度;它也能够测量很小范围的倾角的变化。它还具有一个优点那就是另外ADXL345采集的数据不需要经过AD转换后才能到单片机。芯片的优点如下:超低功耗、用户可选的分辨率。10位固定分辨率。FIFO技术。单振/双振检测 。活动/非活动监控 。自由落体检测、2.03.6伏的电压。输入/输出口的电压具有良好的选择范围是从1.7到vs以及SPI和I2C数字接口 。它的中断模式十分的灵活。我们可以选择带宽和测量的范围 等。图4.1 ADXL345引脚分布4.2处理器-STC89C52RC4.2.1 STC89C52RC概述STC8

27、9C52RC是宏晶科技推出的,它是一款新型单片机,具有高速/低功耗/超强抗干扰优点,这款芯片的单片机完全兼容了8051单片机的代码, 我们有12个时钟周期和6个时钟周期供我们选择(1) 芯片的特点1增强型8051单片机,有12个时钟周期和6个时钟周期供我们选择1. 可选择的工作电压2. 宽广的工作频率范围3. 我们可以使用的ROM有8K4. 片上集成512字节的RAM5. 32个I/O口:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。6. 下载程序是方便7. 具有看门狗功能8. 有3个定时/计数器(2)芯片的结

28、构图如图4-2 图4-2 89C52RC的结构图通过上图的图表我们知晓了:STC89C52RC主要由CPU中央处理器、存储器、I/O组成。(3)STC89C52RC的功能描述它是一款新型单片机,具有高速/低功耗/超强抗干扰优点,这款芯片的单片机完全兼容了8051单片机的代码, 我们有12个时钟周期和6个时钟周期供我们选择,在它的片内有4K的ROM,数据的保存时间长。芯片可以构成单片机最小系统,一个方面占有的位置小了,性能有了很大的提升,降低了系统的成本。当我们的代码的大小小于4K是,我们芯片的4个P口全都可以供给我们使用,它可以提供给我们5伏的电压让我们来编译程序,它还具有一个优点那就是我们烧

29、录程序的时间很短,是以前单片机的百分之一,而且能够更好的保护器件,提高器件的使用寿命,能够更好的运用在嵌入式这个领域当中。它的工作电压范围比较广,当芯片处在全静态的工作状态时,工作频率宽在0Hz24MHz之间,与以前的单片机相比更加的灵活了,而且系统能够调节运行的速度。芯片为了保证程序以及系统不被别的冒牌的山寨货给模仿去,它的内部具有三级加密。P0它是一个是三态双向口,记住不是准三态双向口,它也就是我们所说的数据总线口,我们通过这个口我们可以直接对外部存储器进行读/写操作。(4)STC89C52RC引脚功能及说明图4-3是芯片的引脚图 图4-3芯片引脚图VCC是第四十引脚,功能是提供电源电压;

30、GND是第二十脚,功能是接地;P0口是第三十二脚到三十脚,P0它是一个是三态双向口,记住不是准三态双向口,它也就是我们所说的数据总线口,我们通过这个口我们可以直接对外部存储器进行读/写操作。当我们把P0口作为I/O口时,我们应该给每个口加上上拉电阻。P1口是第一脚到第八角,它是一个准双向口,内部带有上拉电阻,当我们把它作为输入输出口时不需要额外加上拉电阻。另外,P1.0和P1.1还可以作为定时器/计数器2外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体的就看下表吧!我们在对Flash ROM编程和程序校验时,P1接收低的8位地址P2口是第二十一脚到二十八脚

31、,它是一个准双向口,内部带有上拉电阻,当我们把它作为输入输出口时不需要额外加上拉电阻。P3口是第十脚到第一十七脚,它的每个脚除了作为普通的I/O口,还具有其他的功能。P3口的第二功能如表4-4所示。表4-4 P3口的第二功能端口引脚功能P3.0RXD(串口输入端)P3.1 TXD(串口输出端)P3.2INT0(外部中断0请求输入端,低电平有效)P3.3INT1(外部中断1请求输入端,低电平有效)P3.4T0(定时/计数器0计数脉冲输入端)P3.5T1(定时/计数器1计数脉冲输入端)P3.6WR(外部数据存储器写选通信号输出端,低电平有效)P3.7RD(外部数据存储器读选通信号输出端,低电平有效

32、)RESET是芯片的第九脚,它的作用是复位信号输入端,它是高电平有效。:PSEN是芯片的第二十九脚,它是程序存储允许输出信号端。ALE/PROG是芯片的的第三十脚,他表示的是地址锁存允许信号端。EA/Vpp是芯片的第三十一脚,它表示的是外部的ROM地址允许输入端/固化编程电压输入端。 C89C52RC芯片程序存储器有三级硬件加密,能够有效地保证系统不被仿制和软件不被复制。工作模式:STC89C52RC它具有两种工作的方式,其中的一种是空闲(等待、待机)的工作方式,另外一种是掉电(停机)的工作方式。空闲模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内

33、部RAM和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。掉电模式是VCC电压低于电源下限,振荡器停止振动,CPU停止执行指令。该芯片内RAM和特殊功能寄存器值保持不变,直到掉电模式被终止。只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位掉电模式可被终止。4.2.2 单片机最小系统电路(1)时钟电路图4-4 时钟电路(2)复位电路图4-5 复位电路 4.3数据传输模块接口电路设计4.3.1 USB概述USB它的全名是Universal Serial Bus,它是外设和我们自己的计算机连接的一种新的接口,它是具有通用性的串行总线接口。在它被推出来之

34、前,我们的外设要是想要和计算机进行通信我们使用的是计算机本身给我们提供的接口,像ISA ,PCI等。但是它们总是有这样那样的缺点,给我们的使用带来了很大的不便,为了给我们广大的使用者解决摆在我们面前的尴尬,给我们一个舒适,便捷的使用环境,节约我们大家的时间,USB出现了,它是一种快速、双向、同步、廉价、并支持热插拨功能的串行接口。USB是近年来应用在PC领域的新型接口技术是一些PC大厂商,如Microsoft、 Intel等为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准。自1995年在Comdex上亮相以来至今已广泛地为各PC厂家所支持。现在生产的PC几乎

35、都配备了USB接口Microsoft的Windows98、 NT以及 MacOS、Linux、FreeBSD等流行操作系统都增加了对USB的支持。USB的主要优点:(1)它具有使用方便,许热插拔的优点。(2)运行传输速度快。(3)连接灵活。(4)独立供电。USB是一种新的接口,它要通信的话那么也应该有它自己的通信标准,那么我们接下来就来看看它的通信协议吧。对于我们来说USB系统,就是把USB连接到电脑上,但是对于开发人员来说,USB系统可以分为三个层次:功能层、USB设备层、USB总线接口层,下面这个图是它的分层通信机制。图4-6 USB通信层次模型由图,一个USB设备由三个功能模块组成:US

36、B总线接口、USB逻辑设备、功能单元。USB总线接口是USB设备中的串行引擎(SIE);USB逻辑单元被看作是一个端点的集合;功能单元客户软件被看作接口的集合。USB传输类型包括批量传输、同步传输、中断传输和控制传输,每种传输类型的传输速度、可靠性以及应用范围都不同。控制传输可靠性是最高的,但速度最慢;同步传输速度快,满足实时性,但可靠性低。在具体应用中,端点传输类型可根据传输速度和可靠性选择。在USB通信协议中,主机取得绝对主动权利,设备只能是“听命令行事”,通过一定的命令格式(设备请求)完成通信。USB设备请求包括标准请求、厂商请求和设备类请求。设备的枚举是标准请求命令完成的;厂商请求是用

37、户定义的请求;设备类请求是特定的USB设备类发出的请求,例如海量储存类、打印机类和HID(人机接口)类。固件编程中设备请求必须遵循一定的格式,包括请求类型、设备请求、值、索引和长度。4.3.2 USB主芯片选择现在很多公司生产USB,我们目前是用的USB控制器分为两类,一种是MCU集成在芯片内部,像,等。另一种就是纯粹的接口芯片像,等。前一种芯片成本比较高,所以在我们这个设计中我们使用的是。4.3.3 PDIUSBD12芯片(1)芯片特点和内部结构我们在这一部分所要用到的器件是PDIUSBD12,我将其简称为D-12,D-12这款USB器件具有性能优化的特点,它经常被运用在微型的控制器的并行接

38、口通信的场合,具有良好的DMA传输。我们通常将其进行模块化处理,能够使我们的USB接口选择最适合的微型控制器,能够大大的降低我们的固件成本降低,也大大的减少了我们的开发时间、降低了风险,减少了我们的开发的成本。从而为我们开发效率,高速度的USB外围设备提出了宝贵的意见。D-12百分之百的符合USB2.0规范,能够满足大部分的设备的设计,像打印,通信,存储这方面的设备。所以, D-12可以很好地运用在外设上,像我们日常用的相机,打印机等。它的挂起时的低功耗满足电源管理设备和ACPI onNOW的要求,同样的道理,lazyclock输出也满足。D-12还集成了像SoftConnect GoodLi

39、nk可编程时钟输出、终端电阻等特性,它大大的降低了成本,使得USB的功能得到了丰富,发展。主要特性:符合USB1.1协议规范适应大多数设备类规范的设计完全自动 DMA操作集成了320B的多配置FIFO存储器在挂起时有可控制的LazyClock输出可通过软件控制USB总线连接SoftConnect在USB传输时有闪亮的USB连接指示灯GoodLink时钟频率输出可编程内部上电复位和低电压复位电路有SO18和TSSOP28封装能在-40+85°C工业级工作双电压工作(3.3+0.3V)或扩大的5V电压范围3.65.5V多中断模式,方便块传输和同步传输内部结构图4-7 PDIUSBD12内

40、部结构框图模拟收发器,集成的收发器直接通过终端电阻与USB电缆接口电压调整器,片上集成的1个3.3 V电压调整器为模拟收发器供电,也提供连接到外部1.5k上拉电阻的输出电压。作为选择PDIUSBD12提供集成1.5k上拉电阻的SoftConnect技术PLL,片上集成1个648MHz的倍频PLL(锁相环)。允许使用6 MHz的晶振。EMI也由于使用低频晶振而减小,PLL的工作不需要外部器件。位时钟恢复,位时钟恢复电路用4倍过采样原理从输入的USB数据流中恢复时钟,能跟踪USB规范中指出的信号抖动和频率漂移SoftConnect,高速设备与USB的连接是靠把D+通过1个1.5k的上拉电阻接到高电

41、平来建立的。在PDIUSBD12中,这个上拉电阻是集成在芯片内的,缺省是没有连接到VDD,这个连接是靠外部MCU发一个命令来建立的,这使得系统微处理器可以在决定建立USB连接之前完成初始化 重新初始化USB总线连接也可以不用拔掉电缆来完成。 GoodLink是靠一个引脚接发光二极管实现的,在USB设备枚举时LED指示灯将立即闪亮,当PDIUSBD12被成功枚举并配置时,LED指示灯将会始终亮,经过PDIUSBD12的USB数据传输过程中,LED将一闪一闪,传输成功后LED熄灭。在挂起期间,LED熄灭,这种特性可以使我们知道PDIUSBD12的状态,方便电路调试。存储器管理单元,MMU和集成RA

42、M。MMU和集成RAM能缓冲USB(工作在12Mb/s) 数据传输和微控制器之间并行接口之间的速度差异,这允许微控制器以自己的速度读写USB包。并行和DMA接口,并行接口容易使用,速度快并且能直接与主微控制器接口。对于微控制器,PDIUSBD12可以看成是一个有8位数据总线和1位地址线的存储设备,PDIUSBD12支持多路复用和非多路复用的地址和数据总线,在主端点(端点2)和局部共享存储器之间也可使用DMA(直接存储器存取)传输,它支持单周期模式和块传送模式两种DMA传输。(2)芯片引脚说明图4-13 PDIUSBD12的引脚图表4-5 引脚说明图4-8 PDIUSBD12引脚分布表4-2 引

43、脚说明引脚号符号说 明1469DATA<0>DATA<7>8位双向数据5GND地10ALE地址锁存允许,在多路复用地址/数据总线时,ALE 下降沿用于锁存地址信息,独立地址/数据总线时,将ALE永久接地11CS_N片选,低电平有效12SUSPEND芯片进入挂起状态13CLKOUT可编程时钟输出14INT_N中断输出 低电平有效15RD_N 读选通 低电平有效16WR_N 写选通 低电平有效17DMREQ DMA请求18DMACK_N DMA响应 低电平有效19EOT_N DMA传输结束,低电平有效 ,另一个功能是VBUS感知器20RESET_N复位 低电平有效 异步 有

44、片内上电复位电路 该引脚可以接高21GL_N GoodLink 发光二极管指示器 低电平有效22XTAL1晶振连接1,6 MHz23XTAL2晶振连接2,6 MHz24VDD正电源,4.05.5 V,让芯片工作在3.3V,将3.3 V电压加到VDD和VOUT3 .3两个引脚上25D-USB D-数据线26D+USB D+数据线27VOUT3.3 3.3 V输出28A0地址位 A0_1 选择命令,A0_0 选择数据,在多路复用地址和数据总线配置时,这一位将不考虑,应接高电平(3)芯片与STC89C52RC的连接图4-9 数据手册推荐的连接图图4-10 本设计采用的连接图将8根DATA引脚与STC

45、89C52RC的P0口相连。因为P0口没有内置的电阻,我们需要加上拉电阻。接了上拉电阻后,DATA口为0时电流不能超过2mA。这里使用的是5V的电源,当电流为2mA时,电阻为2.5k。因此选择上拉电阻大于2.5k就可以了。本设计选择了10k的电阻。由于使用独立地址线A0,所以不需要使用ALE引脚,直接将ALE接地,CS_N直接接地。SUSPEND引脚我们直接把它连接到低电平即可。CLKOUT引脚我们没有使用,悬空就行了。INT_N是中断请求信号,漏极开路输出的,需要外接上拉电阻。把它接到单片机的INT0上,既可以软件查询,也可以使用中断。由于STC89C52RC的INT0内部有上拉电阻,所以不

46、用外接。RD_N接到单片机的RD, WR_N接到单片机的 WR。DMREQ是DMA中断请求信号,这里没有使用DMA功能,所以该引脚悬空即可。DMACK_N和EOT_N直接用1k的上拉电阻将其置为高电平。EOT_N我们把它接高电平让我们的芯片进入工作状态。RESET_N表示复位,D-12芯片内部有复位电路,我们给它一个1K的电阻,拉高就行了。GL_N是芯片工作的指示灯。当芯片处于活动状态时,GL_N输出低电平。我们通常给它接一个二极管,我们可以知道芯片的工作情况和USB数据传输情况,发光二极管经1k限流电阻连接到电源。XTAL1和XTAL2接6MHz晶体,外接两个22pF左右的起振电容到地。D+

47、和D-是USB差分数据线。- 18 -第五章 系统软件设计第五章 系统软件设计本系统进行软件设计包括下位机软件设计和上位机软件设计,下位机软件设计我们可以使用的语言有很多,像汇编,C语言等。上位机设计,在这里选择Visual C+来编写上位机程序。至于下位机程序,因为C语言较汇编语言编写起来要简单,可读性强,易于移植。因此下位机程序我们使用C语言。下面简单介绍本次软件设计的编程工具。5.1软件设计开发工具在软件设计开发这方面我们使用了KEIL C51和visual C+这两款软件。Keil C51这款软件它兼容单片机C语言软件开发系统,如果我们将它和汇编作比较的话,那么C语言在功能上

48、、结构性、可读性、可维护性上有明显的优势,因而易学易用。 而且这款软件具有它自己的特点,如丰富的库函数,功能强大的集成开发调试工具,全Windows界面,生成目标代码效率很高,在开发大型软件时更能体现高级语言的优势。Microsoft VisualC+是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它有很多的优点像程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,在这我们就不一一列举了。所以我们把VisualC+作为上位机软件设计的开发工具。5.2软件设计数据要传输,必须由上位机对下位机发出命令,单片机根据接

49、收到的命令,然后做出回应,接下来把所得的结果送给上位机,我们的上位机再把我们得到的数据在图上显示出来。下面是这个过程的流程图:图5-1 系统整体程序流程图5.2.1下位机的软件设计下位机的程序流程图中包括单片机和ADXL345的通信流程图,单片机和USB设备通信流程图。系统初始化检测复位标志 有复位标志 无复位标志错误处理系统自检 错误主循环发送创建文件命令读取并存储数据等待响应 无响应 图5-2 ADXL345和单片机的通信流程图那么下面我们介绍一下单片机和USB设备芯片的通信,它由三部分组成:第一,初始化单片机和所有的外围电路包括PDIUSBD12;第二,主循环部分,其任务是可以中断的;第

50、三,中断服务程序,其任务是对时间敏感的,必须马上执行。单片机与PDIUSBD12的通信主要是靠单片机给PDIUSBD12发命令和数据来实现的,PDIUSBD12的命令字分为三种:初始化命令字、数据流命令字和通用命令字。PDIUSBD12给出了各种命令的代码和地址。单片机先给 PDIUSBD12的命令地址发命令。根据不同命令的要求再发送或读出不同的数据。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可。当我们编程时需要注意那些呢?(1)单片机的中断应设置为电平触发,中断后一定要读上次传输状态寄存器 命令40-45H ,以清除中断寄存器中的中断标志,这样PDIUSBD12的中

51、断输出才能变回高电平,这一点非常重要。(2)在接收到Setup包后,一定要调用ACK setup命令重新使能端口0。(3)在向IN端点写完数据后,一定调用ValidateBuffer(命令FAH)指明缓冲区中的数据有效可以发送到主机。(4)当读完数据后,一定调用Clear Buffer(命令 F2H),以保证可以接收新的包。(5)可以通过调用Read Chip ID(命令FDH)检查PDIUSBD12是否工作。该命令要读两个字节数据。USB初始化过程为: Set Address Enable Set Endpoint Enable(此时LED亮) Disconnect delay(12s) C

52、onnect(即用43h参数调用Set Mode此时LED灭)(6)Read Interrupt Register完成初始化工作后,就可作其它的前台工作了,并在前台判断是否有Setup包(通过一个变量,当中断服务程序检测到有Setup包时,设置该变量)。然后执行响应的控制传输。在调试USB单片机程序时,还要特别注意Windows对USB设备的枚举顺序:(1)GetDeviceDescriptor。主机主要对Length域感兴趣,发送内容一定要正确,特别是第2字节type一定为0x01,即Device,否则,主机将不响应或者再重复2次后放弃。可检查一下对EP0的RX、TX的设置次序。(2)Set

53、Address。一般为02或03。(3)连续3次GetDeviceDescriptor,读取全部设备描述符,一般为18B,分为多次传输,如果不正确主机将不响应或重复2次后放弃。(4)GetConfigDescriptor,注意第2字节一定为0x02,即config。(5)GetStringDescriptor,根据在设备描述符中是否有String索引而定。一般先读取LanguageID,再读取productstring。(6)读取全部ConfigDescriptor,次数根据描述符的大小决定(端点个数不同描述符大小不同),如果不正确,主机将不响应或再重复2次后放弃。如果以上步骤都正确,主机将找

54、到新设备提示安装驱动程序,否则找到未知设备不可用。安装驱动程序后,以后的每次PlugIn,枚举次序与以上步骤略有不同,之后会有SetConfiguration、GetConfiguration和GetInterface等调用。5.2.2 上位机软件设计针对这一块,我们都知道我们在编写应用软件前,一定要了解Visual C+动态连接库的使用,这是值得我们注意的方面。图5-3 上位机的程序流程图上位机最难部分就是识别USB设备,而上位机的操作界面的设计编程却不是那么困难,只需要将下位机采集的数据进行某些运算处理,然后调用显示子程序就可以实现了,这里还需要显示走势曲线,这就要求有坐标图像处理。- 23 -第六章 系统调试第六章 系统调试前面我们介绍了也了解了整个设计,我们需要根据我们的理论设计,将它做出来,在很多时候,理论上行的通,在实际中不一定有用,那么,这就需要我们一步步的调试了,从而做到理论与实践相结合。6.1 硬件调试当我们进行硬件调试时,我们需要注意一下这几点(1) 由于PDIUSBD12的数据口是与STC89C52RC的P0口相连接的,当P0口作为I/O口时, 必须要接上拉电阻,这里上拉电阻为10k。 (2)晶振问题,由于单片机和USB芯片都要用到晶振,但是两者使用的频率不一样,单片机为22.1184MHz,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论