時頻參數(shù)測量中存儲容量的壓縮方法
發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):530
     黃摯雄 來源:《電子技術應用》
     摘要:介紹一種單片機測量時頻參數(shù)時的數(shù)據(jù)處理方法,即線性地址變換法。在存儲容量有效壓縮的基礎上,進一步分析采樣數(shù)據(jù),用軟件實現(xiàn)可控時標,保證測量精度。
    
    
     關鍵詞:測量
     頻率 周期 單片機 存儲容量
     在智能儀表、網(wǎng)絡通訊、過程控制等測控系統(tǒng)應用中,經常需要對脈沖信號的頻率(或周期)進行精確測量。常用的方法是被測信號作為閘門信號,而且一個標準頻率信號作為填充脈沖,在閘門周期內對標準頻率信號計數(shù),如何壓縮數(shù)據(jù)存儲量,是本文要解決的主要問題。
     1
     基于單片機系統(tǒng)的時頻參數(shù)測量
     當采用單片機微處理器測量信號頻率(周期)時,定時器t0工作在計數(shù)方式,定時器t1工作在定時方式,t1向外部發(fā)固定頻率的脈沖(時標),t0對時標進行計數(shù)。被測脈沖信號產生一個外部中斷控制信號,向cpu發(fā)出一個中斷請求,cpu響應中斷,在中斷服務程序中把t0的計數(shù)值讀入數(shù)據(jù)存儲器,數(shù)據(jù)轉移完成后,使t0復位,重新計數(shù),開始新的周期測量,其測量原理如圖2所示。
    
     2 線性地址變換
     單片機把計數(shù)值讀入存儲器,是把每一個測出的周期值ti按其時間先后順序存入存儲器中。這樣,測量出的每一個ti無論是否相同都要用一個單元來存放,且隨著被測信號的平均頻率和測量時間t的增長,所需要的存儲容量就會增加,即:
     存儲容量 m=f·t
     如被測信號平均頻率f=10khz,則1秒的約需存儲容量10kb,10秒約需存儲容量100kb。顯然,單片機內ram是不能滿足要求的。即使擴充外存,也不宜太大,會有一定的限制。
     但實際上,所測出的ti中,有相當多是相同的。如果把相同的ti值用一個單元來存放,則可大大壓縮存儲容量。為此,可采用線性變換的方法,把每個ti按(1)式轉換為單元地址值,并將其內容加1,表示已有一個該ti值。最后該單元的內容ni就表示測量中共有ni個相同的ti值出現(xiàn)。
     存儲地址=起始地址+kti
     (1)
     式中:起始地址——對應于ti=0的存儲單元地址,根據(jù)所選單片機型號任意設定。
    
    
    
     k——變換比,表示出現(xiàn)ti值的個數(shù)ni用k個字節(jié)來存放。
     k=1,表示ti對應的ni值用2個字節(jié)存放。
     這樣:
     存儲容量m=存儲地址最大值-起始地址值=ktimax
     (2)
     因此,使用線性地址變換時,存儲容量由測量的最大周期timax決定。且當采用計數(shù)方式測ti值時,若計數(shù)時標周期為tc,則計數(shù)器測得的ti值實際上是ti所包含的tc個數(shù)。這樣,存儲容量可改寫為:
     存儲容量m=timax/tc (設k=1)
     (3)
     若規(guī)定測量的timax=10ms,當設置tc=4μs時,m=2.5kb;若要進一步壓縮存儲容量,可增大tc,如當tc=8μs時,m1.25mb,從而可滿足有限存儲容量的要求。
     單片機進行線性地址變換時,用定時器計數(shù)方法測量每一個ti值,然后用中斷服務子程序按(1)式進行地址變換,把ti值轉換為地址單元號,并使該單元內容加1。如把一次采樣規(guī)定為測n個ti值,則當把n個ti采樣完后,在存儲器從起始地址開始的單元內就直接存放了如圖3所示的反映被測脈沖頻率波動情況的周期概率分布曲線。圖3中ni為一次采樣的n個脈沖周期中出現(xiàn)周期為ti的次數(shù),nmax為ni中的最大值,tnmax為對
     黃摯雄 來源:《電子技術應用》
     摘要:介紹一種單片機測量時頻參數(shù)時的數(shù)據(jù)處理方法,即線性地址變換法。在存儲容量有效壓縮的基礎上,進一步分析采樣數(shù)據(jù),用軟件實現(xiàn)可控時標,保證測量精度。
    
    
     關鍵詞:測量
     頻率 周期 單片機 存儲容量
     在智能儀表、網(wǎng)絡通訊、過程控制等測控系統(tǒng)應用中,經常需要對脈沖信號的頻率(或周期)進行精確測量。常用的方法是被測信號作為閘門信號,而且一個標準頻率信號作為填充脈沖,在閘門周期內對標準頻率信號計數(shù),如何壓縮數(shù)據(jù)存儲量,是本文要解決的主要問題。
     1
     基于單片機系統(tǒng)的時頻參數(shù)測量
     當采用單片機微處理器測量信號頻率(周期)時,定時器t0工作在計數(shù)方式,定時器t1工作在定時方式,t1向外部發(fā)固定頻率的脈沖(時標),t0對時標進行計數(shù)。被測脈沖信號產生一個外部中斷控制信號,向cpu發(fā)出一個中斷請求,cpu響應中斷,在中斷服務程序中把t0的計數(shù)值讀入數(shù)據(jù)存儲器,數(shù)據(jù)轉移完成后,使t0復位,重新計數(shù),開始新的周期測量,其測量原理如圖2所示。
    
     2 線性地址變換
     單片機把計數(shù)值讀入存儲器,是把每一個測出的周期值ti按其時間先后順序存入存儲器中。這樣,測量出的每一個ti無論是否相同都要用一個單元來存放,且隨著被測信號的平均頻率和測量時間t的增長,所需要的存儲容量就會增加,即:
     存儲容量 m=f·t
     如被測信號平均頻率f=10khz,則1秒的約需存儲容量10kb,10秒約需存儲容量100kb。顯然,單片機內ram是不能滿足要求的。即使擴充外存,也不宜太大,會有一定的限制。
     但實際上,所測出的ti中,有相當多是相同的。如果把相同的ti值用一個單元來存放,則可大大壓縮存儲容量。為此,可采用線性變換的方法,把每個ti按(1)式轉換為單元地址值,并將其內容加1,表示已有一個該ti值。最后該單元的內容ni就表示測量中共有ni個相同的ti值出現(xiàn)。
     存儲地址=起始地址+kti
     (1)
     式中:起始地址——對應于ti=0的存儲單元地址,根據(jù)所選單片機型號任意設定。
    
    
    
     k——變換比,表示出現(xiàn)ti值的個數(shù)ni用k個字節(jié)來存放。
     k=1,表示ti對應的ni值用2個字節(jié)存放。
     這樣:
     存儲容量m=存儲地址最大值-起始地址值=ktimax
     (2)
     因此,使用線性地址變換時,存儲容量由測量的最大周期timax決定。且當采用計數(shù)方式測ti值時,若計數(shù)時標周期為tc,則計數(shù)器測得的ti值實際上是ti所包含的tc個數(shù)。這樣,存儲容量可改寫為:
     存儲容量m=timax/tc (設k=1)
     (3)
     若規(guī)定測量的timax=10ms,當設置tc=4μs時,m=2.5kb;若要進一步壓縮存儲容量,可增大tc,如當tc=8μs時,m1.25mb,從而可滿足有限存儲容量的要求。
     單片機進行線性地址變換時,用定時器計數(shù)方法測量每一個ti值,然后用中斷服務子程序按(1)式進行地址變換,把ti值轉換為地址單元號,并使該單元內容加1。如把一次采樣規(guī)定為測n個ti值,則當把n個ti采樣完后,在存儲器從起始地址開始的單元內就直接存放了如圖3所示的反映被測脈沖頻率波動情況的周期概率分布曲線。圖3中ni為一次采樣的n個脈沖周期中出現(xiàn)周期為ti的次數(shù),nmax為ni中的最大值,tnmax為對