TWI524699B - 控制器區域網路(can)控制器單元、儲存can訊息之方法及相關聯微控制器 - Google Patents
控制器區域網路(can)控制器單元、儲存can訊息之方法及相關聯微控制器 Download PDFInfo
- Publication number
- TWI524699B TWI524699B TW099112906A TW99112906A TWI524699B TW I524699 B TWI524699 B TW I524699B TW 099112906 A TW099112906 A TW 099112906A TW 99112906 A TW99112906 A TW 99112906A TW I524699 B TWI524699 B TW I524699B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- buffer
- bit
- register
- control
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 29
- 239000000872 buffer Substances 0.000 claims description 177
- 230000015654 memory Effects 0.000 claims description 81
- 238000013519 translation Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 1
- 239000000370 acceptor Substances 0.000 description 1
- 238000003556 assay Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/413—Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/067—Bidirectional FIFO, i.e. system allowing data transfer in two directions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Description
本發明係關於控制器區域網路(CAN或CAN匯流排)相容微控制器,且特定言之係關於CAN訊息之儲存。
本申請案主張2009年4月23日申請之美國臨時專利申請案第61/171,891號、標題為「藉由剝取CAN識別符及其他非資料資訊之CAN訊息串連(CAN MESSAGE DATA CONCATENATION BY STRIPPING CAN IDENTIFIER AND OTHER NON-DATA INFORMATION)」之權利,其之全部內容併入本文中。
控制器區域網路(CAN)為一串列通信協定,該協定有效支援具有一高水準安全性之分散式即時控制。CAN之應用範圍自高速數位通信網路至低成本多工佈線。CAN為用於即時應用的一高整合度串列資料通信匯流排。CAN以至多每秒一百萬位元之資料速率操作、具有極佳的錯誤偵測及界限性能,且最初其係經發展用於汽車中但是現在亦可用於其他領域。在該CAN匯流排與CPU之間的介面通常稱為CAN控制器。CAN背後的動機藉由改良汽車電子產品、引擎控制單元、感測器、防滑煞車系統等之互通性而使汽車更可靠、安全且燃油效率高,同時減小佈線重量及複雜度。自CAN創始以來,該CAN協定在工業自動化及汽車/卡車應用中已獲得廣泛流行。CAN匯流排在噪音環境中之耐久性及偵測故障情況及自故障情況恢復之能力使得CAN適合與工業控制設備、醫療設備、測試設備、行動機器及攜帶式機器、電器等一起使用。
CAN係具有一邏輯匯流排線之一非同步串列匯流排系統。其具有含相同匯流排節點之一開放、線性匯流排結構。一CAN匯流排由兩個或多個節點組成。該匯流排上之節點數目在不擾動其他節點之通信時可動態變化。
CAN邏輯匯流排對應於一「接線及(wired-AND)」機構,「弱勢(recessive)」位元(大多數但不一定與邏輯位準「1」等價)係由「強勢(dominant)」位元(大多數為邏輯位準「0」)覆寫。只要無匯流排節點正在發送一強勢位元,則該匯流排線處於弱勢狀態,但是來自任何匯流排節點之一強勢位元產生強勢匯流排狀態。因此,針對該CAN匯流排線,選擇可傳輸兩個可能的位元狀態(強勢及弱勢)之一媒體。所使用之一共同實體媒體為一雙絞線。則該等匯流排線稱為「CANH」及「CANL」,且可直接連接至諸CAN控制器節點或經由一連接器連接至該等CAN控制器節點。
在該CAN匯流排協定中,並非經定址之諸匯流排節點而是位址資訊包含在所傳輸之諸訊息中。此係經由識別訊息內容(例如,引擎速度、油溫等)之一識別符(各訊息之一部分)而達成。該識別符額外地表示該訊息之優先權。該識別符之二進位值越低,該訊息之優先權越高(更多強勢位元)。
最初的CAN規範(第1.0、1.2及2.0A版)定義該訊息識別符為具有一11位元之長度,給出可能的2048個訊息識別符。一「擴充的CAN」規範第2.0B版允許使用11及/或29位元之訊息識別符長度(29位元之一識別符長度允許超過536百萬個訊息識別符)。該等CAN規範(所有版本)係以引用的方式併入本文中以用於所有目的。
一般而言,因為該CAN標準未涵蓋該CAN控制器之一架構,所以CAN可使用兩種方法,此兩種方法為:「BasicCAN」與「FullCAN」(請勿與CAN 1及CAN 2或標準識別符及經擴充識別符混淆);其等在訊息之緩衝方面不同。
除了該BasicCAN控制器架構發送完整的訊框而非字元,該BasicCAN控制器架構類似於簡單UART。通常存在一單一傳輸緩衝器及一雙緩衝接收緩衝器。舉例而言,一微控制器將一訊框放置在該傳輸緩衝器中,且當發送該訊框時接收一中斷。當在該接收緩衝器中接收一訊框時,該微控制器接收一中斷以清空該接收緩衝器且在接收一後續訊框之前自該接收緩衝器清空該訊框。在該BasicCAN控制器架構中,該微控制器必須管理該傳輸及接收且處置該等訊框之儲存。
該FullCAN控制器架構包括一專屬緩衝器且將諸訊框儲存在此專屬緩衝器中。可取決於該專屬緩衝器之大小處理一有限數目之訊框。使用映射至該緩衝器之訊框的識別符標記各訊框緩衝器。該微控制器可更新該緩衝器中之一訊框且對其進行標示以便傳輸。可檢查諸接收緩衝器以看看是否已接收具有一匹配識別符之一訊框。此外,篩選器可用於預先篩選一經接收之訊框,使得唯有意欲由該特定CAN控制器使用之該等訊框被儲存在一接收緩衝器中。
CAN協定通常可利用兩個版本:CAN 1.0及CAN 2.0。CAN 2.0與CAN 1.0回溯相容,且大多數新的控制器係根據CAN 2.0而建立。該CAN 2.0標準中存在兩個部分:部分A及部分B。在CAN 1.0與CAN 2.0A下,諸識別符必須為11位元長度。在CAN 2.0B下,諸識別符可為11位元(一「標準」識別符)或29位元(一經「擴充」之識別符)。為遵守CAN 2.0,一控制器必須為2.0部分B被動或2.0部分B主動。若該控制器為被動,則其必須忽略經擴充之訊框(諸CAN 1.0控制器在其等見到具有29位元識別符之訊框時將產生錯誤訊框)。若該控制器為主動,則其必須允許接收及傳輸經擴充之訊框。存在用於發送及接收該兩種類型之訊框之一些相容性規則:CAN 2.0B主動控制器將發送及接受標準訊框及經擴充之訊框兩者。CAN 2.0B被動控制器將發送及接收標準訊框,且將在無錯誤下廢除諸經擴充之訊框。
CAN 1.0控制器將在其等見到經擴充之訊框時產生錯誤。因此,其中在一網路上存在一單一CAN 1.0控制器之一網路無法在該網路上以經擴充之訊框運行;所有該等控制器必須使用標準訊框發送。
諸控制器之架構未被該CAN標準涵蓋,因此在如何使用其等之方面存在一變化。儘管存在兩個一般方法:BasicCAN及FullCAN(請勿與CAN 1.0及2.0或標準識別符及經擴充識別符混淆);其等在訊息之緩衝方面不同。
如上所述,在一BasicCAN控制器中,除了其發送完整的訊框而非字元,該架構類似於一簡單UART:(通常)存在一單一傳輸緩衝器及一雙緩衝接收緩衝器。CPU將一訊框放置在該傳輸緩衝器中,且當該訊框被發送時進行一中斷;該CPU在該接收緩衝器中接收一訊框,進行一中斷且清空該緩衝器(在接收一後續訊框之前)。該CPU必須管理傳輸與接收,且處置該等訊框之儲存。
如上所述,在一FullCAN控制器中,該等訊框係儲存在該控制器之一專屬緩衝器中。可處理一有限數目之訊框(通常16個);因為該網路上存在更多訊框,所以使用映射至該緩衝器之訊框之識別符標記各緩衝器。該CPU可更新該緩衝器中之一訊框且對其進行標示以便傳輸;可檢查諸緩衝器以看看是否已接收具有一匹配識別符之一訊框。
關於FullCAN設計之意圖係在該網路中提供一組「共用變數」;該CPU週期性地更新該等變數(亦即,該緩衝器中之諸訊框之內容);該CPU亦可檢查該等變數。實際上,因為同作之困難,所以事實不是如此簡單(當然):當自一訊框讀取一組位元組時,該控制器可使用一新的訊框之諸內容覆寫該資料,且在許多控制器中,此僅是藉由一狀態旗標發信號。
在「Basic CAN」實施方案中,大致上存在具有一或多個相關訊息接受篩選器之一雙緩衝接收通道。僅具有一雙緩衝訊息通道意謂該處理器必須能夠在此時間內處置前面的訊息。在「Full CAN」實施方案中,大致上存在至多15個訊息緩衝器或通道,各具有一相關訊息接受篩選器。若該處理器非常慢,則具有一大數目之接收緩衝器可有助於處理訊息訊務之叢發,然而,若全部訊息訊務超越了該處理器性能,則再多緩衝也無法阻止最終丟失一訊息。一般而言,該等訊息係傳送至一中央處理單元(CPU)可讀取之一FIFO記憶體中。接著該CPU負責中斷該經接收之資料或分離該控制資訊與該資料負載。然而,在許多應用中,至少對一傳輸之特定部分而言,不關注經附加控制資訊且該資料負載係在必須自該FIFO記憶體重新組譯之複數個訊息上散布。此可引起不想要的CPU額外負擔。因此,在該項技術中存在使一使用者可更便利處置特定資料傳輸之一CAN實施方案的一需要。
根據一實施例,一控制器區域網路(CAN)控制器單元可包括:接收一串列位元串流之一訊息組譯緩衝器;與該訊息組譯緩衝器並列耦合之一緩衝器記憶體;與該訊息組譯及該緩衝器記憶體耦合之一CAN控制單元;及至少一控制暫存器,其中該至少一控制暫存器係可操作以程式化,以使該CAN控制單元在至少一第一模式及第二模式下儲存接收於該訊息組譯暫存器中之一訊息,其中在該第一模式下,將該經接收之CAN訊息之控制資訊及資料有效負載儲存在該緩衝器記憶體中,且在該第二模式下,僅將該CAN訊息之該資料有效負載儲存在該緩衝器記憶體中。
根據一進一步實施例,該控制暫存器可包括表示該第二模式被設定之一第一位元。根據一進一步實施例,該控制暫存器可經程式化以使該CAN控制單元進一步連同該控制資訊一起儲存時間戳記資訊。根據一進一步實施例,該控制暫存器可包括表示儲存該時間戳記資訊之一第二位元。根據一進一步實施例,該控制暫存器可包括表示何時產生該時間戳記資訊之一第三位元。根據一進一步實施例,當在該第二模式下時,該器件可忽視起始儲存時間戳記資訊之一設定。根據一進一步實施例,該緩衝器記憶體可為一FIFO記憶體。根據一進一步實施例,該FIFO記憶體可包括複數個可組態FIFO緩衝器。根據一進一步實施例,該緩衝器記憶體可包括複數個可組態緩衝器。根據一進一步實施例,該單元可進一步包括用於各可組態緩衝器之控制暫存器包括用於確定一各自緩衝器之一操作模式之至少一位元。根據一進一步實施例,該單元可進一步包括將複數個遮罩暫存器及複數個篩選器暫存器與該CAN控制單元耦合之邏輯,其中該邏輯產生表示該訊息組譯緩衝器移位暫存器中之一有效項目之一信號。
根據另一實施例,儲存一控制器區域網路(CAN)訊息之一方法可包括以下步驟:接收一CAN訊息;組譯該CAN訊息;及確定一儲存模式,其中在一第一模式下,將該經接收之CAN訊息之控制資訊及資料有效負載儲存在一緩衝器記憶體中且在該第二模式下,僅將該CAN訊息之資料有效負載儲存在該緩衝器記憶體中。
根據本方法之一進一步實施例,該CAN訊息可為一標準CAN訊息以及一經擴充之CAN訊息。根據該方法之一進一步實施例,該第二模式可藉由設定一控制暫存器中之一第一位元而程式化。根據該方法之一進一步實施例,可提供複數個緩衝器記憶體,且可在相關控制暫存器中程式化各緩衝器記憶體之一操作模式。根據該方法之一進一步實施例,可提供一第三模式,在該第三模式下,儲存時間戳記資訊連同該控制資訊及資料有效負載。根據該方法之一進一步實施例,可程式地產生時間戳記資訊。根據該方法之一進一步實施例,該第三模式可藉由設定一控制暫存器中之一第二位元而程式化。根據該方法之一進一步實施例,當在該第二模式下時,可忽視起始儲存時間戳記資訊之一設定。根據該方法之一進一步實施例,該緩衝器記憶體可為一FIFO記憶體。根據該方法之一進一步實施例,該FIFO記憶體可包括複數個可組態FIFO緩衝器且進一步包括組態該等FIFO緩衝器之步驟。根據該方法之一進一步實施例,組譯一CAN訊息之步驟是可由一訊息組譯緩衝器移位暫存器執行。根據該方法之一進一步實施例,該方法可進一步包括以下步驟:藉由表示該訊息組譯緩衝器移位暫存器中之一有效項目之複數個遮罩暫存器及複數個篩選器暫存器產生一有效性信號。
根據又另一實施例,一微控制器可包括一中央處理單元(CPU);一控制器區域網路(CAN)控制器,其包括:接收一串列位元串流之一訊息組譯緩衝器;與該訊息組譯緩衝器且與該CPU並列耦合之一FIFO記憶體;與該訊息組譯及該FIFO記憶體耦合之一CAN控制單元;及一控制暫存器,其中該控制暫存器係可操作以由該CPU藉由設定一位元而程式化,以使該CAN控制單元在至少一第一模式及第二模式下儲存接收於該訊息組譯暫存器中之一訊息,其中在該第一模式下,將該經接收之CAN訊息之控制資訊及資料有效負載儲存在該FIFO記憶體中,且在該第二模式下,僅將該CAN訊息之該資料有效負載儲存在該FIFO記憶體中。
根據該微控制器之一進一步實施例,該微控制器可進一步包括一時間擷取單元,其中該控制暫存器包括一第二位元,該第二位元可經程式化以使該CAN控制單元進一步自該時間擷取單元儲存時間戳記資訊連同該控制資訊。
自下文(更特定言之,本發明之諸較佳實施例之描述),本發明之前面及其他目的、特徵及優點將變得顯而易見,其等如諸隨附圖式中所繪示。
參考圖10,繪示用於一微控制器之一習知CAN控制器的接收緩衝器818、820及822及相關遮罩802、808及篩選器暫存器804、806、810、812、814、816。經指定作為一訊息組譯緩衝器(MAB)之緩衝器820之功能為僅監測用於傳入訊息之該CAN邏輯匯流排(未顯示)。該MAB 820保持來自該匯流排線之一去填充位元串流。該位元串流由包括一識別符及資料欄位(未顯示)之一訊息(亦即,一資料訊框、遠端訊框或其他訊框)組成。該CAN控制器包括可由一微控制器之CPU存取之兩個專屬緩衝器818及822。該MAB 820允許此等接收緩衝器818及822對該訊息並列存取。MAB 820亦允許接受篩選器806及816對該訊息之識別符部分存取。直到接受遮罩802及808與接受篩選器804、806、810、812、814及816對該訊息應用一接受匹配測試,才可允許將該位元串流訊息並列傳送至接收緩衝器818或822。
可程式接受篩選器遮罩802及808分別用來選擇該未填充位元串流訊息之哪些位元應與諸接受篩選器804及806、及810、812、814及816之內容相比較。
如下進行該接受匹配測試:諸篩選器804、806、810、812、814及816接收該訊息之識別符欄位且比較該欄位與諸篩選器值。若在該識別符欄位與一篩選器值之間存在一匹配,則將該訊息載入至該匹配篩選器的對應接收緩衝器818或822中。篩選器804及806係連接至緩衝器818,篩選器810、812、814及816係連接至緩衝器822。
對該等接收緩衝器而言,存在一隱含的優先權。緩衝器818為較高優先權緩衝器且具有與其相關之訊息接受篩選器804及806。緩衝器822為較低優先權緩衝器且具有與其相關之接受篩選器810、812、814及816。與緩衝器818相關之篩選器比與緩衝器822相關的篩選器少意謂緩衝器818比緩衝器822更限制。更限制之緩衝器818(隱含)具有與其相關之更高臨界性。
當MAB 820一連串地接收兩個「高優先權」訊息之情形中,經指定作為該第一高優先權緩衝器之接收緩衝器818將接收該第一高優先權訊息。在接收第二高優先權訊息之後,MAB 820發現緩衝器818當前被一高優先權訊息佔用。接著MAB 820引導經指定作為該第二高優先權緩衝器之緩衝器822接收該第二高優先權訊息。在此方案中,分別將緩衝器818及822排為該第一高優先權緩衝器及該第二高優先權緩衝器。
該中央處理單元(CPU)(未顯示於圖10中)可操作於該等接收緩衝器818及822之一者上,而另一者可用於接收或保持一先前接收之訊息。
在兩個高優先權訊息到達之情形中,該協定受到接收緩衝器818及822之該等控制暫存器(未顯示)中之BUKT位元影響。表I描述且解釋接收緩衝器818之控制暫存器,其中R/W意謂可讀/可寫位元,且其中R意謂唯讀位元。
若該BUKT位元是經設定為「1」,則該BUKT位元實施一基於優先權之協定。表II描述且解釋接收緩衝器822之控制暫存器。
圖1顯示根據一實施例之一習知CAN控制器之修改。此處,僅顯示一CAN控制器之最相關部分。該訊息組譯緩衝器(MAB)區塊110係與一緩衝器記憶體120耦合。記憶體120可經組態為一FIFO記憶體且可為一獨立的記憶體器件。然而,根據其他實施例,記憶體120亦可由一微處理器系統或微控制器之一主要記憶體形成。因此,一微控制器可使用其之通用記憶體(例如,其之資料記憶體)且指派經指定以形成緩衝器記憶體120之一記憶體空間。特定言之,若緩衝器記憶體120係由一標準記憶體器件形成,則可增加額外電路以對緩衝器記憶體120增加一FIFO記憶體之功能。
提供一CAN控制引擎130以控制將一經接收的緩衝項目傳送至該記憶體120。至少一控制暫存器140係與CAN控制引擎130耦合且可程式以選擇多種不同的操作模式。可將緩衝器記憶體或FIFO記憶體120分為如所顯示之複數個緩衝器或FIFO 0、...、FIFO 31。各緩衝器/FIFO 0、...FIFO 31可具有多個訊息項目,其中該等緩衝器/FIFO在大小及操作特徵上為可程式。舉例而言,FIFO 0具有四個訊息緩衝器(MB 0至MB 3)項目,FIFO 1具有兩個緩衝器項目等。圖1亦顯示各FIFO 0、...、FIFO 32之例示性相關開始位址。根據一實施例,經指派儲存來自該MAB 110之一訊息之一緩衝器項目150可由四個32位元雙字組(32-bit double word)組成。根據各種實施例,組態暫存器140可具有表示來自該MAB 110之資料被儲存在該緩衝器記憶體120中之模式之一第一位元160且視情況亦具有一第二位元170。例如,該第一位元160可表示僅將CAN訊息之資料負載傳送至該FIFO 120中。因此,當被設定時,所有進一步控制資訊被丟棄且唯有該資料負載被傳送至FIFO記憶體120中。根據另一實施例,該第二位元170可用來將來自一時間擷取單元180之額外時間戳記資訊增加至該經接收之訊息。可根據進一步實施例實施如由暫存器140中之虛線額外位元所表示之多個第二位元170,以規定是否在該訊息之第一位元(開始位元)處或該訊息之結束(停止位元)處擷取時間。因此,可選擇引起時間戳記之實際事件。具有更多指定模式位元之其他組態是可能的。
通常可存在一組態暫存器,用於由虛線所表示之該器件中之各FIFO。圖1中之各FIFO具有一單獨位元將允許一應用將一FIFO當作一資料累積FIFO(其中位元160經設定)且將一單獨FIFO作為需要由一CPU進一步處理之一同屬FIFO(其中位元160清除)。
圖1顯示具有其中位元160為清除之經組態FIFO 0之一方案。在此一實施例中,各訊息緩衝器(MB 0至MB 3)包括具有如圖4(其中位元170清除)或圖5(其中位元170經設定)中所示而佈局之資料之4個32位元字組(32-bit word)。根據另一實例,若FIFO 0係經組態具有經設定之位元160,則圖1中之緩衝器項目150將僅具有對應於如圖6中所顯示之來自該CAN協定之一資料之兩個32位元字組(DATA 0及DATA 1)。因此,根據一實施例,當位元160係經設定時,CAN控制引擎130控制CAN訊息之傳送,使得僅將該CAN訊息之資料負載傳送至該FIFO 120中。可將此完成,使得在無任何間歇控制資訊下,於FIFO 120內形成一連續的資料串流。
該模組含有用於儲存CAN訊息之許多FIFO緩衝器FIFO 0、...、FIFO 31。可完全組態該等FIFO,其中CAN訊息儲存在該模組外(系統記憶體中之任何位置)。各FIFO可能可組態為一傳輸FIFO或接收FIFO,該傳輸FIFO或接收FIFO具有一獨立大小、一使用者可讀頭/尾指標、獨立可組態中斷、在傳輸或接收諸訊息時給出諸訊息之狀態之其他狀態位元。
根據一實施例,可執行以下步驟來組態該等CAN模組FIFO:將該模組置於組態模式(OPMOD=100);分配記憶體之一區域(通常SRAM之區塊)其中定位該FIFO;以該FIFO之實體開始(基礎)位址更新一各自暫存器;以該FIFO大小更新該FIFO控制暫存器(CFIFOCON.FSIZE);選擇該FIFO為一傳輸FIFO或接收FIFO(CFIFOCON.TXEN);設定控制暫存器140中之該等控制位元之任一者,例如位元160或位元170;且將該模組置於正常模式(OPMOD=000)。
一旦FIFO記憶體120之一FIFO緩衝器已經組態為一傳輸FIFO,則該使用者可使用該FIFO緩衝器來傳輸資料。該使用者可讀取該FIFO尾指標(CFIFOUA),該尾指標給出FIFO中之下一位置以放置待傳輸之該訊息。此位址將須由該CPU轉譯為一虛擬位址。應在CFIFOUA所給出的該位置處開始載入該CAN訊息。一旦該FIFO緩衝器已使用待傳輸之該訊息載入,則該使用者藉由設定該CFIFOCON.UINC位元累加該FIFO頭指標。此將累加該頭指標且將CFIFOUA所指向的位址增加四個32位元字組或16個位元組。接著備妥傳輸該訊息。
一旦FIFO記憶體120之一FIFO緩衝器已被組態為一接收FIFO,其中該各自傳送模式由諸控制位元160、位元170或任何其他控制位元設定,則當訊息由FIFO接收時,該使用者將可讀取訊息。在接收一訊息之後,該使用者將自CFIFOUA讀取該訊息之開始之實體位址。接著可自此位址讀取該訊息。在自該FIFO讀取該訊息之後,該使用者可藉由設定一CFIFOCON.UNIC位元來更新該尾指標。此將累加該尾指標且取決於控制暫存器140中之位元160之值將由CFIFOUA所指向的該位址增加4或2。然而,可自動執行此一累加,如將參考圖2在下文更詳細解釋。
該CAN模組持續監測該CAN匯流排上的訊息。當諸訊息由該CAN模組接收時,該訊息識別符可與當前被組態之篩選器/遮罩合併比較,如將在下文結合另一實施例更詳細解釋。若出現一匹配,則該模組將在由一指標暫存器所指向的FIFO中儲存該訊息。
圖3顯示標準CAN訊息與經擴充訊息之結構。該兩個類型在增加至該訊息之控制資料之大小上不同。特定言之,該經擴充之訊息允許一明顯更長的識別位元,然而兩個訊息中所承載之實際資料之大小總係8個位元組。此等訊息間歇地儲存在該訊息組譯緩衝器110中且接著在CAN控制引擎130之控制下被傳送至記憶體120之一各自FIFO。取決於該緩衝器記憶體120之設計及構成,應用儲存該等訊息之不同方法。舉例而言,在一32位元系統中,各緩衝器項目MB0、MB1、MB2、MB3可具有四個32位元字組DATA0、DATA1、DATA2及DATA3。在一第一操作模式下,可將一經接收之標準訊息或經擴充訊息儲存在此等四個32位元字組內,其中該前兩個字組DATA0及DATA1可含有識別符(SID、EID)及控制位元(例如表示包含在該訊息中之實際資料(DLC)長度),然而,實際資料總係儲存在第三字組DATA2及第四字組DATA3中。圖4中顯示此之一實例。一第二模式可類似於該第一模式且可藉由設定(例如)控制暫存器140中之一各自位元170而觸發。若此位元係經設定,則可將可自一時間擷取單元180獲得之額外資訊儲存在該前兩個資料字組DATA0及DATA1中,該時間擷取單元係藉由接收一訊息(或開始一訊息)而選擇地觸發。因此,可將自時間擷取單元180中之一各自計時器擷取之一時間戳記資訊增加至該訊息。圖5中顯示此之一實例。
根據各種實施例,存在僅儲存該資料之一特殊的接收模式,且該識別符、經保留之位元及其他控制資訊不與該訊息一起儲存。該使用者藉由設定該控制暫存器140中之位元160啟用此模式。在此模式下,在不管該控制資訊下,儲存8位元組的資料。因此,根據一特定實施例,忽略該資料長度資訊(DLC)且可使用00h填充未使用的位元組。此模式之一可能使用是串連其等之資料橫跨多個訊息之訊息,例如,橫越該CAN匯流排傳輸一字串。根據一實施例,即使如上文所解釋之各自位元170係經設定,無時間戳記與該資料一起儲存。
舉例而言,若將一字串「Hello World」自一節點1發送至一節點2,則需要兩個訊息,因為該字串長於8個位元組。在該等前兩個操作模式下,將如下儲存該等訊息:
而在其中位元160經設定之該第三模式下,將如下儲存該訊息:
因此,在該第三模式下,該記憶體120僅使用各CAN訊息之資料循序地填充。因此,該第三模式將在剖析全部經接收諸CAN訊息時移除重要的軟體額外負擔。此亦將允許較輕鬆串連橫跨在多個訊息上之訊息且節省保存訊息所需之硬體,因為正常需要四個32位元字組儲存位址及資料有效負載,而該第三模式將僅需要兩個32位元字組來儲存該資料有效負載。
圖2顯示一例示性實施例之一更詳細方塊圖。第一遮罩暫存器215及第二遮罩暫存器220為按位元可定址且包括一單一輸出位元。此外,複數個篩選器暫存器0、...、N(僅兩個被顯示)由數字225及230指定。該等篩選器暫存器225、230亦包括一單一輸出位元且可按位元定址。此外,一中央處理單元297在一並列模式下可讀取且可寫入遮罩暫存器215及220以及篩選器暫存器225、230(連接未顯示於圖2中)。一定序器及控制單元210操作為一位元選擇單元且產生回饋至遮罩暫存器215及220及所有篩選器暫存器225、230之位址信號。各篩選器暫存器225、230包括一相關位元比較器單元235、240。遮罩暫存器215及220之位元輸出信號係回饋至位元比較器單元235、240之第一輸入及第二輸入。此外,該等篩選器暫存器225、230之各位元輸出係回饋至其等之相關位元比較器單元235、240之一第三輸入。來自一CAN匯流排之一位元串流信號係由一CAN協定引擎295提供且回饋至各位元比較器單元235、240之一第四輸入。諸篩選器暫存器225、230可提供與各相關位元比較器單元之一第五輸入耦合之額外儲存位元。各位元比較器單元235、240之輸出承載接受信號且與一相關緩衝器指標245、250之一控制輸入耦合。提供一或閘255,其具有與篩選器暫存器數量相當之許多輸入。各輸入自一各自位元比較器單元235、240接收一接受信號。各緩衝器指標245及250之該等輸出係與連接至一多功能位址暫存器260之一位址輸入的一緩衝器指標匯流排262耦合。或閘255之輸出係與多功能暫存器260之一控制輸入耦合。多功能暫存器260進一步包括:一模式控制輸入265;一第一狀態輸出275,其表示一緩衝器記憶體285是否為滿;一第二狀態輸出280,其表示該緩衝器記憶體285是否為空;及用於該多功能位址暫存器260之一計數器功能之一上/下控制輸入。多功能位址暫存器260之一位址輸出264係與緩衝器記憶體285之位址輸入耦合。緩衝器記憶體285係可完全組態為一FIFO且可具有可為大小可變之複數個FIFO緩衝器。緩衝器記憶體285可經組態為一雙埠記憶體,其之第一埠係與自該CAN協定引擎295接收串列資料串流之一訊息組譯緩衝器移位暫存器290耦合。CAN協定引擎295可具有一或多個組態暫存器。圖2顯示FIFO模式暫存器299,其控制表示資料係以哪一方式自該訊息組譯緩衝器移位暫存器290傳送至緩衝器記憶體285之該各自FIFO緩衝器中之操作模式。緩衝器記憶體285之該第二埠可與中央處理單元297耦合,該中央處理單元係進一步與用於儲存程式及資料資訊之一記憶體296耦合。
此實施例再次提供相同模式,以將來自一串列資料串流之資料寫入至如上文將解釋之該緩衝器記憶體285中。可以一按位元方式而非以並列達成儲存在篩選器暫存器225、230中之篩選器值與所傳輸之識別符之比較。因此,可避免需要相對大量矽面積之並列比較器。由CAN協定引擎295所提供之一串列資料串流包括直接回饋至所有位元比較器單元235、240之一識別符。定序器及控制單元210定址該等遮罩暫存器215、220及所有篩選器暫存器225、230以將一對應位元輸出至該等位元比較器單元235、240。該等位元比較器單元235、240比較所有篩選器暫存器位元與一訊框內之該各自識別符位元。該結果係藉由比較其與該各自遮罩暫存器位元而進一步處理。為此,各篩選器暫存器225、230之諸額外儲存位元可表示哪一遮罩暫存器應用於此比較。將在下文更詳細解釋此功能。將針對一訊框內之各識別符之所有位元累積最終比較結果。若一單一比較失敗,則將不產生接受信號。若各位元比較為正,則該接受信號將回饋至該各自緩衝器指標245、250及至或閘255之一各自輸入。
一中央處理單元297可以下列方式控制多功能位址暫存器260。根據一實施例,可透過模式信號265選擇兩個功能模式。在該第一功能模式中,緩衝器指標245、250含有緩衝器記憶體285中之位址以將資料直接寫入至緩衝器記憶體285中之特定位置處。多功能位址暫存器260鎖存已放置在位址匯流排262上的一位址且定址以並列儲存已由訊息組譯緩衝移位暫存器290所組譯之資料之緩衝器記憶體285,其中CAN協定引擎295控制來自訊息組譯緩衝器移位暫存器290之哪些資料係傳送至該緩衝器記憶體285中。
可藉由控制信號265選擇一第二功能模式。在此模式下,不需要該等緩衝器指標245、250且因此該等緩衝器指標245、250之輸出信號將被忽略。當啟動此模式時,多功能位址暫存器內之實際位址暫存器(例如)係經設定為「Fh」且該狀態信號280將用信號發送一空緩衝器。每當一位元比較器單元235、240產生一接受信號時,此觸發該多功能位址暫存器260之一累加功能且因此其之內容將累加1。因此,由訊息組譯緩衝器移位暫存器290所組譯之該第一資料將在CAN協定引擎295之控制下儲存於記憶體位置0處。此功能提供該CAN模組之一純FIFO功能,在此功能中無緩衝器與任何位元比較器相關。該FIFO記憶體285將被循序地寫入,直到該位址再次到達「Fh」(其表示該緩衝器為滿,除非該CPU已讀取先前項目)。控制信號275將表示一滿的FIFO記憶體285。在一額外模式下,控制信號270可在位址暫存器之一累加或遞減功能之間進行選擇。該CPU 297可提供額外信號以表示是否已讀取一緩衝器值以產生合適的狀態信號275及280且確保在值被CPU 297提取之前無值將被覆寫。可實施該緩衝器記憶體285之其他功能模式。
FIFO模式控制暫存器299可具有複數個位元,各位元表示如上文關於圖1所解釋之該FIFO 285之一特定操作模式。圖4至圖7更詳細顯示前面所解釋之三個可能操作模式。在圖4中,顯示正常模式,在該正常模式下儲存一標準CAN訊息或經擴充CAN訊息。該第一32字組使用11個位元儲存該識別符SID。該第二32位元字組之27個位元用於儲存各種控制位元DRR、IDE、經擴充的識別符EID、位元RTR、RB1、RB0及資料長度資訊DLC。該第三32位元字組及該第四32位元字組儲存資料位元組0至7。圖5顯示時間戳記模式,在該模式下,將時間戳記資訊CMSGTS儲存在該第一32位元字組之上部的16個位元中,且將篩選器資訊儲存在該第一32位元字組之隨後的5個前面未使用之位元中。與該第一操作模式相同而使用其他三個32位元資料字組。
圖6顯示當FIFO模式暫存器299中之各自位元被設定時儲存一訊息之方式。現在,僅儲存該資料有效負載而佔用該第一32位元字組及第二32位元字組。接著使用第三32位元字組及第四32位元字組來儲存一連序訊息之資料。
圖7更詳細顯示來自圖1之CAN協定引擎480。該協定引擎480合併若干功能區塊。該引擎480之核心是協定有限狀態機310(FSM)。當各種訊框類型之各種欄位被傳輸或接收時,此狀態機基於逐一位元將全部該等訊息定序,改變該機器之狀態。該FSM 310為一定序器,其控制分別在RX/TX移位暫存器320、325、CRC暫存器330與接收匯流排線350及傳輸匯流排線360之間的循序資料串流。該等移位暫存器320、325可為該訊息組譯暫存器490之一部分。提供額外組件355及365來轉換該等資料串流且適應於該等匯流排線350及360上之各自時序。該FSM亦控制錯誤管理邏輯340(EML)及在該TX/RX移位暫存器320、325及該CAN模組之其他組件之間的並列資料串流RecData。根據該CAN協定而執行接收仲裁、傳輸及錯誤發信號之程序。該FSM 310亦處置該匯流排線上的訊息之任何自動傳輸。
至該協定引擎480之資料介面由位元組寬之傳輸及接收資料組成。並不組譯且移位一完整訊框,而是將該等訊框分解為諸位元組。來自該協定FSM 310之一接收或傳輸位址表達當前為該訊框的哪一位元組。來自該傳輸緩衝器之適當位元組是經選擇且呈現給該引擎以供傳輸,該引擎接著使用一8位元移位暫存器來串連化該資料。一8位元移位暫存器組譯一位元組以便接收,該位元組接著被載入該訊息組譯緩衝器490中之適當位元組內。
循環冗餘核對暫存器330產生在該等資料位元組上傳輸之循環冗餘核對(CRC)碼且核對傳入訊息之CRC碼。錯誤管理邏輯(EML)340負責該CAN器件之故障界限。其之計數器(接收錯誤計數器及傳輸錯誤計數器)係藉由來自該位元串流處理器之命令而累加及遞減。該CAN控制器係根據該等錯誤計數器之諸值而設定為:狀態錯誤主動、錯誤被動或匯流排中斷。
單元355內之位元時序邏輯(BTL)根據該CAN協定監測該匯流排線輸入且處置該匯流排線相關位元時序。該BTL在訊框之開始處同步於一弱勢至強勢匯流排線之轉變且若該CAN控制器自身不傳輸一強勢位元,則同步於任何進一步弱勢匯流排線至強勢匯流排線之轉變。該BTL亦提供可程式的時間片段以補償傳播延遲時間及相移且於該位元時間中之樣本點的位置之定義。該BTL之程式化取決於鮑率及取決於外部實體延遲時間。
在圖8中顯示一比較器單元之一例示性實施例。該等細節是針對一單一位元比較器單元而顯示,但是相應地應用於所有其他位元比較器單元。數字600表示提供一CAN串列資料串流之一單元,該CAN串列資料串流係回饋至一訊息組譯緩衝器暫存器490及一互斥反或閘690之第一輸入。一篩選器暫存器620之單一位元輸出係與互斥反或閘690之第二輸入耦合,該互斥反或閘690的輸出係與一反或閘650之第一輸入連接。反或閘650之輸出自遮罩暫存器630接收單一位元輸出信號。反或閘650之第二輸入係與一及閘660之第一輸入耦合,該及閘660之輸出係與一D正反器670之控制輸入耦合。D正反器670之輸入D係與一邏輯「低」信號(諸如Vcc)耦合。D正反器670之反轉輸出係與及閘640之該第一輸入耦合,該及閘640之輸出提供接受信號。及閘640及660包括第二輸入ACC_RDY及BIT_RDY,其等各自用於與該等各自輸入信號同步。一位元選擇邏輯610係與篩選器暫存器620及遮罩暫存器630耦合以選擇將用於各訊框內之比較的該等各自位元。
該傳入CAN位元串流係與該位元選擇邏輯610同步。換言之,位元選擇邏輯610選擇篩選器暫存器620及遮罩暫存器630中之對應於該串列位元串流之傳入位元之各自位元。實際比較器是由互斥反或閘690形成,若兩個輸入信號相同,則其僅在其之輸出處產生一邏輯「高」。若該遮罩暫存器630內之一各自位元係經設定,則反或閘650係用作為一遮罩單元以遮罩輸出一結果。D正反器670係用作為一暫存器以在一系列的比較內累積諸結果且係在一訊框之開始處經預先設定為「1」。只有一訊框內之所有比較是成功的,則將在及閘640之輸出處產生接受信號AccN。否則該D正反器670係藉由一錯誤的比較結果而設定為「0」且停留在「0」直到該訊框結束。該兩個控制信號ACC_RDY及BIT_RDY是用來同步且啟動該等各自信號。
圖9更詳細顯示具有甚至更多功能之一位元比較器單元435、440之另一例示性實施例。再次,該等細節係針對位元比較器單元0而顯示,但是相應地應用於所有其他位元比較器單元。遮罩暫存器415及420之輸出係與一4:1多工器520之第一輸入及第二輸入耦合。可在多工器520之第三及第四輸入處提供額外的輸入560及570。舉例而言,輸入560係與由數字580指定之篩選器暫存器15之輸出耦合。舉例而言,篩選器暫存器425包括與多工器520之選擇輸入耦合之兩個額外輸出。多工器520可具有任何大小,舉例而言,可將遮罩數目增加至N而擴充為一N:1之多工器。多工器520之輸出係連接至一反或閘530之該第一輸入。反或閘530操作為表示將使用或忽略一比較結果之一效驗單元。反或閘530之第二輸入係與一互斥反或閘510之輸出耦合,該互斥反或閘510之第一輸入自篩選器暫存器425接收位元輸出信號且其之第二輸入自CAN協定引擎495接收該串列資料串流。反或閘530之該輸出係與一D正反器540之控制輸入耦合。D正反器540之該D輸入接收一邏輯低信號。在D正反器540之負輸出550處承載該接受信號。
該第一比較級係由互斥反或閘510形成。在此級中,該串列位元串流之諸識別符位元係與篩選器暫存器425之各自位元比較。若兩個輸入信號相同,則互斥反或閘510僅在其之輸出處產生一邏輯「高」。定序器單元410選擇篩選器暫存器425內之該等各自位元。篩選器暫存器425包括表示應使用哪一遮罩暫存器之額外資料位元。在此例示性實施例中,可選擇四個不同的值。可選擇該等遮罩暫存器415或420之一者或者可由另一篩選器暫存器(例如,篩選器暫存器15)提供一第三值。第四個可能的選擇570可用於藉由提供一各自位準(例如,一邏輯「1」)而表示無遮罩將被使用。因此,可對各篩選器暫存器425、430指派一單獨遮罩功能。該所選遮罩值將被置於反或閘530之該第一輸入處。若該遮罩值表示應使用篩選器暫存器425中之該各自位元,則反或閘530將操作為一可控制開關且將互斥反或閘510之比較結果回饋至該控制輸入D正反器540。D正反器540係用作經預先設定為「1」之一暫存器。若一比較之結果為負,則表示不匹配且該各自遮罩位元為有效,將清除D正反器540且無接受信號550將被產生。D正反器540因此將被重新設定為「0」。D正反器540將再次使用下一個訊框開始而經預先設定為「1」以與如以上所描述之另一識別符相比較。
可使用任何其他類型之適當邏輯來實施該比較器。舉例而言,可使用可控制開關、等效布林運算元等。此外,可將該效驗單元放置在該比較器之前或該比較器之後。一效驗單元之基本功能可併入所選位元或自比較中將其等排除。
因此,本發明係經較佳調適以實現該等目標及獲得所提及的目標及優點,以及其中其他內在性質。雖然已參考本發明之諸特定較佳實施例描繪、描述及定義本發明,但是此等參考並不隱含對本發明之一限制,且不推斷此限制。本發明係如熟習相關技術者將想到,可在形式及功能上具有相當多的修改、變更及等效物。本發明所描繪及所描述的諸較佳實施例僅為例示性,且未詳盡本發明之範圍。因此,本發明意欲僅受限於附加申請專利範圍之精神及範圍,但充分認識各方面之諸等效物。
110...訊息組譯緩衝器
120...緩衝器記憶體
130...CAN控制引擎
140...控制暫存器
150...緩衝器項目
160...第一位元
170...第二位元
180...時間擷取單元
210...定序器及控制單元
215...遮罩暫存器0
220...遮罩暫存器1
225...篩選器暫存器0
230...篩選器暫存器N
235...位元比較器0
240...位元比較器N
245...緩衝器指標0
250...緩衝器指標N
260...多功能位址暫存器
285...記憶體/FIFO
290...訊息組譯緩衝器移位暫存器
295...控制器區域網路(CAN)協定引擎
296...記憶體
297...中央處理單元
299...FIFO模式暫存器
310...協定有限狀態機
320...移位暫存器
325...移位暫存器
330...循環冗餘核對暫存器
355...接收+時序邏輯
340...錯誤管理邏輯
335...比較器
350...匯流排線
355...額外組件
360...匯流排線
365...額外組件
415...遮罩0
420...遮罩1
425...篩選器0
510...互斥反或閘
520...多工器
530...反或閘
540...D正反器
550...輸出
560...額外輸入
570...額外輸入
580...篩選器15
490...訊息組譯緩衝器暫存器
600...CAN位元串流
610...位元選擇邏輯
620...篩選器暫存器
630...遮罩暫存器
640...及閘
650...反或閘
660...及閘
670...D正反器
690...互斥反或閘
802...接受遮罩
804...接受篩選器
806...接受篩選器
808...接受遮罩
810...接受篩選器
812...接受篩選器
814...接受篩選器
816...接受篩選器
818...接收緩衝器
820...接收緩衝器
822...接收緩衝器
圖1顯示根據一實施例之一CAN模組/控制器部分之一方塊圖;
圖2顯示根據另一實施例之具有一CAN模組/控制器之一微控制器部分之一方塊圖;
圖3顯示一標準CAN訊息與一經擴充CAN訊息之間之區別;
圖4顯示在一第一操作模式中之一FIFO的構成;
圖5顯示在一第二操作模式中的一FIFO之構成;
圖6顯示在一第三操作模式中之一FIFO之構成;
圖7顯示來自圖1之一實施例CAN協定引擎;
圖8顯示一比較器單元之一例示性實施例;
圖9顯示一位元產生器單元之另一例示性實施例;及
圖10顯示一習知CAN控制器模組。
110...訊息組譯緩衝器
120...緩衝器記憶體
130...控制器區域網路(CAN)控制引擎
140...控制暫存器
150...緩衝器項目
160...第一位元
170...第二位元
180...時間擷取單元
Claims (25)
- 一種控制器區域網路(CAN)控制器單元,其包括:接收一串列位元串流之一訊息組譯緩衝器;與該訊息組譯緩衝器並列耦合之一緩衝器記憶體;與該訊息組譯緩衝器及該緩衝器記憶體耦合之一CAN控制單元;及至少一控制暫存器,其中該至少一控制暫存器是可操作以經程式化,以使該CAN控制單元在至少一第一模式及第二模式下儲存接收於該訊息組譯暫存器中之一訊息,其中在該第一模式下,將該經接收之CAN訊息之控制資訊及資料有效負載儲存在該緩衝器記憶體中,且在該第二模式下,僅將該CAN訊息之該資料有效負載儲存在該緩衝器記憶體中。
- 如請求項1之單元,其中該控制暫存器包括表示該第二模式係經設定之一第一位元。
- 如請求項1之單元,其中該控制暫存器可經程式化以使該CAN控制單元進一步儲存時間戳記資訊連同該控制資訊。
- 如請求項3之單元,其中該控制暫存器包括表示儲存該時間戳記資訊之一第二位元。
- 如請求項4之單元,其中該控制暫存器包括表示何時產生該時間戳記資訊之一第三位元。
- 如請求項3之單元,其中當在該第二模式下時,忽略儲存該時間戳記資訊之一程式化。
- 如請求項1之單元,其中該緩衝器記憶體為一FIFO記憶體。
- 如請求項7之單元,其中該FIFO記憶體包括複數個可組態FIFO緩衝器。
- 如請求項1之單元,其中該緩衝器記憶體包括複數個可組態緩衝器。
- 如請求項9之單元,其進一步包括用於各可組態緩衝器之控制暫存器,該等控制暫存器包括用於確定一各自緩衝器之一操作模式之至少一位元。
- 如請求項1之單元,其進一步包括將複數個遮罩暫存器及複數個篩選器暫存器與該CAN控制單元耦合之邏輯,其中該邏輯產生表示該訊息組譯緩衝器移位暫存器中之一有效項目的一信號。
- 一種儲存一控制器區域網路(CAN)訊息之方法,其包括以下步驟:程式化至少一控制暫存器以致使一CAN控制單元在至少一第一及第二儲存模式中儲存一在一訊息組譯暫存器中所接收之CAN訊息;接收一CAN訊息;在該訊息組譯暫存器中組譯該CAN訊息;確定一來自該至少一控制暫存器之儲存模式,其中在一第一模式下,將該經接收CAN訊息之控制資訊及資料有效負載儲存在一緩衝器記憶體中,且在該第二模式下,僅將該CAN訊息之該資料有效負載儲存在該緩衝器 記憶體中。
- 如請求項12之方法,其中該CAN訊息可為一標準CAN訊息以及一經擴充CAN訊息。
- 如請求項12之方法,其中該第二模式係藉由設定一控制暫存器中之一第一位元而得以程式化。
- 如請求項12之方法,其中提供複數個緩衝器記憶體且可在相關控制暫存器中程式化各緩衝器記憶體之一操作模式。
- 如請求項12之方法,其進一步包括一第三模式,在該第三模式下,儲存時間戳記資訊連同該控制資訊及資料有效負載。
- 如請求項16之方法,其中可程式地產生時間戳記資訊。
- 如請求項16之方法,其中該第三模式係藉由設定一控制暫存器中之一第二位元而程式化。
- 如請求項16之方法,其中當在該第二模式下時,忽略儲存該時間戳記資訊之一程式化。
- 如請求項12之方法,其中該緩衝器記憶體為一FIFO記憶體。
- 如請求項20之方法,其中該FIFO記憶體包括複數個可組態FIFO緩衝器,且進一步包括組態該等FIFO緩衝器之步驟。
- 如請求項12之方法,其中組譯一CAN訊息之該步驟是由一訊息組譯緩衝器移位暫存器執行。
- 如請求項12之方法,其進一步包括以下步驟:藉由複數 個遮罩暫存器及複數個篩選器暫存器產生一有效性信號,該有效性信號表示該訊息組譯緩衝器移位暫存器中之一有效項目。
- 一種微控制器,其包括:一中央處理單元(CPU);一如前述請求項3-11中任一者之控制器區域網路(CAN)控制器單元。
- 如請求項24之微控制器,其進一步包括一時間擷取單元,其中該控制暫存器包括一第二位元,其可經程式化以使該CAN控制單元進一步儲存來自該時間擷取單元之時間戳記資訊連同該控制資訊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17189109P | 2009-04-23 | 2009-04-23 | |
US12/758,448 US8650341B2 (en) | 2009-04-23 | 2010-04-12 | Method for CAN concatenating CAN data payloads |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201044816A TW201044816A (en) | 2010-12-16 |
TWI524699B true TWI524699B (zh) | 2016-03-01 |
Family
ID=42235753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099112906A TWI524699B (zh) | 2009-04-23 | 2010-04-23 | 控制器區域網路(can)控制器單元、儲存can訊息之方法及相關聯微控制器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8650341B2 (zh) |
EP (1) | EP2422494B1 (zh) |
KR (1) | KR101702352B1 (zh) |
CN (1) | CN102334314B (zh) |
TW (1) | TWI524699B (zh) |
WO (1) | WO2010123970A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8320392B1 (en) * | 2009-12-16 | 2012-11-27 | Integrated Device Technology, Inc. | Method and apparatus for programmable buffer with dynamic allocation to optimize system throughput with deadlock avoidance on switches |
DE102011080476A1 (de) * | 2011-08-05 | 2013-02-07 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Verbesserung der Datenübertragungssicherheit in einer seriellen Datenübertragung mit flexibler Nachrichtengröße |
CN104541464A (zh) | 2012-04-16 | 2015-04-22 | 熵敏通讯公司 | 用于下行接入的逐步调制 |
US9112721B2 (en) * | 2012-05-28 | 2015-08-18 | Freescale Semiconductor, Inc. | System and methods for enabling a controller area network (CAN) device to operate in different power modes based upon the payload of a wake-up message |
CN102882261B (zh) * | 2012-10-29 | 2014-11-19 | 成都芯源系统有限公司 | 充电系统、数字接口电路及其控制方法 |
JP2014158241A (ja) * | 2013-02-18 | 2014-08-28 | Ricoh Co Ltd | データ通信装置及びデータ通信方法 |
EP3090333A4 (en) * | 2013-12-30 | 2017-07-12 | Schneider Electric IT Corporation | System and method for automatically selecting baud rate in a can network |
US9892073B1 (en) | 2014-10-06 | 2018-02-13 | Master Lock Company Llc | Bus addressing systems and methods using repurposed bits |
KR101593840B1 (ko) * | 2014-12-10 | 2016-02-15 | 현대오트론 주식회사 | 캔 프레임 송신 방법 및 장치 |
TWI600560B (zh) * | 2016-01-13 | 2017-10-01 | Chun-Hsien Kuo | Vehicle controller area network general control method |
DE102016220895A1 (de) * | 2016-10-25 | 2018-04-26 | Volkswagen Aktiengesellschaft | Erkennung von Manipulationen in einem CAN-Netzwerk |
US10491418B2 (en) * | 2016-12-05 | 2019-11-26 | Electronics And Telecommunications Research Institute | Can controller and data transmission method using the same |
KR102204954B1 (ko) * | 2016-12-05 | 2021-01-20 | 한국전자통신연구원 | Can 컨트롤러 및 이를 이용한 데이터 전송 방법 |
CN111193648B (zh) * | 2018-11-14 | 2021-11-19 | 厦门雅迅网络股份有限公司 | 降低can总线负载的数据发送方法、终端设备及存储介质 |
KR102535563B1 (ko) * | 2021-03-05 | 2023-05-26 | 숭실대학교 산학협력단 | Can 버스를 이용한 다중 uart 통신 방법, 이를 수행하기 위한 기록 매체 및 장치 |
EP4429818A1 (en) | 2021-11-11 | 2024-09-18 | Radiometer Medical ApS | Apparatus comprising cartridge with absorbing element |
CN114928581B (zh) * | 2022-04-22 | 2024-05-03 | 中国第一汽车股份有限公司 | 基于autosar架构的can报文转发方法、装置、设备及存储介质 |
CN115695268B (zh) * | 2022-10-28 | 2024-05-31 | 广州汽车集团股份有限公司 | Canfd第二采样点测试方法、装置、电子设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0289400A3 (en) * | 1987-04-30 | 1990-01-24 | Fairchild Weston Systems Inc. | High speed asynchronous data multiplexer/demultiplexer |
US7024016B2 (en) | 1996-05-16 | 2006-04-04 | Digimarc Corporation | Digital watermarking apparatus and methods |
US6430183B1 (en) * | 1997-09-18 | 2002-08-06 | International Business Machines Corporation | Data transmission system based upon orthogonal data stream mapping |
US6804239B1 (en) | 1999-08-17 | 2004-10-12 | Mindspeed Technologies, Inc. | Integrated circuit that processes communication packets with co-processor circuitry to correlate a packet stream with context information |
US6778548B1 (en) | 2000-06-26 | 2004-08-17 | Intel Corporation | Device to receive, buffer, and transmit packets of data in a packet switching network |
GB2372597B (en) * | 2001-02-27 | 2005-08-10 | Hewlett Packard Co | Device and method for data timestamping |
US20060059117A1 (en) | 2004-09-14 | 2006-03-16 | Michael Tolson | Policy managed objects |
US7076517B2 (en) * | 2001-09-20 | 2006-07-11 | Microchip Technology Incorporated | Serial communication device with dynamic filter allocation |
SE525273C2 (sv) * | 2002-01-07 | 2005-01-18 | Kvaser Consultant Ab | Distribuerat styr- och övervakningssystem |
US6819320B2 (en) * | 2002-03-04 | 2004-11-16 | Sun Microsystems, Inc. | Reading or writing a non-super sampled image into a super sampled buffer |
US7852867B2 (en) | 2007-07-06 | 2010-12-14 | Integrated Deoice Technology, Inc. | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
CN102456240A (zh) | 2010-10-30 | 2012-05-16 | 比亚迪股份有限公司 | 基于can总线的车载记录装置及其存储数据的控制方法 |
-
2010
- 2010-04-12 US US12/758,448 patent/US8650341B2/en active Active
- 2010-04-21 KR KR1020117021242A patent/KR101702352B1/ko active IP Right Grant
- 2010-04-21 EP EP10716956A patent/EP2422494B1/en active Active
- 2010-04-21 WO PCT/US2010/031864 patent/WO2010123970A1/en active Application Filing
- 2010-04-21 CN CN201080009764.7A patent/CN102334314B/zh active Active
- 2010-04-23 TW TW099112906A patent/TWI524699B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2010123970A1 (en) | 2010-10-28 |
TW201044816A (en) | 2010-12-16 |
CN102334314A (zh) | 2012-01-25 |
CN102334314B (zh) | 2014-11-05 |
KR20120006485A (ko) | 2012-01-18 |
US20110007759A1 (en) | 2011-01-13 |
EP2422494B1 (en) | 2013-03-27 |
KR101702352B1 (ko) | 2017-02-03 |
US8650341B2 (en) | 2014-02-11 |
EP2422494A1 (en) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI524699B (zh) | 控制器區域網路(can)控制器單元、儲存can訊息之方法及相關聯微控制器 | |
US8650356B2 (en) | Microcontroller with CAN module | |
Di Natale et al. | Understanding and using the controller area network communication protocol: theory and practice | |
EP1718008B1 (en) | Gateway apparatus and routing method | |
KR100970300B1 (ko) | 통신 모듈의 메시지 메모리의 데이터를 액세스하기 위한 방법 및 장치 | |
US20140269754A1 (en) | Computer system and method for communicating data between computers | |
US7979594B2 (en) | Serial communications device with dynamic allocation of acceptance masks using serial implementation | |
JP2011514111A (ja) | 通信ネットワークの直列データバスを介して当該ネットワークの加入者に到着したメッセージについての情報を格納するための方法及びフィルタ構成 | |
KR101883723B1 (ko) | 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원 | |
US6944739B2 (en) | Register bank | |
JP2009502072A (ja) | FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法 | |
EP1430653B1 (en) | Serial communication device with dynamic filter allocation | |
US6912594B2 (en) | Serial communication device with multi-mode operation of message receive buffers | |
US7076517B2 (en) | Serial communication device with dynamic filter allocation | |
US20160011995A1 (en) | Island-based network flow processor with efficient search key processing | |
EP1766630A2 (en) | Ethernet controller with excess on-board flash for microcontroller interface | |
CN111052682B (zh) | 总线系统的主设备 | |
Lorenz | Advanced gateways in automotive applications | |
CN213069544U (zh) | Can总线控制器的ip核 | |
Zedan | Operating system realization for real-time visualization of CAN-Bus data streams using Xilinx ZyncSoC | |
CN116633488A (zh) | 数据帧的存储方法、装置、车辆及存储介质 | |
GB2404754A (en) | Trace data source identification within a trace data stream |