1 / 21
文档名称:

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

格式:pdf   大小:2,126KB   页数:21页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:1781111**** 2024/5/11 文件大小:2.08 MB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:该【基于C51单片机的USB接口课程设计 】是由【1781111****】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【基于C51单片机的USB接口课程设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..:本课程设计实现具有按键输入、数据储存、数据通信等功能的单片机系统。该系统基于C51单片机的USB接口设计,该系统由最小C51单片机系统、USB接口模块组成。系统实现按键输入数据保存至E2PROM后,可通过USB接口传送至上位机功能。通过对系统的仿真及实物调试,完成了系统设计,实现了课程设计的要求。关键字:USB,数据通信,单片机,按键输入,E2PROMThiscoursedesignsthesinglesliceofmachinesystemthattherealizationhasakeystroke,thedatafunctions,suchasstorageanddatacorrespondence...etc..Thatsystemconnectsapeople'ordingtoUSBofC51singlesliceofmachine,thatsystemfromtheminimumC51singlesliceofmachinesystem,,canconnectahighestofapeople':USB,datacorrespondence,singlesliceofmachine,keystroke,E2PROM0:..录1总体设计方案·····················································(USB接口芯片外接C51芯片)····································································································································································································································:········································································:·······················:······················:········································································:························:···················································································190:..UniversalSerialBUS的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。,USB版本经历了多年的发展,,成为目前电脑中的标准扩展接口。,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。USB具有传输速度快(,,),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSLModem、CableModem等,几乎所有的外部设备。随着计算机硬件飞速发展,这么多的设备,如何接入个人计算机,USB就是基于这个目的产生的。USB是一个使计算机周边设备连接标准化、单一化的接口,其规格是由Intel、paq、DEC、IBM、Microsoft、联系制定的由于USB总线接口具有体积小、携带方便、热插拔等特征,国内近年来计算机非键盘输入技术在汉字英文和数字的手写识别方面发展很快,此项目的目的是吸收USB总线和MOTOROLA微控制器的先进技术与手写识别技术相结合设计生产新一代USB手写输入系统。除了这种系统,还有一种无线式专家评审智能系统,需要一块具有USB接口的无线式数据通信接口卡,来实现中央数据处理站计算机与各智能评分器之间的数据交换。:..(USB接口芯片外接C51芯片)这种是纯粹的USB接口芯片,仅处理USB通信,使用时必须由外部微控制器(MCU)进行控制,如Philips的PDIUSBD12,NationalSemiconductor的USBN9604等。USB接口设计独立模式说明连接外设的一种简单模式,所有寄存器和数据的读写都是通过C8051的I/O接口来仿真。其优点是传输数据速率较快,也可以通过接口转换,与其他功能的外设相连,具有较广泛的适用性。但是数据吞吐速率较低,适合间歇式数据的传送。USBC51芯片接口芯片图1独立模式电路结构图:-USB。:灵活的自可编程的闪存人机接口能力外围设备广品种包括大容量存储器接口。MCU被集成在USB接口芯片,在使用时会更加的方便可行。、USB接口模块组成。上位机通过usb接口,由C512:..2PROM进行读写。C51单片机功能是通过MCU控制器对输入数据进行控制、处理,使数据通过接口被送到E2PROM(电可擦可编程只读存储器)中被存储起来,以便输出需要。E2PROM是电可擦可编程只读存储器,数据被送到里面后,如果因为设计需要,必须对数据进行修改、增加、删除时,它可以通过电子信号来修改,并不影响未修改的软件程序。USB接口芯片主要是与C51芯片相连,通过MCU空制器对数据的控制,以使数据通过USB接口被输送到PC机或上位机。,他只有4根线,两根电源两根信号,,usb接口也称为串行口,。:+5V500mA实际上有误差,最大不能超过+/--。usb接口的4根线一般是下面这样分配的,需要注意的是千万不要把正负极弄反了,否则会烧掉usb设备或者电脑的南桥芯片:黑线:gnd红线:vcc绿线:data+白线:data-。,我们为此而设计出虚拟3:..2CI2C总线是PHILIPS公司推出的芯片间串行数据传输总线2根线即可实现完善的全双工同步数据传送能够十分方便地地构成多机系统和外围器件扩展系统I2C器件是把I2C的协议植入器件的I/O接口使用时器件直接挂到I2C总线上,这一特点给用户在设计应用系统带来了极大的便利I2C器件无须片选信号是否选中是由主器件发出的I2C从地址决定的而I2C器件的从地址是由I2C总线委员会实行统一发配我们推出的I2C总线的操作平台软件包只要你给出器件从地址即可进行字节读字节写多字节读多字节写能够非常方便地使用I2C器件无须你介入底层的I2C操作协议。它是连接USB和89C51单片机所用到的总线,很方便的传送和接收数据。,通过DC-DC器件(7805)将9V电压转换为5V。DC/DC是一种高频模块电源,它可以实现直流到直流的变换,既可以把输入电压变低,也可以把输入电压变高,还可以把电源极性反转,而且输人电压还可以在一定的范围内变化。一路输人电压可以得到几路输出电压。直流输出电压和输出电流有很多档次供使用者选择,而且体积小、输出功率大。在DC-DC变换中,pwm和pfm是两种基本的控制方式,除此之外,还有相移控制等。pwm控制一般指开关周期固定,即频率固定,通过改变开关导通时间,调节输出电压,而pfm一般指开关导通时间固定,通过改变开关周期,来调节输出电压,在有些谐振电路中,因为顾忌谐振周期的缘故,所以多采用pfm但是,pfm控制方式,使的开关频率变化,使的滤波器的设计很困难,一般不采用。图5电源电路图4:..一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案图6单片机最小系统图5:..2PROM2PROMCSI24WC02CSI24WC02是一个2K位串行CMOSE2PROM内部含有256个8位字节CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CSI24WC01有一个8字节页写缓冲器CSI24WC0有一个16字节页写缓冲器该器件通过I2C总线接口进行操作,有一个专门的写保护功能。表1CSI24WC02管脚描述管脚名称功能A0A1A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护Vcc+:..。它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口。它还支持本地的DMA传输。这种实现USB接口的标准组件使得设计者可以在各种不同类型微控制器中选择出最合适的微控制器。这种灵活性减小了开发的时间、风险以及费用,从而用最快捷的方法实现最经济的USB外设的解决方案。,它还符合大多数器件的分类规格:成像类、海量存储器件、通信器件打印设备、以及人机接口设备。同样地,PDIUSBD12理想地适用于许多外设,例如:打印机、扫描仪外部的存储设备和数码相机等等。它使得当前使用SCSI的系统可以立即降低成本。PDIUSBD12所具有的低挂起功耗连同LazyClock输出可以满足使用ACPIOnNOW和USB电源管理的要求。低的操作功耗可以应用于使用总线供电的外设。此外它还集成了许多特性,TMGoodLinkTM、可编程时钟输出、低频晶振和终止寄存器集合。所有这些特性都为系统显著节约了成本,同时使USB功能在外设上的应用容易。7:..接口电路图图10USB接口PCB图8:..名称:main()功能:主函数,负责发送USB请求、处理USB总线事件、进行EEPROM的读写操作。图11主程序流程图代码:voidmain(void){init_port();/*初始化I/O口*/init_timer0();/*设置定时器0*/init_special_interrupts();/*设置中断*///D12_DATA=0xfb02;/*定义数据地址*///MAND=0xfb03;/*定义命令地址*/D12_DATA=0x7002;/*定义数据地址*/MAND=0x7003;/*定义命令地址*/9:../*DMA功能*/=0;/*初始化USB寄存器*//*上电复位,USB总线重新连接指令*/reconnect_USB();while(TRUE){if(){I2cWriteRead();/*若设备已配制,调用I2cWriteRead()*/}usbserve();/*处理USB的setup包*/}}名称:Write_CSI24WCxx()功能:进行EEPROM写操作。图12E2PROM写操作程序流程图:10:..voidWrite_CSI24WCxx(void){unsignedcharrwcount;unsignedcharadr_bak;bitwrite_ok;rwcount=0;do{/*取出当前操作字节个数,与命令要求的操作字节个数进行比较及处理*/EpBuf[5]>){ComEpBuf[5]=ComEpBuf[5]-;}else{[5];ComEpBuf[5]=0;}/*判断操作地址是否溢出*/if((+)>rom_size[]){=rom_size[]-;if(>rom_size[]){operate_type=0;}ComEpBuf[5]=0;}/*进行写操作,CSI24WC01、02、04、08、16的地址位[a10][a9][a8]*/if(operate_type==1){eprom_sla=0xa0|;eprom_sla&=0xfe;/*CSI24WC01、02、04、08、16所使用的从机地址为0AxH*//*本次写操作所写的数据的起始地址为EpBuf[rwcount],*/11:..write_ok=ISendStr(eprom_sla,,&(EpBuf[rwcount]),);}if(operate_type==2){eprom_sub=&();eprom_sla=0xa0;/*CSI24WC3264、128、256所使用的从机地址均为0A0H*/write_ok=ISendStr2(eprom_sla,eprom_sub,&(EpBuf[rwcount]),);}if(write_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=;=+;if(adr_bak>){=+2;=&0x0f;}}else{=+;}rwcount=rwcount+;/*写入字节个数计数*/=i2crom_mask[]+1;12:../*,若没有则继续返回已写入字节个数,若为0时则表示EEPROM操作出错*/EpBuf[0]=rwcount;D12_WriteEndpoint(5,1,EpBuf);}2PROM名称:Read_CSI24WCxx()功能:进行E2PROM读操作。图13E2PROM读操作程序流程图:代码:voidRead_CSI24WCxx(void)13:..bitread_ok;if(operate_type==1){eprom_sla=0xa0|;eprom_sla&=0xfe;read_ok=IRcvStr(eprom_sla,,EpBuf,);if(read_ok==1)D12_WriteEndpoint(5,,EpBuf);}/*endofread24c01,02,04,08*/if(operate_type==2){eprom_sub=&();eprom_sla=0xa0|;eprom_sla&=0xfe;read_ok=IRcvStr2(eprom_sla,eprom_sub,EpBuf,);if(read_ok==1)D12_WriteEndpoint(5,,EpBuf);}/*endofread24c64*/for(i=0;i<2000;i++);/**/if(read_ok==0){GenEpBuf[0]=0xaa;GenEpBuf[1]=0x88;D12_WriteEndpoint(3,2,GenEpBuf);}else{GenEpBuf[0]=0xbb;/*读操作成功*/GenEpBuf[1]=0x02;D12_WriteEndpoint(3,2,GenEpBuf);}}名称:I2cWriteRead()功能:负责接收USB总线上的命令,并进行分析及作出相应的EEPROM读写操作等。14:..程序流程图::Keil:KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。:15:..里对usb程序进行编译keil里对usb程序进行编译,,如图16所述,编译成功通过,当然在编译前进行了一些必要的设置。图16软件编程16:..下载软件,并将之进行擦除,。点击编程出现上图的界面,当显示“编程操作成功”字样表示已成功的将usb程序下载到芯片了。安装驱动程序当运行接上USB的试验箱时,出项了对usb需要进行安装驱动,上面几幅图为安装驱动的过程,最终成功安装了USB的驱动。I图18写入E2PROM数据17:..软件,通过usb线和IIC总线向EEPROM写一组数据,如图21数据是01234567890,出现上图的提示框表示向EEPROM成功写入数据读取E2PROM数据通过usb线和iic总线从eeprom读取数据,如图所示读出了10个数据,出现图22的提示框表示读eeprom数据成功。结论:经过上面的操作可以得出USB接口部分能成功的与单片机和上位机进行数据交换。,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,,当今USB接口技术的应用在生活中可以说得是无处不在。因此能够了解并掌握USB接口技术的内容是十分重要的。经过两个星期的奋斗我们小组终于圆满完成了本次课程设计的要求,成功实现按键输入数据保存至E2PROM,之后并可通过USB接口传送至上位机功能。整个系统完成上位机可通过USB接口实现对E2PROM的读写功能。经过这次的电子课程设计,让我深刻的体会到了要设计一个成功的电路,必须要有坚强的理论基础,还需要有持之以恒的信心,同时也还要有团队合作精神。在这次课程设计的过程中我们也遇到了很多困难,在困难面前我们没有退缩,在知道教师的指导和18:..此次的设计并不奢望一定能成功,但一定要对已学的各种电子知识能有一定的运用能力,我做设计的目的是希望能检查下对所学知识的运用能力的好坏,并且开始慢慢走上创造的道路,这是非常可贵的一点。(1)专著、论文、学位论文、报告[1]:北京航空航天大学出版社,1994[2]:北京航空航天大学出版社,1999[3]:北京航空航天大学出版,2002[4]:北京航空航天大学出版社,2003[5]沈美明、-:清华大学出版社2003[6]-:北京航空航天大学出版2001[7].[8].[9]uide2000,May61~63.(2)其他参考文献[1]:人民邮电出版社2000[2]李广弟、朱月秀、:北京航空航天大学出版社2006[3]:高等教育出版社[4]沈美明、-:清华大学出版社2003[5]:人民邮电出版社,2003[6]“电子爱好者”(CHM格式)19