《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > C6000與C2000系列DSP之間串行數(shù)據(jù)通訊的研究與實(shí)現(xiàn)

C6000與C2000系列DSP之間串行數(shù)據(jù)通訊的研究與實(shí)現(xiàn)

2008-07-25
作者:韓開亮,張 濤

??? 摘? 要:主從式雙DSP系統(tǒng)中,主從芯片之間可靠的數(shù)據(jù)傳輸是整個(gè)系統(tǒng)穩(wěn)定工作的保證。本文給出了數(shù)字信號(hào)處理器TMS320C6711D與TMS320LF2407A之間的高速異步串行通訊" title="串行通訊">串行通訊設(shè)計(jì)方法,介紹了串行通訊接口的硬件設(shè)計(jì)、寄存器參數(shù)配置方法、軟件流程及初始化代碼。
??? 關(guān)鍵詞:DSP;McBSP;SCI

???

??? TMS320C6711是TI公司TMS320C6000系列32位浮點(diǎn)DSP,它具有專用硬件邏輯的CPU、片內(nèi)存儲(chǔ)器、片內(nèi)外設(shè),支持匯編和C語(yǔ)言的單獨(dú)或混合編程。該系列DSP最主要的特點(diǎn)是采用了VLIW體系結(jié)構(gòu),因此可以單周期發(fā)射多條指令,實(shí)現(xiàn)很高的指令級(jí)并行效率。其計(jì)算和處理速度非常快,系統(tǒng)單指令周期可達(dá)到6.67ns,被廣泛用于DSL、無(wú)線基站、雷達(dá)聲納、數(shù)字圖像處理等方面。在TMS320C6711中有2個(gè)多通道緩沖串行接口McBSP,McBSP不僅可以配制成串行接口,還可以獨(dú)立配制成通用的輸入(GPI)、輸出(GPO)和輸入輸出端口(GPIO)。其優(yōu)點(diǎn)是數(shù)據(jù)處理能力" title="處理能力">處理能力強(qiáng)大,但控制接口少,片內(nèi)集成外部設(shè)備少,控制能力較弱。
??? TI公司的TMS320LF2407為16位定點(diǎn)DSP微控制器,內(nèi)嵌有看門狗定時(shí)器(WDT)、CAN總線控制器、模數(shù)轉(zhuǎn)換器(ADC)、串行外設(shè)接口(SPI)、異步串行口(SCI)等多種外設(shè)模塊,并有大量輸入輸出引腳(GPIO),可以滿足控制系統(tǒng)多方面的控制需求。但由于TMS320LF2407的指令周期最短為25ns(40MHz主頻),對(duì)于數(shù)據(jù)處理運(yùn)算量特別大的系統(tǒng),其運(yùn)算速度略顯不足。
??? 多數(shù)數(shù)字圖像處理應(yīng)用系統(tǒng)既要求系統(tǒng)有強(qiáng)大的數(shù)據(jù)處理能力,以滿足對(duì)圖像處理的實(shí)時(shí)性要求,又要求系統(tǒng)有強(qiáng)大的控制能力,以便實(shí)現(xiàn)對(duì)外部眾多設(shè)備的控制。在實(shí)際應(yīng)用系統(tǒng)中,將TMS320C6711作為處理器完成數(shù)字圖像的實(shí)時(shí)處理,TMS320LF2407作為控制器完成系統(tǒng)的控制功能,便可兼顧系統(tǒng)的數(shù)據(jù)處理能力與外部設(shè)備控制能力。這樣的系統(tǒng)要求在TMS320C6711和TMS320LF2407之間建立有效的數(shù)據(jù)交換通道,本文所介紹的設(shè)計(jì)思想就是基于以上工程需要提出的。
1 系統(tǒng)結(jié)構(gòu)
??? 本系統(tǒng)為嵌入式數(shù)字圖像處理系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1所示。數(shù)字圖像數(shù)據(jù)由下位機(jī)TMS320C6711處理,處理結(jié)果采用異步串口通訊的方式傳送給上位機(jī)TMS320LF2407,TMS320LF2407將采集到的模擬量、開關(guān)量等參數(shù),與通過(guò)異步串口接收到的圖像處理結(jié)果一起通過(guò)CAN總線向遠(yuǎn)程監(jiān)控終端發(fā)送。
????????????????????

