一種基于FPGA核系統的智能429-422信號轉換模塊的設計
一種智能信號轉換模塊的設計方法。這種智能模塊采用了基于FPGA嵌入式軟核系統,是基于NiosII軟核處理器的架構,可以在模塊上完全實(shí)現外部總線(xiàn)信號之間相互轉換,無(wú)需驅動(dòng)程序或操作系統的干預。同時(shí)對用戶(hù)邏輯設計、用戶(hù)邏輯集成、固件設計技術(shù)等內容進(jìn)行了詳細的介紹。
0 引言
在工業(yè)控制等領(lǐng)域的計算機系統中廣泛涉及到信號轉換等,信號轉換模塊在系統中承擔著(zhù)在多種信號之間進(jìn)行翻譯轉換的任務(wù)。隨著(zhù)應用環(huán)境復雜性、計算機系統集成度的提高,信號轉換模塊上需容納的信號通道的種類(lèi)與數量也越來(lái)越多。頻繁、大量的信號轉換必然會(huì )占用較多的系統資源。隨著(zhù)微電子技術(shù)的發(fā)展,國外的一些生產(chǎn)廠(chǎng)商如Altera已推出在FPGA上以軟核(soft core)方式實(shí)現的嵌入式系統。這種嵌入式系統基于NIOS II嵌入式軟核處理器,其外設可以靈活選擇增刪,并允許自定制外設。本文介紹了一種基于NIOSⅡ軟核系統的智能429-422信號轉換模塊的設計。
1 設計原理
傳統的非智能設計的轉換模塊,在工作時(shí)需要有驅動(dòng)程序的控制,通過(guò)與操作系統或用戶(hù)軟件的交互,來(lái)實(shí)現信號轉換的功能,亦即需要接入PCI Bus等系統總線(xiàn),通過(guò)中斷提請等方式工作,在轉換通道數量多時(shí),必然會(huì )影響系統的性能。采用智能設計的信號轉換模塊一般不需要操作系統的干預,接收到的外部總線(xiàn)信號經(jīng)過(guò)本模塊上NIOS II軟核系統轉換后,即可將數據信號輸出。信號轉換的工作全部由模塊的硬件完成,因而可以實(shí)現對整個(gè)計算機系統資源的零占用。采用非智能設計與智能設計模塊的結構示意框圖如圖1所示。
2 硬件設計
429或422總線(xiàn)適配電路已有大量成熟的設計,本文不再贅述,僅重點(diǎn)介紹FPGA內部總線(xiàn)控制邏輯設計以及NiosⅡ軟核系統的配置。
2.1 FPGA控制邏輯設計
集成于FAPGA內部的Nios II CPU需要通過(guò)外部總線(xiàn)控制邏輯才能與外部總線(xiàn)進(jìn)行通信,而Avalon總線(xiàn)是Nios II CPU與外部總線(xiàn)控制邏輯、片外FLASH、SRAM之間交換數據信號的樞紐。Avalon總線(xiàn)是一種協(xié)議較為簡(jiǎn)單的片內總線(xiàn),在NiosⅡ系統中,外設都是通過(guò)Avalon總線(xiàn)與Nios II CPU相接的。Avalon總線(xiàn)接口可以分成兩類(lèi):Slave和Master,Slave和Master主要區別是對于A(yíng)valon總線(xiàn)控制權的掌握。Master接口具有與之相接的Avalon總線(xiàn)的控制權,而Slave接口是被動(dòng)的。Avalon總線(xiàn)支持自定制外設,用戶(hù)可將自己的邏輯設計掛接到Avalon總線(xiàn)上?;贜IOSⅡ軟核系統的智能429-422信號轉換模塊設計的詳細系統結構框圖如圖2所示。
2.1.1 串行總線(xiàn)控制邏輯設計
為了將用戶(hù)自定制的串行總線(xiàn)控制邏輯接入NiosⅡ系統,必須將其掛入Avalon總線(xiàn)。串行總線(xiàn)控制邏輯在設計上必須實(shí)現兩類(lèi)端口:一類(lèi)為Avalon總線(xiàn)端口,Avalon總線(xiàn)時(shí)序由NiosⅡ系統實(shí)現,用戶(hù)在邏輯設計時(shí)可暫不作考慮;另一類(lèi)為串行總線(xiàn)控制端口。串行總線(xiàn)讀操作時(shí)序如圖3所示,圖中給出了操作時(shí)各信號的時(shí)序保持關(guān)系。
讀時(shí)序在設計上可以抽象為一個(gè)有限狀態(tài)機,如圖4所示。其工作流程為:無(wú)數據傳輸時(shí),狀態(tài)機停留在空閑狀態(tài);若有數據操作請求時(shí),進(jìn)入“地址有效”的狀態(tài);再進(jìn)入“讀信號有效”狀態(tài),依次完成“數據讀取”、“操作安全間隔”狀態(tài)(FPGA片外器件要求的兩次操作之間的最小間隔)??紤]到異常產(chǎn)生后狀態(tài)機的穩定性,每個(gè)狀態(tài)都可以在異常產(chǎn)生時(shí)返回到默認的“空閑”狀態(tài)。同時(shí),有些狀態(tài)作了些等待延時(shí),是為了讓控制邏輯與FPGA外部較慢速的器件進(jìn)行時(shí)序匹配。串行總線(xiàn)寫(xiě)操作時(shí)序與讀操作時(shí)序相類(lèi)似。
2.1.2 429總線(xiàn)控制邏輯設計
429總線(xiàn)控制邏輯設計和串行總線(xiàn)控制邏輯設計方法與上文所述類(lèi)似,這里不再重復。
2.2 NiosIICPU的配置
需要將自定制外設集成進(jìn)嵌入式系統。本設計所使用的FPGA是Altera公司的EP2C35,可在A(yíng)ltera公司推出的開(kāi)發(fā)軟件Quartus II里對NiosⅡCPU進(jìn)行配置。操作步驟為:在System contents中新建一個(gè)組件,在彈出的Component Editor窗口中的HDL Files欄中導入用戶(hù)設計好的422接口控制邏輯設計的verilog文件;Signals一欄中,Component Editor已自動(dòng)解析出導入的verilog文件所包含的端口Name,但用戶(hù)還需對端口的類(lèi)型進(jìn)行指定,串行總線(xiàn)方向的端口須指定為export(相對于A(yíng)valon Slave端口而言)類(lèi)型,Avalon總線(xiàn)方向的端口分別指定為標準的address、write、read、writedata、readdata等信號,如圖5所示。
設置完成后的自定制器件出現在Custom Devices中,可以將自定制的器件加入到Nios Ⅱ系統中,由Nios Ⅱ系統為其自動(dòng)批定內存地址等資源。編譯無(wú)誤后即可完成NiosII CPU的設置。
3 軟件設計
Nios II嵌入式系統使用Altera公司提供的開(kāi)發(fā)環(huán)境Nios Ⅱ IDE,Nios II IDE使用標準的C/C++語(yǔ)言作為編程語(yǔ)言,因此開(kāi)發(fā)入門(mén)門(mén)檻不高。軟件設計時(shí),除了包含指定的system.h,alt_main.h等頭文件,用戶(hù)應針對被集成進(jìn)入系統的自定制器件編寫(xiě)相應的頭件,即將Al-tera提供的基本命令重新封裝成用戶(hù)自定義的軟件命令,以使用戶(hù)的程序更加直觀(guān)、更具有可讀性。
軟件流程圖如圖6示。在每次上電復位后,智能模塊應對整個(gè)系統進(jìn)行重新初始化,包括外設控制字的配置以及緩存初始化等工作。初始化完成后,應首先檢查有無(wú)接收請求,如有請求,則開(kāi)始接收、轉換數據,并寫(xiě)入發(fā)送緩存,然后再判斷一次有無(wú)接收請求,如無(wú),才轉入發(fā)送流程。發(fā)送完一次數據后,再次檢查接收請求。這種做法提高了數據接收事件的優(yōu)先權,可以保證接收數據不丟失。
4 結束語(yǔ)
基于NIOSⅡ軟核系統的智能429-422信號轉換模塊采用了智能化的設計技術(shù),對比于非智能信號轉換模塊,具有零系統資源占用、可配置性強、轉換速度快等特點(diǎn),同時(shí)由于無(wú)須開(kāi)發(fā)驅動(dòng)軟件,因而明顯縮短了研發(fā)周期,在工業(yè)控制等計算機系統中將會(huì )有廣泛的應用。
評論