- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C8051F020主控的USB模块与PC机快速通讯的实现
基于C8051F020主控的USB模块与PC机快速通讯的实现
章治国1 张占龙1 2 何为1 杨浩1
1 重庆大学 电气工程学院,重庆 400044
2 重庆工商大学 计算机科学与信息工程学院,重庆 400033
?
摘要:本文通过C8051F020与USB100模块的无隙连接,单片机把现场采集的数据通过USB模块及时、可靠地传递给PC机,实现了单片机和PC机之间的快速、实时传递数据的任务。
关键字:单片机;USB;PC机
?
1引言
在许多工业控制和数据采集系统中,单片机以其低成本,编程灵活、方便,实时性强、具有一定的智能而得到了广泛的应用。然而,许多复杂任务的实现,如人机对话、任务的切换、算法的实现、大数据的运算等,单片机就显得有点力不从心。而PC机在这方面却有强大的优势。这就需要将它们组合成系统,让单片机只管控制执行机构和进行数据采集与传输;PC机将数据进行处理,实现功能。这就涉及到单片机与PC机之间的通讯问题,特别是在需要实时传递和处理声音、图象等大批数据的时候,普通的通信方式难以满足要求。如何在单片机和PC机之间进行高速、可靠的通讯,目前较为流行的方式是采用通用串行通讯的方式。
目前,PC机上都配有2到3个通用串行接口(USB接口),我们采用的该USB模块的优势在于可避免开发USB驱动程序这种繁琐的工作,可以很快地建立起下位机与上位机的通讯,为产品开发迈出了重要的一步。
?
2 C8051F020的简介和USB100模块的简介
近年来,8051系列单片机由于速度慢、功耗高、功能少等等原因似乎走到了尽头。然而,美国CYGNAL公司新近推出的高性能C8051FXXX系列单片机,可彻底改变人们对8051单片机速度慢、性能低的印象。C8051F020是C8051FXXX系列中功能较全的一款单片机,它有以下几个特点:
① 速度快:高达25MIPS的速度,比标准8051快20倍以上。
② 强大的控制功能:有多达64位IO口线,所有口线可编程为弱上拉或推挽输出。
③ 独特的数字开关阵列:可以把内部资源定向到IO口。
④ 强大的模拟信号处理电路:有8路12位ADC(速度为100khz)和高达500khz的8位ADC、两路模拟比较器、高精度基准电源、程控放大器和温度传感器。
⑤ 丰富的串行接口:两个标准的全双工UART、标准的I2C串行总线和SPI串行总线。
⑥ 多达22个中断源。
⑦ 可靠安全机制:有7种复位资源。
⑧ 先进的JTAG调试功能:支持在系统、全速、非插入式调试和编程,不占用片内任何资源。
讯通公司开发的USB100模块具有以下优点:
①完全集成化的USB接口模块。
②完全满足USB1.1要求。
③无须用户编写驱动程序。
④8位单片机总线接口,对USB接口的操作如同对外部存储器操作一样方便。
⑤USB模块内部多达384字节的发送缓冲区和128字节的接受缓冲区,满足高速通讯和单片机接口。
⑥数据通讯速率最高可达8Mbit/s。
⑦可靠性高,特别适合工业控制。
?
3 硬件接口电路和软件编程技术
图2是USB100模块与单片机典型连接,USB的8位数据线与单片机的P3口相连,USB模块的RD、WR、TXE、RXF与单片机的IO口相连,单片机根据TXE、RXF的状态进行数据的收发。
图1 USB100模块与C8051F020的典型连接
?3.1发送数据
当单片机检测到USB100模块TXE为低时,表示内部发送缓冲区允许发送数据到USB端口,可以将数据通过8位数据总线发给USB100模块,发送数据锁存由WR控制,USB100模块为高时,禁止发送;请看时序图。
图2 USB模块发送数据时序图
?
单片机读取USB100模块的子程序:
WRITE_DAT: MOV P3MDOUT,#0FFH ;设置P3口为推挽方式,为写数据准备
MOV P3,#0FFH;
NOP;
CLR WR; 模拟写数据时序
LPWW: NOP
JB TXE,LPWW;判断USB模块内存中是否以写满,未写满则继续写
NOP;
SETB WR;
NOP;
MOV P3,A; 写数据
NOP
CLR WR
MOV P3, #0FFH
RET
3.2接收数据
当单片机检测到USB100模块RXF为低时,表示内部的接收缓冲区有来自USB端口的数据,可以通过8位数据总线将数据读入单片机,接收数据由R
文档评论(0)