??? TMS320C6711的多通道緩沖串行接口McBSP與TMS320LF2407的SCI模塊,通過(guò)特定的軟硬件設(shè)計(jì)可以支持使用標(biāo)準(zhǔn)格式的異步數(shù)字通訊。通訊數(shù)據(jù)的格式為:一個(gè)起始位、數(shù)據(jù)(長(zhǎng)度可通過(guò)編程在16位~8位內(nèi)可選)位、可供選擇的奇/偶/非極性位、一個(gè)或兩個(gè)停止位,如圖2所示。

?????????????????????
1.1 McBSP接口
??? McBSP的結(jié)構(gòu)框圖如圖3所示。McBSP可以分為數(shù)據(jù)通道和控制通道兩部分。數(shù)據(jù)發(fā)送引腳(DX)和數(shù)據(jù)接收引腳(DR)分別負(fù)責(zé)數(shù)據(jù)的發(fā)送和接收,發(fā)送時(shí)鐘引腳(CLKX)、接收時(shí)鐘引腳(CLKR)、發(fā)送幀同步" title="幀同步">幀同步引腳(FSX)和接收幀同步引腳(FSR)提供串行時(shí)鐘和控制信號(hào)。CPU和DMA控制器通過(guò)外設(shè)總線與McBSP進(jìn)行通訊。當(dāng)發(fā)送數(shù)據(jù)時(shí),CPU和DMA將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(DXR1,DXR2),接著復(fù)制到發(fā)送移位寄存器(XSR1,XSR2),通過(guò)發(fā)送移位寄存器輸出至DX引腳。同樣,當(dāng)接收數(shù)據(jù)時(shí),DR引腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(RSR1,RSR2),接著復(fù)制到接收緩沖寄存器(RBR1,RBR2),RBR再將數(shù)據(jù)復(fù)制到數(shù)據(jù)接收寄存器(DRR1,DRR2)中,并通過(guò)串口事件通知CPU或DMA讀取數(shù)據(jù)。這種多極緩沖方式使得片內(nèi)數(shù)據(jù)通訊和串行數(shù)據(jù)通訊能夠同時(shí)進(jìn)行。

