<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DSP實現異步串行數據通訊系統的應用設計

電子設計 ? 來源:電子技術應用 ? 作者:韓開亮,張濤 ? 2021-05-31 09:35 ? 次閱讀

TMS320C6711是TI公司TMS320C6000系列32位浮點DSP,它具有專用硬件邏輯的CPU、片內存儲器、片內外設,支持匯編C語言的單獨或混合編程。該系列DSP最主要的特點是采用了VLIW體系結構,因此可以單周期發射多條指令,實現很高的指令級并行效率。其計算和處理速度非???,系統單指令周期可達到6.67ns,被廣泛用于DSL、無線基站、雷達聲納、數字圖像處理等方面。在TMS320C6711中有2個多通道緩沖串行接口McBSP,McBSP不僅可以配制成串行接口,還可以獨立配制成通用的輸入(GPI)、輸出(GPO)和輸入輸出端口(GPIO)。其優點是數據處理能力強大,但控制接口少,片內集成外部設備少,控制能力較弱。

TI公司的TMS320LF2407為16位定點DSP微控制器,內嵌有看門狗定時器(WDT)、CAN總線控制器、模數轉換器ADC)、串行外設接口(SPI)、異步串行口(SCI)等多種外設模塊,并有大量輸入輸出引腳(GPIO),可以滿足控制系統多方面的控制需求。但由于TMS320LF2407的指令周期最短為25ns(40MHz主頻),對于數據處理運算量特別大的系統,其運算速度略顯不足。

多數數字圖像處理應用系統既要求系統有強大的數據處理能力,以滿足對圖像處理的實時性要求,又要求系統有強大的控制能力,以便實現對外部眾多設備的控制。在實際應用系統中,將TMS320C6711作為處理器完成數字圖像的實時處理,TMS320LF2407作為控制器完成系統的控制功能,便可兼顧系統的數據處理能力與外部設備控制能力。這樣的系統要求在TMS320C6711和TMS320LF2407之間建立有效的數據交換通道,本文所介紹的設計思想就是基于以上工程需要提出的。

1 系統結構

本系統為嵌入式數字圖像處理系統,數字圖像數據由下位機TMS320C6711處理,處理結果采用異步串口通訊的方式傳送給上位機TMS320LF2407,TMS320LF2407將采集到的模擬量、開關量等參數,與通過異步串口接收到的圖像處理結果一起通過CAN總線向遠程監控終端發送。

TMS320C6711的多通道緩沖串行接口McBSP與TMS320LF2407的SCI模塊,通過特定的軟硬件設計可以支持使用標準格式的異步數字通訊。通訊數據的格式為:一個起始位、數據(長度可通過編程在16位~8位內可選)位、可供選擇的奇/偶/非極性位、一個或兩個停止位。

1.1 McBSP接口

McBSP可以分為數據通道和控制通道兩部分。數據發送引腳(DX)和數據接收引腳(DR)分別負責數據的發送和接收,發送時鐘引腳(CLKX)、接收時鐘引腳(CLKR)、發送幀同步引腳(FSX)和接收幀同步引腳(FSR)提供串行時鐘和控制信號。CPU和DMA控制器通過外設總線與McBSP進行通訊。當發送數據時,CPU和DMA將數據寫入數據發送寄存器(DXR1,DXR2),接著復制到發送移位寄存器(XSR1,XSR2),通過發送移位寄存器輸出至DX引腳。同樣,當接收數據時,DR引腳上接收到的數據先移位到接收移位寄存器(RSR1,RSR2),接著復制到接收緩沖寄存器(RBR1,RBR2),RBR再將數據復制到數據接收寄存器(DRR1,DRR2)中,并通過串口事件通知CPU或DMA讀取數據。這種多極緩沖方式使得片內數據通訊和串行數據通訊能夠同時進行。

1.2 SCI接口

