C6000與C2000系列DSP之間串行數(shù)據(jù)通訊的研究與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
tms320c6711是ti公司tms320c6000系列32位浮點(diǎn)dsp,它具有專用硬件邏輯的cpu、片內(nèi)存儲器、片內(nèi)外設(shè),支持匯編和c語言的單獨(dú)或混合編程。該系列dsp最主要的特點(diǎn)是采用了vliw體系結(jié)構(gòu),因此可以單周期發(fā)射多條指令,實(shí)現(xiàn)很高的指令級并行效率。其計(jì)算和處理速度非??欤到y(tǒng)單指令周期可達(dá)到6.67ns,被廣泛用于dsl、無線基站、雷達(dá)聲納、數(shù)字圖像處理等方面。在tms320c6711中有2個(gè)多通道緩沖串行接口mcbsp,mcbsp不僅可以配制成串行接口,還可以獨(dú)立配制成通用的輸入(gpi)、輸出(gpo)和輸入輸出端口(gpio)。其優(yōu)點(diǎn)是數(shù)據(jù)處理能力強(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主頻),對于數(shù)據(jù)處理運(yùn)算量特別大的系統(tǒng),其運(yùn)算速度略顯不足?! 《鄶?shù)數(shù)字圖像處理應(yīng)用系統(tǒng)既要求系統(tǒng)有強(qiáng)大的數(shù)據(jù)處理能力,以滿足對圖像處理的實(shí)時(shí)性要求,又要求系統(tǒng)有強(qiáng)大的控制能力,以便實(shí)現(xiàn)對外部眾多設(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),數(shù)字圖像數(shù)據(jù)由下位機(jī)tms320c6711處理,處理結(jié)果采用異步串口通訊的方式傳送給上位機(jī)tms320lf2407,tms320lf2407將采集到的模擬量、開關(guān)量等參數(shù),與通過異步串口接收到的圖像處理結(jié)果一起通過can總線向遠(yuǎn)程監(jiān)控終端發(fā)送。
tms320c6711的多通道緩沖串行接口mcbsp與tms320lf2407的sci模塊,通過特定的軟硬件設(shè)計(jì)可以支持使用標(biāo)準(zhǔn)格式的異步數(shù)字通訊。通訊數(shù)據(jù)的格式為:一個(gè)起始位、數(shù)據(jù)(長度可通過編程在16位~8位內(nèi)可選)位、可供選擇的奇/偶/非極性位、一個(gè)或兩個(gè)停止位。
1.1 mcbsp接口 mcbsp可以分為數(shù)據(jù)通道和控制通道兩部分。數(shù)據(jù)發(fā)送引腳(dx)和數(shù)據(jù)接收引腳(dr)分別負(fù)責(zé)數(shù)據(jù)的發(fā)送和接收,發(fā)送時(shí)鐘引腳(clkx)、接收時(shí)鐘引腳(clkr)、發(fā)送幀同步引腳(fsx)和接收幀同步引腳(fsr)提供串行時(shí)鐘和控制信號。cpu和dma控制器通過外設(shè)總線與mcbsp進(jìn)行通訊。當(dāng)發(fā)送數(shù)據(jù)時(shí),cpu和dma將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(dxr1,dxr2),接著復(fù)制到發(fā)送移位寄存器(xsr1,xsr2),通過發(fā)送移位寄存器輸出至dx引腳。同樣,當(dāng)接收數(shù)據(jù)時(shí),dr引腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(rsr1,rsr2),接著復(fù)制到接收緩沖寄存器(rbr1,rbr2),rbr再將數(shù)據(jù)復(fù)制到數(shù)據(jù)接收寄存器(drr1,drr2)中,并通過串口事件通知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ā)生器,可得到超過65 000種不同的可編程速率。sci為接收器和發(fā)送器提供獨(dú)立的中斷請求和中斷向量:如果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接口通過內(nèi)部特殊功能寄存器配置為串行接口模式即可。而tms320c6711d的mcbsp除通過內(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)換。
3 軟件參數(shù)的配置與計(jì)算
3.1 針對tms320c6711d
(1)波特率的計(jì)算
tms320c6711d內(nèi)部生成的串行時(shí)鐘由系統(tǒng)時(shí)鐘