當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]工業(yè)以太網(wǎng)具有比現(xiàn)場總線更好的性能,正處于不斷發(fā)展完善當中,因此研制基于工業(yè)以太網(wǎng)的設(shè)備具有很好的市場前景。本文設(shè)計的嵌入式控制器采用了基于ARM7TDMIS的微控制器LPC2292[12]。控制器的底層與現(xiàn)場總線CAN相連,向上與Ethernet/IP工業(yè)以太網(wǎng)相連。為提高可靠性,應(yīng)用了冗余控制技術(shù),備有一個一模一樣的冗余控制器。通過LVDS接口,控制器與冗余控制器相連,并相互在線監(jiān)測。同時,本文采用了嵌入式實時操作系統(tǒng)μC/OS-II[3]。

引言
工業(yè)以太網(wǎng)具有比現(xiàn)場總線更好的性能,正處于不斷發(fā)展完善當中,因此研制基于工業(yè)以太網(wǎng)的設(shè)備具有很好的市場前景。本文設(shè)計的嵌入式控制器采用了基于ARM7TDMIS的微控制器LPC2292[12]??刂破鞯牡讓优c現(xiàn)場總線CAN相連,向上與Ethernet/IP工業(yè)以太網(wǎng)相連。為提高可靠性,應(yīng)用了冗余控制技術(shù),備有一個一模一樣的冗余控制器。通過LVDS接口,控制器與冗余控制器相連,并相互在線監(jiān)測。同時,本文采用了嵌入式實時操作系統(tǒng)μC/OS-II[3]。
嵌入式控制器采用高性能的32位單片機LPC2292。但是LPC2292在正常工作中存在產(chǎn)生偽中斷的可能性。如果不進行正確處理的話,可能產(chǎn)生嚴重的后果。本文對此進行了全面的分析,針對不同的情況,靈活地進行了處理;最后徹底解決了偽中斷問題,消除了嵌入式控制器中的隱患。
本文用到的LPC2292的資源有看門狗、定時器TIMIER0、UART0、UART1、CAN1,通過外部總線與以太網(wǎng)控制器芯片RTL8019AS相連。把CAN1的接收數(shù)據(jù)Rx設(shè)為快中斷,它是唯一的快中斷。UART1與LVDS芯片相連,UART0通過RS232轉(zhuǎn)換芯片與外部設(shè)備進行通信。
1 偽中斷產(chǎn)生的原因
由于異步中斷處理,偽中斷可能出現(xiàn)在基于ARM7TDMIS 的微控制器LPC2292中。如果不進行正確處理,有可能引起嚴重的后果。中斷處理的異步特性來源于內(nèi)核和向量中斷控制器(VIC)的相互作用。如果在內(nèi)核中檢測到中斷和內(nèi)核真正開始處理中斷的過程中VIC 的狀態(tài)發(fā)生改變,則產(chǎn)生中斷的異步特性[4]。
應(yīng)用中可能經(jīng)過以下步驟:
① VIC 判斷是否有IRQ 中斷。若有,則向內(nèi)核發(fā)送IRQ 信號。
② 內(nèi)核保存IRQ 狀態(tài)。
③ 執(zhí)行流水線的多個周期的處理。
④ 內(nèi)核從VIC 中裝入IRQ 地址。
如果在執(zhí)行到步驟③時向量中斷控制器的狀態(tài)有所改變,那么就要發(fā)生偽中斷。所以,在以下兩種情況下會發(fā)生偽中斷。
◆ 在步驟③時執(zhí)行了關(guān)中斷指令。
◆ 向向量中斷控制器發(fā)送IRQ信號的中斷的中斷標志丟失。當UART0/UART1的RDA/CTI中斷允許時就可能發(fā)生這種情況[5]。
進入偽中斷時,VIC 不能清楚地識別產(chǎn)生中斷請求的中斷,最后只能返回到VicDefVectAddr (0xFFFFF034)默認中斷進行處理。因此,如果不正確處理偽中斷,就可能導(dǎo)致嚴重的后果。
2 偽中斷的處理
本控制器中,可能出現(xiàn)偽中斷的地方是:關(guān)中斷、喂看門狗、UART0通信和UART1通信。本文的設(shè)計思路是:盡量避免產(chǎn)生偽中斷;實在避不開的話,則寫好相應(yīng)的處理程序。
2.1 關(guān)中斷指令的處理
μC/OS-II中的關(guān)中斷指令OS_ENTER_CRITICAL()不采用直接關(guān)中斷,而是先進入管理模式中,設(shè)置好寄存器SPSR,退出時關(guān)掉IRQ中斷。這樣就消除了由關(guān)中斷而引起偽中斷的可能性。
2.2 看門狗的處理
喂看門狗時必須先關(guān)閉IRQ和FIQ,否則可能發(fā)生意外的復(fù)位,導(dǎo)致控制器不能工作。在周期性的時鐘節(jié)拍中斷程序中第一件事就是喂看門狗。如果在進入時鐘節(jié)拍中斷時IRQ已關(guān)閉,就可避免偽中斷的出現(xiàn)。當然,在喂狗指令前必須先關(guān)閉FIQ,喂狗指令后再打開FIQ。關(guān)閉FIQ是不會引起偽中斷的[1]。
2.3 UART0和UART1的處理
在UART0中(UART1同理),當UART0 Rx FIFO到達寄存器U0FCR7∶6 所定義的觸發(fā)點(比如接收4個字符)時,發(fā)生RDA 中斷。當UART0 Rx FIFO 的深度低于觸發(fā)點時,RDA 中斷標志被清除。
當UART0 Rx FIFO 包含至少1 個字符,且在接收3.5~4.5 字符的時間內(nèi)沒有發(fā)生UART0 Rx FIFO 動作時,產(chǎn)生CTI中斷。當UART0 Rx FIFO 的任何動作(讀或?qū)慤ART0 RSR)都將清除CTI中斷標志。
CTI偽中斷是這樣發(fā)生的:比如UART0 Rx FIFO已接收2字符,且超過了3.5~4.5 字符的時間,發(fā)生CTI中斷;但是這時又有字符進來,于是CTI中斷標志被清除。向量中斷控制器無法識別是誰產(chǎn)生了中斷,偽中斷就發(fā)生了。
RDA偽中斷是這樣發(fā)生的:以接收4字符發(fā)生RDA中斷為例,比如UART0 Rx FIFO已接收3字符,且超過了3.5~4.5 字符的時間,發(fā)生CTI中斷。在系統(tǒng)正確處理CTI中斷時,恰好有一個字符進來,使得UART0 Rx FIFO中的字符數(shù)正好為4,于是發(fā)生RDA中斷。但是由于先處理CTI中斷,CTI中斷程序先讀取了其中的字符,使UART0 Rx FIFO內(nèi)的字符數(shù)小于4,因此RDA中斷標志就被清除了。等到系統(tǒng)處理RDA中斷時,偽中斷就發(fā)生了。
可以看出,CTI中斷的存在是產(chǎn)生UART0和UART1偽中斷的罪魁禍首。UART1與LVDS接口相連,用于控制器和冗余控制器的在線互相監(jiān)測。采用每次只發(fā)一個字符的方法,使得CTI中斷不可能發(fā)生,這樣就徹底消除了UART1產(chǎn)生偽中斷的可能性。
本控制器只在UART0中斷中存在產(chǎn)生偽中斷的可能性。發(fā)生偽中斷時,系統(tǒng)會把默認中斷地址寄存器VICDefVectAddr中的地址拷貝到向量地址寄存器VICVectAddr中,系統(tǒng)執(zhí)行該地址處的程序。所以,要編寫相應(yīng)的處理偽中斷程序,把其首地址放入VICDefVectAddr中。在處理偽中斷的程序中,要盡快讀出UART0 Rx FIFO中的字符,以免丟失[5]。
參考文獻
[1] NXP Semiconductors. LPC2292 USER MANUAL, 2004.
[2] NXP Semiconductors. LPC2292 ERRATA SHEET, 2006.
[3] Labrosse Jean J. 嵌入式實時操作系統(tǒng)μC/OS-II[M]. 邵貝貝,等譯. 北京:北京航空航天大學(xué)出版社, 2003.
[4] 廣州周立功單片機發(fā)展有限公司. PHILIPS 單片16/32 位微控制器——LPC2292/LPC2294,2005.
[5] NXP Semiconductors. Handling of spurious interrupts in the LPC2000, 2006.
張斌(碩士研究生),主要研究方向為單片機與嵌入式控制系統(tǒng)。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