當前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化

摘 要: 提出了一種采用基于NiosII處理器的通用AD IP核來實現(xiàn)嵌入式數(shù)據(jù)采集系統(tǒng)的新方案。它能將市面上任意一款A(yù)D芯片制作成IP核并集成到NiosII系統(tǒng)中使用,且整個IP核的控制與運算邏輯由一片F(xiàn)PGA芯片來完成。
關(guān)鍵詞: NiosII 處理器; 模擬數(shù)字轉(zhuǎn)換; 知識產(chǎn)權(quán)核; 數(shù)據(jù)采集系統(tǒng)

隨著電子技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)的需求越來越大、應(yīng)用領(lǐng)域也越來越廣泛。數(shù)據(jù)采集是嵌入式系統(tǒng)不可或缺的組成部分,其性能在某種程度上直接決定了整個系統(tǒng)能否滿足設(shè)計的要求。目前,數(shù)據(jù)采集部分的實現(xiàn)基本上都是利用單片機或者ARM片內(nèi)集成好的AD外設(shè)。這種AD外設(shè)的性能參數(shù)往往都已經(jīng)在片上固化好了(即具有不可更改性),而且與其他片內(nèi)外設(shè)不可分離地組合在了一起,從而使得整個系統(tǒng)的設(shè)計具有很大局限性。加之市面上單片機、ARM的款式型號非常有限,使用者不得不在性能與成本上作出折中的選擇來滿足所設(shè)計系統(tǒng)的要求,由于這種設(shè)計方案是不可更改的,且應(yīng)用范圍小、可移植性差,因此往往無法滿足客戶更高的要求。
Nios II是Altera公司開發(fā)的第二代可進行SOPC設(shè)計的RISC型處理器軟核,具有定制指令、硬件加速、可重配置、低成本和無與倫比的靈活性等特點[1]。基于NiosII處理器的通用AD IP核是一種全新的設(shè)計思路與實現(xiàn)方案,它可以將市面上任意一款A(yù)D芯片制作成IP核并集成到NiosII系統(tǒng)中使用,具有高性能、參數(shù)可配置、可移植、可裁剪等特點,并且具有很高的靈活性、實用性,從而更能滿足設(shè)計的要求。
 本文提出了一種基于NiosII處理器的通用AD IP核來實現(xiàn)嵌入式數(shù)據(jù)采集系統(tǒng)的新方案,在Altera公司的FPGA芯片CycloneII EP2C35F484C8 上完成了硬件驗證,最終應(yīng)用到某數(shù)據(jù)采集系統(tǒng)的設(shè)計中。
1 通用AD IP核的整體構(gòu)架
通用AD IP核是針對所有AD芯片設(shè)計的,它可以將市面上任意一款A(yù)D芯片集成到NiosII系統(tǒng)中使用,其整體構(gòu)架如圖1所示。

整個通用AD IP核主要由4個子模塊組成:AD 控制器模塊、FIR 濾波器模塊、FIFO 緩存模塊和帶Avalon-MM Slave接口的寄存器文件模塊。首先AD控制器控制AD芯片對外界的模擬信號的采集,采集到的數(shù)據(jù)送入FIR濾波器進行數(shù)字濾波,然后將經(jīng)過數(shù)字信號處理后的數(shù)據(jù)存入FIFO緩存中,當FIFO緩存數(shù)據(jù)為滿時,會向NIOSII處理器產(chǎn)生一個中斷,頂層應(yīng)用程序可以通過中斷服務(wù)程序?qū)IFO中的數(shù)據(jù)讀到內(nèi)存中進行處理。帶Avalon-MM Slave接口的寄存器文件模塊提供了所設(shè)計的AD IP核的任務(wù)邏輯與Avalon交換結(jié)構(gòu)交換信息的途徑。有了寄存器文件模塊,NiosII處理器就可以通過Avalon接口采用“基地址+地址偏移量”的方式來訪問AD IP核內(nèi)部的各寄存器[2]。
2 AD IP核各個模塊的設(shè)計與實現(xiàn)
 由于市面上AD芯片的種類和型號非常多,不可能在此一一進行闡述。本設(shè)計以一款常用的典型AD芯片TLC549為例,詳細闡述針對這款A(yù)D芯片的IP核的各個模塊的設(shè)計與實現(xiàn)。
