一种AT89S52的USB下载线设计
扫描二维码
随时随地手机看文章
1引言
随着单片机技术的不断发展和更新,支持ISP或IAP的单片机芯片日益增加,这类单片机芯片的程序下载采用了下载线的方式。这种串行程序下载方式所用的电平为TTL电平,对单片机接口来说非常安全。单片机生产厂商推荐使用ISP程序下载方式,如AT89S5X芯片支持ISP功能,并用AT89S5X芯片取代了AT89C5X芯片。
另一方面,单片机的程序的写入也从使用烧写器写入演化为使用下载线从计算机中将程序直接写入。下载线就是将计算机中的单片机程序写入单片机芯片的连接线。下载线与计算机的连接接口可分为串口下载线、并口下载线和USB接口的下载线。这种串行程序下载方式所用的电平为TTL电平,对单片机接口和单片机芯片来说更加安全。同时,采用下载线的程序写入方式不需要每次将单片机从应用电路中取下,既节省了时间,又完全可靠。
从计算机角度来看,今天计算机技术日新月异,计算机的外部接口也在不断的改变,其中主要作为计算机外部设备的外部接口有串行接口、并行接口和USB(Universal SerialBus, USB)接口。而通用串行总线(USB)具有高速、使用灵活方便等特点,成为了计算机的标准配置,并在计算机外部接口不断增多的趋势。为了适应现代计算机的发展,采用USB接口的下载线是势在必行。
但是,不同的单片机有不同的下载线,一般来说,对应有不同的下载软件和硬件驱动程序。这些软件和程序随着功能的完善和操作等原因还有不同的版本。这造成下载线的使用者需要不断的更新软件,也让使用者在更换单片机时不仅更换下载线,还要熟悉新的下载软件。为此,如果能设计一种不需要下载软件的下载线或统一操作的下载软件,则能大大提高单片机程序下载的操作效率。研究和开发一种通用而不需下载软件的USB接口的单片机的下载线更为必要。
2硬件设计
2.1设计思想
为了能够使用和兼容传统的下载线,一种方式是在计算机中连接一个USB转并口(或串口)的连接线,然后再连接一根传统的下载线。在市场上,很多USB转并口的线是给打印机专用的,它并不是一个模拟并口,而是模拟了一个USB打印机,是不能用来连接并口下载线进行程序下载的。USB转串口则不一样,因为它是真正的在电脑上模拟了一个串口,一般的编程软件都可以对这个串口进行读写操作。
另一种方式是单独开发的USB编程器,其功能包含了USB接口和下载线(也有一部分还带有编程器等功能),一些USB编程器内部结构是一个USB转串口的芯片转成串口后再接后续编程电路,这样的方式与单独的USB转串口加下载线的原理和连接是相同的。
不管是哪一种下载线,都需要对应的驱动程序和下载程序,当然,这些下载线也支持在线仿真等功能。
为了实现计算机中不需要安装下载线驱动程序,在对下载线控制系统调试完成后,计算机系统就可使用系统中自有的USB驱动程序实现程序对下载线进行读写,这样既能保证了在所有计算机上都可以通用,又实现了在计算机中不需要专用的下载程序,只需要如磁盘操作一样进行复制、粘贴或其他文件复制操作即可将程序写入单片机。
2.2选用接口器件
在考虑了若干USB接口芯片后,选用Philips公司的PDIUSBD12作为系统的USB接口芯片,该芯片仅是一块USB转并行接口的系统芯片,所有的应答数据都由单片机提供,能够满足设计需要。
PDIUSBD12是一款性价比很高的USB器件,完全符合USB1.1版的规范,PDIUSBD12通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口。PDIUSBD12引脚功能如图1所示。
图1 PDIUSBD12引脚图
2.3 PDIUSBD12与单片机连接
在Philips的PDIUSBD12文档中,发布了一个与80C51的典型应用电路,如图2所示。
图2 与8051并行接口举例
在图2中,ALE接为低电平,表示一个独立的地址和数据总线配置。PDIUSBD12的A0脚与80C51的任意一个I/O口相连。该端口控制PDIUSBD12的命令和数据状态。80C51的多位地址和数据总线可直接与PDIUSBD12的数据总线相连。
80C51的频率输入可由PDIUSBD12的CLKOUT提供。
2.4下载线接口电路
下载线的电路由三个部分组成,分别是单片机控制部分、USB接口处理电路和下载线接口电路。
其中USB接口处理电路是采用D12芯片与系统控制单片机芯片的连接方式采用了模拟总线的方式进行连接,数据端口连接到单片机的P0端口,并在P0端口上接了一个上拉排阻实现了端口输出高电平。将D12的读写控制分别接到P3.6和P3.7引脚,地址端A0接到P1.1引脚上。其时钟信号从CLKOUT输出,连接到单片机AT89S52的XTAL1上,作为单片机的时钟信号,电路如图3所示。
图3 USB接口与控制单片机电路
下载线接口采用P2的部分引脚进行控制,分别是P2.0接OE端控制输出端口是否有效,P2.1接SCLK、P2.3接MOSI、P2.5接MISO构成模拟SPI接口,P2.7控制目标芯片的RESET引脚使其进入串行下载模式。另外,保留了P30和P31作为异步串行通信端口,作为系统调试端口,P15、P16、P17和RESET与VCC、GND连接到系统控制芯片的程序下载接口。
为了保证在没有写程序时不影响单片机的工作,所有与单片机连接的下载线接口都应保持高阻状态,在需要编程时又能够将对应的电平影响单片机引脚,所以在设计中,参考了原altera并口下载线的接口电路,采用三态的总线驱动芯片74HC244作为下载线接口驱动电路。具体的接口电路如图4所示。
图4下载线接口电路。
下载线接口从1脚至6脚,依次是:地、复位、MOSI、MISO、SCK、VCC.
3 PCB设计
3.1调试端口
考虑到在具体调试时,下载线采用了串口作为调试端口,将从USB端口接收到的数据通过串口线重新发回计算机,在计算机中使用串口调试助手显示内容。故将其振荡脉冲由外部D12送过来的信号改为由单片机外接11.0592MHz晶振与振荡电容产生的频率,以满足硬件调试需要。
3.2 PCB制作
在完成了电路原理图的情况下,根据下载线电路原理图设计了PCB电路图,如图5所示。图5是一双面的PCB,图5(a)顶层线路,图5(b)底层线路。
图5(a)顶层线路
图5(b)底层线路
在完成软件设计后,用此下载线将单片机与计算机连接,很好的实现了程序下载。
4结束语
本文所设计的下载线能够实现与计算机的USB端口连接,通过在单片机向计算机声明为程序下载设备,成为计算机的一个常规设备,通过安装对应的驱动程序后,下载线的硬件就能够正常工作。
同时,对目标单片机来说,采用了74HC244作为驱动器件,符合常规单片机的驱动要求。在单片机中只要按照目标单片机的下载时序,编写对应的单片机下载程序,即可将从计算机来的代码转发到目标单片机,从而实现单片机的程序下载。