當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]通過一個監(jiān)控系統(tǒng)的研制,闡述了對一個不熟悉的微機(jī)系統(tǒng)進(jìn)行改造時應(yīng)遵循的原則及基本方法,介紹了雙端口存貯器IDT7132和看門狗WDT的用法。 關(guān)鍵詞:監(jiān)控系統(tǒng),單片機(jī),雙端口存貯器,WDT       制作微機(jī)

通過一個監(jiān)控系統(tǒng)的研制,闡述了對一個不熟悉的微機(jī)系統(tǒng)進(jìn)行改造時應(yīng)遵循的原則及基本方法,介紹了雙端口存貯器IDT7132和看門狗WDT的用法。
    關(guān)鍵詞:監(jiān)控系統(tǒng),單片機(jī),雙端口存貯器,WDT
   
  制作微機(jī)監(jiān)控系統(tǒng)時,若受監(jiān)控對象本身也是一個微機(jī)系統(tǒng),且又沒有電路圖、程序等資料時,如何采集對象的內(nèi)部數(shù)據(jù)(如CPU狀態(tài)等),如何修改對象的程序方不至令原系統(tǒng)運(yùn)行不穩(wěn)定和崩潰,如何充分利用監(jiān)控對象的資源,是一個帶有普遍性的問題。
  筆者研制的“數(shù)字實(shí)驗(yàn)監(jiān)控系統(tǒng)”,其主要功能是采集30臺學(xué)生實(shí)驗(yàn)機(jī)狀態(tài)和過程信息,送往中心主機(jī)顯示。監(jiān)控對象是一臺型號為DLES的數(shù)字電路實(shí)驗(yàn)機(jī),這是某公司的產(chǎn)品,除簡單的用法說明書外別無其它資料。該機(jī)的核心是單片機(jī)8031,帶6位鍵盤和數(shù)碼管顯示、并行口8155等,可選擇CPU工作方式產(chǎn)生各種實(shí)驗(yàn)信號。

1用雙端口RAM采集數(shù)據(jù)
  監(jiān)控系統(tǒng)的首要任務(wù)是獲取受控對象的各種狀態(tài)信息。用IO線取得的只是其外部信息,且當(dāng)高頻時容易遺漏。要取得重要的內(nèi)部信息,必須設(shè)法使監(jiān)控對象的CPU自動送出信息,即采用雙CPU通訊。無論用并行通訊還是串行通訊,都要大幅修改原機(jī)程序,且要占用原機(jī)CPU很多等待、檢測通訊口的時間,很容易破壞原機(jī)的固有時序。較好的方法是采用共享存貯器方式,只要在原機(jī)程序的適當(dāng)位置插入一段程序,令其定時將自身的重要信息(例如片內(nèi)RAM的256字節(jié)內(nèi)容)送到共享存貯器就可以了。
    本系統(tǒng)采用雙端口存貯器IDT7132來實(shí)現(xiàn)兩CPU的通訊。雙口存貯器有2套獨(dú)立的IO電路,可供2個CPU在不同時刻讀寫各個存貯單元。但同時訪問同一存貯單元會產(chǎn)生沖突。IDT7132有一套沖突仲裁電路,使先到一方獲得優(yōu)先權(quán)實(shí)現(xiàn)讀寫操作,而向另一方發(fā)出一個沖突信號BUSY。
  沖突發(fā)生時,訪問存貯器失敗的一方要將剛失敗的一句指令再執(zhí)行一次,本系統(tǒng)是將BUSY線接到單片機(jī)的中斷線INT0,電路見圖1。但單片機(jī)的程序指針PC不能直接被讀寫,而中斷的發(fā)生又是隨機(jī)的,無法掌握其出現(xiàn)的時刻,要重復(fù)執(zhí)行中斷前的一句指令殊不容易。為實(shí)現(xiàn)這功能,用了一點(diǎn)技巧:因?yàn)?,中斷服?wù)程序執(zhí)行前,PC值必自動壓入堆棧,可在中斷服務(wù)程序中將該P(yáng)C值出棧,作減3處理后再入棧,則中斷結(jié)束出棧的PC值已退回指向到中斷前的一句指令了。


 

  原實(shí)驗(yàn)機(jī)已經(jīng)使用了5條高位地址線,若要增加2KB容量的IDT7132,將超過8031單片機(jī)最大64K存貯空間的限制。為此,利用單片機(jī)一條懸空的中斷口引腳INT1充當(dāng)IDT7132的片選控制線,CPU要訪問IDT7132就不能僅用常規(guī)的MOVX指令,而必須在讀寫存貯器的前后各增加一條使INT1變低電平然后變高電平的指令,該指令如下:
    CLRINT1MOVXA,@DPTR  SETBINT1
2原系統(tǒng)已用資源的查找
  要改造別人的系統(tǒng),難點(diǎn)之一是要了解原系統(tǒng)對各種資源的使用情況。單片機(jī)的內(nèi)部讀寫存貯器RAM只有128字節(jié),而要增改原機(jī)程序必須使用這些片內(nèi)RAM,從而可能造成資源沖突。為了解原系統(tǒng)對片內(nèi)RAM的使用情況,借用了文字編輯軟件的搜索功能。因?yàn)閱纹瑱C(jī)對片內(nèi)RAM的尋址方式只有2種:(1)直接尋址,此時,可將RAM的直接地址作為搜索關(guān)鍵字,調(diào)用編輯軟件的搜索功能,在原實(shí)驗(yàn)機(jī)程序中逐個顯示該地址出現(xiàn)的地方;(2)以R0和R1為指針的間接尋址,這時,可分別以@R0和@R1為關(guān)鍵字搜索原程序,在出現(xiàn)的地方分析R0和R1的變化情況及范圍。
  若以上兩方法勻未找到所關(guān)注的RAM單元,則可以肯定原系統(tǒng)未使用該資源。若該單元同時又是可位尋址的,而位地址只有直接尋址一種方式,故必須采用上述的第(1)種方式搜索一次,結(jié)論也是非常明確的。
