新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于SOPC的嵌入式高速串口設計(06-100)

        基于SOPC的嵌入式高速串口設計(06-100)

        ——
        作者:重慶大學 通信工程學院 何偉 張慧敏 張玲 時間:2008-04-02 來源:電子產品世界 收藏

          無論是主機模塊還是外圍模塊均采用相同的通信設計,通信設計包含兩個主要部分:通信接口部分和管理控制部分。通信接口部分主要完成數據幀結構的封裝和解封裝,并通過幀頭的分析識別進行時隙定位,同時能讓系統內的每一終端實現多機共享通信資源的通信機制,該模塊由VHDL語言實現。管理控制部分由NiosII軟核實現的,為了能在串行通信方式上實現時分復用,進而實現多設備同時通信,系統設計出一套完整而獨特的控制幀格式,并通過這些幀格式控制實現建立連接,撤銷連接和相應管理。因此,利用NiosII的特點,形成特殊的幀頭判決、同步時鐘提取、控制信息的判斷、收發模式變換,這些都依賴專用模塊的實施并靠高速執行速度來適應多終端下的高傳輸速率。

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

          鑒于以上系統架構和設計要求,通信采用模塊化設計思路和方法,模塊結構如圖2所示。

          NiosII軟核CPU開發工具 Builder提供簡潔的操作方式,可將用戶的數字電路模塊封裝成標準的NiosII軟核外設模塊,這使得NiosII軟核可以很容易地與用戶邏輯結合,構成功能更加強大的SOC系統。在高速串口數據通信的設計中,既需要一個高速的處理器作為系統的控制管理核心,又有大量用戶自定義的數字電路功能模塊需要在FPGA芯片中實現,因此,采用FPGA芯片和NiosII軟核CPU作為高速串口數據通信的硬件平臺是一個優化的選擇。
          
          通信接口模塊設計

          通信接口模塊設計采用VHDL語言設計,由兩部分組成:數據幀發送電路和數據幀接收電路。數據幀發送電路將NiosII 要發送的數據、地址按照數據幀格式進行組幀,然后同步傳輸到總線上,該部分設計的關鍵是并串轉換、合并數據和同步控制,數據的發送率為5Mbits/s,而工作時鐘fclk為25MHz,對fclk進行5分頻,得發送時鐘ftxd為5MHz。當有數據要發送時,每一個即ftxd的上升沿到來時傳送數據,先發送幀頭2字節引導序列,即“1110011100111110”,然后發送串行數據。由于NiosII的內部數據寬度通常是32位,故將1字節地址和3字節數據由軟件將其合并成一組32位寬度的數據,合并時地址在低位,數據在高位,然后將要發送的32位數據緩存在一個32位寬度的矢量區間,引導序列結束后從低位到高位依次發送數據,即data[0]、data[1]……data[31],最后發送結束標志字節“1110011”,發送結束。

          接收電路的設計重點考慮的問題是如何準確判斷到數據幀頭,然后解析地址,數據的速率為5Mbit/s,FPGA的工作時鐘fclk為25MHz,參考RS-232串口通信的設計思想,用高倍時鐘對接收的數據進行采樣,即每5個fclk采樣一個bit,此處可以先設計一個5進制計數器,每一次計數,保存采集的數據,在第2、3、4次采樣時,若所采到的值相同,則判斷這個bit為當前的采樣值。在判斷2字節引導序列時采用狀態機設計法和序列檢測器的設計思想,判斷第1個bit是否為‘0’,如果是‘0’則繼續判斷下一bit是否為‘1’,如果是‘1’則一直等待在第1狀態直到判斷到‘0’才跳轉,判斷狀態機如圖3所示。

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


        關鍵詞: SOPC 嵌入式 串口

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 手游| 马鞍山市| 屏东市| 和平区| 四川省| 明水县| 罗平县| 陵水| 项城市| 南充市| 新泰市| 房产| 东乌珠穆沁旗| 阿城市| 三亚市| 绥江县| 班玛县| 绵竹市| 龙川县| 隆昌县| 长汀县| 栾川县| 乌海市| 正安县| 三门县| 吴桥县| 兴业县| 宁陵县| 黄龙县| 当阳市| 平安县| 江西省| 乌拉特前旗| 胶州市| 盈江县| 同心县| 晋中市| 合肥市| 诸暨市| 沾化县| 确山县|