基于VerilogHDL語言的FIR數(shù)字濾波器設計與實現(xiàn)
FAT格式磁盤的邏輯分區(qū)依次為:引導扇區(qū)、文件分配表(FAT1和FAT2)、文件目錄區(qū)(FDT)和數(shù)據(jù)區(qū)[6]。引導扇區(qū)用于存儲引導程序和磁盤信息,外界訪問CF卡都要經(jīng)過引導區(qū)的識別驗證;FAT是給每個文件分配磁盤物理空間的表格,數(shù)據(jù)區(qū)的劃分單元為簇,一個簇包括64個扇區(qū),F(xiàn)AT表正是為每個文件構(gòu)造一個簇鏈表;文件目錄區(qū)是尋找文件的入口,其內(nèi)容是每個文件的目錄信息;在文件目錄之后的扇區(qū)都是以簇為單位進行數(shù)據(jù)存儲,這就是數(shù)據(jù)區(qū)。
CF卡與89C54接口配置關系如圖3所示,單片機使用TrueIDE模式對CF卡進行讀寫,采用邏輯塊LAB(Logical Block Addressing)方式進行尋址。
CF卡寫一個扇區(qū)(讀扇區(qū)基本相似,限于篇幅不列出)的代碼如下:
Write_Sectors: mov R2,#1 ;一次寫一個扇區(qū)
mov R3,#0Ah;假設 LBA為000000Ah
mov R4,#0
mov R5,#0
mov R6, #0
mov R7, #WriteSctr
acall Function;將參數(shù)寫入CF控制寄存器
acall WaitDRQ ;等待數(shù)據(jù)請求
acall Write512
ret
Write512:mov R0,#high(data);取數(shù)據(jù)高地址
mov R1,#low(data); 取數(shù)據(jù)低地址
mov R7,#2 ;512 B= 2 * 256
mov R6,#0 ;256 B
write: mov dph,R0;獲取地址
mov dpl, R1
clr a
movc a, @a+dptr ;獲取一個數(shù)據(jù)
inc dptr ;指向下一個數(shù)據(jù)
mov R0, dph ;保存地址
mov R1, dpl
mov DPTR,#Data_Reg;到CF數(shù)據(jù)寄存器
movx @dptr, a ;向CF卡寫一個數(shù)據(jù)
djnz R6, write
djnz R7, write ;將512 B的數(shù)據(jù)全部寫入CF卡
ret
遠程動態(tài)重構(gòu)的流程如圖4所示?,F(xiàn)場TC35接收到新短信數(shù)據(jù)時會有觸發(fā)信號發(fā)送給89C54單片機,單片機開始讀取TC35Flash數(shù)據(jù)。在對CF卡進行寫操作之前,首先要讀取reserved.bit文件的首簇號;讀取CF卡文件目錄表FDT,得到reserved.bit的信息,其中偏移地址為1Ah~1Bh,所存儲的2 B為文件首簇號,而接下來4 B代表文件大小。由文件首簇號在FAT表中找到文件入口,然后跟蹤簇鏈至簇尾(0XFFFF),按照LAB尋址方式將數(shù)據(jù)按扇區(qū)寫入CF卡數(shù)據(jù)區(qū),邏輯扇區(qū)號LBA可由簇號按公式“LBA=(簇號-2)×64+513”計算得到。如果文件數(shù)據(jù)量比舊文件多,則在FAT中增加鏈表,直至把數(shù)據(jù)存儲完畢;如果文件較小,則將原文件剩余FAT簇鏈都寫入0x0000,以釋放空間。對CF卡的寫操作則不對其他區(qū)域進行更改。
CF卡數(shù)據(jù)更新完畢后,接通CF卡與SystemACE控制器之間的多路復用器,對控制算法重構(gòu)區(qū)進行局部動態(tài)配置,配置過程中不對其他邏輯區(qū)域的運行造成影響。
遠程動態(tài)重構(gòu)結(jié)合了FPGA局部動態(tài)重構(gòu)和GSM無線數(shù)據(jù)傳輸?shù)膬?yōu)勢,對用在野外勘測的機器人和數(shù)據(jù)采集處理系統(tǒng)有很高的應用價值,允許設計人員根據(jù)系統(tǒng)運作情況實時地改變機器人的控制算法或數(shù)據(jù)處理算法,使其更加適合工作環(huán)境,既方便了設計人員對遠程設備的配置升級,又節(jié)省了大量人力物力。今后該方案將計算機與FPGA硬件平臺連接,可以為硬件的外部進化遠程下載染色體到硬件平臺提供有效途徑。
電源濾波器相關文章:電源濾波器原理
數(shù)字濾波器相關文章:數(shù)字濾波器原理
評論