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