SCI模塊支持CPU和其他使用標準格式的異步設備間的通訊。它具有SCIRXD(串行數據接收端)和SCITXD(串行數據發送端)兩個I/O引腳。在全雙工模式下具有一個發送器(包括SCITX2BUF及其主寄存器TXSHF)、一個接收器(包括SCIRXBUF及其RXSHF)。發送器在SCITXBUF存放要發送的數據,并每次一位地將數據移位至SCITXD引腳;接收時則每次一位地將SCIRXD引腳上的數據移入,載入SCIRXBUF和SCIRXEMU給CPU讀取。具有一個可編程的波特率發生器,可得到超過65 000種不同的可編程速率。SCI為接收器和發送器提供獨立的中斷請求和中斷向量:如果RX/BKINT ENA位(SCICTL2.1)被置位,當SCI接收到一個完整的幀,并把RXSHF中的數據傳送到SCIRXBUF時,這個動作置位RXRDY標志(SCIRXST.6)并啟動一個中斷。如果TX INT ENA位(SCICTL2.0)被置位,則在任何時候,只要SCITXBUF中的數據送到TXSHF,發送器中斷就會被認定,表示CPU可以向SCITXBUF寫。這個動作置位TXRDY標志位,并啟動一個中斷。

2 硬件實現

當TMS320C6711D與TMS320LF2407A進行標準異步串行通訊時,TMS320LF2407A的SCI接口可直接支持該通訊,只需將SCI接口通過內部特殊功能寄存器配置為串行接口模式即可。而TMS320C6711D的McBSP除通過內部特殊功能寄存器配置成串行接口外,在硬件設計上還應將DR和FSR短接,并與SCI的串行數據發送引腳(SCITXD)相連。這是由于標準異步串行通訊中數據線上既包含了幀同步信息,也包含了數據信息。SCI的串行數據接收引腳(SCIRXD)與McBSP的DX相連。

由于TMS320C6711D與TMS320LF2407A的接口電壓均為3.3V,二者引腳可直接相連,不需要電平轉換。

3 軟件參數的配置與計算

3.1 針對TMS320C6711D

(1)波特率的計算

TMS320C6711D內部生成的串行時鐘由系統時鐘頻率SYSCLK和采樣率發生寄存器決定。MCBSP的內部數據時鐘頻率即異步波特率由以下公式確定:

MCBSP異步波特率=采樣率發生寄存器輸入時鐘頻率/(CLKGDV+1)

其中:CLKGDV=采樣率發生寄存器輸入時鐘頻率/McBSP異步波特率-1。

當采樣率發生寄存器的CLKSM=1時,采樣率發生寄存器輸入時鐘頻率=CPU內核輸入時鐘/2;

當采樣率發生寄存器的CLKSM=0時,采樣率發生寄存器輸入時鐘頻率=CPU內核輸入時鐘。

在本系統中,TMS320C6711D的內核輸入時鐘為150MHz,采樣率發生寄存器的CLKSM位設置為1。若使McBSP異步通訊波特率為312.5kb/s,則依據以上公式,采樣率發生寄存器的CLKGDV段參數應配置為239,即十六進制的0xEF。

(2)特殊功能寄存器的初始化

TMS320C6711D內部與McBSP配置相關的特殊功能寄存器主要有:串口控制寄存器(SPCR)、接收控制寄存器(RCR)、發送控制寄存器(XCR)、采樣率發生器寄存器(SRGR)、多通道控制寄存器(MCR)、接收通道使能寄存器(RCER)、發送通道使能寄存器(XCER)、管腳控制寄存器(PCR)。

TMS320C6711的McBSP與TMS320LF2407的SCI模塊通訊時,系統對McBSP的配置要求為:數據為單項幀;每幀一個數據單元;數據單元字長為8bit;時鐘下降沿處接收數據;在上升沿處發送數據;幀同步信號高有效;幀同步有效后,在其后的第一個時鐘周期啟動該幀的傳輸,即數據延遲為0;異步通信波特率為312.5kb/s。

3.2 針對TMS320LF2407A

(1)波特率的計算

