音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

振動信號采集系統(tǒng)中高速緩存的實現(xiàn)

出處:何以解憂 發(fā)布于:2009-11-27 12:02:54

  摘要:本文主要討論了以單片機(jī)為的振動信號采集系統(tǒng)的設(shè)計。介紹了幾種實現(xiàn)高速緩存的方法,以及利用Intel8237制作一個DMA控制器,詳細(xì)介紹了DMA傳輸?shù)脑砗蜅l件,解決了DMA控制器和外部接口電路的設(shè)計問題,并且給出了DMA控制器的初始化程序。

  問題的提出

  在設(shè)計以單片機(jī)為的振動信號采集與傳輸系統(tǒng)時,一般會遇到兩個問題。一個是采集的數(shù)據(jù)量,這個問題可以通過存儲空間的擴(kuò)展來解決。另一個問題就是采集數(shù)據(jù)的頻率受單片機(jī)執(zhí)行指令時間的限制的問題。一般的51系列單片機(jī)的晶振頻率為12MHz,一個機(jī)器周期為1uS,則從A/D讀出數(shù)據(jù)到外部RAM至少要4個機(jī)器周期,采樣頻率才250KHz。而振動信號的頻率達(dá)到幾百KHz,雖然A/D轉(zhuǎn)換器可采用高頻芯片,但從A/D把數(shù)據(jù)讀出在存儲到存儲器速度跟不上,如果進(jìn)行多路的數(shù)據(jù)采集則采集的頻率更低,這樣就不能普通的I/O方法進(jìn)行數(shù)據(jù)采集。本文中將提供幾種方案來解決這個問題。終選擇了DMA方式,由于我們所選擇的芯片沒有帶DMA控制器,所以我們就另外設(shè)計了一個DMA控制器,以及它和外部設(shè)備的接口電路。

  二、高速緩存的實現(xiàn)

  構(gòu)成高速緩存的方法有三種:

  種是FIFO(先進(jìn)先出)方式。FIFO存儲器就象數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入、從另一頭流出,先進(jìn)入的數(shù)據(jù)先流出。FIFO具有兩套數(shù)據(jù)線而無地址線,可在其一端寫操作而在另一端讀操作,數(shù)據(jù)在其中順序移動,因而能夠達(dá)到很高的傳輸速度和效率,且由于省去了地址線而有利于PCB板布線。缺點是只能順序讀寫數(shù)據(jù),因而顯得比較呆板,而且大容量的高速FIFO非常昂貴;

  第二種是雙口RAM方式。雙口RAM具有兩套獨立的數(shù)據(jù)、地址和控制總線,因而可從兩個端口同時讀寫而互不干擾,并可將采樣數(shù)據(jù)從一個端口寫入而由DSP從另一個端口讀出。雙口RAM也能達(dá)到很高的傳輸速度,并且具有隨機(jī)存取的優(yōu)點,缺點是大容量的高速雙口RAM很難得且價格昂貴;

  第三種是采用DMA方式。DMA是一

  種無需CPU的參與就可以讓外設(shè)與系統(tǒng)RAM之間進(jìn)行雙向數(shù)據(jù)傳輸?shù)挠布C(jī)制。使用DMA可以使系統(tǒng)CPU從實際的I/O數(shù)據(jù)傳輸過程中擺脫出來,從而大大提高系統(tǒng)的吞吐率??紤]到我們系統(tǒng)要采集的是振動信號,一般的頻率也就幾百k赫茲,用前兩種方法是可以達(dá)到理想的效果,但從成本角度分析,這并不經(jīng)濟(jì),所以這里我們選擇第三種DMA方式。

  三.DMA控制器的設(shè)計 [1]

  (一)DMA傳送的原理

  對于中高速外設(shè)數(shù)據(jù)傳輸,一種有效的方式就是就是用DMA方式,主要就是用DMA控制器(簡稱DMAC,典型芯片是Intel 8237),在外設(shè)和內(nèi)存之間直接進(jìn)行數(shù)據(jù)傳輸,這種傳輸由DMAC硬件完成,不需要CPU干預(yù),因此可以達(dá)到很高的速度。在DMAC獲得總線的控制權(quán)之后,什么時候交還總線給CPU,完全有DMAC自己決定,這有兩中模式:塊傳輸模式和單字節(jié)傳輸模式。對于單字節(jié)傳輸模式,DMAC完成一字節(jié)傳輸后,釋放系統(tǒng)總線。但是,在釋放系統(tǒng)總線后,DMAC立即檢測接口電路有無DMA請求(檢測DREQ信號),如果有DMA請求,DMAC又立即向CPU發(fā)出總線請求。這種模式的特點是,DMA請求只傳輸一字節(jié),然后釋放總線,因此,這種模式又稱為“總線竊取方式”,每次總是竊取一個總線周期,完成一字節(jié)傳輸,然后立即釋放總線。(CPU在總線空閑時響應(yīng)DMA請求)。對于塊傳輸模式,DMAC一旦獲得總線控制權(quán),連續(xù)進(jìn)行多個字節(jié)的傳輸,只有當(dāng)“字節(jié)計數(shù)器”減為0,才釋放總線。從內(nèi)存到I/O的DMA塊傳輸過程如下:

  (1)接口電路準(zhǔn)備好后,向DMAC發(fā)出DMA請求(DREQ)。

  (2)DMAC向CPU發(fā)出總線請求(HOLD),如果無總線封鎖(LOCK),CPU在完成當(dāng)前總線周期后,向DMAC發(fā)出總線允許信號(HLDA),CPU放棄總線控制權(quán),DMAC獲得總線控制權(quán)。

  (3)DMAC把存儲器地址送至地址總線。

  (4)DMAC向接口電路發(fā)出DMA請求應(yīng)答信號(DACK),以通知接口電路把數(shù)據(jù)送至數(shù)據(jù)總線。

  (5)接口電路送出數(shù)據(jù),內(nèi)存單元獲得數(shù)據(jù)。

  (6)DMAC內(nèi)部的“地址寄存器”加1,指向下一個內(nèi)存地址。

  (7)DMAC內(nèi)部的“字節(jié)計數(shù)器”減1。

  (8)若字節(jié)計數(shù)器的值不為0,回到第③步,否則,塊傳輸結(jié)束。

 ?。ǘ〥MA傳輸?shù)臈l件

  要實現(xiàn)DMA傳輸?shù)臈l件主要有兩方面,一個是DMA傳輸對外設(shè)接口電路的要求,一個是對DMA控制器的要求。具體如下:

  1. DMA傳輸對外設(shè)接口電路的要求

  (1)接口電路中的控制寄存器,必須有1位用來指出數(shù)據(jù)傳送方向,這樣,當(dāng)DMAC控制總線時,就能判別是進(jìn)行輸入還是輸出。

  (2)接口電路中的控制寄存器,必須有1位用來啟動I/O操作,通過這一位的設(shè)置來啟動外部設(shè)備的操作。

  (3)接口電路中的狀態(tài)寄存器,必須有1位用來指出設(shè)備當(dāng)前是否處于忙狀態(tài)。

  2. DMA傳輸對DMA控制器的要求

  (1)DMAC的控制寄存器中,專門有1位作為DMA允許位,用來控制是否響應(yīng)來自接口電路的DMA請求。

  (2)DMAC的控制寄存器中,必須有1位用來確定DMA方向,以便決定發(fā)出讀信號還是寫信號。

  (3)DMAC的控制寄存器中,還有1位用來決定進(jìn)行傳輸后,到底是放棄還是維持對總線的控制權(quán)。

  (4)DMAC的狀態(tài)寄存器中,必須有1位表示數(shù)據(jù)塊傳輸是否結(jié)束。

  綜上所示,對外設(shè)接口電路和DMA控制器的要求,可得DMA傳輸?shù)呐渲萌鐖D(1)所示:

  圖(1)

 ?。ㄈ〥MA控制器和接口電路的初始化程序[2,4]

  為了使DMA過程能正確進(jìn)行,必須使用程序?qū)MA控制器和接口電路進(jìn)行初始化,初始化包括下列設(shè)置:

  1.設(shè)置DMAC的字節(jié)計數(shù)器初值,以決定數(shù)據(jù)塊的長度。

  2.設(shè)置DMAC的地址寄存器初值,以確定數(shù)據(jù)傳輸所用的存儲區(qū)首地址。

  3.設(shè)置DMAC的控制寄存器,指出數(shù)據(jù)傳送方向、是否進(jìn)行塊傳輸,并啟動DMA操作。

  4.設(shè)置接口電路的控制寄存器,指出數(shù)據(jù)傳輸方向,并啟動I/O操作。

  設(shè):(INT-interface接口,CON-control register控制寄存器,“輸入”指I/O存儲器,“輸出”指存儲器I/O)

  接口狀態(tài)寄存器地址INTSTAT, bit2=1---I/O設(shè)備忙

  接口控制寄存器地址INTCON, bit0=1為輸入,bit0=0為輸出

  bit2=1---啟動I/O操作

  DMAC控制寄存器地址DMACON

  bit0=1為輸入,bit0=0為輸出

  bit3=1,可接收DMA請求

  bit6=0為字節(jié)傳輸模式,bit6=1為塊傳輸模式

  DMAC字節(jié)計數(shù)器地址BYTE-REG

  DMAC地址寄存器地址ADD-REG

  I/O的數(shù)據(jù)塊傳輸初始化程序如下:

  IDLE:  IN     AL , INTSTAT ;讀接口狀態(tài)

  TEST  AL , 04H;   是否忙(bit 2)

  JNZ   IDLE;  bit2=1,忙

  MOV   AX, COUNT;  塊傳輸字節(jié)數(shù)

  OUT    BYTE_REG, AX

  MOV    AL, DMAC;  DMAC原控制字

  OR     AL,  49H;   塊傳輸允許接收DMA請求,輸入

  OUT    DMACOM,  AL

  MOV   AL,  INTC;  接口電路的原控制字

  OR     AL,  05H;   輸入,啟動操作

  OUT    INTCOM,   AL

  程序?qū)涌陔娐泛虳MAC初始化后,當(dāng)接口準(zhǔn)備就緒,向DMAC請求傳輸,DMAC再向CPU請求總線。當(dāng)DMAC獲得總線控制權(quán)后,按初始化程序規(guī)定的方式執(zhí)行傳輸。傳輸過程本身不需CPU干預(yù)。在DMAC傳輸完成后,發(fā)出結(jié)束信號EOP,CPU可以查詢EOP信號,以便進(jìn)行后續(xù)數(shù)據(jù)處理。或者把EOP信號作為中斷請求信號,CPU在中斷處理程序中進(jìn)行后續(xù)數(shù)據(jù)處理。

 ?。ㄋ模〥MA控制器的工作特點[1]

  1.DMAC是一個接口電路,CPU可以通過其端口地址對DMAC進(jìn)行讀/寫操作,以便對DMAC進(jìn)行初始化或查詢其狀態(tài)。但它與一般的接口電路有顯著的不同,DMAC可以獲得系統(tǒng)總線控制權(quán),當(dāng)其獲得系統(tǒng)總線控制權(quán)后,能提供一系列控制信號,像CPU一樣操縱外設(shè)和內(nèi)存之間的數(shù)據(jù)傳輸。即,DMAC有兩種工作狀態(tài):

  從模塊狀態(tài)(或稱被動態(tài)):作為接口電路,受CPU控制

  主模塊狀態(tài)(或稱主動態(tài)):控制系統(tǒng)總線

  2.DMAC控制內(nèi)存和外設(shè)的數(shù)據(jù)傳輸方式,與CPU的方式完全不同。

  CPU:

 ?、?通過執(zhí)行指令傳輸數(shù)據(jù)。

  ②.被傳輸?shù)臄?shù)據(jù)必須通過CPU累加器(AL/AX)中轉(zhuǎn)。

  DMAC:

 ?、?通過硬件邏輯電路,用固定的順序地址信號和讀/寫信號進(jìn)行數(shù)據(jù)傳輸。

  ②.被傳輸?shù)臄?shù)據(jù)不送入DMAC內(nèi)部中轉(zhuǎn),從“源”讀得的數(shù)據(jù)保存在數(shù)據(jù)總線上,然后立即開始寫操作,將數(shù)據(jù)寫入“目的”。

  正是由于DMAC的上述數(shù)據(jù)傳輸特點,使DMA傳輸可以達(dá)到很高的速度,這也是DMA(Direct Memory Access直接內(nèi)存訪問)的含義。

  四、結(jié)論

  實驗證明,用DMA方式進(jìn)行數(shù)據(jù)傳輸,可以把有限的單片機(jī)資源從煩瑣的數(shù)據(jù)傳輸中解放出來,使之在系統(tǒng)的其他方面發(fā)揮更大的功能。 而用Intel 8237設(shè)計的DMA控制器和外設(shè)的連接電路簡單,成本低廉,具有很高的實用價值。本文所提出的DMA模塊及其接口只要稍作修改,就可以在數(shù)據(jù)采集場合應(yīng)用。


  
關(guān)鍵詞:振動信號采集系統(tǒng)中高速緩存的實現(xiàn)信號采集系統(tǒng)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

生理學(xué)信號采集系統(tǒng)功能設(shè)計講解(血氧、心率、體溫)
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!