ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:638.89KB ,
资源ID:12635914      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12635914.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于C51单片机的USB接口课程设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于C51单片机的USB接口课程设计.docx

1、基于C51单片机的USB接口课程设计摘要:本课程设计实现具有按键输入、数据储存、数据通信等功能的单片机系统。该系统基于C51单片机的USB接口设计, 该系统由最小C51单片机系统、USB接口模块组成。系统实现按键输入数据保存至E2PROM后,可通过USB接口传送至上位机功能。通过对系统的仿真及实物调试,完成了系统设计,实现了课程设计的要求。关键字:USB,数据通信,单片机,按键输入,E2PROMAbstract:This course designs the single slice of machine system that the realization has a keystroke,

2、 the data functions, such as storage and data correspondence.etc.That system connects a peoples design according to USB of C51 single slice of machine, that system from the minimum C51 single slice of machine system, and USB pick up a people mold piece constitute.The system carries out a keystroke d

3、ata to keep to E2 PROMs, can connect a highest of a peoples transmission through USB machine function.Passing is true to imitating of system and the real object adjust to try, completed a system design and carried out the request of course design.Key words:USB, data correspondence, single slice of m

4、achine, keystroke, E2PROM目 录前言 11.总体设计方案 21.1接口设计方案 21.1.1独立模式即(USB接口芯片外接C51芯片) 21.1.2 USB接口芯片集成了MCU 21.2系统设计方案 22系统设计原理 32.1 USB接口简介 32.2 I2C总线简介 33单元模块设计 43.1 USB硬件电路设计 43.1.1电源电路模块 43.1.2单片机最小系统模块 53.1.3 E2PROM模块: 63.1.4 USB接口模块 73.2 USB软件设计 93.2.1主程序介绍: 93.2.2 E2PROM写程序: 103.2.3 E2PROM读程序: 133.2

5、.4 USB接口程序 144.系统功能调试 154.1调试用的软件简介: 154.2模块调试过程及结果: 155.设计总结 186.参考文献 19前言 USB是英文Universal Serial BUS的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。目前主板中主要是采用USB1.1和USB2.

6、0,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps, USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等,几乎所有的外部设备。随着计算机硬件飞速发展,这么多的设备,如何接入个

7、人计算机,USB就是基于这个目的产生的。USB是一个使计算机周边设备连接标准化、单一化的接口,其规格是由Intel、NEC、Compaq、DEC、IBM、Microsoft、Northern Telecom联系制定的由于USB总线接口具有体积小、携带方便、热插拔等特征,国内近年来计算机非键盘输入技术在汉字英文和数字的手写识别方面发展很快,此项目的目的是吸收USB总线和MOTOROLA微控制器的先进技术与手写识别技术相结合设计生产新一代USB手写输入系统。除了这种系统,还有一种无线式专家评审智能系统,需要一块具有USB 接口的无线式数据通信接口卡,来实现中央数据处理站计算机与各智能评分器之间的数

8、据交换。1.总体设计方案1.1接口设计方案1.1.1独立模式即(USB接口芯片外接C51芯片)这种是纯粹的USB接口芯片,仅处理USB通信,使用时必须由外部微控制器(MCU)进行控制,如Philips的PDIUSBD1 2,National Semiconductor的USBN9604等。USB接口设计独立模式说明连接外设的一种简单模式,所有寄存器和数据的读写都是通过C8051的I/O接口来仿真。其优点是传输数据速率较快,也可以通过接口转换,与其他功能的外设相连,具有较广泛的适用性。但是数据吞吐速率较低,适合间歇式数据的传送。图1 独立模式电路结构图:1.1.2 USB接口芯片集成了MCU这种

9、芯片如CYPRESS的EZ-USB。带集成的USB 2.0 全速接口的C51:灵活的自可编程的闪存人机接口能力外围设备广品种包括大容量存储器接口。MCU被集成在USB接口芯片,在使用时会更加的方便可行。USB接口芯片 C51芯片图2 集成模式电路结构图1.2系统设计方案该系统由最小C51单片机系统、USB接口模块组成。上位机通过usb接口,由C51控制对E2PROM进行读写。C51单片机功能是通过MCU控制器对输入数据进行控制、处理,使数据通过IO接口被送到E2PROM(电可擦可编程只读存储器)中被存储起来,以便输出需要。E2PROM是电可擦可编程只读存储器,数据被送到里面后,如果因为设计需要

