usb通用申行总线为usb设备与主机之间大量的数据传输提供了高速、可靠的传输协议。目前u盘被广泛用于两台计算机之间的文件传输,使用方便、灵活,但其也有不足之处。若有一些恶意病毒隐藏在u盘当中,则这些病毒很可能会给用户带来不必要的损失;此外当传输数据量较小时,反复的插拔过程会耽误宝贵的时间。因此单用usb接口与pc通信有其局限性。随着短距离无线通信技术的发展,其应用场合已越来越多,比如仪器仪表、计算机遥测遥控系统、家庭网络系统等川。usb接口通信和无线通信都有着各自的优势,倘若把它们结合起来,扬长避短,定会有更大的应用前景。
本文采用pic16f877单片机、usb芯片fm245bm和无线芯片nr孔4功1组成无线文件传输系统,充分利用usb口数据传输功能,设备连接方便,可进行文件双向传输。
1主要芯片介绍
1.,无线传输芯片nrf24l01
24l01是单片射频收发芯片,工作于2.4ghz- 2.sghz频段,工作电压为l.gv一3.6v,有多达125个频道可供选择,最高通信速率zmb/,,具有自动应答和重发功能,其工作参数全部通过芯片状态字配置。微处理器通过spi访问idi,将配置状态字写人idi中,可将其配置为发射、接收、空闲及掉电模式。芯片内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融进了增强型shockburst技术。该项技术为idi所特有,它使得双向通信协议变得简单。
1.2 usb芯片ft245bm
ft45bm芯片是由ftdi公司推出的第二代usb芯片,它的功能是实现usb接口与并行110接口之间数据的双向传输。它由3.3v稳压器、usb收发器、锁相环、串行接口引擎(sie)、nfo控制器、usb协议引攀、nro接收缓冲区、发送缓冲区以及6mhz振荡器、8倍频时钟倍频器等组成。一方面,当外部设备有数据要传给主机时,数据通过8位并行110接口传给usb芯片内部的数据缓冲区,p咫45bm再将8位并行数据转化为串行数据,通过usb接口把数据发送给主机;另一方面,当主机有数据要给外部设备时,先将串行数据通过usb接口存储在usb芯片内部缓存区中,ft245bm再将申行数据转化为8位并行数据,然后通过8位i/o接口把数据传给外部设备。
2系统总体设计
本系统采用的核心器件是单片机pic 16f877、无线芯片nrf’24功1及usb芯片f1245bm。一个文件要从一台计算机无线传给另外一台计算机,首先要将文件转换为二进制码(编码),然后无线发射,再无线接收,最后将二进制码还原成原始文件(解码)。文件的编码及解码都是由计算机vb程序完成,硬件则只完成二进制码的传输。考虑到二进制码还要通过单片机进行中继,因此单片机与计算机之间采用usb芯片ft245bm连接,无线传输则由单片机对idi的控制完成。系统设计总体框图如图1所示。
3硬件设计
3.1 usb接口设计
单片机对ft245bm的控制是通过rxf#、rd#、txe#和wr这四个读写控制信号完成的,如图2所示。当rxf#为低时,表示主机已经将至少l字节的数据发送到usb的接收缓存区,单片机只需将rd#信号由低置高,就可以把d0一d7上的数据读到单片机的寄存器中。当txe#为低时,表示单片机可以把1字节的数据写人usb,只需把wr信号由高变低,就可以将d0一d7上的数据写人usb的发送缓存区。注意,当txe#为高时不可以将数据写人usb,这时usb的发送缓存区中正在处理上一次写人的数据或是发送缓存区已经写满。同样,当rxf#为高时,也不能从usb芯片中读取数据。
电路设计可采用总线供电和自供电两种方式,总线供电方式是指p咫45bm设备的电源是通过计算机的usb接口供给的,电流要通过该口流入p巴45bm设备。自供电方式是指r口45bm设备的电源由自己提供,而不通过主机供给。如果采用总线供电方式,在电源端采用一个磁珠,可以减少主机和设备的干扰。同时,在电源端增加去藕和旁路电容,可以提高电路的抗干扰性。如果电路没有外接一片eeprom,则r咫45bm将采用默认的vid、pid、产品描述符和电源描述符。
3.2无线部分设计
单片机与功l连接图如图3所示。ce、csn、mosi、miso、sck及irq是l01的控制引脚。ce是片选端,csn、mosi、miso、sck是l()l的spi口,pic16877与功l就是通过spi[2]口进行通信的。spi通信在无线传输中占重要地位。例如:当要配置印1时,那些配置状态字是通过spi口写人印1内的;当要发送数据时地址和有效数据也是通过spi口写人切1的;当idi接收完数据时,单片机同样是通过spi口将其读出的,所以必须将单片机与印1采用spi连接。irq则是中断标志位,单片机查询此位的状态就可知道发射或接收是否成功了。
4软件设计
系统的工作原理为:首先将两块带有功1和f几45bm的电路板分别插入主机和从机的usb口,以确保上电;然后双方均运行vb程序,进人文件传输发送/接收界面;此时若主机要传送文件给从机,从机要先点击接收命令按钮,以便进人接收状态等待文件的到来,接着主机点击发送命令按钮,弹出选择文件对话框,选择要发送的文件后点击确定,该文件将在一定时间内发送完毕,同时从机会弹出保存对话框,点击保存按钮后,文件保存成功,文件传输结束。
因此系统的软件设计分为三部分:vb界面程序、usb软件设计及单片机控制程序。vb界面程序主要负责文件的获取、文件的编解码及文件的保存;usb软件设计主要确保usb设备能够稳定工作;单片机控制程序则负责对usb芯片和功1的控制,以完成数据的无线发送l接收。
4.1 vb界面程序
4.2 usb软件设计
当外设连接到主机上的usb接口时,主机会检测到新硬件,这时需安装一个由ftdi公司免费提供的dzxx驱动程序,在该驱动程序中包含了一个动态链接库(dll)。使用时需在vb里调用相打开usb设备选择文件对话框编码解码文件保存对话框关闭usb设备图4vb界面流程图关的函数。
4.3单片机控制程序
在该系统中,单片机主要控制idi和r险45bm,实现数据的无线传输。单片机的d口作为数据口,bo一b3则作为p巴45的读写控制及状态口。idi每次只能传翰32字节数据,因此将文件分包,每包32字节。另外,约定了一些通信协议:每次发送成功后,向主机回传“aah”,以便让主机发下一包;发送失败则回传“cch”,以便通知主机重发此包数据。为了能够重发数据包,将每次取得的32字节数据存放在单片机内部ram内备份,以便出现误码时重发。整套系统发射机一直处于发射模式,接收机一直处于接收模式。程序控制流程如图5所示。
5实测数据
(a)接收控制程序在两台计算机间进行了不同格式、不同大小的文件的传输试验,结果如表1所示。
基于24idi和n245bm的无线文件传输系统结构简单,使用方便,误码率低,可靠性高。经大量试验测得:其传输速率约为256kb/。。提高单片机的晶振则可以加快文件的传输速度,其应用前景也就更加广阔。
选取一款合适的虹科Dimetix激光测距传感器
卫星连接弥合了与服务不足的物联网市场的差距
STM32L151CBT6A ST ARM微控制器的详细参数
什么是三防漆_三防漆有哪些好处_哪些应用可从三防漆受益?
减速机渗漏也能快速治理,效果令人刮目相看
基于nRF24L01和FT245BM的无线文件传输系统设计
华为P9系列出货量超1千万 2017年三强对决大屏手机
恒讯科技分析:CDN为什么对直播服务器传输很重要?
国睿信维智能车间整体解决方案确保车间安全生产稳定
电动牙刷如何选择,国产百元电动牙刷不逊于国际大牌
被冷落的自动驾驶存储芯片
探讨异常检测技术在网联车辆网络安全
流年不利的三星陷解锁专利案:赔完千万美金再赔千万人民币
荣耀waterplay平板评测 3D游戏略显吃力
微电网储能系统作用及分类
格兰仕推出普罗旺斯空调,快速冷暖,精确控温
魅蓝Note6好不好用
揭秘商汤赋能科技冬奥的背后故事
智慧城市上市公司有哪些_智慧城市上市公司排名
幕后推手是谁:从6700到28000,比特币暴涨三倍的真实原因