




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学毕业论文内蒙古科技大学本科生毕业设计毕业论文基于usb接口的电子时钟设计realization of realtime clock based on usb interface 目 录 前 言第一章 概 述第二章 硬件介绍1、usb总线概述2、ds12c887的特点及引脚说明3、usb 接口芯片ch375的原理4、串行静态显示电路原理说明5、端对端的数据传输原理第三章 设计方案第四章 软件设计1、计算机端软件2、单片机端软件第五章 结 论参考文献及资料摘 要在智能化仪器仪表中,往往需要走时准确的电子时钟为多通道数据采集、定时及实时控制提供精确的时间基准和同步信号。目前,实现实时时钟的方法主要有软件时钟(由软件计时实现) 、硬件时钟(由硬件时钟芯片实现) 、gps 时钟(由全球卫星定位系统提供) 等。软件时钟具有硬件开销小、成本低、外围电路简单等优点。但由于时钟是靠软件延时实现的,运行过程中不仅要占用大量的cpu 时间,而且计时精度低、走时误差较大,在智能化仪器仪表中很少采用。gps(全球卫星定位系统) 提供的实时时钟信号虽然具有相当高的精度,但由于gps 产品成本高,在普通智能化仪器仪表中很少采用。本文介绍一种较新的实时时钟芯片ds12c887 及其与at89c51 单片机组成的电子时钟。以单片机为核心的测控系统经常需要各种各样的通信方式实现上、下位机之间或主机与外设之间的通信。对于单片机应用系统中通信的要求是可靠性高、速度快、应用简单、连接方便。在有些特殊要求的场合还会有些特殊的要求,在本文中,我运用了南京沁恒电子有限公司出品的usb总线的通用设备接口芯片ch375,与本地端的单片机通信就如同读/写硬盘文件。考虑到目前很多新型的单片机已经集成了各种各样以往需要外扩的功能器件,本设计在选材时尽量考虑那些尚未集成到单片机中的功能器件,如led驱动选用74ls164。关键词:usb 电子时钟 ds12c887 ch375in the design of some intelligent instrumentation, it is often a necessary to provide accurate real time clock for multi-channel data acquisition and timing. also, provide benchmarks and time synchronization signal for accurate real-time control is in common use . at present, the real-time clock may be realized by software-clock (time realized by software), hardware-clock (time realized by clock chip), gps-clock (time from the global satellite positioning system) and so on. software-clock has advantage of low cost, simple external circuit. however, as the clock is achieved by software delay, the operating process may use a lot of cpu time, and it is inaccurate ,it is rarely used in the design of intelligent instrumentation. it may be accurate for gps (global positioning system) to provide real-time clock signal, however, as the high cost of gps product,it is rarely used in ordinary intelligent instrumentation. this paper presents a relatively new clock chip , ds12c887,and an electronic clock composed by it. in many measuring and control systems often need a variety of communications means, between mainframe and peripherals.many mcu application systems for communication requires of high reliability,high speed and can be use simply .in this paper , i used the generic usb device interface chip ch375 which produced by nanjing qin hang electronics co ltd. with this interface, the mcu communication then just like reading / writing disk document. considering the present tendency, many of the new mcu has integrated a variety of functional devices, i choose the devices which have not intergrated into single chip microcomputer as far as possible .so i select 74ls164 todrive led. keywords: usb electronic-clock ds12c887 ch375第一章 概述在目前许多的单片机应用系统中,通常进行一些与时间有关的控制测量,根据测控对象的不同,可以用两种方法来进行时间控制: 一是利用单片机内部的定时计数器,二是利用单片机外围的实时时钟芯片( )。前者利用单片机内部的定时器,所以无需再接外围芯片,只需通过软件编程就可以实现对时间的控制和测量,具有性价比高、接口电路等优点,但时间控制精度受到晶振频率和所选择的数据传输方式等方面的影响,从而导致精度不高,所以常用于测控精度不是很高的应用控制系统中;而后者是利用外部实时时钟芯片,虽具有接口电路相对复杂等缺点,但是它具有定时精度高、掉电保护、功能强大、使用灵活和误差较小等优点,日益受到用户的青睐。本文就以 为例,详细介绍了实时时钟芯片在单片机应用系统中的应用。不同的实时时钟芯片具有不同的功能,现在的大多数时钟芯片具有时钟日历闹钟两种功能,如。但是在现在的测控应用系统中,只是具有这两种功能已远远不能满足用户的需求,所以现在许多芯片增加了方波输出功能,使实时时钟芯片的应用更具广泛。 具有时钟、闹钟和方波输出的功能。它具有功能强大、编程简单和定时精确较高等优点特别适用现在的测控系统。所以掌握 与单片机的接口及编程技术,把它嵌入到多样化的应用环境中去,有较大的实用价值。另外,为了实现上位机与单片机的通信,本设计采用了南京沁恒的usb接口芯片ch375,它是一个u s b 总线的通用接口芯片,支持host 主机方式和slave 设备方式。在本地端,ch375 具有8 位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机系统总线上。在usb 主机方式下,ch375 还提供了串行通信方式,通过串行输入、串行输出和中断输出与单片机相连接。ch375 的usb 主机方式支持各种常用的usb 全速设备,外部单片机可以通过ch375按照相应的usb协议与usb设备通信,用户无需编写驱动程序, ch375内置有usb 通讯中的底层协议, 完全满足usb1.1 标准。在本地端, 单片机对ch375 的操作是采用命令加数据的i/o 操作方式, 任何操作都是先发命令给ch375, 然后执行数据输入输出。ch375 接收到上位机发送的数据或者发送完给上位机的数据后, 以中断方式通知单片机。将ch375 芯片的驱动程序、动态链接库拷贝到上位机中, 利用ch375 动态链接库dll 提供的api 函数对其进行操作, 对usb 设备的通信就几乎和访问本地硬盘中的文件差不多了。第二章 硬件描述2.1 usb总线概述usb是英文universal serial bus的缩写,中文含义是“通用串行总线”。它是一种应用在pc领域的新型接口技术。早在1995年,就已经有pc机带有usb接口了,但由于缺乏软件及硬件设备的支持,这些pc机的usb接口都闲置未用。1998年后,随着微软在windows 98中内置了对usb接口的支持模块,加上usb设备的日渐增多,usb接口才逐步走进了实用阶段。这几年,随着大量支持usb的个人电脑的普及,usb逐步成为pc机的标准接口已经是大势所趋。在主机(host)端,最新推出的pc机几乎100%支持usb;而在外设(device)端,使用usb接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。usb设备之所以会被大量应用,主要具有以下优点: 1、可以热插拔。这就让用户在使用外接设备时,不需要重复“关机将并口或串口电缆接上再开机”这样的动作,而是直接在pc开机时,就可以将usb电缆插上使用。2、携带方便。usb设备大多以“小、轻、薄”见长,对用户来说,同样20g的硬盘,usb硬盘比ide硬盘要轻一半的重量,在想要随身携带大量数据时,当然usb硬盘会是首要之选了。3、标准统一。大家常见的是ide接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了usb之后,这些应用外设统统可以用同样的标准与pc连接,这时就有了usb硬盘、usb鼠标、usb打印机,等等。4、可以连接多个设备。usb在pc上往往具有多个接口,可以同时连接几个设备,如果接上一个有4个端口的usb hub时,就可以再连上4个usb设备,以此类推,尽可以连下去 (注:最高可连接至127个设备)。目前usb设备虽已被广泛应用,但比较普遍的却是usb1.1接口,它的传输速度仅为12mbps。举个例子说,当你用usb1.1的扫描仪扫一张大小为40m的图片,需要4分钟之久。 这样的速度,让用户觉得非常不方便,如果有好几张图片要扫的话,就得要有很好的耐心来等待了。 用户的需求,是促进科技发展的动力,厂商也同样认识到了这个瓶颈。这时, compaq、hewlett packard、intel、lucent、microsoft、nec和philips这7家厂商联合制定了usb 2.0接口标准。usb 2.0将设备之间的数据传输速度增加到了480mbps,比usb 1.1标准快40倍左右,速度的提高对于用户的最大好处就是意味着用户可以使用到更高效的外部设备,而且具有多种速度的周边设备都可以被连接到usb 2.0的线路上,而且无需担心数据传输时发生瓶颈效应。所以,如果你用usb 2.0的扫描仪,就完全不同了,扫一张40m的图片只需半分钟左右的时间,一眨眼就过去了,效率大大提高。而且,usb2.0可以使用原来usb定义中同样规格的电缆,接头的规格也完全相同,在高速的前提下一样保持了usb 1.1的优秀特色,并且,usb 2.0的设备不会和usb 1.x设备在共同使用的时候发生任何冲突。另外,在软件方面,windows是完整的支持usb 1.x,对于usb 2.0,系统可以认出,而且能够正常工作。 2.2 ds12c887的特点及引脚说明2.2.1器件特性ds12c887实时时钟芯片功能丰富,可以用来直接代替ibm pc上的时钟日历芯片ds12887,同时,它的管脚也和mc146818b、ds12887相兼容。 由于ds12c887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题; ds12c887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用am和pm区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用bcd码表示;ds12c887中带有128字节 ram,其中有11字节ram用来存储时间信息,4字节ram用来存储ds12c887的控制信息,称为控制寄存器,113字节通用ram使用户使用;此外用户还可对ds12c887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。2.2.2 引脚功能ds12c887的引脚排列如图1所示,各管脚的功能说明如下:mot:模式选择脚,da12c887有两种工作模式,即motorola模式和intel模式,当mot接vcc时,选用的工作模式是motorola模式,当mot接gnd时,选用的是intel模式。本文主要讨论intel模式。sqw:方波输出脚,当供电电压vcc大于4.25v时,sqw脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。ad0ad7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在ad0ad7上的是地址信息,可用以选通ds12c887内的ram,总线周期的后半部分出现在ad0ad7上的数据信息。as:地址选通输入脚,在进行读写操作时,as的上升沿将ad0ad7上出现的地址信息锁存到ds12c887上,而下一个下降沿清除ad0ad7上的地址信息,不论是否有效,ds12c887都将执行该操作。gnd、 vcc:直流电源,其中vcc接+5v输入,gnd接地,当vcc输入为+5v时,用户可以访问ds12c887内ram中的数据,并可对其进行读、写操作;当vcc的输入小于+4.25v时,禁止用户对内部ram进行读、写操作,此时用户不能正确获取芯片内的时间信息;当vcc的入小于+3v时, ds12c887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。ds/rd:数据选择或读输入脚,该引脚有两种工作模式,当mot接vcc时,选用motorola工作模式,在这种工作模式中,每个总线周期的后一部分的ds为高电平,被称为数据选通。在读操作中,ds的上升沿使ds12c887将内部数据送往总线ad0ad7上,以供外部读取。在写操作中,ds的下降沿将使总线 ad0ad7上的数据锁存在ds12c887中;当mot接gnd时,选用intel工作模式,在该模式中,该引脚是读允许输入脚,即read enable。r/w:读/写输入端,该管脚也有2种工作模式,当mot接vcc时,r/w工作在motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当r/w为高电平时为读操作,r/w为低电平时为写操作;当mot接gnd时,该脚工作在intle模式,此时该作为写允许输入,即write enable。cs:片选输入,低电平有效。irq:中断请求输入,低电平有效,该脚有效对ds12c887内的时钟、日历和ram中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,reset可以直接接vcc,这样可以保证ds12c887在掉电时,其内部控制寄存器不受影响。在ds12c887内有11字节ram用来存储时间信息,4字节用来存储控制信息,其具体垢地址及取值如表1所列。由表1可以看出:ds12c887内部有控制寄存器的a-b等4个控制寄存器,用户都可以在任何时候对其进行访问以对ds12c887进行控制操作。ds12c887的存储功能如下:地址功 能取值范围十进制数取值范围二进制bcd码0秒059003b00591秒闹铃059003b00592分059003b00593分闹铃059003b0059412小时模式012010c am,818c pm0112am,8192pm24小时模式023001700235时闹铃,12小时制112010c am,818c pm0112am,8192pm时闹铃,24小时制023001700236星期几(星期天=1131011f01318月112010c01129年0990063009910控制寄存器a11控制寄存器b12控制寄存器c13控制寄存器d50世纪099na19,202.3 usb接口芯片的特点及原理ch375 是一个usb总线的通用接口芯片,支持usb-host主机方式和usb-device/slave 设备方式。在本设计中,使用的是usb设备方式。在本地端,单片机具有数据总线和读、写、片选、控制总线以及中断输出可以方便的挂接到单片机的控制器的系统总线上。在usb主机方式下,ch375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片机相连接。ch375 的usb主机方式支持常用的usb全速设备,外部单片机可以通过ch375按照相应的usb 协议与usb 设备通讯。ch375 还内置了处理mass-storage 海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的usb 存储设备。ch375 的usb 设备方式与ch372 芯片完全兼容,相关资料可以参考南京沁恒公司网站提供的ch372 手册。2.3.1 ch375的特点 全速usb-host 主机接口,兼容usb v2.0,外围元器件只需要晶体和电容。 全速usb 设备接口,完全兼容ch372 芯片,支持动态切换主机与设备方式。 主机端点输入和输出缓冲区各64 字节,支持常用的12mbps 全速usb 设备。 支持usb 设备的控制传输、批量传输、中断传输。 自动检测usb 设备的连接和断开,提供设备连接和断开的事件通知。 内置控制传输的协议处理器,简化常用的控制传输。 内置固件处理海量存储设备的专用通讯协议,支持bulk-only传输协议和scsi、ufi、rbc 或等效命令集的usb 存储设备(包括usb 硬盘/usb 闪存盘/u 盘)。 通过u 盘文件级子程序库实现单片机读写usb 存储设备中的文件。 并行接口包含8 位数据总线,4 线控制:读选通、写选通、片选输入、中断输出。 串行接口包含串行输入、串行输出、中断输出,支持通讯波特率动态调整。 支持5v 电源电压和3.3v 电源电压,支持低功耗模式。 采用sop-28封装,可以提供sop28 到dip28 的转换板。ch375 芯片在本地端提供了通用的被动并行接口和点对点的串行接口。在usb主机方式下,ch375支持各种常用的usb全速设备,外部单片机需要编写固件程序按照相应的usb 协议与usb设备通讯。但是对于usb设备方式,ch375 内置了相关协议,通常情况下,外部单片机不需要编写固件程序,就可以直接通讯。下面简要介绍一下ch375接口的特点,以方便在设计当中运用。本人在设计当中运用的是并行接口。(1) 并行接口并口信号线包括:8 位双向数据总线d7d0、读选通输入引脚rd#、写选通输入引脚wr#、片选输入引脚cs#、中断输出引脚int#以及地址输入引脚a0。通过被动并行接口,ch375芯片可以很方便地挂接到8 位单片机的系统总线上,并且可以与多个外围器件共存。ch375 芯片的rd#和wr#可以分别连接到单片机的读选通输出引脚和写选通输出引脚。cs#由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。由于在本设计中用到的外设比较少,所以没有使用译码器,int#输出的中断请求是低电平有效,可以连接到单片机的中断输入引脚或者普通i/o引脚,单片机可以使用中断方式或者查询方式获知中断请求。当wr#为高电平并且cs#和rd#及a0 都为低电平时,ch375中的数据通过d7d0 输出;当rd#为高电平并且cs#和wr#及a0 都为低电平时,d7d0 上的数据被写入ch375芯片中;当rd#为高电平并且cs#和wr#都为低电平而a0 为高电平时,d7d0 上的数据被作为命令码写入ch375 芯片中。(2)串行接口串行接口只能用于usb 主机方式,ch375 芯片的usb 设备方式不支持串口。串口信号线包括:串行数据输入引脚rxd、串行数据输出引脚txd、中断输出引脚int#。通过串行接口,ch375 可以用最少的连线与单片机进行较远距离的点对点连接。ch375 芯片的rxd 和txd 可以分别连接到单片机的串行数据输出引脚和串行数据输入引脚。int#输出的中断请求是低电平有效,用于通知单片机。ch375 的串行数据格式是1 个起始位、9 个数据位、1 个停止位,其中前8 个数据位是一个字节数据,最后1个数据位是命令标志位。第9 位为0时,前8 位的数据被写入ch375芯片中,第9 位为1 时,前8 位被作为命令码写入ch375 芯片中。ch375 的串行通讯波特率默认是9600bps,单片机可以随时通过set_baudrate 命令选择合适的通讯波特率。在ch375 芯片的复位期间,txd 引脚用于选择通讯接口。如果ch375 在复位期间检测到txd引脚为低电平则启用并行接口,否则启用串行接口。如果启用串行接口,那么复位完成后txd 引脚将用于串行数据输出,并且ch375 芯片只能工作于usb 主机方式。ch375 芯片的act#引脚用于状态指示。在内置固件的usb 设备方式下,当usb设备尚未配置或者取消配置后,该引脚输出高电平;当usb设备配置完成后,该引脚输出低电平。在usb 主机方式下,当usb 设备断开后,该引脚输出高电平;当usb 设备连接后,该引脚输出低电平。ch375的act#引脚可以外接串了限流电阻的发光二级管led,用于指示相关的状态ch375 芯片的ud+和ud-引脚是usb 信号线,工作于usb 设备方式时,应该直接连接到usb 总线上;工作于usb主机方式时,可以直接连接到usb设备。如果为了芯片安全而串接保险电阻或者电感或者esd 保护器件,那么交直流等效串联电阻应该在5之内。ch375 芯片内置了电源上电复位电路,一般情况下,不需要外部提供复位。rsti 引脚用于从外部输入异步复位信号;当rsti 引脚为高电平时,ch375芯片被复位;当rsti 引脚恢复为低电平后,ch375会继续延时复位20ms 左右,然后进入正常工作状态。为了在电源上电期间可靠复位并且减少外部干扰,可以在rsti 引脚与vcc 之间跨接一个容量为0.47uf 左右的电容。rst引脚和rst#引脚是复位状态输出引脚,分别是高电平有效和低电平有效;当ch375电源上电复位或者被外部强制复位以及复位延时期间,rst 引脚和rst#引脚分别输出高电平和低电平;ch375复位完成后,rst 引脚和rst#引脚分别恢复到低电平和高电平。rst 和rst#引脚可以用于向外部单片机提供上电复位信号。ch375 芯片正常工作时需要外部为其提供12mhz的时钟信号。一般情况下,时钟信号由ch375内置的反相器通过晶体稳频振荡产生。外围电路只需要在xi 和xo引脚之间连接一个标称频率为12mhz的晶体,并且分别为xi和xo 引脚对地连接一个高频振荡电容。如果从外部直接输入12mhz 钟信号,那么应该从xi 引脚输入,而xo 引脚悬空。ch375a 芯片支持5v 电源电压,ch375v 芯片支持3.3v 电源电压。当使用5v 工作电压时,ch375芯片的vcc引脚输入外部5v 电源,并且v3引脚应该外接容量为1000pf到0.01uf左右的电源退耦电容。当使用3.3v 工作电压时,ch375 芯片的v3 引脚应。该与vcc 引脚相连接,同时输入外部的3.3v电源,并且与ch375 芯片相连接的其它电路的工作电压不能超过3.3v。2.3.2 ch375的内部结构ch375 芯片内部集成了pll 倍频器、主从usb 接口sie、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等。pll 倍频器用于将外部输入的12mhz 时钟倍频到48mhz,作为usb 接口sie 时钟。主从usb 接口sie 是usb 主机方式和usb设备方式的一体式sie,用于完成物理的usb数据接收和发送,自动处理位跟踪和同步、nrzi 编码和解码、位填充、并行数据与串行数据之间的转换、crc数据校验、事务握手、出错重试、usb 总线状态检测等。数据缓冲区用于缓冲usb 接口sie 收发的数据。被动并行接口用于与外部单片机/dsp/mcu 交换数据。异步串行接口用于代替被动并行接口与外部单片机/dsp/mcu 交换数据。命令解释器用于分析并执行外部单片机/dsp/mcu 提交的各种命令。控制传输的协议处理器用于自动处理常用的控制传输的多个阶段,简化外部固件编程。通用的固件程序包含两组:一组用于usb设备方式,自动处理usb默认端点0 的各种标准事务等;另一组用于usb 主机方式,自动处理mass-storage 海量存储设备的专用通讯协议。ch375 芯片内部具有7 个物理端点:端点0 是默认端点,支持上传和下传,上传和下传缓冲区各是8 个字节;端点1包括上传端点和下传端点,上传和下传缓冲区各是8个字节,上传端点的端点号是81h,下传端点的端点号是01h;端点2 包括上传端点和下传端点,上传和下传缓冲区各是64 个字节,上传端点的端点号是82h,下传端点的端点号是02h;主机端点包括输出端点和输入端点,输出和输入缓冲区各是64 个字节,主机端点与端点2合用同一组缓冲区,主机端点的输出缓冲区就是端点2 的上传缓冲区,主机端点的输入缓冲区就是端点2 的下传缓冲区。ch375 的端点0、1、2 只用于usb 设备方式,在usb 主机方式下只需要用到主机端点。在usb 主机方式下,ch375 支持各种常用的usb 全速设备。usb 设备的端点号可以是015,两个方向最多支持31 个端点,usb 设备的包长度可以是064 字节。内置固件可以处理mass-storage 海量存储设备的通讯协议,要求usb 存储设备支持bulk-only传输协议,支持scsi、ufi、rbc 或者等效的命令集,并且数据端点的最大包长度是64 字节,但是默认端点0 的最大包长度可以是8、16、32 或者64 字节。如果usb 存储设备不符合上述要求,则需要外部单片机通过控制传输以及issue_token 命令或者issue_tkn_x 命令自行处理相关通讯协议。2.3.3 本地端的单片机与ch375的连接ch375 芯片占用两个地址位,当a0 引脚为高电平时选择命令端口,可以写入命令;当a0引脚为低电平时选择数据端口,可以读写数据。单片机通过8 位并口对ch375芯片进行读写,所有操作都是由一个命令码、若干个输入数据和若干个输出数据组成,部分命令不需要输入数据,部分命令没有输出数据。命令操作步骤如下:、 在a0=1 时向命令端口写入命令代码;、 如果该命令具有输入数据,则在a0=0 时依次写入输入数据,每次一个字节;、 如果该命令具有输出数据,则在a0=0 时依次读取输出数据,每次一个字节;、 命令完成,可以暂停或者转到继续执行下一个命令。ch375 芯片专门用于处理usb通讯,在检测到usb 总线的状态变化时或者命令执行完成后,ch375以中断方式通知单片机进行处理。2.4、串行静态显示电路原理说明在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的i/o接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中cpu的开销小。 mcs-51单片机串行口方式0为移位寄存器方式,外接4片74ls164作为4位led显示器的静态显示接口,把8051的rxd作为数据输出线,txd作为移位时钟脉冲。74ls164为ttl单向8位移位寄存器,可实现串行输入,并行输出。其中a、b(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。t(第8脚)为时钟输入端,可连接到串行口的txd端。每一个时钟信号的上升沿加到t端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74ls164中。r(第9脚)为复位端,当r=0时,移位寄存器各位复0,只有当r=1时,时钟脉冲才起作用。q1q8(第3-6和10-13引脚)并行输出端分别接led显示器的hgfedcba各段对应的引脚上。在给出了8个脉冲后,最先进入74ls164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,6片7ls164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机rxd端输出的数据就进入到了第一片74ls164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74ls164,而新的数据则进入了第一片74ls164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四片74ls164中。下面是本设计的显示原理图:第三章设计方案3.、系统组成部分(1)总线接口部分,包括连接线和接口芯片。下图所示为ch375芯片连接usb总线的标准电路:usb总线包括一对5v电源线和一对数据信号线,通常,+5v电源线为红线,接地线为黑色,d+信号线为绿色,d-信号线为白色。usb总线提供的电源电流最大可以达到500ma。一般情况下,ch375芯片和低功耗的usb产品可以直接使用usb总线提供的5v电源。如果usb产品通过其他供电方式提供常备电源,那么ch375也因该使用常备电源;如果需要同时使用usb总线的电源,那么可以通过阻值约为1欧的电阻连接usb总线的5v电源线与usb产品的5v常备电源,并且两者的接地线直接相连。电容c3用于ch375内部电源接点退耦,电容c4、c5用于外部电源退耦,c3、c4是容量为0.1f的电容。晶体x1、电容c1和c2用于ch372的时钟振荡电路。c1和c2是容量为30pf的电容。退耦电容c3和c4应尽量靠近ch375的相连信号干扰:尽量缩短x1和x0引脚相关信号线的长度,为了减少高频时钟对外界的干扰,可以在相关器件周边环绕地线。(2)上位机部分,通过下传所需要的时钟值,单片机读取此值,对时钟芯片进行初始化。(3)下位机部分,包括单片机及其接口电路。如下图:at89c51 是美国atmel 公司生产的具有mcs51 内核的8 位单片机产品。该单片机具有时钟频率高( 最24mhz) 、运行速度快、内含4kb eeprom、p0 口驱动能力强(最大20 ma) 等特点,在智能化仪器仪表中得到了广泛的应用。ds12c887时钟芯片和89c51单片机的接口电路如上图所示,模式选择mot脚接地,不选择intel时序,选择ds12c887时钟芯片的地址总线及as端口和89c51单片机的p0及ale端直接相连;而ds、r/w读写控制线与单片机的rd、wr控制线相连ds12c887的高8位地址由89c51的p2.7端口来片选,则ds12c887的高8位地址定为7fh,而其低8位地址则由芯片内部各单元的地址来决定;ds12c887的中断输出断irq89c51的外部int0断相连,给单片机提供中断信号;ds12c887的sqw断可编程产生方输出信号。由硬件连接图可知ds12c887 内部存储器起始地址为7f00h ,时间、日及报警信息分别存储在7f00h - 7f09h单元中, 状态控制寄存器a - d 的地址分别为: 7f0ah、7f0bh、7f0ch、7f0dh;ds12c887的内部包含有不同的中断源,我们可通过编程利用这些中断源向cpu申请中断, 因此将ds12c887 的irq 引脚连于at89c51 的外部中断int0引脚上。这样每当符合中断源中断条件时,irq 输出低电平,引起at89c51 的int0 中断。如我们可以置uie=1(相当于更新结束中断),则当当前时间与我们设置的闹铃时间匹配时,中断申请标志位irqf 置为1,int0 向at89c51 提出中断。3.、系统工作原理本人做的是系统的下位机部分,主要考虑怎样实现单片机与上位机的通信以及单片机怎样读写 ds12c887芯片,由于时钟芯片初始化以后,就能按照所设初值给出时钟信息,因此关键还是怎样实现和计算机的通信问题,理解了单片机和计算机的通信机理对整个设计工作就游刃有余了。应注意的是,在本设计中ch375工作与设备方式,ch375提供的单片机的接收缓冲区为8个字节,多于8个字节的计算机下传部分被切分;而单片机的发送缓冲区也是8个字节,多于8个字节的上传数据需要分多次上传。系统工作原理图如下:单片机通过ch375芯片接收数据的处理步骤如下:(1) 当ch375接收到usb主机发来的数据后,首先琐定当前usb缓冲区,防止被后续数据覆盖,然后将int引脚设置为低电平,向单片机请求中断;(2) 单片机进入中断服务程序,首先执行get-status 命令获取中断状态;(3) ch375在get-status命令完成后将int引脚恢复为高电平,取消中断请求;(4) 由于通过上述get-status命令获取的中断状态是下传成功,因此单片机执行rd-usb-data命令,从ch375读取接受到的数据;(5) ch375在rd-usb-data命令完成后释放当前缓冲区,从而可以继续usb通信;(6) 单片机退出中断服务程序。单片机通过ch375芯片发送数据的处理步骤如下:(1) 单片机执行wr-usb-data命令,向ch75写入要发送的数据;(2) ch375等待usb主机在需要时取走数据;(3) 当usb主机取走数据后,ch375首先锁定当前usb缓冲区,防止重复发送数据,然后将int引脚恢复为低电平,向单片机请求中断;(4) 单片机进入中断服务程序,首先执行get-status命令获取中断状态;(5) ch375在get-status命令完成后将int引脚恢复为高电平,取消中断请求;(6) 由于通过上述get-status命令获取的中断状态是上传成功,因此单片机执行wr-usb-data命令向ch375写入另一组要发送的数据,如果没有后续的数据要发送,那么单片机不必执行wr-usb-data命令;(7) 单片机执行unlock-usb命令;ch375在unlock-usb命令完成后释放当前缓冲区,从而可以继续usb通信;(8) 单片机退出中断服务程序;(9) 如果单片机已经写入了另一组要发送的数据,那么转到步骤2,否则结束。第 四 章 软件设计4.1端对端的数据传输原理ch375在计算机应用层与本地端单片机之间提供了端对端的连接,在这个基础上,usb产品的设计人员可以选用两种通信方式:单向数据流方式和请求应答方式。前者使用两个方向相反的单向数据流进行通信,具有相对较高的数据传输率,但是数据不容易同步;后者使用主动请求和被动应答的查询方式进行通信,数据自动同步,具有较好的交互性和可控性,但是数据传输率相对较低。在本设计中运用的是后一种数据传输方式。1)单向数据流方式单向数据流方式使用一个上传数据流和一个下传数据流进行双向数据通信,两个数据流之间完全独立。 下传数据流是由计算机应用层通过数据下传api发起的,ch375芯片以64个字节为一组,将一个较大的数据块分成多组提交给单片机;如果应用层发送150个字节的数据块,则单片机会被中断3次,前两次各获取64个字节,最后一次获取22个字节。 上传数据流的发起方式有两种:一种是查询方式,指计算机应用层定期以查询方式发起:另一种是伪中断方式,指单片机以中断数据通知计算机应用层,再由计算机应用层发起。因为usb总线是主从式结构,只有在计算机主动联系usb设备时,usb才能向计算机上传数据。 在上传数据流以伪中断方式发起的系统中,计算机应用层总是通过数据上传api尝试读取数据。当单片机没有数据需要上传时,计算机应用层会一直等待,实际上该应用层程序的线程将会被操作系统挂起。当单片机需要上传数据时,因将数据写入ch375批量端点的上传缓冲区中,接着计算机应用层自动取走数据,然后375芯片以中断方式通知单片机上传成功,以便单片机继续上传后续数据。 在上传数据流以伪中断方式发起的系统中,计算机应用层初始化时设置一个伪中断服务程序,然后应用层就不需要在涉及到上传数据流。当单片机需要上传数据时,首先将数据写入批量端点的上传缓冲区中,然后将中断特征数据写入中断端点的上传缓冲区中,在1ms之内,与中断特征数据对应的伪中断服务程序被激活,伪中断服务程序调用数据上传api获得上传数据块。在此期间,单片机将会收到ch375芯片通知的两次中断,首先是中断端点上传成功中断,然后是批量端点上传成功中断。2)请求加应答方式 请求加应答方式使用一个下传的主动请求和一个上传的被动应答进行交互式的双向数据通信,下传与上传一一对应,相互关联。主动请求是指由计算机应用层下传给单片机的数据请求,被动应答是指在单片机收到数据请求后,上传给计算机应用层的应答数据。所有的通信都由计算机的应用层发起,然后以接受到单片机的应答结束,完整的过程包括:(1)计算机应用层按事先约定的格式将数据发送给ch375芯片;(2)ch375芯片以中断方式通知单片机;(3)单片机进入中断服务程序,获取ch375的中断状态并分析;(4)如果是上传,则释放当前usb缓冲区,然后退出中断程序;(5)如果是下传,则从数据下传缓冲区中读取数据块;(6)分析接收到的数据块,准备应答数据,或者先退出中断程序在处理;(7)单片机将应答数据写入批量端点的上传缓冲区中,然后退出中断程序;(8)ch375芯片将应答数据返回给计算机;(9)计算机应用层接收到应答数据。在本设计中运用的是请求加应答方式。4.2、计算机端软件在计算机端,应用层接口可利用ch375 动态链接库dll 提供的面向功能应用的api. ch375 动态链接库ch375dll. h 提供可供利用的api 包括:设备管理api、数据传输api、中断处理api.设备管理api 包括: (1) 打开设备; (2) 关闭设备; (3) 获得驱动程序版本号; (4) 获取usb 设备描述符; (5) 获取usb 配置描述符; (6) 复位usb 设备.数据传输api 包括: (1) 读取数据块(数据上传) ; (2) 写出数据块(数据下传) ; (3) 放弃数据块读操作; (4) 放弃数据块写操作.中断处理api 包括: (1) 读取中断数据; (2) 放弃中断数据读操作; (3) 设定中断服务程序.计算机端软件主要功能是模拟一个示波器的界面,实现数据的显示以及满足不同需要的分析功能,同时完成对数据采集硬件、波形发生器模块的参数设定. 进一步开发可以实现量程的自动转换、数据的深度分析(譬如波形测量、频谱分析等) ,甚至可以结合硬件的升级实现逻辑分析仪、扫频仪、网络分析仪等功能.在实际应用中使用vc 作为计算机端应用软件的开发平台较好,首先将ch375 芯片的驱动程序、动态链接库拷贝到计算机中,再将动态链接库的访问入口及函数定义入口添加至vc 项目中,此时对usb设备的通信编程就几乎和访问本地硬盘中的文件差不多了. 4.3、单片机端软件单片机端软件包括与上位机之间的通信和读写时钟芯片ds12c887以及显示程序 单片机与计算机通信是通过对ch375的寄存器操作实现的,有关其寄存器定义的具体情况请参考数据手册。在应用中需要注意的是,ch375提供的单片机接收缓冲区为8个字节,多于8个字节的计算机下传数据被切分;而单片机的发送缓冲区也是8个字节,多于8个字节的上传数据需要分多次上传。另外,ch375的中断包括了上传及接受成功,中断发生后具体的情况需要由传输状态寄存器来辨别;同时其中断电平是单稳态的,一个事件发生后中断信号跳变,但仅维持一个短暂的脉冲便恢复,这是为了配合不同速度的处理器而作的处理。其程序流程图如上。单片机对时钟芯片进行初始化时,是对芯片的寄存器写入数据,时钟初值由上位机获得。进行初始化以后,时钟芯片开始从初始值开始变化,单片机读取时间值送入led显示时间值。整个设计软件流程图如下:第 五 章 总 结(1) ds12c887 具有报警中断功能,当报警中断时间写入相应的时、分、秒报警单元时,报警中断每天准时发生一次。当在三个报警单元中插入一个或多个不关心码(c0h -ffh 十六进制数) 时,可以设定较短的报警周期。例如报警单元中插入不关心码,则报警每小时发生一次;在时、分报警单元中均插入不关心码,则报警每分钟发生一次;若在3个报警单元中均插入不关心码,报警1 s 将发生一次。(2) 当采用查询、报警中断和周期中断方法读取时钟日历信息时,需要由软件查询状态控制寄存器a 的uip 位,当uip = 0 时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文物保护与修复工程师职业技能水平测验试卷及答案
- 2025年文化创意产业发展策略试卷及答案
- 2025年未来教育发展方向探讨试卷及答案
- 2025年网站运营经理资格考核试题及答案解析
- 2025年网约车平台经理专业技术资格考试试题及答案
- 南京期中统考数学试卷
- 宁波初一期中数学试卷
- 七年级下册海滨数学试卷
- 2025年专业仓储服务合作协议书
- 2025年消雾塔项目建议书
- 选人用人自查报告
- 2024-2030年桥梁工程建设产业发展分析及发展趋势与投资前景预测报告
- 食材采购的管理制度
- 2024版营销咨询服务合同范本
- 德佑房屋买卖合同范本
- 中医适宜技术在儿科应用
- DLT 5100水工混凝土外加剂技术规程
- (正式版)JBT 14875-2024 带式输送机 输送带纠偏装置
- 人教版数学六年级下册核心素养教案全册
- (2024年)公务员必修课公务员法配套法规第1讲
- 新时代劳动教育教程(中职版劳动教育)全套教学课件
评论
0/150
提交评论