關(guān) 閉

新聞中心

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

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

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

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

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

  各部分功能簡(jiǎn)介

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


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


  1 故障檢測(cè)和命令控制部分

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

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

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

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

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

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


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


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

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

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

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

  1延時(shí)的配置

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

  2 讀寫使能信號(hào)的連接

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


上一頁(yè) 1 2 下一頁(yè)

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

評(píng)論


相關(guān)推薦

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

關(guān)閉