<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 雙口RAM在嵌入式系統調試中的應用

雙口RAM在嵌入式系統調試中的應用

作者: 時(shí)間:2002-02-01 來(lái)源: 收藏

IDT7130在嵌入式

本文引用地址:http://dyxdggzs.com/article/2926.htm

PLC

為較合理地解決目前可編程邏輯控制器(PLC)自身的軟硬件分配及其與上位機通信協(xié)調工作中存在的問(wèn)題,筆者基于ISA總線(xiàn)自行設計了一種插卡式可編程控制器。該嵌入式PLC實(shí)質(zhì)是一個(gè)智能化I/O接口卡,CPU采用AT89C52,實(shí)驗用上位機為Pentium100。主從CPU協(xié)同工作中,要注意雙方信息交換實(shí)時(shí)性高;其次傳輸信息容量大,數據傳送要求準確無(wú)誤;第三硬件設計受機箱空間限制,不能過(guò)于復雜龐大。

目前已有的主從CPU間的通信方式,或因結構復雜,或因傳遞效率低,都不能很好地滿(mǎn)足本系統的要求,而近年來(lái)新型的雙口RAM芯片卻獨具特點(diǎn):具有兩套完全獨立的數據線(xiàn)、地址線(xiàn)、讀/寫(xiě)控制線(xiàn),允許兩個(gè)CPU對雙端口的同一單元進(jìn)行同時(shí)存??;具有兩套完全獨立的中斷邏輯來(lái)實(shí)現兩個(gè)CPU之間的握手控制信號;具有兩套獨立的邏輯,保證兩個(gè)CPU同時(shí)對同一單元進(jìn)行讀/寫(xiě)操作的正確性;兼容性強,讀/寫(xiě)時(shí)序與普通單端口完全一樣,存取速度完全滿(mǎn)足各種CPU的要求。

IDT7130是美國IDT公司采用高性能的CMOS工藝生產(chǎn)的高速1K×8雙端口靜態(tài)RAM,典型功耗550mW,最大存取時(shí)間有25/35/55/100ns,可采用中斷、硬件、令牌、和軟件四種方式來(lái)協(xié)調信息交換雙方。該芯片運用有別于同類(lèi)的中斷標志進(jìn)行總線(xiàn)仲裁:存儲陣列中的×3FEH×3FFH單元被用做通信郵箱,左端口向×3FFH寫(xiě)入訪(fǎng)問(wèn)的同時(shí),右端口的中斷標志被設置,直到右端口進(jìn)行讀取×3FFH時(shí)清除,與此類(lèi)似。中斷時(shí)序關(guān)系示意如圖1,其中tINStINR分別為ns級的中斷設置時(shí)間和中斷清除時(shí)間,其提供的中斷信號的有效時(shí)間可以滿(mǎn)足各種CPU的要求。

嵌入式PLC系統采用IDT7130作為與上位機共享的通信數據區,如圖2所示,該器件的高集成度大大簡(jiǎn)化了信息交換窗口的接口硬件邏輯設計,有效縮小系統規模和減小印制電路板面積。配合ISA總線(xiàn)采用中斷方式傳送信息,不僅可滿(mǎn)足上位機多任務(wù)控制系統的需要,還可提高本系統實(shí)時(shí)數據的處理時(shí)效。IDT7130(U6) 在上位機地址分配空間,可通過(guò)GAL16V8(U7)J2靈活選擇為0D0000000~03FF、0D8000000~03FF、0E0000000~03FF、0E8000000~03FF;在嵌入式PLC中占用地址為2000H~23FFH。在使用中斷方式中,筆者將左端信號線(xiàn)接上拉電阻拉至高電平,才能保證中斷信號的產(chǎn)生,同樣將兩信號也接上拉電阻,保證中斷申請能被及時(shí)清除。

 

雙口RAM在系統調試中的應用

單片機系統的調試通常是在開(kāi)發(fā)仿真系統上完成,后者把它的硬件(CPU)和軟件資源(被調試程序和參數)暫時(shí)出借給前者,并模擬其工作環(huán)境,對其軟、硬件進(jìn)行調試和修改。

嵌入式PLC屬于單片機系統,在調試過(guò)程中沒(méi)有購買(mǎi)價(jià)格昂貴的仿真裝置,而是充分利用雙端口RAM IDT7130的中介作用,以及上位機操作方便、運行結果直觀(guān)的特點(diǎn),通過(guò)編寫(xiě)一特殊程序,將其固化在89C52的EPROM中,根據該程序中設置的標志條件,把硬件電路和軟件模塊按照分塊、聯(lián)調的順序進(jìn)行調試,具體做法結合圖3所示流程描述如下:

1)在上位機中以子程序的形式編寫(xiě)好將要調試的嵌入式PLC系統的程序功能模塊,借助于工具軟件ASM51將其匯編為二進(jìn)制(.BIN)文件。

2)在上位機執行DEBUG命令把該二進(jìn)制文件送到雙端口RAM對應下位機地址#2100H開(kāi)始的存儲單元中。

3)在下位機源程序中對#2000H和#2001H兩個(gè)存儲單元清零操作,當程序執行到RESET處,在這兩個(gè)存儲單元中定義了兩個(gè)程序開(kāi)始運行的標志:99H和88H,從上位機可以利用DEBUG命令對這兩個(gè)標志進(jìn)行改變,以控制嵌入式PLC中固化的程序是否繼續往下執行;為了確認兩個(gè)標志被正確設置和程序往下運行的情況,在存儲單元#2002H和#2003H中同樣定義了兩個(gè)確認標志:99H和88H。

4)運行標志設置正確后,執行調用語(yǔ)句LCALL 2100H,使得程序指針PC指向所要調試的程序功能塊首地址處,開(kāi)始調用執行該程序功能模塊;子程序是否運行正常,并且是否返回可通過(guò)存儲單元#2002H和#2003H標志由99H和88H變?yōu)?2H來(lái)確認。

5)另外在硬件方面可借助輔助調試手段,使用示波器來(lái)測試P1口高四位的波形變化狀況,來(lái)判斷程序的運行情況。

6)最后返回RESET繼續判斷運行標志調試程序。

7)結合中斷產(chǎn)生原理,在IDT7130的下位機地址2100H處裝入中斷服務(wù)程序,上位機向存儲單元#23FEH中寫(xiě)1產(chǎn)生中斷,下位機轉而執行中斷功能調試。

利用這種調試方法,可以通過(guò)上位機在雙口RAM中設置每一程序模塊的啟動(dòng)和確認標志位,即可方便地控制單個(gè)模塊的調試或多個(gè)模塊的聯(lián)調,最終實(shí)現系統的功能。

 

結語(yǔ)

實(shí)驗證明,本系統采用雙口RAM作為主從CPU的中介,是一種實(shí)用、高效的系統設計方法。該方法使得信息交換方便快速可靠。利用雙口RAM的共享特點(diǎn),可將上下位機自身構成一種開(kāi)發(fā)裝置,簡(jiǎn)捷有效地實(shí)現工程環(huán)境下的在線(xiàn)調試?!?/font>

系統中的應用


關(guān)鍵詞: 存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>