3.1 需求分析
根據(jù)對(duì)實(shí)際應(yīng)用環(huán)境的分析,USB/EPP轉(zhuǎn)接系統(tǒng)需要完成以下功能:
(1) 接收來自主機(jī)的USB 數(shù)據(jù),將其轉(zhuǎn)換為符合具體外設(shè)要求的EPP數(shù)據(jù)格式傳輸給外設(shè);
(2) 接收來自外設(shè)的EPP數(shù)據(jù)格式的數(shù)據(jù),按照USB 協(xié)議要求打包后傳遞給主機(jī)。
3.2 USB/EPP轉(zhuǎn)接系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)
在本文所論述的設(shè)計(jì)中,考慮到系統(tǒng)設(shè)計(jì)的方便性和未來升級(jí)的需要,選擇了Cypress公司的AN2131SC芯片作為主要的核心器件,該控制器采用了增強(qiáng)型8051內(nèi)核,其指令集與標(biāo)準(zhǔn)8051單片機(jī)完全兼容,但性能是標(biāo)準(zhǔn)8051的3~5倍。系統(tǒng)的硬件原理圖如圖2所示:
圖2 USB/EPP轉(zhuǎn)接系統(tǒng)硬件原理圖
由圖2可見,該系統(tǒng)由USB控制處理器AN2131SC、電源供給及轉(zhuǎn)換模塊、USB控制處理器固件加載電路、USB設(shè)備外部喚醒電路、I/O口信號(hào)電平轉(zhuǎn)換電路、以及USB總線及EPP總線接口等部分組成。
(1)電源供給及轉(zhuǎn)換模塊
在設(shè)計(jì)中采用通過USB接口直接供電的方式。PC機(jī)的一個(gè)USB接口可以為外設(shè)提供5V電壓,最大500mA電流的電源。此外,還采用了一片線性穩(wěn)壓芯片MAX882完成5V到3.3V電壓的轉(zhuǎn)換,用于提供USB控制處理器芯片AN2131SC及串行存儲(chǔ)器EEPROM 24LC01等芯片所需的3.3V工作電源。
(2)USB控制處理器AN2131SC
AN2131SC是內(nèi)嵌有一個(gè)USB收發(fā)器,一個(gè)智能USB串行接口引擎(SIE),一個(gè)加強(qiáng)的8051內(nèi)核,存放程序、數(shù)據(jù)的RAM存儲(chǔ)器以及高性能I/O端口和I2C接口 (如圖3 所示) 。
圖3 AN2131SC片內(nèi)功能結(jié)構(gòu)
圖3中,USB收發(fā)器與USB總線的引腳D+和D-相連,串行接口引擎用來直接實(shí)現(xiàn)對(duì)串行數(shù)據(jù)編解碼、錯(cuò)誤校驗(yàn)、比特填充等USB總線所需的信號(hào)等級(jí)的細(xì)節(jié),最終實(shí)現(xiàn)與USB總線接口的數(shù)據(jù)傳輸而無須外界干預(yù)。由于使用片內(nèi)RAM作為程序代碼和數(shù)據(jù)存儲(chǔ)器,因此用戶可以自行裝載固件代碼和數(shù)據(jù)來實(shí)現(xiàn)具體USB應(yīng)用系統(tǒng)的設(shè)計(jì)功能。片內(nèi)的SIE/USB接口負(fù)責(zé)處理USB總線的底層協(xié)議,簡化了8051的代碼編寫工作。
(3)USB控制處理器固件加載電路
為了實(shí)現(xiàn)AN2131SC的枚舉和重枚舉,需用到AN2131SC中的I2C控制器。其過程是:在USB/EPP轉(zhuǎn)接系統(tǒng)上電、主機(jī)枚舉之前,AN2131SC自動(dòng)通過I2C接口的串行EEPROM讀取首字節(jié),確定EZ-USB加載模式。在本系統(tǒng)中,設(shè)定EEPROM的首字節(jié)0xB0,確定EZ-USB加載模式為由EZ-USB提供描述符,EEPROM提供枚舉所需的PID、VID、DID等數(shù)據(jù),設(shè)置RENUM=0,然后主機(jī)操作系統(tǒng)加載與該P(yáng)ID/VID/DID匹配的驅(qū)動(dòng)程序的具體方式。初始化枚舉后,驅(qū)動(dòng)程序下載固件程序代碼和USB總線設(shè)備描述符數(shù)據(jù)到AN2131SC片內(nèi)的RAM中,啟動(dòng)AN2131SC片內(nèi)8051內(nèi)核進(jìn)行重枚舉,由固件程序代碼實(shí)現(xiàn)USB/EPP轉(zhuǎn)接的功能。設(shè)計(jì)中選用串行EEPROM芯片24LC01B作為AN2131SC的I2C接口存儲(chǔ)器,其容量為1kB。
USB控制處理器AN2131SC由USBCS(USB控制和狀態(tài))寄存器中的DISCON、DISCOE和RENUM三個(gè)位控制固件加載的重枚舉過程。為了模仿USB設(shè)備的斷開,8051將00001010b寫入U(xiǎn)SBCS寄存器,使得#DISCON引腳懸空,并提供一個(gè)內(nèi)部DISCON信號(hào)給EZ-USB內(nèi)核,觸發(fā)斷開事務(wù)處理過程。為了和USB總線連接,8051對(duì)USBCS寫入00000110b,從而產(chǎn)生一個(gè)邏輯高電平到#DISCON引腳,并啟動(dòng)輸出緩沖;同時(shí)設(shè)置RENUM位為1,表明正在控制USB傳輸。
(4)USB設(shè)備外部喚醒電路
USB控制處理器AN2131SC支持USB設(shè)備的休眠與喚醒功能。當(dāng)USB總線上超過3ms沒有總線活動(dòng)之后,USB端口就可以通過主機(jī)發(fā)送掛起信號(hào)(Suspend)設(shè)置成低功耗狀態(tài)。
對(duì)于進(jìn)入休眠狀態(tài)的USB設(shè)備,可以通過USB總線的喚醒信號(hào)或AN2131芯片上的喚醒引腳(#WAKEUP)來觸發(fā)中斷,使AN2131芯片上8051核重新進(jìn)入工作狀態(tài)。
考慮到大多數(shù)EPP接口的外設(shè)都是在主機(jī)命令控制下進(jìn)行工作,并不需要使用外部喚醒功能。因此,在本系統(tǒng)將#WAKEUP引腳通過10kΩ的上拉電阻接至電源,屏蔽外部喚醒功能。
(5)I/O口電平轉(zhuǎn)換電路
并行接口電路中,最小邏輯1的輸入電平為3.5V,最大邏輯0的輸入電平為1.0V。由于AN2131SC芯片采用3.3V電源供電,因此I/O口輸出電平的邏輯1也在2.4V之上。因此,不能直接將AN2131SC的I/O口與原并行接口電路的ID0~I(xiàn)D7、C0~C3和S4~S7相連,必須進(jìn)行電平轉(zhuǎn)換。
圖2中,74FCT16245是5V供電的16位雙向收發(fā)器,用于將AN2131SC作為輸出用途的I/O口PC0~PC7和PB0~PB3的3.3V電平轉(zhuǎn)換為5V電平,分別與并行接口電路的ID0~I(xiàn)D7和C0~C3相連。MC14504B是一個(gè)六電平轉(zhuǎn)換器,可以將TTL或者CMOS電平轉(zhuǎn)換為CMOS電平。
4. 結(jié)束語
本系統(tǒng)提出的USB-EPP轉(zhuǎn)接系統(tǒng),可將僅具有EPP接口的傳統(tǒng)儀器設(shè)備通過USB接口統(tǒng)一接入到計(jì)算機(jī)主機(jī)系統(tǒng)上來。在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天,對(duì)于解決計(jì)算機(jī)主機(jī)系統(tǒng)不斷更新、多個(gè)儀器設(shè)備同時(shí)連接到計(jì)算機(jī)主機(jī)系統(tǒng),儀器設(shè)備即插即用等新的要求具有實(shí)際意義。本轉(zhuǎn)接系統(tǒng)已經(jīng)得到實(shí)際應(yīng)用,取得了良好的效果。





