當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ISA總線(xiàn)與KH-9300的數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)

1 引言
    該數(shù)據(jù)采集系統(tǒng)采用硬中斷方式,通過(guò)對(duì)KH-9300板卡上的8254定時(shí)器和8259中斷控制器編程定時(shí)觸發(fā)中斷并對(duì)外部脈沖計(jì)數(shù),設(shè)計(jì)中每隔1 s采集1次數(shù)據(jù),數(shù)據(jù)采集卡第0和1號(hào)通道采用串行方式并使用板卡上的內(nèi)部時(shí)鐘進(jìn)行計(jì)時(shí),第2、3、4、5號(hào)通道輸人外部計(jì)數(shù)脈沖計(jì)數(shù)。所有通道采用內(nèi)部門(mén)控信號(hào)。當(dāng)串行的第0~1通道計(jì)數(shù)滿(mǎn)時(shí),就向板卡上的8259中斷控制器的IN1引腳發(fā)出中斷指令。通過(guò)8259中斷控制器向計(jì)算機(jī)內(nèi)的8259A的中斷引腳(這里設(shè)計(jì)為第5號(hào)中斷引腳)發(fā)出中斷指令。CPU響應(yīng)中斷請(qǐng)求,執(zhí)行中斷程序,對(duì)板卡上第2、3、4、5號(hào)通道進(jìn)行數(shù)據(jù)采集,并把采集后的數(shù)據(jù)寫(xiě)入文件。

2 板卡及8254定時(shí)、計(jì)數(shù)常數(shù)的設(shè)置
    時(shí)鐘跳線(xiàn)的設(shè)置:0號(hào)通道選內(nèi)部時(shí)鐘,0和1兩通道級(jí)聯(lián),2~5號(hào)通道接外部脈沖,選外部時(shí)鐘。門(mén)控跳線(xiàn)設(shè)置為所有通道都選內(nèi)部門(mén)控;基地址設(shè)置為280H;中斷號(hào)設(shè)置為INT5(中斷向量號(hào)為13);內(nèi)部時(shí)鐘頻率設(shè)置為2 MHz。
    (1)定時(shí)常數(shù)的計(jì)算 定時(shí)系數(shù)=要求定時(shí)的時(shí)間/時(shí)鐘脈沖的周期。若定時(shí)的時(shí)間為1 s,內(nèi)部時(shí)鐘頻率為2 MHz。則時(shí)鐘脈沖的周期為1 s/2 MHz=0.5μs,定時(shí)系數(shù)為1s/0.5 μs=2×106=2 000 000。由于8254定時(shí)計(jì)數(shù)器6個(gè)通道為16位減計(jì)數(shù)器,每個(gè)通道計(jì)數(shù)值最大為216-1=65 535<2 000 000。所以必須采用2個(gè)通道計(jì)時(shí),設(shè)計(jì)中將第0通道和第1通道串聯(lián)。由2×106=1 000×2×103,則定時(shí)系數(shù):第0通道為2 000,第1通道為1 000。
    (2)計(jì)數(shù)通道的初始化 計(jì)數(shù)通道常數(shù)設(shè)置為最大值:FFFFH。最大計(jì)數(shù)頻率為65 535 Hz/s。
    (3)計(jì)數(shù)累計(jì)脈沖量計(jì)算 計(jì)數(shù)累計(jì)脈沖量=FFFFH-計(jì)數(shù)器本次讀數(shù)。

3 用Turbo C編寫(xiě)中斷服務(wù)程序的方法
    C語(yǔ)言中斷服務(wù)程序可由3部分實(shí)現(xiàn)。即編寫(xiě)中斷服務(wù)程序、安裝中斷服務(wù)程序、激活中斷服務(wù)程序。