10、,必须对数据进行修改、增加、删除时,它可以通过电子信号来修改,并不影响未修改的软件程序。USB接口芯片主要是与C51芯片相连,通过MCU空制器对数据的控制,以使数据通过USB接口被输送到PC机或上位机。图3 系统结构图2系统设计原理2.1 USB接口简介USB是一种常用的pc接口,他只有4根线,两根电源两根信号,如图4.故信号是串行传输的,usb接口也称为串行口,usb2.0的速度可以达到480Mbps。可以满足各种工业和民用需要.USB接口的输出电压和电流是: +5V 500mA 实际上有误差,最大不能超过+/-0.2V 也就是4.8-5.2V 。usb接口的4根线一般是下面这样分配的,需要

11、注意的是千万不要把正负极弄反了,否则会烧掉usb设备或者电脑的南桥芯片:黑线:gnd 红线:vcc 绿线:data+ 白线:data-。图4 usb接口定义图2.2 I2C总线简介为了非常方便地对 I2C 从器件进行快速的正确的读写操作,我们为此而设计出虚拟I2C 总线操作平台软件包。I2C 总线是PHILIPS 公司推出的芯片间串行数据传输总线2 根线即可实现完善的全双工同步数据传送能够十分方便地地构成多机系统和外围器件扩展系统I2C 器件是把I2C 的协议植入器件的I/O 接口使用时器件直接挂到I2C 总线上,这一特点给用户在设计应用系统带来了极大的便利I2C 器件无须片选信号是否选中是由

12、主器件发出的I2C 从地址决定的而I2C 器件的从地址是由I2C 总线委员会实行统一发配我们推出的I2C 总线的操作平台软件包只要你给出器件从地址即可进行字节读字节写多字节读多字节写能够非常方便地使用I2C 器件无须你介入底层的I2C 操作协议。它是连接USB和89C51单片机所用到的总线,很方便的传送和接收数据。3单元模块设计3.1 USB硬件电路设计3.1.1电源电路模块电源电路为有两个,通过DC-DC器件(7805)将9V电压转换为5V。DC/DC是一种高频模块电源,它可以实现直流到直流的变换,既可以把输入电压变低,也可以把输入电压变高, 还可以把电源极性反转,而且输人电压还可以在一定的

13、范围内变化。一路输人电压可以得到几路输出电压。直流输出电压和输出电流有很多档次供使用者选择,而且 体积小、输出功率大。在DC-DC变换中,pwm和pfm是两种基本的控制方式,除此之外,还有相移控制等。pwm控制一般指开关周期固定,即频率固定,通过改变开关导通时间,调节输出电压,而pfm一般指开关导通时间固定,通过改变开关周期,来调节输出电压,在有些谐振电路中,因为顾忌谐振周期的缘故,所以多采用pfm但是,pfm控制方式,使的开关频率变化,使的滤波器的设计很困难,一般不采用。图5 电源电路图3.1.2单片机最小系统模块89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh

14、Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案图6 单片机最小系统图3.1.3 E2PROM模块:E2PRO

15、M芯片:CSI24WC02CSI24WC02 是一个2K 位串行CMOS E2PROM 内部含有256 个8 位字节CATALYST 公司的先进CMOS 技术实质上减少了器件的功耗,CSI24WC01 有一个8 字节页写缓冲器CSI24WC0 有一个16 字节页写缓冲器该器件通过I2C总线接口进行操作,有一个专门的写保护功能。表1 CSI24WC02管脚描述管脚名称功能A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护Vcc +1.8V 6.0V工作电压Vss地图7 E2PROM电路图图8 E2PROM PCB图3.1.4 USB接口模块USB接口芯片:PDIUSBD12

16、 PDIUSBD12是一款性价比很高的USB 器件。它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口。它还支持本地的DMA 传输。这种实现USB 接口的标准组件使得设计者可以在各种不同类型微控制器中选择出最合适的微控制器。这种灵活性减小了开发的时间、风险以及费用,从而用最快捷的方法实现最经济的USB 外设的解决方案。PDIUSBD12 完全符合USB1.1 版的规范,它还符合大多数器件的分类规格:成像类、海量存储器件、通信器件打印设备、以及人机接口设备。同样地,PDIUSBD12 理想地适用于许多外设,例如:打印机、扫描仪外部的存储设备和数码相机等等。它使得当前使用SCSI 的

