ARM7與FPGA在工業(yè)控制的結(jié)合
發(fā)布時(shí)間:2008/8/20 0:00:00 訪問(wèn)次數(shù):509
各部分功能簡(jiǎn)介
圖1為此系統(tǒng)的結(jié)構(gòu)連接框圖。如圖所示,arm芯片與fpga芯片之間通過(guò)數(shù)據(jù)總線、地址總線及讀寫(xiě)控制線相連,而與終端pc則通過(guò)串口通信;fpga與目標(biāo)設(shè)備通過(guò)命令控制總線和故障檢測(cè)總線相連。
圖1 系統(tǒng)結(jié)構(gòu)框圖
1 故障檢測(cè)和命令控制部分
故障檢測(cè):檢測(cè)通道的故障(正常)信號(hào)以高(低)電平方式指示,其一旦有故障產(chǎn)生就會(huì)保持高電平不變直到故障排除。針對(duì)這種特征,在arm控制器端采用定時(shí)中斷循環(huán)查詢方式來(lái)判斷故障通道的狀態(tài)。定時(shí)中斷程序通過(guò)對(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ā)后又無(wú)法在通道電平恢復(fù)正常時(shí)撤銷故障信號(hào),故而形成虛假報(bào)警。
命令控制:arm芯片先判斷主控端發(fā)來(lái)的控制命令,然后通過(guò)地址總線和數(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)。不過(guò),在arm芯片上要先將ttl電平通過(guò)max232芯片轉(zhuǎn)換為rs232電平標(biāo)準(zhǔn),對(duì)于距離超過(guò)15m的全雙工通信,在發(fā)送接收兩端還要各加一對(duì)rs232轉(zhuǎn)rs422電平的轉(zhuǎn)換模塊,以增加通信距離。
3 fpga內(nèi)部功能模塊說(shuō)明
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è)通道,讀寫(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)結(jié)合選中通路信號(hào)經(jīng)與非運(yùn)算送往數(shù)據(jù)端口被讀取。
fpga程序設(shè)計(jì)注意問(wèn)題
1延時(shí)的配置
通過(guò)地址總線和數(shù)據(jù)總線進(jìn)行命令傳輸和故障檢測(cè)時(shí),fpga是作為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ù)總線相連,fpga加載完成后數(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ǔ)器
at91fr40162內(nèi)嵌一個(gè)256kb的sram,1024k個(gè)16位字組成的flash存儲(chǔ)器。sram通過(guò)內(nèi)部32位數(shù)據(jù)總線與arm核相連,單周期訪問(wèn),flash存儲(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ū)?
各部分功能簡(jiǎn)介
圖1為此系統(tǒng)的結(jié)構(gòu)連接框圖。如圖所示,arm芯片與fpga芯片之間通過(guò)數(shù)據(jù)總線、地址總線及讀寫(xiě)控制線相連,而與終端pc則通過(guò)串口通信;fpga與目標(biāo)設(shè)備通過(guò)命令控制總線和故障檢測(cè)總線相連。
圖1 系統(tǒng)結(jié)構(gòu)框圖
1 故障檢測(cè)和命令控制部分
故障檢測(cè):檢測(cè)通道的故障(正常)信號(hào)以高(低)電平方式指示,其一旦有故障產(chǎn)生就會(huì)保持高電平不變直到故障排除。針對(duì)這種特征,在arm控制器端采用定時(shí)中斷循環(huán)查詢方式來(lái)判斷故障通道的狀態(tài)。定時(shí)中斷程序通過(guò)對(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ā)后又無(wú)法在通道電平恢復(fù)正常時(shí)撤銷故障信號(hào),故而形成虛假報(bào)警。
命令控制:arm芯片先判斷主控端發(fā)來(lái)的控制命令,然后通過(guò)地址總線和數(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)。不過(guò),在arm芯片上要先將ttl電平通過(guò)max232芯片轉(zhuǎn)換為rs232電平標(biāo)準(zhǔn),對(duì)于距離超過(guò)15m的全雙工通信,在發(fā)送接收兩端還要各加一對(duì)rs232轉(zhuǎn)rs422電平的轉(zhuǎn)換模塊,以增加通信距離。
3 fpga內(nèi)部功能模塊說(shuō)明
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è)通道,讀寫(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)結(jié)合選中通路信號(hào)經(jīng)與非運(yùn)算送往數(shù)據(jù)端口被讀取。
fpga程序設(shè)計(jì)注意問(wèn)題
1延時(shí)的配置
通過(guò)地址總線和數(shù)據(jù)總線進(jìn)行命令傳輸和故障檢測(cè)時(shí),fpga是作為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ù)總線相連,fpga加載完成后數(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ǔ)器
at91fr40162內(nèi)嵌一個(gè)256kb的sram,1024k個(gè)16位字組成的flash存儲(chǔ)器。sram通過(guò)內(nèi)部32位數(shù)據(jù)總線與arm核相連,單周期訪問(wèn),flash存儲(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ū)?
熱門點(diǎn)擊
- 用單片機(jī)和CPLD實(shí)現(xiàn)步進(jìn)電機(jī)的控制
- 移動(dòng)機(jī)器人運(yùn)動(dòng)控制的模糊邏輯系統(tǒng)設(shè)計(jì)
- 無(wú)人值班變電站遙視系統(tǒng)的應(yīng)用
- 機(jī)械電子式軟起動(dòng)裝置的控制系統(tǒng)設(shè)計(jì)
- ARM7與FPGA在工業(yè)控制的結(jié)合
- 可編程控制器技術(shù)縱深解析
- 基于可編程控制器工業(yè)機(jī)械手無(wú)線遙控系統(tǒng)
- 研華推出新一代遠(yuǎn)距離運(yùn)動(dòng)控制解決方案
- Intersil為便攜式電子設(shè)備推出低功耗電
- 怎樣更好解決PLC控制系統(tǒng)應(yīng)用抗干擾問(wèn)題
推薦技術(shù)資料
- 自制經(jīng)典的1875功放
- 平時(shí)我也經(jīng)常逛一些音響DIY論壇,發(fā)現(xiàn)有很多人喜歡LM... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究