《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于P89C61x2/ISP1581的USB接口電路的設(shè)計
基于P89C61x2/ISP1581的USB接口電路的設(shè)計
摘要: 本設(shè)計采用控制芯片P89C61x2和接口芯片ISP1581實現(xiàn)USB接口電路的設(shè)計,。將原有的并口改進為USB接口,,支持即插即用和熱插拔.經(jīng)實際試驗驗證,,本系統(tǒng)性能穩(wěn)定可靠,,具有一定的實際應(yīng)用價值,。
關(guān)鍵詞: 開發(fā)工具 P89C61x2 ISP1581 USB
Abstract:
Key words :

  主要芯片介紹

  本設(shè)計采用控制芯片P89C61x2和接口芯片ISP1581實現(xiàn)USB接口電路的設(shè)計,。

  P89C61x2包含1024B RAM,、64KB Flash存儲器,、32個I/O口,、3個16位定位/計數(shù)器、6個中斷源-4個中斷優(yōu)先級-嵌套的中斷結(jié)構(gòu),、1個增強型UART,、片內(nèi)振蕩器和時鐘電路。此外,,器件的靜態(tài)設(shè)計使其具有非常寬的頻率范圍,,可選擇1MHz~12MHz的 晶體振蕩器,。具有兩個軟件可選的節(jié)電模式-空閑模式和掉電模式。

  USB接口芯片ISP1581是一種價格低,、功能強的USB接口器件,,符合USB2.0規(guī)范,并為基于微控制器或微處理器的系統(tǒng)提供了高速USB通信能力,;具有7個IN端點,,7個OUT端點和1個固定的控制IN/OUT端點;可以通過軟件控制與USB總線的連接,;內(nèi)部集成了帶PLL的12MHz晶體振蕩器,;可通過內(nèi)部上電復(fù)位、低電壓復(fù)位電路和軟件復(fù)位,。

  系統(tǒng)硬件設(shè)計

  系統(tǒng)的連接框圖如圖1所示,。

系統(tǒng)的連接框圖


 

  ISP1581有兩種工作模式:通用處理器工作模式和斷開總線工作模式。本文的硬件設(shè)計中通過設(shè)置BUS-CONF=0實現(xiàn)斷開總線

 

的工作模式,。AD[7:0]為8位的多路復(fù)用地址/數(shù)據(jù),,與單片機的P0口連接;DATA[15:0]為16位的數(shù)據(jù)總線,。MODE0接高電平,,表示讀或?qū)懶盘柟ぷ髟?051類型;ALE與單片機的ALE相連,,實現(xiàn)地址鎖存,;RPU為USB D+線的外部上拉電阻連接端,通過一個1.5kΩ電阻與Vcc(3.3v)相連,;RREF連接外部偏置電阻,,通過一個12.0kΩ電阻同地端相連,使高速收發(fā)器得到一個精確的鏡電源,。為了實現(xiàn)良好的EMC特性,,所有的電源引腳均連接到由0.01μF和0.1μF電容并聯(lián)后的網(wǎng)絡(luò)中。

 

  系統(tǒng)的固件設(shè)計

  單片機的固件是USB設(shè)備運行的核心,。主要包括以下幾個部分:

  Kerne1.c:循環(huán)掃描USB事件,;啟動設(shè)備和系統(tǒng)的工作;

  Isr.c:中斷服務(wù)程序,;

  Chap9.c.包含標(biāo)準(zhǔn)USB命令,,用于在設(shè)備和主機之間建立一個基本連接;

  Vendor.c:包含廠商定義命令,,處理廠商請求,;

  Init.c:初始化單片機和ISP1581芯片。

  初始化程序主要初始化各種狀態(tài)變量,,包括單片機的初始化以及設(shè)置ISP1581寄存器,。主要包括地址寄存器,、模式寄存器、中斷配置寄存器,,中斷使能寄存器以及端點寄存器等,。

  USB設(shè)備采用控制傳輸完成枚舉,,從而判斷出設(shè)備的狀況,。

  數(shù)據(jù)傳輸過程采用中斷方式,單片機通過讀取中斷寄存器的狀態(tài)判斷中斷源,,并進入相應(yīng)的中斷處理程序,。ISP1581主要有SETUP中斷、總線掛起中斷以及端點輸入/輸出中斷等,,控制端點設(shè)置64B的緩沖區(qū),,每次只能傳輸64B,傳輸?shù)臄?shù)據(jù)量由單片機控制,。若傳輸?shù)淖止?jié)數(shù)大于64B,,將先傳輸64B,然后判斷剩下的字節(jié)數(shù),,同時確定是否為空包或短包,。如果沒有數(shù)據(jù)傳送到單片機,將發(fā)送一個空包表明數(shù)據(jù)發(fā)送完畢,。

  固件主要完成設(shè)備初始化,、USB協(xié)議標(biāo)準(zhǔn)請求處理以及其它應(yīng)用程序如數(shù)據(jù)交換功能。程序采用C51語言編寫,,使用 Keil公司的uVision2編譯器進行編譯,。

  固件的主循環(huán)流程見圖2。

 

固件的主循環(huán)流程

  設(shè)備驅(qū)動程序和應(yīng)用程序的設(shè)計

  USB設(shè)備驅(qū)動程序的開發(fā),,可采用Drivel Works和Microsoft公司的2000DDK,,并以VC++6.0作為開發(fā)環(huán)境。為了方便用戶開發(fā)USB接口,,在DP-1581的開發(fā)包中提供了一個通用驅(qū)動程序,,該程序可不加修改,直接使用,。在本電路設(shè)計中,,采用的是開發(fā)版自帶的驅(qū)動程序。

  結(jié)語

  本系統(tǒng)將原有的并口改進為USB接口,,支持即插即用和熱插拔.經(jīng)實際試驗驗證,,本系統(tǒng)性能穩(wěn)定可靠,具有一定的實際應(yīng)用價值,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。