2.1 AD控制器模塊的設(shè)計
 本系統(tǒng)采用AD轉(zhuǎn)換芯片TLC549,它是TI公司生產(chǎn)的一種低價位、高性能的8位A/D轉(zhuǎn)換器,它能方便地采用三線串行接口方式與各種微處理器連接,構(gòu)成各種廉價的測控應(yīng)用系統(tǒng)[3]。
本文利用有限狀態(tài)機的方法采用Verilog HDL硬件描述語言設(shè)計了一個TLC549控制器,從而完成了對TLC549 AD芯片的時序控制,它的狀態(tài)轉(zhuǎn)移圖如圖2所示。


由圖2可以看出,狀態(tài)機一開始處于idle狀態(tài)。在下一個clk時鐘周期上升沿時刻進入cs_low狀態(tài),在cs_low狀態(tài)將cs輸出引腳拉低并延時2 μs。當2 μs延時完成時,狀態(tài)機進入sclk_low狀態(tài),在sclk_low狀態(tài)將sclk輸出引腳拉低并延時0.5 μs。當0.5 μs延時完成時,狀態(tài)機進入sclk_high狀態(tài),在sclk_high狀態(tài)將sclk輸出引腳拉高并延時0.5 μs,同時讀取串行數(shù)據(jù)線miso上的AD采樣值并將其存入移位寄存器中。當0.5 μs延時完成時,進入finish狀態(tài),在該狀態(tài)狀態(tài)機對已經(jīng)接收到的串行數(shù)據(jù)位數(shù)進行判斷,如果小于8說明串行數(shù)據(jù)還沒有接收完畢,加1并進入sclk_low狀態(tài);如果等于8說明8位AD采樣值已經(jīng)接收完畢,進入delay狀態(tài)。在delay狀態(tài)將延時30μs,當30 μs延時完成時將進入load狀態(tài)。在load狀態(tài),狀態(tài)機在data_ready輸出引腳上拉高一個clk時鐘周期并在data[7..0]引腳上輸出接收到的8位采樣數(shù)據(jù)。在下一個clk時鐘周期上升沿狀態(tài)機將自動進入idle狀態(tài),以進行下一次AD數(shù)據(jù)采集。由此周而復始不斷循環(huán)從而完成通過TLC549 AD芯片實現(xiàn)對外界模擬信號的實時采集。
本文采用Quartus 軟件集成的Signal Tap II 嵌入式邏輯分析儀軟件對TLC549控制器模塊進行硬件仿真,波形如圖3所示。

由圖3可以看出,在cs、sclk和miso信號的時序配合下,data信號線上輸出穩(wěn)定的8位AD采樣數(shù)據(jù),經(jīng)過數(shù)字量到模擬量的轉(zhuǎn)換發(fā)現(xiàn)與外界輸入模擬值一致,從而完成了TLC549控制器模塊的驗證。
AD控制器模塊是針對某一款具體的AD芯片而設(shè)計的,如果選用不同款式的AD芯片,則需要參考該芯片的芯片手冊設(shè)計針對該款A(yù)D芯片的AD 控制器模塊。
2.2 FIR濾波器模塊的設(shè)計
 在實際應(yīng)用的數(shù)據(jù)采集系統(tǒng)中,往往需要對外界模擬輸入信號進行濾波,以提取信號中有用的信息。在本設(shè)計中這部分的功能是由FIR濾波器模塊來完成的。FIR濾波器模塊采用Altera公司提供的FIR IP核來實現(xiàn),通過Simulink軟件中的DSP Builder工具對其進行仿真并最終可以生成底層HDL代碼。由于TLC549的最高采樣頻率為40 kHz,本文設(shè)計了一個低通濾波器,它的采樣頻率為40 kHz,3 dB截止頻率為100 Hz。在Simulink軟件中建立的FIR IP核的仿真模型如圖4所示。


