李勝勇(廈門蒙發(fā)利科技(集團(tuán))股份有限公司,福建廈門 361008)
?
TMS320VC5416與單片機(jī)AT89C51通信設(shè)計(jì)
李勝勇
(廈門蒙發(fā)利科技(集團(tuán))股份有限公司,福建廈門361008)
摘要:給出了一種實(shí)現(xiàn)DSP TMS320VC5416與單片機(jī)AT89C51通信設(shè)計(jì)的方法,在分析TMS320VC5416串行口特點(diǎn)和AT89C51串行通訊的基礎(chǔ)上,進(jìn)行TMS320VC5416與AT89C51串行通信設(shè)計(jì),提出了電平匹配,通信協(xié)議匹配和波特率匹配的方法,該方法對(duì)實(shí)現(xiàn)DSP與AT89C51的通訊具有指導(dǎo)意義。最后給出了部分程序流程和實(shí)現(xiàn)方法。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);DSP;串行通訊;程序設(shè)計(jì)
隨著家電性能的不斷提高,數(shù)據(jù)處理的也越來(lái)越多,對(duì)處理速度的要求也越來(lái)越高,原有以MCU為核心的系統(tǒng),逐漸不能滿足要求,因此,具有高速處理數(shù)據(jù)的DSP芯片,逐漸開(kāi)始應(yīng)用。而通過(guò)DSP處理的數(shù)據(jù)往往需要傳輸給MCU進(jìn)行運(yùn)動(dòng)控制,所以,DSP與MCU的通信設(shè)計(jì)就成為各種家電產(chǎn)品必須的技術(shù)要求。
TMS320VC5416 DSP是TI公司的一款高性能16位定點(diǎn)DSP,具有的McBSP,即多通道緩沖串口能夠與同步通信串口外部設(shè)備進(jìn)行通信。但對(duì)于AT89C51單片機(jī)來(lái)說(shuō),并無(wú)同步通信接口,所以當(dāng)320VC5416使用McBSP串口與AT89C51通信時(shí),將McBSP串口進(jìn)行一定擴(kuò)展硬件的情況下,將同步變?yōu)楫惒竭M(jìn)行通信,充分利用DSP片上資源,硬件系統(tǒng)簡(jiǎn)化可行。
TMS320VC5416具有3個(gè)全雙工、多通道、高速緩存串行口,每個(gè)串行口最大可以支持128通道。McBSP支持SPI協(xié)議,它的主要特點(diǎn)是:(1)可全雙工串行通訊;(2)最大可選擇32位數(shù)據(jù)寬度,允許傳輸連續(xù)數(shù)據(jù)流;(3)幀同步信號(hào)可以為數(shù)據(jù)發(fā)送和接收提供獨(dú)立支持。圖1所示為McBSP的內(nèi)部結(jié)構(gòu)[1]。
其結(jié)構(gòu)由控制通路和數(shù)據(jù)通路兩部分組成,并有7個(gè)引腳可以連接外部器件。接收引腳DR,通過(guò)數(shù)據(jù)總線以接收數(shù)據(jù);發(fā)送引腳DX,與McBSP相連接發(fā)送數(shù)據(jù);接收幀的同步引腳為FSR,發(fā)送幀的同步引腳為FSX;接收時(shí)鐘引腳為CLKX;在時(shí)鐘信號(hào)和幀同步信號(hào)的控制下,外部器件與發(fā)送DX引腳和接收DR引腳直接通信。對(duì)McBSP的操作,內(nèi)部CPU通過(guò)16位控制寄存器,以片內(nèi)外設(shè)總線訪問(wèn)控制,McBSP接口信號(hào)如表1所示[2]。
圖1 McBSP內(nèi)部結(jié)構(gòu)
表1 McBSP接口信號(hào)
產(chǎn)生幀同步信號(hào)和產(chǎn)生內(nèi)部時(shí)鐘,控制此類信號(hào)和選擇多通道等構(gòu)成了控制通道任務(wù)。由控制通道產(chǎn)生的中斷信號(hào)發(fā)送給CPU,DMA控制器接收同步事件通知,如表2所示[3]。
McBSP有兩種工作模式:第一種工作模式中,當(dāng)(R/X)MC?ME=0時(shí),類似于在5410,MCB?SP正常32位通道默認(rèn)選擇。第二種工作模式中,當(dāng)(R/X) MCME=1時(shí),它擁有128通道選擇能力。多通道控制寄存器的位9,即(R/X)MCME,被用作128通道選擇是能位。一旦(R/X)MCME=1,12個(gè)新的寄存器被用作控制128通道。MCBSP中的時(shí)鐘停止模式提供了串行口兼容協(xié)議。時(shí)鐘停止模式工作時(shí),每幀只有單一圖像或字節(jié)。MCBSP提供的字節(jié)可編程位8,12,16,20,24或32位。當(dāng)MCBSP設(shè)置工作在SPI模式時(shí)傳送器和接收器一起工作在主或從存儲(chǔ)器。雖然BCLKS管腳在PGE和GGU沒(méi)有封裝,但是芯片仍能夠同步到外部時(shí)鐘源。BCLKX或者BCLKR可以當(dāng)作外部同步的頻率采集器。為了適應(yīng)這種選擇頻率采樣時(shí)鐘模式擴(kuò)展出來(lái)的位于PCR上。
表2 McBSP CPU中斷和DMA同步事件
AT89C51具有的數(shù)據(jù)通信方式為串行和并行。并行通信方式是多位數(shù)據(jù)同時(shí)傳送的通信。其特點(diǎn)是速度快,但傳輸距離短,占用單片機(jī)I/O口過(guò)多的缺點(diǎn)。串行通信是指數(shù)據(jù)一位一位順序傳送的通信方式,它只需要一對(duì)數(shù)據(jù)線,具有傳輸距離遠(yuǎn),存在數(shù)據(jù)傳送速度低的缺點(diǎn)。這兩種通信方式示意如圖2所示[4-5]。
串行通信有兩種基本通信方式,即異步通信和同步通信,其傳輸方式又分為單工、半雙工和全雙工方式。
圖2 兩種通信方式
AT89C51單片機(jī)具有可編程的全雙工通用異步接收/發(fā)送器(UART),可用于串行通信,由TxD(P3.1)腳發(fā)送數(shù)據(jù),由RxD(P3.0)腳接收數(shù)據(jù)。串行口的數(shù)據(jù)發(fā)送和接收操作都是通過(guò)特殊功能寄存器中的數(shù)據(jù)緩沖寄存器SBUF進(jìn)行的,兩個(gè)數(shù)據(jù)緩沖器SBUF是獨(dú)立的,一個(gè)用于接收,一個(gè)用于發(fā)送,它們的地址都是99H,對(duì)發(fā)送緩沖器寫(xiě)以實(shí)現(xiàn)發(fā)送,對(duì)接收緩沖器讀以實(shí)現(xiàn)接收。接收緩沖器是雙緩沖的,以避免接收的前后兩幀數(shù)據(jù)重疊問(wèn)題,AT89C51的串行通信口有4種工作方式,分別是0~4方式,0方式用于I/O擴(kuò)展或同步傳輸,由串行口控制寄存器SCON中的選擇位來(lái)確定選用的工作方式。1方式主要進(jìn)行定義串行通信的為8位異步通信串口。一幀信號(hào)的長(zhǎng)度為10位:包括低電平的起始位1位,數(shù)據(jù)位8位,低位在先,高電平停止位1位。波特率可變。
(1)TMS320VC5416與AT89C51電平問(wèn)題
TMS320VC5416的I/O引腳的邏輯電平是3.3 V,而AT89C51采用5 V邏輯電平。320VC5416最小輸出高電平為2.4 V,而89C51最小輸入高電平為2.0 V。因此AT89C51的輸入能夠直接連接到320VC5416的輸出。但是320VC5416輸入最大高電平是3.6 V,而89C51的高電平輸出一般都超過(guò)4.6 V。所以AT89C51的輸出和320VC5416的輸入在電平轉(zhuǎn)換后,才能連接。對(duì)于引腳多的芯片,采用專用電平轉(zhuǎn)換芯片,如TI 74LVC16245A是較好的選擇。采用分壓電阻進(jìn)行轉(zhuǎn)換,可以簡(jiǎn)化設(shè)計(jì)。連接如圖3所示。
圖3 TMS320VC5416與AT89C51串口連接
(2)串口協(xié)議
如圖3所示,時(shí)鐘信號(hào)并沒(méi)有在通路中顯示,由AT89C51的低速串行口與TMS320VC5416的高速M(fèi)cBSP端口不匹配,將McBSP傳輸多個(gè)位合并成AT89C51的一個(gè)位,這樣輸出/輸入速度一致。
在異步方式下AT89C51串行口的工作方式有4種。這里采用方式1,設(shè)置為8位異步通信口,每幀數(shù)據(jù)有10位:1位低電平起始位,數(shù)據(jù)位是8位,1位高電平停止位。在工作方式1下,串行口的89C51與C5416通信。發(fā)送數(shù)據(jù)時(shí),C5416的McBSP端口首先對(duì)數(shù)據(jù)進(jìn)行編碼如下:將數(shù)據(jù)的每位擴(kuò)展成完全相同的16位,組成一個(gè)字,即“0”擴(kuò)展成為“0000”,“1”擴(kuò)展成為“FFFF”,這樣一個(gè)字的8位就被擴(kuò)展成為8個(gè)具有相同16位的字。同樣,起始標(biāo)志為16位0的數(shù)據(jù)“0000H”放在每幀的前面,結(jié)束標(biāo)志的16位1的數(shù)據(jù)“FFFFH”放在每幀的后面。DSP的McBSP高速端口接收到數(shù)據(jù)之時(shí),將接收的1個(gè)幀作為AT89C51數(shù)據(jù)的1個(gè)字節(jié),設(shè)置接收數(shù)據(jù)格式是每幀為10個(gè)16位字。共計(jì)160個(gè)位。在接收到一幀的完整數(shù)據(jù)之后,C5416再根據(jù)前面設(shè)置的編碼規(guī)則解碼后,就可以得到正確的數(shù)據(jù)。
發(fā)送數(shù)據(jù)時(shí),AT89C51執(zhí)行指令寫(xiě)入數(shù)據(jù)到SBUF,就啟動(dòng)了發(fā)送串行數(shù)據(jù),由TXD發(fā)送數(shù)據(jù),發(fā)送一幀結(jié)束后,發(fā)送中斷標(biāo)志TI被置位;接收數(shù)據(jù)過(guò)程中,AT89C51在RI中斷標(biāo)志位為0的情況下,REN置位就啟動(dòng)一幀接收數(shù)據(jù)的過(guò)程,并使數(shù)據(jù)進(jìn)入移位寄存器,并加載到SBUF,同時(shí)置位RI。
AT89C51的數(shù)據(jù)傳輸是以低電平時(shí)鐘為起始位,在輸入時(shí)320VC5416的McBSP端口可用此低電平為320VC5416同步信號(hào)的輸入幀;在輸出時(shí),由McBSP的采樣率發(fā)生器發(fā)生和輸出。
(3)波特率
上述論述中將320VC5416端口McBSP信號(hào)的一個(gè)16位字當(dāng)作AT89C51的一個(gè)位,即AT89C51的一個(gè)位發(fā)送數(shù)據(jù)被320VC5416的McBSP讀16次,而320VC5416的McBSP的16位發(fā)送數(shù)據(jù)只被89C51讀1次,因此AT89C51波特率需等于320VC5416的McBSP的串行時(shí)鐘移位速率的十六分之一。
計(jì)算McBSP端口移位時(shí)鐘的速率可以采用以下公式:
頻率CLKG=時(shí)鐘頻率(發(fā)生器輸入)/(CLKDV+1)
(1)
CLKDV為寄存器SRGR1的D0到D7位。一般來(lái)說(shuō),AT89C51采用9 600 b/s波特率時(shí),由式(1)得到:
CLKDV=時(shí)鐘頻率(發(fā)生器輸入)/頻率CLKG-1=時(shí)鐘頻率(發(fā)生器輸入)/(16×9600)-1
(2)
采樣率發(fā)生器可選兩種時(shí)鐘之一,一種為DSP輸入的外部時(shí)鐘CLKS,另外一種為CPU的時(shí)鐘。任何情況下,AT89C51工作的頻率比320VC5416的工作頻率低很多。后者的工作頻率以PLL鎖相環(huán)對(duì)CLKS進(jìn)行倍頻獲得,通常在160 MHz以上。通常外部時(shí)鐘CLKS頻率比較低,以20 MHz為例,這個(gè)頻率依然比AT89C51工作的頻率高。若以CPU時(shí)鐘作為采樣率發(fā)生器的輸入,設(shè)定為160 MHz,代入式(2),結(jié)果是0x410,可以看出CLKDV是8位,由于結(jié)果12位而無(wú)法容納;而如果以CLKS作為其輸入,以20 MHz為例,代入式(2),得出結(jié)果是0x81,可以被CLKDV容納。這樣一來(lái),在320VC5416與AT89C51高通信速率的情況下,采用CPU時(shí)鐘作為輸入采樣率發(fā)生器的時(shí)鐘比較合適。一般說(shuō)來(lái),通信速率沒(méi)有很高的要求,為了取得雙方的匹配的通信速率,輸入采樣率發(fā)生器的時(shí)鐘以采用頻率低的CLKS比較合適。
初始化TMS320VC5416:
STM #SRGR1,SPSA1
STM #00FEH,SPSD1;FSG幀同步脈沖寬度為1個(gè)CLKG,
;波特率為160MHz/(0x00FF)=627450 b/s
STM #SRGR2,SPSA1
STM #3000H,SPSD1;內(nèi)部采樣率發(fā)生器時(shí)鐘由CPU驅(qū)動(dòng)
AT89C51初始化:
MOV TMOD,#20H
MOV TL1,#FFH
MOV TH1,#FFH;C51波特率= (2SMOD/32)* (fosc/12)*(1/(256-initialization))=24509 b/s
MOV SCON,#50H;設(shè)置串口方式1,每幀10位數(shù)據(jù),允許接收
MOV PCON< #80H;設(shè)置SMOD=1
為了避免發(fā)送和接收數(shù)據(jù)頻繁地打斷CPU的運(yùn)行,以DMA和McBSP聯(lián)合使用的方式來(lái)操作數(shù)據(jù)的接收和發(fā)送。由RRDY信號(hào)驅(qū)動(dòng)McBSP直接向DMAC REVENT事件、接收數(shù)據(jù)事件;由XRDY信號(hào)驅(qū)動(dòng)McBSP直接向DMAC XEVENT事件、發(fā)送數(shù)據(jù)事件。
如圖4所示為SCI通信協(xié)議。
圖4 串口SCI通信協(xié)議流程
本文提出了TMS320VC5416與單片機(jī)AT89C51通信設(shè)計(jì)方法,對(duì)320VC5416多通道緩沖串行口McBSP特點(diǎn)進(jìn)行闡述,在介紹AT89C51的串行通信特點(diǎn)的基礎(chǔ)上進(jìn)行TMS320VC5416與AT89C51串行通信設(shè)計(jì),充分考慮了電平匹配問(wèn)題,通信協(xié)議和波特率匹配等方面的問(wèn)題,最后給出了部分程序?qū)崿F(xiàn)方法。
參考文獻(xiàn):
[1]TMS320VC5416 Fixed-Point Digital Signal Processor Da?ta Manual[Z]. Texas Instruments,2008.
[2]Tai Nguyen. TMS320VC5402A / VC5409A / VC5410A / VC5416 Bootloader. Application Report SPRA602F [Z]. TEXAS INSTRUMENTS,2006.
[3]TMS320C54x DSP Reference Set Volume 5:Enhanced Peripherals[Z]. Texas Instruments,1999.
[4]Atmel 8051 Microcontrollers Hardware Manual[Z]. 2007.
[5]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1990.
[6]胡劍凌,徐盛.數(shù)字信號(hào)處理系統(tǒng)的應(yīng)用和設(shè)計(jì)[M].上海:上海交通大學(xué)出版社,2003.
[7]TMS320C54x DSP Reference Set Volume 4:Applica?tions Guide[Z]. Texas Instruments,1996.
[8]羅大暉. TMS320VC5416與89C51的串行通信設(shè)計(jì)[J].常州信息職業(yè)技術(shù)學(xué)院院報(bào),2007,6(3):28-30.
(編輯:向飛)
Communication Design for TMS320VC5416 and MCU AT89C51
LI Sheng-yong
(Xiamen Comfort Science & Technology Group Co.,Ltd,Xiamen361009,China)
Abstract:It is presented in this paper the realization of communication design method for DSP TMS320VC5416 and MCU AT89C51,on the basis of the analysis of characteristics of TMS320VC5416 serial port and 89C51 serial communication design,the communication design is proposed in this paper as well as the level match,communication protocol and baud rate match method,which has guiding significance to realize the communication of DSP and 89c51. The part procedure realization method is presented in the last.
Key words:MCU;DSP;serial communication;program design
作者簡(jiǎn)介:李勝勇,男,1971年生,山東海陽(yáng)人,博士,高級(jí)工程師。研究領(lǐng)域:數(shù)控技術(shù)、電子控制系統(tǒng)分析與設(shè)計(jì)及移動(dòng)互聯(lián)網(wǎng)、云服務(wù)、智能家電控制技術(shù)等。已發(fā)表論文50篇。
收稿日期:2015-05-06
DOI:10. 3969 / j. issn. 1009-9492. 2015. 11. 022
中圖分類號(hào):TP311.1
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-9492 ( 2015 ) 11-0081-04