<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 帶自舉功能的DSP外設擴展模塊設計

          帶自舉功能的DSP外設擴展模塊設計

          作者: 時間:2016-10-29 來源:網(wǎng)絡 收藏

          摘要:系列(Digital Signal processor)沒有AD、DA等常用外設且缺少程序存儲器,故其應用系統(tǒng)通常需進行模塊與模塊設計,針對傳統(tǒng)解決方案將兩個模塊分別實現(xiàn)存在擴展器件多、系統(tǒng)集成度不高等問題,本文提出了一種帶功能的模塊。該模塊通過將C8051F330單片機作為唯一的外擴芯片,利用其片F(xiàn)LASH存儲自單程序代碼,并采用其片上AD、DA實現(xiàn)DSP的。實驗表明本文提出的DSP外設擴展模塊合理可行。

          本文引用地址:http://www.ex-cimer.com/article/201610/308143.htm

          系列DSP由于具有快速運算能力,其指令執(zhí)行速度最高可達160 MIPS,因此在消費電子、通信等領域應用廣泛。但此系列DSP片上沒有AD、DA等工業(yè)常用外設,常需要對其進行外設擴展模塊設計,另外,此系列DSP也沒有FLASH、EEPROM等便于改寫的片內(nèi)程序存儲器,掉電后不能保存用戶程序代碼,因此還需要對其擴展模塊。文獻給出了不同的DSP外設擴展模塊設計方案,而文獻則給出了不同的DSP自舉模塊設計方案,上述將外設擴展模塊與自舉模塊分別實現(xiàn)的設計方案,存在外擴器件較多、集成度不高、成本較高等問題。為此,文中提出了一種帶自舉功能的DSP外設擴展模塊,該模塊僅用外擴一個芯片,就能一體實現(xiàn)DSP的外設擴展與自舉,具有擴展器件少、系統(tǒng)集成度高、穩(wěn)定性好、成本較低等特點。

          1 方案設計

          文中提出的DSP外設擴展模塊,借助C8051F330豐富的片上外設資源對DSP實現(xiàn)10位AD、DA擴展,同時利用C8051F330片內(nèi)FLASH存儲DSP用戶程序代碼,并用標準串行總線實現(xiàn)自舉,模塊原理框圖如圖1所示。圖1中虛線框部分為本文設計的DSP外設擴展模塊,其中C8051F330是本模塊的唯一外擴芯片。一方面,目標板中的DSP通過將其片上McBSP0配置為SPI工作模式,實現(xiàn)控制C8051F330片上的AD采樣數(shù)據(jù)或DA形成模擬波形,從而完成對DSP的AD、DA外設擴展。上述SPI通信中,TMS320VC5416為主設備,C8051F330為從設備。另外,考慮到只有SPI主設備才能啟動數(shù)據(jù)傳輸,為了將SPI從設備的AD采樣數(shù)據(jù)第一時間傳輸給SPI主設備,SPI從設備通過I/O引腳觸發(fā)SPI主設備的外部中斷,從而使SPI主設備啟動SPI通信。另一方面,利用C8051F330片內(nèi)FLASH的剩余空間(從0x0BB7到0x1FF)存儲DSP程序代碼,同時,利用5個I/O引腳模擬DSP的標準串行自舉接口,從而實現(xiàn)DSP的標準串行自舉模塊設計。DSP有多種自舉模式,標準串行自舉模式占用的DSP硬件資源最少,故本文模塊選用了標準串行自舉模式。但在此模式下,自舉模塊必須與DSP的McBSP0接口相連,為了進一步減少對DSP硬件資源的占用,本文將C8051F330的SPI接口與5個I/O引腳模擬的標準串行自舉接口復用DSP的McBSP0接口。

          帶自舉功能的DSP外設擴展模塊設計

          2 硬件設計

          文中提出的DSP外設擴展模塊硬件主要包括如下幾部分:自舉模塊,SPI通信模塊,外設擴展模塊以及C8051F330最小系統(tǒng)模塊,考慮到介紹C8051F330最小系統(tǒng)的文獻較多,此處不再贅述,這里主要給出其他模塊的硬件連接關系,如圖2所示。

          帶自舉功能的DSP外設擴展模塊設計

          圖2虛線框1為自舉模塊(標準串行自舉方式)引腳連接關系,其中與標準串行自舉直接相關的DSP引腳為接收時鐘信號(BCLKR0),多通道緩沖接收引腳(BDR0),幀同步接收信號(BFSR0),因為DSP與單片機啟動不同步,因此需要設置RS引腳在單片機上電后對DSP進行復位,設置XF引腳在DSP準備好后觸發(fā)單片機的INT0啟動自舉操作。另外,DSP的自舉方式有多種,且標準串行自舉模式比較靠后,所以必須在硬件上對DSP的INT2、INT3和BIO引腳進行上拉保護,從而確保DSP上電后,其片上Bootloader進入標準串行自舉方式。圖2虛線框2給出了SPI通信模塊中DSP與單片機對應引腳連接關系,本文采用4線主從方式實現(xiàn)SPI通信,DSP的BCKLX0為時鐘控制引腳,BFSX0為片選引腳,為了最大限度節(jié)省DSP硬件資源,自舉模塊和SPI通信模塊中的BDR0引腳進行了復用。為使主從設備更好地進行通信,SPI通信過程中設置了主從握手函數(shù),P16為握手中斷控制引腳。圖2虛線框3說明了外設擴展模塊引腳連接關系,外設擴展模塊介紹了AD、DA及參考電壓硬件設置,P17引腳為AD波形輸入端,實驗時配置為模擬輸入,開漏輸出。P01引腳為DA的波形輸出端,P00引腳為參考電壓接入引腳,配置為模擬輸入,開漏輸出,AD采樣必須設置電壓基準,C8051F330的電壓基準可以被配置為外部電壓基準、內(nèi)部電壓基準或電源電壓VDD,為了使硬件設計更加簡單,本文選用內(nèi)部電壓基準。

          3 軟件設計

          DSP外設擴展模塊軟件設計分為兩部分:代碼轉(zhuǎn)換程序設計和C8051F330單片機程序設計。代碼轉(zhuǎn)換程序是為了將用戶在DSP開發(fā)軟件CCS下編譯生成的.out文件(一種公共目標文件格式,包含了許多冗余信息)去除冗余信息,變?yōu)槿坑杏玫腄SP自舉文件格式,具體過程參見文獻。下面詳細介紹單片機程序的具體內(nèi)容。

          帶自舉功能的DSP外設擴展模塊設計

          C8051F330單片機程序包括四部分:DSP與單片機之間的通信協(xié)議、兩次初始化程序、自舉程序及片上外設驅(qū)動程序。C8051F330單片機程序主流程圖如圖3所示,圖3中,單片機系統(tǒng)上電后,程序便開始運行,首先要禁止看門狗,防止程序跑飛,因DSP啟動速度比C8051F330快,故自舉前,先要初始化單片機端口并復位DSP,等待DSP的XF引腳觸發(fā)P07中斷后啟動自舉操作。自舉完成后,就要利用C8051F330單片機的片上AD、DA對DSP進行外設擴展,DSP的外設擴展是建立在SPI通信基礎上的,通信前,需要對單片機進行第二次初始化,避免引腳沖突。通信過程中,單片機與DSP需要通過SPI_handshaking()函數(shù)進行握手,握手成功后,單片機便可通過SPI通道讀取DSP發(fā)送的AD命令或DA命令進行AD DA擴展。

          3.1 DSP與單片機之間通信協(xié)議

          為了使DSP和單片機進行良好的通信,本文設置了SPI通信協(xié)議,具體如圖4所示,下面對此協(xié)議的制定作簡要介紹。協(xié)議中一幀數(shù)據(jù)包括4個字節(jié):第一字節(jié)為起始標志字節(jié),值為0xC5,對應的二進制數(shù)為11000011,起始標志字節(jié)在數(shù)據(jù)傳輸中發(fā)揮著巨大作用,它標志著傳輸數(shù)據(jù)是否有意義;第二字節(jié)為命令字節(jié),DSP在數(shù)據(jù)傳輸過程中處于兩種命令狀態(tài),如果第二字節(jié)的6—7位值為01,則DSP處于AD命令狀態(tài),6—7位為10則DSP處于DA命令狀態(tài);第三、四字節(jié)分別裝載的是10位AD、DA高、低8位數(shù)據(jù)。

          帶自舉功能的DSP外設擴展模塊設計

          3.2 兩次初始化程序設計

          單片機需要進行兩次初始化,第一次初始化是在自舉之前,包括端口初始化、時鐘初始化和中斷初始化,第二次初始化是在自舉之后,在第一次初始化的基礎上還需進行SPI初始化、AD初始化、DA初始化,兩次初始化期間,時鐘只能初始化一次,否則單片機初始化不會成功。時鐘初始化時被配置為24.5 MHz。之所以要對單片機進行兩次初始化是因為自舉和SPI通信過程中,DSP的McBSP0接口進行了復用,而且這樣設計可以節(jié)省更多的硬件資源,降低設計成本。下面主要介紹下AD、DA和SPI初始化過程。AD初始化如下所示:

          AMXOP =0x0F://P17引腳為AD輸入端

          AMXON =0x11://單端工作方式

          ADCOCF =0x00;//右對齊

          ADCOCN =0x80;//使能ADC

          DA初始化如下所示:IDAOCN=0xF2;//使能DA

          SPI初始化如下所示:SPIOCN=0x05;//使能SPI

          SPIOCKR=0x5;//SPIO時鐘速率為1.8432 MHz

          3.3 自舉程序設計

          標準串行自舉邏輯時序圖如圖5所示,圖5指出模擬標準串行自舉只需3個I/O引腳,但本文卻用5個I/O口,其中另設了XF和RS引腳。因為DSP啟動速度與單片機不同步,因此需設置RS引腳讓單片機上電后對DSP進行復位,設置XF引腳讓DSP觸發(fā)單片機的外部中斷INT0,啟動自舉模塊。圖5中的邏輯時序圖說明為保證DSP正常運行,以下條件必須滿足:傳輸每個字節(jié)數(shù)據(jù)需至少保證40個DSP時鐘周期的延時時間,單片機時鐘(BCLKR0)不可超過DSP時鐘頻率的1/2。發(fā)送幀同步信號之前應先發(fā)送2個時鐘信號,幀同步信號置高期間發(fā)送1.5個時鐘,幀同步信號置底后開始按位發(fā)送數(shù)據(jù),一字節(jié)數(shù)據(jù)發(fā)送完成后再發(fā)送兩個時鐘信號。

          帶自舉功能的DSP外設擴展模塊設計
          帶自舉功能的DSP外設擴展模塊設計

          3.4 片上外設驅(qū)動程序設計

          片上外設驅(qū)動程序包括SPI通信驅(qū)動程序、AD與DA驅(qū)動程序。SPI通信是DSP外設擴展模塊的軟件基礎,通信前,單片機先拉低DPS_INT0觸發(fā)DSP的外部中斷INT0,再讀取一個無意義的SPI數(shù)據(jù)和DSP進行握手,握手成功后,主從設備便可通過SPI通道互相寫數(shù)據(jù)或讀取對方發(fā)送dat[]中的數(shù)據(jù)。SPI通信讀函數(shù)驅(qū)動程序如下所示,程序中SPIODAT為SPI0數(shù)據(jù)寄存器,C8051F330在SPI通信中通過讀SPIODAT來讀取接收緩沖器中的數(shù)據(jù)。

          SPI通信讀函數(shù)驅(qū)動程序:

          帶自舉功能的DSP外設擴展模塊設計

          C8051F330內(nèi)部AD有6種轉(zhuǎn)換啟動方式,本文采用寫‘1’ 到ADCOCN的ADOBUSY位,向ADOBUSY寫‘1’方式提供了用軟件控制ADCO轉(zhuǎn)換的能力。ADOBUSY位在轉(zhuǎn)換期間被置‘1’,轉(zhuǎn)換結束后賦‘0’。單片機初始化完成,給C8051F330的P17端口輸入正弦波(由于實驗設備仍需完

          善,正弦波頻率限制在0~20 Hz,幅值限制在0~3.3 V)進行AD采樣,本文采用查詢方式進行AD采樣,使用AD中斷標志(ADOINT)來不斷查詢AD轉(zhuǎn)換是否完成。當ADOINT位為邏輯‘1’時,AD數(shù)據(jù)寄存器(ADCOH:ADCOL)中的轉(zhuǎn)換結果有效。采樣完后,單片機通過SPI通道將采樣值傳送給DSP,DSP通過SPI_READ0函數(shù)從SPI讀取采樣數(shù)據(jù)。C8051F330片內(nèi)DA為電流模式數(shù)/模轉(zhuǎn)換器(IDAC)。IDAC的最大輸出電流可以有3種不同的設置:0.5 mA、1mA和2 mA,此程序中設置為2 mA。DA轉(zhuǎn)換時,DSP通過SPI_WRITE()函數(shù)將需要進行DA的數(shù)據(jù)寫給單片機,最終單片機再將DSP發(fā)來的數(shù)據(jù)進行DA處理,AD采樣驅(qū)動程序如下所示:

          帶自舉功能的DSP外設擴展模塊設計

          4 實驗

          為驗證本文設計模塊的可行性,下面以TMS320VC5416目標板為例,設計了如下兩個實驗:一、16位標準串行自舉實驗;二、片上AD與DA擴展實驗。

          實驗一:16位標準串行自舉實驗

          實驗一是為了驗證C8051F330單片機可否成功實現(xiàn)TMS320VC5416處理器的16位標準串行自舉。為了使實驗結果便于觀察,本文用CCS編寫了液晶顯示程序,顯示內(nèi)容為“基于C8051F330的DSP自舉模塊液晶顯示自舉測試等”。由上文可知,須將編寫程序代碼在CCS軟件下編譯生成.out文件,再將.out文件去除冗余信息,變?yōu)槿坑杏玫腄SP程序代碼,移植到C8051F330單片機中才能使用,結合所編寫的自舉程序上電運行后可得到如圖6所示結果,從圖6中可以觀察到DSP完全可以脫離仿真器,從C8051F330單片機讀取DSP用戶程序,以上結果說明自舉模塊設計合理可行。

          帶自舉功能的DSP外設擴展模塊設計

          實驗二:AD與DA擴展實驗

          實驗二是為了驗證在完全脫離DSP仿真器的情況下,利用C8051F330片上AD、DA對TMS320VC5416進行片上外設擴展的可行性。實驗中由TMS320VC5416控制C8051F330片上的AD、DA采樣數(shù)據(jù)或形成模擬波形,為了使實驗結果便于觀察,用示波器對AD采樣前的波行與DA重構波形進行雙通道跟蹤,實驗時,通過DSP試驗箱給單片機的P17口接入頻率為20 Hz、最大幅值為1.31 V的正弦波,如圖7中黃色波形所示。單片機的P01端口為DA輸出端,C8051F330的DA輸出為電流輸出,因為要用示波器顯示DA輸出波形,所以需在P01端口接入電阻,將電流輸出轉(zhuǎn)換為電壓輸出,DA輸出波形如圖7中藍色波形所示。觀察示波器波形,可看到DA重構波形與AD采樣前的波形吻合。以上結果說明,該模塊設計的利用C8 051F330片上外設資源對TMS320VC5416處理器進行AD與DA擴展是合理可行的。

          5 結束語

          文中提出了一種帶自舉功能的DSP外設擴展模塊,該模塊利用C8051F330的片內(nèi)FLASH存儲DSP用戶程序,并利用5個I/O引腳模擬的標準串行總線實現(xiàn)DSP自舉,從而以一種占用DSP硬件資源最少的方式解決了DSP掉電后不能保存用戶程序的問題;利用C8051F330的片上外設資源對DSP進行10位AD、DA外設擴展,同時C8051F330的SPI接口同標準串行自舉接口復用DSP的McBSP0接口,從而在實現(xiàn)DSP外設擴展的同時,最大限度地節(jié)省了DSP的硬件資源。該模塊用一塊單片機一體實現(xiàn)DSP外設擴展及自舉,具有擴展器件少、集成度高、系統(tǒng)穩(wěn)定性好、成本低廉等優(yōu)點。另外,C8051F330的FLASH內(nèi)存為8K字節(jié),除去單片機程序,可存儲5K字節(jié)左右的DSP程序,因此該模塊可廣泛用于程序代碼不超過5K字節(jié)的DSP系統(tǒng)中。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();