<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于FPGA的多通道SSI通信控制器設計

          基于FPGA的多通道SSI通信控制器設計

          作者: 時間:2011-12-26 來源:網絡 收藏

          采用VHDL硬件描述語言,以Xilinx公司的為設計平臺,設計實現(xiàn)了以開源軟核MC8051為核心的控制單元,控制4路SSI協(xié)議模塊的SoPC架構的通信控制器,并對通信控制器進行了功能仿真與驗證。該控制器可靈活進行IP核模塊擴展,并可作為外圍處理機與TI公司TMS320C6000系列DSP進行互連通信,將慢速串行通信任務進行分離,從而減輕DSP的負擔,提高系統(tǒng)的整體性能。

          在嵌入式系統(tǒng)應用領域中,需要完成的任務越來越復雜,應用環(huán)境也越來越惡劣,要求嵌入式計算機在體積不斷減小的情況下,具有更強的處理功能和較低的功耗。本文采用[1]設計技術,利用VHDL硬件描述語言[2],將4個同步串行接口協(xié)議SSI IP核[3]模塊組成一個功能可擴展的SoPC架構的從通信控制器,從而使主從控制器協(xié)同工作,保證了整個嵌入式系統(tǒng)在通信速度達到技術要求的前提下,能更有效地降低系統(tǒng)功耗與體積。

          1 SoPC設計方法

          可編程片上系統(tǒng)SoPC(System on Programmable Chip)(或稱基于大規(guī)模的單片系統(tǒng))是一種靈活、高效的SoC解決方案,將處理器、存儲器、I/O口等系統(tǒng)需要的功能模塊集成到一個PLD器件上,構成了一個可編程片上系統(tǒng),具有靈活的設計方式(可裁減、可擴充、可升級),并具備軟硬件在系統(tǒng)可編程功能。

          圖1為典型的基于IP核庫的SoPC設計流程,主要是利用軟硬件協(xié)同方法完成整個系統(tǒng)設計。

          11.jpg

          2 通信控制器架構模塊組成

          本文采用了一種全新的SoPC體系結構,整個嵌入式系統(tǒng)主要由主控制器和FPGA(從控制器)兩大功能單元組成,其結構如圖2所示。主控制器選用TI公司的TMS320C6713 DSP,虛框內的電路單元則為所設計的多通道同步通信控制器(也即從控制器)。通過TMS320C6713處理器芯片自帶的EMIF模塊與基于FPGA實現(xiàn)的多通道同步通信控制器進行數(shù)據交換?;贔PGA實現(xiàn)的從處理器內部選用MC8051 IP軟核來控制和管理4路SSI協(xié)議通信控制器,TMS320C6713與MC8051之間通過雙端口RAM共享數(shù)據和交換信息,整個系統(tǒng)采用中斷控制方式,實現(xiàn)主/從控制器協(xié)同處理任務。

          12.jpg

          由圖2可知,該SoPC架構控制器內部可劃分為4大模塊:從處理器MC8051 IP核、4路SSI協(xié)議通信控制器、雙端口RAM和中斷邏輯單元。下面分別對4個主要組成模塊進行介紹。

          2.1 從處理器

          為了提高同步通信控制器的自主性與靈活性,在FPGA內部嵌入一個微控制器80C51 IP核作為同步通信控制器的核心控制單元。MC8051 IP軟核的特點主要有:指令集與工業(yè)標準的8051控制器兼容;新的體系結構使單片機處理速度提高了10倍;無多路復用I/O端口,實行輸入和輸出接口完全隔離;256 B的內部RAM;最高可達64 KB的內部ROM和最高可達64 KB的外部RAM;容易調整或改變VHDL源代碼實現(xiàn)相關的核擴展功能;可通過VHDL常量進行參數(shù)化設置。

          圖3是MC8051 IP核的內部功能結構圖。從圖中可以看到,該IP核包括的子模塊有:算術邏輯單元MC8051_ALU、串行接口單元MC8051_SIU、定時器/計數(shù)器單元MC8051_TMRCTR、核心控制單元MC8051_CONTROL、內部數(shù)據存儲單元MC8051_RAM、內部程序存儲單元MC8051_ROM和外部數(shù)據存儲單元MC8051_RAMX。其中,N表示MC8051_SIU和MC8051_TMRCTR兩個單元根據實際需要可靈活制定的個數(shù),其范圍值為1~256,可在VHDL代碼中改變參數(shù)C_IMPL_N_TMR的值進行設置。

          13.jpg13.jpg

          2.2 SSI協(xié)議控制器


          同步串行接口SSI(Synchronous Serial Interface)[4]通信協(xié)議是同步串行通信協(xié)議的一種類型,該協(xié)議主要包含幀同步信號GATE、時鐘信號CLK和串行數(shù)據DATA三類信號,其時序關系如圖4所示。

          14.jpg

          在圖4中,幀同步信號GATE有方式1和方式2兩種可選擇方式協(xié)調控制時鐘信號CLK和串行數(shù)據DATA。方式1用虛曲線①表示,在該方式下,整個系統(tǒng)空閑時,GATE一直處于高電平狀態(tài),當觸發(fā)一個瞬態(tài)低電平脈沖后,DATA在GATE信號的上升沿根據系統(tǒng)配置要求進行傳輸,同時GATE保持高電平。方式2用實曲線②表示,該方式下當系統(tǒng)空閑時,GATE一直處于低電平狀態(tài),當觸發(fā)一個瞬態(tài)高電平脈沖后,DATA在GATE信號的下降沿進行傳輸,同時GATE保持低電平。在上述兩種方式中,DATA可在CLK的上升沿或者下降沿保持穩(wěn)定并進行采集。

          SSI IP核接口信號圖如圖5所示。

          15.jpg

          本文中共定義了4路(A~D)相同結構的SSI IP核,MC8051通過中斷和查詢方式對4路通信協(xié)議控制器進行數(shù)據的收/發(fā)操作控制。

          2.3 雙端口RAM

          MC8051中的外部數(shù)據存儲器MC8051_XRAM存儲空間最高可達到64 KB,本設計用VHDL語言生成一個32 KB的外部數(shù)據擴展雙端口存儲器MC8051_XRAM,一端供MC8051 IP核操作,另一端供DSP操作,通過地址線譯碼,從而為MC8051_XRAM和4路SSI協(xié)議控制器提供cs_x和cs_a~cs_d等片選信號。輸入MC8051_XRAM模塊的地址線為addra(15:0),實際使用到的地址線空間為addra(14:0),支持32 KB尋址空間。

          2.4 中斷邏輯單元

          中斷邏輯單元的操作地址為FFD3H,當DSP向該地址進行寫操作時,中斷邏輯單元將向多通道同步通信控制器發(fā)出低有效的中斷信號;當多通道同步通信控制器中的MC8051向該地址進行寫操作時,中斷邏輯單元將清除中斷。該中斷邏輯單元的信號接口信息如表1所示。

          15.jpg

          選中A路通道對并行數(shù)據的發(fā)送進行仿真測試,其測試仿真如圖7所示。從圖可以看出,并行數(shù)據Data在MC8051工作時鐘Wr_clk和外部分頻時鐘Exclk作用下,通過設置A通道內的寄存器組合達到最終串行數(shù)據的發(fā)送。從而可以驗證,數(shù)據發(fā)送仿真功能正確。

          17.jpg

          選中B路通道對外圍串行數(shù)據的接收進行仿真測試,其測試仿真如圖8所示。從圖可以看出,串行數(shù)據Rxd在MC8051工作時鐘Clk和外部分頻時鐘Exclk作用下,通過配置B通道內的寄存器組合得到并行數(shù)據的接收。從而可以驗證,數(shù)據接收仿真功能正確。

          本文以Xilinx公司的FPGA器件為設計平臺,采用VHDL硬件描述語言,設計了一種SoPC架構的從通信控制器,并對設計方案進行了仿真與驗證,得出了設計方案的正確性,并已成功用于某遙測數(shù)據工程實踐中,因其兼具較高的數(shù)據傳輸率、IP核的可移植性和靈活擴展性而容易推廣使用。

          fpga相關文章:fpga是什么


          數(shù)字通信相關文章:數(shù)字通信原理


          通信相關文章:通信原理




          關鍵詞: FPGA

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();