《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA核系統(tǒng)的智能429-422信號(hào)轉(zhuǎn)換模塊的設(shè)計(jì)
一種基于FPGA核系統(tǒng)的智能429-422信號(hào)轉(zhuǎn)換模塊的設(shè)計(jì)
電子科技
陳 威 董春雷 江蘇自動(dòng)化研究所
摘要: 介紹了一種智能信號(hào)轉(zhuǎn)換模塊的設(shè)計(jì)方法。這種智能模塊采用了基于FPGA嵌入式軟核系統(tǒng),是基于NiosII軟核處理器的架構(gòu),,可以在模塊上完全實(shí)現(xiàn)外部總線信號(hào)之間相互轉(zhuǎn)換,,無(wú)需驅(qū)動(dòng)程序或操作系統(tǒng)的干預(yù)。同時(shí)對(duì)用戶(hù)邏輯設(shè)計(jì),、用戶(hù)邏輯集成、固件設(shè)計(jì)技術(shù)等內(nèi)容進(jìn)行了詳細(xì)的介紹。
Abstract:
Key words :

摘要:介紹了一種智能" title="智能">智能信號(hào)轉(zhuǎn)換" title="信號(hào)轉(zhuǎn)換">信號(hào)轉(zhuǎn)換模塊的設(shè)計(jì)方法,。這種智能模塊采用了基于FPGA" title="FPGA">FPGA嵌入式軟核" title="軟核">軟核系統(tǒng),是基于NiosII軟核處理器的架構(gòu),,可以在模塊上完全實(shí)現(xiàn)外部總線信號(hào)之間相互轉(zhuǎn)換,,無(wú)需驅(qū)動(dòng)程序或操作系統(tǒng)的干預(yù)。同時(shí)對(duì)用戶(hù)邏輯設(shè)計(jì),、用戶(hù)邏輯集成,、固件設(shè)計(jì)技術(shù)等內(nèi)容進(jìn)行了詳細(xì)的介紹。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門(mén)陣列,;軟核,;智能

0 引言
    在工業(yè)控制等領(lǐng)域的計(jì)算機(jī)系統(tǒng)中廣泛涉及到信號(hào)轉(zhuǎn)換等,信號(hào)轉(zhuǎn)換模塊在系統(tǒng)中承擔(dān)著在多種信號(hào)之間進(jìn)行翻譯轉(zhuǎn)換的任務(wù),。隨著應(yīng)用環(huán)境復(fù)雜性,、計(jì)算機(jī)系統(tǒng)集成度的提高,信號(hào)轉(zhuǎn)換模塊上需容納的信號(hào)通道的種類(lèi)與數(shù)量也越來(lái)越多,。頻繁,、大量的信號(hào)轉(zhuǎn)換必然會(huì)占用較多的系統(tǒng)資源。隨著微電子技術(shù)的發(fā)展,,國(guó)外的一些生產(chǎn)廠商如Altera已推出在FPGA上以軟核(soft core)方式實(shí)現(xiàn)的嵌入式系統(tǒng),。這種嵌入式系統(tǒng)基于NIOS II" title="NIOS II">NIOS II嵌入式軟核處理器,其外設(shè)可以靈活選擇增刪,并允許自定制外設(shè),。本文介紹了一種基于NIOSⅡ軟核系統(tǒng)的智能429-422信號(hào)轉(zhuǎn)換模塊的設(shè)計(jì),。

1 設(shè)計(jì)原理
    傳統(tǒng)的非智能設(shè)計(jì)的轉(zhuǎn)換模塊,在工作時(shí)需要有驅(qū)動(dòng)程序的控制,,通過(guò)與操作系統(tǒng)或用戶(hù)軟件的交互,,來(lái)實(shí)現(xiàn)信號(hào)轉(zhuǎn)換的功能,亦即需要接入PCI Bus等系統(tǒng)總線,,通過(guò)中斷提請(qǐng)等方式工作,,在轉(zhuǎn)換通道數(shù)量多時(shí),必然會(huì)影響系統(tǒng)的性能,。采用智能設(shè)計(jì)的信號(hào)轉(zhuǎn)換模塊一般不需要操作系統(tǒng)的干預(yù),,接收到的外部總線信號(hào)經(jīng)過(guò)本模塊上NIOS II軟核系統(tǒng)轉(zhuǎn)換后,即可將數(shù)據(jù)信號(hào)輸出,。信號(hào)轉(zhuǎn)換的工作全部由模塊的硬件完成,,因而可以實(shí)現(xiàn)對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)資源的零占用。采用非智能設(shè)計(jì)與智能設(shè)計(jì)模塊的結(jié)構(gòu)示意框圖如圖1所示,。

