當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]基于提高CAN總線組網(wǎng)能力的考慮,提出一種新穎的CAN中繼器設計方法;闡述以LPC2119控制器為核心的硬件設計方案;詳細分析在μC/OSII實時操作系統(tǒng)下的軟件實現(xiàn)過程

摘要:基于提高CAN總線組網(wǎng)能力的考慮,提出一種新穎的CAN中繼器設計方法;闡述以LPC2119控制器為核心的硬件設計方案;詳細分析在μC/OSII實時操作系統(tǒng)下的軟件實現(xiàn)過程;針對中繼器的實時性和安全性以及總線與總線之間可能存在的速度不匹配的問題,確立提升緊急任務優(yōu)先級、建立相關事件標志、合理地對事件與任務進行同步的改進方法,從而有效地解決組網(wǎng)中最遠傳輸距離和最大節(jié)電數(shù)限制的問題。


關鍵詞:中繼器 CAN LPC2119 μC/OSII

引 言

  CAN總線的直接通信距離只有10 km左右,而且由于收發(fā)器驅動能力的限制,總線上最多只能掛110個節(jié)點,給系統(tǒng)組網(wǎng)帶來一定的困難。CAN中繼器就是為了解決這個問題而設計的。由于中繼器具有數(shù)據(jù)轉發(fā)功能,不僅可以擴大通信距離,還可以增加節(jié)點的最大數(shù)目。對CAN中繼器初始化參數(shù)進行設置,可以在不同的網(wǎng)段內采用不同的通信速率,還可以對報文進行過濾,減輕總線負擔。

1 CAN中繼器的硬件設計

1.1 微控制器LPC2119簡介
  CAN中繼器是以ARM微控制器LPC2119為核心的軟硬件系統(tǒng)。LPC2119是Philips公司生產(chǎn)的一款基于支持實時仿真和跟蹤的16/32位ARM7TDMISMCU,帶有128 KB嵌入的高速Flash存儲器。獨特的加速結構使32位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴格控制的應用可使用16位Thumb模式將代碼規(guī)模降低超過30 %,而性能的損失卻很小。LPC2119內部集成2個CAN控制器。它的主要特性有:單個總線上的數(shù)據(jù)傳輸速率高達1 Mb/s;32位寄存器和RAM訪問;兼容CAN 2.0B, ISO 118981規(guī)范;全局驗收濾波器可以識別所有的11位和29位Rx標識符;驗收濾波器為選擇的標準標識符提供Full CANstyle自動接收。

1.2 LPC2119內部CAN控制器與SJA1000比較

  LPC2119內部集成的CAN控制器與Philips公司的SJA1000 CAN控制器相比較大致相同,只是在驗收濾波這一環(huán)略有不同,這為習慣SJA1000的開發(fā)人員采用LPC2119提供了方便。SJA1000驗收濾波器由驗收代碼寄存器和驗收屏蔽寄存器定義,要接收報文的位模式在驗收代碼寄存器中定義,相應的驗收屏蔽寄存器允許定義某些位為“無關”,通過模式寄存器可以選擇不同的過濾模式:單過濾模式和雙過濾模式。而對LPC2119內部集成的CAN控制器,全局驗收過濾器包含一個512×32(2 KB)的RAM,通過軟件處理,可在RAM中存放1~5個標識符表格,整個RAM可容納1024個標準標識符或512的擴展標識符或兩種類型混合的標識符。同時有5個地址寄存器指向驗收過濾器RAM的表格:Full CAN標準地址,標準單個地址,標準地址范圍,擴展單個地址或擴展地址范圍。當CAN控制器的接收端已接收到一個完整的標識符時,它將通知驗收過濾器,驗收過濾器響應這個信號,并讀出控制器編號、標識符尺寸,以及來自控制器本身的標識符,然后通過驗收過濾器搜索RAM中的表格,以決定接收或放棄這一幀信息。

1.3 CAN中繼器硬件結構

  中繼器的硬件結構框圖如圖1所示。LPC2119分別通過CAN總線收發(fā)器與兩路總線相連;總線驅動器采用帶隔離的DC/DC模塊單獨供電,不僅實現(xiàn)了兩路CAN接口之間的電器隔離,也實現(xiàn)了中繼器與CAN總線的電器隔離。除此之外,還有LED顯示和鍵盤接口。LED用于顯示中繼器的工作狀態(tài),鍵盤用來修正總線的波特率。最終程序的調試與跟蹤通過JTAG調試口完成。
   
                 圖1硬件結構框圖

2 系統(tǒng)軟件設計