17、系统可以立即降低成本。PDIUSBD12 所具有的低挂起功耗连同LazyClock 输出可以满足使用ACPI OnNOW 和USB 电源管理的要求。低的操作功耗可以应用于使用总线供电的外设。此外它还集成了许多特性,包括SoftConnetTM GoodLinkTM 、可编程时钟输出、低频晶振和终止寄存器集合。所有这些特性都为系统显著节约了成本,同时使USB 功能在外设上的应用容易。图9 USB接口电路图图10 USB接口 PCB图3.2 USB软件设计3.2.1主程序介绍: 名称:main() 功能:主函数,负责发送USB请求、处理USB总线事件、进行EEPROM的读写操作。图11 主程序流程

18、图代码:void main(void) init_port(); /*初始化I/O口*/ init_timer0(); /*设置定时器0*/ init_special_interrupts(); /*设置中断*/ D12_DATA = 0xfb02; /*定义数据地址*/ D12_COMMAND = 0xfb03; /*定义命令地址*/ D12_DATA = 0x7002; /*定义数据地址*/ D12_COMMAND = 0x7003; /*定义命令地址*/ D12_SetDMA(0x0); /*不使用DMA功能*/ bEPPflags.value = 0; /*初始化USB寄存器*/ /*

19、上电复位,USB总线重新连接指令 */ reconnect_USB(); while(TRUE ) if(bEPPflags.bits.configuration) I2cWriteRead(); /*若设备已配制,调用I2cWriteRead()*/ usbserve(); /*处理USB的setup包*/ 3.2.2 E2PROM写程序: 名称:Write_CSI24WCxx() 功能:进行EEPROM写操作。图12 E2PROM写操作程序流程图:代码:void Write_CSI24WCxx(void) unsigned char rwcount; unsigned char adr_b

20、ak; bit write_ok; rwcount=0; do /*取出当前操作字节个数,与命令要求的操作字节个数进行比较及处理*/ if (ComEpBuf5rwlen.byte.low) ComEpBuf5=ComEpBuf5-rwlen.byte.low; else rwlen.byte.low=ComEpBuf5; ComEpBuf5=0; /*判断操作地址是否溢出*/ if( (rwrom_addr.word+rwlen.byte.low) rom_sizerwrom_type.byte.low ) rwlen.word=rom_sizerwrom_type.byte.low-rwr

21、om_addr.word; if (rwrom_addr.wordrom_sizerwrom_type.byte.low) operate_type=0; ComEpBuf5=0; /*进行写操作,CSI24WC01、02、04、08、16的地址位a10 a9 a8 由rwrom_addr.byte.high设置*/ if (operate_type=1) eprom_sla=0xa0 | rwrom_addr.byte.high; eprom_sla&=0xfe; /*CSI24WC01、02、04、08、16所使用的从机地址为0AxH*/ /*本次写操作所写的数据的起始地址为EpBufrw

22、count,操作个数rwlen.byte.low*/ write_ok=ISendStr(eprom_sla, rwrom_addr.byte.low, &(EpBufrwcount), rwlen.byte.low); if (operate_type=2) eprom_sub=&(rwrom_addr.byte.high); eprom_sla=0xa0; /*CSI24WC32、64、128、256所使用的从机地址均为0A0H*/ write_ok=ISendStr2(eprom_sla, eprom_sub, &(EpBufrwcount), rwlen.byte.low); if(w

23、rite_ok=0) rwcount=0; break; else while(IwCheck(eprom_sla)=0); /*等待写周期完成*/ /*写参数的修改,以达到页写的目的。*/ if(operate_type=1) /CSI24WC01、02、04、08、16的地址位a10 a9 a8 的调整 adr_bak=rwrom_addr.byte.low; rwrom_addr.byte.low=rwrom_addr.byte.low+rwlen.byte.low; if(adr_bakrwrom_addr.byte.low) rwrom_addr.byte.high=rwrom_ad

