新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的嵌入式系統USB接口設計

        基于FPGA的嵌入式系統USB接口設計

        作者: 時間:2012-01-24 來源:網絡 收藏

        摘要:的IP-BX電話應用,用于傳統的電話網絡(PSTN)與PC機之間的連接。2.0器件EZ- FX2 CY7C68013A-56工作在slave FIFO模式,為與PC機之間提供數據和命令通道,從而可滿足PC機與之間數據與命令的高速傳輸,實現PSTN與PC機之間的電話通信。硬件調試結果表明工作穩定,通話質量滿足要求。

        本文引用地址:http://www.104case.com/article/149804.htm

        通用串行總線(Universal Serial Bus)是應用于PC領域的技術,已得到廣泛應用。USB2.0已成為目前電腦中的標準擴展接口。本系統的目的在于為公共交換電話網絡(PSTN)和PC機之間提供一個數字接口,中PC機是主機,FPGA的系統是USB設備。該系統是IP-PBX的簡化系統,大量工作由PC的服務器完成,而這里重點介紹以FPGA為控制核心的USB接口設計。

        1 系統結構設計
        該系統通過TRM(Telephone Response Module)和PC服務器實現PSTN網絡和Internet網絡之間自由、高效通話。圖l為整個系統結構示意圖。


        系統工作過程:當有來電時,DAA向FPGA申請中斷。FPGA收到中斷后,使用USB的中斷傳輸向主機報告有外接來電,則PC的應用軟件會提示用戶選擇摘機或拒絕。摘機后,FPGA在接收到命令后就會接通電話,然后語音數據通過USB的同步傳輸進行雙向傳送。當用戶向外撥號時,其過程與來電時的情況是相同的。

        2 系統硬件模塊設計
        2.1系統硬件框圖
        本設計采用FPGA作為核心控制器件,其控制對象是USB2.0接口器件EZ-USB FX2 CY7C68013A-56。圖2為EZ-USB器件工作在Slave FIFO模式下時FX2 USB和FPGA的典型電路連接圖。

        2.2 FPGA和USB簡介
        設計中的核心控制器件FPGA選用Ahrea公司的EP2C8Q208C8,而USB設備器件則選用Cypress公司的CY7C68013A-56。EP2C8Q208C8是Ahera Cyclone II系列器件中的一種,Cyclone II FPGA是基于Stratix II的90 nm工藝生產的低成本FPGA。Cyclone II FPGA的應用主要定位在終端市場,如消費類電子、計算機、工業和汽車等領域。EP2C8Q208C8內部有2個鎖相環(PLL)和8個全局時鐘網絡,8 256個邏輯單元(LE)個,36個M4K RAM,18個乘法器模塊,可用I/O數138個。EP2C8Q208C8具有低成本、高性能、低功耗和對IP-PBX系統的可擴展性(足夠多的I/O接口)的優點,因此這里選擇該器件作為系統的控制器件。
        CY7C68013A-56器件是第1個包含USB2.0的集成微控制器,其內部集成有1個增強型的8051,1個智能USB串行接口引擎(SIE),1個USB數據收發器,3個8位。I/O、16位地址線、8.5 KB RAM和4 KB的FIFO等。增強型8051內核完全與標準805l兼容,而性能可達到標準805l的3倍以上。圖3為CY7C68013A-56的結構框圖。



        CY7C68013A器件在數據傳輸時利用4 KB的FIFO,包含7個端點:EPOIN/OUT,EPlIN,EPlOUT,EP2,EP4,EP6,EP8。其中EPO、EPIIN和EPlOUT是3個64 B的緩沖端點,只能被固件訪問,EP0是默認的數據輸入輸出端口緩存,默認工作于控制傳輸,EPlIN和EPlOUT是獨立的64 B緩存,可以配置成塊傳輸、中斷傳輸或同步傳輸。端點2、4、6、8是大容量高寬帶的數據傳輸端點,可配置為各種帶寬以滿足實際需求。端點2、6能配置成每幀成512 B或l 024 B,并可配置為2、3、4級,則EP2,EP6最大能被配置為4 KB的緩存;端點4、8則能配置為每幀512 B的緩存。

        3 系統軟件設計
        3.1 USB Firmware設計
        由于設計中使用FPGA控制USB設備進行語音電話通信,所以在USB部分使用3種USB傳輸模式:控制傳輸、中斷傳輸、等時傳輸。控制傳輸用于實現設備枚舉主機的標準請求以及廠商自定義請求;中斷傳輸用于實現設備對主機的喚醒,是唯一的設備主動向主機發送數據的傳輸方式;等時傳輸用于實現語音數據的雙向同步傳輸。USB Firmware設計重點是語音的通信段。
        CY7C68013A具有PORTS、Slave FIFO、GPlF共3種工作模式。PORTS模式是最基本的數據傳輸方式,其數據傳輸需CPU直接參與,適于傳輸速率要求不高的場合;GPIF模式是主機方式,內部主機控制端點FIFO;Slave FIFO模式是從機方式,外部控制器,如FPGA、DSP。應用中使用異步FIFO方式,采用內部48 MHz時鐘,自動方式,而固件程序的編寫則以Cypress公司提供的固件程序框架為基礎,在其初始化函數中添加自己的配置代碼。
        在整個系統中,CY7C68013A的固件主要完成以下工作:初始化USB器件;作為USB接口與主機通信并傳輸數據;利用CY7C68013A器件的Slave FlFO接口控制USB器件和外部控制器之間的數據傳輸。因此同件主程序比較復雜,除了上面的TD_lnit()初始化外,還需要大量函數,但基本結構相對簡單,包括3個過程:USB控制器的初始化;主函數,包括處理標準設備請求的代碼;中斷處理,包括處理各種中斷的程序代碼。圖4為同件主程序流程。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武穴市| 射阳县| 平利县| 惠东县| 武强县| 沂源县| 祁东县| 桐梓县| 西安市| 德江县| 邵东县| 哈尔滨市| 河池市| 绩溪县| 沁水县| 昌都县| 郸城县| 吕梁市| 万州区| 阿城市| 平乐县| 米泉市| 南阳市| 皋兰县| 岳西县| 江津市| 阿勒泰市| 舒城县| 宜丰县| 崇信县| 密云县| 喀喇沁旗| 丹阳市| 阜南县| 横峰县| 乐陵市| 江安县| 淮阳县| 威海市| 平阳县| 紫阳县|