圖4中nco_v8_0模塊和nco_v8_1模塊是2個數(shù)控振蕩器,分別用于產(chǎn)生100 Hz和1 kHz的正弦信號,signal add模塊是并行加法器,它將兩路正弦信號進行疊加并將和信號輸出。fir_compiler_v8_0模塊是FIR IP核,它將signal add模塊輸出的和信號作為輸入,并將數(shù)字濾波的結(jié)果輸出到示波器進行顯示。仿真結(jié)果如圖5和圖6所示。
由圖5可以看出:第1路是頻率為100 Hz的正弦信號,第2路是頻率為1 kHz的正弦信號,第3路是前兩路信號的疊加。圖6中顯示的是經(jīng)過數(shù)字濾波后的波形,可以看出只有100 Hz的頻率分量存在,1 kHz的信號被濾除了,從而完成了對FIR IP核的功能驗證。通過圖4中的Signal Compiler工具可以完成該FIR IP核的底層HDL代碼的生成。

FIR濾波器模塊采用Altera公司提供的FIR IP核來實現(xiàn),具有高性能、可配置、可重用等特點。設(shè)計者只需根據(jù)整個系統(tǒng)的需求以及所選用AD芯片的采樣速率等參數(shù)確定濾波器的類型與系數(shù),并對該IP核進行參數(shù)化、實例化,即可完成針對該款A(yù)D芯片的FIR濾波器模塊的設(shè)計。因此這部分的設(shè)計對于不同的AD芯片是相對獨立的,具有很好的通用性。
2.3 FIFO緩存模塊的設(shè)計
 為了連續(xù)和正確地采集數(shù)據(jù),實現(xiàn)無縫緩沖,本設(shè)計利用了FIFO做數(shù)據(jù)緩存。由于TLC549是8位的AD芯片,故本設(shè)計采用1個512×8 bit 的FIFO來存儲采樣的數(shù)據(jù)。當FIFO中的數(shù)據(jù)存滿時,它會向Nios II CPU產(chǎn)生一個中斷信號。頂層應(yīng)用程序可以通過中斷服務(wù)程序?qū)IFO中的數(shù)據(jù)讀到內(nèi)存中進行處理。這樣既不會造成數(shù)據(jù)的丟失,同時可以保證CPU較高的效率,很好地解決了上述的速度不匹配的問題。
FIFO緩存模塊的設(shè)計對于不同的AD芯片是相對獨立的,設(shè)計者只需根據(jù)所選用AD芯片的精度、采樣速率、時鐘速率等參數(shù)確定FIFO緩存的位寬和深度,并對FIFO進行參數(shù)化、實例化,即可完成針對該款A(yù)D芯片的FIFO緩存模塊的設(shè)計,因此具有很好的通用性。
2.4 帶Avalon-MM Slave接口的寄存器文件模塊的設(shè)計
 本文設(shè)計的帶Avalon-MM Slave接口[4]的寄存器文件模塊是具有Avalon-MM Slave 從端口的外設(shè)。它內(nèi)部共有2個8位寄存器,具體結(jié)構(gòu)和功能如表1所示。NiosII處理器可以通過Avalon接口采用“基地址+地址偏移量”的方式來訪問這2個寄存器,從而實現(xiàn)對AD IP核的控制以及AD采樣數(shù)據(jù)的讀取。


