關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > ARM7與FPGA在工業(yè)控制的結(jié)合

ARM7與FPGA在工業(yè)控制的結(jié)合

作者: 時間:2008-08-07 來源:嵌入式技術(shù)網(wǎng)應(yīng)用論文 收藏

  中往往需要完成多通道故障檢測及多通道命令控制(這種多任務(wù)設(shè)置非常普遍),單獨的CPU芯片由于其外部控制接口數(shù)量有限而難以直接完成多路檢控任務(wù),故利用芯片與相結(jié)合來擴(kuò)展檢控通道是一個非常好的選擇。這里介紹用Atmel公司7(AT91FR40162)和ALTERA公司的低成本芯片(cyclone2)結(jié)合使用完成多通道檢控任務(wù)的一種實現(xiàn)方法。

本文引用地址:http://butianyuan.cn/article/86735.htm

  各部分功能簡介

  圖1為此系統(tǒng)的結(jié)構(gòu)連接框圖。如圖所示,芯片與芯片之間通過數(shù)據(jù)總線、地址總線及讀寫控制線相連,而與終端PC則通過串口通信;FPGA與目標(biāo)設(shè)備通過命令控制總線和故障檢測總線相連。


圖1 系統(tǒng)結(jié)構(gòu)框圖


  1 故障檢測和命令控制部分

  故障檢測:檢測通道的故障(正常)信號以高(低)電平方式指示,其一旦有故障產(chǎn)生就會保持高電平不變直到故障排除。針對這種特征,在ARM控制器端采用定時中斷循環(huán)查詢方式來判斷故障通道的狀態(tài)。定時中斷程序通過對ARM 地址總線在FPGA中進(jìn)行譯碼而順序鎖定被檢測通道的電平值,然后再經(jīng)數(shù)據(jù)總線傳回ARM進(jìn)行判斷,最后將判斷結(jié)果送至遠(yuǎn)程終端。采用主機(jī)查詢方式而不采用故障中斷方式出于兩個原因:一方面是通??刂菩酒獠恐袛嘣从邢蓿ǘ鄶?shù)為4個外部中斷源),對于多目標(biāo)中斷信號檢測顯然是困難的;另一方面,由于檢測通道或設(shè)備受到短時干擾而產(chǎn)生電平隨機(jī)反轉(zhuǎn),造成故障中斷觸發(fā),而中斷觸發(fā)后又無法在通道電平恢復(fù)正常時撤銷故障信號,故而形成虛假報警。

  命令控制:ARM芯片先判斷主控端發(fā)來的控制命令,然后通過地址總線和數(shù)據(jù)總線將命令狀態(tài)發(fā)送至經(jīng)FPGA地址譯碼鎖定的控制通道上。

  2 ARM芯片與遠(yuǎn)程檢測控制終端通信  

  由于只存在命令和故障狀態(tài)信號的收發(fā),所以利用ARM的串口實現(xiàn)與遠(yuǎn)程PC的通信,通信標(biāo)準(zhǔn)選為RS232標(biāo)準(zhǔn)。不過,在ARM芯片上要先將TTL電平通過MAX232芯片轉(zhuǎn)換為RS232電平標(biāo)準(zhǔn),對于距離超過15m的全雙工通信,在發(fā)送接收兩端還要各加一對RS232轉(zhuǎn)RS422電平的轉(zhuǎn)換模塊,以增加通信距離。

  3 FPGA內(nèi)部功能模塊說明

  FPGA內(nèi)部檢測及控制電路結(jié)構(gòu)關(guān)系如圖2所示。


圖2 FPGA內(nèi)部邏輯結(jié)構(gòu)


  ARM芯片的ADDR2~0位地址線和片選使能信號一同進(jìn)入譯碼器decode1進(jìn)行地址譯碼后產(chǎn)生8路輸出(FPGA內(nèi)部可設(shè)置一個最大輸出為256路的譯碼模塊,所以在實際應(yīng)用中可擴(kuò)展為更多通道),低4路用于命令發(fā)送通道,高4路用于故障檢測通道,讀寫使能信號控制數(shù)據(jù)總線。

  ARM芯片接收到發(fā)送信號編碼命令時,立即在串口接收中斷服務(wù)子程序中并送相應(yīng)地址(通道編號)和數(shù)據(jù)(命令狀態(tài))到FPGA中。譯碼器有效輸出作為相應(yīng)通道D觸發(fā)器的鎖存時鐘,而數(shù)據(jù)狀態(tài)則被觸發(fā)器鎖定后作為所選通道的輸出完成相應(yīng)控制。

  ARM芯片在定時中斷產(chǎn)生進(jìn)入服務(wù)程序后對所有檢測通道輪流查詢,查詢到有通道故障時,故障信號結(jié)合選中通路信號經(jīng)與非運(yùn)算送往數(shù)據(jù)端口被讀取。

  FPGA程序設(shè)計注意問題

  1延時的配置

  通過地址總線和數(shù)據(jù)總線進(jìn)行命令傳輸和故障檢測時,F(xiàn)PGA是作為ARM芯片的普通外設(shè)來使用的。而ARM芯片對外設(shè)訪問的速度要遠(yuǎn)低于片內(nèi)存儲器,所以要在ARM中設(shè)置訪問的正確等待周期。ARM中提供的延時周期為0~7個,通過調(diào)試即可找到外設(shè)合適的等待周期,此系統(tǒng)的等待周期根據(jù)實際測試設(shè)置為5個,具體的配置方法見ARM程序說明。

  2 讀寫使能信號的連接

  從圖2中可以看出,寫使能信號NWE及讀使能信號NRD應(yīng)作為數(shù)據(jù)線(DATA0~5)的三態(tài)控制信號連接,即使在ARM芯片無其他外設(shè)時也不能缺省。因為ARM的上電加載程序時間要長于同一系統(tǒng)上FPGA的程序配置時間,而FPGA的檢測及控制通道與ARM芯片的數(shù)據(jù)總線相連,F(xiàn)PGA加載完成后數(shù)據(jù)總線會存有相應(yīng)通道的邏輯電平值(不為三態(tài)),這就會導(dǎo)致ARM芯片在對片內(nèi)Flash芯片燒寫程序或上電加載程序時與FPGA沖突(數(shù)據(jù)被邏輯鎖定),造成無法正確定位操作對象而使讀寫失敗。


上一頁 1 2 下一頁

關(guān)鍵詞: 工業(yè)控制 ARM FPGA 處理器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