《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于TLl6C550C的DSP異步串行通信的實(shí)現(xiàn)
基于TLl6C550C的DSP異步串行通信的實(shí)現(xiàn)
來(lái)源:維庫(kù)開(kāi)發(fā)網(wǎng)
摘要: 由于TMS320C6416不帶異步串行收發(fā)接口(UART),無(wú)法實(shí)現(xiàn)DSP系統(tǒng)常用的通串行通信。為此,本文基于TL16C550C設(shè)計(jì)了一種通過(guò)TMS32C6416實(shí)現(xiàn)UART數(shù)據(jù)通信的方法,同時(shí)給出了其硬件設(shè)計(jì)框圖以及通過(guò)TMS320C6416初始化TLl6C550C的軟件編程方式。
Abstract:
Key words :

 0 引言
        高速數(shù)字信號(hào)處理器(DSP)在圖像處理中,特別是視頻處理中的應(yīng)用非常廣泛。通常DSP都具有很強(qiáng)的運(yùn)算能力,但是其外設(shè)的接口相對(duì)有限。在應(yīng)用系統(tǒng)中,往往需要DSP與下位機(jī)通信或者接受上位機(jī)的控制信號(hào)時(shí),一般都是采用異步串行通信協(xié)議,如RS232或RS422來(lái)實(shí)現(xiàn)。由于TMS320C6416器件自身只帶有同步的串口,因此,為了實(shí)現(xiàn)正常的通信,一般都需要為其擴(kuò)展異步串口。
 l TLl6C550C芯片介紹
         TLl6C550C是TI公司研發(fā)的異步通信器件,其主要性能特點(diǎn)如下:
          ◇供電電壓為5 V或3.3 V;
          ◇時(shí)鐘頻率達(dá)到16 MHz。通信時(shí)波特率最高可達(dá)1 M,并可編程設(shè)定波特率發(fā)生器;
          ◇具有標(biāo)準(zhǔn)的異步通信位,可選擇5、6、7或8位串行數(shù)據(jù)位,可設(shè)置奇偶校驗(yàn)或無(wú)校驗(yàn)?zāi)J?,停止位長(zhǎng)度為1、1.5、2;
          ◇可獨(dú)立控制發(fā)送、接收、線狀態(tài)以及中斷設(shè)置,可軟件設(shè)定FIFO,減少CPU中斷。
          TLl6C550C器件內(nèi)部共有10個(gè)寄存器,可分別用于實(shí)現(xiàn)通信參數(shù)的設(shè)置、對(duì)線路及MODEM狀態(tài)的訪問(wèn)、數(shù)據(jù)的發(fā)送和接收以及中斷管理等功能。TLl6C550C的地址可分別通過(guò)A0-A2地址線和某些寄存器的特定位置來(lái)確定,由于有些寄存器的地址是重疊的,所以還需同時(shí)通過(guò)讀/寫(xiě)信號(hào)加以區(qū)分。
         TLl6C550C片內(nèi)寄存器及其映射地址如表1所列,其中高位和低位寄存器為二次尋址寄存器,因此,在訪問(wèn)這兩個(gè)寄存器之前,必須將LCR的第7位置為1。

2 TLl6C550C與PC的數(shù)據(jù)通信電路
2.1 TLl6C550C的選通

        TLl6C550C與PC的串行通信部分的硬件連接電路如圖1所示。由ISO3088實(shí)現(xiàn)電平轉(zhuǎn)換,即通過(guò)ISO3088將輸出電平配置為RS485信號(hào)。

2.2 TLl6C2550C的讀寫(xiě)
        TLl6C550C的讀信號(hào)為,RD2,當(dāng)為低電平或RD2為高電平,且TLl6C550C被選中時(shí),可進(jìn)行讀操作;寫(xiě)信號(hào)為,WR2,當(dāng)為低電平或WR2為高電平,且TLl6C550C被選中時(shí),可進(jìn)行寫(xiě)操作。將、RD2、、WR2都與CPLD的I/0相連,便可通過(guò)CPLD來(lái)控制TLl6C550C的讀寫(xiě)。
3 TLl6C550C和PC通信的軟件編程
        該套系統(tǒng)的軟件設(shè)計(jì)部分主要包括PC機(jī)程序、DSP初始化、TLl6C550C初始化和數(shù)據(jù)發(fā)送/接收以及雙方的通信協(xié)議等。本文著重介紹TLl6C550C的初始化程序。主要由以下幾部分組成:
         ◇波特率的設(shè)定;波特率除數(shù)寄存器由高8位(DLM)和低8位(DLL)組成。除數(shù)的值可由UART的工作時(shí)鐘和波特率共同確定,其計(jì)算公式為:除數(shù)=時(shí)鐘頻率/(期望的波特率×16)
          例如本系統(tǒng)中時(shí)鐘頻率12 MHz,波特率設(shè)置為9600,則除數(shù)的值為12,應(yīng)在初始化程序中設(shè)置DLM=OOH,DLL=4eH;
          ◇增強(qiáng)功能的使能及設(shè)置EFR的相關(guān)位;
          ◇完成有關(guān)收/發(fā)FIF0的設(shè)定,主要是MCR/TCR/TLR三個(gè)寄存器的設(shè)置;
          ◇傳輸數(shù)據(jù)格式設(shè)定,包括8位數(shù)據(jù)位、1位停止位以及無(wú)校驗(yàn);
          ◇設(shè)置FIFO控制以及中斷控制寄存器。
        此外,在完成設(shè)置前,還應(yīng)注意:設(shè)定DLL和DLH前,LCR的第7位應(yīng)為1;地址相重疊的寄存器不能同時(shí)使能;讀寫(xiě)RHR和THR時(shí),DSP的讀寫(xiě)速度很快,故最好不要連續(xù)讀寫(xiě),而是在每讀、寫(xiě)一次后延時(shí)一段時(shí)間。然后再進(jìn)行下一次讀寫(xiě)。
        由于TLl6C550C映射在DSP的CEO區(qū)間,所以在DSP訪問(wèn)其寄存器時(shí)只需將基地址加上偏移量即可。其初始化源程序如下:
4 結(jié)束語(yǔ)
        本文介紹了通過(guò)TLl6C550C擴(kuò)展串口完成TMS320C6416與PC機(jī)串行通信的設(shè)計(jì)方案,給出了硬件設(shè)計(jì)框圖及軟件實(shí)現(xiàn)代碼。該電路及軟件經(jīng)實(shí)驗(yàn)證明能夠可靠地實(shí)現(xiàn)TMS320C416與PC機(jī)之間的通信,并且此方法已在實(shí)際的項(xiàng)目中得到應(yīng)用。
        TLl6C550C采用3.3 V供電.將TLl6C550C的數(shù)據(jù)線DO~D7與TM320C6416T直連,從而實(shí)現(xiàn)數(shù)據(jù)的傳輸。同時(shí)應(yīng)將TL16C550C的片內(nèi)寄存器選擇線與TM320C6416T的BEAl,BEA2,BEA3引腳相連,當(dāng)TLl6C550C的片選信號(hào)CSO,CSl為高電平,為低電平時(shí),TLl6C550B即被選中。CS0,CSl直接與高電平相連。則與CPLD的I/0相連,如此便實(shí)現(xiàn)了以CPLD來(lái)實(shí)現(xiàn)TLl6C550C的選通。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。