[!--empirenews.page--]
    (1)編寫(xiě)中斷服務(wù)程序由于產(chǎn)生中斷時(shí),必須保留被中斷程序中斷時(shí)的一些現(xiàn)場(chǎng)數(shù)據(jù),即保存斷點(diǎn),這些值都在寄存器中,以便恢復(fù)中斷時(shí)使這些值復(fù)原。以繼續(xù)執(zhí)行原來(lái)被中斷的程序。 Turbo C為此提供一種新的函數(shù)類(lèi)型:inter-rupt,它將保存由該類(lèi)型函數(shù)所指寄存器的值,而在退出該函數(shù)時(shí),再?gòu)?fù)原這些寄存器的值,因而用戶(hù)的中斷服務(wù)程序必須定義成該類(lèi)型的函數(shù),如中斷服務(wù)程序名為myp,則可將這個(gè)函數(shù)說(shuō)明為:
    Void interrupt myp(unsigned bp,unsigned di,unsigned si,unsigned ds,unsigned es,unsigned dx,unsigned cx,unsignedbx,unsigned ax,unsiged ip,unsigned cs,unsigned flags)
    小模式下程序只有1段,在中斷服務(wù)程序中用戶(hù)可像用無(wú)符號(hào)整數(shù)變量一樣使用這些寄存器。若中斷服務(wù)程序中不使用上述寄存器,則可不寫(xiě)這些寄存器參數(shù),而寫(xiě)為:

  
    對(duì)于硬件中斷,則在中斷服務(wù)程序結(jié)束前要將中斷結(jié)束命令字送至系統(tǒng)的中斷控制寄存器,其端口地址為0x20,中斷結(jié)束命令字也為0x20,即outportb(0x20,0x20)。
    在中斷服務(wù)程序中,若不允許別的優(yōu)先級(jí)較高的中斷打斷它,則要禁止中斷,可用函數(shù)disable()來(lái)關(guān)閉中斷。若允許中斷,則可用開(kāi)中斷函數(shù)enable()來(lái)開(kāi)啟中斷。
    (2)安裝中斷服務(wù)程序定義中斷服務(wù)程序后,還需將這個(gè)函數(shù)的人口地址填人中斷向量表中,以便產(chǎn)生中斷時(shí)程序能轉(zhuǎn)入中斷服務(wù)程序去執(zhí)行。為防止正在改寫(xiě)中斷向量表時(shí),又產(chǎn)生別的中斷而導(dǎo)致程序混亂,可先關(guān)閉中斷,待改寫(xiě)完成后,再開(kāi)啟中斷。

  
    其中faddr是中斷服務(wù)程序的入口地址,其函數(shù)名代表入口地址,而inum表示中斷類(lèi)型號(hào),setvect()函數(shù)設(shè)置中斷向量,上述定義的install()函數(shù)將完成把中斷服務(wù)程序入口地址填入中斷向量inum中。
    (3)中斷服務(wù)程序的激活對(duì)于硬件中斷,在相應(yīng)的中斷請(qǐng)求線(xiàn)(IRQi,i=0,1,2,…,7)產(chǎn)生一個(gè)由低到高的中斷請(qǐng)求電平,這個(gè)過(guò)程必需由接口電路來(lái)實(shí)現(xiàn),這個(gè)電平可用程序控制實(shí)現(xiàn),如發(fā)命令outportb(端口地址,命令)。然后程序等待中斷,當(dāng)中斷產(chǎn)生時(shí),便去執(zhí)行中斷。
    (4)恢復(fù)被修改的中斷向量為在主程序結(jié)束后,恢復(fù)原來(lái)的中斷向量以指向原中斷服務(wù)程序,在主程序開(kāi)始時(shí),存下原中斷向量的內(nèi)容,用getvect()實(shí)現(xiàn),如j=(char*)getvect(0x1c),這樣指針變量中將是0xlc中斷程序的入口地址,當(dāng)主程序結(jié)束時(shí),可恢復(fù)原來(lái)的中斷服務(wù)入口地址,可用setvect(0x1c,i),也可用install()函數(shù)再次安裝。

4 程序設(shè)計(jì)
4.1 程序說(shuō)明
    程序主要分為主程序和中斷處理子程序2部分。其中主要程序是采用 I/O接口的輸入輸出函數(shù)進(jìn)行初始化。包括設(shè)置KH-9300定時(shí)計(jì)數(shù)器8254和中斷控制器8259的工作方式、初值、開(kāi)中斷、觸發(fā)方式,對(duì)計(jì)算機(jī)的 8259開(kāi)中斷等。在主程序的最后把采集的通道數(shù)據(jù)寫(xiě)入文件。而中斷處理子程序是由CPU在每次接到IRQ5中斷請(qǐng)求信號(hào)后立即執(zhí)行,主要作用是把KH- 9300卡的第2、3、4、5號(hào)通道的計(jì)數(shù)值采集到程序的變量中。主程序和中斷處理子的程序流程分別如圖1、圖2所示。

4.2 編程注意事項(xiàng)
    (1)不要用任何DOS功能調(diào)用,避免DOS重入。盡量避免使用與屏幕相關(guān)、檢查狀態(tài)、讀鍵盤(pán)及任何磁盤(pán)I/O子程序:避免使用浮點(diǎn)(實(shí)數(shù))運(yùn)算。中斷服務(wù)程序中所調(diào)用函數(shù)盡量是BIOS級(jí)庫(kù)函數(shù);(2)中斷程序執(zhí)行的時(shí)間應(yīng)盡可能的短。若 ISR中消耗時(shí)間過(guò)長(zhǎng),在完成一次運(yùn)行前有可能被再次調(diào)用,導(dǎo)致系統(tǒng)被掛起。(3)控制變量可以是全局變量,也可通過(guò)寄存器變量傳遞給interrupt 函數(shù);(4)若實(shí)時(shí)控制系統(tǒng)對(duì)中斷響應(yīng)速度要求較高,可采用嵌入?yún)R編技術(shù)。[!--empirenews.page--]
4.3 程序調(diào)試結(jié)果
    圖3為調(diào)試結(jié)果。圖3中每1行后4個(gè)數(shù)據(jù)為每1 s所采集的4通道數(shù)據(jù),第1列是第幾次采集,即第幾秒采集,后4列是第2、3、4、5通道所采集的數(shù)據(jù)。因此采集的數(shù)據(jù)具有較高穩(wěn)定性。

5 結(jié)束語(yǔ)
    從程序調(diào)試數(shù)據(jù)可看出,采集到的數(shù)據(jù)具有很高的穩(wěn)定性。該系統(tǒng)可方便組成連續(xù)監(jiān)測(cè)系統(tǒng)或其他需要記錄脈沖的系統(tǒng)。同時(shí)利用Turbo C可方便的控制其端口和硬件中斷。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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