基于P89C61x2和ISP1581的USB接口電路的設計
摘 要:本文主要介紹了采用P89C61x2、ISP1581芯片設計測試系統USB接口的方法,闡述了硬件、軟件、應用程序等的設計流程,在試驗過(guò)程中實(shí)現了主機與設備之間簡(jiǎn)單、可靠的連接和通信。
關(guān)鍵詞:USB;接口芯片;固件
本文主要針對傳統儀器的并行接口設計了一種基于單片機的接口電路。
主要芯片介紹
本設計采用控制芯片P89C61x2和接口芯片ISP1581實(shí)現USB接口電路的設計。
P89C61x2包含1024B RAM、64KB Flash存儲器、32個(gè)I/O口、3個(gè)16位定位/計數器、6個(gè)中斷源-4個(gè)中斷優(yōu)先級-嵌套的中斷結構、1個(gè)增強型UART、片內振蕩器和時(shí)鐘電路。此外,器件的靜態(tài)設計使其具有非常寬的頻率范圍,可選擇1MHz~12MHz的晶體振蕩器。具有兩個(gè)軟件可選的節電模式-空閑模式和掉電模式。
USB接口芯片ISP1581是一種價(jià)格低、功能強的USB接口器件,符合USB2.0規范,并為基于微控制器或微處理器的系統提供了高速USB通信能力;具有7個(gè)IN端點(diǎn),7個(gè)OUT端點(diǎn)和1個(gè)固定的控制IN/OUT端點(diǎn);可以通過(guò)軟件控制與USB總線(xiàn)的連接;內部集成了帶PLL的12MHz晶體振蕩器;可通過(guò)內部上電復位、低電壓復位電路和軟件復位。
系統硬件設計
系統的連接框圖如圖1所示。
圖1系統的連接框圖
ISP1581有兩種工作模式:通用處理器工作模式和斷開(kāi)總線(xiàn)工作模式。本文的硬件設計中通過(guò)設置BUS-CONF=0實(shí)現斷開(kāi)總線(xiàn)的工作模式。AD[7:0]為8位的多路復用地址/數據,與單片機的P0口連接;DATA[15:0]為16位的數據總線(xiàn)。MODE0接高電平,表示讀或寫(xiě)信號工作在8051類(lèi)型;ALE與單片機的ALE相連,實(shí)現地址鎖存; RPU為USB D+線(xiàn)的外部上拉電阻連接端,通過(guò)一個(gè)1.5kW電阻與Vcc(3.3V)相連;RREF連接外部偏置電阻,通過(guò)一個(gè)12.0kW電阻同地端相連,使高速收發(fā)器得到一個(gè)精確的鏡電源。為了實(shí)現良好的EMC特性,所有的電源引腳均連接到由0.01mF和0.1mF電容并聯(lián)后的網(wǎng)絡(luò )中。
系統的固件設計
單片機的固件是USB設備運行的核心。主要包括以下幾個(gè)部分:
Kernel.c: 循環(huán)掃描USB事件;啟動(dòng)設備和系統的工作;
Isr.c: 中斷服務(wù)程序;
Chap9.c:包含標準USB命令,用于在設備和主機之間建立一個(gè)基本連接;
Vendor.c:包含廠(chǎng)商定義命令,處理廠(chǎng)商請求;
Init.c:初始化單片機和ISP1581芯片。
初始化程序主要初始化各種狀態(tài)變量,包括單片機的初始化以及設置ISP1581寄存器。主要包括地址寄存器、模式寄存器、中斷配置寄存器,中斷使能寄存器 以及端點(diǎn)寄存器等。
USB設備采用控制傳輸完成枚舉,從而判斷出設備的狀況。
數據傳輸過(guò)程采用中斷方式,單片機通過(guò)讀取中斷寄存器的狀態(tài)判斷中斷源,并進(jìn)入相應的中斷處理程序。ISP1581主要有SETUP中斷、總線(xiàn)掛起中斷以及端點(diǎn)輸入/輸出中斷等,控制端點(diǎn)設置64B的緩沖區,每次只能傳輸64B,傳輸的數據量由單片機控制。若傳輸的字節數大于64B,將先傳輸64B,然后判斷剩下的字節數,同時(shí)確定是否為空包或短包。如果沒(méi)有數據傳送到單片機,將發(fā)送一個(gè)空包表明數據發(fā)送完畢。
固件主要完成設備初始化、USB協(xié)議標準請求處理以及其它應用程序如數據交換功能。程序采用C51語(yǔ)言編寫(xiě),使用Keil公司的uVision2編譯器進(jìn)行編譯。
固件的主循環(huán)流程見(jiàn)圖2。
圖2 固件程序流程圖
設備驅動(dòng)程序和應用程序的設計
USB設備驅動(dòng)程序的開(kāi)發(fā),可采用Driver Works和Microsoft公司的2000DDK,并以VC++6.0作為開(kāi)發(fā)環(huán)境。為了方便用戶(hù)開(kāi)發(fā)USB接口,在DP-1581的開(kāi)發(fā)包中提供了一個(gè)通用驅動(dòng)程序,該程序可不加修改,直接使用。在本電路設計中,采用的是開(kāi)發(fā)版自帶的驅動(dòng)程序。
結語(yǔ)
本系統將原有的并口改進(jìn)為USB接口,支持即插即用和熱插拔。經(jīng)實(shí)際試驗驗證,本系統性能穩定可靠,具有一定的實(shí)際應用價(jià)值。
參考文獻
1 周立功.USB2.0與OTG規范及開(kāi)發(fā)指南.北京: 北京航空航天大學(xué)出版社,2004
2 蕭世文.USB2.0硬件設計.北京:清華大學(xué)出版社,2002
評論