新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 用CH365實現PCI息線與DSP的通信

        用CH365實現PCI息線與DSP的通信

        作者: 時間:2007-12-11 來源:網絡 收藏
        摘要 針對數控機床控制發展中的新要求,提出并設計一種新型的控制方案。運用總線,以提高控制效率和實時性;應用CPLD解決雙口RAM的仲裁控制邏輯問題。在硬件設計完成之后,提出了雙向的軟件測試方法。
        關鍵詞 總線 雙口RAM CPLD


        引 言
        隨著數控技術與裝備的發展,特別是在通用微機數控領域,以PC+運動控制器模式的開放式運動控制系統,已經越來越引起人們的重視。這種開放式的數控系統能夠在多種平臺上運行,可以和其他系統交互操作,并能給用戶提供一種統一風格的交互方式;具有可互操作性、可移植性、檔次皆宜性和可互補性等特點。PC機技術引入運動控制領域,從軟件和硬件方面為開放式運動控制技術提供了新的發展空間和前進方向。
        作為運動控制器件的技術目前已趨于成熟,并成功地應用于實際工業生產之中。TMS320C2407是美國TI(德州儀器)公司專為電機控制(DMC)應用而推出的一種低價格、高性能的16位定點運算DSP。該器件將高性能的DSP內核和豐富的微控制器外設功能集于一身,為控制系統應用提供了一種理想的解決方案。


        1 硬件電路總體設計方案
        PC機與DSP之間的目前比較常用的方法是通過RS232串行通信,但這種方式速度較慢,且無法實時控制,故考慮應用PC機的接口來實施傳輸任務。PCI總線是一種高性能的32/64位地址、數據復用總線,它是一種獨立處理器的同步總線,可支持碎發傳送。其總線時鐘頻率為o~33MHz。在33MHz的工作頻率下達到了132MB/s的傳輸速度。PCI總線與其他主流總線相比,速度更快,實時性更好,可控性更佳,適用于高速實時的I/O控制卡;但由于PCI總線協議比較復雜,因此其接口電路起來并不容易,而采用通用PCI接口芯片就能很好地解決這一問題。
        目前市場上常見的PCI橋芯片主要有AMCC、PLX、CYPRESS以及南京沁恒電子公司的CH36X等系列產品。根據比較以及此系統的實際要求,選用南京沁恒電子公司的。此芯片具有如下特點:支持I/O端口映射、存儲器映射、擴展ROM以及中斷。將32位高速PCI總線轉換為簡便易用的類似于ISA總線的8位主動并行接口,用于制作低成本的基于PCI總線的計算機板卡,以及將原先基于ISA總線的板卡升級到PCI總線上。
        對本系統來說,PC機要發送控制指令和進行大量的數據計算,數據交換應盡可能占用較短的機時和較少的內存空間。另外,PCI總線與DSP之間還要進行大量、可靠的數據傳輸,它們均過多地占用CPU時間,導致CPU效率降低。使用雙口RAM交換信息,雙方將其當作自己存儲器的一部分,可保證高速、可靠的數據通信。本系統選用的CY7C133,完全能夠滿足數據傳輸的要求。CY7C133是一款高速2K16位的雙口靜態RAM,允許2個(左、右)端口同時讀/寫數據,每個端口具有獨立的控制信號線、地址線和數據線??筛咚俅嫒祿疃檀嫒r間為25ns,可與大多數高速處理器配合使用,而無須插入等待狀態。CY7C133除具有雙端口存取功能外,還具有標識器功能,在數據傳送時可構成多種接口形式。


        2 接口電路的實現
        2.1 雙口只AM的邏輯判斷
        雙口RAM允許2個CPU同時讀取任何存儲單元(包括同時讀同一地址單元),但不允許同時寫或一讀一寫同一地址單元,否則就會出現寫入值和讀出值不是期望值的混亂狀態。雖然CY7C133硬件本身帶有BUSY控制信號來協調兩端的訪問,但BUSY信號腳要求與兩側CPU的READY線相連,而CH365并不具有READY信號線,因此,需要引入仲裁邏輯控制模塊。常用的雙口RAM解決地址競爭的途徑有:令牌傳遞法、基于郵箱機制的INT中斷法以及插入等待周期的BUSY法等。在本系統中我們采用第2種方法。
        基于郵箱機制的INT中斷法的基本思想是:給每個端口分配一個地址作為郵箱,比如本系統可以令CH365使用00H,DSP使用8000H,這兩個地址用來裝載作為分配兩端口RAM使用權的依據數據。具體約定為:當左端口CH365寫地址單元00H時,通過邏輯器件可實現右中斷DSP_TNT(DSP中斷)為低,向DSP發出中斷請求,DSP讀地址單元00H時,DSP_INT為高,復位CH365發出的中斷請求。同理,當右端口寫地址單元8000H時,左中斷INT_REQ(CH365中斷)為低,可向左端口發出中斷請求;而當左端口讀地址8000H時,INT_REQ為高,復位DSP發出的中斷請求。當信箱內容為00時,表示正在使用該方端口;當信箱內容為FFH時,表示結束使用該端口。因此,雙方在對端口的其他單元進行讀寫操作開始時,需要向郵箱中寫入00H;操作結束,寫入FFH。如果沒有發生爭用,則直接進行讀寫操作;否則,慢的一方產生中斷,并查詢對方郵箱,直到對方郵箱內容為FFH。具體實現可借助CPLD來完成。
        2.2 總線擴展的解決方案
        CH365的地址總線寬度是16位,數據總線寬度為8位,TMS320C2407的數據總線和地址總線的寬度均為16位,而CY7C133的數據總線寬度是16位,地址總線寬度是11位,所以DSP與CY7C133的接口并無特別之處;但是CH365與CY7C133之間的接口電路就需要對雙口RAM進行總線擴展了。基本思想是利用部分CPLD實現鎖存器的功能,通過對使能信號的控制,把16位數據進行分時讀寫,實現數據總線的擴展,即利用鎖存器作為虛擬總線。此處選用EPM7032的CPLD來解決總線擴展問題,其內部電路如圖l所示。

        下面討論CH365對雙口RAM的讀寫過程。當CH365對雙口RAM進行讀數據時,設定此時A0為高電平,此時16位數據均從雙口RAM中讀出,由于高8位數據線與CH365的8位數據線直接相連,所以高8位數據被立即讀入CH365中。同時,根據圖1中各信號的相互邏輯關系可以得到,讀鎖存器(U1)的使能信號G有效(高電平),OEN無效(高電平),因而低8位數據被送入U1中鎖存起來。接著CH365再進行一次讀操作,CH365_A0變成低電平,雙口RAM的片選信號變成無效電平,所以此次讀操作對雙口RAM不產生影響,而此時U1的使能信號G變成了無效電平,而OEN變成了有效電平,上次被鎖存的數據(即雙口RAM的低8位數據)被送入CH365中,16位數據讀完成。當CH365對雙口RAM進行寫入操作時,設定此時CH365_A0為低電平,同樣可根據圖l判斷寫緩存器(U2)的使能信號G有效,而OEN無效,雙口RAM片選無效,因而數據被鎖存在U2中;接著CH365再進行一次寫操作,由于CH365_A0變成高電平,雙口RAM片選有效,U2的片選無效,OEN為有效電平,故此時16位數據同時寫入雙口RAM。從上面的分析可知,利用最低地址位CH365_AO的不同電平,CH365通過兩次連續的讀或寫操作,成功地實現了對雙口RAM中數據的讀或寫,只不過是讀入時是先讀入高8位,后讀入低8位;而寫入則是先寫入低8位,后寫入高8位。同時,兩片鎖存器不能出現同時被選中的情況.否則就會出現傳輸數據的混亂,導致傳輸錯誤。
        本系統的硬件電路原理(主要部分)如圖2所示。由于TMS320C2407(3.3V)與雙口RAM(5V)的電平差別,加入了電壓轉換器件SN74LVTHl6245A。

        3 PCI和DSP的通信
        在硬件電路實現之后,把完成的板卡插于PC機的PCI插槽。上電后,根據系統提示安裝CH365驅動程序,在正確安裝好硬件之后,就可以在VC環境下編寫和調試PCI和DSP的通信軟件。
        通過API函數編寫與DSP的相互數據交換程序,完成雙向的中斷申請和中斷響應,實現數據快速交換。
        3.1 CH365的雙向通信程序
        CH365支持PC機程序以單字節、雙字節(字)、四字節(雙字)為單位對I/O端口或者存儲器進行讀寫。在多字節連續讀寫操作期間,CH365每讀寫完一個字節數據后,就會自動將偏移地址加l,以指向下一個字節的偏移地址。我們可以通過向I/0口的00H寫數據實現向DSP申請中斷,DSP在響應中斷后通過讀00H清除上位機的中斷。其程序如下:

        3.2 DSP的雙向通信程序
        為了方便觀察數據傳輸結果,本測試中設定,DSP寫空間為Ox0400~Ox07FF,讀空間為OxO000~Ox03FF,即可以通過DSP程序實現從前lK單元讀取數據再寫入后lK單元,然后把后寫入的數據與PC機寫入的數據進行比較。如果吻合,則說明數據交換成功。圖3給出DSP的程序流程。
        通過雙向的軟件測試,結果顯示數據交換完全正確。

        結語
        隨著計算機技術和電子技術的發展,將運算高速、功能強大的數字信號處理器應用于運動控制,可以實現復雜的控制算法和高精度、高速度、多軸聯動功能,在數控應用中,將會占據越來越重要的地位。而快速、準確的通信是這種運動控制器的基礎。本文提出的通信方式,具有性能可靠,硬件結構簡單,價格便宜的優點,有較好的應用前景。



        關鍵詞: 通信 DSP PCI 實現 CH365

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 景东| 丰顺县| 安仁县| 报价| 宝坻区| 维西| 钟祥市| 荃湾区| 东安县| 响水县| 柞水县| 石家庄市| 丹巴县| 双柏县| 专栏| 青浦区| 怀远县| 垦利县| 麻城市| 丽水市| 屯门区| 吉隆县| 叙永县| 东港市| 石林| 芦山县| 凤阳县| 山西省| 福泉市| 大英县| 霍邱县| 锡林浩特市| 和林格尔县| 灵寿县| 临澧县| 苏州市| 茂名市| 兰坪| 锡林浩特市| 博客| 上杭县|