當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀] 摘 要: 采用Cypress公司的CY7C68013芯片設(shè)計了通用的USB接口,結(jié)合MAX7128的串/并/串轉(zhuǎn)換和光纖收發(fā)系統(tǒng),實現(xiàn)數(shù)據(jù)的高速傳輸。介紹了系統(tǒng)的軟硬件結(jié)構(gòu), 詳細介紹了固件設(shè)計和WDM驅(qū)動程序的結(jié)構(gòu)、特性、工作機

   摘  要: 采用Cypress公司的CY7C68013芯片設(shè)計了通用的USB接口,結(jié)合MAX7128的串/并/串轉(zhuǎn)換和光纖收發(fā)系統(tǒng),實現(xiàn)數(shù)據(jù)的高速傳輸。介紹了系統(tǒng)的軟硬件結(jié)構(gòu), 詳細介紹了固件設(shè)計和WDM驅(qū)動程序的結(jié)構(gòu)、特性、工作機制、軟件流程及與USB設(shè)備通信的方法。測試表明,該系統(tǒng)達到了預(yù)期的設(shè)計目標(biāo)和實用要求。

  USB控制器是以USB串口引擎為主的專用集成電路,并可延伸至對其進行管理的MCU以及相應(yīng)的軟硬件。目前市場上供應(yīng)的USB控制器主要有2種:帶USB接口的單片機(MCU)或純粹的USB接口芯片。帶USB接口的單片機可分為2類:一類是從底層設(shè)計專用于USB控制的單片機,如Cypress公司的CY7C63513、CY7C64013等[1],由于開發(fā)工具的專用性,往往應(yīng)用于各種專業(yè)應(yīng)用場合,如微機主板等[2-4];另一類是增加了USB接口的普通單片機,如Intel公司的8X931、8X930以及Cypress公司的EZ-USB,由于均基于8051內(nèi)核,因而得到了廣泛應(yīng)用。

  1 CY7C68013與系統(tǒng)結(jié)構(gòu)簡介

  Cypress公司的CY7C68013芯片是集成USB2.0協(xié)議的微處理器,支持12 Mb/s的全速傳輸和480 Mb/s的高速傳輸,具有控制傳輸、中斷傳輸、塊傳輸和同步傳輸4種傳輸方式,內(nèi)部包括一個增強型8051處理器內(nèi)核、一個串行接口引擎(SIE)、一個USB收發(fā)器、8.5 KB片上RAM和4 KB FIFO存儲器以及一個通用可編程接口(GPIF)。8051可工作在48 MHz/24 MHz/12 MHz時鐘頻率,內(nèi)部可自動產(chǎn)生480 MHz的頻率供USB2.0串行收發(fā)引擎使用。由于數(shù)據(jù)緩沖器與SIE相連接,數(shù)據(jù)進入收發(fā)器后,通過SIE可直接轉(zhuǎn)向FIFO,通過8 bit或16 bit數(shù)據(jù)接口與外設(shè)連接,存取數(shù)據(jù)。微控制器不參與數(shù)據(jù)傳輸,但允許以FIFO或RAM的方式訪問這些共享FIFO,從而實現(xiàn)低速控制、高速傳輸。CY7C68013有GPIF/SLAVE FIFO/GPIO 3種接口模式,本系統(tǒng)采用Slave FIFO接口模式,選用控制傳輸和塊傳輸2種方式,外部控制器可像普通FIFO一樣對FIFO進行讀寫。

  本數(shù)據(jù)傳輸系統(tǒng)分為3部分:發(fā)送端和接收端、CY7C68013控制器、具有并/串(或串并轉(zhuǎn)換)功能的CPLD芯片(MAX7128)以及光纖傳輸模塊。其中,CY7C68013和MAX7128之間采用并行連接方式,MAX7128與激光發(fā)送(接收)模塊間是串行連接,如圖1(a)所示。


  圖1(a)中,主機將數(shù)據(jù)發(fā)送到CY7C68013端點FIFO緩沖器中,然后CY7C68013將端點FIFO中的數(shù)據(jù)分字節(jié)放到一組I/O口上,并且使能讀信號,MAX7128讀取I/O上的邏輯值,當(dāng)接收512 B后,MAX7128將這512 B的數(shù)據(jù)從低到高串行發(fā)送給激光發(fā)送模塊;數(shù)據(jù)經(jīng)過光纖傳輸,進入激光接收模塊,輸出串行信號,通過MAX7128實現(xiàn)串并轉(zhuǎn)換,數(shù)據(jù)寬度為8 bit,通過CY7C68013的從屬FIFO的寫入時序即可將數(shù)據(jù)寫入CY7C68013的端點緩沖器中。

  USB數(shù)據(jù)傳輸接口開發(fā)分為4個層次,接口硬件、接口軟件、驅(qū)動和應(yīng)用程序如圖1(b)所示。

  2 固件程序設(shè)計

  由于高速數(shù)據(jù)傳輸不需要固件程序參與,固件程序僅僅處理主機的發(fā)送請求。在發(fā)送端,固件將數(shù)據(jù)放置到I/O口上供MAX7128讀取;在接收端,MAX7128完成串并轉(zhuǎn)換后,將數(shù)據(jù)用特定時序?qū)懭隒Y7C68013。此時只需設(shè)定寄存器,固件程序相對簡單,圖2為發(fā)送和接收固件程序流程。


  CY7C68013芯片固件程序負責(zé)處理主(從)機發(fā)送來的各種請求,以完成與外圍電路間的各種數(shù)據(jù)傳輸。本系統(tǒng)固件一共包含九個程序文件,其中的頭文件分別定義了CY7C68013中的寄存器名和特殊功能寄存器、通用的CY7C68013常量、數(shù)據(jù)類型和宏、特殊功能寄存器所需要的同步延遲宏、用來描述CY7C68013狀態(tài)的各種USB描述符、INT2和INT4中斷跳轉(zhuǎn)表等。主函數(shù)負責(zé)處理標(biāo)準(zhǔn)USB請求和自定義請求,控制整個硬件系統(tǒng)的運行。接收端固件主循環(huán)不用做任何操作,與發(fā)送端程序流程圖完全相同。其固件運行的主程序清單如下,負責(zé)處理主機發(fā)出的各種USB請求。

  ……

  TD_Init();//初始化用戶設(shè)備

  EZUSB_IRQ_ENABLE();//使能USB中斷(INT2)

  EZUSB_ENABLE_RSMIRQ();//使能喚醒中斷

  INTSETUP |=(bmAV2EN | bmAV4EN);//使能INT2

  //和INT4中斷跳轉(zhuǎn)向量

  USBIE |=bmSUDAV | bmSUTOK | bmSUSP | bmURES |

  bmHSGRANT;//使能所選擇的中斷

  EA=1;//打開8051中斷

  UsbDisconnect();

  CKCON=(CKCON&(~bmSTRETCH)) | FW_STRETCH_

  VALUE;//設(shè)為0值

  Sleep=FALSE;//清除sleep標(biāo)志

  while(TRUE)//主循環(huán)

  {

  if(GotSUD)//等待SETUP令牌數(shù)據(jù)的到來

  {

  ParseControlTransfer();//處理SETUP令牌數(shù)據(jù)

  GotSUD=FALSE;//清除SUDAV標(biāo)志

  }

  if (Sleep)

  {

  Sleep=FALSE;//清除sleep標(biāo)志

  do

  {

  EZUSB_Susp();//置8051為空閑

  }

  while(!Rwuen&&EZUSB_EXTWAKEUP());

  EZUSB_Resume();//從空閑狀態(tài)恢復(fù)

  }

  TD_Poll();//完成用戶任務(wù)

  }

  ……

  需要強調(diào)的是:固件程序設(shè)計完成后需要進行調(diào)試,確保系統(tǒng)硬件正常工作。

  (1)工作時鐘頻率的確定:晶振兩引腳對地電壓均為1.6 V左右,此時CLKOUT引腳默認輸出為24 MHz,當(dāng)輸出48 MHz時,電壓為2.5 V。

  (2)電平觸發(fā)中斷方式:中斷后一定要讀上次傳輸狀態(tài)寄存器(命令40 H~45 H),以清除中斷寄存器中的中斷標(biāo)志,這樣中斷輸出才能變回高電平。

  (3)使能端口:接收到Setup包后,必須用ACKsetup命令重新使能端口為低電平。

  (4)緩沖區(qū)數(shù)據(jù)標(biāo)志:在向IN端點寫完數(shù)據(jù)后,必須設(shè)置EP2BCH:L,指明緩沖區(qū)中的數(shù)據(jù)有效,示意可以發(fā)送到主機。當(dāng)IN端點的數(shù)據(jù)被外設(shè)讀走后,一定要調(diào)用OUTPKTEND來清除緩沖區(qū)數(shù)據(jù),否則無法向IN端點寫入數(shù)據(jù)。

  在USB設(shè)備枚舉的過程中,可采用USB調(diào)試工具BusHound軟件來抓取它和主機的通信數(shù)據(jù)進行分析,以檢查硬件和固件程序的工作是否正確。

  3 驅(qū)動程序設(shè)計

  為了配合CY7C68013的工作,需要有驅(qū)動程序以使上位機程序能正常訪問USB芯片。以Cypress公司提供的參考程序為基礎(chǔ),增加自定義控制請求即可。

  由于驅(qū)動程序必須和系統(tǒng)的總線驅(qū)動進行通信,系統(tǒng)總線驅(qū)動為WDM(Win32 Driver Model)驅(qū)動。因此,USB驅(qū)動程序采用WDM設(shè)備驅(qū)動程序[8]。由于USB總線驅(qū)動程序(USBD)一般由操作系統(tǒng)提供,負責(zé)與實際的硬件打交道,因此,重點是開發(fā)USB設(shè)備驅(qū)動程序(USB Device Driver)。USB設(shè)備的WDM驅(qū)動程序是通過創(chuàng)建URB(USB請求塊),并向USB總線驅(qū)動程序發(fā)送包含URB的IRP來實現(xiàn)對USB設(shè)備信息的發(fā)送和接收。此外,USB設(shè)備驅(qū)動程序除負責(zé)處理應(yīng)用程序的I/O請求外,還要處理PnP請求。

  CY7C68013的驅(qū)動程序包括2部分:usbfft.sys,專用于下載芯片的固件程序;loaderfft.sys,上位機和CY7-

  C68013進行通訊的部分,用于實現(xiàn)數(shù)據(jù)收發(fā)功能。這2個部分都存放在上位機上,當(dāng)系統(tǒng)上電或USB連接時,固件部分將自動下載到芯片的RAM中供8051執(zhí)行。

  4 應(yīng)用程序設(shè)計

  上位機是人機交互的平臺,需要良好的操作界面。

  應(yīng)用程序是完成數(shù)據(jù)發(fā)送與接收并且對系統(tǒng)進行有效控制的平臺,不僅需要向CY7C68013發(fā)送數(shù)據(jù),還需要將接收的數(shù)據(jù)顯示出來并保存。此外為了系統(tǒng)測試的方便,增加了誤碼率和速率測試模塊,以測試系統(tǒng)的整體性能。

  本系統(tǒng)上位機的主要功能有:(1)文件的發(fā)送;(2)文件的接收;(3)速率測試;(4)誤碼率測試;(5)系統(tǒng)控制,用來獲取CY7C68013描述符以及其內(nèi)部寄存器的情況,并對整個系統(tǒng)進行控制,如使能CY7C68013的數(shù)據(jù)輸出功能及片內(nèi)數(shù)據(jù)轉(zhuǎn)移功能等。

  系統(tǒng)中定義了6個時間控件來完成數(shù)據(jù)的發(fā)送與接收,timer1、timer3和timer4分別完成文件、誤碼率及速率測試的發(fā)送,Timer2、timer6和timer8分別完成文件、誤碼率及速率測試的接收。另外定義了一個時間控件來控制開啟哪一個接收數(shù)據(jù)時間控件。為了保證有效判斷所接收到的數(shù)據(jù)是文件、速率測試還是誤碼率測試數(shù)據(jù),在timer1、timer3和timer4發(fā)送前都先發(fā)送一個512 B的前導(dǎo)包。全為1時表示下一個數(shù)據(jù)包包含著速率測試數(shù)據(jù),全為2時表示下一個數(shù)據(jù)包包含著誤碼率測試數(shù)據(jù),全為3時表示下一個數(shù)據(jù)包包含著文件數(shù)據(jù)。這樣就能判斷出應(yīng)該開啟哪一個接收時鐘。

  具體的文件數(shù)據(jù)處理方法是:文件打開后,先將文件緩沖,定義一個二維數(shù)組:行512 B,列由文件大小決定。數(shù)組的第一個512 B前20 B記錄所發(fā)送文件的大小,并且在最開始的5 B以0xAA填充,表明這個數(shù)據(jù)包是全部文件的開始,當(dāng)文件大小不足填滿最后的512 B時,數(shù)據(jù)補0,但數(shù)組結(jié)尾為0xAA。

  采用CY7C68013設(shè)計的高速數(shù)據(jù)傳輸系統(tǒng),經(jīng)過測試,達到了設(shè)計要求,實現(xiàn)了數(shù)據(jù)的高速傳輸,為下一步開展數(shù)據(jù)編碼/譯碼、調(diào)制/解調(diào)研究打下了良好的基礎(chǔ)。
 

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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