<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于CY7C68013A的USB通信程序開發(fā)設(shè)計(jì)

          基于CY7C68013A的USB通信程序開發(fā)設(shè)計(jì)

          作者: 時(shí)間:2010-08-11 來源:網(wǎng)絡(luò) 收藏

          摘要:總線(Universal Setial Bus通用串行總線)是用來連接外圍設(shè)備與計(jì)算機(jī)的新式接口,文中給出了利用CY7C68013芯片上所集成的I2C控制器來控制設(shè)備上數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法。該方法同時(shí)利用NI公司的LabVIEW來對上位機(jī)進(jìn)行編程,而對設(shè)備則采用控制傳輸方式,這樣同時(shí)保證了傳輸速度和數(shù)據(jù)的正確性。
          關(guān)鍵詞:USB通用串行總線;;Inter-Integrated Circuil;LabVIEW

          本文引用地址:http://www.ex-cimer.com/article/157237.htm

          0 引言
          CY7C68013中集成有增強(qiáng)的8051微控制器及I2C兼容控制器,其傳輸速率可達(dá)100 kHz或400kHz。LabVIEW是一種以圖形化語言為基礎(chǔ)設(shè)計(jì)虛擬儀器的軟件,LabVIEW采用圖形模式的結(jié)構(gòu)框圖來構(gòu)建代碼,LabVIEW由數(shù)據(jù)流驅(qū)動(dòng),數(shù)據(jù)流控制著的執(zhí)行順序。LabVIEW功能強(qiáng)大,它帶有可擴(kuò)展函數(shù)庫和子程序庫的通用程序設(shè)計(jì)系統(tǒng),它的VISA(Virtual InstrumentSoftware Architecture)是一個(gè)用來與各種儀器總線進(jìn)行通訊的高級應(yīng)用編程接口(API),且不受平臺(tái)、總線和環(huán)境的限制。
          I2C (Inter-Integrated Circuit)總線是由飛利浦公司開發(fā)的兩線式串行總線,主要用于連接微控制器及其外圍設(shè)備。它由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成,用于發(fā)送和接收數(shù)據(jù)。其最主要的優(yōu)點(diǎn)是簡單和有效。
          一般情況下,一個(gè)完整的USB系統(tǒng)的軟件通常需要上位機(jī)程序、驅(qū)動(dòng)程序和固件程序三個(gè)部分。

          1 上位機(jī)程序開發(fā)
          采用NI公司的LabvIEW實(shí)現(xiàn)上位機(jī)程序開發(fā),開發(fā)時(shí)可采用控制傳輸方式。控制傳輸中使用函數(shù)“VISA打開”來打開指定的USB設(shè)備,而“VISA USB控制輸出”函數(shù)則用來完成定義請求0xBl,它可將“寫入緩沖區(qū)”中的數(shù)據(jù)寫入FPGA寄存器。使用函數(shù)“VISA USB控制輸入”來完成自定義請求0xB2,并將FPGA寄存器中的數(shù)據(jù)讀回到“讀取緩沖區(qū)”中。其程序框圖如圖1所示。


          波形設(shè)置上位機(jī)程序時(shí),可利用子VI產(chǎn)生彈出窗口的功能來實(shí)現(xiàn)程序通道的設(shè)置,而通過事件結(jié)構(gòu)、case結(jié)構(gòu)、循環(huán)結(jié)構(gòu)則可實(shí)現(xiàn)任意波形產(chǎn)生的子VI;通過case結(jié)構(gòu)可實(shí)現(xiàn)六種基本波形設(shè)置的子VI設(shè)計(jì)。

          2 驅(qū)動(dòng)程序開發(fā)
          設(shè)計(jì)時(shí)可采用NI公司的VISA來開發(fā)驅(qū)動(dòng)程序。當(dāng)進(jìn)行USB時(shí),VISA提供兩類函數(shù)供LabVIEW調(diào)用,即USB INSTR設(shè)備與USB RAW設(shè)備。 USB INSTR設(shè)備是符合USBTMC協(xié)議的USB設(shè)備,使用USB INSTR類函數(shù)控制時(shí),其無需配置NI-VISA;而USB RAW設(shè)備則是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設(shè)備,通信時(shí)都要配置NI-VISA。配置NI-VISA的詳細(xì)步驟和過程可參考NI官方網(wǎng)站上免費(fèi)提供的文檔《使用NI-VISA控制USB設(shè)備》。

          3 固件程序開發(fā)
          構(gòu)成建構(gòu)所需要修改的文件大約有五個(gè)。其中Fw.c為USB固件程序的主文件,為了實(shí)現(xiàn)控制傳輸,需要修改該文件:其一是要聲明用來響應(yīng)自定義設(shè)備請求的兩個(gè)函數(shù),其二是設(shè)置自定義設(shè)備請求的響應(yīng)部分。
          Periph.c首先要設(shè)置初始化函數(shù)TD_Init(void),并應(yīng)設(shè)置與EPOBUF有關(guān)的寄存器、CPU的時(shí)鐘頻率以及與I2C相關(guān)的寄存器:其次還要定義用來響應(yīng)自定義設(shè)備請求的函數(shù)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();