新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AT91FR40162與cyclone2在工業(yè)控制的結(jié)合

AT91FR40162與cyclone2在工業(yè)控制的結(jié)合

作者: 時(shí)間:2011-08-11 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

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

圖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è)通道,讀寫(xiě)使能信號(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)
選中通路信號(hào)經(jīng)與非運(yùn)算送往數(shù)據(jù)端口被讀取。
  FPGA程序設(shè)計(jì)注意問(wèn)題
  1延時(shí)的配置
  通過(guò)地址總線和數(shù)據(jù)總線進(jìn)行命令傳輸和故障檢測(cè)時(shí),F(xiàn)PGA是作為ARM芯片的普通外設(shè)來(lái)使用的。而ARM芯片對(duì)外設(shè)訪問(wèn)的速度要遠(yuǎn)低于片內(nèi)存儲(chǔ)器,所以要在ARM中設(shè)置訪問(wèn)的正確等待周期。ARM中提供的延時(shí)周期為0~7個(gè),通過(guò)調(diào)試即可找到外設(shè)合適的等待周期,此系統(tǒng)的等待周期根據(jù)實(shí)際測(cè)試設(shè)置為5個(gè),具體的配置方法見(jiàn)ARM程序說(shuō)明。
  2 讀寫(xiě)使能信號(hào)的連接
  從圖2中可以看出,寫(xiě)使能信號(hào)NWE及讀使能信號(hào)NRD應(yīng)作為數(shù)據(jù)線(DATA0~5)的三態(tài)控制信號(hào)連接,即使在ARM芯片無(wú)其他外設(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芯片燒寫(xiě)程序或上電加載程序時(shí)與FPGA沖突(數(shù)據(jù)被邏輯鎖定),造成無(wú)法正確定位操作對(duì)象而使讀寫(xiě)失敗。
  ARM配置及應(yīng)用程序說(shuō)明

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

  PIO:并口控制器,PIO控制32根I/O線,多數(shù)為復(fù)用引腳,可通過(guò)編程選擇為通用或?qū)S谩?/p>

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

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

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


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

評(píng)論


相關(guān)推薦

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

關(guān)閉