TMS320LF2407A內部生成的串行時鐘由系統時鐘SYSCLK頻率和波特率選擇寄存器決定。串行通信接口使用16bit波特率選擇寄存器,數據傳輸速度可以被編程為65000多種不同的方式。

不同通信模式下的串行通信接口異步波特率由下列方法決定:

在本系統中,TMS320LF2407A的系統輸入時鐘為25MHz,若使SCI異步通信波特率為312.5kb/s,則依據以上公式,波特率選擇寄存器參數應配置為9,即十六進制的0x0009。

(2)特殊功能寄存器的初始化

TMS320LF2407的SCI模塊的異步串行通訊配置包括管腳配置、通訊模式配置和中斷配置三方面,相關的特殊功能寄存器包括復用控制寄存器(MCRA)、端口數據和方向控制寄存器(PADATDIR)、串行通訊接口控制寄存器1和2(SCICTL1和SCICTL2)、通訊控制寄存器(SCICCR)、波特率選擇高字節寄存器和低字節寄存器(SCIHBAUD和SCILBAUD)、優先級控制寄存器(SCIPRI)、接收狀態寄存器(SCIRXST)等。

4 軟件設計

系統中TMS320C6711通過McBSP將圖像處理結果采用主動發送的方式發送給TMS320LF2407,后者通過響應SCI中斷的方式接收數據信息。

5 串行通訊初始化程序

TMS320C6711與TMS320LF2407進行串行通訊的軟件設計難點是McBSP與SCI的初始化程序設計。初始化程序包括對芯片的管腳配置、通訊模式配置和中斷配置等方面。以下分別給出TMS320C6711的McBSP模塊和TMS320LF2407的SCI模塊的初始化程序模塊。

(1)TMS320C6711的McBSP模塊初始化程序

void init_mcbsp0_master(void)

