用CH365實(shí)現PCI息線(xiàn)與DSP的通信
關(guān)鍵詞 PCI總線(xiàn) CH365 雙口RAM CPLD DSP
引 言
隨著(zhù)數控技術(shù)與裝備的發(fā)展,特別是在通用微機數控領(lǐng)域,以PC+運動(dòng)控制器模式的開(kāi)放式運動(dòng)控制系統,已經(jīng)越來(lái)越引起人們的重視。這種開(kāi)放式的數控系統能夠在多種平臺上運行,可以和其他系統交互操作,并能給用戶(hù)提供一種統一風(fēng)格的交互方式;具有可互操作性、可移植性、檔次皆宜性和可互補性等特點(diǎn)。PC機技術(shù)引入運動(dòng)控制領(lǐng)域,從軟件和硬件方面為開(kāi)放式運動(dòng)控制技術(shù)提供了新的發(fā)展空間和前進(jìn)方向。
DSP作為運動(dòng)控制器件的技術(shù)目前已趨于成熟,并成功地應用于實(shí)際工業(yè)生產(chǎn)之中。TMS320C2407是美國TI(德州儀器)公司專(zhuān)為電機控制(DMC)應用而推出的一種低價(jià)格、高性能的16位定點(diǎn)運算DSP。該器件將高性能的DSP內核和豐富的微控制器外設功能集于一身,為控制系統應用提供了一種理想的解決方案。
1 硬件電路總體設計方案
PC機與DSP之間的通信目前比較常用的方法是通過(guò)RS232串行通信,但這種方式速度較慢,且無(wú)法實(shí)現實(shí)時(shí)控制,故考慮應用PC機的PCI接口來(lái)實(shí)施傳輸任務(wù)。PCI總線(xiàn)是一種高性能的32/64位地址、數據復用總線(xiàn),它是一種獨立處理器的同步總線(xiàn),可支持碎發(fā)傳送。其總線(xiàn)時(shí)鐘頻率為o~33MHz。在33MHz的工作頻率下達到了132MB/s的傳輸速度。PCI總線(xiàn)與其他主流總線(xiàn)相比,速度更快,實(shí)時(shí)性更好,可控性更佳,適用于高速實(shí)時(shí)的I/O控制卡;但由于PCI總線(xiàn)協(xié)議比較復雜,因此其接口電路實(shí)現起來(lái)并不容易,而采用通用PCI接口芯片就能很好地解決這一問(wèn)題。
目前市場(chǎng)上常見(jiàn)的PCI橋芯片主要有AMCC、PLX、CYPRESS以及南京沁恒電子公司的CH36X等系列產(chǎn)品。根據比較以及此系統的實(shí)際要求,選用南京沁恒電子公司的CH365。此芯片具有如下特點(diǎn):支持I/O端口映射、存儲器映射、擴展ROM以及中斷。CH365將32位高速PCI總線(xiàn)轉換為簡(jiǎn)便易用的類(lèi)似于ISA總線(xiàn)的8位主動(dòng)并行接口,用于制作低成本的基于PCI總線(xiàn)的計算機板卡,以及將原先基于ISA總線(xiàn)的板卡升級到PCI總線(xiàn)上。
對本系統來(lái)說(shuō),PC機要發(fā)送控制指令和進(jìn)行大量的數據計算,數據交換應盡可能占用較短的機時(shí)和較少的內存空間。另外,PCI總線(xiàn)與DSP之間還要進(jìn)行大量、可靠的數據傳輸,它們均過(guò)多地占用CPU時(shí)間,導致CPU效率降低。使用雙口RAM交換信息,雙方將其當作自己存儲器的一部分,可保證高速、可靠的數據通信。本系統選用的CY7C133,完全能夠滿(mǎn)足數據傳輸的要求。CY7C133是一款高速2K16位的雙口靜態(tài)RAM,允許2個(gè)(左、右)端口同時(shí)讀/寫(xiě)數據,每個(gè)端口具有獨立的控制信號線(xiàn)、地址線(xiàn)和數據線(xiàn)??筛咚俅嫒祿?,最短存取時(shí)間為25ns,可與大多數高速處理器配合使用,而無(wú)須插入等待狀態(tài)。CY7C133除具有雙端口存取功能外,還具有標識器功能,在數據傳送時(shí)可構成多種接口形式。
2 接口電路的實(shí)現
2.1 雙口只AM的邏輯判斷
雙口RAM允許2個(gè)CPU同時(shí)讀取任何存儲單元(包括同時(shí)讀同一地址單元),但不允許同時(shí)寫(xiě)或一讀一寫(xiě)同一地址單元,否則就會(huì )出現寫(xiě)入值和讀出值不是期望值的混亂狀態(tài)。雖然CY7C133硬件本身帶有BUSY控制信號來(lái)協(xié)調兩端的訪(fǎng)問(wèn),但BUSY信號腳要求與兩側CPU的READY線(xiàn)相連,而CH365并不具有READY信號線(xiàn),因此,需要引入仲裁邏輯控制模塊。常用的雙口RAM解決地址競爭的途徑有:令牌傳遞法、基于郵箱機制的INT中斷法以及插入等待周期的BUSY法等。在本系統中我們采用第2種方法。
基于郵箱機制的INT中斷法的基本思想是:給每個(gè)端口分配一個(gè)地址作為郵箱,比如本系統可以令CH365使用00H,DSP使用8000H,這兩個(gè)地址用來(lái)裝載作為分配兩端口RAM使用權的依據數據。具體約定為:當左端口CH365寫(xiě)地址單元00H時(shí),通過(guò)邏輯器件可實(shí)現右中斷DSP_TNT(DSP中斷)為低,向DSP發(fā)出中斷請求,DSP讀地址單元00H時(shí),DSP_INT為高,復位CH365發(fā)出的中斷請求。同理,當右端口寫(xiě)地址單元8000H時(shí),左中斷INT_REQ(CH365中斷)為低,可向左端口發(fā)出中斷請求;而當左端口讀地址8000H時(shí),INT_REQ為高,復位DSP發(fā)出的中斷請求。當信箱內容為00時(shí),表示正在使用該方端口;當信箱內容為FFH時(shí),表示結束使用該端口。因此,雙方在對端口的其他單元進(jìn)行讀寫(xiě)操作開(kāi)始時(shí),需要向郵箱中寫(xiě)入00H;操作結束,寫(xiě)入FFH。如果沒(méi)有發(fā)生爭用,則直接進(jìn)行讀寫(xiě)操作;否則,慢的一方產(chǎn)生中斷,并查詢(xún)對方郵箱,直到對方郵箱內容為FFH。具體實(shí)現可借助CPLD來(lái)完成。
2.2 總線(xiàn)擴展的解決方案
CH365的地址總線(xiàn)寬度是16位,數據總線(xiàn)寬度為8位,TMS320C2407的數據總線(xiàn)和地址總線(xiàn)的寬度均為16位,而CY7C133的數據總線(xiàn)寬度是16位,地址總線(xiàn)寬度是11位,所以DSP與CY7C133的接口并無(wú)特別之處;但是CH365與CY7C133之間的接口電路就需要對雙口RAM進(jìn)行總線(xiàn)擴展了?;舅枷胧抢貌糠諧PLD實(shí)現鎖存器的功能,通過(guò)對使能信號的控制,把16位數據進(jìn)行分時(shí)讀寫(xiě),實(shí)現數據總線(xiàn)的擴展,即利用鎖存器作為虛擬總線(xiàn)。此處選用EPM7032的CPLD來(lái)解決總線(xiàn)擴展問(wèn)題,其內部電路如圖l所示。
下面討論CH365對雙口RAM的讀寫(xiě)過(guò)程。當CH365對雙口RAM進(jìn)行讀數據時(shí),設定此時(shí)A0為高電平,此時(shí)16位數據均從雙口RAM中讀出,由于高8位數據線(xiàn)與CH365的8位數據線(xiàn)直接相連,所以高8位數據被立即讀入CH365中。同時(shí),根據圖1中各信號的相互邏輯關(guān)系可以得到,讀鎖存器(U1)的使能信號G有效(高電平),OEN無(wú)效(高電平),因而低8位數據被送入U1中鎖存起來(lái)。接著(zhù)CH365再進(jìn)行一次讀操作,CH365_A0變成低電平,雙口RAM的片選信號變成無(wú)效電平,所以此次讀操作對雙口RAM不產(chǎn)生影響,而此時(shí)U1的使能信號G變成了無(wú)效電平,而OEN變成了有效電平,上次被鎖存的數據(即雙口RAM的低8位數據)被送入CH365中,16位數據讀完成。當CH365對雙口RAM進(jìn)行寫(xiě)入操作時(shí),設定此時(shí)CH365_A0為低電平,同樣可根據圖l判斷寫(xiě)緩存器(U2)的使能信號G有效,而OEN無(wú)效,雙口RAM片選無(wú)效,因而數據被鎖存在U2中;接著(zhù)CH365再進(jìn)行一次寫(xiě)操作,由于CH365_A0變成高電平,雙口RAM片選有效,U2的片選無(wú)效,OEN為有效電平,故此時(shí)16位數據同時(shí)寫(xiě)入雙口RAM。從上面的分析可知,利用最低地址位CH365_AO的不同電平,CH365通過(guò)兩次連續的讀或寫(xiě)操作,成功地實(shí)現了對雙口RAM中數據的讀或寫(xiě),只不過(guò)是讀入時(shí)是先讀入高8位,后讀入低8位;而寫(xiě)入則是先寫(xiě)入低8位,后寫(xiě)入高8位。同時(shí),兩片鎖存器不能出現同時(shí)被選中的情況.否則就會(huì )出現傳輸數據的混亂,導致傳輸錯誤。
本系統的硬件電路原理(主要部分)如圖2所示。由于TMS320C2407(3.3V)與雙口RAM(5V)的電平差別,加入了電壓轉換器件SN74LVTHl6245A。
3 PCI和DSP的通信
在硬件電路實(shí)現之后,把完成的板卡插于PC機的PCI插槽。上電后,根據系統提示安裝CH365驅動(dòng)程序,在正確安裝好硬件之后,就可以在VC環(huán)境下編寫(xiě)和調試PCI和DSP的通信軟件。
通過(guò)API函數編寫(xiě)與DSP的相互數據交換程序,完成雙向的中斷申請和中斷響應,實(shí)現數據快速交換。
3.1 CH365的雙向通信程序
CH365支持PC機程序以單字節、雙字節(字)、四字節(雙字)為單位對I/O端口或者存儲器進(jìn)行讀寫(xiě)。在多字節連續讀寫(xiě)操作期間,CH365每讀寫(xiě)完一個(gè)字節數據后,就會(huì )自動(dòng)將偏移地址加l,以指向下一個(gè)字節的偏移地址。我們可以通過(guò)向I/0口的00H寫(xiě)數據實(shí)現向DSP申請中斷,DSP在響應中斷后通過(guò)讀00H清除上位機的中斷。其程序如下:
3.2 DSP的雙向通信程序
為了方便觀(guān)察數據傳輸結果,本測試中設定,DSP寫(xiě)空間為Ox0400~Ox07FF,讀空間為OxO000~Ox03FF,即可以通過(guò)DSP程序實(shí)現從前l(fā)K單元讀取數據再寫(xiě)入后lK單元,然后把后寫(xiě)入的數據與PC機寫(xiě)入的數據進(jìn)行比較。如果吻合,則說(shuō)明數據交換成功。圖3給出DSP的程序流程。
通過(guò)雙向的軟件測試,結果顯示數據交換完全正確。
結語(yǔ)
隨著(zhù)計算機技術(shù)和電子技術(shù)的發(fā)展,將運算高速、功能強大的數字信號處理器應用于運動(dòng)控制,可以實(shí)現復雜的控制算法和高精度、高速度、多軸聯(lián)動(dòng)功能,在數控應用中,將會(huì )占據越來(lái)越重要的地位。而快速、準確的通信是這種運動(dòng)控制器的基礎。本文提出的通信方式,具有性能可靠,硬件結構簡(jiǎn)單,價(jià)格便宜的優(yōu)點(diǎn),有較好的應用前景。
評論