專利名稱:具有使用緩沖器描述表的控制器區(qū)域網(wǎng)絡(luò)模塊的微控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制器區(qū)域網(wǎng)絡(luò)(CAN或CAN總線)兼容的微控制器,且更特定來說涉及一種用于CAN消息存儲的輕量級緩沖器描述符表(BDT)。
背景技術(shù):
控制器區(qū)域網(wǎng)絡(luò)(CAN)是有效地以高水平的安全性支持分散式實時控制的串行通信協(xié)議。CAN的應(yīng)用范圍從高速數(shù)字通信網(wǎng)絡(luò)到低成本多路復(fù)用布線。CAN是用于實時應(yīng)用的高整體性串行數(shù)據(jù)通信總線。CAN以高達(dá)1兆位/秒的數(shù)據(jù)速率操作,具有優(yōu)秀的錯誤檢測與約束能力,且最初開發(fā)用于汽車中,但現(xiàn)在也用于其它領(lǐng)域中。CAN總線與CPU 之間的接口通常稱為CAN控制器。CAN背后的動機是通過改善汽車電子器件、引擎控制單元、傳感器、防滑剎車系統(tǒng)等的互可操作性同時減小線束重量及復(fù)雜性而使汽車更可靠、安全且燃料高效。由于CAN的出現(xiàn),CAN協(xié)議已在工業(yè)自動化及汽車/卡車應(yīng)用中獲得廣泛普及。CAN總線在嘈雜環(huán)境中的強健性及從故障條件檢測及恢復(fù)的能力使CAN適合與工業(yè)控制設(shè)備、醫(yī)學(xué)設(shè)備、測試設(shè)備、移動及便攜式機器、器具等一起使用。CAN是具有一個邏輯總線的不同步串行總線系統(tǒng)。其具有具有相等總線節(jié)點的開放線性總線結(jié)構(gòu)。CAN總線由兩個或兩個以上節(jié)點組成??稍诓桓蓴_其它節(jié)點的通信的情況下動態(tài)地改變總線上節(jié)點的數(shù)目。CAN邏輯總線對應(yīng)于“線與”機構(gòu),“空閑”位(通常但未必等于邏輯電平“1”)被 “占有”位(通常是邏輯電平“0”)覆寫。只要沒有總線節(jié)點正在發(fā)送占有位,那么總線在空閑狀態(tài)中,但來自任一總線節(jié)點的占有位產(chǎn)生占有總線狀態(tài)。因此,對于CAN總線,選擇能夠傳輸兩個可能位狀態(tài)(占有及空閑)的媒體。所使用的常見物理媒體是雙絞線對??偩€則稱為“CANH”及“CANL”,且可直接連接到CAN控制器節(jié)點或經(jīng)由連接器連接到其。在CAN總線協(xié)議中,并非尋址總線節(jié)點,而是將地址信息包含于所傳輸?shù)南⒅小?此經(jīng)由識別消息內(nèi)容(例如,引擎速度、油溫等)的識別符(每一消息的部分)來進(jìn)行。所述識別符另外指示消息的優(yōu)先等級。所述識別符的二進(jìn)制值越低,則消息的優(yōu)先等級越高 (更多占有位)。原始CAN規(guī)范(版本1.0、1.2及2.0幻將消息識別符定義為具有11位的長度,從而給出可能2048個消息識別符?!皵U展的CAN”規(guī)范版本2. OB允許使用11及/或四位的消息識別符長度( 位的識別符長度允許超過536,000, 000個消息識別符)。所述CAN規(guī)范(所有版本)出于所有目的以引用方式并入本文中。通常,兩種方法可用于CAN,因為CAN標(biāo)準(zhǔn)不涵蓋CAN控制器的架構(gòu),這兩種方法是“基本CAN”及“完全CAN”(不要與CAN 1及CAN 2或標(biāo)準(zhǔn)識別符及擴展的識別符混淆); 其在消息的緩沖上不同。 基本CAN控制器架構(gòu)類似于簡單UART,除發(fā)送完整幀而非字符外。通常,存在單個傳輸緩沖器及雙緩沖接收緩沖器。舉例來說,微控制器將幀放入傳輸緩沖器中,且在發(fā)送所述幀時接收中斷。當(dāng)在接收緩沖器中接收到幀時,微控制器接收用以騰空所述接收緩沖器的中斷且在接收隨后幀之前將所述幀從所述接收緩沖器騰空。在基本CAN控制器架構(gòu)中, 微控制器必須管理傳輸及接收,且處置幀的存儲。 完全CAN控制器架構(gòu)包含專用緩沖器且將幀存儲于此專用緩沖器中??梢罁?jù)所述專用緩沖器的大小處理有限數(shù)目個幀。以映射到每一幀緩沖器的幀的識別符給所述緩沖器加標(biāo)簽。微控制器可更新所述緩沖器中的幀且對其進(jìn)行標(biāo)記以供傳輸??蓹z查接收緩沖器以查看是否已接收到具有匹配識別符的幀。另外,可使用濾波器來預(yù)篩選所接收到的幀,以使得僅既定供特定CAN控制器使用的那些幀存儲于接收緩沖器中。標(biāo)準(zhǔn)CAN對擴展的CANCAN協(xié)議通常以兩個版本獲得應(yīng)用CAN 1. 0及CAN 2. 0。CAN 2. 0與CAN 1. 0向后兼容,且大多數(shù)新控制器根據(jù)CAN 2.0構(gòu)建。CAN 2.0標(biāo)準(zhǔn)存在兩個部分部分A及部分 B。在CAN 1. 0及CAN 2. OA的情況下,識別符必須為11位長。在CAN 2. OB的情況下,識別符可為11位(“標(biāo)準(zhǔn)”識別符)或四位(“擴展的”識別符)。為依從于CAN 2. 0,控制器必須為2.0部分B被動或2.0部分B主動。如果其是被動的,那么其必須忽略擴展的幀(當(dāng) CAN 1.0控制器看到具有四位識別符的幀時,其將產(chǎn)生錯誤幀)。如果其是主動的,那么其必須允許接收及傳輸擴展的幀。存在用于發(fā)送及接收兩種類型的幀的一些兼容性規(guī)則。CAN 2. OB主動控制器將發(fā)送及接受標(biāo)準(zhǔn)幀及擴展的幀兩者。CAN 2. OB被動控制器將發(fā)送及接收標(biāo)準(zhǔn)幀,且將丟棄不具有錯誤的擴展的幀。CAN 1. 0控制器在看到擴展的幀時,其將產(chǎn)生錯誤。因此,其中網(wǎng)絡(luò)上存在單個 CAN1. 0控制器的所述網(wǎng)絡(luò)不能夠與所述網(wǎng)絡(luò)上的擴展的幀共處;所有控制器必須使用標(biāo)準(zhǔn)幀發(fā)送??刂破骷軜?gòu)CAN標(biāo)準(zhǔn)不涵蓋控制器的架構(gòu),因此如何使用其存在變化形式。雖然存在兩種一般方法基本CAN及完全CAN(不要與CAN 1. 0及2. 0或標(biāo)準(zhǔn)識別符及擴展的識別符混淆); 其在消息的緩沖上不同。如上所述,在基本CAN控制器中,架構(gòu)類似于簡單UART,除發(fā)送完整幀而非字符外(通常)存在單個傳輸緩沖器及雙緩沖接收緩沖器。CPU將幀放入傳輸緩沖器中,且在發(fā)送幀時采取中斷;CPU將幀接收于接收緩沖器中,采取中斷且騰空所述緩沖器(在接收隨后幀之前)。CPU必須管理傳輸及接收,且處置幀的存儲。如上所述,在完全CAN控制器中,幀存儲于所述控制器的專用緩沖器中??商幚碛邢迶?shù)目個幀(通常16個),因為網(wǎng)絡(luò)上可存在更多的幀,以映射到每一緩沖器的幀的識別符給所述緩沖器加標(biāo)簽。CPU可更新所述緩沖器中的幀且對其進(jìn)行標(biāo)記以供傳輸;可檢查緩沖器以查看是否已接收到具有匹配識別符的幀。完全CAN設(shè)計的意圖是在網(wǎng)絡(luò)中提供一組“共享變量” ;CPU周期性地更新所述變量(即,緩沖器中的幀的內(nèi)容);CPU還可檢查所述變量。實際上,(當(dāng)然)事情由于并行性困難而并不如此簡單當(dāng)從幀讀取一組字節(jié)時,控制器可用新幀的內(nèi)容覆寫數(shù)據(jù),且在許多控制器中僅通過狀態(tài)旗標(biāo)來用信號通知此情況。在“基本CAN”實施方案中,通常存在一個具有一個或一個以上相關(guān)聯(lián)消息接受濾波器的雙緩沖接收信道。僅具有一個雙緩沖消息信道意指處理器必須能夠在此時間內(nèi)處置先前消息。在“完全CAN”實施方案中,通常存在多達(dá)15個消息緩沖器或信道,每一消息緩沖器或信道具有一個相關(guān)聯(lián)消息接受濾波器。具有大量接收緩沖器可在處理器非常慢的情況下有助于處理消息業(yè)務(wù)的突發(fā),然而,如果總消息業(yè)務(wù)使得其傾覆處理器能力,那么沒有什么緩沖量可防止消息的最終損失。如果處理器的CPU非常慢或非常忙,那么為接收許多不同被尋址消息需要單獨的接收緩沖器及接受濾波器。在較快速處理器的情況下,可因接受濾波器的編程的靈活性而使用更有限數(shù)目個接收緩沖器。簡而言之,處理器必須具有帶寬以服務(wù)總線上的總業(yè)務(wù)。作為折衷,通常實施多個緩沖器。然而,每一接收緩沖器具有相關(guān)聯(lián)的多個屏蔽寄存器及過濾器寄存器以及相關(guān)聯(lián)比較器。此需要大量硅面積。因此,此項技術(shù)中需要一種不需要大量硅面積的CAN實施方案。
發(fā)明內(nèi)容
根據(jù)一實施例,一種微控制器可包含隨機存取存儲器;及控制器區(qū)域網(wǎng)絡(luò)(CAN) 控制器,其包含接收經(jīng)匯編CAN消息的控制單元,其中所述控制單元使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目且將所述緩沖器描述符表條目存儲于所述隨機存取存儲器中, 且其中所述緩沖器描述符表條目包含來自所述CAN消息的至少一消息識別符及荷載數(shù)據(jù)以及隨后緩沖器描述符表條目的信息。根據(jù)進(jìn)一步實施例,緩沖器描述符表條目可具有恒定大小。根據(jù)進(jìn)一步實施例,所述緩沖器描述符表條目可進(jìn)一步包含幀狀態(tài)及擴展的CAN消息識別符。根據(jù)進(jìn)一步實施例,所述微控制器可為32位微控制器且所述緩沖器描述符表條目由六個32位字組成。根據(jù)進(jìn)一步實施例,所述緩沖器描述符表條目可包含幀狀態(tài)字、下一地址位置字、消息識別符字、擴展的消息識別符字、包含四個字節(jié)的第一數(shù)據(jù)字及包含四個字節(jié)的第二數(shù)據(jù)字。根據(jù)進(jìn)一步實施例,所述隨機存取存儲器可為雙端口或多端口存儲器。根據(jù)進(jìn)一步實施例,所述CAN控制器可包含與所述控制單元耦合的消息匯編緩沖器移位寄存器。根據(jù)進(jìn)一步實施例,所述CAN控制器可包含將多個屏蔽寄存器及多個濾波器寄存器與所述控制單元耦合的邏輯,其中所述邏輯產(chǎn)生指示所述消息匯編緩沖器移位寄存器中的有效條目的信號。根據(jù)另一實施例,一種在微控制器內(nèi)存儲控制器區(qū)域網(wǎng)絡(luò)(CAN)消息的方法可包含以下步驟_接收CAN消息;-匯編所述CAN消息;-使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目;及-將所述緩沖器描述符表條目存儲于所述微控制器的隨機存取存儲器中,其中所述緩沖器描述符表條目包含來自所述CAN消息的至少一消息識別符及荷載數(shù)據(jù)以及隨后緩沖器描述符表條目的信息。根據(jù)所述方法的進(jìn)一步實施例,所述CAN消息可為標(biāo)準(zhǔn)CAN消息以及擴展的CAN 消息。根據(jù)所述方法的進(jìn)一步實施例,緩沖器描述符表條目可具有恒定大小。根據(jù)所述方法的進(jìn)一步實施例,所述緩沖器描述符表條目可進(jìn)一步包含幀狀態(tài)及擴展的CAN消息識別符。根據(jù)所述方法的進(jìn)一步實施例,所述微控制器可為32位微控制器且所述緩沖器描述符表條目由六個32位字組成。根據(jù)所述方法的進(jìn)一步實施例,所述緩沖器描述符表條目可包含幀狀態(tài)字、下一地址位置字、消息識別符字、擴展的消息識別符字、包含四個字節(jié)的第一數(shù)據(jù)字及包含四個字節(jié)的第二數(shù)據(jù)字。根據(jù)所述方法的進(jìn)一步實施例,所述隨機存取存儲器可為雙端口或多端口存儲器。根據(jù)所述方法的進(jìn)一步實施例,可通過消息匯編緩沖器移位寄存器來執(zhí)行所述匯編CAN消息的步驟。根據(jù)所述方法的進(jìn)一步實施例,所述方法可進(jìn)一步包含借助多個屏蔽寄存器及多個濾波器寄存器來產(chǎn)生有效性信號的步驟,所述有效性信號指示所述消息匯編緩沖器移位寄存器中的有效條目。根據(jù)又一實施例,一種32位微控制器可包含雙端口 32位寬隨機存取存儲器;及控制器區(qū)域網(wǎng)絡(luò)(CAN)控制器,其包含接收經(jīng)匯編CAN消息的控制單元,其中所述控制單元使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目且將所述緩沖器描述符表條目存儲于所述隨機存取存儲器中,且其中所述緩沖器描述符表條目由32位幀狀態(tài)字、32位下一地址位置字、32位消息識別符字、32位擴展的消息識別符字、第一 32位數(shù)據(jù)字及第二 32位數(shù)據(jù)字組成。根據(jù)所述32位微控制器的進(jìn)一步實施例,所述CAN控制器可包含與所述控制單元耦合的消息匯編緩沖器移位寄存器。根據(jù)所述32位微控制器的進(jìn)一步實施例,所述CAN控制器可包含將多個屏蔽寄存器及多個濾波器寄存器與所述控制單元耦合的邏輯,其中所述邏輯產(chǎn)生指示所述消息匯編緩沖器移位寄存器中的有效條目的信號。根據(jù)下文更特定來說對如附圖中所圖解說明的本發(fā)明優(yōu)選實施例的說明將明了本發(fā)明的上述及其它目標(biāo)、特征及優(yōu)點。
圖1展示根據(jù)一實施例的具有CAN模塊/控制器的微控制器的部分的框圖;圖2展示常規(guī)CAN控制器的接收緩沖器及其相關(guān)聯(lián)濾波器的示意圖;圖3展示標(biāo)準(zhǔn)CAN消息與擴展的CAN消息之間的差異;圖4展示供與CAN控制器一起使用的根據(jù)一實施例的緩沖器描述符表;圖5展示使用圖4的緩沖器描述符表的微控制器的隨機存取存儲器;圖6展示來自圖1的CAN協(xié)議引擎的實施例;圖7展示比較器單元的示范性實施例;圖8展示位比較器單元的另一示范性實施例。
具體實施例方式參照圖2,其圖解說明供用于微控制器中的常規(guī)CAN控制器的接收緩沖器118、 120及122以及相關(guān)聯(lián)屏蔽102、108及濾波器寄存器104、106、110、112、114、116。緩沖器 120(指定為消息匯編緩沖器(MAB))發(fā)揮作用以僅監(jiān)視用于傳入消息的CAN邏輯總線(未展示)。MAB 120保持來自總線的經(jīng)去充填位流。所述位流由包含識別符及數(shù)據(jù)字段的消息(即,數(shù)據(jù)幀、遠(yuǎn)程幀或其它幀)組成(未展示)。CAN控制器包含(例如)兩個可由微控制器的CPU存取的專用緩沖器118及122。MAB 120允許這些接收緩沖器118及122并行存取所述消息。MAB 120還允許接受濾波器106及116存取所述消息的識別符部分。位流消息到接收緩沖器118或122的并行傳送在接受屏蔽102及108以及接受濾波器104、 106、110、112、114及116將接受匹配測試施加到所述消息之前可不被允許。所列緩沖器的數(shù)目僅為實例,可利用更多的緩沖器。分別使用可編程接受濾波器屏蔽102及108來選擇應(yīng)將未經(jīng)充填位流消息的哪些位與接受濾波器104及106以及110、112、114及116的內(nèi)容進(jìn)行比較。接受匹配測試如下進(jìn)行濾波器104、106、110、112、114及116接收所述消息的識別符字段且將所述字段與濾波器值進(jìn)行比較。如果所述識別符字段與濾波器值之間存在匹配,那么將所述消息加載到匹配濾波器的對應(yīng)接收緩沖器118或122中。濾波器104及106 連接到緩沖器118,濾波器110、112、114及116連接到緩沖器122。根據(jù)一實施例,接收緩沖器可存在暗示的優(yōu)先等級。舉例來說,緩沖器118可為較高優(yōu)先等級緩沖器且具有與其相關(guān)聯(lián)的消息接受濾波器104及106。緩沖器122可為較低優(yōu)先等級緩沖器且具有與其相關(guān)聯(lián)的接受濾波器110、112、114及116。與緩沖器118相關(guān)聯(lián)的濾波器比與緩沖器122相關(guān)聯(lián)的濾波器少意指緩沖器118比緩沖器122更具限制性。 更具限制性的緩沖器118含蓄地具有與其相關(guān)聯(lián)的較高臨界點。具有優(yōu)先等級并非要求, 但可為可選擇選項。在MAB 120快速連續(xù)地接收兩個“高優(yōu)先等級”消息時,接收緩沖器118(其被指定為第一高優(yōu)先等級緩沖器)將接收第一高優(yōu)先等級消息。在接收第二高優(yōu)先等級消息時, MAB 120發(fā)現(xiàn)緩沖器118當(dāng)前由高優(yōu)先等級消息占據(jù)。MAB 120接著引導(dǎo)緩沖器122 (其被指定為第二高優(yōu)先等級緩沖器)接收所述第二高優(yōu)先等級消息。在此情境中,緩沖器118 及122分別被排定等級為所述第一高優(yōu)先等級緩沖器及所述第二高優(yōu)先等級緩沖器。中央處理單元(CPU)(未在圖2中展示)可在接收緩沖器118及122中的一者上操作,而另一者供用于接收或保持先前接收的消息。根據(jù)示范性實施方案,在兩個高優(yōu)先等級消息的到達(dá)的情況下的協(xié)議可由接收緩沖器118及122的控制寄存器(未展示)中的BUKT位實現(xiàn)。表I描繪并解釋接收緩沖器 118的控制寄存器,其中R/W意指可讀取/可寫入位,且其中R意指只讀位。表 I位7 位6 位5 位4 位3 位2 位1 位0 R/W R/W R/W R/W R/W R/W R RAV
位7:消息就緒狀態(tài)
1=接收緩沖器含有有效所接收消息 0=接收緩沖器打開以接收新消息位僅由CAN模塊設(shè)定,位僅由CPU清空。 位6到5: 接收緩沖器操作模式
11=接收所有消息,包括那些具有錯誤的消息 10=僅接收具有擴展的識別符的有效消息 01=僅接收具有標(biāo)準(zhǔn)識別符的有效消息 00=接收所有有效消息位4:消息接收中斷啟用
1 =中斷被啟用 0=中斷被停用位3:所接收遠(yuǎn)程傳送請求
1二接收到遠(yuǎn)程傳送請求 0=未接收到遠(yuǎn)程傳送請求位2:(BUKT)啟用到接收緩沖器122的過流
1 =接收緩沖器118過流將寫入到緩沖器122 0=不允許到緩沖器122的過流位1:只讀取位2 (BUKT)的拷貝
位0:指示哪一接受濾波器啟用消息接收
1 =與緩沖器122相關(guān)聯(lián)的接受濾波器
0=與緩沖器118相關(guān)聯(lián)的接受濾波器如果設(shè)定為“1”,那么BMT位實施基于優(yōu)先等級的協(xié)議。表II描繪并解釋接收緩
沖器122的控制寄存器。表 II位7 位6 位5 位4 位3 位2 位1 位0 R/W R/W R/W R/W R/W R/W R/W R7W
位7:消息就緒狀態(tài)
1=接收緩沖器含有有效所接收消息 0=接收緩沖器打開以接收新消息位僅由CAN模塊設(shè)定,位僅由CPU清空。 位6到5: 接收緩沖器操作模式[這些位是任選的]
11=接收所有消息,包括那些具有錯誤的消息 10=僅接收具有擴展的識別符的有效消息 01 =僅接收具有標(biāo)準(zhǔn)識別符的有效消息 00=接收所有有效消息位4:消息接收中斷啟用
1 =中斷被啟用 0=中斷被停用位3:所接收遠(yuǎn)程傳送請求
1=接收到遠(yuǎn)程傳送請求 0=未接收到遠(yuǎn)程傳送請求位2到0: 指示哪一接受濾波器啟用消息接收 101 =接受濾波器116 100=接受濾波器114 Oil =接受濾波器112 010=接受濾波器110
001 =接受濾波器106 [僅在緩沖器118的控制寄存器中BUKT位設(shè)定為“1”的情況下]
000 =接受濾波器104 [僅在緩沖器118的控制寄存器中BUKT位設(shè)定為“1”的情況下] 圖1展示供用于微控制器中的CAN控制器的示范性實施例。微控制器被視為包含至少一 CPU、存儲器及多個外圍裝置的單芯片裝置,例如CAN模塊。在CAN模塊/控制器的此實施例中,第一及第二屏蔽寄存器415及420可為可逐位尋址的且可包含單個輸出位。此外,多個濾波器寄存器0··· N(僅展示兩個)由編號425及430指定。濾波器寄存器425、 430也可包含單個輸出位且是可逐位尋址的。另外,屏蔽寄存器415及420以及所有濾波器寄存器425、430可為可由中央處理單元485以并行模式讀取及寫入(圖1中未展示連接)。定序器與控制單元410可作為位選擇單元操作且產(chǎn)生地址信號,所述地址信號被饋送到屏蔽寄存器415及420以及所有濾波器寄存器425、430。每一濾波器寄存器425、430可包含相關(guān)聯(lián)位比較器單元435、440。屏蔽寄存器415及420的位輸出信號被饋送到位比較器單元435、440的第一及第二輸入。此外,濾波器寄存器425、430的每一位輸出可被饋送到其相關(guān)聯(lián)位比較器單元435、440的第三輸入。來自CAN總線的位流信號由CAN協(xié)議引擎480 提供且被饋送到每一位比較器單元435、440的第四輸入。濾波器寄存器425、430可提供額外存儲位,所述額外存儲位與每一相關(guān)聯(lián)位比較器單元的第四輸入耦合??商峁┚哂懈倩蚋嗟墓δ苄缘腃AN模塊的其它設(shè)計。根據(jù)各種實施例,每一位比較器單元435、440的輸出可載運接受信號且與描述符表控制單元460的控制輸入耦合??商峁┚哂信c濾波器寄存器的數(shù)目一樣多的輸入的OR 門450。每一輸入從相應(yīng)位比較器單元435、440接收接受信號。描述符表控制單元460的地址輸出與微控制器的與CPU 485耦合的通用隨機存取存儲器470的地址輸入耦合。OR門 450的輸出與描述符表控制單元460的另一控制輸入耦合。根據(jù)一實施例,隨機存取存儲器470可為雙端口或多端口存儲器,其第一數(shù)據(jù)端口與描述符表控制單元460的數(shù)據(jù)輸出耦合。描述符表控制單元460從標(biāo)準(zhǔn)消息匯編緩沖器移位寄存器490接收經(jīng)匯編消息,標(biāo)準(zhǔn)消息匯編緩沖器移位寄存器490又從CAN協(xié)議引擎495接收串行數(shù)據(jù)流。存儲器470的第二數(shù)據(jù)端口與中央處理單元485耦合。然而,根據(jù)另一實施例,CPU 485與描述符表控制單元460可共享與存儲器470耦合的同一數(shù)據(jù)總線。使用特定設(shè)計的緩沖器描述符表來以特定方式將CAN消息存儲到隨機存取存儲器470中。通常,(例如)從以太網(wǎng)協(xié)議知道的緩沖器描述符表(BDT)具有與其相關(guān)聯(lián)的顯著開銷。此外,此些傳統(tǒng)緩沖器描述符表存儲指針數(shù)據(jù),所述指針數(shù)據(jù)分支到實際上存儲附加到消息或嵌入于消息中的數(shù)據(jù)的存儲器的不同部分。BDT可含有相對大量的必須讀取的信息。當(dāng)結(jié)合顯著大于BDT中所含有的信息的數(shù)據(jù)消息讀取BDT時,那么讀取及處理BDT 中的信息的開銷相對低。此導(dǎo)致顯著開銷及復(fù)雜的存儲器管理。然而,對于具有小數(shù)據(jù)大小的應(yīng)用,例如CAN系統(tǒng),用于從BDT讀取及處理信息的開銷可顯著影響系統(tǒng)性能。因此,根據(jù)各種實施例提供供用于CAN控制器中的特定設(shè)計的緩沖器描述符表。 此特定設(shè)計的緩沖器描述符表減少從CAN裝置的BDT讀取及處理信息的開銷。根據(jù)一實施例,已設(shè)計一種輕量級BDT,其中每一緩沖器描述符表條目可具有恒定大小及/或含有實際數(shù)據(jù)荷載。根據(jù)本發(fā)明的教示,此輕量級BDT放棄完全BDT的一些靈活性,但節(jié)約顯著硅面積、所需的處理能力及總線存取。在輕量級BDT中,消除對數(shù)據(jù)的指針且可合并狀態(tài)字段, 因此每BDT查找節(jié)約兩次( 讀取。不限制應(yīng)用專用緩沖器。而是,系統(tǒng)存儲器或可用RAM的大小理論上限制多少條目可用。如上文所提及,根據(jù)一實施例所使用的特定描述符表允許快速數(shù)據(jù)檢索,因為使所需讀取的數(shù)目最小化。根據(jù)一實施例,緩沖器描述符表可包含以下條目。編號210指定含有幀狀態(tài)的具有32位的第一條目。編號220指定下一表條目的32位地址。地址220允許存儲器的靈活處置。舉例來說,可使用多個非連續(xù)存儲器段來代替連續(xù)表條目。編號230 含有標(biāo)準(zhǔn)CAN識別符(SID)且編號240含有擴展的識別符及DLC條目。以下兩個32位字 250及260包含CAN消息的實際8個數(shù)據(jù)字節(jié)??稍O(shè)計其它緩沖器描述符表。根據(jù)各種實施例的基本要求是包括實際數(shù)據(jù)荷載以及對下一表條目的指針。另外,可添加狀態(tài)信息及各種識別符信息。相應(yīng)條目的次序可變化且不重要。描述符表控制單元460以圖4中所示的此特定設(shè)計的緩沖器描述符表操作。圖3 展示標(biāo)準(zhǔn)及擴展的消息被接收于消息匯編緩沖器移位寄存器490中時的標(biāo)準(zhǔn)及擴展的消息。主要差異在于額外發(fā)送者識別符,其中在擴展的版本中,將額外四個位提供給標(biāo)準(zhǔn)11 位識別符。兩個版本中的數(shù)據(jù)有效荷載為8個字節(jié)。因此,最多需要14個字節(jié)來存儲CAN 消息。一旦經(jīng)接收,經(jīng)匯編消息被并行轉(zhuǎn)發(fā)到描述符表控制單元460。描述符表控制單元 460還接收經(jīng)由屏蔽寄存器415、420、濾波器寄存器425、430及評估邏輯435、440、450產(chǎn)生的所有必需控制信號。在接收到待傳送到緩沖器中的有效消息之后,描述符表控制單元460 借助從消息匯編緩沖器接收的數(shù)據(jù)產(chǎn)生如圖4中所示的緩沖器描述符表條目。如果此為第一表條目,那么可從相關(guān)聯(lián)控制寄存器檢索開始表地址。否則,使用來自先前所存儲的表條目的字段220的下一可用地址。因此,不必需專用緩沖器存儲器,特定來說不必需需要集成電路上的實質(zhì)面積的FIFO。根據(jù)本發(fā)明的各種實施例提供在不考慮其相應(yīng)復(fù)雜性的情況下與USB及以太網(wǎng)裝置類似的外觀及感覺。控制單元僅必須存儲對第一存儲器條目的指針, 此節(jié)約大量原本需要的存儲容量及邏輯。舉例來說,通過高等級指令(例如,存儲器分配指令(malloc)或任何其它合適的存儲器分配指令),用戶程序可將存儲器空間分配給CAN控制器且將開始及結(jié)束地址指派給描述符表控制單元460。用戶程序接著可僅檢索相應(yīng)表條目,其中每一表條目內(nèi)的固定指派允許非??焖俚臋z索。由于緩沖器的大小僅受存儲器大小的限制,因此緩沖器的非常靈活的管理適用,其中不會容易地丟失數(shù)據(jù)。如圖4中所設(shè)計的緩沖器描述符表針對來自存儲于存儲器中的表條目的實際CAN消息僅需要四次字讀取。狀態(tài)字段可容易地更新且含有所有必需信息??刂茊卧扇菀椎匕〞r間戳條目。此外,實際數(shù)據(jù)荷載總是存儲于表條目內(nèi)且因此具有從每一表條目的開始地址的 (舉例來說)四個32位字的恒定偏移(見圖4)。此結(jié)構(gòu)中不存在可變長度,此允許快速地檢索所需信息。圖5展示可如何將數(shù)據(jù)存儲于RAM 470中??纱鎯τ趯S每刂萍拇嫫髦械腃AN緩沖器開始地址指示表條目的開始。每一表條目中的第二 32位數(shù)據(jù)字含有下一表條目的實際地址,其可如實線所展示為連續(xù)的或如斷線所展示為不連續(xù)的。以逐位方式而非并行地進(jìn)行濾波器寄存器425、430中所存儲的濾波器值與所傳輸識別符的比較。因此,避免需要相對大量的硅面積的并行比較器。CAN協(xié)議引擎495所提供的串行數(shù)據(jù)流包含識別符,所述識別符被直接饋送到所有位比較器單元435、440。定序器與控制單元410尋址屏蔽寄存器415、420及所有濾波器寄存器425、430以將對應(yīng)位輸出到位比較器單元435、440。位比較器單元435、440將所有濾波器寄存器位與幀內(nèi)的相應(yīng)識別符位進(jìn)行比較。通過將結(jié)果與相應(yīng)屏蔽寄存器位進(jìn)行比較來對其進(jìn)行進(jìn)一步處理。為此, 每一濾波器寄存器425、430的額外存儲位可指示哪一屏蔽寄存器應(yīng)用于此比較。下文將更詳細(xì)地解釋此功能。將針對幀內(nèi)的每一識別符的所有位積累最終比較結(jié)果。如果單個比較失敗,那么將不產(chǎn)生接受信號。如果每個位比較為正,那么會將接受信號饋送到描述符表控制單元460且饋送到OR門450的相應(yīng)輸入。圖6更詳細(xì)地展示來自圖1的CAN協(xié)議引擎480。協(xié)議引擎480組合數(shù)個功能塊。 引擎480的心臟是協(xié)議有限狀態(tài)機310 (FSM)。此狀態(tài)機逐位地定序經(jīng)過消息,從而在傳輸或接收各種幀類型的各種字段時改變機器的狀態(tài)。FSM 310為控制分別在RX/TX移位寄存器320、325、CRC寄存器330以及接收總線350及傳輸總線360之間的順序數(shù)據(jù)流的定序器。移位寄存器320、325可為消息匯編寄存器490的部分。提供額外組件355及365以轉(zhuǎn)換數(shù)據(jù)流且適應(yīng)總線350及360上的相應(yīng)計時。FSM還控制錯誤管理邏輯340 (EML)及TX/ RX移位寄存器320、325與CAN模塊的其它組件之間的并行數(shù)據(jù)流RecData。根據(jù)CAN協(xié)議執(zhí)行接收仲裁、傳輸及錯誤信令的過程。FSM 310還處置總線上消息的任何自動傳輸。到協(xié)議引擎480的數(shù)據(jù)接口由字節(jié)寬的傳輸及接收數(shù)據(jù)組成。并非匯編及移位整個幀,而是將幀破分成字節(jié)。來自協(xié)議FSM 310的接收或傳輸?shù)刂繁砻鲙哪囊蛔止?jié)是當(dāng)前的。對于傳輸,選擇來自傳輸緩沖器的適當(dāng)字節(jié)且將其呈現(xiàn)給引擎,引擎接著使用8位移位寄存器來將數(shù)據(jù)串行化。對于接收,8位移位寄存器匯編字節(jié),所述字節(jié)接著被加載于消息匯編緩沖器490中的適當(dāng)字節(jié)內(nèi)。循環(huán)冗余校驗寄存器330產(chǎn)生供在數(shù)據(jù)字節(jié)上傳輸?shù)难h(huán)冗余校驗(CRC)碼且校驗傳入消息的CRC碼。錯誤管理邏輯(EML) 340負(fù)責(zé)CAN裝置的故障約束。通過來自位流處理器的命令遞增及遞減其計數(shù)器,接收錯誤計數(shù)器及傳輸錯誤計數(shù)器。根據(jù)錯誤計數(shù)器的值,CAN控制器被設(shè)定成主動錯誤狀態(tài)、被動錯誤狀態(tài)或總線關(guān)斷狀態(tài)。單元355內(nèi)的位計時邏輯(BTL)監(jiān)視總線輸入且根據(jù)CAN協(xié)議處置與總線相關(guān)的位計時。如果CAN控制器本身不傳輸占有位,那么BTL在幀的開始的空閑到占有總線轉(zhuǎn)變上及在任何進(jìn)一步空閑到占有總線轉(zhuǎn)變上同步。BTL還提供可編程時間段以補償傳播延遲時間及相移,且在界定位時間中的取樣點的位置時進(jìn)行補償。BTL的編程取決于波特率及外部物理延遲時間。在圖7中,展示比較器單元的示范性實施例。展示單個位比較器單元的細(xì)節(jié),但所述細(xì)節(jié)相應(yīng)地適用于所有其它位比較器單元。編號600指示提供CAN串行數(shù)據(jù)流的單元, 所述CAN串行數(shù)據(jù)流被饋送到消息匯編緩沖器寄存器490及異NOR門690的第一輸入。濾波器寄存器620的單個位輸出與異NOR門690的第二輸入耦合,異NOR門690的輸出與NOR 門650的第一輸入連接。NOR門650的第二輸入從屏蔽寄存器630接收單個位輸出信號。 NOR門650的輸出與AND門660的第一輸入耦合,AND門660的輸出與D觸發(fā)器670的控制輸入耦合。D觸發(fā)器670的輸入D與邏輯“低”信號(例如,Vcc)耦合。D觸發(fā)器670的反相輸出與AND門640的第一輸入耦合,AND門640的輸出提供接受信號。AND門640及660 分別包含第二輸入ACC_RDY及BIT_RDY,其用于與相應(yīng)輸入信號同步。位選擇邏輯610與濾波器寄存器620及屏蔽寄存器630耦合以選擇將用于每一幀內(nèi)的比較的相應(yīng)位。傳入CAN位流與位選擇邏輯610同步。換句話說,位選擇邏輯610選擇濾波器寄存器620及屏蔽寄存器630中對應(yīng)于串行位流的傳入位的相應(yīng)位。實際比較器由在兩個輸入信號相同的情況下僅在其輸出處產(chǎn)生邏輯“高”的異NOR門690形成。NOR門650用作屏蔽單元以在屏蔽寄存器630內(nèi)的相應(yīng)位被設(shè)定的情況下屏蔽掉結(jié)果。D觸發(fā)器670用作寄存器以積累一連串比較內(nèi)的結(jié)果且在幀的開始被預(yù)設(shè)定為“1”。僅在幀內(nèi)的所有比較成功的情況下,將產(chǎn)生AND門640的輸出處的接受信號AccN。否則,D觸發(fā)器670由錯誤比較結(jié)果設(shè)定為“0”且保持為“0”直到幀的結(jié)束。使用兩個控制信號ACC_RDY及BIT_RDY來同步及激活相應(yīng)信號。圖8更詳細(xì)地展示具有甚至更多功能性的位比較器單元435、440的另一示范性實施例。而且,展示位比較器單元0的細(xì)節(jié),但所述細(xì)節(jié)可相應(yīng)地適用于所有其它位比較器單元。屏蔽寄存器415及420的輸出與4:1多路復(fù)用器520的第一及第二輸入耦合??稍诙嗦窂?fù)用器520的第三及第四輸入處提供額外輸入560及570。舉例來說,輸入560與由編號580指定的濾波器寄存器15的輸出耦合。濾波器寄存器425包含(舉例來說)與多路復(fù)用器520的選擇輸入耦合的兩個額外輸出。多路復(fù)用器520可具有任何大小,舉例來說, 可擴充到N: 1多路復(fù)用器,從而將屏蔽的數(shù)目增加到N。多路復(fù)用器520的輸出連接到NOR 門530的第一輸入。NOR門530作為確認(rèn)單元操作,從而指示是否將使用或忽略比較結(jié)果。 NOR門530的第二輸入與異NOR門510的輸出耦合,異NOR門510的第一輸入從濾波器寄存器425接收位輸出信號且其第二輸入從CAN協(xié)議引擎495接收串行數(shù)據(jù)流。NOR門530的輸出與D觸發(fā)器MO的控制輸入耦合。D觸發(fā)器540的D輸入接收邏輯低信號。在D觸發(fā)器540的求反輸出550處載運接受信號。根據(jù)一實施例,第一比較級由異NOR門510形成。在此級中,將串行位流的識別符位與濾波器寄存器425的相應(yīng)位進(jìn)行比較。異NOR門510僅在兩個輸入信號相同的情況下在其輸出處產(chǎn)生邏輯“高”。定序器單元410選擇濾波器寄存器425內(nèi)的相應(yīng)位。濾波器寄存器425包含指示應(yīng)使用哪一屏蔽寄存器的額外數(shù)據(jù)位。在此示范性實施例中,可選擇四個不同值。可選擇屏蔽寄存器415或420中的任一者或可由另一濾波器寄存器(舉例來說,濾波器寄存器1 提供第三值。可使用第四可能選擇570來指示通過提供相應(yīng)電平(舉例來說,邏輯“1”)將不使用屏蔽。因此,可給每一濾波器寄存器425、430指派個別屏蔽功能。選定屏蔽值將放在NOR門530的第一輸入處。如果所述屏蔽值指示應(yīng)使用濾波器寄存器425中的相應(yīng)位,那么NOR門530將作為可控制開關(guān)操作且將異NOR門510的比較結(jié)果饋送到控制輸入D觸發(fā)器MO。D觸發(fā)器540用作被預(yù)設(shè)定為“1”的寄存器。如果一個比較的結(jié)果為負(fù)(指示沒有匹配)且相應(yīng)屏蔽位無效,那么將清空D觸發(fā)器540且將不產(chǎn)生接受信號550。D觸發(fā)器540因此將重設(shè)為“0”。D觸發(fā)器540將預(yù)設(shè)定為“1”,從而再次以下一幀開始以比較另一識別符,如上文所描述??墒褂萌魏纹渌愋偷倪m當(dāng)邏輯來實施比較器。舉例來說,可使用可控制開關(guān)、等效布林運算器等。此外,可將確認(rèn)單元放在比較器前面或比較器之后。確認(rèn)單元的基本功能是并入選定位或?qū)⑵鋸谋容^中排除。因此,本發(fā)明極適于實施所述目標(biāo)并獲得所提及的結(jié)果及優(yōu)點以及其中固有的其它結(jié)果及優(yōu)點。雖然已參照本發(fā)明的特定優(yōu)選實施例描述、描述及界定了本發(fā)明,但此些參照并不暗示對本發(fā)明的限制,且不應(yīng)推斷出存在此種限制。本發(fā)明能夠在形式及功能上做出大量修改、替代及等效形式,所屬領(lǐng)域的技術(shù)人員將聯(lián)想到所述修改、替代及等效形式。 所描繪及所描述的本發(fā)明的優(yōu)選實施例僅為示范性,且并非對本發(fā)明的范圍的窮盡性說明。因此,本發(fā)明既定僅由所附權(quán)利要求書的精神及范圍的限制,從而在所有方面賦予對等效物的完全認(rèn)知。
權(quán)利要求
1.一種微控制器,其包含隨機存取存儲器;控制器區(qū)域網(wǎng)絡(luò)(CAN)控制器,其包含接收經(jīng)匯編CAN消息的控制單元,其中所述控制單元使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目且將所述緩沖器描述符表條目存儲于所述隨機存取存儲器中,且其中所述緩沖器描述符表條目包含來自所述CAN消息的至少一消息識別符及荷載數(shù)據(jù)以及隨后緩沖器描述符表條目的信息。
2.根據(jù)權(quán)利要求1所述的微控制器,其中緩沖器描述符表條目具有恒定大小。
3.根據(jù)權(quán)利要求1所述的微控制器,其中所述緩沖器描述符表條目進(jìn)一步包含幀狀態(tài)及擴展的CAN消息識別符。
4.根據(jù)權(quán)利要求1所述的微控制器,其中所述微控制器為32位微控制器且所述緩沖器描述符表條目由六個32位字組成。
5.根據(jù)權(quán)利要求1所述的微控制器,其中所述緩沖器描述符表條目包含幀狀態(tài)字、下一地址位置字、消息識別符字、擴展的消息識別符字、包含四個字節(jié)的第一數(shù)據(jù)字及包含四個字節(jié)的第二數(shù)據(jù)字。
6.根據(jù)權(quán)利要求1所述的微控制器,其中所述隨機存取存儲器為雙端口或多端口存儲ο
7.根據(jù)權(quán)利要求1所述的微控制器,其中所述CAN控制器包含與所述控制單元耦合的消息匯編緩沖器移位寄存器。
8.根據(jù)權(quán)利要求7所述的微控制器,其中所述CAN控制器包含將多個屏蔽寄存器及多個濾波器寄存器與所述控制單元耦合的邏輯,其中所述邏輯產(chǎn)生指示所述消息匯編緩沖器移位寄存器中的有效條目的信號。
9.一種在微控制器內(nèi)存儲控制器區(qū)域網(wǎng)絡(luò)(CAN)消息的方法,其包含以下步驟接收CAN消息;匯編所述CAN消息;使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目;及將所述緩沖器描述符表條目存儲于所述微控制器的隨機存取存儲器中,其中所述緩沖器描述符表條目包含來自所述CAN消息的至少一消息識別符及荷載數(shù)據(jù)以及隨后緩沖器描述符表條目的信息。
10.根據(jù)權(quán)利要求9所述的方法,其中所述CAN消息可為標(biāo)準(zhǔn)CAN消息以及擴展的CAN 消息。
11.根據(jù)權(quán)利要求9所述的方法,其中緩沖器描述符表條目具有恒定大小。
12.根據(jù)權(quán)利要求9所述的方法,其中所述緩沖器描述符表條目進(jìn)一步包含幀狀態(tài)及擴展的CAN消息識別符。
13.根據(jù)權(quán)利要求9所述的方法,其中所述微控制器為32位微控制器且所述緩沖器描述符表條目由六個32位字組成。
14.根據(jù)權(quán)利要求9所述的方法,其中所述緩沖器描述符表條目包含幀狀態(tài)字、下一地址位置字、消息識別符字、擴展的消息識別符字、包含四個字節(jié)的第一數(shù)據(jù)字及包含四個字節(jié)的第二數(shù)據(jù)字。
15.根據(jù)權(quán)利要求9所述的方法,其中所述隨機存取存儲器為雙端口或多端口存儲器。
16.根據(jù)權(quán)利要求9所述的方法,其中通過消息匯編緩沖器移位寄存器來執(zhí)行所述匯編CAN消息的步驟。
17.根據(jù)權(quán)利要求16所述的方法,其進(jìn)一步包含借助多個屏蔽寄存器及多個濾波器寄存器來產(chǎn)生有效性信號的步驟,所述有效性信號指示所述消息匯編緩沖器移位寄存器中的有效條目。
18.一種32位微控制器,其包含雙端口 32位寬隨機存取存儲器;及控制器區(qū)域網(wǎng)絡(luò)(CAN)控制器,其包含接收經(jīng)匯編CAN消息的控制單元,其中所述控制單元使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目且將所述緩沖器描述符表條目存儲于所述隨機存取存儲器中,且其中所述緩沖器描述符表條目由32位幀狀態(tài)字、32位下一地址位置字、32位消息識別符字、32位擴展的消息識別符字、第一 32位數(shù)據(jù)字及第二 32位數(shù)據(jù)字組成。
19.根據(jù)權(quán)利要求17所述的微控制器,其中所述CAN控制器包含與所述控制單元耦合的消息匯編緩沖器移位寄存器。
20.根據(jù)權(quán)利要求18所述的微控制器,其中所述CAN控制器包含將多個屏蔽寄存器及多個濾波器寄存器與所述控制單元耦合的邏輯,其中所述邏輯產(chǎn)生指示所述消息匯編緩沖器移位寄存器中的有效條目的信號。
全文摘要
一種微控制器具有隨機存取存儲器;及控制器區(qū)域網(wǎng)絡(luò)(CAN)控制器,其具有接收經(jīng)匯編CAN消息的控制單元。所述控制單元使用所述經(jīng)匯編CAN消息產(chǎn)生緩沖器描述符表條目且將所述緩沖器描述符表條目存儲于所述隨機存取存儲器中,且所述緩沖器描述符表條目具有來自所述CAN消息的至少一消息識別符及荷載數(shù)據(jù)以及隨后緩沖器描述符表條目的信息。
文檔編號H04L12/413GK102326363SQ201080008842
公開日2012年1月18日 申請日期2010年5月21日 優(yōu)先權(quán)日2009年5月28日
發(fā)明者史蒂文·G·道森, 約瑟夫·W·特里斯, 蒂姆·L·威爾遜 申請人:密克羅奇普技術(shù)公司