在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用TL16C752B實(shí)現(xiàn)DSP和PC機(jī)的串行通信

      用TL16C752B實(shí)現(xiàn)DSP和PC機(jī)的串行通信

      作者: 時(shí)間:2004-12-06 來源:網(wǎng)絡(luò) 收藏
      摘要:介紹了的特點(diǎn)、性能和相關(guān)寄存器,給出了通過TMS320VC5421和機(jī)實(shí)時(shí)的方法。同時(shí)給出了串口部分的硬件應(yīng)用電路圖以及對進(jìn)行初始化的軟件程序。

      關(guān)鍵詞:數(shù)字信號處理;接口;異步通信;TL16C752B;TMS320VC5421

      1 引言

      美國德州儀器公司(TI)的TMS320VC54XX系列DSP芯片與PC機(jī)異步通信通常有兩種方法:第一種是使用通用I/O信號XF和BIO作為串口發(fā)送和接收信號,用軟件逐位發(fā)送和接收數(shù)據(jù),即軟件異步通信方法,這種方法需要占用很多CPU時(shí)間,因此,只能在DSP不太忙、實(shí)時(shí)性要求不高的情況下采用;第二種是通過擴(kuò)展異步通信芯片來實(shí)現(xiàn)高速通信,本文選用的就是此方法。

      在筆者設(shè)計(jì)數(shù)字調(diào)幅廣播系統(tǒng)中的基帶處理子系統(tǒng)時(shí),復(fù)用器與信道編碼器之間的通信采用的是異步通訊方案。復(fù)用器則使用通用PC機(jī)來實(shí)現(xiàn),信道編碼器使用TI公司生產(chǎn)的DSP芯片TMS320VC5421來設(shè)計(jì)實(shí)現(xiàn)。

      2?。眨粒遥孕酒裕蹋保叮茫罚担玻潞喗閇1]

      2.1 主要特點(diǎn)

      TL16C752B是TI公司推出的新型UART(Universal Asynchronous Receiver and Transmitter )收發(fā)器。該器件的主要特點(diǎn)如下:

      ●引腳和ST16C2550兼容,內(nèi)置兩套UART系統(tǒng),可獨(dú)立工作;

      ●工作時(shí),最高波特率可以達(dá)到1.5Mbps(使用24MHz晶體時(shí))或3Mbps(使用48MHz振蕩器或時(shí)鐘源時(shí));

      ●具有64字節(jié)發(fā)送/接收FIFO(接收FIFO包含錯(cuò)誤標(biāo)志)。由于收、發(fā)FIFO的觸發(fā)等級可通過軟件編程實(shí)現(xiàn),因而減少了CPU的中斷次數(shù);

      ●接收FIFO的啟動和停止等級可以通過軟件編程來實(shí)現(xiàn);

      ●具有兩種控制模式:其中軟件流控制模式可通過編程Xon/Xoff字符來實(shí)現(xiàn);而硬件流控制模式則可通過設(shè)置RTS和CTS引腳及相應(yīng)的寄存器來實(shí)現(xiàn);

      ●波特率可編程;

      ●可編程下列數(shù)據(jù)格式:

      ――5、6、7、8 四種字符;

      ――數(shù)據(jù)奇偶校驗(yàn)或者無校驗(yàn);

      ――1、1.5、2bits 停止位;

      ●內(nèi)部閉環(huán)。

      2.2 TL16C752B的引腳功能

      TL16C752B內(nèi)含雙UART,并自帶64字節(jié)收發(fā)FIFO,可自動進(jìn)行軟件流和硬件流控制,最大波特率可達(dá)3Mbps。此外,TL16C752B還提供了其它一些增強(qiáng)功能,可通過設(shè)定EFR寄存器的相關(guān)位來實(shí)現(xiàn)。通過FIFO RDY 寄存器可讀?。裕兀遥模伲遥兀遥模僖_的狀態(tài);而通過片內(nèi)寄存器則可為使用者提供接收數(shù)據(jù)的錯(cuò)誤識別、操作狀態(tài)以及MODEM的接口控制信號。

      TL16C752B的引腳排列如圖1所示,各主要引腳的功能如下:

      A0~A2:地址線,通過這幾個(gè)引腳以及讀寫信號IOR和IOW可以訪問及設(shè)定片內(nèi)寄存器?

      D0~D7:雙向8位數(shù)據(jù)線?

      CSA、CSB:兩套UART的片選信號?

      TXA/RXA、TXB/RXB:分別表示所要發(fā)送和接收的數(shù)據(jù)端口?

      INTA/INTB:中斷信號?

      RESET:芯片復(fù)位信號?

      XIN/XOUT:時(shí)鐘輸入/輸出信號。

      2.3 TL16C752B的內(nèi)部寄存器

      圖2所示是TL16C752B的內(nèi)部功能模塊圖,該器件內(nèi)部共有20個(gè)寄存器,這些寄存器可分別用于實(shí)現(xiàn)通信參數(shù)的設(shè)置、對線路及MODEM狀態(tài)的訪問、數(shù)據(jù)的發(fā)送和接收以及中斷管理等功能。其地址可分別通過A0~A2地址線和某些寄存器的特定位來確定,由于有些寄存器的地址是重疊的,所以還必須通過讀/寫信號加以區(qū)分。TL16C752B內(nèi)部寄存器的映射如表1所列。表中:

      “*” 表示僅當(dāng)LCR的第7位為1時(shí),訪問DLL/DLH。

      “** ”表示僅當(dāng)LCR為0xBF時(shí),訪問EFR以及Xon1/2,Xoff1/2。

      “+” 表示當(dāng)EFR[4]為1,且MCR[6]為1時(shí),訪問TCR/TLR。

      “++”表示當(dāng)片選信號有效、MCR[2]為1且處于非閉環(huán)模式時(shí),訪問 FIFO RDY。

      此外,對于MCR[7],只有當(dāng)EFR[4]為1時(shí)才可以更改。在上述說明中,[]表示該寄存器的第幾位。

      表1 TL16C752B的內(nèi)部寄存器映射表

      A[2]A[1]A[0]讀 模 式寫 模 式
      000接收保持寄存器(RHR)發(fā)送保持寄存器(THR)
      001中斷使能寄存器(IER)IER
      010中斷標(biāo)示寄存器(IIR)FIFO控制寄存器(FCR)
      011線路控制寄存器(LCR)LCR
      100MODEM控制寄存器(MCR)MCR
      101線路狀態(tài)寄存器(LSR)LSR
      110MODEM狀態(tài)寄存器(MSR)MSR
      111臨時(shí)寄存器(SPR)SPR
      000*除數(shù)鎖存低位(DLL)DLL
      001*除數(shù)鎖存高位(DLH)DLH
      010**增強(qiáng)功能寄存器(EFR)EFR
      100** Xon-1字符值Xon-1字符值
      101** Xon-2字符值Xon-2字符值
      110** Xoff-1字符值Xoff-1字符值
      111** Xoff-2字符值Xoff-2字符值
      111+傳輸控制寄存器(TCR)TCR
      110+觸發(fā)等級寄存器(TLR)TLR
      111++FOFO狀態(tài)寄存器(FIFO RDY)FIFO RDY

      2.4 TL16C752B工作流控制模式

      TL16C752B有2種工作流控制模式:硬件流控制和軟件流控制。使用前者可降低軟件消耗,通過RTS和CTS引腳信號的硬件連接可自動控制串行數(shù)據(jù)流,從而提高系統(tǒng)的有效性;后者則通過使用可編程的Xon/Xoff字符來自動控制數(shù)據(jù)傳輸。本文主要介紹軟件流控制模式。

      軟件流控制模式的使能可通過EFR和MCR這2個(gè)寄存器來實(shí)現(xiàn)。不同流模式的組合如表2所列(可通過設(shè)定EFR的低4位實(shí)現(xiàn))。

      表2 軟件流控制模式

      EFR[3]EFR[2]EFR[1]EFR[0]

      TX RX軟件流控制組合模式

      00XX無發(fā)送流控制
      10XX發(fā)送Xon1,Xoff1
      01XX發(fā)送Xon2,Xoff2
      11XX發(fā)送Xon1,Xoff1;Xon2,Xoff2
      XX00無接收流控制
      XX10接收器比較Xon1,Xoff1
      XX01接收器比較Xon2,Xoff2
      1011發(fā)送Xon1,Xoff1;接收器比較Xon1,Xoff1;Xon2,Xoff2
      0111發(fā)送Xon2,X0ff2;接收器比較Xon1,Xoff1;Xon2,Xoff2
      1111發(fā)送Xon1,Xoff1;Xon2,Xoff2;接收器比較Xon1,Xoff1;Xon2,Xoff2
      0011無發(fā)送流控制;接收器比較Xon1,Xoff1;Xon2,Xoff2

      具體工作流程(從接收的角度)為:接收時(shí),若操作達(dá)到接收中斷等級,則產(chǎn)生中斷,但這時(shí)傳輸還在進(jìn)行(這里假設(shè)中斷有一定延時(shí));而當(dāng)RHR中的數(shù)據(jù)數(shù)目達(dá)到接收停止等級規(guī)定的數(shù)值時(shí),接收端發(fā)送Xoff1/2,以通知發(fā)送端停止發(fā)送數(shù)據(jù),這時(shí)接收端將讀?。遥龋抑械臄?shù)據(jù)。當(dāng)RHR中的數(shù)據(jù)數(shù)目降到接收啟動等級規(guī)定的數(shù)值時(shí),接收端發(fā)送Xon1/2,以通知發(fā)送端可以繼續(xù)發(fā)送數(shù)據(jù)。

      3?。裕蹋保叮茫罚担玻屡cPC的通信電路

      TL16C752B與PC的串行通信部分的硬件連接電路如圖3所示。圖中,地址線A0~A2、數(shù)據(jù)線D0~D7分別和DSP的地址總線A0~A2、外部數(shù)據(jù)線D0~D7直接相連,而選通信號CSA/CSB、讀寫信號IOR/IOW、復(fù)位信號RESET以及中斷信號INTA/B則接入CPLD并由CPLD處理。同時(shí)DSP端的PS、DS、IS、IOSTRB、R/ W、MSTRB也同時(shí)接入CPLD以用于生成控制信號。電路中使用CPLD一方面可以對UART的地址靈活配置,另一方面也可以靈活生成UART的復(fù)位、選通和讀寫信號,從而增強(qiáng)系統(tǒng)的靈活性,方便系統(tǒng)調(diào)試。

      由于PC端串口采用RS232電平標(biāo)準(zhǔn),因此UART之后需要連接MAX3221以完成電平轉(zhuǎn)換。TL16C752B的數(shù)據(jù)發(fā)送引腳和數(shù)據(jù)接收引腳分別與MAX3221的數(shù)據(jù)輸入引腳和數(shù)據(jù)輸出引腳連接。這里只使用一套UART來完成TL16C752B和PC的通信。數(shù)據(jù)收、發(fā)采用中斷方式,UART_INTA通過CPLD和TMS320VC5421的外部中斷INT0相連接。而3.072MHz晶振則連接到XIN和XOUT兩引腳。波特率設(shè)定為38400,故DLL/DLH分別為06和00h。

      具體調(diào)試時(shí),可先從查詢方式開始,若沒有問題,再使用中斷方式。

      圖3

      4?。裕蹋保叮茫罚担玻潞停校猛ㄐ诺能浖幊?/B>

      該系統(tǒng)的軟件設(shè)計(jì)部分主要包括PC機(jī)程序、DSP初始化、TL16C752B初始化和數(shù)據(jù)發(fā)送/接收以及雙方的通信協(xié)議等。下面介紹TL16C752B的初始化程序。

      TL16C752B初始化程序主要包括以下幾部分:

      (1)波特率的設(shè)定;

      (2)增強(qiáng)功能的使能及設(shè)置EFR的相關(guān)位;

      (3)完成有關(guān)收、發(fā)FIFO的設(shè)定,主要是MCR/TCR/TLR 3個(gè)寄存器的設(shè)置;

      (4)軟件流控制模式使能以及Xon/Xoff字符的設(shè)置;

      (5)傳輸數(shù)據(jù)格式設(shè)定,包括8位數(shù)據(jù)位、2位停止位、DMA傳輸模式1、偶校驗(yàn)、不使用強(qiáng)制校驗(yàn)?zāi)J?、暫??刂莆粺o效等;

      (6)設(shè)置FIFO控制以及中斷控制寄存器。

      此外,在完成設(shè)置前,還應(yīng)注意以下幾點(diǎn):

      (1) 設(shè)定DLL和DLH前,LCR[7]應(yīng)為1。

      (2) 設(shè)定MCR前,EFR[4]應(yīng)為1,LCR應(yīng)為00h。地址相重疊的寄存器不能同時(shí)使能。

      (3) 讀寫RHR和THR時(shí),由于DSP的讀寫速度很快,故最好不要連續(xù)讀寫,而是在每讀、寫一次后延時(shí)一段時(shí)間,然后再進(jìn)行下一次讀寫。

      (4) 這里,DMA只是一個(gè)名稱,而并非是 “直接存儲器訪問”。

      TL16C752B的地址分配在I/O空間的0020h~0027h,讀寫通過PORTR和PORTW指令完成。TL16C752B初始化程序如下:

      ini_uart_start:

      ;設(shè)置 baud rate=38400 ; divi-sor=0006h

      stm #temp1_reg,ar1

      nop

      st #80h;*ar1 ;除數(shù)鎖存使能 LCR=bfh

      portw *ar1,#k_LCR_addr

      st #k_DLL_value,*ar1

      portw *ar1,#k_DLL_addr

      st #k_DLH_value,*ar1

      portw *ar1,#k_DLH_addr

      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      st #k_LCR_value?*ar1 ;LCR=bfh

      portw *ar1,#k_LCR_addr

      st #k1 EFR value?*ar1 ;增強(qiáng)功能使能

      portw *ar1,#k_EFR_addr

      st #0,*ar1 ;設(shè)定LCR= 0

      portw *ar1?#k LCR addr

      st #k_FCR_value,*ar1 ;設(shè)定FIFO控制寄存器

      portw *ar1,#k_FCR_addr

      st #k_MCR_value,*ar1 ;設(shè)定MCR/TCR/TLR寄存器

      portw *ar1,#k_MCR_addr

      st #k_TCR_value,*ar1

      portw *ar1,#k_TCR_addr

      st #k_TLR_value,*ar1

      portw *ar1,#k_TLR_addr

      st #k1_MCR_value,*ar1

      portw *ar1,#k_MCR_addr

      st #k_LCR_value,*ar1 ;為訪問Xon/Xoff/EFR,LCR重設(shè)定為BFh

      portw *ar1,#k_LCR_addr

      st #k_Xoff1_value,*ar1 ;設(shè)置軟件流控制

      portw *ar1,#k_Xoff1_addr

      st #k_Xon1_value,*ar1

      portw *ar1,#k_Xon1_addr

      st #k_Xoff2_value,*ar1

      portw *ar1,#k_Xoff2_addr

      st #k_Xon2_value,*ar1

      portw *ar1,#k_Xon2_addr

      st #k_EFR_value,*ar1 ;設(shè)置軟件流控制組合方式

      portw *ar1,#k_EFR_addr

      st #k_LCR_dlatch_disable,*ar1

      portw *ar1,#k_LCR_addr ;設(shè)定傳輸數(shù)據(jù)格式

      st #k_IER_value,*ar1 ;設(shè)置中斷

      portw *ar1,#k_IER_addr

      5 結(jié)束語

      通過擴(kuò)展串口完成TMS320VC5421與PC機(jī)串行通信硬件接口比較簡單、數(shù)據(jù)傳送距離遠(yuǎn)、使用經(jīng)濟(jì)。該電路及其軟件經(jīng)與微機(jī)的通信實(shí)驗(yàn)證明,在波特率為38400時(shí),能夠可靠地實(shí)現(xiàn)與PC機(jī)的通信。



      評論


      相關(guān)推薦

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

      關(guān)閉