b.JPG



2 硬件設(shè)計(jì)
    429或422總線適配電路已有大量成熟的設(shè)計(jì),,本文不再贅述,僅重點(diǎn)介紹FPGA內(nèi)部總線控制邏輯設(shè)計(jì)以及NiosⅡ軟核系統(tǒng)的配置,。

2.1 FPGA控制邏輯設(shè)計(jì)
    集成于FAPGA內(nèi)部的Nios II CPU需要通過(guò)外部總線控制邏輯才能與外部總線進(jìn)行通信,,而Avalon總線是Nios II CPU與外部總線控制邏輯、片外FLASH,、SRAM之間交換數(shù)據(jù)信號(hào)的樞紐,。Avalon總線是一種協(xié)議較為簡(jiǎn)單的片內(nèi)總線,在NiosⅡ系統(tǒng)中,,外設(shè)都是通過(guò)Avalon總線與Nios II CPU相接的,。Avalon總線接口可以分成兩類(lèi):Slave和Master,Slave和Master主要區(qū)別是對(duì)于Avalon總線控制權(quán)的掌握,。Master接口具有與之相接的Avalon總線的控制權(quán),而Slave接口是被動(dòng)的,。Avalon總線支持自定制外設(shè),,用戶(hù)可將自己的邏輯設(shè)計(jì)掛接到Avalon總線上?;贜IOSⅡ軟核系統(tǒng)的智能429-422信號(hào)轉(zhuǎn)換模塊設(shè)計(jì)的詳細(xì)系統(tǒng)結(jié)構(gòu)框圖如圖2所示,。

c.JPG


2.1.1 串行總線控制邏輯設(shè)計(jì)
    為了將用戶(hù)自定制的串行總線控制邏輯接入NiosⅡ系統(tǒng),必須將其掛入Avalon總線,。串行總線控制邏輯在設(shè)計(jì)上必須實(shí)現(xiàn)兩類(lèi)端口:一類(lèi)為Avalon總線端口,,Avalon總線時(shí)序由NiosⅡ系統(tǒng)實(shí)現(xiàn),用戶(hù)在邏輯設(shè)計(jì)時(shí)可暫不作考慮;另一類(lèi)為串行總線控制端口,。串行總線讀操作時(shí)序如圖3所示,,圖中給出了操作時(shí)各信號(hào)的時(shí)序保持關(guān)系。

d.JPG

    讀時(shí)序在設(shè)計(jì)上可以抽象為一個(gè)有限狀態(tài)機(jī),,如圖4所示,。其工作流程為:無(wú)數(shù)據(jù)傳輸時(shí),狀態(tài)機(jī)停留在空閑狀態(tài),;若有數(shù)據(jù)操作請(qǐng)求時(shí),,進(jìn)入“地址有效”的狀態(tài);再進(jìn)入“讀信號(hào)有效”狀態(tài),,依次完成“數(shù)據(jù)讀取”,、“操作安全間隔”狀態(tài)(FPGA片外器件要求的兩次操作之間的最小間隔)??紤]到異常產(chǎn)生后狀態(tài)機(jī)的穩(wěn)定性,,每個(gè)狀態(tài)都可以在異常產(chǎn)生時(shí)返回到默認(rèn)的“空閑”狀態(tài)。同時(shí),,有些狀態(tài)作了些等待延時(shí),,是為了讓控制邏輯與FPGA外部較慢速的器件進(jìn)行時(shí)序匹配。串行總線寫(xiě)操作時(shí)序與讀操作時(shí)序相類(lèi)似,。

e.JPG


