新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > FPGA單片機帶你領略如何實現多機串行通信網絡

        FPGA單片機帶你領略如何實現多機串行通信網絡

        作者: 時間:2014-01-16 來源:網絡 收藏
        order: none; vertical-align: middle; ">

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

        圖3 內部功能模塊示意圖

        內部共有16對讀/寫和數據總線,分別連接UART和相應的發送緩沖區RAM及接收緩沖區RAM。

        內部模塊采用自頂向下的設計方法,將復雜系統劃分為簡單系統,然后通過邏輯和接口設計實現各個模塊功能。SRAM控制器用于FPGA和C8051F020的接口,負責內部RAM的讀寫控制。UART負責接收從上傳的串行信號,將其并行化后存入接收數據緩沖RAM;另外也負責將發送緩沖RAM中的數據轉換成符合RS232協議規范的串行信號發送給從。SRAM控制器和UART模塊同樣采用自頂向下的方式實現,關于SRAM控制器及UART的FPGA實現方案在參考文獻中有詳細的論述[56],本文不再介紹。

        FPGA內部系統采用同步有限狀態機(FSM)的設計方法實現,FSM負責調配各功能模塊之間的協作。狀態機采用獨熱(onehot)編碼,使電路的可靠性和速度有顯著的提高。系統狀態轉移圖如圖4所示。

        FPGA單片機帶你領略如何實現多機串行通信網絡

        圖4 有限狀態機狀態轉移圖

        2.3 通信協議設計

        和上位機的通信速率及FPGA和從單片機的通信速率均設置為38.4 Kbps,可以更精確的控制主單片機與各個從單片機之間的通信時間。通信指令由報頭、設備類型、設備號、命令號、命令數據、校驗等字段組成。報頭用于通知單片機開始串行通信,設備類型和設備號用于將指令正確傳達到相應的設備,命令號用于通知單片機指令,命令數據用于通知單片機具體的功能,校驗則采用CRC校驗以保證通信的準確性。寫入控制命令號為00H,讀取命令號為01H,讀取指令命令數據為0字節。通信指令的幀格式如下:

        FPGA單片機帶你領略如何實現多機串行通信網絡

        單片機接收到控制命令后,如果接收正確,返回00H,若錯誤則返回01H。返回幀格式為:

        FPGA單片機帶你領略如何實現多機串行通信網絡

        讀取指令沒有命令數據,幀格式為:

        FPGA單片機帶你領略如何實現多機串行通信網絡

        接收后單片機返回幀格式為:

        FPGA單片機帶你領略如何實現多機串行通信網絡

        結語

        本文介紹了在FPGA上集成多個UART的方法,并以此為基礎搭建了一個多單片機通信網絡。設計中采用FPGA作為串行接口擴展器件與傳統器件相比具有功能靈活、擴展性好的特點。通過實驗證明,該通信網絡相對于傳統的總線拓撲網絡具有速度快、實時性好的特點,同時該網絡可以根據外設需要隨意擴展,非常適合應用于監督計算機控制系統和集散控制網絡。

        fpga相關文章:fpga是什么


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 精河县| 潞城市| 建始县| 汤原县| 上饶县| 香港 | 德州市| 卓尼县| 西安市| 阆中市| 新巴尔虎左旗| 吉木萨尔县| 谢通门县| 西乌珠穆沁旗| 泸溪县| 沙坪坝区| 洪雅县| 长岭县| 凤阳县| 牡丹江市| 鱼台县| 望城县| 安义县| 临朐县| 辛集市| 阿克苏市| 定日县| 方城县| 赤峰市| 吉木萨尔县| 宾川县| 牡丹江市| 平利县| 桐城市| 阜康市| 彰武县| 竹山县| 长阳| 临潭县| 襄汾县| 永修县|