當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:USB總線(Universal Setial Bus通用串行總線)是用來(lái)連接外圍設(shè)備與計(jì)算機(jī)的新式接口,文中給出了利用CY7C68013芯片上所集成的I2C控制器來(lái)控制USB設(shè)備上數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法。該方法同時(shí)利用NI公司的LabVIEW來(lái)對(duì)上

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

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

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


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

2 驅(qū)動(dòng)程序開(kāi)發(fā)
    設(shè)計(jì)時(shí)可采用NI公司的VISA來(lái)開(kāi)發(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í),其通信無(wú)需配置NI-VISA;而USB RAW設(shè)備則是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設(shè)備,通信時(shí)都要配置NI-VISA。配置NI-VISA的詳細(xì)步驟和過(guò)程可參考NI官方網(wǎng)站上免費(fèi)提供的文檔《使用NI-VISA控制USB設(shè)備》。

3 固件程序開(kāi)發(fā)
    構(gòu)成建構(gòu)所需要修改的文件大約有五個(gè)。其中Fw.c為USB固件程序的主文件,為了實(shí)現(xiàn)控制傳輸,需要修改該文件:其一是要聲明用來(lái)響應(yīng)自定義設(shè)備請(qǐng)求的兩個(gè)函數(shù),其二是設(shè)置自定義設(shè)備請(qǐng)求的響應(yīng)部分。
    Periph.c首先要設(shè)置初始化函數(shù)TD_Init(void),并應(yīng)設(shè)置與EPOBUF有關(guān)的寄存器、CPU的時(shí)鐘頻率以及與I2C相關(guān)的寄存器:其次還要定義用來(lái)響應(yīng)自定義設(shè)備請(qǐng)求的函數(shù)。
    Fx2.h頭文件中要定義自定義請(qǐng)求。
    Dscr.a(chǎn)51中則需要設(shè)置的是設(shè)備描述符和配置描述符,還有接口描述符。而控制傳輸需要的O端點(diǎn)不需要設(shè)置。
    Syncdly.h中要設(shè)置初始化函數(shù)TD_Init(void)的寄存器。
    本文所介紹的實(shí)例中要用到的I2C總線的讀寫函數(shù)如下:
    首先是:EZUSB_WriteI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中addr用于指定I2C設(shè)備地址;length為傳送數(shù)據(jù)長(zhǎng)度;*dat為發(fā)送數(shù)據(jù)緩沖區(qū)的起始地址:該函數(shù)可用于向EZ-USB I2C接口寫一串?dāng)?shù)據(jù)。在所有提供的數(shù)據(jù)被發(fā)送之前,該函數(shù)立即返回。如果當(dāng)前正在發(fā)送或接收數(shù)據(jù),則發(fā)回FALSE,且數(shù)據(jù)不被發(fā)送。如果端口不忙,數(shù)據(jù)則進(jìn)入隊(duì)列,并返回TRUE。
    第二個(gè)函數(shù)是EZUSB_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C設(shè)備地址;length為傳送數(shù)據(jù)長(zhǎng)度;*dat為接收數(shù)據(jù)緩沖區(qū)起始地址;該函數(shù)用于從EZ-USB I2C接口讀一串?dāng)?shù)據(jù)。在所有被請(qǐng)求的數(shù)據(jù)讀入緩沖區(qū)之前,該函數(shù)立即返回。用戶需要不斷的詢問(wèn)I2C的狀態(tài),以確定數(shù)據(jù)何時(shí)有效。如果當(dāng)前正在發(fā)送或接收數(shù)據(jù),則調(diào)用該函數(shù)時(shí)返回FALSE,數(shù)據(jù)也不被讀出,當(dāng)I2C端口不忙時(shí),則讀取數(shù)據(jù)隊(duì)列并返回TRUE。
    下面給出自定義請(qǐng)求的響應(yīng)程序代碼:
   

4 結(jié)束語(yǔ)
    主要介紹了基于EZ-USBFX2通信的組成部分和設(shè)計(jì)過(guò)程,本設(shè)計(jì)用NI的LabVIEW作為測(cè)試系統(tǒng)信號(hào)源的設(shè)置數(shù)據(jù)傳輸部分,并通過(guò)UCY7C-68013芯片程序較好地達(dá)到了配置信號(hào)源的目的。該通信過(guò)程現(xiàn)已通過(guò)了NI公司的VISAInteractive Control的軟件測(cè)試。事實(shí)上,該USB芯片除了配置作用外,還可以利用其他資源方便地實(shí)現(xiàn)測(cè)試系統(tǒng)的測(cè)試數(shù)據(jù)傳輸,從而達(dá)到充分利用資源的目的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