2.1.2 429總線控制邏輯設(shè)計(jì)
    429總線控制邏輯設(shè)計(jì)和串行總線控制邏輯設(shè)計(jì)方法與上文所述類(lèi)似,,這里不再重復(fù)。

 

2.2 NiosIICPU的配置
    需要將自定制外設(shè)集成進(jìn)嵌入式系統(tǒng),。本設(shè)計(jì)所使用的FPGA是Altera公司的EP2C35,,可在Altera公司推出的開(kāi)發(fā)軟件Quartus II里對(duì)NiosⅡCPU進(jìn)行配置。操作步驟為:在System contents中新建一個(gè)組件,,在彈出的Component Editor窗口中的HDL Files欄中導(dǎo)入用戶(hù)設(shè)計(jì)好的422接口控制邏輯設(shè)計(jì)的verilog文件,;Signals一欄中,Component Editor已自動(dòng)解析出導(dǎo)入的verilog文件所包含的端口Name,,但用戶(hù)還需對(duì)端口的類(lèi)型進(jìn)行指定,,串行總線方向的端口須指定為export(相對(duì)于Avalon Slave端口而言)類(lèi)型,Avalon總線方向的端口分別指定為標(biāo)準(zhǔn)的address,、write,、read、writedata,、readdata等信號(hào),,如圖5所示。

a.JPG


    設(shè)置完成后的自定制器件出現(xiàn)在Custom Devices中,,可以將自定制的器件加入到Nios Ⅱ系統(tǒng)中,,由Nios Ⅱ系統(tǒng)為其自動(dòng)批定內(nèi)存地址等資源。編譯無(wú)誤后即可完成NiosII CPU的設(shè)置。

3 軟件設(shè)計(jì)
    Nios II嵌入式系統(tǒng)使用Altera公司提供的開(kāi)發(fā)環(huán)境Nios Ⅱ IDE,,Nios II IDE使用標(biāo)準(zhǔn)的C/C++語(yǔ)言作為編程語(yǔ)言,,因此開(kāi)發(fā)入門(mén)門(mén)檻不高。軟件設(shè)計(jì)時(shí),,除了包含指定的system.h,,alt_main.h等頭文件,用戶(hù)應(yīng)針對(duì)被集成進(jìn)入系統(tǒng)的自定制器件編寫(xiě)相應(yīng)的頭件,,即將Al-tera提供的基本命令重新封裝成用戶(hù)自定義的軟件命令,,以使用戶(hù)的程序更加直觀、更具有可讀性,。

f.JPG


    軟件流程圖如圖6示,。在每次上電復(fù)位后,智能模塊應(yīng)對(duì)整個(gè)系統(tǒng)進(jìn)行重新初始化,,包括外設(shè)控制字的配置以及緩存初始化等工作,。初始化完成后,應(yīng)首先檢查有無(wú)接收請(qǐng)求,,如有請(qǐng)求,,則開(kāi)始接收、轉(zhuǎn)換數(shù)據(jù),,并寫(xiě)入發(fā)送緩存,,然后再判斷一次有無(wú)接收請(qǐng)求,如無(wú),,才轉(zhuǎn)入發(fā)送流程,。發(fā)送完一次數(shù)據(jù)后,再次檢查接收請(qǐng)求,。這種做法提高了數(shù)據(jù)接收事件的優(yōu)先權(quán),,可以保證接收數(shù)據(jù)不丟失。

4 結(jié)束語(yǔ)
    基于NIOSⅡ軟核系統(tǒng)的智能429-422信號(hào)轉(zhuǎn)換模塊采用了智能化的設(shè)計(jì)技術(shù),,對(duì)比于非智能信號(hào)轉(zhuǎn)換模塊,,具有零系統(tǒng)資源占用、可配置性強(qiáng),、轉(zhuǎn)換速度快等特點(diǎn),,同時(shí)由于無(wú)須開(kāi)發(fā)驅(qū)動(dòng)軟件,因而明顯縮短了研發(fā)周期,,在工業(yè)控制等計(jì)算機(jī)系統(tǒng)中將會(huì)有廣泛的應(yīng)用。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。