基于USB接口的水量數(shù)據(jù)采集系統(tǒng)的設(shè)計與實(shí)現(xiàn)
圖3 AN2135SC與FPCA接口示意圖
3.3 FPGA的獨(dú)特配置方案
FPGA芯片是一種基于SRAM工藝制作的可編程器件,其編程數(shù)據(jù)存儲于器件的SRAM存儲器內(nèi)。這是一種易失性的存儲器,在系統(tǒng)掉電時,F(xiàn)PGA芯片中的邏輯將會丟失,芯片功能隨即消失,上電后需要重新對其進(jìn)行配置。利用此功能可以靈活地改變FPGA芯片中的邏輯結(jié)構(gòu)。這是一種動態(tài)配置過程,這種方式稱為ICR方式(in circuit reconfigurable)。
本系統(tǒng)中對FPGA的配置采用PS(passive serial,即被動串行)方式。通常采用的是以下兩種配置方法:配置數(shù)據(jù)來自于ALTERA公司生產(chǎn)的串行配制器件或系統(tǒng)控制器,如 等,系統(tǒng)上電時可對ACEX1K系列芯片進(jìn)行配置;配置邏輯也可以通過ALTERA公司生產(chǎn)的Master Blaster、Byte Blaster MV或Bitblaster下載電纜進(jìn)行手工下載。但是前者會增加系統(tǒng)的成本,而后者又很不方便。
上面的程序給出了這一次讀過程中讀地址指針的變化情況。隨著讀地址指針的變化,緩沖器中的數(shù)據(jù)順次輸出到數(shù)據(jù)總線D[7…0>上去。程序中 …0>為緩沖器的讀地址指針, …0>是緩沖器的輸出端口, … 是 芯片的數(shù)據(jù)總線 … 。
3.5 功能的實(shí)現(xiàn)
在 芯片與 芯片進(jìn)行數(shù)據(jù)傳輸?shù)耐瑫r,雙方需要一些握手信號來協(xié)調(diào)傳輸過程。為此,我們選擇了 芯片中的 總線主控制器作為 端口,用來傳輸一些必要的控制和狀態(tài)信息。
為了與 芯片中的 總線主控制器配合工作,我們在 芯片中編寫了一個 總線從模塊,使得 總線上的數(shù)據(jù)傳輸能夠順利進(jìn)行。根據(jù) 總線傳輸規(guī)范,我們設(shè)定了一個狀態(tài)機(jī) ,它共有如下7個狀態(tài): 。圖6給出了此狀態(tài)機(jī)的狀態(tài)圖。
圖6 總線狀態(tài)機(jī)流程圖
由圖6可以看出,在開始條件( 產(chǎn)生后, 由空閑( 狀態(tài)進(jìn)入地址狀態(tài)( 。我們在 中指定了兩個寄存器用于存儲從 總線上發(fā)送來的控制信號和將要發(fā)送到 總線上的狀態(tài)信號,它們分別是控制寄存器 ‥0 和狀態(tài)寄存器 ‥0 ,這兩個寄存器地址的高4位均為“1110“。同樣,我們可以把1 芯片中所有由 總線尋址的寄存器的高4位地址都設(shè)定為“1110”。如圖6所示, 總線在地址期內(nèi)發(fā)送的高位地址只有為“1110”時,1 才會產(chǎn)生響應(yīng)。這樣做的好處是便于擴(kuò)充其它 總線設(shè)備。
總線在地址期內(nèi)發(fā)送的最低地址用于指定隨后的數(shù)據(jù)傳輸是主要設(shè)備讀還是主設(shè)備寫,高電平表示主設(shè)備讀,低電平表示主設(shè)備寫。讀寫狀態(tài)轉(zhuǎn)換如圖6所示。因此,8位地址中可以用作尋址 端口的地址位為 ‥ 。
4 結(jié)束語
本文介紹了數(shù)據(jù)通信解決方案中數(shù)據(jù)傳輸通道和 功能的實(shí)現(xiàn)。實(shí)驗(yàn)證明,兩個模塊配合工作即可實(shí)現(xiàn)數(shù)據(jù)的正常傳輸,從而順利地將 轉(zhuǎn)換器的輸出信號經(jīng) 總線傳送到上位機(jī)去。這個解決方案基于 總線設(shè)計并且結(jié)合 來進(jìn)行控制,充分利用了 總線數(shù)據(jù)傳輸速率高、 設(shè)備可熱插撥等功能和 速度快、效率高、配置靈活的特點(diǎn)。經(jīng)實(shí)踐證明,它是一個功能完備、高效穩(wěn)定的解決方案。
評論