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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320C3X串口擴(kuò)展技術(shù)

          TMS320C3X串口擴(kuò)展技術(shù)

          作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:介紹了TMS320C3X 串口的一種擴(kuò)展方法,給出該接口電路的Verilog HDL實(shí)現(xiàn)。該接口電路已被作者應(yīng)用到實(shí)際系統(tǒng)中,仿真和實(shí)踐證明該電路穩(wěn)定可靠,具有一定的應(yīng)用價(jià)值。

          本文引用地址:http://www.ex-cimer.com/article/242382.htm

          關(guān)鍵詞:器 硬件描述語(yǔ)言 接口電路

          TMS320C3X是TI公司生產(chǎn)的第三代器,目前已相繼推出C30、C31、C32和VC33等四種類(lèi)型,由于其性?xún)r(jià)比高而被廣泛應(yīng)用于各個(gè)領(lǐng)域中。

          TMS320C3X是一種32bit的浮點(diǎn),其程序、數(shù)據(jù)和外設(shè)地址都映射在同一存儲(chǔ)空間,并有豐富的尋址方式和較大的尋址空間,因此對(duì)外設(shè)的訪(fǎng)問(wèn)非常靈活方便。但在實(shí)際應(yīng)用中往往也要考慮一些不利因素:一是外部總線(xiàn)速度高、地址線(xiàn)寬,因此增加外對(duì)接口電路的時(shí)序要求較高,且電路連接較復(fù)雜;二是頻繁的外設(shè)訪(fǎng)問(wèn)操作易產(chǎn)生流水線(xiàn)沖突而影響整體性能。的串口有較強(qiáng)的設(shè)備管理能力,與外設(shè)連接也很簡(jiǎn)單,因此成為DSP與低速外設(shè)交換數(shù)據(jù)的首選。但在TMS320C3X系列中,除TMS320C30提供兩個(gè)串口外,其它幾種芯片都只有一個(gè)串口,在很多情況下限制了這些芯片的進(jìn)一步使用。本文針對(duì)C3X串口的特點(diǎn),以TMS320C3X與TLC3204X連接為例,設(shè)計(jì)了一種串口擴(kuò)展方法。

          1 TMS320C3X與TLC3204X連接簡(jiǎn)介

          TLC3204X是TI公司生產(chǎn)的話(huà)帶模數(shù)接口芯片(AIC),可與TMS320C3X等多種DSP芯片的串口直接相連,其A/D、D/A轉(zhuǎn)換精度為14bit,按16bit方式傳送,其中兩位用于芯片控制和啟動(dòng)輔助通信[1]。圖1是TLC3204X與TMS320C3X串口的連接圖[2]。AIC與DSP通過(guò)DX和DR交換數(shù)據(jù),AIC的主時(shí)鐘信號(hào)(MCLK)由DSP的定時(shí)器0提供,而AIC的移位脈沖(SCLK)作為串口的發(fā)送時(shí)鐘(CLKX)和接收時(shí)鐘(CLKR),發(fā)送和接收幀同步信號(hào)分別由AIC的FSX和FSR提供。DSP串口以16位變速傳送方式工作,AIC按字方式傳送數(shù)據(jù)。

          2 TMS320C3X串口擴(kuò)展原理

          一般而言,外設(shè)數(shù)據(jù)字長(zhǎng)較短,而TMS320C3X串口數(shù)據(jù)字長(zhǎng)可靈活配置。利用這一特點(diǎn),只要增設(shè)少量的外部電路,就能在現(xiàn)有基礎(chǔ)上擴(kuò)展接口。在本例中,TLC3204X數(shù)據(jù)是16bit字長(zhǎng),因此只要將TMS320C3X串口設(shè)定為32bit傳送方式,每個(gè)TLC3204X各點(diǎn)用16bit,就能將該串口一分二。圖2為T(mén)MS320C3X與兩片TLC3204X的連接示意圖,其接口電路的設(shè)計(jì)可分為發(fā)送和接收兩部分的設(shè)計(jì)。

          2.1 發(fā)送接口電路

          該接口應(yīng)完成兩個(gè)任務(wù)。一是接收來(lái)自TMS320C3X串口的32bit數(shù)據(jù),由TMS320C3X提供移位脈沖CLKX,幀同步信號(hào)(FSX)由接口電路提供,其時(shí)序如圖3所示。二是將32bit數(shù)據(jù)會(huì)解為兩個(gè)16bit數(shù)據(jù),然后再轉(zhuǎn)送到兩個(gè)TLC3204X芯片,由TLC3204X芯片提供發(fā)送時(shí)鐘SCLK和幀同步信號(hào)FSX以及完成信號(hào)EODX。傳送時(shí)序如圖4所示。

          2.2 接收接口電路

          該接口電路是發(fā)送接口電路的逆過(guò)程,其時(shí)序如圖5和圖6所示。

          3 接口電路的實(shí)現(xiàn)

          Verilog HDL[3]描述硬件單元的結(jié)構(gòu)簡(jiǎn)單且易讀,是當(dāng)前最流行和通用的兩種硬件描述語(yǔ)言之一,得到眾多EDA工具的支持,因此利用該語(yǔ)言進(jìn)行電路設(shè)計(jì)可以節(jié)省開(kāi)發(fā)成本并縮短開(kāi)發(fā)周期。

          3.1 接口電路的頂層Verilog HDL描述

          module DSP_TLC(SCLK1,DX1,FSX1,EODX1,DR1,FSR1,

          EODR1,SCLK0,DX0,FSX0,EODX0,DR0,FSR0,EODR0,

          CLKX,DX,FSX,DR,FSR,RESET);

          input FSX1,EODX1,FSX0,EODX0,DX,CLKX,RESET;

          output FSX,DX1,EX0;

          input DR1,SCLK1,FSR1,EODR1,DR0,SCLK0,FSR0, EODR0;

          output FSR,DR;

          Transmit TRA(DX1,SCLK1,FSX1,EODX1,DX0,SCLK0,

          FSX0,EODX0,DX,CLKX,FSX,RESET);

          Receive REC(DR1,SCLK1,FSR1,EODR1,DR0,SCLK0,

          FSR0,EODR0,DR,CLKX,FSR,FESET);

          Endmodule

          3.2 發(fā)送接口電路的Verilog HDL描述

          module Transmit(DX1, SCLK1,FSX1,EODX1,DX0,

          SCLK0,FSX0,EODX0,DX,CLKX,FSX,RESET);

          input SCLK1,FSX1,EODX1,SCLK0,FSX0,EODX0;

          input DX,CLKX,RESET;

          output FSX,DX1,DX0;

          reg [31:0] tmp_DX,temp_DX;

          reg [1:0] tmp_EODX;

          reg [4:0] DX_count;

          assign DX1=temp_DX[31];

          assign DX0=temp_DX[15];

          assign FSX=(tmp_EODX = =2'b11)? 1'b0:1'b1;

          always @(negedeg CLKX or negedge RESET)

          begin

          if (RESET= =1'b0)

          begin

          tmp_DX =32'b0;

          tmp_EODX =2'b0;

          DX_count =5'b0;

          end

          else

          begin

          if (EODX1 = =1'60)tmp_EODX[1] =1'b1;

          if (EODX0 = = 1'b0)tmp_EODX[0] =1'b1;

          if (DX_count = =5'b11111)tmp_EODX =2'b0;

          if (FSX = =1'b0)

          begin

          tmp_DX[0] =DX;

          tmp_DX[31:1] =tmp_DX[30:0];

          DX_count =DX_count +1;

          end

          else

          DX_count =5'b0;

          end

          end

          always @(posedge SCLK1)

          begin

          if (FSX1 = =1'b0)

          temp_DX[31:17] =temp_DX[30:16];

          else

          temp_DX[31:16] =tmp_DX[31:16];

          end

          always @(posedge SCLK0)

          begin

          if (FSX0 = =1'b0)

          temp_DX[15:1] =temp_DX[14:0];

          else

          temp_DX[15:0] =tmp_DX[15:0];

          end

          endmodeule

          3.3 接收接口電路的Verilog HDL描述

          module Receive(DR1,SCLK1,FSR1,EODR1,DR0,SCLK0,FSR0,EODR0,DR,CLKR,FSR,RESET);

          input DR1,SCLK1,FSR1,EODR1,DR0,SCLK0,FSR0,EODR0;

          input CLKR,RESET;

          output FSR,DR;

          reg [31:0] tmp_DR,temp_DR;

          reg [1:0] tmp_EODR;

          reg [4:0] DR_count;

          assign DR=(FSR = =1'b0) ? tmp_DR[31]:1'bz;

          assign FSR=(tmp_EODR = =2'b11)?1'b0:1'b1;

          always @(posedge CLKR or negedge RESET)

          begin

          if (RESET = =1'b0)

          begin

          tmp_DR =32'b0;

          tmp_EODR =2'b0;

          DR_count =5'b0;

          end

          else

          begin

          if (EODR1= =1'b0) tmp_EODR[1] =1'b1;

          if (DR_count = =5'b11111) tmp_EODR =2'b0;

          if (FSR = =1'b0)

          begin

          tmp_DR[31:1] = tmp_DR[30:0];

          DR_count =DR_count +1;

          end

          else

          begin

          DR_count =5'b0;

          tmp_DR = temp_DR;

          end

          end

          end

          always @(negedge SCLK1)

          begin

          if (FSR1= =1'b0)

          begin

          temp_DR[16] =DR1;

          temp_DR[31:17] =temp_DR[30:16];

          end

          end

          always @(negedge SCLK0)

          begin

          if (FSR0 = 1'b0)

          begin

          temp_DR[0] =DR0;

          temp_DR[15:1] = temp_DR[14:0];

          end

          end

          endmodule

          本文介紹了一種TMS320C3X串口擴(kuò)展技術(shù),并用Verilog VDL語(yǔ)言進(jìn)行描述,利用中小容量的CPLD或FPGA就有實(shí)現(xiàn)該接口功能。該電路已被作者應(yīng)用到實(shí)際系統(tǒng)中,仿真和實(shí)踐證明該接口穩(wěn)定可靠,具有定的應(yīng)用價(jià)值。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();