?????????????????????????????
1.2 SCI接口
??? SCI模塊支持CPU和其他使用標(biāo)準(zhǔn)格式的異步設(shè)備間的通訊。它具有SCIRXD(串行數(shù)據(jù)接收端)和SCITXD(串行數(shù)據(jù)發(fā)送端)兩個(gè)I/O引腳。在全雙工模式下具有一個(gè)發(fā)送器(包括SCITX2BUF及其主寄存器TXSHF)、一個(gè)接收器(包括SCIRXBUF及其RXSHF)。發(fā)送器在SCITXBUF存放要發(fā)送的數(shù)據(jù),并每次一位地將數(shù)據(jù)移位至SCITXD引腳;接收時(shí)則每次一位地將SCIRXD引腳上的數(shù)據(jù)移入,載入SCIRXBUF和SCIRXEMU給CPU讀取。具有一個(gè)可編程的波特率發(fā)生器,可得到超過(guò)65 000種不同的可編程速率。SCI為接收器和發(fā)送器提供獨(dú)立的中斷請(qǐng)求和中斷向量:如果RX/BKINT ENA位(SCICTL2.1)被置位,當(dāng)SCI接收到一個(gè)完整的幀,并把RXSHF中的數(shù)據(jù)傳送到SCIRXBUF時(shí),這個(gè)動(dòng)作置位RXRDY標(biāo)志(SCIRXST.6)并啟動(dòng)一個(gè)中斷。如果TX INT ENA位(SCICTL2.0)被置位,則在任何時(shí)候,只要SCITXBUF中的數(shù)據(jù)送到TXSHF,發(fā)送器中斷就會(huì)被認(rèn)定,表示CPU可以向SCITXBUF寫。這個(gè)動(dòng)作置位TXRDY標(biāo)志位,并啟動(dòng)一個(gè)中斷。
2 硬件實(shí)現(xiàn)
??? 當(dāng)TMS320C6711D與TMS320LF2407A進(jìn)行標(biāo)準(zhǔn)異步串行通訊時(shí),TMS320LF2407A的SCI接口可直接支持該通訊,只需將SCI接口通過(guò)內(nèi)部特殊功能寄存器配置為串行接口模式即可。而TMS320C6711D的McBSP除通過(guò)內(nèi)部特殊功能寄存器配置成串行接口外,在硬件設(shè)計(jì)上還應(yīng)將DR和FSR短接,并與SCI的串行數(shù)據(jù)發(fā)送引腳(SCITXD)相連。這是由于標(biāo)準(zhǔn)異步串行通訊中數(shù)據(jù)線上既包含了幀同步信息,也包含了數(shù)據(jù)信息。SCI的串行數(shù)據(jù)接收引腳(SCIRXD)與McBSP的DX相連。
??? 由于TMS320C6711D與TMS320LF2407A的接口電壓均為3.3V,二者引腳可直接相連,不需要電平轉(zhuǎn)換。McBSP與SCI的串行異步通訊接口電路如圖4所示。

????????????????????????
3 軟件參數(shù)的配置與計(jì)算
3.1 針對(duì)TMS320C6711D

??? (1)波特率的計(jì)算
??? TMS320C6711D內(nèi)部生成的串行時(shí)鐘由系統(tǒng)時(shí)鐘頻率" title="時(shí)鐘頻率">時(shí)鐘頻率SYSCLK和采樣率發(fā)生寄存器決定。MCBSP的內(nèi)部數(shù)據(jù)時(shí)鐘頻率即異步波特率由以下公式確定:
??? MCBSP異步波特率=采樣率發(fā)生寄存器輸入時(shí)鐘頻率/(CLKGDV+1)
??? 其中:CLKGDV=采樣率發(fā)生寄存器輸入時(shí)鐘頻率/McBSP異步波特率-1。
??? 當(dāng)采樣率發(fā)生寄存器的CLKSM=1時(shí),采樣率發(fā)生寄存器輸入時(shí)鐘頻率=CPU內(nèi)核輸入時(shí)鐘/2;
??? 當(dāng)采樣率發(fā)生寄存器的CLKSM=0時(shí),采樣率發(fā)生寄存器輸入時(shí)鐘頻率=CPU內(nèi)核輸入時(shí)鐘。
??? 在本系統(tǒng)中,TMS320C6711D的內(nèi)核輸入時(shí)鐘為150MHz,采樣率發(fā)生寄存器的CLKSM位設(shè)置為1。若使McBSP異步通訊波特率為312.5kb/s,則依據(jù)以上公式,采樣率發(fā)生寄存器的CLKGDV段參數(shù)應(yīng)配置為239,即十六進(jìn)制的0xEF。
??? (2)特殊功能寄存器的初始化
??? TMS320C6711D內(nèi)部與McBSP配置相關(guān)的特殊功能寄存器主要有:串口控制寄存器" title="控制寄存器">控制寄存器(SPCR)、接收控制寄存器(RCR)、發(fā)送控制寄存器(XCR)、采樣率發(fā)生器寄存器(SRGR)、多通道控制寄存器(MCR)、接收通道使能寄存器(RCER)、發(fā)送通道使能寄存器(XCER)、管腳控制寄存器(PCR)。
??? TMS320C6711的McBSP與TMS320LF2407的SCI模塊通訊時(shí),系統(tǒng)對(duì)McBSP的配置要求為:數(shù)據(jù)為單項(xiàng)幀;每幀一個(gè)數(shù)據(jù)單元;數(shù)據(jù)單元字長(zhǎng)為8bit;時(shí)鐘下降沿處接收數(shù)據(jù);在上升沿處發(fā)送數(shù)據(jù);幀同步信號(hào)高有效;幀同步有效后,在其后的第一個(gè)時(shí)鐘周期啟動(dòng)該幀的傳輸,即數(shù)據(jù)延遲為0;異步通信波特率為312.5kb/s。
??? 根據(jù)以上控制要求,TMS320C6711D內(nèi)部與McBSP相關(guān)的特殊功能寄存器的配置參數(shù)如表1所示。

