雙口RAM在嵌入式系統(tǒng)調(diào)試中的應用
IDT7130在嵌入式
本文引用地址:http://www.ex-cimer.com/article/2926.htmPLC
為較合理地解決目前可編程邏輯控制器(PLC)自身的軟硬件分配及其與上位機通信協(xié)調(diào)工作中存在的問題,筆者基于ISA總線自行設(shè)計了一種插卡式可編程控制器。該嵌入式PLC實質(zhì)是一個智能化I/O接口卡,CPU采用AT89C52,實驗用上位機為Pentium100。主從CPU協(xié)同工作中,要注意雙方信息交換實時性高;其次傳輸信息容量大,數(shù)據(jù)傳送要求準確無誤;第三硬件設(shè)計受機箱空間限制,不能過于復雜龐大。
目前已有的主從CPU間的通信方式,或因結(jié)構(gòu)復雜,或因傳遞效率低,都不能很好地滿足本系統(tǒng)的要求,而近年來新型的雙口RAM芯片卻獨具特點:①具有兩套完全獨立的數(shù)據(jù)線、地址線、讀/寫控制線,允許兩個CPU對雙端口存儲器的同一單元進行同時存??;②具有兩套完全獨立的中斷邏輯來實現(xiàn)兩個CPU之間的握手控制信號;③具有兩套獨立的“忙”邏輯,保證兩個CPU同時對同一單元進行讀/寫操作的正確性;④兼容性強,讀/寫時序與普通單端口存儲器完全一樣,存取速度完全滿足各種CPU的要求。
IDT7130是美國IDT公司采用高性能的CMOS工藝生產(chǎn)的高速1K×8雙端口靜態(tài)RAM,典型功耗550mW,最大存取時間有25/35/55/100ns,可采用中斷、硬件、令牌、和軟件四種方式來協(xié)調(diào)信息交換雙方。該芯片運用有別于同類的中斷標志進行總線仲裁:存儲陣列中的×3FEH和×3FFH單元被用做通信“郵箱”,左端口向×3FFH寫入訪問的同時,右端口的中斷標志被設(shè)置,直到右端口進行讀取×3FFH時清除,與此類似。中斷時序關(guān)系示意如圖1,其中tINS和tINR分別為ns級的中斷設(shè)置時間和中斷清除時間,其提供的中斷信號的有效時間可以滿足各種CPU的要求。
嵌入式PLC系統(tǒng)采用IDT7130作為與上位機共享的通信數(shù)據(jù)區(qū),如圖2所示,該器件的高集成度大大簡化了信息交換窗口的接口硬件邏輯設(shè)計,有效縮小系統(tǒng)規(guī)模和減小印制電路板面積。配合ISA總線采用中斷方式傳送信息,不僅可滿足上位機多任務控制系統(tǒng)的需要,還可提高本系統(tǒng)實時數(shù)據(jù)的處理時效。IDT7130(U6) 在上位機地址分配空間,可通過GAL16V8(U7)和J2靈活選擇為0D000:0000~03FF、0D800:0000~03FF、0E000:0000~03FF、0E800:0000~03FF;在嵌入式PLC中占用地址為2000H~23FFH。在使用中斷方式中,筆者將左端信號線接上拉電阻拉至高電平,才能保證中斷信號的產(chǎn)生,同樣將兩信號也接上拉電阻,保證中斷申請能被及時清除。
雙口RAM在系統(tǒng)調(diào)試中的應用
單片機系統(tǒng)的調(diào)試通常是在開發(fā)仿真系統(tǒng)上完成,后者把它的硬件(CPU和存儲器)和軟件資源(被調(diào)試程序和參數(shù))暫時出借給前者,并模擬其工作環(huán)境,對其軟、硬件進行調(diào)試和修改。
嵌入式PLC屬于單片機系統(tǒng),在調(diào)試過程中沒有購買價格昂貴的仿真裝置,而是充分利用雙端口RAM IDT7130的中介作用,以及上位機操作方便、運行結(jié)果直觀的特點,通過編寫一特殊程序,將其固化在89C52的EPROM中,根據(jù)該程序中設(shè)置的標志條件,把硬件電路和軟件模塊按照分塊、聯(lián)調(diào)的順序進行調(diào)試,具體做法結(jié)合圖3所示流程描述如下:
1)在上位機中以子程序的形式編寫好將要調(diào)試的嵌入式PLC系統(tǒng)的程序功能模塊,借助于工具軟件ASM51將其匯編為二進制(.BIN)文件。
2)在上位機執(zhí)行DEBUG命令把該二進制文件送到雙端口RAM對應下位機地址#2100H開始的存儲單元中。
3)在下位機源程序中對#2000H和#2001H兩個存儲單元清零操作,當程序執(zhí)行到RESET處,在這兩個存儲單元中定義了兩個程序開始運行的標志:99H和88H,從上位機可以利用DEBUG命令對這兩個標志進行改變,以控制嵌入式PLC中固化的程序是否繼續(xù)往下執(zhí)行;為了確認兩個標志被正確設(shè)置和程序往下運行的情況,在存儲單元#2002H和#2003H中同樣定義了兩個確認標志:99H和88H。
4)運行標志設(shè)置正確后,執(zhí)行調(diào)用語句LCALL 2100H,使得程序指針PC指向所要調(diào)試的程序功能塊首地址處,開始調(diào)用執(zhí)行該程序功能模塊;子程序是否運行正常,并且是否返回可通過存儲單元#2002H和#2003H標志由99H和88H變?yōu)?2H來確認。
5)另外在硬件方面可借助輔助調(diào)試手段,使用示波器來測試P1口高四位的波形變化狀況,來判斷程序的運行情況。
6)最后返回RESET繼續(xù)判斷運行標志調(diào)試程序。
7)結(jié)合中斷產(chǎn)生原理,在IDT7130的下位機地址2100H處裝入中斷服務程序,上位機向存儲單元#23FEH中寫1產(chǎn)生中斷,下位機轉(zhuǎn)而執(zhí)行中斷功能調(diào)試。
利用這種調(diào)試方法,可以通過上位機在雙口RAM中設(shè)置每一程序模塊的啟動和確認標志位,即可方便地控制單個模塊的調(diào)試或多個模塊的聯(lián)調(diào),最終實現(xiàn)系統(tǒng)的功能。
結(jié)語
實驗證明,本系統(tǒng)采用雙口RAM作為主從CPU的中介,是一種實用、高效的系統(tǒng)設(shè)計方法。該方法使得信息交換方便快速可靠。利用雙口RAM的共享特點,可將上下位機自身構(gòu)成一種開發(fā)裝置,簡捷有效地實現(xiàn)工程環(huán)境下的在線調(diào)試。■
系統(tǒng)中的應用
評論