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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的三線制同步串行通信控制器設(shè)計(jì)

          基于FPGA的三線制同步串行通信控制器設(shè)計(jì)

          作者: 時(shí)間:2012-08-23 來源:網(wǎng)絡(luò) 收藏

          如圖3所示,根據(jù)設(shè)計(jì)要求,可將劃分成3個(gè)主要功能模塊:接口模塊、接收模塊和發(fā)送模塊。

          三線制同步串行通信控制器結(jié)構(gòu)圖
          圖3 結(jié)構(gòu)圖

          (1)接口模塊:用于各種全局信號的邏輯組合譯碼控制。同時(shí),對輸入的系統(tǒng)時(shí)鐘進(jìn)行時(shí)鐘分頻,為接收模塊和發(fā)送模塊提供串行同步時(shí)鐘信號。

          (2)接收模塊:用于接收外圍串行設(shè)備傳來的串行數(shù)據(jù),此功能模塊的核心是接收FIFO和串/并變換兩大模塊,其中接收FIFO作為數(shù)據(jù)緩沖器暫存接收到的數(shù)據(jù)。在接收數(shù)據(jù)標(biāo)志、接收移位寄存器和接收移位計(jì)數(shù)器的配合驅(qū)動(dòng)下,串行數(shù)據(jù)按照MSB先、LSB后的順序經(jīng)過串/并變換后,并行數(shù)據(jù)被存儲(chǔ)于接收FIFO中,等待中斷響應(yīng)后CPU對數(shù)據(jù)進(jìn)行處理。

          (3)發(fā)送模塊:用于向外圍串行設(shè)備發(fā)送串行數(shù)據(jù),此功能模塊的核心是發(fā)送FIFO和并/串變換兩大模塊。CPU將要發(fā)送的數(shù)據(jù)先放到系統(tǒng)的并行數(shù)據(jù)總線上,并被暫存于發(fā)送FIFO中,在響應(yīng)發(fā)送中斷信號后,并行數(shù)據(jù)按照MSB首發(fā)、LSB后發(fā)的順序,在控制信號驅(qū)動(dòng)下,經(jīng)過并/串變換,發(fā)送的數(shù)據(jù)最終以串行數(shù)據(jù)格式被送往外圍串行設(shè)備端口。

          IP核實(shí)體名接口用VHDL語言定義如下:

          ENTITY SerSendRec IS

          PORT( RST_n:IN STD_LOGIC;

          Clk:IN STD_LOGIC;

          Cs:IN STD_LOGIC;

          Strobe:IN STD_LOGIC;

          Rw:IN STD_LOGIC;

          Addr:IN STD_LOGIC_VECTOR(2 DOWNTO 0);

          Rdata:IN STD_LOGIC;

          Rclk:OUT STD_LOGIC;

          Rgate:OUT STD_LOGIC;

          Int:OUT STD_LOGIC;

          Sdata:OUT STD_LOGIC;

          Sclk:OUT STD_LOGIC;

          Sgate:OUT STD_LOGIC;

          Data:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0));

          END SerSendRec;




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();