新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > TMS320VC5402 DSP與單片機的HPI接口實現

        TMS320VC5402 DSP與單片機的HPI接口實現

        作者: 時間:2011-09-12 來源:網絡 收藏

        (VC5402)兩個可編程的多通道緩沖串口(McBSP)能夠全雙工、快速地與其他同步串口進行數據交換,硬件連接簡單,串口的工作模式和傳送數據的格式可通過編程之間的通信一般利用雙口RAM,通過串口或

        本文引用地址:http://www.104case.com/article/150221.htm

          利用雙口RAM

          CY7C026是CYPRESS公司生產的16k×16B高速雙口靜態RAM,存取速度小于25ns。他具有真正的雙端口,可以同時進行數據存取,兩個端口具有獨立的控制信號線、地址線和數據線,另外通過主?從選擇可以方便地擴存儲容量和數據寬度。通過芯片的信號量標志器,左、右兩端口可以實現芯片資源的共享。

          由于的數據是16位,而的數據是8位,所以與雙口RAM的并無特別之處,但是89C51與雙口RAM之間的電路中就需要對89C51進行總線擴展了。具體做法是利用鎖存器74HC373的鎖存功能,通過對其使能信號的控制,進行分時讀寫,實現數據總線的擴展,即利用鎖存器作為虛擬總線。DSP,與雙口RAM之間的接口電路如圖1所示。

          

        通過雙口RAM實現的接口電路

          圖1 通過雙口RAM實現的接口電路

          雙口RAM必須采用一定的機制來協調左右兩邊CPU對他的讀寫操作,否則會出現讀寫數據的錯誤。通常可以用中斷、硬件、令牌和軟件這4種方式來協調雙方。在接口電路中利用89C51的最低地址位A0把雙口RAM的存儲空間分為奇、偶地址兩個空間。其中,奇地址空間專供89C51寫,偶地址空間專供89C51讀。那么只需對VC5402的軟件做相應處理即可,即VC5402對雙口RAM的奇地址空間只讀,對偶地址空間只寫。這樣就避免了DSP和單片機對雙口RAM同一地址單元的寫入操作。另外,在對雙口RAM進行訪問之前,單片機和DSP首先對本端的BUSY信號進行查詢,只有本端/BUSY信號無效時才進行讀寫操作,進一步保證了數據讀寫的可靠性。

          通過串口實現

          VC5402多通道緩沖串行口(McBSP)主要特點:雙緩沖區發送,三緩沖區接收以便數據的連續性;接收與發送的幀同步、時鐘信號獨立;多通道發送和接收,最多可以到達128個通道;數據大小可為8,12,16,20,24和32b;μ率和A率壓縮;幀同步、數據時鐘極性可編程;內部時鐘和幀同步可自行設定。

          VC5402串口通過16b寬度的控制寄存器與內部總線通信。

          數據接收過程:數據從輸入引腳(DR)移位到接收移位寄存器(RSR),然后拷貝數據到接收緩沖寄存器(RBR),接著把數據拷貝到數據接收寄存器(DRR),CPU或者DMA控制器讀取DRR。

          數據輸出過程:CPU或者DMA把數據寫到數據傳輸寄存器(DXR),再通過寄存器(XSR)移位到數據輸出引腳DX6。

          對串口寄存器的訪問是間接尋址方式,例如要對McBSP數據寄存器進行訪問,首先寫串口控制寄存器SPCR子地址到子地址寄存器SPSA,然后對數據寄存器進行訪問。硬件連接如圖2所示。

          

        通過McBSP實現的硬件連接

          圖2 通過McBSP實現的硬件連接

          McBSP的位時鐘由內部采樣率發生器產生,為UART波特率×16。

          在軟件的設計中McBSP的16位代表UART的1位。發送時,軟件將UART的每一位擴展為16位,再由McBSP發送。接收時,軟件將McBSP接收的16位壓縮為UART的1位,并進行合并。軟件還應負責處理UART的起始位、奇偶校驗位和停止位。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 综艺| 称多县| 屏东市| 阜康市| 石渠县| 融水| 阳新县| 陆良县| 芒康县| 盐城市| 余江县| 鸡西市| 平湖市| 徐州市| 镇赉县| 呼玛县| 根河市| 崇信县| 阳山县| 富裕县| 乌鲁木齐市| 阜南县| 太仆寺旗| 阿巴嘎旗| 绿春县| 榆社县| 临泽县| 塔河县| 刚察县| 石台县| 冕宁县| 沧州市| 德安县| 楚雄市| 宁国市| 新泰市| 修文县| 黔西县| 保山市| 新龙县| 陆丰市|