论文部分内容阅读
USB总线是一种通用串行总线,以其方便易用、快速、价格低廉的特性,已经被广泛应用于各种数据传输设备。现在大部分的PC主机都有USB接口,有人预言未来所有的总线接口都将被USB技术统一。USB接口技术为PC主机间的数据传输提供了便捷的解决方案。 在某些特定的场合,例如在安全性要求很高的内部网络与公共internet网络之间传输文件,要求文件及数据只能由连接到公网的PC主机传输到连接在内部网络中的某台PC主机,即单向安全快速的传输文件及数据,即使内部网络上的主机系统被非法控制的情况下,文件及数据也无法实现反向传输。利用USB总线可实现文件及数据的快速传输,利用单片机的控制特性可在硬件层实现单向的可靠控制传输。 本文实现了一种利用USB接口技术在两台PC主机之间单向安全传输文件的解决方案。我们设计了一个USB设备,它有两个USB总线接口,分为主机端和从机端,可分别连接两台PC主机的USB接口,文件及数据只能由主机端发往从机端,而不能反方向传输。由P89V51RD2单片机作为主控MCU,选用PDIUSBD12作为USB总线控制器,MCU通过对PDIUSBD12器件进行初始化及USB事件响应处理来实现数据传输。 我们通过硬件及软件两方面来保证数据传输的单向性。第一,在硬件层,P89V51RD2有SPI总线接口,可设置为主机和从机,利用SPI总线的接口特性,其MOSI引脚为主机输出/从机输入数据线,MISO为主机输入/从机输出数据线,在SPI总线工作时,两条线上的数据传输方向是相反的,双向的。在硬件设计时,我们只连接了主机与从机的MOSI引脚,MISO引脚则没有连接,这样数据只能由主机到从机这一方向传输,反向的传输则没有硬件传输通道。第二,利用光耦器件的特性。光耦器件的信号传输也是单向的。 软件层,设备主机端由固件程序的USB中断服务程序中接收PC主机发来的数据并在该中断中通过SPI总线发送到从机端的MCU,主机端没有从SPI总线读数据的服务程序,也没有MCU通过USB总线向PC机发送数据的服务程序;从机