3修改和插入程序的方法
  如果監(jiān)控對象的信號是軟件方式產(chǎn)生的(本實(shí)驗(yàn)機(jī)就是這樣),修改、增加程序時在時間開銷上要非常小心,否則會導(dǎo)致原機(jī)時序出錯。以下是兩種常用的可行方法:
  (1)在原程序的延時過程中,刪除其延時指令,插入執(zhí)行時間大致同其原延時時間相當(dāng)?shù)男鲁绦?。例如,原?shí)驗(yàn)機(jī)為數(shù)碼管顯示而設(shè)的延時子程序就被用于將適當(dāng)個字節(jié)的信息傳遞到雙端口存貯器。
  (2)在原程序中等待某些事件發(fā)生的過程中,插入新程序。例如等待鍵盤按鍵時,可以控制程序跳往新的功能模塊,執(zhí)行適當(dāng)時間后再返回。
4監(jiān)視定時器WDT的處理
  在大部分微機(jī)控制系統(tǒng)中,WDT(看門狗,在6800系列中是COP)都是首選的抗干擾措施之一,其作用是以軟件和硬件方式設(shè)置一個定時器,定時強(qiáng)制系統(tǒng)復(fù)位,以防止程序失控“跑飛”。
  修改舊程序時必須留意查看原系統(tǒng)有無WDT,否則可能導(dǎo)致系統(tǒng)崩潰。若有,則首先要找到WDT的定時時間。硬件WDT的時間值一般是固定的,可查資料得到。例如8096系列是64K個狀態(tài)周
期。軟件WDT要先找到所用的定時器,可循2個途徑:(1)芯片自身的定時器。這可以在定時器中斷服務(wù)程序中查找,例如8051系列的二個定時器的中斷服務(wù)程序入口地址分別是000BH和0001BH,查看這2段程序可知哪一個是用于WDT的,然后進(jìn)一步在主程序的初始化設(shè)置中查看對該定時器的設(shè)置,便可找到定時時間;(2)外圍芯片(例如8155)的定時器,要將之用于WDT必須將定時器溢出線接到單片機(jī)的某外部中斷線上,查看這些外部中斷服務(wù)程序就可以找到相應(yīng)的定時器,再查看主程序中對該定時器的設(shè)置,也能找到定時值。
  知道了WDT的溢出時間后,就可以在修改或增加的程序中,每隔規(guī)定的時間插入一段指令清除定時器以使WDT不對系統(tǒng)復(fù)位。例如對8096系統(tǒng),若不使用乘除指令,可以每執(zhí)行約4K條指令插入以下2條指令
    MOV0AH,#1EH
  MOV0AH,#E1H
5借用監(jiān)控對象的資源
  充分利用監(jiān)控對象的資源,可以降低成本,最主要是可以使學(xué)生不必耗費(fèi)時間多學(xué)習(xí)一臺儀器的使用方法。本監(jiān)控系統(tǒng)借用了原實(shí)驗(yàn)機(jī)上的鍵盤和數(shù)碼管顯示器。
  原實(shí)驗(yàn)機(jī)以掃描IO口方式擴(kuò)展6位鍵盤,每個鍵盤都賦予了固定的鍵值和鍵功能,以及固定的鍵處理程序段。為了利用原實(shí)驗(yàn)機(jī)的鍵盤使其執(zhí)行新的鍵功能,又不破壞原來的功能,采用了這樣的方法:改寫原機(jī)的鍵盤掃描程序段,定義當(dāng)某2個鍵(是在原機(jī)中沒有用到的)同時按下時,就跳出原程序轉(zhuǎn)往一個新編寫的程序模塊。在該新模塊中,所有鍵功能都可以被任意重新定義,當(dāng)處理完新按鍵后再轉(zhuǎn)回原機(jī)程序中執(zhí)行。
  要利用原機(jī)的數(shù)碼管顯示器,可以有兩種方法:
   (1)編寫新的顯示程序;(2)利用原程序的顯示功能,將要顯示的內(nèi)容嵌入原程序中。因后者能很好地兼容原機(jī)程序,不易導(dǎo)致系統(tǒng)出錯或崩潰,故選用之。通過研究和測試,知原機(jī)的顯示機(jī)理是將顯示數(shù)據(jù)送緩沖區(qū),由專用顯示模塊轉(zhuǎn)為八段數(shù)碼管顯示值。但其轉(zhuǎn)換算法非常復(fù)雜繁鎖。為不占用原機(jī)CPU太多時間及不易出錯,將所有可能的數(shù)據(jù)逐個送入緩沖區(qū),測出一張數(shù)據(jù)同顯示式樣的對照表,在增加的新程序中,將顯示數(shù)據(jù)查表轉(zhuǎn)換后送緩沖區(qū)就可以了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