對于一些比較復雜的AD芯片(如AD73360),往往需要對其寫控制字、讀狀態(tài)字,這就需要增加寄存器文件模塊中的寄存器個數(shù)來完成相應(yīng)的邏輯功能。Avalon接口采用“基地址+地址偏移量”的方式來訪問寄存器,這樣就可以簡單地通過增加地址線的位數(shù)并進行譯碼來實現(xiàn),因此對于各種復雜的AD芯片具有很好的可擴展性和適用性。
3 整個IP核在NiosII系統(tǒng)中的硬件測試
本設(shè)計采用Verilog HDL語言建立了一個頂層文件tlc549_adc_ip.v,通過對AD控制器模塊、FIR濾波器模塊、FIFO緩存模塊和帶Avalon-MM Slave接口的寄存器文件模塊進行實例化與互連,最終完成了整個IP核的設(shè)計,它的模塊圖如圖7所示。


本文采用C++語言做了一個基于NiosII處理器的頂層應(yīng)用測試程序,利用描點法將不斷采集到的AD數(shù)據(jù)繪制成波形顯示出來,從而完成對整個IP核的硬件功能測試。測試過程中,在AD芯片的模擬輸入端輸入一個由1 kHz正弦信號和100 Hz的正弦信號疊加而成的混合信號,整個系統(tǒng)的運行結(jié)果顯示在NiosII IDE軟件的Console控制臺中,如圖8所示。

通過對圖8中的正弦波形以及采樣到的數(shù)據(jù)進行分析與計算可知,采集到的信號頻率是100 Hz,信號的幅度與外界的模擬輸入信號完全一致,從而驗證了整個IP核的功能正確性。整個IP核使用5 275個LE,占總數(shù)的15.8%,4 096個存儲單元,占總數(shù)的0.8%。系統(tǒng)的主頻能達到199.64 MHz。
 為了驗證AD IP核的通用性與適用性,本文還針對另外兩款A(yù)D芯片(AD7476和AD73360)進行了IP核制作與測試,且測試信號與TLC549 IP核的測試信號完全相同。
 AD7476 IP核采用了上述通用AD IP核的設(shè)計方法,它的AD控制器模塊是針對AD7476這款 12位串行AD芯片而設(shè)計的。FIR濾波器模塊的參數(shù)與TLC549 IP核中的FIR濾波器參數(shù)相同,只是輸入數(shù)據(jù)的位寬設(shè)置為12位。由于AD7476芯片的采樣速率比較快,所以FIFO 緩存模塊的深度設(shè)置為1 024,位寬設(shè)置為12位,這樣可以使NiosII CPU的效率更高。
 AD73360 IP核同樣也采用了上述通用AD IP核的設(shè)計方法,它的AD控制器模塊是針對6路16位串行AD芯片AD73360設(shè)計的。它的FIR 濾波器模塊的參數(shù)和FIFO 緩存模塊的參數(shù)與TLC549中的相應(yīng)參數(shù)設(shè)置相同,只是把位寬設(shè)置為16位。由于控制的過程中需要對AD73360芯片內(nèi)部的寄存器進行讀寫,所以在寄存器文件模塊中增加了兩個寄存器(1個讀狀態(tài)字寄存器,1個寫控制字寄存器),從而完成對AD73360芯片內(nèi)部控制與狀態(tài)寄存器的讀寫。
 這兩款A(yù)D IP核與TLC549 IP核的比較如表2所示。由表2可以看出,本文提出的基于NiosII處理器的通用AD IP核對于不同精度、不同采樣速率、不同時鐘速率、不同通道數(shù)的AD芯片都適用,并且具有較高的性能和靈活性。在實際應(yīng)用中,如果對該IP核所占用的資源數(shù)有一定的限制,可以自行編寫FIR濾波器模塊,這樣能大大降低IP核所占用的資源數(shù),從而實現(xiàn)整個IP核的性能與資源之間的平衡。


參考文獻
[1] Altera Corp. NiosII處理器參考手冊,2008.
[2] 李蘭英. NiosⅡ嵌入式軟核SOPC設(shè)計原理及應(yīng)用. 北京:北京航空航天大學出版社,2006.
[3] TI Inc. TLC549 datasheet.1996.
[4] Altera Corp. AVALON總線接口規(guī)范使用手冊,2008.

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