新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 雙口RAM在嵌入式系統(tǒng)調(diào)試中的應(yīng)用

雙口RAM在嵌入式系統(tǒng)調(diào)試中的應(yīng)用

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

IDT7130在嵌入式

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

PLC

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

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

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

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

 

雙口RAM在系統(tǒng)調(diào)試中的應(yīng)用

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

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

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

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

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

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

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

6)最后返回RESET繼續(xù)判斷運(yùn)行標(biāo)志調(diào)試程序。

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

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

 

結(jié)語(yǔ)

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

系統(tǒng)中的應(yīng)用


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

評(píng)論


相關(guān)推薦

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

關(guān)閉