基于端口模式的CY7C68013固件程序設計

相關專題: 芯片

1引言

通用串行總線( USB)自從 1994年由微軟等公司共同提出到現(xiàn)在人們所熟知的USB2.0,USB技術不斷發(fā)展成熟。由于具有傳輸速度快、支持熱插拔、即插即用、擴展性強等諸多優(yōu)點,USB已經被廣泛應用于各種 PC標準外設和用戶自定義開發(fā)設備中。正是由于 USB擁有其他接口(如并口、串口)無法比擬的優(yōu)勢,將 USB接口應用到彈載測量系統(tǒng)地面測試臺的設計中,其通用性可擴展性強,能夠提高讀數(shù)速度、簡化電路設計及驅動程序開發(fā)。

完整的 USB系統(tǒng)除了硬件電路外,還包括驅動程序、單片機固件程序。固件是 USB系統(tǒng)的核心,它要響應各種來自系統(tǒng)的 USB設備請求,完成各種數(shù)據(jù)的交換工作和事件處理,直接影響到 USB接口的數(shù)據(jù)傳輸速度[1]。因此,固件程序的編寫是開發(fā) USB設備的關鍵環(huán)節(jié)。

本測試臺上采用的是Cypress公司的EZ-USB FX2系列單片機 CY7C68013。實現(xiàn) USB接口的數(shù)據(jù)通信,CY7C68013可以配置為3種模式:端口模式、 GPIF和Slave FIFO[2]。后兩種模式由于使用FX2的管道連接方法,單片機的 CPU不參與數(shù)據(jù)傳輸,提高了數(shù)據(jù)傳輸速率,從而廣泛應用于圖像、視頻信號采集等大批量數(shù)據(jù)的傳輸中。但使用這兩種模式進行 USB設備的開發(fā)相對較復雜,開發(fā)周期長。至于端口模式,文獻中很少有介紹,由于這種模式下 CPU參與了數(shù)據(jù)傳輸,因此傳輸速率相對較慢 [3],不過端口模式開發(fā)簡單,可以降低工程人員的開發(fā)難度,縮短開發(fā)周期。本測試臺中傳輸數(shù)據(jù)量較少,傳輸速率也要求不高,因此本設計采用端口模式。 測試臺系統(tǒng)總體框圖彈載測量系統(tǒng)地面測試臺由模擬信號源、數(shù)字信號源、圖像信號源、 PCM碼解調模塊、實時監(jiān)測等幾部分組成,系統(tǒng)總體框圖如圖 1所示。

上位機通過 USB接口分別下載模擬量、數(shù)字量及圖像數(shù)據(jù)到各自的信號源存儲器中,而解調出的PCM碼數(shù)據(jù)和實時監(jiān)測數(shù)據(jù)也是經由 USB接口讀回到上位機,從而實現(xiàn)了USB接口的雙向數(shù)據(jù)傳輸。 3硬件連接

CY7C68013與外圍電路連接如圖 2所示。

測試臺下載信號源數(shù)據(jù)時,USB單片機將數(shù)據(jù)先寫入 FIFO1中,F(xiàn)PGA(XC2S50)通過判斷 FIFO1的空信號將數(shù)據(jù)讀出;而回讀時 FPGA將數(shù)據(jù)寫入 FIFO2,當 FIFO2半滿時, USB單片機產生 FIFO2的讀信號將數(shù)據(jù)讀出送至上位機。USB單片機通過 PE口產生不同的狀態(tài)信號(Status[7:0])使系統(tǒng)進行上述不同操作。

4固件程序設計

所有基于微控制器及其外圍電路的功能設備的正常工作都離不開固件的參與,固件程序是基于微控制器設備運行的核心。固件設計的目標就是控制硬件來完成預期的設備功能。USB設備也不例外,用戶必須編寫固件程序來輔助硬件完成USB通信任務。CY7C68013芯片的固件程序負責處理上位機發(fā)來的各種 USB設備請求,并負責控制 CY7C68013與外圍電路進行數(shù)據(jù)傳輸,其工作主要包括以下幾點[4]:

(1)初始化工作,包括設置一些特殊功能寄存器的初值以實現(xiàn)所需的設備屬性或者功能;

(2) 對設備進行重新列舉(ReNumeration),主要的工作有:模擬設備的斷開與重新連接、對接收到的設置包進行分析判斷、對主機的設備請求作出適當?shù)捻憫,完成主機對設備的配置任務;

(3)響應中斷,并對中斷作相應的處理。USB接口在設備列舉、響應主機標準請求和廠商請求、數(shù)據(jù)傳送等動作過程中都會向微控制器申請中斷,因此微控制器必須正確處理這些中斷才能保證 USB傳輸?shù)恼_M行;

(4)數(shù)據(jù)的接收與發(fā)送。USB設備的主要任務就是進行數(shù)據(jù)的接收和發(fā)送,因此CY7C68013的固件程序必須要對接收和發(fā)送數(shù)據(jù)的端點進行正確的配置及控制,才能正確地接收和發(fā)送數(shù)據(jù);

(5)外圍電路的控制。USB接口要進行數(shù)據(jù)傳輸,CY7C68013就必須對外部 FIFO進行讀寫控制,因此固件程序中包含對外圍電路進行控制的代碼也是必要的。

作者:寇靜 來源:21IC電子網


微信掃描分享本文到朋友圈
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5GNTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網白皮書
  • 8、回復“5GX3”免費領取《R1623501-g605G的系統(tǒng)架構1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息