1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      USB-GPIB控制器的硬件電路設計

      更新時間: 2006-06-15 17:03:09來源: 粵嵌教育瀏覽量:1218

      引 言
          USB是PC體系中一套全新的工業標準,通用可編程接口GPIB(General Programmable Interface BUS),是Cy-press公司在其EZ-USB FX以及FX2系列單片機里設計的一個可由用戶編程的接口,具有快速、靈活等特點;可使用多種協議完成與外圍器件的無縫連接,如EIDE/ATAPI、IEEE1284、Utopia等。對其可以根據需要進行編程,且運行中不需要CPU的干預,僅通過一些CPU標志和中斷與增強型8051內核通信。作為自動化測試儀器的互聯標準歷史悠久,使用廣泛,組建費用低廉且操作方便,特別是連接臺式機的時候尤其顯得靈活高效。在很多對測試速度要求不高以及對測試儀器體積不作要求的情況下,GPIB總線也有相當的優勢。因此,將USB所具有的獨特優點引入到以GPIB為標準的自動測試系統中,設計基于USB總線的GPIB控制器,對提高便攜式和無外接插槽的自動測試系統整體性能有很大促進作用。


      1  系統總體設計方案
          硬件電路的設計分為硬件和固件兩部分。硬件要實現PC機與USB芯片的通信以及USB與GPIB接口邏輯之間的通信;同樣,固件也要滿足USB接口和GPIB邏輯協議。設計思路就是USB接口與PC機實現通信,并且提供給GPIB的信號線,終建立兩者之間的通信,硬件總體框圖如圖1所示。

          USB主芯片選取了Cypress公司CY7C68013控制芯片,芯片結構如圖2所示。CY7C68013集成了以下特性:USB2.0收發器、SIE(串行接口引擎)和增強型8051微處理器;8051程序從內部RAM開始運行;4個可編程BULK/INTERRUPT/ISOCH-RONOUS端點;8位 16位外部數據接口;通用可編程接口(GPIF);3.3V電源系統;矢量USB中斷;獨立的數據緩沖區供SETUP和DATA包控制傳輸;集成I2C控制器,頻率可達100或400 kHz;4個FIFO,可與ASIC和DSP等無縫連接;專門的FIF0和GPIF自動矢量中斷。
          美國NI公司推出的TMS9914控制芯片是一款高性能CMOS的GPIB接口專用芯片,滿足IEEE488協議的要求;工作在TMS9914模式下,能夠將GPIB母線上的信號按照GPIB協議進行解碼和譯碼轉換為用戶可用的格式,同時將用戶發過來控制GPIB的信號進行處理,按照協議要求發送到GPIB母線上;內部有16個寄存器,分成兩組,一組是只寫寄存器,有8個;另一組是只讀寄存器,有8個。TMS9914內部各個寄存器的狀態決定或標志著芯片及GPIB的工作狀態。在GPIB接口設計中,只有通過編程對寄存器進行正確編排,才能實現對GPIB的各種操作。

      2 硬件設計
      2. 1供電方式

          設計中采用了USB總線供電方式。USB接口從PC機能獲取的電壓為5V,而USB控制芯片CY7C68013的工作電壓為3.3V,GPIB控制芯片TMS9914的工作電壓為5V,所以本設計中選用了Maxim公司的MAX882進行電壓變換。從PC經USB電纜到B端口來的5V電源,
      經去耦合和濾波電路后直接提供給系統中要求在5V正常工作的芯片,如TMS9914、75LS160、75LSl62等;而經MAX882分壓后得到3.3V則提供給USB控制芯片CY7C68013以及LVC245。這樣就可保證整個控制器正常工作。電路中的SN7524,是專門為USB接口電路設計的,抑制USB數據線的瞬時電氣噪聲,如圖3所示。

      2.2 外接EEPROM電路
          系統上電后,USB內核首先檢查I2C總線上是否有EEPROM。如果有,并且其位數據是0xC2,則EZUSB FX2將EEPROM中的內容全部拷貝到內部RAM中,然后重列舉,并開始執行RAM中的固件程序。由于CY68013芯片已經將I2C總線集成,設計轉化為對I2C總線上掛接的EEPROM的設計;由于采用的是24LC64的EEPROM,整個串行I2C總線電路實現的原理如圖4所示。


      3 固件程序設計
          本設計針對的主芯片CY7C68013是以軟件為框架的IC。CY7C68013芯片的固件開發所使用的集成開發環境為KEIL μVision2,編程語言為德國Keil公司的C51。把編輯、編譯、匯編、連接、調試等各階段都集成在一個程序內,先用編輯器編寫程序,接著調用編譯器進行編譯、連接后直接運行,因此可以縮短開發周期。
          固件程序負責處理PC機發來的各種請求,主要負責設備與外圍電路進行數據傳輸。完成一個完整的事務傳輸,除了開發環境Keil包括的文件,還需要Fw.c(固件架構原是程序代碼)、Dscr.a51(USB描述符表)、Ezusb.lib(EZUSB函數庫對象程序代碼)、Periph.c(用戶函數,也就是設計中實現GPIB功能要編寫的函數)以及相關的中斷跳轉函數USBjmpTB.OBJ。功能函數里的TD_Poll()負責完成用戶指定的功能,應該包括一個執行用戶外圍功能的狀態機。從這個函數返回的話,高優先級的任務應該首先執行。
          void TD_Poll(void)
          if(!(EP2468STAT&bmEP2EMPTY)){
          if(!(EP2468STAT&bmEP6FULL))//判斷端點2的FIFO緩沖區是否滿
          {APTRlH=MSB(&EP2FIFOBUF);//自動指針1
          APTRlL=LSB(&EP2FIFOBUF):
          AUTOPTRH2=MSB(&EP6FIFOBUF);//自動指針2
          AUTOPTRL2=LSB(&EP6FIFOBUF);
          count=(EP2BCH<<8)+EP2BCL;
          for(i=0x0000;l<count;i++){
          EXTAUTODAT2=EXTAUTODAT1;//將端點2中斷的數據復制到端點6
          }
          EP6BCH=EP2BCH;//設置端點6的字節數
          SYNCDELAY;
          EP6BCL=EP2BCL,
          SYNCDELAY:
          EP2BCL=0x80;} //設置端點6的字節數
          }

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 欧美三级福利片 | 新久久这里只有精品 | 日本中文字幕有码在线视频三级 | 亚洲欧美另类中文字幕第三页 | 污网站国产大片 | 日韩精品一区二区三区中文不卡 |