{

MCBSP_Config mcbspCfg0=

{

0x00010001,//配置spcr寄存器

0x000D0000,//配置rcr寄存器

0x00040020,//配置xcr寄存器

0x200000ef,//配置srgr寄存器,

//波特率設定為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號中斷

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; //設置引腳SCITXD/IOPA0和

//SCIRXD/IOPA1為串行通訊功能

PADATDIR=0X0100; //設PA口為輸入口

SCICTL1=0x13; //使能接收和發送

SCICTL2=0x02; //禁止發送中斷,使能接收中斷

SCICCR=0X07; //8位字長,1個停止位,空閑線多處

//理器模式,無奇偶校驗

SCIHBAUD=0x00; //波特率設為312.5kb/s

SCILBAUD=0x09;

SCIPRI=0x00; //接收為高優先級中斷

SCIRXST=SCIRXST&0xbf;//清除SCI接收中斷標志

SCICTL1=0x33; //保存設置

}

利用TMS320C6711的McBSP和TMS320LF2407的SCI可以實現異步串行數據通訊,具有電路簡單、設置靈活、數據傳輸速度快、性能可靠穩定等特點。在此基礎上可成功構建主從式雙DSP數據處理系統,有效解決單一DSP系統數據處理能力與控制能力難以兼顧的問題。本文所介紹的設計方案已在實際應用系統中采用,并經長時間運行檢驗。實踐證明,此設計方案是一種有效的多DSP數據交換手段。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6843

    瀏覽量

    147951
  • dsp
    dsp
    +關注

    關注

    545

    文章

    7664

    瀏覽量

    344707
  • 定時器
    +關注

    關注

    23

    文章

    3150

    瀏覽量

    112274
收藏 人收藏

    評論

    相關推薦

    labview 實時機與上位機之間的數據通訊

    labview中 實時機與上位機之間的數據通訊大家都是如何處理的?對采集的數據和控制數據怎樣分配的?
    發表于 04-02 09:34

    遠程醫療的數據通訊分析

    只能通過cable或者WIFI和遠程終端進行數據交換,智能手機有著普及性和便攜性絕對優勢成為數據通訊的載體。智能手機和遠程終端的數據交換通過GPRS(3G,4G)或者WIFI,那智能手機和醫療設備之間呢
    發表于 09-12 13:05

    基于LabVIEW的PC與PCC實時數據通訊方案與實現過程

    摘要:針對現代工業過程控制中實時通訊要求和現場總線存在的缺點,用現在流行的開放式標準接口技術OPC規范,設計了一種基于LabV IEW的PC與PCC實時數據通訊方案,并給出了具體的實現過程。該方案
    發表于 04-03 09:40

    以太網在MPSoC中的數據通訊實現

    ,以太網承擔著系統數據通訊模塊,主要實現系統數據傳輸。2 以太網接口設計 以太網模塊設計主要完成以太網控制器IP核用戶端接口協議與多核
    發表于 06-03 05:00

    智能網關IGT-DSER是如何實現PLC與數據庫之間的數據通訊的?

    IGT-DSER帶有哪幾種數據緩存功能?智能網關IGT-DSER是如何實現PLC與數據庫之間的數據通訊的?
    發表于 07-02 06:04

    通訊數據傳送方式有哪幾種呢

    目錄基本知識框架課堂筆記通訊數據傳送方式:串行 / 并行串行通訊并行通訊
    發表于 02-23 06:01

    MATLAB環境下的串行數據通信系統設計

    本文提出了一種串行數據通系統的設計方案,利用MATLAB 提供的儀器控制工具箱serial 類對象來實現串行數據通信,硬件設計中采用TL16C550C 芯片使設計具有很好的可擴展性,
    發表于 06-12 15:23 ?23次下載

    基于TMS320C5402的數據通訊系統的設計

    TMS320C54X系列是TI公司生產的應用于通訊領域的DSP芯片,該系列具有功耗小、高度并行等優點,能夠滿足通訊領域的實時處理的要求;主要闡述了基于TMS320C5402的數據通訊
    發表于 07-16 10:16 ?27次下載

    PLC數據通訊在水壓機控制系統中的實現與研究

    數據通訊是控制系統的關鍵技術之一。本文闡述了西門子S7 系列PLC 數據通訊在某大型水壓機控制系統中的實現,介紹了3 種常用的
    發表于 07-30 15:16 ?14次下載

    DSP數據通訊系統改造中的應用

    針對光電經緯儀中系統間信息實時傳輸時,需要傳輸線多的問題,提出了一種采用DSP、異步串行通訊控制器和CPLD 技術相結合來對其進行改造的方法
    發表于 09-26 08:40 ?13次下載

    井下供電自動化系統數據通訊電路的研究與設計

    井下供電自動化系統數據通訊電路的研究與設計 根據煤礦供電系統結構特點及功能要求,開發研制出基于微機技術的井下供電自動化系統數據通訊電路。該
    發表于 10-11 17:35 ?13次下載

    PLC與NC間的實時數據通訊

    本文介紹了 RS232 在沖壓開卷線中的應用,并從原理上分析了RS232在PLC與NC間實現串行數據通訊的方法
    發表于 07-22 18:01 ?55次下載
    PLC與NC間的實時<b class='flag-5'>數據通訊</b>

    基于DSP與PC間的數據通訊

    基于DSP與PC間的數據通訊
    發表于 10-20 10:13 ?3次下載
    基于<b class='flag-5'>DSP</b>與PC間的<b class='flag-5'>數據通訊</b>

    如何在STM32中要實現數據通訊

    z在stm32中要實現數據通訊,首先要設置相關的寄存器,這里不做相關的介紹,直接說代碼相關的能內容及相關函數對應的用法。
    的頭像 發表于 03-02 08:56 ?1961次閱讀
    如何在STM32中要<b class='flag-5'>實現</b><b class='flag-5'>數據通訊</b>

    安科瑞帶防逆流功能的數據通訊網關

    AWT200 數據通訊網關應用于各種終端設備的數據采集與數據分析。用于實現設備的監測、控制、計算,為系統與設備之間建立
    的頭像 發表于 09-11 16:30 ?314次閱讀
    安科瑞帶防逆流功能的<b class='flag-5'>數據通訊</b>網關
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>