《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > TMS320C3X串口擴展技術
TMS320C3X串口擴展技術
尹為民 夏 立 吳正國
摘要: 介紹了TMS320C3X DSP串口的一種擴展方法,給出該接口電路的Verilog HDL實現。該接口電路已被作者應用到實際系統中,仿真和實踐證明該電路穩定可靠,具有一定的應用價值。
關鍵詞: DSP 串口擴展 TMS320C3X TI
Abstract:
Key words :

    摘 要: 介紹了title="TMS320C3X">TMS320C3X DSP串口的一種擴展方法,給出該接口電路的Verilog HDL實現。該接口電路已被作者應用到實際系統中,仿真和實踐證明該電路穩定可靠,具有一定的應用價值。 

    關鍵詞: 數字信號處理器 硬件描述語言  接口電路

 

    TMS320C3X是TI公司生產的第三代數字信號處理器,目前已相繼推出C30、C31、C32和VC33等四種類型,由于其性價比高而被廣泛應用于各個領域中。 

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

1 TMS320C3X與TLC3204X連接簡介

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

 

 

2 TMS320C3X串口擴展原理

    一般而言,外設數據字長較短,而TMS320C3X串口數據字長可靈活配置。利用這一特點,只要增設少量的外部電路,就能在現有基礎上擴展接口。在本例中,TLC3204X數據是16bit字長,因此只要將TMS320C3X串口設定為32bit傳送方式,每個TLC3204X各占用16bit,就能將該串口一分為二。圖2為TMS320C3X與兩片TLC3204X的連接示意圖,其接口電路的設計可分為發送和接收兩部分的設計。

 

 

2.1 發送接口電路

    該接口應完成兩個任務。一是接收來自TMS320C3X串口的32bit數據,由TMS320C3X提供移位脈沖CLKX,幀同步信號(FSX)由接口電路提供,其時序如圖3所示。二是將32bit數據分解為兩個16bit數據,然后再傳送到兩個TLC3204X芯片,由TLC3204X芯片提供發送時鐘SCLK和幀同步信號FSX以及完成信號EODX。傳送時序如圖4所示。 

 

 

 

2.2 接收接口電路

    該接口電路是發送接口電路的逆過程,其時序如圖5和圖6所示。 

 

 

 

3 接口電路的實現

    Verilog HDL[3]描述硬件單元的結構簡單且易讀,是當前最流行和通用的兩種硬件描述語言之一,得到眾多EDA工具的支持,因此利用該語言進行電路設計可以節省開發成本并縮短開發周期。 

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, DX0; 

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, RESET); 

endmodule 

3.2 發送接口電路的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 @(negedge 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’b0) 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 

endmodule 

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 (EODR0 == 1’b0)  tmp_EODR[0] <= 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串口擴展技術,并用Verilog HDL語言進行了描述,利用中小容量的CPLD或FPGA就能實現該接口功能。該電路已被作者應用到實際系統中,仿真和實踐證明該接口穩定可靠,具有一定的應用價值。 

參考文獻

1 TLC3204X Voice-band Analog Interface Circuits. Texas Instruments Incorporated, July 1997 

2 TMS320C3X User’s Guide.Texas Instruments Incorporated, May 1995 

3 Donald E. Thomas, Philip R. Moorby. The Verilog Hardware Description Language. Kluwer Academic Publishers, 1998

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲国产成人久久一区二区三区 | 日韩在线成人 | 色视频在线观看在线播放 | 国产一级大片免费看 | 亚洲国产成人久久精品影视 | 黄色网址免费观看 | 曰韩色视频| 欧美中文在线 | 久草黑丝 | 黄网视频 | 欧美国产成人在线 | 免费观看黄色的网站 | 精品欧美一区二区在线看片 | 亚洲精品国产手机 | 日韩波多野结衣 | 综合 欧美 亚洲日本 | 午夜体验 | 国产在线观看成人 | 国产免费一级精品视频 | 色聚网久久综合 | 色综合天天综久久久噜噜噜久久〔 | 国产一区二区三区免费在线观看 | 亚洲午夜精品aaa级久久久久 | 国产成人19禁在线观看 | 91亚洲欧美综合高清在线 | 免费视频日韩 | 色婷婷激情五月综合 | 无边泳池在线观看 | 午夜看片影院在线观看 | 看片免费黄 | 在线亚洲精品自拍 | 成人永久免费视频 | 麻豆视频传媒二区 | 国产精品久久久亚洲第一牛牛 | 成年人三级网站 | 精品国产免费一区二区三区 | 中国免费一级片 | 免费观看日韩大尺码观看 | 国产精品午夜久久 | 激情五月婷婷网 | 丝袜足控免费网站xx网站 |