新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT91FR40162與cyclone2在工業控制的結合

        AT91FR40162與cyclone2在工業控制的結合

        作者: 時間:2011-08-11 來源:網絡 收藏

        中往往需要完成多通道故障檢測及多通道命令控制(這種多任務設置非常普遍),利用ARM芯片與FPGA相來擴展檢控通道是一個非常好的選擇。這里介紹用Atmel公司ARM7處理器()和ALTERA公司的低成本FPGA芯片(使用完成多通道檢控任務的一種實現方法。
          各部分功能簡介
          圖1為此系統的結構連接框圖。如圖所示,ARM芯片與FPGA芯片之間通過數據總線、地址總線及讀寫控制線相連,而與終端PC則通過串口通信;FPGA與目標設備通過命令控制總線和故障檢測總線相連。

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

        GA內部邏輯結構

        圖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沖突(數據被邏輯鎖定),造成無法正確定位操作對象而使讀寫失敗。
          ARM配置及應用程序說明

          1 處理器的資源分配
          ● 存儲器
          內嵌一個256KB的SRAM,1024K個16位字組成的Flash存儲器。SRAM通過內部32位數據總線與ARM核相連,單周期訪問,Flash存儲器則通過外部總線訪問。
          ● 系統外圍
          EBI:外部總線控制接口,EBI可尋址64MB的空間,通過8個片選線(NCS0~NCS3獨立)和24位地址線訪問外設,地址線高4位與片選線(NCS4~7)復用,數據總線可配置成8/16位兩種模式與外設接口。

          PIO:并口控制器,PIO控制32根I/O線,多數為復用引腳,可通過編程選擇為通用或專用。

          AIC:先進中斷控制器,實現片內外圍中斷及4個外部中斷源中斷的管理,其外部中斷引腳與通用I/O復用。
          ● 用戶外圍
          USART0~1:串口收發控制器,支持8個數據位的發送,可以進行異步/同步傳輸選擇,其片外引腳與通用I/O復用。
          TC:定時/計數器,可以產生定時中斷和計數功能,其片外引腳與通用I/O復用。
          2 存儲器地址重映射后的空間分配

          在CPU上電后,都會從地址0開始第一條指令代碼的執行,而上電復位后0地址必須映射到NCS0片選所接的器件上,這里必須將NCS0連接到片內Flash上以加載初始化程序和應用程序。由于中斷和異常的入口地址是0~20H固定不變,它們的產生都是跳轉到0~20H之間相應的地址取程序執行,為了加快中斷響應,必須將0~20H地址映射到片內RAM區,所以在初始化的重映射命令執行(EB1_RCR的RCB位置1)后,內部RAM就映射到地址0,所有的中斷入口響應和堆棧操作都被映射到在RAM區進行。

          由于重映射主要是用于Flash和片內RAM的地址空間交換,所以片內外圍接口(EBI、USART、TC)對應的存儲器編程地址范圍在映射前后不發生改變,而訪問外設地址為重映射后所分配。重映射后地址分配如表1所示。
          3 應用接口的存儲器配置
          EBI存儲器:在8個EBI片選存儲器(EBI_CSR0~EBI_CSR7)中設置外設訪問參數。其中,32位存儲器中包括數據總線寬度8(16)設置,等待狀態數目1~7個周期設置,等待使能(不是使能)設置,片選使能(不使能)設置。這里將FPGA作為外設,使能NCS3(也可根據實際選擇其他空閑片選線),選擇總線寬度16,使能等待周期并設周期為5(根據調試選擇)。因默認NCS0為加載Flash片選線,而Flash為16位信號、7個等待周期,故需在EBI_CSR0中選擇16位總線寬度、7個等待周期并使能NCS0。
          AIC存儲器:AIC存儲器管理所有內外部中斷,對此存儲器的正確初始化賦值才會打開相應中斷。設定AIC工作參數:應用串口通信模式為異步模式,串口發送的數據位字符長度為8位,通信的波特率9600B/s,串口中斷優先級為6(中斷優先級由低到高0~7),接收發送通道使能。
          TC存儲器:定時中斷存儲器需要設定定時長度為1s(每1s產生中斷進行故障查詢),定時通道使能及軟件觸發模式,定時中斷優先級設為1。
          


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉林省| 通化市| 年辖:市辖区| 五指山市| 遵化市| 洪雅县| 莱芜市| 旺苍县| 玉田县| 四平市| 溧阳市| 长治市| 临朐县| 池州市| 临邑县| 富锦市| 溧阳市| 灵石县| 苗栗县| 特克斯县| 黄石市| 诸城市| 津南区| 刚察县| 九寨沟县| 永福县| 昆山市| 古蔺县| 南康市| 纳雍县| 南安市| 正安县| 山西省| 龙口市| 随州市| 商南县| 都安| 综艺| 石柱| 肃南| 共和县|