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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > DSP與單片機的一種高速通信實現(xiàn)方案

          DSP與單片機的一種高速通信實現(xiàn)方案

          ——
          作者:北方交通大學電氣工程學院 舒忠林 曾國宏 時間:2007-09-27 來源:今日電子 收藏

            摘 要:介紹了一種利用實現(xiàn)與單片機高速的方法,給出了它們之間的以及軟件實現(xiàn)方案。

            關鍵詞:;;

           
          1 引言

            數(shù)字信號處理器()是一種適合于實現(xiàn)各種數(shù)字信號處理運算的微處理器,具有下列主要結(jié)構(gòu)特點:(1)采用改進型哈佛(Harvard)結(jié)構(gòu),具有獨立的程序總線和數(shù)據(jù)總線,可同時訪問指令和數(shù)據(jù)空間,允許實際在程序存儲器和數(shù)據(jù)存儲器之間進行傳輸;(2)支持流水線處理,處理器對每條指令的操作分為取指、譯碼、執(zhí)行等幾個階段,在某一時刻同時對若干條指令進行不同階段的處理;(3)片內(nèi)含有專門的硬件乘法器,使乘法可以在單周期內(nèi)完成;(4)特殊的指令結(jié)構(gòu)和尋址方式,滿足數(shù)字信號處理FFT、卷積等運算要求;(5)快速的指令周期,能夠在每秒鐘內(nèi)處理數(shù)以千萬次乃至數(shù)億次定點或浮點運算;(6)大多設置了單獨的DMA總線及其控制器,可以在基本不影響數(shù)字信號處理速度的情況下進行高速的并行數(shù)據(jù)傳送。

            由一片DSP加上存儲器、模/數(shù)轉(zhuǎn)換單元和外設接口就可以構(gòu)成一個完整的控制系統(tǒng),但這種方案要達到高速實時控制是不可行的。因為一個實時控制系統(tǒng)一般需要完成數(shù)據(jù)采集、模/數(shù)轉(zhuǎn)換、分析計算、數(shù)/模轉(zhuǎn)換、實時過程控制以及顯示等任務,單靠一片DSP來完成這些工作勢必會大大延長系統(tǒng)對控制對象的控制周期,從而影響整個系統(tǒng)的性能。所以我們添加一個CPU,負責數(shù)據(jù)采集、模/數(shù)轉(zhuǎn)換、過程控制以及人機接口等任務,使DSP專注于系統(tǒng)控制算法的實現(xiàn),充分利用它的高速數(shù)據(jù)處理能力。從性能價格比的角度出發(fā),這個CPU采用8位的51系列單片機。這時,兩個CPU之間的數(shù)據(jù)共享就成了一個重要的問題。

            采用(簡稱DRAM)是解決CPU之間的數(shù)據(jù)共享的有效辦法。與串行通信相比,采用雙口RAM不僅數(shù)據(jù)傳輸速度高,而且抗干擾性能好。在筆者實驗室研制的電力有源濾波器中,選用了TI公司的第三代DSP芯片TMS320C32和51系列單片機89C52作為控制系統(tǒng)的CPU。兩個CPU之間通過雙口RAM CY7C133完成數(shù)據(jù)交換。但在實際使用過程中遇到了89C52 與雙口RAM總線寬度不匹配的問題,需要進行的設計。

          2 雙口RAM CY7C133的內(nèi)部結(jié)構(gòu)和功能

            CY7C133是CYPRESS公司研制的高速2K



          評論


          相關推薦

          技術專區(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); })();