2.1 引入μC/OSII實時操作系統(tǒng)

  隨著應用的復雜化,采用傳統(tǒng)前后臺設計方法,會顯得過于復雜,實時性得不到保證,而且容易發(fā)生死鎖。解決這些問題的最好方法就是采用實時操作系統(tǒng)。

  μC/OSII完全是占先式的實時內核, 是基于優(yōu)先級的, 即總是讓就緒態(tài)中優(yōu)先級最高的任務先運行, 因此實時性比非占先式的內核要好。 它包含了實時內核、任務管理、時間管理、任務間通信同步(信號量、郵箱、消息隊列) 和內存管理等功能; 它的絕大部分代碼是用C 語言編寫的, 可移植性強, 可以在絕大多數(shù)8 位、16 位、32 位以至64 位微處理器、微控制器、數(shù)字信號處理器(DSP) 上運行。

  CAN中繼器對系統(tǒng)的實時性和可靠性要求比較高。采用μC/OSII實時操作系統(tǒng)可以有效地對任務進行調度;對各任務賦予不同的優(yōu)先級可以保證任務及時響應,而且采用實時操作系統(tǒng),降低了程序的復雜度,方便程序的開發(fā)。

2.2 軟件設計中需考慮的問題

(1) 使用代碼的容量
  在前/后臺系統(tǒng)的設計中,對存儲器容量的需求僅僅取決于應用程序代碼,而使用RTOS的情況則很不一樣。RTOS 內核本身需要額外的代碼空間。

  總代碼量=應用程序代碼+內核代碼

  每個任務都是獨立運行的,必須給每個任務提供單獨的??臻g(RAM)。在決定分配給每個任務多少棧空間時,應該盡可能使之接近實際的需求量。棧空間的大小不僅要計算任務本身的需求(局部變量、函數(shù)調用等) ,還需要計算最多中斷嵌套層數(shù)(保存寄存器、中斷服務程序中的局部變量等)。內核的另一個應該具有的特性是,每個任務所需的棧空間大小可以分別定義。所有內核都需要額外的??臻g,以保證內部變量、數(shù)據(jù)結構、隊列等。如果內核支持中斷用棧分離,則總的RAM需求量的表達式為:RAM總需求=應用程序RAM 需求+內核數(shù)據(jù)區(qū)RAM需求+各任務棧需求的總和+最多中斷嵌套棧需求。

  除非有特別大的RAM空間可以使用,對棧的分配與使用均要特別小心。實時多任務系統(tǒng)比前后臺系統(tǒng)需要更多的代碼(ROM) 和數(shù)據(jù)空間(RAM) 。額外的代碼空間取決于內核的大小,而RAM的用量則取決于系統(tǒng)中的任務數(shù)。

(2) 實時性和安全性
  CAN中繼器是系統(tǒng)組網(wǎng)的關鍵設備之一,在稍大型的CAN總線系統(tǒng)中經(jīng)常會用到中繼器。它給系統(tǒng)組網(wǎng)帶來方便的同時,也給系統(tǒng)增加了一些存儲轉發(fā)時延,因此在軟件設計中必須考慮系統(tǒng)的實時性,盡量縮短數(shù)據(jù)的存儲轉發(fā)時間。這除了要求給系統(tǒng)數(shù)據(jù)轉發(fā)任務分配較高的優(yōu)先級之外,還應建立一種通信機制,保證在收到一路總線上的數(shù)據(jù)時,能即時向另一路總線發(fā)送。另外,中繼器是兩路總線之間通信的橋梁,為了保證兩路總線之間正常的通信,應盡量避免類似死鎖、總線故障之類的情況發(fā)生。所以系統(tǒng)必須設計一個監(jiān)控任務,能對這類情況作出即時反應,同時為了不丟失還未轉發(fā)的數(shù)據(jù),必須為每一路總線設置一環(huán)形緩沖區(qū),用于存放新接收到的數(shù)據(jù),維護系統(tǒng)的安全性。

2.3 系統(tǒng)設計實現(xiàn)

  嵌入式CAN中繼器主要實現(xiàn)兩路CAN總線數(shù)據(jù)之間相互轉發(fā),并且可以根據(jù)實際需要,改變某一路CAN控制器的波特率。采用μC/OSII實時操作系統(tǒng),整個設計由操作系統(tǒng)和一系列用戶應用程序構成。

  主函數(shù)是程序首先執(zhí)行的一個函數(shù)。該函數(shù)永遠不會返回,主要實現(xiàn)系統(tǒng)的硬件和操作系統(tǒng)的初始化。硬件包括中斷、鍵盤、顯示等初始化;操作系統(tǒng)包括任務控制快和事件控制快的初始化,而且在啟動多任務調度之前,必須至少創(chuàng)建一個任務。在此系統(tǒng)中創(chuàng)建了一個啟動任務,主要負責時鐘的初始化和啟動,中斷的啟動,CAN控制器的初始化及啟動及任務的劃分等。在交出CPU的使用權之后,只做一些空閑處理。

