<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/86735.htm

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

  圖1為此系統的結構連接框圖。如圖所示,芯片與芯片之間通過(guò)數據總線(xiàn)、地址總線(xiàn)及讀寫(xiě)控制線(xiàn)相連,而與終端PC則通過(guò)串口通信;FPGA與目標設備通過(guò)命令控制總線(xiàn)和故障檢測總線(xiàn)相連。


圖1 系統結構框圖


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

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

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

  2 ARM芯片與遠程檢測控制終端通信  

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

  3 FPGA內部功能模塊說(shuō)明

  FPGA內部檢測及控制電路結構關(guān)系如圖2所示。


圖2 FPGA內部邏輯結構


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

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

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

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

  1延時(shí)的配置

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

  2 讀寫(xiě)使能信號的連接

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


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

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>