131 1300 0010
其他
當(dāng)前位置: 首頁(yè)>> 元件技術(shù)>>其他>>
  • 導(dǎo)航欄目
  • 二極管
  • 整流橋
  • MOS管
  • 其他
  • DSP的串行通信接口SCI與PC機(jī)的通訊設(shè)計(jì)
    DSP的串行通信接口SCI與PC機(jī)的通訊設(shè)計(jì)
  • DSP的串行通信接口SCI與PC機(jī)的通訊設(shè)計(jì)
  •   發(fā)布日期: 2019-01-24  瀏覽次數(shù): 1,204

    1 引言

    DSP 既是Digital Signal Pricessing 的縮寫,也是Digital Signal Pricessor 的縮寫。前者是指數(shù)字信號(hào)處理的理論和方法,后者則是指用于數(shù)字信號(hào)處理的可編程微處理器。TMS320F240 系列是在TMS320F2000TM 平臺(tái)下的一種定點(diǎn)DSP 芯片,是專為數(shù)字電機(jī)控制和其他控制應(yīng)用系統(tǒng)而設(shè)計(jì)的16位定點(diǎn)運(yùn)算的DSP。它集合了DSP 的高速運(yùn)算功能與電機(jī)的強(qiáng)大控制能力,為控制系統(tǒng)應(yīng)用提供了一種理想的解決方案。TMS320F240 片內(nèi)外設(shè)有一個(gè)16 位的同步串行外圍接口(SPI),一個(gè)用于串行通訊接口的SCI 模塊,雙10 位A/D 轉(zhuǎn)換器,帶中斷的看門狗定時(shí)器模塊(WDT),帶有鎖相環(huán)(PLL)時(shí)鐘發(fā)生器。另外,還集成了兩個(gè)事件管理模塊EVA 和EVB。因此,TMS320F240 不僅具有高速數(shù)據(jù)處理能力,還具有控制和事件管理能力,可完成人機(jī)界面、與上位機(jī)進(jìn)行串行通信等功能。

     

    2 串行通訊接口(SCI)模塊

    SCI 接收器和發(fā)送器是雙緩沖的,每一個(gè)都有他自己?jiǎn)为?dú)的使能和中斷標(biāo)志位。兩者可單獨(dú)工作,或在全雙工的方式下同時(shí)工作。為了確保數(shù)據(jù)的完整性,SCI 對(duì)接收到的數(shù)據(jù)進(jìn)行間斷檢測(cè)、奇偶性校驗(yàn)、超時(shí)和幀出錯(cuò)的檢查。通過(guò)一個(gè)16 位的波特率選擇寄存器,數(shù)據(jù)傳輸?shù)乃俣瓤梢员痪幊虨?5535多種不同的方式。SCI 的串行通信接口包括SCIRXD(串行通信數(shù)據(jù)接收)和SCITXD(串行通信數(shù)據(jù)發(fā)送),在不使用SCI 時(shí),這兩個(gè)引腳也可作通用I/O 口。發(fā)送和接收的操作可以利用狀態(tài)標(biāo)志位通過(guò)中斷驅(qū)動(dòng)或查詢算法來(lái)完成。與之相關(guān)的主要寄存器:發(fā)送緩沖寄存器SCITXBUF、接收緩沖寄存器 SCIRCBUF、接收仿真緩沖寄存器SCIRXEMU;通信控制寄存器SCICCR、中斷使能和內(nèi)部時(shí)鐘使能SCICTL1 和SCICTL2 、波特率選擇高字節(jié)寄存器SCIHBAUD、波特率選擇低字節(jié)寄存器SCILBAUD、優(yōu)先級(jí)控制寄存器SCIPRI、引腳控制功能SCIPC2 以及反映通信狀態(tài)SCIXST 等。

    串行通信接口模塊有兩個(gè)多處理器通信協(xié)議:空閑線多處理器模式和地址多處理器模式??臻e線模式在地址前留有一個(gè)固定空間,該模式?jīng)]有附加的地址 /數(shù)據(jù)位,它在處理包含多于10 個(gè)字節(jié)的數(shù)據(jù)塊方面比地址位模式更有效;地址位模式在每個(gè)字節(jié)中加入一個(gè)額外位(地址位)來(lái)區(qū)分地址和數(shù)據(jù),這種模式在處理多個(gè)小數(shù)據(jù)塊時(shí)更有效。

    RS-485串口通信

    RS-232 雖然被廣泛接受,但其數(shù)據(jù)傳送的速度慢、在現(xiàn)代網(wǎng)絡(luò)通信中已暴露出的接口處各信號(hào)間容易產(chǎn)生干擾等明顯的缺點(diǎn)。RS-232 只能傳輸15 米,不能滿足遠(yuǎn)距離傳輸要求,而RS-485 最大傳輸距離為1200 米,最大傳送速率可達(dá)10Mb/s。因此,RS-485 在遠(yuǎn)程通信和多機(jī)總線系統(tǒng)中具有很大吸引力。MAX48X/49X 系列收發(fā)器芯片適合于RS 一422/RS 485 通信標(biāo)準(zhǔn)。其主要有以下特點(diǎn):

    DSP的串行通信接口SCI與PC機(jī)的通訊設(shè)計(jì)

    ·單+5V 電源供電;

    · 低功耗:工作電流120~ 500μA :

    · 驅(qū)動(dòng)過(guò)載保護(hù);

    · 通信傳輸線上可掛32 個(gè)收發(fā)器方便組成半雙工通信電路;

    · 共模輸入電壓范圍:-7V ~ + l2V

    MAX485 為8 腳封裝,引腳配置如圖l 所示,各引腳功能說(shuō)明如表l 所示。

    表1

    DSP的串行通信接口SCI與PC機(jī)的通訊設(shè)計(jì)

    本設(shè)計(jì)以PC 機(jī)為主機(jī),TMS320F240 為從機(jī),主從機(jī)之間進(jìn)行串口通信。TMS320F240 與PC 機(jī)之間采用RS 一485 標(biāo)準(zhǔn)進(jìn)行半雙工通信的接口電路如圖2 所示。其中,接收器和驅(qū)動(dòng)器的選擇由TMS320F240 的XF/IOPC2 引腳控制。由于一般PC 機(jī)上提供的是標(biāo)準(zhǔn)的RS 232 C 串行接口,因此,需要RS 232C/RS485 轉(zhuǎn)換器進(jìn)行接口轉(zhuǎn)換。

    DSP的串行通信接口SCI與PC機(jī)的通訊設(shè)計(jì)

    4 上位機(jī)PC機(jī)的軟件設(shè)計(jì)

    上位機(jī)PC 采用高級(jí)語(yǔ)言C,在用C 語(yǔ)言開發(fā)DSP 應(yīng)用程序時(shí),需要嵌入一句或幾句匯編語(yǔ)言,如在程序的初始化階段對(duì)INTM、SXM 等位的配置。用asm 的方式就可以實(shí)現(xiàn)單句匯編語(yǔ)言的嵌入。

    Code Composer Studio 簡(jiǎn)稱CCS,是TI 公司推出的為開發(fā)TMS320 系列DSP 軟件的集成開發(fā)環(huán)境(IDE)。CCS 工作在Windows 操作系統(tǒng)下,類似于VC++的集成開發(fā)環(huán)境,采用圖形接口界面,提供有編輯工具和工程管理工具。在CC 環(huán)境下串行通信有兩種方式:即同步方式和異步方式,在此僅討論異步方式中的串行通信。PC 串行口發(fā)送器輸出端和接收器輸入端的數(shù)據(jù)格式為幀信息格式,與TMS320F240的SCI 口格式相同。通信時(shí),雙方必須約定通信數(shù)據(jù)傳輸格式、傳輸速率及各自工作方式等。本文設(shè)計(jì),當(dāng)上位機(jī)請(qǐng)求通訊時(shí),先發(fā)請(qǐng)求通訊命令,下位機(jī)有效接收并判斷,確認(rèn)后向上位機(jī)發(fā)響應(yīng)碼。上位機(jī)在收到響應(yīng)碼后,再發(fā)操作命令。雙方約定:波特率208h;8 位字符,一位停止位,無(wú)校驗(yàn);傳送方式:PC 機(jī)采用查詢方式接收數(shù)據(jù),TMS320F240 采用中斷方式接收數(shù)據(jù)。

    5 DSP軟件設(shè)計(jì)

    5.1 串口初始化

    首先對(duì)寄存器地址、波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)位進(jìn)行設(shè)置。

    void Set()

    {

    *SCICCR=0x7; //8 位字符,1 停止位,無(wú)校驗(yàn)

    *SCICTL1=0X13; //使能發(fā)送和接受

    *SCICTL2=0x03; //使能接受和發(fā)送中斷

    *SCIHBAUD=0x02; //波特率=208h,40MHZ

    *SCILBAUD=0x08; //208h=40*106/(9600*8)-1

    *SCICTL1=0x33; //使能發(fā)送和接受,復(fù)位

    *SCIPRI=0X60; //SCI 中斷(接受和發(fā)送中斷)為低優(yōu)先級(jí)中斷

    }

    5.2 中斷初始化

    a)禁止總中斷子程序

    void inline disable()

    {

    asm("setc INTM");

    asm("setc SXM");

    }

    b)使能總中斷子程序

    void inline enable()

    {

    asm("clrc INTM") ;

    }

    c)中斷服務(wù)程序

    void interrupt uarttr(){

    switch (*PVIR){

    //根據(jù)中斷向量寄存器PVIR 的值區(qū)別是接收還是發(fā)送中斷

    case 6:UartRec();

    //如果PVIR=6,則發(fā)生了接受中斷,執(zhí)行接受中斷服務(wù)程序

    }

    }

    d)當(dāng)由于干擾而引起其它中斷時(shí),中斷進(jìn)入此程序直接返回主程序

    void interrupt nothing(){

    return; }

    5.3中斷處理

    void UartRec(){

    unsigned int uwork;

    int I, k;

    k=0;

    while(1) {

    do{

    uwork=(*SCIRXST);

    }while((uwork&0x40= =0));

    cReceive=(*SCIRXBUF);

    cBuffer[k]= cReceive;

    if(cReceive= =’。’) {

    cBuffer[k+1]=’’;

    nlen=k+1;

    Set();

    Break;

    }

    k++; k%=16;

    }

    }

    5.4程序初始化

    # include "2407c.h"

    //初始化子程序

    IniTIal(){

    *IFR=0xFFFF; //清除中斷標(biāo)志

    *WDCR=0Xe8; //不使能看門狗

    *SCSR1=0x81FE; //CLKIN=6M, CLKOUT=24M

    *MCRA=0x3; //use SCITXD, SCIRXD

    *PADATDIR=0x100; //設(shè)置ADIR 為輸出口

    }

    5.5主程序

    Main(){

    Set();

    Disable(); //屏蔽所有中斷

    IniTIal(); //系統(tǒng)初始化

    Enable(); //使能總中斷

    While(1) {

    unsigned int uwork;

    For (inTI=0;I《10;I++){

    Do{

    Uwork=(*SCICTL2);

    }while (uwork&0x0c0!=0x0c0);

    (*SCITXBUF)=cAnswer[i];

    *IFR=0x0010;

    Enable();

    }

    Do{

    Uwork=(*SCICTL2);

    }while (uwork&0x0c0!=0x0c0);

    (*SCITXBUF)=‘“’;

    }

    For(;;){

    }

    }

    6結(jié)束語(yǔ)

    本文作者創(chuàng)新點(diǎn):利用DSP 的串行通信接口(SCI)和功能強(qiáng)大的開發(fā)環(huán)境CCS,可以方便地實(shí)現(xiàn)DSP 與PC 機(jī)間的單機(jī)或多機(jī)串行通信。通過(guò)實(shí)際運(yùn)行表明,利用TMS320 的SCI 模塊實(shí)現(xiàn)DSP 之間或與PC 機(jī)的通信,與傳統(tǒng)的C51 單片機(jī)相比,其電路簡(jiǎn)單、設(shè)置靈活、運(yùn)行速度快,性能可靠穩(wěn)定。


  • ·上一篇:
    ·下一篇:
  • 其他關(guān)聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機(jī):131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 www.kqne.cn 電話:13113000010 粵ICP備2021111333號(hào)