《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > ARM7與FPGA在工控和故障檢測中的應用
ARM7與FPGA在工控和故障檢測中的應用
西安電子科技大學
楊培營 劉書明
摘要: 工業控制中往往需要完成多通道故障檢測及多通道命令控制(這種多任務設置非常普遍),單獨的CPU芯片由于其外部控制接口數量有限而難以直接完成多路檢控任務,故利用ARM芯片與FPGA相結合來擴展檢控通道是一個非常好的選擇。這里介紹用Atmel公司ARM7處理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)結合使用完成多通道檢控任務的一種實現方法。
Abstract:
Key words :

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

各部分功能簡介


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

                        圖1 系統結構框圖


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


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


  命令控制: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 讀寫使能信號的連接

 


1 處理器的資源分配


● 存儲器
AT91FR40162內嵌一個256KB的SRAM,1024K個16位字組成的Flash存儲器。SRAM通過內部32位數據總線與ARM核相連,單周期訪問,Flash存儲器則通過外部總線訪問。


● 系統外圍
EBI:外部總線控制接口,EBI可尋址64MB的空間,通過8個片選線(NCS0~NCS3獨立)和24位地址線訪問外設,地址線高4位與片選線(NCS4~7)復用" title="復用">復用,數據總線可配置成8/16位兩種模式與外設接口。
PIO:并口控制器,PIO控制32根I/O" title="I/O">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。


4 應用程序說明


 ① 主程序
