• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關(guān) 閉

    新聞中心

    EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于P89C61x2和ISP1581的USB接口電路的設(shè)計(jì)

    基于P89C61x2和ISP1581的USB接口電路的設(shè)計(jì)

    作者: 時(shí)間:2007-03-05 來(lái)源:網(wǎng)絡(luò) 收藏

    摘 要:本文主要介紹了采用芯片設(shè)計(jì)測(cè)試系統(tǒng)接口的方法,闡述了硬件、軟件、應(yīng)用程序等的設(shè)計(jì)流程,在試驗(yàn)過(guò)程中實(shí)現(xiàn)了主機(jī)與設(shè)備之間簡(jiǎn)單、可靠的連接和通信。
    關(guān)鍵詞;接口芯片;固件

    本文主要針對(duì)傳統(tǒng)儀器的并行接口設(shè)計(jì)了一種基于單片機(jī)的接口電路。

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

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



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

    ISP1581有兩種工作模式:通用處理器工作模式和斷開總線工作模式。本文的硬件設(shè)計(jì)中通過(guò)設(shè)置BUS-CONF=0實(shí)現(xiàn)斷開總線的工作模式。AD[7:0]為8位的多路復(fù)用地址/數(shù)據(jù),與單片機(jī)的P0口連接;DATA[15:0]為16位的數(shù)據(jù)總線。MODE0接高電平,表示讀或?qū)懶盘?hào)工作在8051類型;ALE與單片機(jī)的ALE相連,實(shí)現(xiàn)地址鎖存; RPU為USB D+線的外部上拉電阻連接端,通過(guò)一個(gè)1.5kW電阻與Vcc(3.3V)相連;RREF連接外部偏置電阻,通過(guò)一個(gè)12.0kW電阻同地端相連,使高速收發(fā)器得到一個(gè)精確的鏡電源。為了實(shí)現(xiàn)良好的EMC特性,所有的電源引腳均連接到由0.01mF和0.1mF電容并聯(lián)后的網(wǎng)絡(luò)中。

    系統(tǒng)的固件設(shè)計(jì)
    單片機(jī)的固件是USB設(shè)備運(yùn)行的核心。主要包括以下幾個(gè)部分:
    Kernel.c: 循環(huán)掃描USB事件;啟動(dòng)設(shè)備和系統(tǒng)的工作;
    Isr.c: 中斷服務(wù)程序;
    Chap9.c:包含標(biāo)準(zhǔn)USB命令,用于在設(shè)備和主機(jī)之間建立一個(gè)基本連接;
    Vendor.c:包含廠商定義命令,處理廠商請(qǐng)求;
    Init.c:初始化單片機(jī)和ISP1581芯片。

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

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

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

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

    圖2 固件程序流程圖

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

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

    參考文獻(xiàn)
    1 周立功.USB2.0與OTG規(guī)范及開發(fā)指南.北京: 北京航空航天大學(xué)出版社,2004
    2 蕭世文.USB2.0硬件設(shè)計(jì).北京:清華大學(xué)出版社,2002



    關(guān)鍵詞: P89C61x2 1581 ISP USB

    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 长泰县| 绥阳县| 辽阳县| 江都市| 永康市| 洪雅县| 五莲县| 文成县| 原阳县| 博客| 腾冲县| 黄冈市| 高台县| 泗水县| 宣汉县| 兴隆县| 浙江省| 通渭县| 宜君县| 仲巴县| 江津市| 中江县| 吴堡县| 舞阳县| 和平县| 永善县| 新郑市| 宣武区| 宜阳县| 巨鹿县| 平远县| 曲阜市| 资阳市| 托里县| 鹤岗市| 德安县| 大英县| 舞阳县| 湛江市| 胶南市| 金湖县|