• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術 > 設計應用 > 經USB端口的模擬和數字I/O

    經USB端口的模擬和數字I/O

    ——
    作者: 時間:2005-06-27 來源: 收藏

    本文給出通過計算機端口得到16位數字I/O和12位模擬I/O。用Gigatechnology 模塊和 LTC1286ADC、LTC1451DAC 實現本設計。
    模塊
    USB模塊接入USB總線,它提供字節寬的雙向信號。4個其他信號控制數據流。為了從PC得到數據,等待直到*RXF輸出為高態和*RD輸入為低態為止,然后數據呈現在雙向引腳。在*RD變化狀態之后,*RXF輸出變高態。重復此過程直到讀出所有數據為止。在*WR輸入的負沿送數據到PC,*TXE輸出應變高態。當它再次變低態時,可以發送更多數據。
    數據輸出
    從PC送數據到USB模塊,過程為:
    * 打開器件。
    * 從PC發送代表數據的字符串。
    * 關閉器件。
    當從PC發送數據到模塊時,Visual Basic程序檢測代表數字數據的檢查單元中的變化或定義ADC輸出的區域中設置變化。程序匯編字符串,每個字符的bit5和bit2表示被發送的模擬和數字數據。Bit3表示選通數據進入74HC595輸入寄存器(圖2)和LTC1451寄存器的時鐘信號(圖3)。在數據正確地放送后,后跟兩個字符。Bit1選通數據進入74HC595輸出并驅動LTC1451門*CS輸入。
    盡管DAC是12位器件,但它可以接收16個時鐘脈沖,它仍然能正確工作,這是因為恰當地選通*CS輸入。因為它首先接收數據MSB,所以,bit0必須在數字輸出字bit16相當時間發送,bit11與數字輸出字bit4的相當時間發送,這靠軟件實現。
    ADC具有內部2.048V基準和倍數2放大器,因此,毫伏輸出是方便的等效碼。
    數據輸入
    數據輸入過程如下:
    * 打開器件;
    * 從USB模塊中讀表示數據的字符串;
    * 關閉器件。
    為了從USB模塊中讀數據到PC,程序匯編鎖存在74HC589輸入寄存器中的字符中,此時再次用bit1。字符串其后的字符再次選通bit7低態和高態,選通U3a(圖1)并送其Q輸出為1。U3a的Q和*Q輸出信號控制74HC589器件的*SLOAD輸入和LTC1286的*CS輸入。它也去除來自U4的復位信號,允許工作直到共Q9輸出變邏輯1為止,通過U3b復位U3a。當U4工作時,其Q4輸出提供16個時鐘沿來選通來自LTC1286的數據輸入。此信號經反相器也選通74HC589(圖2)和USB模塊的*WR輸入。74HC589和LTC1286 ADC(圖3)在時鐘沿的不同極性轉換數據,而電路能確保USB模塊在有效時鐘沿之間的中間狀態接收數據。
    來自USB模塊的模擬和數字數據分別從模塊返回字符串中bit6和bit4獲得。在*CS有效之后,ADC在第4個時鐘脈沖給出其輸出的最高有效位(D11),其他位緊隨其后,在第15個時時脈沖輸出最低有效位(D0)。為了與數字輸入具有共性,電路中給出第16個時鐘脈沖;在第16個脈沖期間,ADC再一次輸出D1。因此,軟件除去USB所接收的轉換數據最后1位,并轉送剩余的其他正確位。
    因為時鐘率必須低于單純數字情況下的時鐘率,所以,不需要來自USB模塊的*TXE信號。在此采用4MHz振蕩器連率,需要選擇U4的不同輸出以獲得ADC所用的低于200KHz時鐘率。
    在ADC之前有一個1增益運放,提供高輸入阻抗并使ADC所產生的噪聲與輸入隔離。電位器(圖3)補償放大器漂移并設置到零輸入電壓時ADC讀出零。本文所用ADC是12位器件,其輸出碼是:4096



    關鍵詞: USB

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 双牌县| 方山县| 偏关县| 福建省| 镇安县| 金川县| 虹口区| 阳春市| 广平县| 广丰县| 宜兰县| 鹤壁市| 四子王旗| 永仁县| 永州市| 禄丰县| 武功县| 罗源县| 云梦县| 湘乡市| 都江堰市| 梁山县| 揭西县| 曲水县| 洞口县| 宝兴县| 温宿县| 岳普湖县| 华坪县| 西乌| 桐梓县| 外汇| 临邑县| 涟水县| 太湖县| 丹凤县| 阿城市| 仁化县| 都昌县| 阿克陶县| 中西区|