(1) 任務的劃分
  要完成實時多任務的各種功能,必須對任務進行劃分。本程序根據(jù)各個任務的重要性和實時性,把程序分成六個具有不同優(yōu)先級的任務,包括系統(tǒng)監(jiān)控、數(shù)據(jù)轉發(fā)、鍵盤輸入、LED顯示、接收隊列監(jiān)視和波特率設置。表1為任務劃分表。

  除了6個主要應用任務之外,還有兩個中斷服務子程序:一個時鐘節(jié)拍中斷,用于提供周期性信號源;一個CAN接收中斷,用于把接收數(shù)據(jù)寫入環(huán)形緩沖區(qū)。


       

(2) 任務的同步與調度
  通常多任務操作系統(tǒng)的任務不同于一般的函數(shù),它是一個無限循環(huán),而且沒有返回值。如果沒有更高優(yōu)先級的任務進入就緒態(tài),當前任務是不會放棄對CPU的使用權的。為了實現(xiàn)操作系統(tǒng)的正常運行和有關事件的同步,必須正確處理任務間的通信和事件標志的設置。整個系統(tǒng)的功能結構如圖2所示。
   
                圖2系統(tǒng)功能結構

  各個任務具有不同的優(yōu)先級,通過調用系統(tǒng)掛起函數(shù)或延時函數(shù),可以啟動具有更高優(yōu)先級的進入就緒態(tài)的任務。在嵌入式CAN中繼器的設計中,通過對延時參數(shù)的設置,系統(tǒng)每隔一定的時鐘節(jié)拍,就啟動接收隊列監(jiān)視任務,定期掃描環(huán)形緩沖區(qū)。一旦發(fā)現(xiàn)讀指針與寫指針不相等時,就將環(huán)形緩沖區(qū)中新接收到的數(shù)據(jù)存入TEMPBUF中,同時發(fā)送信號量SendSem。數(shù)據(jù)轉發(fā)任務接收到信號量,啟動運行,完成數(shù)據(jù)轉發(fā)功能。

數(shù)據(jù)轉發(fā)任務如下:void CANDATA_ExchangeTask(void *pdata)
{
#if OS_CRITICAL_METHOD == 3/* 給CPU狀態(tài)寄存器分配存儲器*/
OS_CPU_SRcpu_sr;
#endif
INT8U err;
pdata=pdata;/*避免編譯器警告*/
for(;;) {
OSSemPend (SendSem,0,&err);/*等待發(fā)送信號量,若無信號則將本函數(shù)掛起,并啟動其他任務,如系統(tǒng)監(jiān)控或鍵盤輸入或LED顯示等*/
if (CANNUM == CAN1) {/*判斷是哪一路總線接收到數(shù)據(jù),如是CAN1,則向CAN2發(fā)送數(shù)據(jù)*/
ToSendData (TEMPBUF,FORTXBUF );/*將存放在TEMPBUF中的數(shù)據(jù)轉換成可用于發(fā)送的數(shù)據(jù)格式,存放在FORTXBUF中*/
CanSendData (CAN2,0x00,FORTXBUF);/*向另一路總線發(fā)送數(shù)據(jù)*/
}
else {
ToSendData (TEMPBUF,FORTXBUF );
CanSendData (CAN1,0x00,TXBUF);
}
}
}同樣,其他模塊功能——波特率的設置、系統(tǒng)的監(jiān)控、信息的顯示等,也是通過任務間的通信—信號量的傳遞來實現(xiàn)的,以此來保證時間與任務的同步。

結語

  μC/OSII實時操作系統(tǒng)在嵌入式硬件平臺的基礎上,用μC/OSII實時操作系統(tǒng)開發(fā)應用程序有其獨到之處,用戶可以直接利用系統(tǒng)的接口函數(shù)編寫自己的應用程序,不需另行開發(fā),大大方便了用戶編程,縮短了軟件的開發(fā)周期,提高了開發(fā)效率。基于μC/OSII和LPC2119的CAN中繼器,在實驗調試過程中,運行狀況良好,工作穩(wěn)定。

                  參考文獻
1 Labrosses Jean J. 嵌入式實時操作系統(tǒng)μC/OSII. 邵貝貝等譯. 北京:北京航天航空大學出版社,2003
2 周立功,等. ARM微控制器基礎與實戰(zhàn). 北京:北京航空航天大學出版社,2003
3 饒運濤,等.現(xiàn)場總線CAN原理與應用技術. 北京:北京航空航天大學出版社,2003
4 Labrosses Jean J. 嵌入式系統(tǒng)構件. 袁勤勇等譯. 北京:機械工業(yè)出版社,2002
沈躍:研究生,研究方向為計算機網(wǎng)絡控制與嵌入式系統(tǒng)。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

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

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

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

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

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

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

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

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

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

關鍵字: BSP 信息技術
關閉
關閉