關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > ARM7與FPGA在工業控制的結合

        ARM7與FPGA在工業控制的結合

        作者: 時間:2008-08-07 來源:嵌入式技術網應用論文 收藏

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

        本文引用地址:http://www.104case.com/article/86735.htm

          各部分功能簡介

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


        圖1 系統結構框圖


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

          故障檢測:檢測通道的故障(正常)信號以高(低)電平方式指示,其一旦有故障產生就會保持高電平不變直到故障排除。針對這種特征,在ARM控制器端采用定時中斷循環查詢方式來判斷故障通道的狀態。定時中斷程序通過對ARM 地址總線在FPGA中進行譯碼而順序鎖定被檢測通道的電平值,然后再經數據總線傳回ARM進行判斷,最后將判斷結果送至遠程終端。采用主機查詢方式而不采用故障中斷方式出于兩個原因:一方面是通常控制芯片外部中斷源有限(多數為4個外部中斷源),對于多目標中斷信號檢測顯然是困難的;另一方面,由于檢測通道或設備受到短時干擾而產生電平隨機反轉,造成故障中斷觸發,而中斷觸發后又無法在通道電平恢復正常時撤銷故障信號,故而形成虛假報警。

          命令控制:ARM芯片先判斷主控端發來的控制命令,然后通過地址總線和數據總線將命令狀態發送至經FPGA地址譯碼鎖定的控制通道上。

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

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

          3 FPGA內部功能模塊說明

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


        圖2 FPGA內部邏輯結構


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

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

          ARM芯片在定時中斷產生進入服務程序后對所有檢測通道輪流查詢,查詢到有通道故障時,故障信號結合選中通路信號經與非運算送往數據端口被讀取。

          FPGA程序設計注意問題

          1延時的配置

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

          2 讀寫使能信號的連接

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 油尖旺区| 西和县| 柘城县| 敖汉旗| 九龙县| 九龙坡区| 辽宁省| 且末县| 长宁区| 个旧市| 甘孜| 舟山市| 乐陵市| 什邡市| 百色市| 平乐县| 都江堰市| 稻城县| 师宗县| 黔西县| 嘉黎县| 保靖县| 滁州市| 政和县| 大港区| 囊谦县| 凌云县| 阿拉善盟| 伊吾县| 长沙县| 肥乡县| 咸宁市| 屯留县| 仙桃市| 陇西县| 通州区| 安图县| 慈利县| 文山县| 靖边县| 星座|