一種AT89S52的USB下載線設(shè)計(jì)
1引言
隨著單片機(jī)技術(shù)的不斷發(fā)展和更新,支持ISP或IAP的單片機(jī)芯片日益增加,這類單片機(jī)芯片的程序下載采用了下載線的方式。這種串行程序下載方式所用的電平為TTL電平,對(duì)單片機(jī)接口來說非常安全。單片機(jī)生產(chǎn)廠商推薦使用ISP程序下載方式,如AT89S5X芯片支持ISP功能,并用AT89S5X芯片取代了AT89C5X芯片。
另一方面,單片機(jī)的程序的寫入也從使用燒寫器寫入演化為使用下載線從計(jì)算機(jī)中將程序直接寫入。下載線就是將計(jì)算機(jī)中的單片機(jī)程序?qū)懭雴纹瑱C(jī)芯片的連接線。下載線與計(jì)算機(jī)的連接接口可分為串口下載線、并口下載線和USB接口的下載線。這種串行程序下載方式所用的電平為TTL電平,對(duì)單片機(jī)接口和單片機(jī)芯片來說更加安全。同時(shí),采用下載線的程序?qū)懭敕绞讲恍枰看螌纹瑱C(jī)從應(yīng)用電路中取下,既節(jié)省了時(shí)間,又完全可靠。
從計(jì)算機(jī)角度來看,今天計(jì)算機(jī)技術(shù)日新月異,計(jì)算機(jī)的外部接口也在不斷的改變,其中主要作為計(jì)算機(jī)外部設(shè)備的外部接口有串行接口、并行接口和USB(Universal SerialBus, USB)接口。而通用串行總線(USB)具有高速、使用靈活方便等特點(diǎn),成為了計(jì)算機(jī)的標(biāo)準(zhǔn)配置,并在計(jì)算機(jī)外部接口不斷增多的趨勢(shì)。為了適應(yīng)現(xiàn)代計(jì)算機(jī)的發(fā)展,采用USB接口的下載線是勢(shì)在必行。
但是,不同的單片機(jī)有不同的下載線,一般來說,對(duì)應(yīng)有不同的下載軟件和硬件驅(qū)動(dòng)程序。這些軟件和程序隨著功能的完善和操作等原因還有不同的版本。這造成下載線的使用者需要不斷的更新軟件,也讓使用者在更換單片機(jī)時(shí)不僅更換下載線,還要熟悉新的下載軟件。為此,如果能設(shè)計(jì)一種不需要下載軟件的下載線或統(tǒng)一操作的下載軟件,則能大大提高單片機(jī)程序下載的操作效率。研究和開發(fā)一種通用而不需下載軟件的USB接口的單片機(jī)的下載線更為必要。
2硬件設(shè)計(jì)
2.1設(shè)計(jì)思想
為了能夠使用和兼容傳統(tǒng)的下載線,一種方式是在計(jì)算機(jī)中連接一個(gè)USB轉(zhuǎn)并口(或串口)的連接線,然后再連接一根傳統(tǒng)的下載線。在市場(chǎng)上,很多USB轉(zhuǎn)并口的線是給打印機(jī)專用的,它并不是一個(gè)模擬并口,而是模擬了一個(gè)USB打印機(jī),是不能用來連接并口下載線進(jìn)行程序下載的。USB轉(zhuǎn)串口則不一樣,因?yàn)樗钦嬲脑陔娔X上模擬了一個(gè)串口,一般的編程軟件都可以對(duì)這個(gè)串口進(jìn)行讀寫操作。
另一種方式是單獨(dú)開發(fā)的USB編程器,其功能包含了USB接口和下載線(也有一部分還帶有編程器等功能),一些USB編程器內(nèi)部結(jié)構(gòu)是一個(gè)USB轉(zhuǎn)串口的芯片轉(zhuǎn)成串口后再接后續(xù)編程電路,這樣的方式與單獨(dú)的USB轉(zhuǎn)串口加下載線的原理和連接是相同的。
不管是哪一種下載線,都需要對(duì)應(yīng)的驅(qū)動(dòng)程序和下載程序,當(dāng)然,這些下載線也支持在線仿真等功能。
為了實(shí)現(xiàn)計(jì)算機(jī)中不需要安裝下載線驅(qū)動(dòng)程序,在對(duì)下載線控制系統(tǒng)調(diào)試完成后,計(jì)算機(jī)系統(tǒng)就可使用系統(tǒng)中自有的USB驅(qū)動(dòng)程序?qū)崿F(xiàn)程序?qū)ο螺d線進(jìn)行讀寫,這樣既能保證了在所有計(jì)算機(jī)上都可以通用,又實(shí)現(xiàn)了在計(jì)算機(jī)中不需要專用的下載程序,只需要如磁盤操作一樣進(jìn)行復(fù)制、粘貼或其他文件復(fù)制操作即可將程序?qū)懭雴纹瑱C(jī)。
2.2選用接口器件
在考慮了若干USB接口芯片后,選用Philips公司的PDIUSBD12作為系統(tǒng)的USB接口芯片,該芯片僅是一塊USB轉(zhuǎn)并行接口的系統(tǒng)芯片,所有的應(yīng)答數(shù)據(jù)都由單片機(jī)提供,能夠滿足設(shè)計(jì)需要。
PDIUSBD12是一款性價(jià)比很高的USB器件,完全符合USB1.1版的規(guī)范,PDIUSBD12通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口。PDIUSBD12引腳功能如圖1所示。
圖1 PDIUSBD12引腳圖
2.3 PDIUSBD12與單片機(jī)連接
在Philips的PDIUSBD12文檔中,發(fā)布了一個(gè)與80C51的典型應(yīng)用電路,如圖2所示。
圖2 與8051并行接口舉例
在圖2中,ALE接為低電平,表示一個(gè)獨(dú)立的地址和數(shù)據(jù)總線配置。PDIUSBD12的A0腳與80C51的任意一個(gè)I/O口相連。該端口控制PDIUSBD12的命令和數(shù)據(jù)狀態(tài)。80C51的多位地址和數(shù)據(jù)總線可直接與PDIUSBD12的數(shù)據(jù)總線相連。
80C51的頻率輸入可由PDIUSBD12的CLKOUT提供。
2.4下載線接口電路
下載線的電路由三個(gè)部分組成,分別是單片機(jī)控制部分、USB接口處理電路和下載線接口電路。
其中USB接口處理電路是采用D12芯片與系統(tǒng)控制單片機(jī)芯片的連接方式采用了模擬總線的方式進(jìn)行連接,數(shù)據(jù)端口連接到單片機(jī)的P0端口,并在P0端口上接了一個(gè)上拉排阻實(shí)現(xiàn)了端口輸出高電平。將D12的讀寫控制分別接到P3.6和P3.7引腳,地址端A0接到P1.1引腳上。其時(shí)鐘信號(hào)從CLKOUT輸出,連接到單片機(jī)AT89S52的XTAL1上,作為單片機(jī)的時(shí)鐘信號(hào),電路如圖3所示。
圖3 USB接口與控制單片機(jī)電路
下載線接口采用P2的部分引腳進(jìn)行控制,分別是P2.0接OE端控制輸出端口是否有效,P2.1接SCLK、P2.3接MOSI、P2.5接MISO構(gòu)成模擬SPI接口,P2.7控制目標(biāo)芯片的RESET引腳使其進(jìn)入串行下載模式。另外,保留了P30和P31作為異步串行通信端口,作為系統(tǒng)調(diào)試端口,P15、P16、P17和RESET與VCC、GND連接到系統(tǒng)控制芯片的程序下載接口。
為了保證在沒有寫程序時(shí)不影響單片機(jī)的工作,所有與單片機(jī)連接的下載線接口都應(yīng)保持高阻狀態(tài),在需要編程時(shí)又能夠?qū)?duì)應(yīng)的電平影響單片機(jī)引腳,所以在設(shè)計(jì)中,參考了原altera并口下載線的接口電路,采用三態(tài)的總線驅(qū)動(dòng)芯片74HC244作為下載線接口驅(qū)動(dòng)電路。具體的接口電路如圖4所示。
圖4下載線接口電路。
下載線接口從1腳至6腳,依次是:地、復(fù)位、MOSI、MISO、SCK、VCC.
3 PCB設(shè)計(jì)
3.1調(diào)試端口
考慮到在具體調(diào)試時(shí),下載線采用了串口作為調(diào)試端口,將從USB端口接收到的數(shù)據(jù)通過串口線重新發(fā)回計(jì)算機(jī),在計(jì)算機(jī)中使用串口調(diào)試助手顯示內(nèi)容。故將其振蕩脈沖由外部D12送過來的信號(hào)改為由單片機(jī)外接11.0592MHz晶振與振蕩電容產(chǎn)生的頻率,以滿足硬件調(diào)試需要。
3.2 PCB制作
在完成了電路原理圖的情況下,根據(jù)下載線電路原理圖設(shè)計(jì)了PCB電路圖,如圖5所示。圖5是一雙面的PCB,圖5(a)頂層線路,圖5(b)底層線路。
圖5(a)頂層線路
圖5(b)底層線路
在完成軟件設(shè)計(jì)后,用此下載線將單片機(jī)與計(jì)算機(jī)連接,很好的實(shí)現(xiàn)了程序下載。
4結(jié)束語
本文所設(shè)計(jì)的下載線能夠?qū)崿F(xiàn)與計(jì)算機(jī)的USB端口連接,通過在單片機(jī)向計(jì)算機(jī)聲明為程序下載設(shè)備,成為計(jì)算機(jī)的一個(gè)常規(guī)設(shè)備,通過安裝對(duì)應(yīng)的驅(qū)動(dòng)程序后,下載線的硬件就能夠正常工作。
同時(shí),對(duì)目標(biāo)單片機(jī)來說,采用了74HC244作為驅(qū)動(dòng)器件,符合常規(guī)單片機(jī)的驅(qū)動(dòng)要求。在單片機(jī)中只要按照目標(biāo)單片機(jī)的下載時(shí)序,編寫對(duì)應(yīng)的單片機(jī)下載程序,即可將從計(jì)算機(jī)來的代碼轉(zhuǎn)發(fā)到目標(biāo)單片機(jī),從而實(shí)現(xiàn)單片機(jī)的程序下載。