• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 基于虚拟存储器的USB下载线设计

基于虚拟存储器的USB下载线设计

录入:edatop.com    点击:

随着单片机技术的不断发展,支持ISP(In-SystemProgramming)或IAP(In-Application Programming)的单片机芯片日益增加,这类单片机芯片的应用程序写入采用了在线下载的方式。单片机与计算机的连接端口也从串口或并口逐步过渡到USB(Universal SerialBus)口。由于USB口具有高速、使用灵活方便等特点,单片机程序下载连接口也更加广泛地应用USB口。但是,USB口与单片机连接的下载线在设计和应用上还是与串、并口连接一样,不同的单片机采用不同的下载线,也对应有不同的下载软件和硬件驱动程序。这些软件和程序随着功能的完善和操作改进等原因具有不同的版本。这就造成下载线的使用者需要不断更新软件,也让使用者在更换单片机时不仅更换下载线,还要熟悉新的下载软件及使用方法。为此,如果能设计一种不需要下载软件的下载线或统一操作的下载软件,则能大大提高单片机程序下载线的通用性及操作效率。设计一种通用而不需下载软件的USB接口的单片机的下载线就显得尤其必要。

1.硬件设计

1.1 设计分析

单片机USB接口下载线对于计算机而言,就是一个USB外部设备。为了实现在计算机中不需要安装额外的下载线驱动程序和操作软件,尽可能使用操作系统已有的USB设备的驱动程序、操作系统命令或软件作为下载线的驱动程序及操作软件。在对计算机操作系统进行分析和比较下,目前计算机操作系统中都带有U盘的驱动程序,资源管理器就是一个现有的磁盘操作软件。若将下载线虚拟为一个U盘,即从计算机角度将下载线和目标单片机视为一个虚拟磁盘,计算机对目标单片机的程序下载变为计算机对磁盘的写操作。

当下载线系统接收到计算机写入该磁盘的文件时,通过下载线系统程序对数据进行处理后把数据写入目标单片机,实现单片机程序下载。下载线系统完成对计算机的磁盘响应和程序的控制和传输,这样既能保证在所有计算机上都可以通用,又实现了在计算机中不需要专用的下载程序,只需要如磁盘操作一样进行复制、粘贴或其他文件复制操作即可将程序写入单片机。

下载线硬件系统如图1所示。

edatop.com

1.2 硬件设计

在分析各种USB接口芯片后,选用Philips公司的PDIUSBDl2作为系统的USB接口芯片,实现与微控制器进行通信的高速通用并行接口。该芯片采用了USB 1.1标准,现有的计算机采用USB 1.1及USB 2.O接口标准,采用PDIUSBDl2作为下载线与计算机的接口芯片能够满足设计需要。

为了实现可靠的程序下载,对目标单片机的接口电路选用原Altra的并口驱动芯片74HC244作为下载线与目标单片机的接口驱动芯片。该芯片是三态的总线驱动芯片,在写入和读出目标单片机数据时有足够的驱动能力和较小的延时,能够实现正常的程序下载,在程序下载完成后,该芯片工作于高阻态,使下载线不影响目标单片机的正常工作。系统电路原理如图2所示。

edatop.com

在图2中,PDIUSBDl2的数据端口连接到单片机的P0端口,实现单片机与PDIUSBDl2的数据交换通道。将PDIUSBDl2的读写控制分别接到P3.6和P3.7引脚,实现单片机写入和读出PDIUSBDl2的数据。地址端A0接到P2.O引脚上,用于实现对PDIUSBDl2的数据和地址选择。PDIUSB Dl2从CLKOUT输出时钟信号,连接到单片机AT89S52的XTAL1上,作为单片机的时钟信号。

下载线接口驱动电路74HC244采用P2的部分引脚进行控制。其中,P2.1接74HC244的门控端,输出低电平时电路工作,在平时输出高电平时使74HC244工作在高阻状态,使下载线与目标单片机脱离连接。P2.2接2Y4通过下载线接口作为SCK,实现ISP接口的同步脉冲。P2.3通过74HC244后接到下载线接口作为MOSI,实现对目标芯片的串行数据读出。下载线接口的MISO通过74HC244驱动后接到P2.5,实现对目标芯片的串行数据的读出。P2.5通过74HC244控制目标芯片的RESET引脚,使其进入和退出串行程序下载模式。

另外,在系统中保留了P3.O和P3.1作为异步串行通信端口,作为系统调试端口。P1.5,P1.6,P1.7和RESET与VCC,GND连接到系统控制芯片,作为系统控制芯片自身的程序写入接口。

2 软件系统设计

2.1 系统架构

基于虚拟内存的USB下载线,就是从计算机角度看,下载线与目标单片机是计算机的一个通用的USB存储器,在对目标单片机程序进行写操作时,就像对磁盘(U盘)进行写操作一样。

在PC机端主要完成的任务是USB设备驱动程序,即将USB设备(下载线)识别为U盘,实现文件的写入和读出操作。在Windows 2000及以后的操作系统中,将USB磁盘驱动作为标准驱动程序,直接利用操作系统磁盘驱动程序。文件的写入和读出,由操作系统完成相关功能,在本系统中不需要编写程序。

下载线与计算机连接采用PDIUSBD12作为接口芯片,要与计算机交换数据,就需要对PDIUSBDl2芯片进行操作,下载线系统需要PDIUSBDl2驱动程序。要向计算机说明下载线是一个U盘,下载线系统需要在计算机硬件询问时要按USB Disk应答,下载线系统还需要构建一个文件系统,由于下载线系统是面向单片机的程序下载,数据量小,采用FAT12作为下载线的文件系统。

当下载线接收到计算机传送过来的一个程序文件时,需要将程序文件中的内容分离出来。设计本系统主要支持bin和HEX两种格式,其中bin文件就是机器指令的数据,直接写入单片机的程序存储器中即可完成程序下载;Hex文件的INTEL格式是Intel公司提出的按地址排列的数据信息,并不是直接的机器指令代码,因此还需要将HEX格式转换为bin格式。

在对目标单片机进行程序下载时,需要按照目标单片机的程序下载时序,逐次将数据写入目标单片机的程序存储器中,下载系统需要控制下载接口电路实现程序时序。

2.2 程序设计

下载线是连接计算机与目标单片机的中间设备,仅在计算机发出操作要求时才产生对应的操作响应,因而下载线系统程序设计过程中以处理计算机端数据为主要目标,根据计算机的数据对单片机进行相应的操作。为了程序编写简洁和易于调试,设计系统主程序采用查询方式对USB接口数据进行处理。对目标单片机的程序下载写入时,将其设为整个程序的一个功能模块,仅当需要下载写入时调用该功能模块,在程序编写中将其定义为一个系统函数。

与PC的接口芯片采用了PDIUSBD12作为USB接口芯片,下载线为了处理来自USB接口的数据,必须完成对PDIUSBD12的处理。在设计中利用Philips提供的PDIUSBD12驱动程序进行修改加以实现。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:云计算与虚拟化的融合
下一篇:基于射频技术的无线识别系统设计

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图