24、dr.byte.high+2; rwrom_addr.byte.high=rwrom_addr.byte.high&0x0f; else rwrom_addr.word=rwrom_addr.word+rwlen.byte.low; rwcount=rwcount+rwlen.byte.low; /*写入字节个数计数*/ rwlen.byte.low=i2crom_maskrwrom_type.byte.low+1; while (ComEpBuf5!=0); /*判断是否写完数据(由地址来判断),若没有则继续返回已写入字节个数,若为0时则表示EEPROM操作出错*/ EpBuf0=rwcou

25、nt; D12_WriteEndpoint(5, 1, EpBuf);3.2.3 E2PROM读程序: 名称:Read_CSI24WCxx() 功能:进行E2PROM读操作。图13 E2PROM读操作程序流程图: 代码:void Read_CSI24WCxx(void) int i; bit read_ok; if(operate_type=1) eprom_sla=0xa0 | rwrom_addr.byte.high; eprom_sla&=0xfe; read_ok=IRcvStr(eprom_sla, rwrom_addr.byte.low, EpBuf, rwlen.byte.low

26、); if(read_ok=1) D12_WriteEndpoint(5, rwlen.byte.low, EpBuf); /* end of read 24c01,02,04,08 */ if(operate_type=2) eprom_sub=&(rwrom_addr.byte.high); eprom_sla=0xa0 | rwrom_addr.byte.high; eprom_sla&=0xfe; read_ok=IRcvStr2(eprom_sla, eprom_sub, EpBuf, rwlen.byte.low); if(read_ok=1) D12_WriteEndpoint(

27、5, rwlen.byte.low, EpBuf); /* end of read 24c64 */ for(i=0; i2000; i+); /*若读操作出错,则返回出错信息*/ if(read_ok=0) GenEpBuf0=0xaa; GenEpBuf1=0x88; D12_WriteEndpoint(3, 2, GenEpBuf); else GenEpBuf0=0xbb; /*读操作成功*/ GenEpBuf1=0x02; D12_WriteEndpoint(3, 2, GenEpBuf); 3.2.4 USB接口程序 名称:I2cWriteRead() 功能:负责接收USB总线上的

28、命令,并进行分析及作出相应的EEPROM读写操作等。图14 USB程序流程图:4.系统功能调试4.1调试用的软件简介:Keil:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能

29、体现高级语言的优势。4.2模块调试过程及结果: 图15 keil里对usb程序进行编译首先在keil里对usb程序进行编译,使之生成.hex的文档,如图16所述,编译成功通过,当然在编译前进行了一些必要的设置。图16 软件编程运行DPFLASH下载软件,并将之进行擦除,然后将图16中最后生成的.hex文档装载到软件中。点击编程出现上图的界面,当显示“编程操作成功”字样表示已成功的将usb程序下载到芯片了。图17 安装驱动程序当运行接上USB的试验箱时,出项了对usb需要进行安装驱动,上面几幅图为安装驱动的过程,最终成功安装了USB 的驱动。I图18 写入E2PROM数据打开ZlgEasyD12

30、_DEMO.exe软件,通过usb线和IIC总线向EEPROM写一组数据,如图21数据是01234567890,出现上图的提示框表示向EEPROM成功写入数据图19 读取E2PROM数据通过usb 线和iic总线从eeprom读取数据,如图所示读出了10个数据,出现图22的提示框表示读eeprom数据成功。结论:经过上面的操作可以得出USB接口部分能成功的与单片机和上位机进行数据交换。表明设计得到了实现5.设计总结课程设计是培养学生综合运用所学知识 ,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今USB接口技术的应用在生活中可以说得是无处不在。因此能够了解并掌握USB接口技术的内容是十分重要的。经过两个星期的奋斗我们小组终于圆满完成了本次课程设计的要求,成功实现按键输入数据保存至E2PROM,之后并可通过USB接口传送至上位机功能。整个系统完成上位机可通过USB接口实现对E2PROM的读写功能。经过这次的电子课程设计,让我深刻的体会到了要设计一个成功的电路,必须要有坚强的理论基础,还需要有持之以恒的信心,同时也还要有团队合作精神。在这次课程设计的过程中我们也遇到了很多困难,在困

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1