www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 工業(yè)控制 > 電子設計自動化

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

各部分功能簡介


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

                        圖1 系統(tǒng)結構框圖


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


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


  命令控制:ARM芯片先判斷主控端發(fā)來的控制命令,然后通過地址總線和數(shù)據(jù)總線將命令狀態(tài)發(fā)送至經(jīng)FPGA地址譯碼鎖定的控制通道上。


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


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


3 FPGA內部功能模塊說明


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


                    圖2 FPGA內部邏輯結構


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


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

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

FPGA程序設計注意問題


1延時的配置


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


2 讀寫使能信號的連接


1 處理器的資源分配


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


● 系統(tǒng)外圍
EBI:外部總線控制接口,EBI可尋址64MB的空間,通過8個片選線(NCS0~NCS3獨立)和24位地址線訪問外設,地址線高4位與片選線(NCS4~7)復用,數(shù)據(jù)總線可配置成8/16位兩種模式與外設接口。
PIO:并口控制器,PIO控制32根I/O線,多數(shù)為復用引腳,可通過編程選擇為通用或專用。
AIC:先進中斷控制器,實現(xiàn)片內外圍中斷及4個外部中斷源中斷的管理,其外部中斷引腳與通用I/O復用。


● 用戶外圍
USART0~1:串口收發(fā)控制器,支持8個數(shù)據(jù)位的發(fā)送,可以進行異步/同步傳輸選擇,其片外引腳與通用I/O復用。
TC:定時/計數(shù)器,可以產(chǎn)生定時中斷和計數(shù)功能,其片外引腳與通用I/O復用。


2 存儲器地址重映射后的空間分配


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


  由于重映射主要是用于Flash和片內RAM的地址空間交換,所以片內外圍接口(EBI、USART、TC)對應的存儲器編程地址范圍在映射前后不發(fā)生改變,而訪問外設地址為重映射后所分配。重映射后地址分配如表1所示。


3 應用接口的存儲器配置


  EBI存儲器:在8個EBI片選存儲器(EBI_CSR0~EBI_CSR7)中設置外設訪問參數(shù)。其中,32位存儲器中包括數(shù)據(jù)總線寬度8(16)設置,等待狀態(tài)數(shù)目1~7個周期設置,等待使能(不是使能)設置,片選使能(不使能)設置。這里將FPGA作為外設,使能NCS3(也可根據(jù)實際選擇其他空閑片選線),選擇總線寬度16,使能等待周期并設周期為5(根據(jù)調試選擇)。因默認NCS0為加載Flash片選線,而Flash為16位信號、7個等待周期,故需在EBI_CSR0中選擇16位總線寬度、7個等待周期并使能NCS0。


  AIC存儲器:AIC存儲器管理所有內外部中斷,對此存儲器的正確初始化賦值才會打開相應中斷。設定AIC工作參數(shù):應用串口通信模式為異步模式,串口發(fā)送的數(shù)據(jù)位字符長度為8位,通信的波特率9600B/s,串口中斷優(yōu)先級為6(中斷優(yōu)先級由低到高0~7),接收發(fā)送通道使能。


  TC存儲器:定時中斷存儲器需要設定定時長度為1s(每1s產(chǎn)生中斷進行故障查詢),定時通道使能及軟件觸發(fā)模式,定時中斷優(yōu)先級設為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){} //循環(huán)等待
}
ARM處理器在完成各寄存器初始化后進入應用主程序,在主程序中首先調用EBI接口使能函數(shù)來設置參數(shù):在程序中設置存儲器基地址值(0xFFE00000),片選設置0x3(NCS3使能),NCS3的存儲器初始化;調用USART控制器函數(shù)初始化串口:打開串口,串口收發(fā)通道初始化,設定串口通信速率;調用定時中斷函數(shù):打開定時中斷,設置定時中斷時間,設定觸發(fā)方式為軟件觸發(fā);最后進入等待循環(huán)。


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


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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