??????????????????????????
3.2 針對(duì)TMS320LF2407A
??? (1)波特率的計(jì)算
??? TMS320LF2407A內(nèi)部生成的串行時(shí)鐘由系統(tǒng)時(shí)鐘SYSCLK頻率和波特率選擇寄存器決定。串行通信接口使用16bit波特率選擇寄存器,數(shù)據(jù)傳輸速度可以被編程為65000多種不同的方式。
??? 不同通信模式下的串行通信接口異步波特率由下列方法決定:
??? BRR=1~65 535時(shí)的串行通信接口異步波特率為:
??????? SCI異步波特率=SYSCLK/[(BRR+1)×8]
??? 其中:BRR= SYSCLK/(SCI異步波特率×8)-1
??????? BRR=0時(shí)的串行通信接口異步波特率為:
??????? SCI異步波特率=SYSCLK/16
??? 這里BRR等于波特率選擇寄存器的16位值。
??? 在本系統(tǒng)中,TMS320LF2407A的系統(tǒng)輸入時(shí)鐘為25MHz,若使SCI異步通信波特率為312.5kb/s,則依據(jù)以上公式,波特率選擇寄存器參數(shù)應(yīng)配置為9,即十六進(jìn)制的0x0009。
??? (2)特殊功能寄存器的初始化
??? TMS320LF2407的SCI模塊的異步串行通訊配置包括管腳配置、通訊模式配置和中斷配置三方面,相關(guān)的特殊功能寄存器包括復(fù)用控制寄存器(MCRA)、端口數(shù)據(jù)和方向控制寄存器(PADATDIR)、串行通訊接口控制寄存器1和2(SCICTL1和SCICTL2)、通訊控制寄存器(SCICCR)、波特率選擇高字節(jié)寄存器和低字節(jié)寄存器(SCIHBAUD和SCILBAUD)、優(yōu)先級(jí)控制寄存器(SCIPRI)、接收狀態(tài)寄存器(SCIRXST)等。
??? 為了實(shí)現(xiàn)通訊波特率為312.5kb/s的標(biāo)準(zhǔn)異步數(shù)字通訊,SCI模塊應(yīng)配置為串行通信功能模式,并將特殊功能寄存器配置如表2所示。

???????????????????????
4 軟件設(shè)計(jì)
??? 系統(tǒng)中TMS320C6711通過(guò)McBSP將圖像處理結(jié)果采用主動(dòng)發(fā)送的方式發(fā)送給TMS320LF2407,后者通過(guò)響應(yīng)SCI中斷的方式接收數(shù)據(jù)信息。這兩部分軟件流程框圖如圖5所示。

?????????????????????
5 串行通訊初始化程序
  TMS320C6711與TMS320LF2407進(jìn)行串行通訊的軟件設(shè)計(jì)難點(diǎn)是McBSP與SCI的初始化程序設(shè)計(jì)。初始化程序包括對(duì)芯片的管腳配置、通訊模式配置和中斷配置等方面。以下分別給出TMS320C6711的McBSP模塊和TMS320LF2407的SCI模塊的初始化程序模塊。
