C6000與C2000系列DSP之間串行數(shù)據(jù)通訊的研究與實現(xiàn)
tms320c6711是ti公司tms320c6000系列32位浮點dsp,它具有專用硬件邏輯的cpu、片內存儲器、片內外設,支持匯編和c語言的單獨或混合編程。該系列dsp最主要的特點是采用了vliw體系結構,因此可以單周期發(fā)射多條指令,實現(xiàn)很高的指令級并行效率。其計算和處理速度非???,系統(tǒng)單指令周期可達到6.67ns,被廣泛用于dsl、無線基站、雷達聲納、數(shù)字圖像處理等方面。在tms320c6711中有2個多通道緩沖串行接口mcbsp,mcbsp不僅可以配制成串行接口,還可以獨立配制成通用的輸入(gpi)、輸出(gpo)和輸入輸出端口(gpio)。其優(yōu)點是數(shù)據(jù)處理能力強大,但控制接口少,片內集成外部設備少,控制能力較弱?! i公司的tms320lf2407為16位定點dsp微控制器,內嵌有看門狗定時器(wdt)、can總線控制器、模數(shù)轉換器(adc)、串行外設接口(spi)、異步串行口(sci)等多種外設模塊,并有大量輸入輸出引腳(gpio),可以滿足控制系統(tǒng)多方面的控制需求。但由于tms320lf2407的指令周期最短為25ns(40mhz主頻),對于數(shù)據(jù)處理運算量特別大的系統(tǒng),其運算速度略顯不足?! 《鄶?shù)數(shù)字圖像處理應用系統(tǒng)既要求系統(tǒng)有強大的數(shù)據(jù)處理能力,以滿足對圖像處理的實時性要求,又要求系統(tǒng)有強大的控制能力,以便實現(xiàn)對外部眾多設備的控制。在實際應用系統(tǒng)中,將tms320c6711作為處理器完成數(shù)字圖像的實時處理,tms320lf2407作為控制器完成系統(tǒng)的控制功能,便可兼顧系統(tǒng)的數(shù)據(jù)處理能力與外部設備控制能力。這樣的系統(tǒng)要求在tms320c6711和tms320lf2407之間建立有效的數(shù)據(jù)交換通道,本文所介紹的設計思想就是基于以上工程需要提出的。1 系統(tǒng)結構 本系統(tǒng)為嵌入式數(shù)字圖像處理系統(tǒng),數(shù)字圖像數(shù)據(jù)由下位機tms320c6711處理,處理結果采用異步串口通訊的方式傳送給上位機tms320lf2407,tms320lf2407將采集到的模擬量、開關量等參數(shù),與通過異步串口接收到的圖像處理結果一起通過can總線向遠程監(jiān)控終端發(fā)送。
tms320c6711的多通道緩沖串行接口mcbsp與tms320lf2407的sci模塊,通過特定的軟硬件設計可以支持使用標準格式的異步數(shù)字通訊。通訊數(shù)據(jù)的格式為:一個起始位、數(shù)據(jù)(長度可通過編程在16位~8位內可選)位、可供選擇的奇/偶/非極性位、一個或兩個停止位。
1.1 mcbsp接口 mcbsp可以分為數(shù)據(jù)通道和控制通道兩部分。數(shù)據(jù)發(fā)送引腳(dx)和數(shù)據(jù)接收引腳(dr)分別負責數(shù)據(jù)的發(fā)送和接收,發(fā)送時鐘引腳(clkx)、接收時鐘引腳(clkr)、發(fā)送幀同步引腳(fsx)和接收幀同步引腳(fsr)提供串行時鐘和控制信號。cpu和dma控制器通過外設總線與mcbsp進行通訊。當發(fā)送數(shù)據(jù)時,cpu和dma將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(dxr1,dxr2),接著復制到發(fā)送移位寄存器(xsr1,xsr2),通過發(fā)送移位寄存器輸出至dx引腳。同樣,當接收數(shù)據(jù)時,dr引腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(rsr1,rsr2),接著復制到接收緩沖寄存器(rbr1,rbr2),rbr再將數(shù)據(jù)復制到數(shù)據(jù)接收寄存器(drr1,drr2)中,并通過串口事件通知cpu或dma讀取數(shù)據(jù)。這種多極緩沖方式使得片內數(shù)據(jù)通訊和串行數(shù)據(jù)通訊能夠同時進行。
1.2 sci接口 sci模塊支持cpu和其他使用標準格式的異步設備間的通訊。它具有scirxd(串行數(shù)據(jù)接收端)和scitxd(串行數(shù)據(jù)發(fā)送端)兩個i/o引腳。在全雙工模式下具有一個發(fā)送器(包括scitx2buf及其主寄存器txshf)、一個接收器(包括scirxbuf及其rxshf)。發(fā)送器在scitxbuf存放要發(fā)送的數(shù)據(jù),并每次一位地將數(shù)據(jù)移位至scitxd引腳;接收時則每次一位地將scirxd引腳上的數(shù)據(jù)移入,載入scirxbuf和scirxemu給cpu讀取。具有一個可編程的波特率發(fā)生器,可得到超過65 000種不同的可編程速率。sci為接收器和發(fā)送器提供獨立的中斷請求和中斷向量:如果rx/bkint ena位(scictl2.1)被置位,當sci接收到一個完整的幀,并把rxshf中的數(shù)據(jù)傳送到scirxbuf時,這個動作置位rxrdy標志(scirxst.6)并啟動一個中斷。如果tx int ena位(scictl2.0)被置位,則在任何時候,只要scitxbuf中的數(shù)據(jù)送到txshf,發(fā)送器中斷就會被認定,表示cpu可以向scitxbuf寫。這個動作置位txrdy標志位,并啟動一個中斷。2 硬件實現(xiàn) 當tms320c6711d與tms320lf2407a進行標準異步串行通訊時,tms320lf2407a的sci接口可直接支持該通訊,只需將sci接口通過內部特殊功能寄存器配置為串行接口模式即可。而tms320c6711d的mcbsp除通過內部特殊功能寄存器配置成串行接口外,在硬件設計上還應將dr和fsr短接,并與sci的串行數(shù)據(jù)發(fā)送引腳(scitxd)相連。這是由于標準異步串行通訊中數(shù)據(jù)線上既包含了幀同步信息,也包含了數(shù)據(jù)信息。sci的串行數(shù)據(jù)接收引腳(scirxd)與mcbsp的dx相連?! ∮捎趖ms320c6711d與tms320lf2407a的接口電壓均為3.3v,二者引腳可直接相連,不需要電平轉換。
3 軟件參數(shù)的配置與計算
3.1 針對tms320c6711d
(1)波特率的計算
tms320c6711d內部生成的串行時鐘由系統(tǒng)時鐘