新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > CY7C68013和FPGA的數據通信

        CY7C68013和FPGA的數據通信

        作者: 時間:2013-12-04 來源:網絡 收藏
        TOM: 0px; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 20px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/25px 宋體, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  ALE(IOB0):例如ALE的上升沿,通過IOA端口向傳送控制指令,例如,當IOA=01H時,表示系統開始工作,A/D和D/A轉換器開始啟動。當IOA=88H時,表示轉換結束,將不再接收或發送數據,當IOA=02H時,表示將讀取內狀態寄存器的內容,由讀取兩狀態標志位的0或1,來判斷兩個通道內的4個數據緩沖器的"滿"或"空"狀態,若D/A通道的任一個數據緩沖區為"空",則由FPGA向狀態寄存器的第一個狀態標志位內填1;否則填0;同理,若A/D通道的任一個數據緩沖區為"滿",則由FPGA向狀態寄存器的第二個狀態標志位內填1;否則填0;當IOA=03H時,表示主機將通過USB向D/A通道發送轉換數據,每次發送256個字節,前128字節為D/A轉換的1通道,后128字節為2通道,當IOA=04H時,表示主機將要接收由A/D通道傳送來的數據。

          RD(IOB1):利用RD的上升沿通過IOA端口讀取D/A轉換器轉換來的數據。

          WR(IOB2):利用WR的上升沿通過IOA端口向A/D轉換器發送由主機傳送來的數據。

        4 軟件的實現

          USB與FPGA在Ports模式下數據的傳輸,由于是由內部的CPU核來實現的,因此,對固件程序的編寫顯得比較重要,總的來說,固件程序的編寫有兩種方式:一是由于的內部集成有增強型8051內核,對熟悉8051匯編語言的用戶來說,可以直接利用會匯編語言編寫高效的固件代碼;二是Cypress公司EZ-USB FX2系列配套有現成的固件程序框架函數,用戶需要時,只需添加相應的用戶程序即可。當然,用戶程序中的的實現也就是如何完成通信協議的過程。

          在此,采用后者來完成CY7C68013和FPGA的,實現功能的部分軟件代碼如下(以下代碼均可寫在框架函數void TD_Poll(void)內):

          

        CY7C68013和FPGA的數據通信

          

        CY7C68013和FPGA的數據通信

          

        CY7C68013和FPGA的數據通信

          5 總結

          CY7C68013和FPGA的數據通信中,采用基本的Ports接口模式,利用自動指針方法,通過數字示波器的觀察,完成1KB的傳送,大約需要750μs。與另外兩種模式相比,雖然數據傳輸的速度較低,但作為一種數據傳輸模式,尤其對剛從單片機開發過渡到USB開

        fpga相關文章:fpga是什么


        數字通信相關文章:數字通信原理


        通信相關文章:通信原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宝坻区| 桐庐县| 绵竹市| 治多县| 应城市| 镇雄县| 兴安盟| 洪泽县| 分宜县| 永定县| 博爱县| 瑞金市| 博野县| 澄城县| 阳新县| 陵水| 镇坪县| 安庆市| 循化| 镇宁| 安阳市| 馆陶县| 武鸣县| 鄂托克旗| 德庆县| 汉沽区| 马鞍山市| 万源市| 陕西省| 海兴县| 沈丘县| 四会市| 惠来县| 普安县| 个旧市| 屯昌县| 南安市| 多伦县| 晴隆县| 上饶县| 芮城县|