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