【正文】
擦除模塊程序流程多通道同步數據采集后, 數據以一定的幀格式寫入Flash。 調試中遇到的問題通道選擇電路的調試。該部分的調試主要看A/D轉換后的數字量對應的模擬量的大小是否與輸入的模擬量相同。當上述輔助電路完成后,開始使用示波器逐個觀察其輸出的控制信號是否與仿真時序一致。 附錄A 系統(tǒng)原理圖附錄B 系統(tǒng)PCB版圖附錄C 系統(tǒng)VHDL程序模擬量采集library IEEE。entity advhd isport(glrn : in std_logic。 wrfifo : out std_logic。 channela7 : out std_logic。 data : in std_logic_vector(15 downto 0) )。 signal mark : std_logic_vector(3 downto 0)。 signal d_channela1 : std_logic。 begin f_data=data。039。 elsif fosc 39。 else count=count+1。produce AD start p2: process(fosc, glrn) begin if glrn=39。 elsif fosc 39。039。 end if。 channela6=d_channela6。039。 d_channela6=39。 d_channela8=39。139。039。039。039。039。 elsif d_channela1=39。 and d_channela7=39。 then if d_channel1111 then d_channel=d_channel+1。 d_channela6=39。 d_channela8=39。039。139。 elsif d_channel=1111 then d_channel=0000。039。139。 and d_channela6=39。 and d_channela8=39。 d_channela1=39。 d_channela7=39。 end if。 end process p3。 elsif fosc 39。 elsif count=80 then fifod(7 downto 4)=f_data(3 downto 0)。 end if。 then d_wrfifo=39。139。039。 end if。 then d_addra=0000000000 。 then if count=46 then d_addra=d_addra+1。 end process p7。use 。 sen : out std_logic。139。039。139。039。139。039。end process。這里有治學嚴謹而不失親切的老師,有互相幫助的同學,更有向上、融洽的學習生活氛圍,也正是通過做畢業(yè)設計使我學到了許多新的知識,把理論學以致用。特別感謝鄭燕璐師兄,本設計是在鄭燕璐師兄的悉心指導下完成的,在這段時間里,我從他身上不僅學到了許多的專業(yè)知識,更感受到了他在工作中的兢兢業(yè)業(yè),生活中的平易近人,他嚴謹的治學態(tài)度和忘我的工作精神值得我去學習。感謝答辯委員會各位委員及評閱人的細心審閱。正是他們耐心的幫助,使我解決了許多實際問題,有了很大收獲。首先衷心感謝指導老師張會新老師。參 考 文 獻[l] 電子工業(yè)出版社,2008[2] ,2007,1[3] (FPGA),2006,6[4] 馬明建.數據采集與處理技術.西安:西安交通大學出版社,2005[5] [M].北京:高等教育出版社,2002[6] 李超,王虹現, 存儲系統(tǒng)設計[J].,36:12[7] [J]., 29(3):12[8] 劉文怡,張彥軍,[J].電測與儀表. 2008, 45(505):13[9] [D].太原:中北大學碩士學位論文,2006[10] [J]., 23(11):1[11][12].[13]ADS8402 SLAS154B – DECEMBER 2002 – REVISED MAY 2003[14] [15]秦麗,何慧珠,.致 謝 尊敬的老師,親愛的同學們,再過幾天就要離開陪伴我們四年時光的校園,走向社會。039。039。039。039。039。039。end kaiguan。ENTITY kaiguan IS PORT( s : in std_logic_vector(2 downto 0)??刂崎_關library IEEE。 end if。 event and fosc=39。write fifo data p7: process(fosc, glrn) begin if glrn=39。139。039。 elsif fosc 39。write fifo data p6: process(fosc, glrn) begin if glrn=39。 mark=mark+1。139。039。 end if。 d_channela8=39。 d_channela6=39。 then if d_channel1111 then d_channel=d_channel+1。 and d_channela7=39。 elsif d_channela1=39。039。039。039。039。 end if。 d_channela7=39。 d_channela1=39。 and d_channela8=39。 and d_channela6=39。039。139。 elsif d_channel=1111 then d_channel=0000。039。139。 elsif fosc 39。 d_channela7=39。 d_channela1=39。 channela8=d_channela8。produce channel convert channel=d_channel。139。139。 then clk=39。 end if。139。139。 wrfifo=d_wrfifo。 signal d_channela7 : std_logic。 signal d_addra : std_logic_vector(9 downto 0)。architecture Behavioral of advhd is signal count : std_logic_vector(6 downto 0)。 addra : out std_logic_vector(9 downto 0)。 channela1 : out std_logic。 start : in std_logic。use 。首先介紹了數據采集系統(tǒng)的特點及發(fā)展情況,并根據課題的實際要求提出了總體設計方案和原理框圖;接著按照整體結構圖,設計每一部分的硬件電路圖,再用VHDL程序進行軟件設計并仿真;最后通過對實物的調試得出結論:該系統(tǒng)能對采樣16路模擬信號。控制模塊的調試。對于不同采樣頻率的信號看開關的波形是否符合設計要求。如果壞塊標志是非0XFF 時,該塊是壞塊則跳過,繼續(xù)檢測下一塊;如果壞塊標志是0XFF 時,則讀取FIFO 中的數據,寫入Flash 中。 FLASH的擦除問題在調試中遇到的主要問題還有:當系統(tǒng)上電后,FPGA 主控模塊首先對Flash 進行擦除操作。為使輸入A/D的信號相對穩(wěn)定,在分壓電路的前后各設置一個電壓跟隨電路。其次,對于16路緩變信號,, ,共16路。然后輸入模擬開關經過跟隨器后,再輸入A/D轉換器。相關時序圖如下: FLASH擦除操作時序圖在本系統(tǒng)中,采用FLASH來進行數據的存儲。這時并口可直接對FLASH 的控制線和數據線進行操作。 FLASH寫操作時序圖 數據讀取數據的讀取有很多種方法, 目前有串口、并口、USB 口或PCI 總線方式讀取。由于FLASH是按頁存儲的, 當一頁寫完之后要進行下一頁的控制字和地址的重新寫入, 為了使采集回來的數據能及時準確的寫入FLASH, 而不至于在頁與頁的交替時間內使數據丟失, 所以不可能將采集回的數據直接存入FLASH, 我們利用FPGA 內部提供的RAM來構成雙端口RAM作為數據存儲過程中的緩存, 采集回來的數據先寫入雙端口RAM, 然后再導入FLASH。根據此種要求我們設計實現了多路采集存儲器, 此種存儲其使用FPGA 和FLASH 存儲器。本模塊能連續(xù)運行,不斷地寫入命令字以啟動A/D轉換,然后讀出A/D轉換結果并將其輸出。當采集某一通道的模擬量時,A/D需要完成的主要功能有轉換和向FPGA傳送轉換后的數字量。3 系統(tǒng)軟件設計 數據編幀 幀格式S0S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S0S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S0S1S2S3S4S5S6S7S8S9