#define AT91C_BASE_EBI ((AT91PS_EBI) 0xFFE00000) //EBI基地址定義
int main()
{AT91F_EBI_OpenChipSelect (
AT91C_BASE_EBI, //地址指針
0x3, //片NCS3使能
0x30000000+0x3f39); //片選存儲器初始化
Usart_init();//初始化串口
    timer_init();//初始化定時器
while(1){} //循環等待
}
ARM處理器在完成各寄存器初始化后進入應用主程序,在主程序中首先調用EBI接口使能函數來設置參數:在程序中設置存儲器基地址值(0xFFE00000),片選設置0x3(NCS3使能),NCS3的存儲器初始化;調用USART控制器函數初始化串口:打開串口,串口收發通道初始化,設定串口通信速率;調用定時中斷函數:打開定時中斷,設置定時中斷時間,設定觸發方式為軟件觸發;最后進入等待循環。

 
② 串口命令接收中斷服務程序
#define USART0_INTERRUPT_LEVEL 6//設置中斷優先級為6
#define AT91C_US_USMODE_NORMAL AT91C_US_CHMODE_NORMAL//*設置通信模式(NORMAL定義為異步模式)*//
AT91PS_USART COM0=AT91C_BASE_US0;//設置COM0為收發口
char message[4];
// 控制端串口中斷通信程序 //
//*----------------------------------------------------------------------------*//
void Usart0_c_irq_handler(AT91PS_USART USART_pt)//串口中斷處理函數
{ volatile unsigned int *conp;unsigned int status;
int time;
volatile unsigned int i;
status = USART_pt->US_CSR & USART_pt->US_IMR;//給狀態寄存器賦初值
if ( status & AT91C_US_RXRDY)//接收通道寄存器判斷是否有數據
{
AT91F_US_DisableIt(USART_pt,AT91C_US_RXRDY);//關閉接收通道準備好中斷
AT91F_US_EnableIt(USART_pt,AT91C_US_ENDRX);//打開接收結束中斷
AT91F_US_ReceiveFrame(USART_pt,(char*)(message),4);//調用接收數據數接收數據
}
if ( status & AT91C_US_ENDRX){
AT91F_US_DisableIt(USART_pt,AT91C_US_ENDRX); // 關閉接收器傳送結束中斷
{ if((message[0]^0xff)==message[1])//判斷接收代碼
{switch (message[0])
{case 0x31 : {conp=(volatile unsigned int*)(0x1+0x30000000);//OPE1使能
*conp=0x2;}; break;//0x31代碼送往OPE1端口
case 0x30 : {conp=(volatile unsigned int*)(0x2+0x30000000);//OPE2使能
*conp=0x1;}; break; // 0x30代碼送往OPE2端口
case 0x11 : {conp=(volatile unsigned int*)(0x3+0x30000000);//OPE3使能
*conp=0x2;};break;// 0x11代碼則往OPE3端口
case 0x10 : {conp=(volatile unsigned int*)(0x4+0x30000000);//OPE4使能
*conp=0x1;};break; //0x10代碼送往OPE4端口
default:break;}
       }
       }
以上程序為串口中斷服務程序,各函數語句說明參見注釋。中斷級別設置為6(高于定時中斷),這樣使命令發送優先于故障查詢(控制命令隨機出現而故障查詢總是循環進行);接收緩沖區message[4]數組類型必須設為動態分配,靜態數據分配會使處理器開辟數據緩沖區到Flash芯片中,從而引發在一個中斷處理程序中由于存取時間過長而導致串口收發超時的錯誤。因為篇幅有限,其他程序不再一一敘述。
在ARM應用程序的編寫中,應該盡量少的在主函數內使用循環操作,主函數主要完成各接口控制器應用初始化,因為主函數不間斷循環操作不但會增加功耗,而且長時間頻繁切換于中斷服務和主循環之間會造成程序運行的不穩定,所以能用定時中斷完成的循環操作盡量用中斷完成。
 
結語


  ARM芯片控制功能結合FPGA靈活的多硬件接口模擬特性在工程上體現出的其獨特的優勢,已發展為一種流行的硬件架構模式,隨著芯片功能的不斷強大,這種優勢將使其用途更廣,對任務處理變得更加靈活高效。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美在线一级va免费观看| 国产欧美精品久久| 国产精品一区二区在线观看| 国产欧美日韩激情| 亚洲男人av电影| 亚洲电影天堂av| 极品日韩久久| 欧美一区二区三区在线观看视频| 欧美日本在线播放| 国产午夜久久久久| 在线观看日韩一区| 伊人精品视频| 亚洲国内欧美| 欧美伊人久久大香线蕉综合69| 欧美午夜久久| 宅男精品视频| 国产自产在线视频一区| 亚洲大胆视频| 国产精品国产三级国产aⅴ浪潮| 亚洲七七久久综合桃花剧情介绍| 欧美体内she精视频在线观看| 久久精品视频导航| 猛男gaygay欧美视频| 欧美国产免费| 久久亚洲精品中文字幕冲田杏梨| 欧美国产日韩a欧美在线观看| 精品1区2区| 久久精品免费观看| 久久精品av麻豆的观看方式| 欧美在线亚洲综合一区| 国产日韩综合| 久久精品日韩一区二区三区| 日韩视频永久免费观看| 亚洲动漫精品| 国产中文一区二区| 久久综合激情| 亚洲天堂av在线免费| 欧美三级视频| 久久久五月婷婷| 中文在线不卡| 国产精品热久久久久夜色精品三区| 亚洲欧美资源在线| 欧美电影免费网站| 欧美另类极品videosbest最新版本| 午夜一级在线看亚洲| 日韩网站在线| 在线不卡中文字幕| 欧美三级精品| 中日韩美女免费视频网址在线观看| 国产精品午夜av在线| 国产午夜精品在线观看| 欧美四级伦理在线| 国产午夜精品一区理论片飘花| 国产一区二区三区久久悠悠色av| 欧美日韩卡一卡二| 久久gogo国模啪啪人体图| 国产午夜精品美女视频明星a级| 欧美成人性生活| 久久一二三四| 黄色成人在线观看| 欧美高清视频一区二区三区在线观看| 欧美视频三区在线播放| 欧美午夜精品久久久久久浪潮| 9久re热视频在线精品| 久久国内精品视频| 在线欧美日韩国产| 老司机久久99久久精品播放免费| 欧美va天堂va视频va在线| 欧美伊人久久大香线蕉综合69| 国产一区二区三区黄| 亚洲精品乱码久久久久久黑人| 91久久夜色精品国产九色| 篠田优中文在线播放第一区| 99re6热在线精品视频播放速度| 国产视频一区在线观看一区免费| 欧美激情综合| 国模叶桐国产精品一区| 国产模特精品视频久久久久| 欧美日韩国产在线看| 亚洲尤物在线视频观看| 国产亚洲欧美aaaa| 国产精品永久免费视频| 国产女人18毛片水18精品| 欧美成人一区二区三区片免费| 亚洲欧美亚洲| 欧美精品18+| 欧美日一区二区三区在线观看国产免| 狠狠色综合网| 欧美激情一区二区久久久| 久久天堂成人| 亚洲中无吗在线| 国产区日韩欧美| 国产精品久久精品日日| 国产精品亚洲综合色区韩国| 国产精品久久久久久户外露出| 国产精品igao视频网网址不卡日韩| …久久精品99久久香蕉国产| 亚洲制服欧美中文字幕中文字幕| 欧美午夜在线一二页| 久久嫩草精品久久久精品一| 亚洲精品国产精品国产自| 在线精品视频一区二区| 国产亚洲综合精品| 亚洲一区二区视频| 国内揄拍国内精品久久| 亚洲欧美日韩在线不卡| 欧美乱妇高清无乱码| 精品福利免费观看| 亚洲经典自拍| 国产一区二区三区四区五区美女| 99国产精品久久久久久久| 久久国产日韩欧美| 国产精品综合视频| 亚洲伊人色欲综合网| 亚洲国产精品t66y| 国产精品视频久久久| 欧美美女福利视频| 亚洲电影免费观看高清| 尤物网精品视频| 亚洲欧美精品suv| 亚洲一区二区三区精品在线| 精品999日本| 欧美在线观看一区二区| 国产真实乱子伦精品视频| 国产亚洲毛片在线| 猛男gaygay欧美视频| 欧美xart系列在线观看| 欧美日韩国产一区二区| 夜夜爽99久久国产综合精品女不卡| 亚洲人成在线影院| 欧美精品v国产精品v日韩精品| 欧美成人精品在线观看| 亚洲欧美一区二区三区在线| 久久人91精品久久久久久不卡| 亚洲男人第一网站| 欧美性猛交一区二区三区精品| 久久精品国产亚洲5555| 国产日韩欧美中文| 国产欧美大片| 久久国产黑丝| 欧美激情第9页| 免费看成人av| 一区二区三区导航| 久久综合久久美利坚合众国| 亚洲精品在线电影| 欧美一区二区免费观在线| 巨乳诱惑日韩免费av| 亚洲第一区在线| 亚洲自拍三区| 欧美国产日韩一区二区三区| 欧美日韩一区二区三区四区五区| 欧美精品免费视频| 国产精品久久久久免费a∨| 在线观看日韩精品| 久久精品国产v日韩v亚洲| 国产精品久久久久免费a∨大胸| 国产亚洲欧洲一区高清在线观看| 亚洲美女av网站| 在线播放国产一区中文字幕剧情欧美| 国产精品magnet| 国产一区二区三区在线观看精品| 欧美精品自拍偷拍动漫精品| 欧美一区二粉嫩精品国产一线天| 中文国产亚洲喷潮| 亚洲国产成人精品视频| 国产欧美日韩中文字幕在线| 欧美激情视频一区二区三区不卡| 亚洲电影免费观看高清完整版在线观看| 久久久精品999| 国产欧美日韩免费| 午夜精品在线看| 久久久99精品免费观看不卡| 欧美在线视频日韩| 狠狠操狠狠色综合网| 欧美午夜影院| 欧美视频观看一区| 激情国产一区二区| 亚洲免费在线播放| 国产欧美日韩在线视频| 欧美—级高清免费播放| 久久精品国产v日韩v亚洲| 午夜精品影院在线观看| 亚洲欧美激情视频在线观看一区二区三区| 欧美精品18videos性欧美| 国产一区激情| 国产午夜精品美女毛片视频| 久久亚洲精品视频| 在线电影院国产精品| 国产精品一区二区男女羞羞无遮挡| 99精品免费| 亚洲精品久久久久久久久久久久| 亚洲欧美日韩天堂| 国产精品久久久久久av下载红粉| 国产一区二区精品在线观看| 久久久水蜜桃av免费网站| 欧美xart系列在线观看| 99v久久综合狠狠综合久久| 黑人巨大精品欧美黑白配亚洲| 亚洲欧美日韩国产中文在线| 午夜精品视频在线观看| 国产欧美视频一区二区三区| 欧美激情第10页| 午夜国产一区| 国产麻豆一精品一av一免费| 欧美激情一区二区三级高清视频| 亚洲最新合集| 国产亚洲一区二区三区在线播放| 永久免费毛片在线播放不卡| 欧美一激情一区二区三区| 国产精品高潮在线| 国产精品欧美久久久久无广告| 国产亚洲精品aa午夜观看| 欧美xxx成人| 99精品免费视频| 久久久久国产免费免费| 国产女优一区| 亚洲精品视频中文字幕| 国产精品大片免费观看| 欧美大片在线看免费观看| 在线视频精品一| 一区二区欧美国产| 伊人男人综合视频网| 欧美日韩在线一区二区| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩免费观看中文| 国产欧美精品久久| 一区二区在线视频观看| 久久日韩粉嫩一区二区三区| 亚洲盗摄视频| 9色精品在线| 亚洲日本理论电影| 中国亚洲黄色| 欧美先锋影音| 免费一级欧美片在线观看| 久久精品国产亚洲5555| 国内一区二区在线视频观看| 欧美日韩三区四区| 在线视频欧美日韩| 国产精品久久久久久久久久直播| 国内揄拍国内精品少妇国语| 9久草视频在线视频精品| 欧美深夜影院| 欧美韩日一区二区三区| 亚洲国产欧美精品| 亚洲一区免费观看| 欧美日韩一区在线视频| 国产精品vvv| 亚洲欧洲日本一区二区三区| 欧美体内she精视频| 久久国产精品久久国产精品| 免费国产自线拍一欧美视频| 午夜伦欧美伦电影理论片| 国产精品第一页第二页第三页| 亚洲精品久久久久中文字幕欢迎你| 欧美性猛交视频| 国产一区三区三区| 亚洲精品一区二区三区四区高清| 亚洲视频在线观看三级| 亚洲狠狠丁香婷婷综合久久久| 99v久久综合狠狠综合久久| 国产精品稀缺呦系列在线| 国产乱肥老妇国产一区二| 蜜桃av一区二区三区| 午夜一级久久| 一区二区三区欧美在线观看| 国产精品无人区| 国产一区二区三区在线观看网站| 国产综合自拍| 午夜精品一区二区三区在线播放| 国产精品嫩草99a| 亚洲国产天堂久久综合网| 99在线精品视频在线观看| 国产亚洲永久域名| 欧美亚洲视频在线观看| 国产一区二区精品久久91| 国产精品久久777777毛茸茸| 欧美日韩精品免费在线观看视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲永久精品国产| 国产精品户外野外| 欧美日韩精品一二三区| 欧美精品久久一区二区| 小辣椒精品导航| 国产精品入口日韩视频大尺度| 国产欧美日韩免费| 国产日本欧美一区二区三区| 国产亚洲一区二区精品| 欧美成人午夜77777| 亚洲美女福利视频网站| 欧美激情精品久久久久久黑人| 欧美日韩中文字幕日韩欧美| 欧美成人综合一区| 99在线观看免费视频精品观看| 欧美三级日本三级少妇99| 亚洲在线观看| 妖精视频成人观看www| 老司机免费视频一区二区三区| 亚洲伊人观看| 免费视频亚洲| 久久婷婷色综合| 亚洲精品免费在线观看| 欧美天堂亚洲电影院在线观看| 久久精品国产久精国产思思| 国产精品jizz在线观看美国| 欧美日韩国产在线一区| 国产一区二区精品久久99| 亚洲一区二区欧美日韩| 亚洲电影第1页| 欧美日韩国产首页| 国产精品v一区二区三区| 国模套图日韩精品一区二区| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩免费一区二区三区| 国产精品av久久久久久麻豆网| 在线观看一区欧美| 日韩一级裸体免费视频| 夜夜夜精品看看| 国产精品乱码妇女bbbb| 国产一区二区三区久久悠悠色av| 国语精品中文字幕| 欧美在线视频观看免费网站| 日韩视频一区二区三区在线播放免费观看| 乱人伦精品视频在线观看| 欧美日韩亚洲一区二区三区四区| 亚洲国产精品久久久久秋霞蜜臀| 美日韩免费视频| 99精品欧美一区二区蜜桃免费| 亚洲香蕉伊综合在人在线视看|