??? (1)TMS320C6711的McBSP模塊初始化程序
??? void?init_mcbsp0_master(void)
??? {
????? MCBSP_Config mcbspCfg0=
??? {
???? 0x00010001,//配置spcr寄存器
???? 0x000D0000,//配置rcr寄存器
???? 0x00040020,//配置xcr寄存器
???? 0x200000ef,//配置srgr寄存器,
???????????????????????????? //波特率設(shè)定為312.5kb/s
???? 0x00000000,//配置mcr寄存器
???? 0x00000000,//配置rcer寄存器
???? 0x00000000,//配置xcer寄存器
???? 0x00000b0c//配置pcr寄存器
??? };

??? hMcbsp0=MCBSP_open(MCBSP_DEV0, MCBSP_OPEN_RESET);
???? //選用port 0
???? MCBSP_config(hMcbsp0,&mcbspCfg0);

???? IRQ_map(IRQ_EVT_RINT0,13);//映射接收中斷0為
???????????????????????????????? //13號(hào)中斷
???? IRQ_reset(IRQ_EVT_RINT0);
???? IRQ_enable(IRQ_EVT_RINT0);//開中斷

???? MCBSP_enableRcv(hMcbsp0);
???? MCBSP_enableSrgr(hMcbsp0);//Handle to SRGR
???? MCBSP_enableFsync(hMcbsp0);
??? }
??? (2)TMS320LF2407的SCI模塊初始化程序
??? void sci_INIT(void)
??? {
????? MCRA=MCRA|0x0003; //設(shè)置引腳SCITXD/IOPA0和
???????????????????????? //SCIRXD/IOPA1為串行通訊功能
????? PADATDIR=0X0100;? //設(shè)PA口為輸入口
????? SCICTL1=0x13;?????//使能接收和發(fā)送
????? SCICTL2=0x02;???? //禁止發(fā)送中斷,使能接收中斷
????? SCICCR=0X07;????? //8位字長(zhǎng),1個(gè)停止位,空閑線多處
???????????????????????? //理器模式,無(wú)奇偶校驗(yàn)
????? SCIHBAUD=0x00;??? //波特率設(shè)為312.5kb/s
????? SCILBAUD=0x09;
????? SCIPRI=0x00;???????? //接收為高優(yōu)先級(jí)中斷
????? SCIRXST=SCIRXST&0xbf;//清除SCI接收中斷標(biāo)志
????? SCICTL1=0x33;??????? //保存設(shè)置
??? }
??? 利用TMS320C6711的McBSP和TMS320LF2407的SCI可以實(shí)現(xiàn)異步串行數(shù)據(jù)通訊,具有電路簡(jiǎn)單、設(shè)置靈活、數(shù)據(jù)傳輸速度快、性能可靠穩(wěn)定等特點(diǎn)。在此基礎(chǔ)上可成功構(gòu)建主從式雙DSP數(shù)據(jù)處理系統(tǒng),有效解決單一DSP系統(tǒng)數(shù)據(jù)處理能力與控制能力難以兼顧的問題。本文所介紹的設(shè)計(jì)方案已在實(shí)際應(yīng)用系統(tǒng)中采用,并經(jīng)長(zhǎng)時(shí)間運(yùn)行檢驗(yàn)。實(shí)踐證明,此設(shè)計(jì)方案是一種有效的多DSP數(shù)據(jù)交換手段。


參考文獻(xiàn)
[1] Texas Instruments Application Report.TMS320C6000 McBSP:UART.SPRA633B,2004.
[2] 安斯光,倪光正.TMS320LF2407A與MCS-51基于RS_485的串口通訊設(shè)計(jì).計(jì)算機(jī)工程與設(shè)計(jì),2006,27(13).
[3] 余建康,來(lái)五星,史鐵林.TMS320C6711DSP異步串行通信的研究與實(shí)現(xiàn).機(jī)械與電子,2006,(1):37-39.
[4] TMS320C6000 Peripherals Reference Guide[R].Texas Instruments Incorporated,2001.
[5] 劉和平.TMS320LF240xDSP結(jié)構(gòu)、原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,2000.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。